This document covers the following topics:
The following provides some hints for multi language management in workplace applications which contain Natural layout pages. We assume that the user interface contains a combo box or another control which allows the end user to select the language in a Java-based layout page.
This small Java-based layout page can be very simple:
<?xml version="1.0" encoding="UTF-8"?> <page model="com.softwareag.cis.test.workplace.LanguageSelectionAdapter" occupiedpixelheight="0" occupiedpixelwidth="0" contextmenumethod="processAsDefault"> <pagebody vscroll="hidden" hscroll="hidden" horizdist="false"> <vdist height="8"> </vdist> <itr takefullwidth="true"> <coltable0 width="100"> <itr> <hdist width="5"> </hdist> <combofix valueprop="language" width="90" flush="server" flushmethod="onLanguageChanged"> <combooption name="German" value="de"> </combooption> <combooption name="English" value="en"> </combooption> </combofix> </itr> </coltable0> </itr> <itr> </itr> </pagebody> </page>
For an example of how to integrate such a page layout into a frameset of a workplace definition, see /njxdemos/xml/wpworkplacelan1.xml. For language selection, this file uses the layout /njxdemos/xml/wplanselect1.xml. Based on the user selection, the workplace application has to respond correspondingly. Depending on the application needs, the reactions can be different. The following sections provide information on some basic reactions. Your workplace application may implement its own specific handling.
When the user selects a different language, the workplace application basically has two choices:
either close the already started activities after asking or warning the user, or
force the already started activities to switch to the newly selected language.
The MFWorkplaceSessionUtil
class in the package
com.softwareag.cis.workplace
contains methods for
performing both kinds of reaction.
Regardless of the variant you implement for the currently started activities, you want new layout pages to be started with the newly selected language. If your layout pages are implemented with Natural, use the configuration tool that is delivered with the Natural for Ajax product and set the Language option to Set in workplace. This makes sure that newly added or opened activities use the newly selected language.
Sometimes, the newly selected language should only be applied to the activities in the workplace. Sometimes, the workplace application also wants to change the language in the function tree and activity pane.
If you use a static workplace definition (that is, a
bootstrapinfo.xml file) and want to change the language in
the function tree later, you must use textid
properties instead of names.
You can change the language for a static workplace definition by
reloading the workplace definition. The
MFWorkplaceSessionUtil
class in the package
com.softwareag.cis.workplace
contains convenient methods
for reloading the workplace definition. When reloading a function tree, make
sure to
either close the started activities first, or
update the page titles in the activities pane.
If you modify the function tree dynamically using the
NJX:XCIWPINFO2 and/or
NJX:XCIWPFUNCTIONS controls
and want to change the language in the function tree later, you must also use
textid
properties in these controls.
To update the page titles in already started activities, you simply
call the method replaceLiteralInPageTitles()
of the
MFWorkplaceSessionUtil
class.
To change the language in a dynamically defined function tree, you
simply call the method replaceLiteralInFunctionTree()
in the MFWorkplaceSessionUtil
class. Instead of
reloading the workplace definition, you can also use this method for statically
defined function trees.
See also the wpworkplacelan2 example in the Natural for Ajax demos.