i18n мультиязычность

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

Аватар пользователя DDDDD099 DDDDD099 27 июля 2012 в 21:07

Столкнулся с необходимостью создания мультиязычного сайта.

Если пользователи будут участниками блогов (на Украине это 50x50 по языковым предпочтениям)- то как лучше это организовать? Основная сложность с которой столкнулся - это фильтрация во вьюс. Может быть можно как-то подставлять аргумент ru или uk - но не получается.

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

2.В фильтре выставил 2 параметра - "No language" и "Current user's language"

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

4. Недостаток в том, что если какойто-то блоггер решит с нейтрального перейти на русский - то в украинском представлении тизера его ноды не будет - ЕСЛИ КОНЕЧНО ОН НЕ СДЕЛАЕТ ПЕРЕВОД ЕЩЕ И НА УКРАИНСКИЙ.

Может есть какие-то другие рецепты?

Комментарии

Аватар пользователя Stroitel Stroitel 27 июля 2012 в 22:52

В "настройках публикации" в разделе "Поддержка многоязычности"для ДАННОГО типа материалов можно указать "отключено"

---
Поддержка многоязычности
Отключено
Включено
Включить и разрешить перевод
---

У меня так сделаны объявления -статьи и новости - либо нейтральны к языку (и показывает в неизменном виде при любом выбранном языке) либо рус/укр. Вывод делал через вьювс, как у вас описано выше.
А вот в объявлениях запретил мультиязычность - получил что показывает объявления не зависимо от выбранного языка. В качестве бонуса - названия полей (типа связь, населенный пункт спрос/предложение, раздел и прочее) - показывает на локальном (выбранном) языке (укр или рус)
Для остальных типов материалов "Включить и разрешить перевод"
http://clubstroitel.com

Аватар пользователя DDDDD099 DDDDD099 27 июля 2012 в 23:20

Да спасибо отличный пример. Буду пробовать. Но у вас материалы возможно модер добавляет, а если например будет добавлять пользователь и только на одном языке - тогда некоторые материалы с мультиязычностью не будут выводиться?

Аватар пользователя Stroitel Stroitel 27 июля 2012 в 23:58

Если отключить мультиязычность в типе материала, то насколько я понимаю он будет "undefined" и будет показываться везде. иметь этот тип материалов "отдельно для рус и отдельно для укр" - уже не получится. Если в материале используются поля - то их можно переводить (например теги)

Аватар пользователя DDDDD099 DDDDD099 28 июля 2012 в 0:22

Я мультиязычность не отключал но по умолчанию сделал материал на нейтральном языке - там есть такая функция. То есть показывается везде пока автор не присвоит материалу какой-то язык. А присваивать язык как я понимаю имеет смысл только в случае если материал есть на 2х языках - иначе нет смысла. Но если все-таки присвоят один язык то материал выпадает из выдачи на другом языке - вот в чем проблема, фильтры уже по всякому крутил и пока ничего не получается. У меня только один тип материала - блоги. Возможно тогда и нет смысла делать мультиязычность для блогов.

Аватар пользователя Stroitel Stroitel 28 июля 2012 в 0:41

В этом может быть смысл, например если делаеш сайт не мультиязычным, а для разных регионов.
Например украинская версия для украины, и ставим, например анонсы выставок в Украине на укр. языке. А для Польских выставок - выбираем польский язык - соотв материл про Польшу и Украину будет показан пользователям в зависимости от выбранного ими языка. Интерфейс, естественно, будет на том-же языке.
Если необходимо материал показать обоим - то либо надо его перевести на оба языка, либо выбрать нейтральный язык. Но не факт что смогут прочтать Smile укр и русский - значительно проще в этом плане.

Все зависит от того что надо в конкретном случает на сайте. В этом и прелесть Друпала Smile

Аватар пользователя Stroitel Stroitel 28 июля 2012 в 0:47

Кстати - модер у меня не добавляет. Объявления добавляют сами пользователи (естественно, что-бы не спамили - сначала надо зарегистрироваться на сайте, ботов уже нарегалось более чем достаточно - приходится периодически капчу менять и по-другому извращаться - пользователю нельзя усложнять регистрацию, но как-то ботов "отсеивать" все-же надо). А вот статьи, анонсы выставок и ленту новостей - могут добавлять только пользователи с правом редактора (заводим новую роль пользователей и добавляем необходимые права).

В итоге имеем - ВСЕ могут смотреть все материалы. Зареганые пользователи - могут сами добавлять объявления и могут смотреть профили других пользователей (аноним только видит имя того, кто добавил объявление, но не может просмотреть его профиль с дополнительной инфой). А кому админ сайта ВРУЧНУЮ дал права редактора - могут еще добавлять и другие типы материалов (новости, статьи и прочее). Это в моём, частном случае