Как получить файл .po из файлов .pot

Я использую cakePHP 2.0 и использую консольный инструмент для создания одного .../app/locale/default.pot . Теперь я хотел бы, чтобы мой сайт был переведен на несколько языков. Я прочитал абзац об интернационализации в кулинарной книге cakephp (http://book.cakephp.org/1.2/en/view/162/Internationalizing-Your-Application).

Я копирую файлы default.pot в

  • .../app/locale/eng/LC_MESSAGES/default.pot
  • .../приложение/локаль/fre/LC_MESSAGES/default.pot
  • .../app/locale/pol/LC_MESSAGES/default.pot
  • ...

И введите строку перевода с помощью текстового редактора utf-8 (как gedit). И... мой сайт вообще не переводится.

Я заметил, что AppController может реализовать некоторый код для изменения Configure::write('Config.language', some_three_letters_language), поскольку конфигурация ничего не изменила, я реализовал очень простой код.

// in AppController
public function beforeFilter() {
        Configure::write('Config.language', 'fre');
}

Почему функция перевода всегда возвращает аргументы, а не переведенную строку в файлах .pot (в представлениях __('Something') -answers-> 'Something')?

Я нигде не нашел, что файлы .pot переведены в .po. Как я могу получить эти файлы .po с помощью REHL или CentOS (не могу получить подходящий пакет с именем po или poeditor)?

Спасибо за Ваш ответ.


person MUY Belgium    schedule 10.04.2012    source источник


Ответы (1)


Файлы .pot и .po имеют один и тот же формат. .pot означает «шаблон». Разница в том, что вы должны использовать этот файл шаблона и передать его своим переводчикам, которые создадут переведенные файлы .po. Файл .pot является шаблоном для нескольких локализованных файлов .po. См. http://www.gnu.org/software/gettext/manual/gettext.html#Files.

Другими словами, достаточно просто переименовать .pot в .po.
В правильном рабочем процессе gettext есть msginit для этого, который также установит для ряда заголовков правильные значения для выбранной локали.

person deceze♦    schedule 10.04.2012
comment
Спасибо за ваши ответы. Я переименовал свой fre/RC_MESSAGES/default.pot в default.po, но это не решило проблему. - person MUY Belgium; 10.04.2012
comment
RC_MESSAGES? Должно быть LC_MESSAGES. - person deceze♦; 10.04.2012
comment
Да, извините, я изменил его. Знаете ли вы способ проверить подлинность файлов .po? - person MUY Belgium; 10.04.2012
comment
Использование любой из утилит gettext или редактора .po, такого как Poedit, должно помочь вам в этом. - person deceze♦; 10.04.2012
comment
Я не понимаю, что произошло, но я уничтожил все строки перевода и перестроил все, и... это сработало. - person MUY Belgium; 10.04.2012