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

StackOverflow https://stackoverflow.com/questions/164931

Вопрос

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

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

Спасибо

Это было полезно?

Решение

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

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

Другие советы

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top