Sakai: Localization & Internationalization Beth Kirschner University of Michigan

Slides:



Advertisements
Similar presentations
© 1998, Progress Software Corporation 1 Migration of a 4GL and Relational Database to Unicode Tex Texin International Product Manager.
Advertisements

Building International Applications with Visual Studio.NET Achim Ruopp International Program Manager Microsoft Corporation.
CSS The basics { }. CSS Cascading Style Sheets - language used to – describe html appearance & formatting Style Sheet - file that describes – how html.
Cascading Style Sheets
CHAPTER 7 STYLING CONTENT WITH CASCADING STYLE SHEETS.
Using JavaServer Pages Harry R. Erwin, PhD CIT304/CSE301.
Interface Design 2 Week 9. Interface Design 2 :: Week 9 :: Calendar.
JavaServer Faces. Objectives To implement dynamic web pages with JavaServer Faces (JSF) technology To learn the syntactical elements of JavaServer Faces.
Interface Design 2 Week 10. Interface Design 2 :: Week 10 :: Calendar.
Dynamic Web Pages Bert Wachsmuth. Review  Internet, IP addresses, ports, client-server, http, smtp  HTML, XHTML, XML  Style Sheets, external, internal,
SQL Reporting Services Overview SSRS includes all the development and management pieces necessary to publish end user reports in  HTML  PDF 
UNIT-V The MVC architecture and Struts Framework.
Overview of JSP Technology. The need of JSP With servlets, it is easy to – Read form data – Read HTTP request headers – Set HTTP status codes and response.
Problemsolving 2 Problem Solving: Designing a website solution Identifying how a solution will function Taking into account the technical constraints a.
 Using Microsoft Expression Web you can: › Create Web pages and Web sites › Set what you site will look like as you design it › Add text, images, multimedia.
Sophia Antipolis, September 2006 Multilinguality, localization and internationalization Miruna Bădescu Finsiel Romania.
M. Taimoor Khan * Java Server Pages (JSP) is a server-side programming technology that enables the creation of dynamic,
Publications, design sets, web pages
Web Design Dreamweaver Semester 2 ATBs. ATB #1 What is a web site?
CSCI 6962: Server-side Design and Programming Course Introduction and Overview.
MVC pattern and implementation in java
Pittsburgh Java User Group– Dec Java PureFaces: A JSF Framework Extension.
HTML Web Authoring Tonya L. DeZarn Janice Thompson Juana Wallace.
WorkPlace Pro Utilities.
Spring /6.831 User Interface Design and Implementation1 Lecture 22: Internationalization.
L10n and I18n in the Real World Dan Moore Moore Consulting June 9, 2005.
Internationalization and the Java Stack Matt Wheeler.
Sakai 2.6 Internationalization Review Raúl E. Mengod López Universidad Politécnica de Valencia StockHolm, 5-6 May 2009.
Web applications using JavaServer Faces (JSF) A brief introduction 1JavaServer Faces (JSF)
Internationalization 3.0 Beth Kirschner University of Michigan.
Css. Definition Cascading style sheet (CSS) Cascading Style Sheets (CSS) is a simple mechanism for adding style (e.g. fonts, colors, spacing) to Web documents.
HTML. Principle of Programming  Interface with PC 2 English Japanese Chinese Machine Code Compiler / Interpreter C++ Perl Assembler Machine Code.
DWL TOOL FOR CREATING A CUSTOMIZED WEB-BASED SYSTEM GENERATOR Ling-Hua Chang, Sanjiv Behl, Tung-Ho Shieh, Chin-Chih Ou.
Internationalization in the Java Stack Matt Wheeler.
2013 Dynamics SL Event May 15, As of 5/1/2013 the most recent version of MR is 2012 Rollup 5 Proceed with caution if you choose to update your MR.
CHEF II / Sakai Architecture. CHEF II Changes uPortal replaces Jetspeed –jsr 168 portlet, servlet compliant Spring replaces Turbine component framework.
Internet Web Publishing III. Intro to Cascading Style Sheets Patricia Roberts.
Chapter 14 Internationalization F Processing Date and Time –Locale –Date –TimeZone –Calendar and GregorianCalendar –DateFormat and SimpleDateFormat F Formatting.
Liang, Introduction to Java Programming, Fifth Edition, (c) 2005 Pearson Education, Inc. All rights reserved Chapter 26 Internationalization.
Chapter 12: Internationalization Processing Date and Time Processing Date and Time  Locale  Date  TimeZone  Calendar and GregorianCalendar  DateFormat.
WEB BASED DATA TRANSFORMATION USING XML, JAVA Group members: Darius Balarashti & Matt Smith.
Chapter 8 Collecting Data with Forms. Chapter 8 Lessons Introduction 1.Plan and create a form 2.Edit and format a form 3.Work with form objects 4.Test.
Peter Laird. | 1 Building Dynamic Google Gadgets in Java Peter Laird Managing Architect WebLogic Portal BEA Systems.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
Copenhagen, 6 June 2006 EC CHM Multilinguality Anton Cupcea Finsiel Romania.
I18N in Sakai Internationalization & Localization Beth Kirschner University of Michigan.
INTRODUCTION TO CSS. TOPICS TO BE DISCUSSED……….  Introduction Introduction  Features of CSS Features of CSS  Creating Style Sheet Creating Style Sheet.
Internationalizing Sakai Raúl Mengod Universidad Politécnica de Valencia (Spain)
Chapter 14 Internationalization F Processing Date and Time –Locale –Date –TimeZone –Calendar and GregorianCalendar –DateFormat and SimpleDateFormat F Formatting.
Multilingual prototype GCMD Portal JAXA/EORC Kengo Aizawa KEIO UNIVERSITY Hiromichi Fukui Kazuyoshi Kunisawa March 8, 2005.
CSCI 6962: Server-side Design and Programming Facelets and User Interface Design.
JAVA BEANS JSP - Standard Tag Library (JSTL) JAVA Enterprise Edition.
Preface IIntroduction Objectives I-2 Course Overview I-3 1Oracle Application Development Framework Objectives 1-2 J2EE Platform 1-3 Benefits of the J2EE.
8th Sakai Conference4-7 December 2007 Newport Beach Internationalization & Localization Beth Kirschner - University of Michigan Raul Mengod - Universidad.
1 Chapter 20 Internationalization. 2 Objectives F To describe Java's internationalization features (§ 20.1). F To construct a locale with language, country,
Chapter 27 Getting “Web-ified” (Web Applications) Clearly Visual Basic: Programming with Visual Basic nd Edition.
Chapter 6 Chapter 6 Server Side Programming (JSP) Part 1 1 (IS 203) WebProgramming (IS 203) Web Programming.
Internationalization & Localization Status Update & Discussion Beth Kirschner - University of Michigan.
APACHE STRUTS ASHISH SINGH TOMAR ast2124. OUTLINE Introduction The Model-View-Controller Design Pattern Struts’ implementation of the MVC Pattern Additional.
Introduction to ASP.NET development. Background ASP released in 1996 ASP supported for a minimum 10 years from Windows 8 release ASP.Net 1.0 released.
By Jonathan Smith. Road Map Introduction Company Information Project Overview Java Web Design and Development Summary Relation to IUP Acknowledgments.
Struts 2 Development. Topics  Roles in Struts Development  Control Flow  Actions  Struts 2 Views and Target  Struts 2 Custom Tags  Validation 
Random Logic l Forum.NET l Localization & Globalization Forum.NET ● May 29, 2006.
ORACLE ADF ONLINE TRAINING COURSE
Metropolia 2013 C# programming and .NET framework
Chapter 14 Internationalization
Internationalization
Content Management System
Chapter 35 Internationalization
Programming with Microsoft Visual Basic 2008 Fourth Edition
Presentation transcript:

Sakai: Localization & Internationalization Beth Kirschner University of Michigan

Localization (l10n) versus Internationalization (i18n)  Localization of a web interface is usually limited to isolating the language dependencies such that they can be easily translated.  Internationalization of a web interface takes into account many aspects beyond strict translation of the text, such as cultural differences, space allocation and formatting.  Sakai needs to consider both.

Enabling Sakai Localization  Velocity templates  Java Server Faces templates  Java code  Static HTML (e.g. help text)  Database information

Java Server Faces in JSP Java Tool Logic Java Beans Sakai Application Services Sakai JSF Widget Set The Sakai Tool Environment Velocity Templates Sakai Legacy Tools Sakai Legacy Services Sakai Velocity Support Layer The Sakai Legacy Environment Sakai Portal Sakai Presentation Environments Sakai Framework APIs

Localizing Velocity Templates (before) View: #foreach ($view in ["Calendar by day", "Calendar by week", "Calendar by month", "Calendar by year", "List of events"])

Localizing Velocity Templates (after) $tlang.getString(“view.view”) #foreach ($view in ["$tlang.getString('java.byday')", "$tlang.getString('java.byweek')", "$tlang.getString('java.bymonth')", "$tlang.getString('java.byyear')", "$tlang.getString('java.listeve')"])

Localizing JSF Templates <sakai:tool_bar_item action="#{AnnouncementTool.processActionListNew}" value="#{msgs.annc_list_new}" />

Localizing Java Code (before) private static final String STATE_SELECTED_VIEW = "state_selected_view"; private static final String VIEW_BY_DAY = "Calendar by day"; private static final String VIEW_BY_WEEK = "Calendar by week"; private static final String VIEW_BY_MONTH = "Calendar by month"; private static final String VIEW_BY_YEAR = "Calendar by year"; … context.put("selectedView", VIEW_BY_DAY);

Localizing Java Code (after) private static ResourceBundle rb = ResourceBundle.getBundle("calendar") private static final String STATE_SELECTED_VIEW = "state_selected_view"; private static final String VIEW_BY_DAY = rb.getString("java.byday"); private static final String VIEW_BY_WEEK = rb.getString("java.byweek"); private static final String VIEW_BY_MONTH = rb.getString("java.bymonth"); private static final String VIEW_BY_YEAR = rb.getString("java.byyear"); … context.put("selectedView", VIEW_BY_DAY);

Localization Status  Thanks to the developers at University of Lleida, almost every English phrase has been localized into Resource Bundles (almost 4000 separate phrases)  Translation mostly completed in Japanese, Korean and Chinese  Interest has been expressed in Slovokian, Portugese, Catalonia, Spanish, Armenian, Hebrew, …

Asian Translations for NEESgrid portal Chinese Japanese Korean

How to Translate… in 5 easy steps 1)Ingest properties files into MS Excel Spreadsheet 2)Translate English Text in spreadsheet 3)Export into Unicode UTF-16 representation 4)Convert from UTF-16 into UTF-8 5)Ascii-encode UTF-8 representation and save as property file for target language locale (see “I18N and L10N” worksite at for tips and conversion utilities)

Dynamic Language Detection  What about portals that need to support multiple language locales?  Requirements: Minimum change to existing code and tools Use existing ResourceBundle properties files Simple for users to use  Tatsuki Sugiura at Nagoya University has developed an elegant solution

New ResourceLoader class  New ResourceLoader class replaces java.util.ResourceBundle  ResourceLoader works as a ManagedBean for Java Server Faces (JSF)  ResourceLoader works as a wrapper for ResourceBundle for java and Velocity templates  Language Locale retrieved from HTTP request

Users define language preference in browser (IE, Netscape, Safari, Firefox, …)

ResourceLoader Implementation

Enabling Sakai Internationalization  Page Layout and design  Sentence construction (subject/verb/object)  Timezone differences  Date & Time construction  Definition of a Week  Numbers & Currency  Language dependent sorting  Other culturally dependent data

Page Layouts (skins)  Page layouts can differ for application specific reasons or cultural reasons (e.g. right-to-left languages)  Layout is completely configurable using CSS (Cascading Style Sheets)  Different skins can affect: Color & Fonts Icons & Background Images Layout & Format Navigation

Skin Directory Structure /library/skin/ /default/ /tool.css /portal.css /images/ tool_base.css banner_inst.gif info.gif title.1.gif topleft-tab.gif check.gif linkoff.gif title22.gif topleft-tab_hov.gif headback.gif linkover.gif titleback.gif topright-p-title.gif headmid.gif linksel.gif titleleft.gif warn.gif headright.gif logo_inst.gif titleright.gif help.gif reload.gif topleft-curtab.gif help_h.gif reload_h.gif topleft-p-title.gif /new-skin/ Define your skin here

Sakai Stylesheet Definitions

Right-justified Skins (thanks to Gonzalo Silverio for screenshots)

Page Layout: Space Allocation

What’s not done yet  Problem: Subject/Verb/Object, Subject/Object/Verb, Verb,Subject,Object constructions Solution: Need to rewrite to use MessageFormat for these compositions  Problem: Timezone differences Solution: Add timezone option to user preferences and modify affected tools (e.g. Calendar, Chat)  Problem: Date & Time construction Solution: Java provides date/time constructions specific to language locale -- code needs to be audited for consistent usage

What’s not done yet (continued)  Problem: Definition of a week Solution: Configuration option needs to be built into Schedule tool  Numbers & Currency Solution: Java provides number/currency constructions specific to regional locales -- code needs to be audited for consistent usage  Language independent sorting Solution: Java provides correct unicode string comparisons -- code needs to be audited for consistent usage

Questions?