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