を使用している私は英語に私のJSF Webプロジェクトのデフォルトの場所を設定したかったので、 私は次のようでした:<デフォルト・ロケール><サポート・ロケール>の代わりに、動作するようには思えない
messages_de_DE.properties
messages_en_EN.properties
と:私は私のsrcフォルダde.hof.tschuwwa.resources
でパッケージを持っているし、そのパッケージの 内側に私は2つのプロパティファイルを持っている
<application>
<locale-config>
<default-locale>en_EN</default-locale>
<supported-locale>de_DE</supported-locale>
</locale-config>
<resource-bundle>
<base-name>de.hof.tschuwwa.resources.messages</base-name>
<var>msg</var>
</resource-bundle>
</application>
-config.xmlが直面しています私は小さなXHTMLファイルでそれをテストした:
<h:body>
<ui:composition template="/templates/master.xhtml">
<ui:define name="header">
<h:form>
<h:commandButton action="#{navigationService.toLogin}" value="#{msg['login']}" />
<h:commandButton action="#{navigationService.toRegister}" value="#{msg['register']}" />
</h:form>
</ui:define>
</ui:composition>
</h:body>
私は自分のアプリケーションを起動すると、それはドイツの値ではなく 英語の値を示しています。私はデフォルトの言語を英語にしたかった。
どのようにデフォルト言語を設定できますか? faces-config.xml default-locale が動作していないようです。
また、私は自分のローカリゼーションをどのように変更できるか知る必要があります。私はこの小さな サービス書いた:
@Named
@SessionScoped
public class LanguageService implements Serializable {
private static final long serialVersionUID = 1L;
public void changeLanguage(String language) {
FacesContext.getCurrentInstance().getViewRoot().setLocale(new Locale(language));
}
}
をして、フォーム内の次のボタンを試してみた:
<p:commandButton id="english" value="English" action="#{languageService.changeLanguage('en')}" immediate="true" />
<p:commandButton id="german" value="Deutsch" action="#{languageService.changeLanguage('de')}" immediate="true" />
が、私はそれらを使用したときに何も起こりませんでした。
ブラウザはデフォルトのロケールをDEに設定していますか? –
私のブラウザが英語のデフォルトのローカルに変更されても、私のウェブアプリケーションはすべてのドイツ語のメッセージを読み込みます – Mulgard
本当にen_ENのロケールはありますか? en_USまたはen_GBを使用すると、すべてが正常に動作することを90%確信しています。もちろん、プロパティファイルの名前を変更します。 – Osw