Network Deployment (Distributed operating systems), v8.0 > Develop and deploying applications > Develop Internationalization service > Task overview: Internationalizing interface strings (localizable-text API) > Composing language-specific strings


Create a formatter instance

Perform this task to set localization values for strings in an application component. Server programs typically create LocalizableTextFormatter instances that are sent to clients as the result of some operation; clients format the objects at the appropriate time. Less typically, client programs create LocalizableTextFormatter objects locally.


Procedure

  1. If needed for the application, write your own formatter class. For more information about implementation, see LocalizableTextFormatter class.

  2. In application code, call the appropriate constructor for the formatter class and set required localization values. Some localization values, such as resource bundle name, key and formatting application, must be set, either through a constructor or soon after construction. Other localization values can be set only as needed. For more information about the API, see the related reference.


Example

The following code creates a LocalizableTextFormatter instance by using the default constructor and then sets the required localization values:

import com.ibm.websphere.i18n.localizabletext.LocalizableException;
import com.ibm.websphere.i18n.localizabletext.LocalizableTextFormatter;
import java.util.Locale;

public void drawAccountNumberGUI(String accountType) {
   ...
   LocalizableTextFormatter ltf = new LocalizableTextFormatter();
   ltf.setPatternKey("accountNumber");
   ltf.setResourceBundleName("BankingSample.BankingResources");
   ltf.setApplicationName("BankingSample");
   ...
}

The line of code in boldface exploits default behavior of the Java platform. By default, the Java platform looks first for a subclass of java.util.ResourceBundle called BankingResources. When none is found, the Java platform looks for a valid properties file of the same name. In this continuing example, a properties file is found.

The application that is requesting a localized message can specify the locale and time zone for message formatting, or the application can use the default values set for the JVM.

For example, a GUI can enable users to select the language in which to display the interface. A default value must be set initially so that the GUI can be created properly when the application first starts, but users can then change the locale for the GUI to suit their needs. The following code shows how to change the locale used by an application based on the selection of a menu item:

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
...
import java.util.Locale;

public void actionPerformed(ActionEvent event) {
   String action = event.getActionCommand();
   ...
   if (action.equals("en_us")) {
      applicationLocale = new Locale("en", "US");
      ...

   if (action.equals("de_de")) {
      applicationLocale = new Locale("de", "DE");
      ...

   if (action.equals("fr_fr")) {
      applicationLocale = new Locale("fr", "FR");
      ...

   ...
}

See "Generating localized text."


What to do next

Set optional localization values.
Generate localized text
Composing language-specific strings


Related


LocalizableTextFormatter class

+

Search Tips   |   Advanced Search