G11N component customization
G11N component customization can be implemented by dividing globalization libraries to fine-grained sub-package and grouped by features. Each feature can be packaged as an independent file and can be installed and uninstalled separately. Locale data and globalization business logic bind to each feature. Traditional language pack files are now becoming feature oriented language packs, which are more flexible and easy to manage.
G11N content/layout customization
Upon the loosely-coupled approach of globalization, locale sensitive data are separated from business logic and are persist as language pack files or in the database, and there is only one locale neutral binary executable for all supported languages. To implement G11N content/layout customization, we must write customized code for each locale. Thus separate data from logic is the globalization design goal and customization code for each locale will definitely be a bad design that may bring more efforts for maintenance. What we need is a customized globalization solution both for logic and presentation, and the globalization template provides a flexible method for multilingual content/style customize with the least effort of code modification. In the next section, we will discuss the template idea for global Web application.
A globalization template is a content aggregator that integrates Web content from multiple data sources. The data sources are generally static HTML, JSP/JSF and other Web presentation components. The template defines what content will be aggregated and the way to present the content. Globalization template itself doesn’t contain any multilingual data and presentation style details, and it only has the content aggregation policies by linking to the actual data source. Each locale has its own template, and the template contains different content by specifying content source.
The Web content should be divided to page components in either fine-grained or coarse-grained policy according to the levels of customization. The more fine-grained the page components are, the more flexible G11N content/style customization is, and also the development effort will also increase accordingly for this method. Each page component represents a specified function by its UI like a “portlet”. For example, products search, navigation bar, product category, logo and campaign can be separated page components, which can be aggregated in a template to present a customized view for visitors in different countries. Page components include reusable page components and locale-specified page components. Reusable page component is locale neutral that can be reused across all locales, and it is similar to traditional Web globalization single executable presentation unit. Locale-specified page component is content widget per locale, which is highly customizable for global market. Each locale may have different number of locale-specified page components. Fig.9-a is a sample globalization template for locale “en_US”:

Figure 7. 9-a Globalization template for “en_US”

Figure 7.9-b is a sample globalization template for locale “zh_CN”:
The globalization templates for “en_US” and “zh_CN” are different in both content and layout, and they both have identical parts that are built based on reusable page components. These components can be directly translated to all supported locales and placed on all globalization templates in the Web application. Compared with reusable page component, the locale-specified page component data are exclusive per locale, and the multilingual data source also varies based on business logic and services for the markets in different countries or regions.
Globalization template can be implemented by advanced Web presentation techniques such as Tiles [2] framework. Tiles framework is a template and layout solution that organizes view component as “tiles”. Tiles uses an XML configuration file to organize those tiles. This framework not only enables to reuse tiles, but also the layouts that organize them. Tiles uses loose-coupled content widgets (HTML, JSP) to simplify Web content and style customization without modify content feed JSP. Tiles is more advanced than JSP “include” directive, which has limited customization capabilities.
By introducing globalization template, Web applications now can be customized for different countries in different languages to meet the local demand. Meanwhile, globalization template also inherits from classic “single executable, multiple language pack” Web globalization architecture. If all locales are not going to be customized, globalization template implementation is as same as the classic approach.
The globalization architecture for Web application can be illustrated as Figure 8:

Figure 8. G11N content/layout customization architecture
G11N client side customization (G11N personalization)
To address the problem, we will use Java to emulate how to implement mixed locale. Before locale personalization, we often use “Locale” class in Java to identify internationalization properties, and “Locale” class is the minimum unit of globalization capability in Java. However, in the application layer, we can model the personalized locale to more detailed combinations.
The extended personalized locale can be collected on Web personalization options like Figure 9:

Figure 9. Personalized locale
By divide common locale to sub-items, we now have personalized locale that enables to display multilingual data in mixed language/culture preferences. Fig.12 shows the screen-shot of IBM Lotus Workplace registration form, and it contains globalization personalization features:

Figure 10. Lotus Workplace Locale Personalization
Combination of G11N server side customization and client side personalization
Globalization personalization can also be customized to page components that were mentioned in above sections. This will bring more customizable globalization options, but it is also a complex G11N mode that mixes both customization and personalization.
The idea is that each page component (reusable page component or locale-specified page component) can have its own locale preference. The presentation engine will render the page using multiple locales to output highly customized and personalized globalization content.

Figure 11. G11N customization + personalization
Combining customization and personalization, we can have advanced G11N solution for user speaking in any languages and living in anywhere.

Figure 12. G11N Solution
Based on globalization infrastructure, there will be multiple offering for different markets, and end user can personalization the G11N related preference on those specific market offering.
|