Функция t () не добавляет строку в интерфейс перевода - PullRequest
4 голосов
/ 13 июля 2011

Я использую php-код customfiel внутри одного из моих представлений для перевода строки, поскольку 2.x представлений плохо локализуется. я использую следующий код php:

echo t('Watch Video');

но строка не отображается в разделе «Интерфейс перевода».

спасибо за вашу помощь.

Lukas

Ответы [ 2 ]

8 голосов
/ 30 сентября 2015

Принятый ответ: неправильно , так как скрипт локализации ничего не сканирует.Строка регистрируется в интерфейсе перевода, как только она впервые передается через функцию t () на нестандартном языке.

Следовательно, для перевода не имеет значения, является ли код, который вы пишете, eval'd (интерпретируется из базы данных) или существует в источнике.Очевидно, что хорошей практикой будет хранить код в файлах, к которым он относится.

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

0 голосов
/ 13 июля 2011

База данных локализации создается путем сканирования исходного кода в поисках экземпляров функции t()Drupal.t() в Javascript).

Если соответствующий код был введен в текстовое поле в административной области Drupal, его нет в исходном коде, поэтому он не будет обнаружен процессом локализации.

По этой (и другим) причине вы должны поместить как можно меньше кода в текстовые поля администратора. Обычно есть альтернативный способ достижения того же самого, но даже если его нет, вы должны сократить код до минимума - лучше всего не иметь ничего, кроме однострочного вызова функции: пусть он вызывает функцию и напишите код функции в вашем модуле или теме. Таким образом, он будет проанализирован при запуске локализации.

...