ブラウザで別の言語が使用されている場合は、自動的に英語を選択する必要があります。
Strutsは、最も具体的なメッセージバンドルを見つけようとします(デフォルトのJVMロケールや言語の接尾辞を持たないメッセージバンドルなど)。 Normally it's something like this:
base + "_" + localeLanguage + "_" + localeCountry + "_" + localeVariant
base + "_" + localeLanguage + "_" + localeCountry
base + "_" + localeLanguage
base + "_" + default locale
base
...そこにはフランスのロケールではなく、彼は、ページには何のコンテンツを表示しません。
これは正しくないと思われます。メッセージキーを解決できない場合、"ロケール" ... "のバンド" ... "のキーメッセージが見つかりません"またはのような結果が得られますか? " ?fr.yourKey ??? "にstruts-config.xmlの<message-resources ... null="false" />
のような設定があるので、ページ上に、または少なくともログに何かが表示されるはずです。
私の提案は、org.apache.struts.util.PropertyMessageResources
のログを有効にして、何を見つけるかを確認することです。また、.propertiesファイルをチェックしてください。キーがデフォルトファイルで解決され、空である可能性があります。 (PropertyMessageResourcesは、その動作モードでやっている離れてから)現在の要求で使用するロケールを選択したプロセスについては
は、いくつかの点で Strutsのリクエストプロセッサは返却する責任があるorg.apache.struts.chain.commands.servlet.SelectLocale
への呼び出しを行いますロケール。
このクラスは、セッション内でキャッシュされたロケールを検索しようとします。そこに見つけられない場合は、リクエストに含まれているものを使います。そこに見つからない場合は、最終的にJVMロケールがデフォルトになります。ロケールが選択され、セッションでキャッシュされるようになりました。
これはStrutsクラスなので、struts-core JARで見つけることができます。使用している特定のバージョンのStrutsソースコードにアクセスできる場合は、ロケールの管理方法を自分で調べることができます。 Globals.LOCALE_KEYを使用しているコードは、あなたが後になるものです。
私の質問は違っていましたが、私がすでに知っていることを説明します:) –
@Comodore Panamo:私はいくつかの詳細で答えを更新しました。あなたが探している答えの種類を教えてくれない場合は、それが役立つかどうかを見てください。 – Bogdan