прочитать текущую культуру проекта asp.net mvc и изменить язык в javascript подтвердить - PullRequest
0 голосов
/ 06 сентября 2010

У меня есть подтверждение javascript.Мой текст написан на английском, но если я изменю язык / культуру моего проекта asp.net mvc, конечно, все еще английский.

Я могу управлять им вручную и просто написать два метода javascript (для обоих языков)но это не так чисто, я думаю.И если у меня будет более 3 языков, он будет более грязным.

Не могли бы вы дать мне несколько советов, как я могу решить мою проблему?

Лучше всего для меня иметь подтверждение с некоторым метатегили что-то, где я могу дать свой текст из файлов ресурсов.

Ответы [ 2 ]

1 голос
/ 06 сентября 2010
<script language="javascript">
var confirmMessage = "<%= localizedConfirmMessage %>";

// use confirmMessage when showing confirm popup
...
</script>
0 голосов
/ 06 сентября 2010

Вы можете создать отдельный файл 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))) {
...

Вы можете захотеть обернуть все в одну глобальную переменную, это было бы более аккуратно. Также не забывайте перезаписывать метод MultilanguageStrings.get.

...