из пакета в формате Drupal 6 импортируются не все переводы

Файлы *.tgz, экспортируемые при выборе варианта «Drupal 6 формат пакета (перевод с папками)», вроде бы предназначены для распаковки прямо в каталог соответствующего модуля (либо в каталог Drupal, если это перевод ядра Drupal), после чего при включении модуля переводы для него автоматически импортируются в базу. Однако для некоторых модулей со сложной структурой (где имеются подкаталоги с файлами *.inc) такой вариант на самом деле работает не полностью — импортируются не все строки перевода.

Пример ошибки можно наблюдать, например, с модулем cck: если распаковать только Drupal и модуль cck, а также переводы для них, потом включить только модуль content, на странице /admin/content/types можно наблюдать непереведённые ссылки “manage fields”, хотя перевод «управлять полями» для них есть в пакете переводов для cck — в файле includes/translations/includes.ru.po (и после ручного импорта этого файла переведённая строка появляется на своём месте).

Причина подобной ситуации в том, что при автоматическом импорте переводов используются только те файлы переводов, которые находятся в каталогах translations, находящихся рядом с файлами *.module для активных модулей; поиск каталогов translations во вложенных подкаталогах не производится. В результате, поскольку в модуле cck в подкаталоге includes нет ни одного файла *.module, переводы из includes/translations/*.po никогда не будут импортированы автоматически. Аналогичная ситуация возникает и в некоторых других модулях (например, views).

Как с этим бороться? Один из возможных вариантов — не рассовывать файлы *.po по всем подкаталогам, а складывать их в один каталог translations на верхнем уровне; при этом предполагается, что файл *.module для «главного» модуля находится именно на верхнем уровне, а все прочие *.module, имеющиеся в пакете, имеют прямую или косвенную зависимость на этот «главный» модуль. Но могут существовать пакеты модулей, не удовлетворяющие этому ограничению (где модуль из подкаталога может быть активирован без модуля на верхнем уровне) — для таких пакетов в этом случае переводы не будут импортированы, пока не будет активирован хотя бы один модуль с верхнего уровня.

Комментарии (2)

Хотя, судя по http://drupal.org/node/484442, это и не должно работать :(


Новые сообщения форума

Новые комментарии на форуме