Как я могу добавить интернационализацию для моего скрипта Perl? - PullRequest
13 голосов
/ 03 октября 2008

Я смотрю на введение многоязычной поддержки для зрелого CGI-приложения, написанного на Perl. Первоначально я думал о том, чтобы развернуть свое собственное решение с использованием хэша Perl (хранящегося на диске) для файлов перевода, но потом я наткнулся на модуль CPAN, который, кажется, выполняет то, что я хочу ( i18n ).

Есть ли у кого-нибудь опыт интернационализации (в частности, модуля i18n CPAN) в Perl? Является ли модуль i18n предпочтительным методом многоязычной поддержки или мне следует пересмотреть собственное решение?

Спасибо

Ответы [ 4 ]

16 голосов
/ 03 октября 2008

Существует статья в Perl Journal о локализации программного обеспечения. Это даст вам хорошее представление о том, что вы можете ожидать при добавлении многоязычной поддержки. Это красиво написано и смешно.

В частности, статья написана людьми, которые написали и поддерживают Locale::Maketext, поэтому я бы порекомендовал этот модуль просто исходя из количества боли, ясно, что авторам пришлось терпеть, чтобы сделать это работает правильно.

8 голосов
/ 29 августа 2009

См. http://rassie.org/archives/247 для сравнения современных gettext GNU, Locale :: Maketext и Locale :: TextDomain.

3 голосов
/ 10 октября 2008

Если у вас есть время, взгляните на способ, которым I18N работает в Jifty платформе - хотя вначале он довольно запутанный, он очень элегантен и удобен в использовании.

Они перегружают _, так что вы можете использовать _("text to translate") в любом месте кода. Затем эти строки переводятся с использованием Locale :: Maketext как обычно.

Что делает его действительно мощным, так это то, что они откладывают перевод до необходимой строки, используя Scalar :: Defer , так что вы можете начать добавлять строки в любое время, даже до того, как узнаете, на каком языке они будут быть переведены на. Например, в конфигурационных файлах и т. Д. Это действительно облегчает работу с I18N.

3 голосов
/ 03 октября 2008

В ответ на мой вопрос об этом один из комментариев предложил прочитать эту статью о локализации perl-кода.

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