Мультиязычность в drupal 7

Главные вкладки

Аватар пользователя aRpi aRpi 21 июля 2012 в 14:38

Мультиязычность нод.

Скачать последнею дев версию друпала (стабильная глючит).

В только что установленный друпал необходимо скопировать следующие модули:

entity_translation
title

И активировать вот эти:

Core : Field UI - что бы настраивать тип материала
Field : Title - что бы переводить заголовки нод
Multilingual - Entity Translation : Entity Translation
Multilingual - Entity Translation : Entity Translation Upgrade

Теперь нужно указать способ распознания языка, на странице: /admin/config/regional/language/configure
Я сделал через сессию.

Настроить тип материала который должен быть мультиязычным:

1) Там где настройка публикации, выбрать опцию "Enabled, with field translation"

2) В управление полями, изменить поле body, активировав в самом низу Field translation. Что бы текст ноды поддерживал мультиязычность.

3) Там же в управление полями, для поля title, заменить его выбрав соответствующие действие, должна быть ссылка replace. Это необходимо так как стандартный title мультиязычность не поддерживает.

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

Не забудьте активировать блок переключения языков, в настройках блоков.

Мультиязычность меню.

Необходимо скачать ещё два модуля:

i18n
variable

И активировать следующий модуль:

Multilingual - Internationalization : Menu translation

Теперь необходимо зайти в редактирование меню. И единственная предварительная настройка, это активировать в нем пункт "Translate and Localize. Menu items with language will allow translations. Menu items without language will be localized".

После этого можно смело переводить как меню, так и его пункты...

Комментарии

Аватар пользователя Antoniy Antoniy 28 декабря 2012 в 2:30

"aRpi" wrote:
После этого можно смело переводить как меню, так и его пункты...

Странно, но созданные в ручную пункты не переводит, не находит строки

Аватар пользователя Antoniy Antoniy 4 января 2013 в 21:31

"xSPiRiTx" wrote:
можно подробнее?

Вопрос не ко мне, но я отвечу, так как пробовал делать, как описывает ТС.

Недавно заменил ядро на dev и вроде как строки перевода меню стали видны.. а сейчас понимаю, что вопрос более глубинный. Надо разбираться с настройками модуля и подмодулей i18n.

Еще были странности с модулем Superfish (модуль не видел переводов main menu, а само main menu блоком выводило переводы), тоже на dev заменил, а потом опять какие то странности... примерно тут описал.

Я брал дистрибутив и на нем пытался донастроить мультиязычность, но потом запутался. Думаю, надо с ядра собрать мультиязычность, разобраться что к чему с нуля.

Аватар пользователя Antoniy Antoniy 7 января 2013 в 18:18

Начал делать мультиязычность с ядра (с чистой установки, без дистрибутивов).

С версией 7.18 строки перевода меню видны. Язык по умолчанию английский (source), второй язык русский.

Создаю меню (язык нейтральный), в переводах по фильтру "меню" строки видны, переводятся, при переключении языка все нормально. Также переводится через вкладку Translate в редактировании пунктов меню. Также и при создании меню через создание ноды (используется entity translation menu).

Detection method в User interface text language detection (Locale) и в Content language detection (entity_translation) - URL. Переключение языка через блок Language switcher (User interface text).

Вопрос что будет, когда меню будет создаваться модулями, например, views. Посмотрим.

Аватар пользователя Funtik44 Funtik44 16 января 2013 в 6:45

Перевожу сайт на второй язык. На сайте установлен Advanced Forum. Удалось перевести названия форумов и контейнеров. При переключении языка всё работает, но на главной странице форума выводится общее количество тем (двух языков, тип материала при создании имеет язык текущего пользователя), хотя если провалится в конкретный форум, то он отображает темы только под тем языком, под которым эту тему создали. Помогите с решением данной проблемы, всю голову уже сломал. Подскажите куда копать и что я мог упустить.

PS Для примера вот сайт. Обращаю внимание на то, что основной язык английский и по ссылке стоит смотреть работоспособность форума только на примере первого форума, первого контейнера ("General questions of ..."). Темы внутри на русском языке, поэтому в англ языке не отображаются, для этого необходимо переключить справа вверху язык, темы появятся. Независимо от того, что вы будете делать, на главной странице форума, на против "General questions of ...", будет выводится одно и тоже количество топиков.

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

Аватар пользователя Antoniy Antoniy 16 января 2013 в 13:30

Entity Translations Menu (подмодуль Entity Translations) справляется с переводом меню при создании нод и переводов. Но когда открываешь перевод заново, то в поле меню непереведенный заголовок (из языка по умолчанию), приходится заново выставлять перевод.

Аватар пользователя Antoniy Antoniy 17 января 2013 в 11:49

Исключил нейтральный язык при создании меню и переводах (для каждого языка свои пункты меню) и Entity Translations Menu сохраняет переводы при редактировании и алиасы из тайтлов меню языка-источника с первого раза подхватываются теперь.

Но теперь проблема в Views: выводятся поля со всеми вариантами языков. По языку пока не нашел как то фильтровать в Views.