2017-09-11 16 views
0

ファイルmessages_en.propertiesmessages_es.propertiesなどにある現在のロケールに応じて、すべてのメッセージを取得する必要がありますが、それ以上の値を取得する方法はありませんプロパティの。すべてのSpring Boot I18Nメッセージを取得する方法

私が必要とするのは、現在のロケールに対応するすべての翻訳を返すだけで、フロントエンドのAngularjで国際化を処理できます。事前に

おかげで、

+0

は、なぜあなたは春のリソースを使うのですが、フロントエンドはいますか? JSONのようなフロントエンドに適したフォーマットを使用してみませんか? angle-translateは、JSONをそのままの状態でサポートします。 –

+0

私はAngularJSのSPAで作業していますが、これはすでに多くのことが行われており、すべてのビューがフロントエンドでレンダリングされています。私はすでにすべての設定が完了しています。私の唯一の問題は、messages_CURRENT_LOCALE.propertiesファイルに対応するすべてのメッセージを返すことです。 –

答えて

-1

あなたがplain old Java to load all entries of a properties fileを使用することができます。春は何を翻訳する必要がない場合

Properties properties = new Properties(); 
InputStream in = getClass().getResourceAsStream("messages_en.properties"); 
properties.load(in); 
in.close(); 
for (Map.Entry<Object, Object> entry : properties.entrySet()) { 
    System.out.println(entry.getKey() + " -> " + entry.getValue()); 
} 
+1

問題は、階層的なリソースバンドルのセマンティクスを尊重しないことです。つまり、messages_en_US.propertiesに翻訳が見つからない場合は、messages_en.propertiesを参照してからmessages.properties(またはデフォルトのロケールのバンドル)まず、戦略に応じて) –

+0

@JBNizet良い点ですが、言語を持つロケールと国やバリアントを使用しない場合や、プロパティファイルにすべてのメッセージが含まれている場合は、おそらく必要ありません。 – howlger

関連する問題