質問

JavaScriptの確認があります。私のテキストは英語ですが、ASP.NET MVCプロジェクトの言語/文化を変更する場合、確認はまだ英語です。

手動で制御でき、2つのJavaScriptメソッド(両方の言語について)を書くことができますが、それほどきれいではありません。そして、もし私が3つ以上の言語を持っているなら、それはもっと汚いでしょう。

ヒントを教えていただけませんか。どうすれば問題を解決できますか?

私にとって最良のことは、いくつかのメタタグや、リソースファイルからテキストを渡すことができるもので確認することです。

役に立ちましたか?

解決

<script language="javascript">
var confirmMessage = "<%= localizedConfirmMessage %>";

// use confirmMessage when showing confirm popup
...
</script>

他のヒント

文字列のみでseperate JSファイルを行うことができます。

var MultilanguageStrings = {
    'savingConfirmation': {
        'en': 'Do you want to save changes?',
        'pl': 'Czy chcesz zapisać zmiany?'
    },
    'fatalError': {
        'en': 'Fatal error occured.',
        'pl': 'Wystąpił krytyczny błąd.'
    },
    'get': function (key, lang) {
        if (this[key] === undefined)
            return 'Error. There is no such message.';
        if (lang == 'en' && this[key]['en'] === undefined)
            return 'Error. There is no such message.';
        if (this[key][lang] === undefined)
            return this.get(key, 'en');
        return this[key][lang];
    }
};

また、どの言語が設定されているかを使用して動的に生成されたJSファイルを作成するよりも:

var currentLanguage = 'en';

また、この情報を異なる方法で入手することもできますが(Ajaxなど)、上記のソリューションにはこの利点があり、コードが既にロードされており、 currentLanguage 設定されています。

次に、コードで:

...
if (confirm(MultilanguageStrings.get('savingConfirmation', currentLanguage))) {
...

すべてを1つのグローバル変数に包むことをお勧めします。また、メソッドを上書きしないことを忘れないでください MultilanguageStrings.get.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top