簡體   English   中英

閱讀asp.net mvc項目的當前文化並更改javascript中的語言確認

[英]read current culture of asp.net mvc project and change language in javascript confirm

我有一個JavaScript確認。 我的文字是英語,但是如果我更改asp.net mvc項目的語言/文化,請確認仍然是英語。

我可以手動控制它,只需編寫兩個javascript方法(適用於兩種語言),但我認為它並不是那么干凈。 如果我將使用3種以上的語言,它將變得更加骯臟。

您能給我一些提示我如何解決我的問題?

最適合我的是使用一些元標記或在哪里可以確認資源文件中的文本進行確認。

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

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

您只能使用字符串執行單獨的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 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM