Используя Drupal, как заставить t ('') заполнить строку? - PullRequest
0 голосов
/ 12 февраля 2012

Я пытаюсь убедиться, что все переводимые строки присутствуют в базе данных. Некоторые из них появляются очень редко (различные ошибки проверки формы), поэтому было бы больно воспроизводить их все.

Вместо этого я создал модуль администратора, который после вызова проходит через массив всех переводимых строк и выполняет echo t('[the string from the array]').

После этого я ожидаю, что смогу перевести эти строки, используя admin/config/regional/translate/translate. Но не все из них есть.

  • Чего мне не хватает?
  • Если по какой-то причине это невозможно, есть ли какая-нибудь функция, которая будет принудительно вводить?

Ответы [ 2 ]

0 голосов
/ 13 февраля 2012

Установите и используйте модуль «Извлечение шаблона перевода», как предложено Владом Стратулатом. Модуль позволяет вам анализировать все ваши модули и темы и извлекать все строки, которые используются в функции t ().

В результате получается файл .po со всеми парами строк оригинал / перевод. Вы можете открыть .po (это простой текстовый файл, так что используйте ваш любимый текстовый редактор или программное обеспечение POEdit) и проверить и перевести отсутствующие строки. Наконец, заново загрузите полный .po в Drupal.

0 голосов
/ 12 февраля 2012

Попробуйте следующее.

foreach(array(t('foo'), t('bar')) as $t) {
    echo $t;
}

Вы никогда не должны использовать t() для перевода переменных, таких как вызов t($text). Подробнее о функции t().

Но в любом случае лучший способ - создать файл .po из вашего модуля и экспортировать его в Drupal, используя Извлечение шаблона перевода .

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

...