Читайте текущую культуру проекта ASP.NET MVC и изменения языка в JavaScript подтвердите

StackOverflow https://stackoverflow.com/questions/3651808

Вопрос

У меня есть подтверждение JavaScript. Мой текст на английском языке, но если я изменим язык / культуру моего проекта ASP.NET MVC, подтверждает, что Cource все еще английский.

Я могу контролировать его вручную и просто писать два метода 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 с атрибуция
Не связан с StackOverflow
scroll top