Как правильно делать перевод JS в Drupal
Перейти до навігації
Перейти до пошуку
Переводы могут добавлятся только в js файлы подключенные через вызов drupal_add_js
Перевод добавляется только прямым вызовом Drupal.t в произвольном месте кода
правильно так
Drupal.t('title');
Drupal.t('texture');
неправильно
var t = Drupal.t;
t('title');
t('texture');
Сбрость кеш если стоит модуль admin_menu Flush-all-caches -> Css and javascript
или drush cc css-js
на крайний через Configuration -> perfomance -> clear all caches /admin/config/development/performance
при очистке кеша удалится переменная javascript_parsed variable_del('javascript_parsed') что приведет к парсингу js файлов
Зайти на страницу где подключается js с переводами
drupal_add_jsдобавляет файлы в массив$javascript = &drupal_static('drupal_add_js', array());- при рендеринге страницы вызывается
drupal_get_jsв котором вызываетсяhook_js_alter - в
locale_js_alterпроверяется есть ли файл вvariable_get('javascript_parsed', array()) - если нет то файл отдается на парсинг
_locale_parse_js_fileфункция регулярками формирует строки для перевода и добавляет их в БД (таблицаlocale_source) - если появилось что то новое пересобирается файл с переводами
sites/add/languages/ru{hash}в_locale_rebuild_js; - при вызове Drupal.t строка берется из файла с переводами и подставляются аргументы.