Непереведенные строки в переводе (патчи к Drupal 5.0)

Аватар пользователя vadbars@drupal.org vadbars@drupal.org 27 января 2007 в 16:23

Как выяснилось, некоторые сообщения даже после загрузки файлов перевода выводятся на сайте непереведенными, на английском языке.
Также в ходе генерации некоторые сообщения из текстов модулей не попадают в шаблоны для перевода (.pot). И, естественно, не попадают в файлы с переводами.

Причина довольно проста - в коде некоторых модулей сообщения выводятся без использования функции t(), ответственной за перевод этой строки. Это, например, модули forum.module (сообщение "Forums" при создании нового обсуждения модулей) и system.module (заголовок "Other" для раздела с доп. модулями на странице модулей) и т.п.

Поправить можно ручками: берем такое непереведенное сообщение и заключаем его в t(). К примеру: в фaйле system.module в строке 1541 вместо $module->info[['package'] = 'Other'; должно стоять $module->info[['package'] = t('Other');

А можно автоматизировать этот процесс, используя патчи. Несколько таких и прилагаю (Drupal 5.0.). В *nix это делается, насколько я знаю, командой diff, под Windows можно воспользоваться утилитой WinMerge или аналогичными. Можно также просто посмотреть содержимое патча (это обычный текстовый файл) и выполнить его инструкции вручную. Формат там простой: первые строчки - название изменяемых файлов, нечто типа "@@ -674,7 +674,7 @@" указывает номер строки для изменений. Строка с минусом должна быть удалена из "патчуемого" файла, строка с плюсом - добавлена.

ВложениеРазмер
Иконка простого текстового файла для forum.module819 байт
Иконка простого текстового файла для system.module556 байт
0 Thanks

Комментарии

Аватар пользователя vadbars@drupal.org vadbars@drupal.org 29 января 2007 в 15:46

А про Forums и Other :)
К тому же задача - получить после русификации полностью переведенный Drupal без необходимости что-то дорабатывать вручную.

Аватар пользователя rapitosov@drupal.org rapitosov@drupal.org 29 января 2007 в 17:01

Тут IMHO следует смотреть на профили установки, которые и исходные настройки должны проставить (например часовой пояс), и переименовать тип содержимого "Forums".

---
http://drupal5.ru - информация для друпателей
качественные ответы только на качественные вопросы

Аватар пользователя vadbars@drupal.org vadbars@drupal.org 29 января 2007 в 17:44

Forums, Page, Story переименовать (включая описание). Тип даты и времени, вывода чисел тоже установить принятые у нас. Профиль установки позволяет это сделать.
А вот с часовым поясом - ставить всем русским по московскому времени?

Кстати, интересный факт, при запуске инсталлятора с локализацией (файл ru.po) модуль перевода устанавливается сразу же включенным (оно и понятно).

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

Аватар пользователя rapitosov@drupal.org rapitosov@drupal.org 29 января 2007 в 18:11

Это не вопрос "простоты и простоты", а, скорее, "простоты и переносимости".

То есть разово проще сделать дамп, а если потом переделывать, отдавать другим разработчикам для допиливания и создавать на базе этого профиля другие - "проще" заморочится полноценным профилем.

---
http://drupal5.ru - информация для друпателей
качественные ответы только на качественные вопросы