Читайте текущую культуру проекта ASP.NET MVC и изменения языка в JavaScript подтвердите
-
01-10-2019 - |
Вопрос
У меня есть подтверждение 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
.