SugarTalk - ресурс для администраторов и разработчиков системы SugarCRM.

Работа с многоязычностью в javascript

Работаю сейчас над одним модулем для SugarCRM и сразу делаю его многоязычным. Думаю, вдруг заморским девелоперам пригодится, так что сразу создам его  на русском и английском. Те, кто работал с поддержкой нескольких языков, знают, что на php это реализуется довольно просто, вернее, я бы сказал, что это уже реализовано. Но в данном модуле некоторые проверки у меня вынесены в javascript, и хотелось бы сообщения тоже выдавать на дефолтном языке crm. Недолго покопавшись в документации, нашел решение. Оказывается, и здесь уже разработчики SugarCRM обо всем позаботились.

1
2
3
4
// LBL_MODULE_CONTACT строка, хранящаяся в $app_strings
SUGAR.language.get('app_strings', 'LBL_MODULE_CONTACT');
// LBL_LIST_LAST_NAME строка, хранящаяся в модуле Accounts $mod_strings
SUGAR.language.get('Accounts', 'LBL_NAME');

И, как всегда, разберем ”живой” пример для того, чтобы усвоить материал и увидеть, как этим можно пользоваться на практике.

Задача: Не допустить некорректного ввода суммы в модуле сделки. Например, пользователь может свободно ввести отрицательную сумму сделки.

Наш javascript файл будет выглядеть следующим образом:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
function formSubmiter() {
var node = YAHOO.util.Dom.get('amount'); //Берем нод суммы
if (node)
{
  var amount = parseFloat(node.value); //Преобразуем во float
  if (isNaN(amount))//Если не получилось преобразовать
  {
    alert(SUGAR.language.get('Opportunities', 'LBL_INCORECT_AMOUNT'));
    return false;
  }
  else if (amount <= 0) //Если сумма отрицательная
  {
    alert(SUGAR.language.get('Opportunities', 'LBL_INCORECT_AMOUNT'));
    return false;
  }
}
return true;
}
YAHOO.util.Dom.get('EditView').onsubmit = function(){return formSubmiter()};

Результат:
Работа с мультиязычностью в javascript
Я немного прокомментировал js файл, чтобы было все понятно. На событие submit формы вызывается функция formSubmiter, и если сумма введена некорректно, то форма не сабмитится, и отображается сообщение об ошибке на языке, установленном пользователем по дефолту.

Все, что осталось – это добавить перевод LBL_INCORECT_AMOUNT в необходимые языковые файлы модуля сделки в вашей crm  и вывести на странице редактирования сделки данный скрипт. Будем считать это вашим домашним заданием .

Высказать своё мнение о статье Вы можете в комментариях, если Вас интересуют какие либо вопросы или дополнения, то обсуждение по данной теме доступно на нашем форуме.

Последнее изменениеПонедельник, 10 июля 2017 18:05
  • Оцените материал
    (0 голосов)
  • Опубликовано в SugarCRM
  • Прочитано 32052 раз

10538 комментарии

Оставить комментарий

Убедитесь, что вы вводите (*) необходимую информацию, где нужно
HTML-коды запрещены

Наверх

Последние новости

  • 1
  • 2
  • 3
  • 4

Популярные новости