ローカライズ済みサブストリングのフォーマッター・インスタンスのネスト
変数のサブストリングをメッセージ・カタログから検索されたストリングに置換する機能により、 ローカライズ可能テキストのパッケージに柔軟性のレベルが追加されますが、 この機能は、変数値がローカライズ可能である場合を除いて、使用が制限されます。 この値は、LocalizableTextFormatter インスタンスをネストすることで、ローカライズできます。
手順
- メッセージ・カタログ内で、 変数サブストリングが取り得る値に対応する項目を追加します。
- アプリケーション・コードで、必要なローカリゼーション値を設定して、 変数サブストリングの LocalizableTextFormatter インスタンスを作成します。
- 基本ストリングの LocalizableTextFormatter インスタンスを、変数サブストリングのフォーマッター・インスタンスを含む配列を渡して作成します。
例
英語のメッセージ・カタログにある次の行は、
2 つの置換を持つ 1 つのストリング項目と、索引 0 にある
ローカライズ可能な値をサポートする複数項目 (ストリング内の 2 番目の変数、
口座番号は、ローカライズの必要はありません) を示しています。
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); ... }