Thanks to the gracious contributions of John Bush at rSmart, and Rob Stonham at University of Hull, I'd like to announce the availability of a Dynamic Translation Server (beta version) to the Sakai international community. The translation server (https://qa13-uk.sakaiproject.org/portal) provides a new Localization Admin tool available in the Administration Workspace (current admin userid/password is "admin").
IMPORTANT: The Admin Tool is still in beta, and lacks a complete process to port translations back into Sakai source code (we welcome community contributions to convert the exported translations into Sakai properties files). The process for dynamic translation relies on a user to first display any and all user interface text with the target language selected. This causes the translation server to save all user interface text into a database table where it can by dynamically retrieved, translated, and exported.
Following are the detailed instructions and I've also attached screenshots to walk you through the process.
- Create a user and login.
- Select the target language you'd like to translate: "My Workspace" -> "Preference" -> "Language" -> (select language) -> "Update Preferences". If the language isn't yet listed there, it can be added upon request <email@example.com>.
- Select "Membership" and join the "I18N Testing" worksite and attempt to visit all the pages of any particular tool. Repeat for other tools you'd like to translate.
- Wait awhile. The database will cache all user text in the background, and unfortunately there's not yet an indication of when it completes.
- Log in as the admin user (username/password: admin/admin) and visit the "Localization Admin" tool. Select "Edit" on the any property and correct or add the appropriate translation. Save and continue on.
- The translations will now be available for you to view in the original tools.
You can also get the source and deploy the Localization Admin tool yourself.
- Download and compile sources from https://source.sakaiproject.org/contrib/rsmart/messagebundle
- Add the following lines to your
# message bundle management load.bundles.from.db=true # number of milliseconds before rechecking database for updates, the default is 30 secs load.bundles.from.db.timeout=30000