Обрадовавшись появившейся мультиязычности в шестом Друпале быстренько установил 6.3 и... был несколько шокирован. Такое впечатление, что создать то ее создали, да забыли зачем. Типа собирались, но по ходу занялись другим и до конца не довели. Бывает.
Потому поделюсь первым, пускай и самым, похоже, тривиальным моментом, как создать меню на разных языках, не прибегая к таксономии (создание словарей для каждого языка - для многих это может оказаться ненужным в рамках небольших сайтов). Для профана в программировании, тем более недавно освоившему Друпал (каким я и явлюсь) , это будет не легко - подозреваю таких есть немало.
Итак: задача: Создание сайта на разных языках.
Средства: друпал 6.3. Должны быть включены модули Locale и Content Translation (включены в дистрибутив)
Решение:
1. Идем в Языки /admin/settings/language и добавляем нужные нам, а не нужные - убираем (это обычно английский, если он вам не нужен) - также вкладка /admin/settings/language/add, ставим язык по умолчанию, т.е. тот, который мы хотим видеть на главной странице
2. Переходим там в же в меню Языки во вкладку Настроить admin/settings/language/configure и видим четыре варианта мультиязычности. Выбираем нужный
*похоже вариант 4 через определение доменных имен будет работать не на всех хостингах
Я выбрал 3-й"Префикс пути с определением языка". От второго он мало чем отличается. Во втором ("Префикс пути") все пути к страницам с другими языками, отличными от установленного по умолчанию, будут иметь вид site/uk/page для украинского например или site/de/page для немецкого, тогда как для языка по умолчанию этой вставки, определяющей язык, не будет. Для варианта 3-го такая вставка будет и для языка по умолчанию.
3. Идем в Типы материалов (Content Types) /admin/content/types. Выбираем типы материала, который хотим чтобы имел переводы, например Страница, во вкладке Процесс в подменю Поддержка многоязычности ставим галочку "Включено, с переводом"
4. В разделе Меню /admin/build/menu/add создаем меню для каждого из языков, Напр. Русский, Англмйский, Украинский
5. В разделе Блоки /admin/build/block появляются соответсвующие блоки с такми же названиями. Ставим их в нужное место сайта, жмем Настроить и САМОЕ ГЛАВНОЕ: в Установки видимости страницы вставляем следующие строки:
это для блока, который будет показываться на русских страницах. Для остальных - изменяем буковки ru на нужные нам - en, de, uk...
6. Фсё! Заполняем созданные меню нужными нами пунктами и получаем многоязычный сайт. Для каждого материала при создании добавляем перевод - все работает красиво.
Ну это еще не все, правда. На мультиязычность не настраивается например страница Контакты, ее глючит с модулем Image и еще немало всего. но это уже другая песня.
Комментарии
Столкнулся с такой же проблемой...
Все сделал так же но для БЛОКОВ так же есть поле язык, где можно установить на страницах с каким языком должен отображаться БЛОК.... Таким образом можно добиться результат не вставляя PHP код для проверки текущего языка...
Язык для блоков меняется в Настройки меню + Navagation+ выбираете заранее созданный БЛОК жмете на настройки данного блока в открывшейся странице устанавливаете языковые настройки текущего блока...
Сохраняете...
У меня все работает...
И кстати модуль i18n хорошая вещь в данном случае
doctor сейчас конкретно застрял на меню. Как связать меню на разных языках не улавливаю? Посмотрите пожалуйста на мой сегодняшний форумный вопрос, может что-то прояснится и для Вас и для меня. В друпале очень много заморочек, где-то не так включил-проблема, а познания слабы.
anpal
сорри, модулем i18 не пользовался - решил штатными средствами друпал6, но у меня был совсем простенький сайт - из модулей только DHTMLmenu, Image, tinyMCE. вот он кстати
bios
не нашел такого - нельзя ли еще раз подробнее описать путь к настройке?
doctor!
Виталий смотрел Ваш сайт. Мой будет несколько большим, но идея мне понравилась в плане использовать как можно меньше модулей. Попытаюсь последовать этим путем, но позднее у меня будут несколько вопросов, если не затруднит ответьте пожалуйста. Если не успею сегодня вечером, то завтра вечером обязательно отпишу результат. Моя Ася 413864841. Скажите а как Вы переводили, например,наименование сайта и если есть у Вас украинский перевод Д6, то скиньте если можно, на киевском друпале не нашел нормального перевода. Сейчас делаю на русском и английском, затем добавлю украинский, далее видно будет.
С уважением Андрей или Андрей Васильевич роли не играет
с наименованием сайта, что выводится в самом верху - header - проблемы. штатными средствами не решить похоже. потому я просто его не вывешивал, а создавал блоки в боковом меню.. хотя у меня проще в данном случае - его можно было бы создать латиницей, название универсальное для всех языков.
можно в место где выводится header вручную перенести одну из областей вывода шаблона (page.tpl.php) - например, Заголовок и создать там зависимые от языка блоки для каждого языка. недостаток - это не будет отображаться в title сайта.
перевода как такового нету - перевел только около десятка фраз, что вываливаются на сайт - в контактах в первую очередь. могу экспортировать и переслать. в общем если что - аська 492782113
Спасибо.
Так же можно изменять меню и с book. Настоятельно рекамендую использовать данный способ формирования содержимого сайта с помощью подшивки. Исключительно прогресивный способ. Единственный который корректно работает как с меню так и с хлебными крошками. И вообще.
А почему у меня на главной (что на русском, что на английском с приставкой en) выводятся все новости включая другие языки? (хотя в story стоит например, Русский, но новость появляется там и там).
тоже не нашёл для блоков поле язык
извините, а это где если не секрет?
так пора спать. туплю уже
Я решила проблему проще
Все пункты меню, созданные как ноды прекрасно переводятся на другой язык.
А для тех пунктов, которые ссылаются на форум или другие существующие адреса (пункты, которые надо создавать прямо из меню), сделала два варианта на двух языках, и в css прописала видимость пунктов
да и еще не совсем понял
а организвать перевод пунктов
Primary links
А если есть уже две созданые страницы для двух разных языков их както можно связать, в 5 такое работало, туплю уже полдня ничего похожего найти не могу.
Класс! Спасибо, пригодилось!
Подскажите все таки, куда это нужно добавить???
САМОЕ ГЛАВНОЕ: в Установки видимости страницы вставляем следующие строки:
<?php global $language; if ($language->language == "ru") return true;
else return false;
?>
Почему то переведенное меню не отображается в английской версии и да где его переводить, в переводе самой страницы? Что бы не создавать новые пункты меню для каждого языка и не привязывать к ним новые ноды.