56
Sakai 2.6 Internationalization Review Raúl E. Mengod López Universidad Politécnica de Valencia StockHolm, 5-6 May 2009

Sakai 2.6 Internationalization Review Raúl E. Mengod López Universidad Politécnica de Valencia

  • Upload
    ollie

  • View
    38

  • Download
    0

Embed Size (px)

DESCRIPTION

Sakai 2.6 Internationalization Review Raúl E. Mengod López Universidad Politécnica de Valencia. StockHolm, 5-6 May 2009. Overview. Introduction: Sakai in UPV A little bit of history of Sakai WG: i18n How to build i18n tools Best Practices Sakai 2.6 i18n status Top i18n problems - PowerPoint PPT Presentation

Citation preview

Page 1: 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

Page 2: Sakai 2.6 Internationalization Review Raúl E. Mengod López Universidad Politécnica de Valencia

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

Page 3: Sakai 2.6 Internationalization Review Raúl E. Mengod López Universidad Politécnica de Valencia

Introduction: Sakai in UPV

Introduction: Sakai in UPV

Page 4: Sakai 2.6 Internationalization Review Raúl E. Mengod López Universidad Politécnica de Valencia

Valencia, a place to visit

Page 5: Sakai 2.6 Internationalization Review Raúl E. Mengod López Universidad Politécnica de Valencia

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

Page 6: Sakai 2.6 Internationalization Review Raúl E. Mengod López Universidad Politécnica de Valencia

Introduction: Sakai in UPV

Page 7: Sakai 2.6 Internationalization Review Raúl E. Mengod López Universidad Politécnica de Valencia

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

Page 8: Sakai 2.6 Internationalization Review Raúl E. Mengod López Universidad Politécnica de Valencia

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.

Page 9: Sakai 2.6 Internationalization Review Raúl E. Mengod López Universidad Politécnica de Valencia

Introduction: Sakai in UPV

Page 10: Sakai 2.6 Internationalization Review Raúl E. Mengod López Universidad Politécnica de Valencia

A little bit of History

Page 11: Sakai 2.6 Internationalization Review Raúl E. Mengod López Universidad Politécnica de Valencia

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)

Page 12: Sakai 2.6 Internationalization Review Raúl E. Mengod López Universidad Politécnica de Valencia

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

Page 13: Sakai 2.6 Internationalization Review Raúl E. Mengod López Universidad Politécnica de Valencia

WG: i18n

Page 14: Sakai 2.6 Internationalization Review Raúl E. Mengod López Universidad Politécnica de Valencia

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

Page 15: Sakai 2.6 Internationalization Review Raúl E. Mengod López Universidad Politécnica de Valencia

WG: i18n

http://bugs.sakaiproject.org/confluence/display/I18N/Home

Page 16: Sakai 2.6 Internationalization Review Raúl E. Mengod López Universidad Politécnica de Valencia

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.

Page 17: Sakai 2.6 Internationalization Review Raúl E. Mengod López Universidad Politécnica de Valencia

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

Page 18: Sakai 2.6 Internationalization Review Raúl E. Mengod López Universidad Politécnica de Valencia

How to translate Sakai

Page 19: Sakai 2.6 Internationalization Review Raúl E. Mengod López Universidad Politécnica de Valencia

How to translate Sakai

Page 20: Sakai 2.6 Internationalization Review Raúl E. Mengod López Universidad Politécnica de Valencia

How to translate Sakai

Page 21: Sakai 2.6 Internationalization Review Raúl E. Mengod López Universidad Politécnica de Valencia

How to translate Sakai

Page 22: Sakai 2.6 Internationalization Review Raúl E. Mengod López Universidad Politécnica de Valencia

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

Page 23: Sakai 2.6 Internationalization Review Raúl E. Mengod López Universidad Politécnica de Valencia

How to build i18n tools

Page 24: Sakai 2.6 Internationalization Review Raúl E. Mengod López Universidad Politécnica de Valencia

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

Page 25: Sakai 2.6 Internationalization Review Raúl E. Mengod López Universidad Politécnica de Valencia

How to build i18n tools

Texts in Properties FilesTexts in Database Tables

Text in Resources

Page 26: Sakai 2.6 Internationalization Review Raúl E. Mengod López Universidad Politécnica de Valencia

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

Page 27: Sakai 2.6 Internationalization Review Raúl E. Mengod López Universidad Politécnica de Valencia

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

Page 28: Sakai 2.6 Internationalization Review Raúl E. Mengod López Universidad Politécnica de Valencia

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

Page 29: Sakai 2.6 Internationalization Review Raúl E. Mengod López Universidad Politécnica de Valencia

I18n Best Practices

Page 30: Sakai 2.6 Internationalization Review Raúl E. Mengod López Universidad Politécnica de Valencia

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

Page 31: Sakai 2.6 Internationalization Review Raúl E. Mengod López Universidad Politécnica de Valencia

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

Page 32: Sakai 2.6 Internationalization Review Raúl E. Mengod López Universidad Politécnica de Valencia

Only user data must be stored in Database.

I18n Best Practices

Page 33: Sakai 2.6 Internationalization Review Raúl E. Mengod López Universidad Politécnica de Valencia

I18n Best Practices

Samigo: Data stored in the Database

SAM_TYPE_T.KEYWORD

Page 34: Sakai 2.6 Internationalization Review Raúl E. Mengod López Universidad Politécnica de Valencia

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; }

Page 35: Sakai 2.6 Internationalization Review Raúl E. Mengod López Universidad Politécnica de Valencia

Actual Status of Internationalization

Page 36: Sakai 2.6 Internationalization Review Raúl E. Mengod López Universidad Politécnica de Valencia

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

Page 37: Sakai 2.6 Internationalization Review Raúl E. Mengod López Universidad Politécnica de Valencia

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

Page 38: Sakai 2.6 Internationalization Review Raúl E. Mengod López Universidad Politécnica de Valencia

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

Page 39: Sakai 2.6 Internationalization Review Raúl E. Mengod López Universidad Politécnica de Valencia

I18n Problems

Page 40: Sakai 2.6 Internationalization Review Raúl E. Mengod López Universidad Politécnica de Valencia

JIRA i18n Issues

69 unfixed i18n issues still in JIRA

Page 41: Sakai 2.6 Internationalization Review Raúl E. Mengod López Universidad Politécnica de Valencia

JIRA i18n Issues

Page 42: Sakai 2.6 Internationalization Review Raúl E. Mengod López Universidad Politécnica de Valencia

JIRA i18n Issues

Page 43: Sakai 2.6 Internationalization Review Raúl E. Mengod López Universidad Politécnica de Valencia

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

Page 44: Sakai 2.6 Internationalization Review Raúl E. Mengod López Universidad Politécnica de Valencia

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

Page 45: Sakai 2.6 Internationalization Review Raúl E. Mengod López Universidad Politécnica de Valencia

Top Internationalization Problems

SAKAI_SITE_PAGE.TITLE

SAKAI_SITE_TOOL.TITLE

Page 46: Sakai 2.6 Internationalization Review Raúl E. Mengod López Universidad Politécnica de Valencia

Top Internationalization Problems

General Platform Problems

Format definition should be in sakai.properties

Some QA should control this

Page 47: Sakai 2.6 Internationalization Review Raúl E. Mengod López Universidad Politécnica de Valencia

Localization

Different tools use different code to select dates/times Date widjet is not use everywhere Calendar date format should be in sakai.properties.

Page 48: Sakai 2.6 Internationalization Review Raúl E. Mengod López Universidad Politécnica de Valencia

48

Localization

Page 49: Sakai 2.6 Internationalization Review Raúl E. Mengod López Universidad Politécnica de Valencia

Top Internationalization Problems

Organization problems

Page 50: Sakai 2.6 Internationalization Review Raúl E. Mengod López Universidad Politécnica de Valencia

Top Internationalization Problems

Specific Tools problems

Page 51: Sakai 2.6 Internationalization Review Raúl E. Mengod López Universidad Politécnica de Valencia

Working to improve i18n

Page 52: Sakai 2.6 Internationalization Review Raúl E. Mengod López Universidad Politécnica de Valencia

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

Page 53: Sakai 2.6 Internationalization Review Raúl E. Mengod López Universidad Politécnica de Valencia

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

Page 54: Sakai 2.6 Internationalization Review Raúl E. Mengod López Universidad Politécnica de Valencia

3sakai

Page 55: Sakai 2.6 Internationalization Review Raúl E. Mengod López Universidad Politécnica de Valencia

3sakai

Important code change

It’s the time to review i18n of all tools

Some new features could be added

Page 56: Sakai 2.6 Internationalization Review Raúl E. Mengod López Universidad Politécnica de Valencia

Thank You