Работа с файлами перевода Movable Type.

Совпадение, но через два дня после публикации последней статьи на тему руссификации Movable Type, вышел перевод от проекта movable-type.ru. В сравнении с моим переводом, он более полный, но делался, судя по всему, по французскому файлу трансляции от версии 4.0 и в нем отсутствует более 300 строк, а также полтора десятка строк остались на французском.

Для того, чтобы синхронизировать файл перевода с текущим релизом (а также будущими релизами) и добавить в него отсутствующие строки, нужен полный комплект исходников Movable Type из svn-репозитария — в них пристутствует набор скриптов для манипуляций с файлами переводов (для работы скриптов нужен perl и набор unix-утилит - shell, awk, find и т.д.). Сначала делаем чекаут исходников из репозитария:

svn co http://code.sixapart.com/svn/movabletype/latest mtos-latest

После выполнения данной команды в каталоге mtos-latest будет три подкаталога: dev, stable и release. Нам нужен подкаталог release, в котором находится последний релиз Movable Type с которым мы будем работать. Первым делом кладем наш файл перевода ru.pm в подкаталог lib/MT/L10N/. Следующим шагом запускаем собственно генерацию обновленного файла перевода из каталога release:

sh build/l10n/make-l10n ru

В результате работы данного скрипта в каталоге /tmp будет сгенерировано четыре файла:

  • ru-base.pm — файл со всеми строками трансляции (в том числе дублирующиеся строки)
  • ru-nodupe.pm — файл с удаленными дубликатами строк
  • ru-old.pm —строки трансляции которые более не используются
  • ru.pm —новый файл перевода

В новом файле перевода /tmp/ru.pm будут добавлены отсутствующие строки перевода (отмечены комментарием «Translate - New») и будут отчемены строки с регистром перевода отличающимся от оригинала — например, переводы следующего вида:

'video' => 'Видео'

Этот файл уже готов к использованию, но для полноценной поддержки русского языка я сделал дополнительный фильтр ru-filter.pl, через который надо пропустить файл перевода:

cat /tmp/ru.pm | perl ru-filter.pl > lib/MT/L10N/ru.pm

Данный фильтр делает следующее:

  • отмечает комментарием «# Translate - No translation» непереведенные строки, в которых оригинал и перевод совпадают
  • отмечает комментарием «# Translate - No russian char» строки перевода в которых не встречаются русские буквы
  • отключает строки с пустым переводом
  • добавляет perl’овый код для правильной поддержки множественного числа

Поддержка множественного числа сделана через переопределение функции quant из Locale::Maketext. Теперь второй и третий параметры этой функции принимают формы слова для значений числительного от 2 до 4 и от 5 до 0 соответственно. Таким образом можно писать «[quant, _1,минута,минуты,минут]» и соответствующий текст будет генерироваться как «1 минута, 2 минуты, 5 минут» вместо «1 минута, 2 минут., 3 минут.»

Трэкбэков: 1

Ниже указаны ссылки на блоги ссылающиеся на данную запись Работа с файлами перевода Movable Type..

Трэкбэк URL для данной записи: http://alexd.vinf.ru/mt/mt-tb.cgi/13

Для сборки руссифицированной версии Movable Type нам опять понадобятся исходники из svn-репозитария. Делаем чекаут, как описано в предыдущей статье о работе с файлом перевода и прикладываем к полученным исходникам патч patch-rubuild.gz, который добавля... Читать далее

Оставьте комментарий

Об этой записи

Эта страница содержит одну запись опубликованную Март, 30 2008 13:35 автор которой Алексей Демидов.

предыдущая запись - Руссификация Movable Type 4.1.

следующая запись - Сборка русской версии Movable Type.

Загляните в архив, где есть ссылки на все старые записи.

Апрель 2008

Пн Вт Ср Чт Пт Сб Вс
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30        

Облако Меток

Ссылки из Google Reader