This page will focus on localization techniques specific to pure or mixed Right-to-Left (RTL) language contexts. It details the state of RTL localization in Sakai, known issues, setting up a RTL Sakai service, and customizing the user experience.
RTL availability in Sakai
At present (10/24/2008) only the Arabic localization is mostly complete. There is a Hebrew translation in the works, status unknown.
There is also a set of known issues that affect all localizations. These mostly deal with user names, dates, number localization issues, strings that cannot be localized, and specific tools and widgets that have problems with extended character sets, etc. The most important of these are listed here
Setting up a Sakai service configured for RTL languages
- set up a standard Sakai service. See (select a version): https://confluence.sakaiproject.org/display/DOC/Documentation
- follow UTF-8 settings outlined here
- add "ar" to locale list in sakai.properties (usually in tomcat/sakai), so ---> locales = ar, en, ja_JP, ko_KR, nl_NL, zh_CN, es_ES
- change default skin setting to rtl (see sakai.properties documentation for more details), so ---> skin.default=rtl
- place the rlt skin in the skin folder (usually in tomcat/webapps/library/skin)
- set the default locale to "ar"
- start tomcat
Arabic Math Editor
WIRIS team has released a (beta) version of the Arabic Math Editor.
This solution includes formula mirroring and Arabic numbers.
More information at www.wiris.com/solutions/arabic
As usual, instructions to install in Sakai at www.wiris.com/solutions/sakai
The RTL skin
You can obtain the rtl Sakai skin from here (download).
The rtl skin does essentially 3 things: 1) it applies a RTL direction to the portal and tool blocks; 2) adjusts the text inputs for unicode-bidi; 3) fixes most everything that 1 and 2 could not take care of automatically. The details can be found here:
RTL Sakai - the portal
RTL Sakai - from portal to tools
RTL Sakai - the tools
The rtl skin has not been throughly tested, although it may provide a good stating point for further development - hopefully from folks that use the RTL language set!
Read more on Sakai skins in the documentation available in the Sakai source (reference/docs/architecture/sakai_skin.doc). Important to note that you will want to do all your work in the rtl skin, without touching tool_base.css, overriding in rtl/tool.css any selectors in the former that are wrong for a RTL context.
Some other things to note. If you have a mixed language or a mixed direction environment there are any number of ways of pointing specific sites to specific skins. This will allow you to serve a language/affiliation specific skin to a language/affiliation specific site, as well as have RTL and LTR sites coexisting in the same environment without much trouble. You can:
- make the skin selection a site creating setting, this is pretty standard
- create site types and render different site types with the same skin
Known issues specifc to RTL contexts are the following:
- Filtering controls in Schedule list view.
- "Add" menu in Resources - text is misaligned.
- Certain icons are facing in the wrong direction - such as disclosure triangles. These will need to be replaced in the file system when they are inline images, or in the skin when pulled as background images.
- The FCK Editor - needs configuration - information on configuring the FCK Editor for RTL is at http://docs.fckeditor.net/FCKeditor_2.x/Developers_Guide/Configuration/Configuration_Options/ContentLangDirection. There are language files for Arabic and Hebrew, Persian as well. Probably a lot of other stuff that a native speaker could figure out needs to be tweaked.
- Placement of icons inside certain blocks needs to be tweaked - see alertMessage etc. Search for "url(" in portal.css, tool_base.css and tool.css) and note the location.
Again this is a work in progress - and it would be great if you could pitch in. To help out you can file bug, task or feature request tickets in the Sakai tracking system, JIRA. If you want to submit patches to review even better! Please also leave comments below if anything above needs amending, thanks!