При написании скриптов, почти всегда необходимо выводить сообщения пользователю — уведомления об ошибках, предупреждения и другую информацию. Когда нужно изменить текст одного из таких сообщений, приходится копаться в громоздких скриптах и исправлять отдельные строки кода.
Чтобы облегчить себе работу, я написал небольшую функцию для удобной манипуляции пользовательскими сообщениями. Функция поддерживает произвольную вложенность объектов. Например, мы можем определить сообщения, которые будут выводиться при отправке комментария.
var messages = { ru_RU: {} };
messages.ru_RU.error = {
comment: {
add: 'Невозможно добавить комментарий',
remove: 'Невозможно удалить комментарий',
edit: 'Невозможно обновить комментарий'
}
};
И получать к ним доступ через функцию tr()
, разделяя вложенные свойства знаком двоеточия:
var msg1 = tr('error:comment:add');
var msg2 = tr('error:comment:remove');
var msg3 = tr('error:comment:edit');
Можно определить сообщения для других языков.
messages.en_US = {};
messages.en_US.error = {
comment = {
add: 'Cannot create comment',
remove: 'Cannot remove comment',
edit: 'Cannot update comment'
}
};
Задать язык по умолчанию можно, изменив значение settings.lang
:
settings: { lang: 'en_US' };
Или указав алиас языка во втором аргументе функции tr()
:
var msg1 = tr('error:comment:add', 'en_US');
Для того, чтобы начать использовать функцию — подключите ее прямо с репозитория на github:
<script src="https://raw.github.com/selevit/translate-js/master/translate.js"></script>
Теперь, для работы с сообщениями можно использовать следующий синтаксис:
/*
* В переменную message1 попадет строка
* из объекта messages[lang].error.comment.add
*/
var message1 = tr('error:comment:add');
/*
* А в переменную message2 — строка
* из messages[lang].error.comment.edit
*/
var message2 = tr('error:comment:edit');
Комментарии к статье: 11
Возможность комментировать эту статью отключена автором. Возможно, во всем виновата её провокационная тематика или большое обилие флейма от предыдущих комментаторов.
Если у вас есть вопросы по содержанию статьи, рекомендуем вам обратиться за помощью на наш форум.