为本地化的子串嵌套格式化程序实例
将变量子串替换为从消息目录检索到的字符串的能力为可本地化文本包添加了灵活级别,但是此能力的使用是受限制的,除非变量值可本地化。您可通过嵌套 LocalizableTextFormatter 实例本地化此值。
开始之前
过程
- 在消息目录中,添加条目,这些条目对应于变量子串的可能的值。
- 在应用程序代码中,用于变量子串创建 LocalizableTextFormatter 实例,设置必需的本地化值。
- 为主字符串创建 LocalizableTextFormatter 实例,它在包含变量子串的格式化程序实例的数组中传递。
示例
来自英语消息目录的下列行显示带有两个替代和条目的字符串条目,以支持索引 0 上的可本地化变量(字符串中的第二个变量“帐号”不需要本地化):
successfulTransaction = The {0} operation on account {1} was successful. depositOpString = deposit withdrawOpString = withdrawal
下列代码显示所嵌套格式化程序实例的创建,及其到主格式化程序实例的插入(带有帐号变量):
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); ... }