uPortal Internationalization for 2.2 Release

Slides:



Advertisements
Similar presentations
Open Office.Org What is the Open Office.org Source Project? Open source project through which Sun Microsystems is releasing the technology for the popular.
Advertisements

Introduction to the ABAP Data Dictionary
UPortal Internationalization Shoji Kajita Associate Professor, PhD IT Center, Nagoya University Japan Justin Tilton President Instructional Media + Magic.
1 Statistics Tracker Channel Design As part of CSDepot Master’s Project In partial fulfillment of requirements for Master’s Degree Presented by Rebecca.
UPortal: A framework for the Personalization of Library Services John Fereira: Programmer/Analyst Cornell University Mann Library.
Creating Web Page Forms
Chapter 9 Collecting Data with Forms. A form on a web page consists of form objects such as text boxes or radio buttons into which users type information.
Sophia Antipolis, September 2006 Multilinguality, localization and internationalization Miruna Bădescu Finsiel Romania.
Working with Cascading Style Sheets. Introducing Cascading Style Sheets Style sheets are files or forms that describe the layout and appearance of a document.
15 November 2005Linking Outside the Box1 Cross referencing between XML documents Bob Stayton Sagehill Enterprises
Sakai: Localization & Internationalization Beth Kirschner University of Michigan
Tutorial 1 Getting Started with Adobe Dreamweaver CS3
Mid Morning Discussion Introduction to the IBIS-Q Front-End System ("Module" Emphasis) What is the front end Where does the front end fit in What is a.
Rendering Contexts and Components What is a uPortal3 context ? –Defines all aspects of a traditional portal instance Design, navigation, profiles Parameter.
Portlets in uPortal uPortal Domain Objects Portlet Application Deployment Portlet Deployment –Information from portlet.xml file Portlet Application Definition.
Internationalization: Implementing the XLIFF Standard Jon Allen, Producer instructional media + magic, inc. JA-SIG Summer Conference 2003 June 10, 2003.
Jan Hatje, DESY CSS ITER March 2009: Technology and Interfaces XFEL The European X-Ray Laser Project X-Ray Free-Electron Laser 1 CSS – Control.
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.
UPortal Developer Meeting Fall uPortal Internationalization Updates Shoji Kajita Information Technology Center Nagoya University Japan.
UPortal 3JA-SIG Summer Conference 2006 uPortal 3.
I18N in Sakai Internationalization & Localization Beth Kirschner University of Michigan.
Analyzing Systems Using Data Dictionaries Systems Analysis and Design, 8e Kendall & Kendall 8.
CSC350: Learning Management Systems COMSATS Institute of Information Technology (Virtual Campus)
UPortal 3: Sneak PreviewJA-SIG Winter Conference 2005 uPortal 3 sneak preview Eric Dalquist, Peter Kharchenko Unicon Inc.
11/14/00Copyright © Yale University1 uPortal: A Java Based Portal Framework A Project of JA-SIG ( Presented by: Susan Bramhall,
Database Objective Demonstrate basic database concepts and functions.
Web Development & Design Foundations with XHTML Chapter 11 Key Concepts.
Jan Hatje, DESY CSS GSI Feb. 2009: Technology and Interfaces XFEL The European X-Ray Laser Project X-Ray Free-Electron Laser 1 CSS – Control.
Prepared by Jim Farmer for the JA-SIG UK Meeting Monday, 26 January, 2004 University of Birmingham, United Kingdom The uPortal Roadmap.
XP Review 1 New Perspectives on JavaScript, Comprehensive1 Introducing HTML and XHTML Creating Web Pages with HTML.
UpgradinguPortal to What’s new that matters Better use of third party frameworks Faster! Improved caching Drag and Drop New Skin & Theme Accessibility.
DITA TOPICS - ADVANCED. Session Results Topic Types Review Format/Layout Separated from Content DITA Concept Elements Using DITA Concept Elements - Advanced.
RSS Syndication CS 431 – Carl Lagoze – Cornell University.
Apache Cocoon – XML Publishing Framework 데이터베이스 연구실 박사 1 학기 이 세영.
Introduction to Algorithm. What is Algorithm? an algorithm is any well-defined computational procedure that takes some value, or set of values, as input.
Chapter 1 Getting Started with ASP.NET Objectives Why ASP? To get familiar with our IDE (Integrated Development Environment ), Visual Studio. Understand.
General System Navigation
Exercises Complete Exercise 8 using profile 7, CAT2
Integration Framework of SAP Business One Training
INTRODUCTION TO DATABASES (MICROSOFT ACCESS)
Chapter 10: Web Basics.
Objective % Select and utilize tools to design and develop websites.
Introduction and Principles
Internationalization
Creating a MODULE Tarun Behal
SPS Spotlight Series November 2013
Data Visualizer.
Software Specification Tools
XML QUESTIONS AND ANSWERS
Introduction to Access 2007
Introduction to XHTML.
Searching Business Data with MOSS 2007 Enterprise Search
Objective % Select and utilize tools to design and develop websites.
Databases and Information Management
Searching Business Data with MOSS 2007 Enterprise Search
uPortal: architecture and features
Chapter 27 WWW and HTTP.
The uPortal Framework and Channels
Forms, cont’d.
Databases and Information Management
CHAPTER 1: THE DATABASE ENVIRONMENT AND DEVELOPMENT PROCESS
Database Fundamentals
Portals, uPortal, and the Meteor Channel
Luminis Platform Workshop Creating a Personal User Experience
The uPortal Roadmap uPortal Software Developers Meeting
Introduction to MS ACCESS
Review Test 3 CS 101 Spring 2019.
Unit J: Creating a Database
Exceptions and networking
Information system analysis and design
Presentation transcript:

uPortal Internationalization for 2.2 Release Shoji Kajita Information Technology Center Nagoya University Japan

Updates New Locale class for uPortal or the original Locale class? Answer: Write a letter for SUN Microsystems to push the support of three letter codes in Locale class

TODO items for 2.2 Release UI Changes Database Changes Resource Translations XSL files Default database settings Codes Changes For framework For default channels Documentation for i18ned Channel Developer Beyond 2.2 Release

(Aggregated Layout done by Justin and Mike) 1. UI Changes To let users select the language to be rendered in subscribing channels (Aggregated Layout done by Justin and Mike)

2. Database Changes One additional column in UP_LAYOUT_STRUCT table Three new table UP_CHANNEL_MDATA UP_CHAN_TYPE_MDATA UP_LAYOUT_STRUCT_MDATA

UP_LAYOUT_STRUCT (new “LOCALE” column) <table> <name>UP_LAYOUT_STRUCT</name> <desc>Holds the order of a user's layout structure - the order in the user layout of channels subscribed to, the order of layout components (columns for example)</desc> <columns> <column> <name>USER_ID</name> ….. <column> <name>LAYOUT_ID</name> ….. <column> <name>STRUCT_ID</name> ….. <column> <name>NEXT_STRUCT_ID</name> ….. <column> <name>CHLD_STRUCT_ID</name> ….. <column> <name>EXTERNAL_ID</name> ….. <column> <name>CHAN_ID</name> ….. <column> <name>NAME</name> ….. <column> <name>TYPE</name> …… <column> <name>HIDDEN</name> …… <column> <name>IMMUTABLE</name> …… <column> <name>UNREMOVABLE</name> …… <column> <name>LOCALE</name> <type>VARCHAR</type> <param>7</param> <desc>Comma Delaminated, Locale of this struct entry, eng_USA, jpn_JPN, swe_SWE, etc. Required for I18n. Ask Shoji.</desc> </column> </columns> </table>

UP_CHANNEL_MDATA (new table) <name>UP_CHANNEL_MDATA</name> <desc>Channel's Meta Data - this table holds the meta data elements of a channel used as a default for all users</desc> <columns> <column> <name>CHAN_ID</name> <type>INTEGER</type> <desc>Channel ID is a unique sequence number generated by the portal - primary key, see UP_SEQUENCE</desc> </column> <column> <name>LOCALE</name> <type>VARCHAR</type> <param>7</param> <desc>Locale - the locale of meta data element</desc> <column> <name>CHAN_TITLE</name> <type>VARCHAR</type> <param>128</param> <desc>Channel title - it appears at the top title bar of the channel</desc> <column> <name>CHAN_NAME</name> <type>VARCHAR</type> <param>128</param> <desc>Channel name - used for display name of channel for subscribe, usually the same as title</desc> <column> <name>CHAN_DESC</name> <type>VARCHAR</type> <param>255</param> <desc>Channel description - provides additional information to the user about the channel to help him or her select a channel to subscribe to</desc> </columns> </table>

UP_CHANNEL_MDATA (new table)

UP_CHAN_TYPE_MDATA (new table) <name>UP_CHAN_TYPE_MDATA</name> <desc>Channel Type's Meta Data - this table holds the meta data elements of a channel type</desc> <columns> <column> <name>TYPE_ID</name> <type>INTEGER</type> <desc>Type ID is a unique sequence number generated by the portal - primary key</desc> </column> <column> <name>TYPE_NAME</name> <type>VARCHAR</type> <param>70</param> <desc>Type name is a short description of the java class displayed during publish</desc> <column> <name>TYPE_DESCR</name> <type>LONGVARCHAR</type> <desc>Type description of the java class</desc> <column> <name>LOCALE</name> <type>VARCHAR</type> <param>7</param> <desc>Locale - the default locale of channel type</desc> </columns> </table>

UP_CHAN_TYPE_MDATA (new table)

UP_LAYOUT_STRUCT_MDATA (new table) <name>UP_LAYOUT_STRUCT_MDATA</name> <desc>Channel Type's Meta Data - this table holds the meta data elements of a channel type</desc> <columns> <column> <name>TYPE_ID</name> <type>INTEGER</type> <desc>Type ID is a unique sequence number generated by the portal - primary key</desc> </column> <column> <name>TYPE_NAME</name> <type>VARCHAR</type> <param>70</param> <desc>Type name is a short description of the java class displayed during publish</desc> <column> <name>LOCALE</name> <type>VARCHAR</type> <param>7</param> <desc>Locale - the default locale of channel type</desc> <column> <name>TYPE_DESCR</name> <type>LONGVARCHAR</type> <desc>Type description of the java class</desc> </columns> </table>

3. Resource Translations Wiki-based Translation Site To help translators in making dictionary http://www.itc.nagoya-u.ac.jp/~kajita/hiki/hiki.cgi 8 Languages hosted

3. Resource Translations Wiki-based translation site To help translators in making dictionary http://www.itc.nagoya-u.ac.jp/~kajita/hiki/hiki.cgi 8 Languages hosted Targeted languages in 2.2 release Japanese, Swedish, German, French, …

4. Code Changes Internal Representation of Locale LocaleManager Class Array of Locale in RuntimeData Locale-aware XSLT

Internal Representation of Locale As String object or Locale object? In most of cases at the framework level, it is enough to treat locale information as “String” (ex) XSL filename, locale in DB “Do we have to use Locale object as the internal representation of Locale at the framework level?” Of course, we need to use Locale class to get advantage of Locale class features like ResourceBundle, Date format, Currency, …

LocaleManager Class The central place to manage all of locale information User’s channel subscribe setting Channel’s publish time setting User’s user-wide setting Browser specified settings (HTTP session, accept_language) uPortal wide setting JVM default locale setting

Locale[] in RuntimeData public class ChannelRuntimeData … { .................... private Locale Locale[]; …………….. } In some cases, channel wants to know the source or context of Locale specified.

Interpretation of Locale[] Locale[0] = uPortal default locale specified in portal.properties Locale[1] = from user profile Locale[2] = from user layout Locale[3] = from channel definition Locale[4] = from browser (i.e. ACCEPT_LANGUAGE) Locale[5] = from HTTP session parameter

Locale-aware XSLT XSLT xslt = new XSLT(this); Locale[] locales = runtimeData.getLocales(); LocaleAwareXSLT xslt = new LocaleAwareXSLT(this, locales[0]); xslt.setXML(doc); xslt.setXSL(sslLocation, runtimeData.getBrowserInfo()); xslt.setTarget(out); xslt.setStylesheetParameter("baseActionURL", runtimeData.getBaseActionURL()); if (!staticData.getPerson().getSecurityContext().isAuthenticated()) { xslt.setStylesheetParameter("unauthenticated", "true"); } xslt.transform(); Don’t have to change

Locale dependent XSL files -webpages/…/CLogin CLogin.ssl html.xsl  Default html_en.xsl html_en_US.xsl html_en_UK.xsl html.xsl.jpn_JPN html.xsl.swe_SWE (html.xsl_eng_GRB is better?)

5. Documentation for Channel Developer General concept of uPortal i18n What is done in the level of framework Preparation of translated resources for each channel Guideline to write codes of locale aware channel by using i18ned Number Guessing Game The use of ResourceBundle The use of LocaleAwareXSLT The use of array of Locales in RuntimeData to select preferable locale

6. Beyond 2.2 Release Log message translation (Framework) By using ResourceBundle The use of external language preference sources like LDAP More language supports The use of XLIFF technology

Target of I18n uPortal Framework Bundled default channels