Sakai 2.6 Internationalization Review Raúl E. Mengod López Universidad Politécnica de Valencia...
-
Upload
martin-west -
Category
Documents
-
view
216 -
download
3
Transcript of Sakai 2.6 Internationalization Review Raúl E. Mengod López Universidad Politécnica de Valencia...
Sakai 2.6 Internationalization ReviewRaúl E. Mengod López
Universidad Politécnica de Valencia
StockHolm, 5-6 May 2009
Overview
Introduction: Sakai in UPVA little bit of history of SakaiWG: i18nHow to build i18n toolsBest PracticesSakai 2.6 i18n statusTop i18n problemsWorking to improve
Introduction: Sakai in UPV
Universidad Politécnica de Valencia (UPV) Public academic institution since 1971 Official and non-official studies Post – Graduate studies
The UPV in numbers 4 Campuses 14 Colleges (One down this year) 40 Research centers 33 Grade studies 20 postgrade studies 40.000 Students 2.600 Faculty 1.400 Staff
Introduction: Sakai in UPV
Pilot running during 2006 Full capabilities Selected group of users
Full production System in 2006/2007 4 servers Oracle Database Integrated with SSO Integrated with enrollment system 4.000 sites 40.000 students
Based on the 2.1.2 version Translated to Spanish Customized to university requirements Many patches in i18n
Introduction: Sakai in UPV
Running 2.4.x in 2007/2008 Customized for local requirements Fixed some I18n Issues
Plan to migrate to 2.6.x in July 2009 Replication of patches on every version The cost for version update is going up.
A little bit of History
Sakai 2.0 Universidad de Lleida started the job Properties files for the strings Catalan version
Sakai 2.1 Running on mono-lingual platforms Spanish version not available
Sakai 2.1.1 Multi-lingual version by Nagoya University Resourcebundle.java class Stored in the Personal Preference
Sakai 2.1.2 First version available in Spanish Multi-lingual capabilities (only platform)
A little bit of History
Sakai 2.3 More languages added
Sakai 2.4 29 issues fixed Translation Stats Tool
Sakai 2.5 Fixed 22 bugs Tool to migrate translations
Sakai 2.6 More languages 11 issues fixed
WG: i18n
Starting point for 18n in sakai
Sakai Working Group at confluence http://bugs.sakaiproject.org/confluence/display/I18N/Home
What can be found at Confluence?
Sakai i18n configuration Translation guide for sakai How to write i18n tools in sakai Translation tools Known bugs Translation Status Tool from Universeit van Amsterdam
How to translate Sakai
The first step to go forward on i18n is to translate
Every language has a responsible university
Catalán : Lleida Spanish: Valencia French: UpMC ……..
Permission to commit on properties files in sakai svn
It is necessary a continuous revision of translations due to changes in tools.
How to translate SakaiTranslation Tools
Property Files Editors ResourceProperties Editor
http://sourceforge.net/projects/i18neditXLIFF Translation Editor
https://open-language-tools.dev.java.net/
Tool to transfer translations By Smolny University (Sant Petersburg)
Transformable and PreferAble By University of Toronto Configure a personal stylesheet Use a right-to-left stylesheet or skin.
Translation Status Tool in Universeit van Amsterdam
http://qa1-nl.sakaiproject.org/international Updated daily from trunk http://qa1-nl.sakaiproject.org/international/trunk/de.html#excludedfiles
How to translate Sakai
Translation process
Local translation and updated to trunk
Every language responsible commits files
The last chance to commit changes are just after code freeze
No changes allowed after Betas releases are created
Platform translation vs content translation
Sakai supports platform multi-lingual Easy using properties files Difficult when using Database to store platform dependent
text o Resources files (html)
Sakai doesn’t support content multi-lingual Specific feature for multi lingual areas
How to build i18n tools
How to build i18n tools
http://bugs.sakaiproject.org/confluence/display/I18N/How+to+write+Internationalized+Tools+in+Sakai
Based on the ResourceLoader class It is a wrapper of the loadbundle class Looks for the sakai preference Language Looks for the Browser Language Gets the server default language
How to build i18n tools
http://bugs.sakaiproject.org/confluence/display/I18N/How+to+write+Internationalized+Tools+in+Sakai
JSF based tools Create a backing bean for message in the faces-config file or in the JSP Set the bean with the suitable property file Use it in the same way as LoadBundle
Velocity based tools Create an instance of ResourceLoader Class Put it in the Velocity template context Reference it like any other variable
How to build i18n tools
http://bugs.sakaiproject.org/confluence/display/I18N/How+to+write+Internationalized+Tools+in+Sakai
RSF based tools place the message key right in the RSF template
<span rsf:id="msg=page.user.message.key">This is an internationalized message.</span>
Use the UIMessage class <span rsf:id="my-rsf-id">This will be an internationalized message.</span> UIMessage.make(tofill, "my-rsf-id", "page.user.message.key");
Put the property file in the default place tool/src/webapp/WEB-INF/messages
More information in: http://www2.caret.cam.ac.uk/rsfwiki/Wiki.jsp?page=I18N
I18n Best Practices
Follow the standards described in this guide
Always use properties files for user interface text; never include displayable text in java, jsp, or templates
Use properties files only for user interface text and config files for configuration settings
Use a proper naming schema for keys in your resource bundles. The name of the keys should provide some information about the context of the displayed text. This helps the translators during the translation process. A naming schema could be <view>.<type>.<name>. Examples: edit.button.save, edit.label.title or list.action.addnew
Group keys by view, ie. edit.title, edit.instructions, list.title, list.instructions, create.title, etc
I18n Best Practices
Never use displayable text when executing comparisons within the logic of the tool (separate codified values from displayable text)
Always use the ResourceLoader (not ResourceBundle) class for retrieving properties values, and invoke ResourceLoader methods dynamically, to accommodate dynamic user preferences.
All dynamically constructed phrases must be sensitive to locale specific subject/verb/object ordering by using the Sakai ResourceLoader class: org.sakaiproject.util.ResourceLoader.getFormattedMessage()
Test tools in more than one language
Sepate codes froms descriptions Ex: Codding states
I18n Best Practices
public List getPostingOptions() { List postingOptions = new ArrayList(); postingOptions.add(new SelectItem(PermissionBean.NONE,PermissionBean.NONE)); postingOptions.add(new SelectItem(PermissionBean.OWN,PermissionBean.OWN)); postingOptions.add(new SelectItem(PermissionBean.ALL,PermissionBean.ALL)); return postingOptions; }
Sakai 2.6 is translated to the following languages: Arabic Basque Catalan Chinese (Simplified) Chinese (Traditional) Dutch English (Australia) English (New Zealand) English (South Africa) English (United Kingdom) English (United States) French (Canada) French (France) Japanese Korean Portuguese (Brazil) Portuguese (Portugal) Russian Spanish Swedish
I18n Status
I18n Supported Features
Ability to type international (unicode) characters into any Sakai tool
Ability for any tool interface to dynamically reflect a user's preferred international locale
Ability to create worksites whose page titles will statically reflect to a defined international locale
Ability to support right-to-left languagesStatus: Supported pending customized skins or CSS
I18n Status
I18n Features NOT Supported Ability to create worksites whose page titles will dynamically
reflect a user's preferred international locale
Ability to create worksites whose page titles and tool interface will statically reflect a site's preferred international locale
Ability to create contents in more than one language
I18n Status
JIRA i18n Issues
Too many issues for a production system Some issues are from the beginning of sakai A strong dependence on the tool owner to apply changes
Common UTF-8 Problems
Common UTF-8 Problems
1)Make sure tomcat's server.xml includes UTF-8 encoding in all its connectors. <Connector port="8009"
enableLookups="false" redirectPort="8443" protocol="AJP/1.3" URIEncoding="UTF-8" />
2) Make sure your database is created with UTF-8 encoding.
3) Make sure the (MySql) connector is defined for UTF-8 encoding in the sakai.properties file. Note that previous releases of Sakai had an incorrect default value:
[email protected]=jdbc:mysql://127.0.0.1:3306/sakai?useUnicode=true&characterEncoding=UTF-8
Top Internationalization Problems
General Platform Problems
Format definition should be in sakai.properties
Some QA should control this
Localization
Different tools use different code to select dates/times Date widjet is not use everywhere Calendar date format should be in sakai.properties.
Working to improve i18n
Establish a minimum i18n requirements from the community Existing tools should have those requirements Provisional tools to accomplish those requirements I18n should be in QA
Sakai new development process Centralized maintenance (avoid dependences from tool owners) I18n maintenance Team to fix bugs Resources from Universities Leadership from sakai
Next steps
Finish i18n of all tools (homogeneous)
Fix all bugs Tool & Page names 68 more…
Develop new functionalities Multi-lingual help Easy way of selecting the language Multi-lingual contents version
3sakai
Important code change
It’s the time to review i18n of all tools
Some new features could be added