Снова задумался о применении геттекста в Mojolicious - существующий метод, когда вместо написания отдельных геттекстовых po--файлов прямо в перловый код засовывается что-то такое:
our %Lexicon = (
'Add' => 'Добавить',
'Remove' => 'Удалить'
);
никоим образом не может считаться достойным. Порывшись по CPAN, добрёл по ссылкам до
Locale::
(
Read more... )
Comments 22
Reply
Не знаю, правильно ли, но оно работает. И переводит на нужный язык, и подбирает соответствующее число в зависимости от переданной цифры (в русском кое-где встречаются остатки двойственного числа). В геттекстовом мануале описаны правила подбора числа для 36 языков.
Как использовать пример:
env LANGUAGE=ru ./1.pl
или
./1.pl ru
Вместо ru можно писать любой другой код. Если найдётся файл переводов - скрипт будет писать на выбранном языке, если на найдётся - на английской.
Reply
Получить свежий пример можно с git://gist.github.com/737400.git - там уже всё разложено куда надо и добавлен маленький README.
Reply
Я недавно делал проект и у меня получилось нечто рабочее, но жутко корявое, использующее gettext_pp (pure perl) имплементацию.
Reply
Reply
Reply
Reply
Reply
То, что его пока нет в Mojolicious'е - не беда. Можно, в конце концов, потратить какое-то время и написать плагин (если к тому моменту ещё кто-нибудь не напишет) - это лучше, чем использовать %Lexicon.
Предлагаемые в Mojolicious методы (с %Lexicon) плохи хотя бы тем, что там нет поддержки множественного числа (или я не нашёл). Писать «2 файл(ов)» в своих программах, как мне кажется, не следует.
Reply
Но в случае, когда никакая система ещё не используется - лучше сразу поставить более правильную.
mojowka сейчас не переведена на другие языки (хотя надо бы перевести): я ещё несколько месяцев назад наткнулся на статью Вячеслава Тихановского Building a multilingual website with Mojolicious, но до сих пор не внёс предложенный там код в свою систему - мне не понравился %Lexicon.
Reply
(The comment has been removed)
Reply
(The comment has been removed)
Reply
(The comment has been removed)
Reply
Leave a comment