高度なカスタマイズ > サービスおよびインフラストラクチャのカスタマイズ > 現地化とローカリゼーション > ユーザーに表示されるテキストのローカライズ
  
ユーザーに表示されるテキストのローカライズ
Windchill の現地化されたアプリケーションには、デフォルトのロケールとして、米語 (en_US) が設定されています。サポートするその他のすべてのロケールにローカライズしたリソースバンドルを用意してください。
リソースバンドルは、ロケールに基づいて修正する情報、通常はテキスト情報の保持に使用されます。リソースバンドルはキーと値の組み合わせのハッシュテーブルです。この場合、値はそのロケールに固有です。各パッケージには、リソースバンドルが組み込まれている必要があります。Windchill のネーミング規則は次のとおりです。<使用するパッケージ名>.<pkg>Resource.class
実装クラスには生成されたコンスタント RESOURCE があり、これは実装クラスの完全修飾リソースバンドルクラスを識別します。
リソースバンドルは、システム設定またはユーザーが指定したロケールに基づいて実行時に読み込まれます。リソースバンドルを読み込むため、Java プログラムでは java.util.ResourceBundle.getBundle を呼び出し、ResourceBundle の基本名を指定します。たとえば、fc.fcResource という名前の ResourceBundle を検出するアルゴリズムは次のとおりです。
1. fc.fcResource_language_country_variant という名前のクラスを検索します。
2. fc.fcResource_language_country という名前のクラスを検索します。
3. fc.fcResource_language という名前のクラスを検索します。
4. fc.fcResource という名前のクラスを検索します。
Windchill リソースバンドルのデフォルトのロケールは、すべて en_US です。これらのリソースバンドルは基本名によって指定されるので、拡張子はありません。
IDE では、グラフィックコンポーネントおよび対話を処理するコードが生成される場合があるので、生成されたセクションにリソースバンドルへの参照を入れないでください。コードを変更および再度生成する場合は、これらの参照が失われます。代わりに、ハードコードされたラベルをリソースバンドルの適切なラベルでオーバーライドするローカライズメソッドを作成して、生成されたコードの外側に挿入します
以下の例では、表示テキストをロケール依存にする方法を示します。たとえば、ローカライズメソッドの
lblUser.setText(RB.getString("lblUser") + ":");
という行は、lblUser として内部定義されたラベルを、lblUser キーに対応するリソースバンドルの文字列に関連付けます。
{"lblUser","User"},
文字列 User は、このラベルに表示されます。
static ResourceBundle RB;
public void addNotify() {
//Localize
localize();
}
//{{DECLARE_CONTROLS
//}}

//{{DECLARE_MENUS
//}}
}
private void localize() {
RB=ResourceBundle.getBundle("wt.clients.administrator.LabelsRB"
,getLocale());
lblUser.setText(RB.getString("lblUser") + ":");
btnSearch.setLabel(RB.getString("btnSearch"));
btnCreate.setLabel(RB.getString("btnCreate"));
btnUpdate.setLabel(RB.getString("btnUpdate"));
btnAddUsertoGroup.setLabel(RB.getString
"btnAddUsertoGroup"));
btnView.setLabel(RB.getString("btnView"));
btnDelete.setLabel(RB.getString("btnDelete"));
btnClose.setLabel(RB.getString("btnClose"));
try {
//MultiList column headings
java.lang.String[] tempString = new java.lang.
String[4];
tempString[0] = RB.getString("Full Name");
tempString[1] = RB.getString("UserID");
tempString[2] = RB.getString("Web Server ID");
tempString[3] = RB.getString("E-Mail");
lstUsers.setHeadings(tempString);
}
catch (PropertyVetoException e) {}
}
rbInfo ファイルを使用する場合は、以下の Resource Info に関するセクションを参照してください。
package wt.clients.administrator;
import java.util.ListResourceBundle;
public class LabelsRB extends java.util.ListResourceBundle
{
public Object getContents()[][] {
return contents;
}
static final Object[][]contents = {
//Labels
{"lblAdministrative","Administrative"},
{"lblAllGroups","All Groups"},
{"lblAttach","Attach"},
{"lblAuthorization","*Web Server ID"},
{"lblBelongs","Groups User Belongs to"},
{"lblCity","City"},
{"lblCountry","Country"},
{"lblCreate","Create"},
{"lblCreated","Created"},
{"lblDelete","Delete"},
{"lblDescription","Description"},
{"lblEmail","E-Mail"},
{"lblFullName","Full Name"},
{"lblGroup","Group"},
{"lblGroupName","Group Name"},
{"lblID","*ID"},
{"lblLocale","Locale"},
{"lblModify","Modify"},
{"lblName","Name"},
{"lblRead","Read"},
{"lblState","State"},
{"lblStreet1","Street1"},
{"lblStreet2","Street2"},
{"lblTitle","Title"},
{"lblUse","Use"},
{"lblUser","User"},
{"lblUserName","User Name"},
{"lblZip","Zip"},
//Button Labels
{"btnAdd","Add>>"},
{"btnAddAll","Add All>>"},
{"btnAddRemove","Add/Remove Members"},
{"btnAddUsertoGroup","Add User to Group"},
{"btnApply","Apply"},
{"btnCancel","Cancel"},
{"btnClear","Clear"},
{"btnClose","Close"},
{"btnCreate","Create"},
{"btnDelete","Delete"},
{"btnGenerate","Generate Now"},
{"btnNewGroup","New Group..."},
{"btnNewUser","New User..."},
{"btnOK","OK"},
{"btnRefresh","Refresh"},
{"btnRegenerate","Regenerate"},
{"btnRemove","<
{"btnRemove","<
たとえば、フランス語のリソースバンドルを作成するには、wt.clients.administrator パッケージに LabelsRB_fr という新しいクラスを作成します。このクラスには、lblAdministrative などの同一のラベルキーが含まれますが、その値は Administrative ではなく、administratif になります。その他のすべての値も同様に、対応するフランス語に変更されます。新しいクラスをコンパイルすると、Java ランタイムで Administrator クライアントのフランス語のリソースバンドルを検出できるようになります。