2010-11-25 11 views
0

実行時にxml:languageを変更するには?実行時にxml:langの値を設定するには?

状況は、ブラウザ言語として「EN」が選択されているとします。他の何人かのユーザは、例えば、非常に同じ言語特性の「FI」を有する。最初の男のために、すべてが英語で表示され、それに応じてフィンランドでは2番目の男が表示されます。 2人のユーザーはGoogle Chromeを使用しており、両方ともxml:langがコードのデフォルトの「en-US」に設定されているため、フィンランドのテキストは英語のように扱われます。今私が望むのは、xml:langの設定レベルでフィンランドのテキストがランタイムにフィンランド語として認識されているということです。だから、xml:lang値は今のようにハードコーディングできません。私はまた、実行時に1つのフィールドを変更できないため、7つの異なるページを7つの言語に作成したくありません。

私の設定は、i18n用にstruts2とxworkを持つものです。セットアップは変数xml:langを持つhtmlタグを持つjspファイルで、実行時にその設定を変更する必要があります。

答えて

1

この値を<html>レベルに設定するとします。

例現在のコード:

<html lang="en" xml:lang="en"> 

例改訂コード:

<html lang="${action.language}" xml:lang="${action.language}"> 

次に、あなたのStruts2のアクションにgetLanguage()メソッドを追加します(ちょうどすべてが継承する基本アクションの上に置きます)、

public String getLanguage() { 
    // return the appropriate language based on the user's choice 
} 
+0

このソリューションをお寄せいただきありがとうございます。私は1行追加しましたjava.util.Locale locale = getLocale();戻り値は戻り値locale.getLanguage()でした。この方法で、ブラウザによるデフォルトの言語設定が考慮されます。 – mico

+0

私は、メニューがデコレータファイルからロードされ、次にコンテンツがjsp&strutsである複雑な構造を持っていました。ブランクのタグをメニューファイルに残すと、クロムはコンテンツファイルの言語を認識するのに役立ちました。 – mico

関連する問題