は...日食この行の最初の文字列が翻訳されてはならないプロジェクトに通知するために
// $ NON-NLS-1 $
声明を提供しています。 ソース - >文字列の外部化
外部文字列には、サポートしたいすべての言語が含まれています。
のように見えるの翻訳が含まれるファイル: PluginPage.Error1 =テキスト1 PluginPage.Error2 =テキスト2
クラス翻訳に
private static final String BUNDLE_NAME = "com.plugin.name"; //$NON-NLS-1$
private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME);
private PluginMessages() {
}
public static String getString(String key) {
// TODO Auto-generated method stub
try {
return RESOURCE_BUNDLE.getString(key);
} catch (MissingResourceException e) {
return '!' + key + '!';
}
}
を読んで、あなたが好きそれを呼び出すことができます。
String msg = PluginMessages.getString("PluginPage.Error2"); //$NON-NLS-1$
編集:
文字列を外部化して元の文字列を使用する場合は、デフォルトの文字列を除くすべてのプロパティファイルからexternalize文字列を削除できます。バンドルがローカル言語に一致するメッセージファイルを見つけることができない場合は、デフォルトが使用されます。
これは実行時には機能しません。
はい、文字列を自分のファイルに変換しないで移動することができます。この問題は、リソースが混乱してしまうことです。しかし、世界で最悪のことではありません。ありがとう –
翻訳者が間違っているのは難しい技術です:-) リソースはResourceBundleとして完了していますか? – TofuBeer
はい。問題は、ファイルを送信する前にファイルを前処理するツールがあることです。私はすべてのリソースを分析し、新しい/変更された英語の文字列のみを送信するので、私はすべてのdo-not-translate文字列を無視したい。 –