Перевод полей в файле node.tpl.php с помощью drupal 7 - PullRequest
1 голос
/ 25 декабря 2011

У меня есть друпал на английском / французском сайте. У меня есть пользовательский тип контента под названием «объявление» со всеми видами полей. Я создал файл 'node - ad.tpl.php' в моей директории темы настроить отображение контента «реклама». Я использую перезагруженную тему и DRUPAL 7.

Я пытаюсь перевести поля (как метки, так и значения) с помощью модуля «полевой перевод».

Полевой перевод работает, когда я СОЗДАЮ или МОДИФИЦИРУЮ контент через администратора.

Однако, когда я отображаю контент типа «ad», поля не переводятся. Это потому, что drupal вызывает 'node - ad.tpl.php' и перевод модуль, вероятно, не вызывается. При удалении 'node - ad.tpl.php' drupal вызывает default.tpl.php по умолчанию с похожими результатами.

Любая помощь будет оценена, Спасибо заранее,

Примечания: 1 - я правильно активировал все зависимости для модуля. 2 - Перевод интерфейса пользователя работает правильно.

1 Ответ

1 голос
/ 28 декабря 2011

ОК, я сам узнал, как это сделать.Я даю решение здесь.Для других это может помочь:

Сначала переведите метки полей и значения в Конфигурация> Язык и региональные стандарты> Перевести> Импорт.Не импортируйте значения как поля, а как пользовательский интерфейс.Не указывайте URL-адрес (только msgstr и msgid).

Теперь вам нужно добавить функцию t () в node.tpl.php, чтобы преобразование было эффективным.Итак:

В файле node.tpl.php, если вы хотите перевести метку поля, напишите: $ content ['field_my_field'] ['# title'] = t ($ content ['field_my_field'] ['# title']);

Затем для перевода значения поля сделайте это: $ content ['field_my_field'] ["# items"] [0] ['value'] = t ($ content ['field_my_field'] ["# items"] [0] ['value']);

Теперь вы можете визуализировать свое поле: print render ($ content ['field_my_field']);

...