.po файл для переводов по умолчанию для библиотеки cakephp

Как добавить переводы для файлов cakephp libs в файл default.po
например
- название месяца
- название дня
- timeAgoInWords

Я пытаюсь добавить строки в default.po вручную,
но каждый раз, когда я обновляю его из default.pot (используя poedit), строки исчезают.

пожалуйста, помогите мне решить эту проблему - можно найти решение, используя отдельный файл .po


person baur79    schedule 16.12.2010    source источник


Ответы (2)


я решаю это
- создайте /app/views/dummy.ctp
- продублируйте, скопировав перевод из cake \ libs \ view \ helpers \ time.ctp в dummy.ctp
- и cake i18n добавит перевод в default.pot

person baur79    schedule 17.12.2010

Вы можете увидеть соответствующие строки для timeAgoInWords в конце TimeHelper::timeAgoInWords. Это просто обычные строки перевода, такие как 'year', 'years', 'month', 'months' и т. Д., Просто поместите эти переводы в общий файл домена .po.

Есть один особый случай, когда полная строка даты может быть напечатана как 'on 18/2/09'. "On" можно локализовать, локализуя строку 'on %s', но формат даты необходимо передать функции timeAgoInWords:

$this->Time->timeAgoInWords($time, array('format' => __('Y-m-d', true)));

Названия месяцев следуют той же схеме, просто добавьте перевод для 'January', 'February' и т. Д. В вашем общем файле перевода домена. Не совсем уверен, где Cake выводит день, который нужно будет перевести. Пожалуйста, дополните.

person deceze♦    schedule 17.12.2010
comment
это нормально с переводами, но как поместить их в отдельный файл. Я знаю, что могу использовать решение домена для создания отдельных файлов, но это не способ редактировать cake \ libs \ view \ helpers \ time.php для добавления домена - person baur79; 17.12.2010
comment
@baur А, теперь я понимаю, о чем вы спрашиваете. Да, боюсь, кроме редактирования или переопределения метода Cake, настоящего решения нет. Вам нужно будет быть более осторожным, добавляя новые переводы в существующий файл ...: - / - person deceze♦; 17.12.2010