translatable

Альтернативная технология мультиязычности и локализации. Основан на том факте, что любой переведенный материал добавляется в Drupal через формы, которые созданы с помощью API форм.

Любая форма может иметь свойство #translatable. Если оно имеет значение ложь (FALSE), материалы форм не смогут быть переведены. Если иное - модуль Translatable считает, что документ может иметь перевод. Если имеет значение правда (TRUE), модуль Translatable автоматически находит и показывает исходник материалов для перевода в форме.

Для этой цели он добавляет слой между API форм и базой данных. Translatable использует два метода для извлечения (выделения) данных. Вот они:

  • Генерация объектов перевода, таких как блоки, пункты меню или термины таксономии.
  • Синхронизированный перевод, как у документов.

Объекты перевода хранятся как простые строки в базе данных. Исходные строки сейчас заменены на локализованные строки с использованием отдельных запросов на перевод на основании представления. Любой дополнительный модуль можно заставить использовать этот метод перевода. Выбирая переведенные строки с использованием db_rewrite_sql() вообще возможно, однако сейчас не поддерживается ядром Drupal, поэтому по-прежнему CNW (нужно менять ядро).

Синхронизированные переводы являются взаимоотношениями между двумя объектами, находящимися в системе переводов. Например, node/18 может быть немецким переводом английской версии документа node/16. Синхронизированные переводы подходят для всех документов, которым нужно прикрепить язык чтобы построить "систему перевода". Из-за этого документы - единственные материалы, которые синхронизированы правильно. Модуль также добавляет документам такие же свойства, какие есть у них в D6.

Translatable поддерживает наиболее используемые объекты в ядре Drupal, такие как ноды, блоки, пункты меню, словари и термины таксономии. Он был разработан таким образом, что поддерживает основанные на CCK документы.

Что касается патчей, так же как у Localizer, требуется, чтобы вы применяли патчи к ядру Drupal чтобы позволить блокам и таксономии иметь перевод. Есть патчи для всех официальных версий Drupal.

Translatable в частности базируется на следующих модулях:

  • Localizer (Roberto Gerola)
  • Internationalization (Jose A. Reyero, )
  • Translation (Axel)
  • Switchlang (Heine Deelstra)
  • Translate (Rob Ellis)

Если вы намерены использовать модуль на работающем сайта, вас возможно заинтересует также модуль Transliteration.
http://drupal.org/project/translatable