Compose complex strings

Perform the following steps to compose complex strings:

  1. In the message catalog, specify the location of the substitution in the string to be retrieved by key. Variable components are designated by curly braces (for example, {0}).

  2. In the application code, create a LocalizableTextFormatter instance, passing in an array that contains the variable value.

    If the variable substring must be localized, you can create a nested LocalizableTextFormatter instance for it and pass the instance in instead of a value.

  3. Generate localized text. When a format method is called on a formatter instance, the formatter takes each element of the array passed in the previous step and substitutes it for the placeholder with the matching index in the string retrieved from the message catalog. For example, the value at index 0 in the array replaces the {0} variable in the retrieved string.

Example: Complex strings

The following line from an English message catalog shows a string with a single substitution:

successfulTransaction = The operation on account {0} was successful.

The same key in message catalogs for other languages has a translation of the string with the variable at the appropriate location for each language.

The following code shows the creation of a single-element argument array and the creation and use of a LocalizableTextFormatter instance:

public void updateAccount(String transactionType) {
   ...
   Object[] arg = {new String(this.accountNumber)};
   ...
   LocalizableTextFormatter successLTF =
      new LocalizableTextFormatter ("BankingResources",
                                    "successfulTransaction",
                                    "BankingSample",
                                    arg);
   ...
   successLTF.format(this.applicationLocale);
   ...
}

Back to step: Set optional localization values