Как я могу объединить Catalyst и ngettext? - PullRequest
3 голосов
/ 30 января 2009

Я пытаюсь разобраться в i18n с Катализатором. Насколько я понял, существует два способа сделать перевод с помощью Perl: Maketext и Gettext . Однако у меня есть требование поддерживать формат gettext .po , поэтому в основном я использую gettext.

Теперь я нашел Catalyst :: Plugin :: I18n и, следовательно, Locale :: Maketext :: Lexicon, который делает то, что я хочу, большую часть времени. Однако он не генерирует правильные формы плюрализации, то есть правильно записывает msgid_plural и msgstr[x] в файл .pot . Вероятно, это происходит потому, что Maketext зависит от обозначения в скобках [quant,_1...] и, следовательно, должно иметь такую ​​же запись в переводе.

Еще одним решением может быть использование некоторого прямого порта gettext, такого как Locale :: Messages, однако это будет означать переписывание C :: P :: I18n.

Есть ли у кого-нибудь правильное решение этой проблемы, кроме переписывания нескольких модулей? Все, что сочетает в себе правильный gettext со всеми его функциями и Catalyst, подойдет.

1 Ответ

2 голосов
/ 30 января 2009

Возможно, вы получите лучший ответ в списке рассылки:

http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst

Полагаю, вы также читали это:

http://www.catalystframework.org/calendar/2006/18

...