WAS v8.5 > Develop applications > Develop Internationalization service > Tasks: Internationalizing interface strings (localizable-text API) > Compose language-specific strings > Set optional localization values > Compose complex strings

Nesting formatter instances for localized substrings

The ability to substitute variable substrings into the strings retrieved from message catalogs adds a level of flexibility to the localizable-text package, but this capability is of limited use unless the variable value can be localized. We can localize this value by nesting LocalizableTextFormatter instances.

Identify strings that need to be localized.

  1. In the message catalog, add entries that correspond to potential values for the variable substring.
  2. In application code, create a LocalizableTextFormatter instance for the variable substring, setting required localization values.

  3. Create a LocalizableTextFormatter instance for the primary string, passing in an array containing the formatter instance for the variable substring.


Example

The following line from an English message catalog shows a string entry with two substitutions and entries to support the localizable variable at index 0 (the second variable in the string, the account number, does not need to be localized):

successfulTransaction = The {0} operation on account {1} was successful.
depositOpString = deposit
withdrawOpString = withdrawal

The following code shows the creation of the nested formatter instance and its insertion (with the account number variable) into the primary formatter instance:

public void updateAccount(String transactionType) {
   ...
   // Successful deposit
   LocalizableTextFormatter opLTF = 
      new LocalizableTextFormatter("BankingResources",
                                   "depositOpString", 
                "BankingSample");
   Object[] args = {opLTF, new String(this.accountNumber)};
   ...
   LocalizableTextFormatter successLTF =
      new LocalizableTextFormatter ("BankingResources",
                                    "successfulTransaction",
                                    "BankingSample",
                                    args);
   ...
   successLTF.format(this.applicationLocale);
   ...}


Related concepts:

Globalization


Related


Compose complex strings


Reference:

Globalization: Resources for learning


+

Search Tips   |   Advanced Search