Вы здесь

Как вывести английское содержание в русской версии сайта?

0

Здравствуйте!
Есть мультиязычный сайт (6 языков) с нодой типа Анкета (много полей). Нужно заполнить ноду только 1 раз - на английском - и чтобы она отображалась на английском во всех языковых версиях.

Вариант с нейтральным языком не подходит. При выборе нейтрального языка - система переводит лейблы полей и значения полей-списков на выбранный язык интерфейса (переводы уже забиты в память). И получается каша из например русских лайблов и англо\русских значений в русской версии сайта. А мне нужно вывести полностью английскую версию анкеты в русской версии сайта (то есть чтобы вокруг содержания меню и прочее осталось на русском).

Выходом вижу выдёргивать отдельно лейбл и отдельно значение КАЖДОГО поля и в шаблоне переводить через t() функцию обратно на английский язык. Но функция t($russian_label, array(), 'en') - почему то не работает. Но даже если и разобраться с этим, то проделывать это для лейбла и значения каждого из почти сотни полей - очень долго.

Есть ли какой то вариант в шаблоне срендерить всё содержание (только содержание) махом на нужном языке? или хотя бы на уровне рендеринга полей целиком, не разбивая их отдельно на перевод лейбла и содержимого?

Удалять переводы английского на другие языки - не вариант. В других местах они нужны.

Заранее благодарю!

Версия Drupal: 
7.x
Категория: 
Multilingual
Вопрос задан 11.02.2018 - 23:45
Аватар пользователя Quty
Quty
33

Ответы

0

Нужно заполнить ноду только 1 раз - на английском - и чтобы она отображалась на английском во всех языковых версиях.

Выходом вижу выдёргивать отдельно лейбл и отдельно значение КАЖДОГО поля и в шаблоне

Есть ли какой то вариант в шаблоне срендерить всё содержание (только содержание) махом на нужном языке? или хотя бы на уровне рендеринга полей целиком, не разбивая их отдельно на перевод лейбла и содержимого?

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

Это позволит выводить то что нужно в определенном шаблоне, и использовать то что есть (переводы) там где это необходимо.

Ответ дан 12.02.2018 - 00:20

Лейблы - это половина проблемы. Ещё есть значения полей списков. В них стабильные значения (например, знаки зодиака), которые также уже переведены на все 6 языков.

Комментарий оставлен 12.02.2018 - 00:29

Если Вас не затруднит, набросайте, пожалуйста, пример использования. Хотя бы для одного поля и просто перевод на английский, без каких либо условий.

Комментарий оставлен 12.02.2018 - 15:42

Спасибо, field_info_instance - очень помог с переводом лейблов.

Но есть проблема с переводом значений. field_get_items - даёт результат только на английском, langcode игнорируется. Пытаюсь решить проблему через t() - но там свои приключения, которые подробно описал тут http://dru.io/question/9065

Комментарий оставлен 12.02.2018 - 23:57