Imbrication d'instances du module de formatage pour les sous-chaînes localisées
La possibilité de remplacer des sous-chaînes de variables dans les chaînes extraites des catalogues de messages augmente la souplesse d'utilisation du package de texte localisable, mais cette souplesse supplémentaire est limitée, sauf si la valeur de la variable peut être localisée. Vous pouvez localiser cette valeur en imbriquant des instances de LocalizableTextFormatter.
Avant de commencer
Procédure
- Dans le catalogue de messages, ajoutez les entrées qui correspondent aux valeurs possibles de la sous-chaîne de variable.
- Dans le code de l'application, créez une instance de LocalizableTextFormatter pour la sous-chaîne de variable, en définissant les valeurs de localisation requises.
- Créez une instance de LocalizableTextFormatter pour la chaîne principale, en transmettant un tableau contenant l'instance du module de formatage pour la sous-chaîne de variable.
Exemple
La ligne suivante provenant d'un catalogue de messages en anglais indique une entrée de chaîne
contenant deux substitutions et des entrées permettant de prendre en charge la variable localisable à l'indice 0 (il n'est
pas nécessaire de localiser la deuxième variable de la chaîne, le numéro de compte) :
successfulTransaction = The {0} operation on account {1} was successful. depositOpString = deposit withdrawOpString = withdrawal
Le code suivant illustre la création de l'instance de module de formatage imbriquée ainsi que son intégration
(avec la variable de numéro de compte) dans l'instance du module de formatage principal :
public void updateAccount(String transactionType) { ... // Dépôt réussi 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); ... }