Как я могу использовать несколько po-файлов в CakePHP? - PullRequest
2 голосов
/ 06 апреля 2009

Я только начинаю процесс изучения i18n в CakePHP, и я не могу найти правильную комбинацию файлов и функций, которая позволила бы мне использовать несколько po-файлов. Если я хочу использовать один po-файл (default.po) для каждого бита переводимого текста, это прекрасно работает, но я вижу, что очень и очень быстро становится неприемлемым шариком для волос. Я прочитал документы и несколько статей, которые я могу найти, но ни одна из них действительно не касается i18n, кроме обычного использования одного .po-файла.

Вот где я сейчас нахожусь:

  • Я "испек" свои po-шаблоны (файлы .pot) и скопировал их в app / locale / eng / LC_MESSAGES (я не собираюсь использовать текст по умолчанию в качестве ключа, чтобы я мог легко обнаружить отсутствующие ключи). На данный момент у меня есть -views-layouts-default.po и -views-pages-index.po.
  • В этих .po файлах я ввел текст, который хочу использовать для каждой клавиши.
  • На моей домашней странице (views / pages / index.ctp) и макете по умолчанию (views / layouts / default.ctp) я обернул текстовую клавишу, которую я хочу перевести, с помощью функции __ ().

Когда я загружаю домашнюю страницу, я вижу только ключи. Текст не был переведен. Если я выбрасываю файл default.po, все ключи, которые я вставляю, заполняются просто отлично. Я явно скучаю по какой-то части головоломки, но не могу ее найти. Любая помощь будет высоко ценится.

Спасибо.

1 Ответ

6 голосов
/ 06 апреля 2009

Я нашел кусок, который мне не хватало благодаря CakePHP Google Group. Я играл с удобной функцией __d (), но не имел четкого представления о том, как связать ее вместе с моими .po файлами. Ответ прост, если вы его знаете:

Перевод домена:

__d ( 'login', 'PLEASE_LOGIN' );

Будет искать ключ "PLEASE_LOGIN" в файле с именем login.po. Я не знал (и нигде не читал), что домен == имя файла po (без расширения). Изучение, которое имело все значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...