shoorick: (Default)
[personal profile] shoorick
Снова задумался о применении геттекста в Mojolicious — существующий метод, когда вместо написания отдельных геттекстовых po--файлов прямо в перловый код засовывается что-то такое:
our %Lexicon = ( 
    'Add'    => 'Добавить',
    'Remove' => 'Удалить'
);
никоим образом не может считаться достойным. Порывшись по CPAN, добрёл по ссылкам до Locale::Maketext::TPJ13, где авторы ругают геттекст, приводя корявые якобы геттекстовые примеры обслуживания множественных чисел, надеясь оправдать этим существование собственного других модулей, которые не лучше.

Написал на annocpan коммент, хотя сомневаюсь, что авторы получит его и пойдёт читать мануал по Locale::TextDomain. Похоже, процитированная в Locale::Maketext::TPJ13 статья вышла очень давно (first appeared in The Perl Journal #13 and is copyright 1999) и авторы о ней забыли.

Re: Пока нет

Date: 2010-12-13 09:23 am (UTC)
From: [identity profile] shoorick.livejournal.com
Сделал так: https://gist.github.com/738816
Запускаю:
env LANGUAGE=ru ./2_td.pl daemon
или
env LANG=ru_RU.UTF-8 ./2_td.pl daemon

Выводит:

in layout: Работает?

in template: Работает?

Plural via __nx: 24 apples were found

Plural via __n: 24 apples were found

Форму множественного числа, вроде, подбирает (то есть, иногда пишет 1 apple), но не переводит на русский.

Re: Пока нет

Date: 2010-12-13 10:45 am (UTC)
From: [identity profile] shoorick.livejournal.com
Посмотрел внимательнее: оказалось, я там в скрипте msgid поменял, а в переводе — забыл. Подправил — заработало: и в обоих шаблонах, и в контроллере. Спасибо.

Осталось придумать, как xgettext научить брать из скрипта подлежащий переводу текст. Потому что сейчас он справляется только с обычными перловыми скриптами, а в шаблонах на epl пока бессилен. Могляжу мануал, может, найду.

Profile

shoorick: (Default)
shoorick

December 2016

S M T W T F S
    1 23
45678910
11121314151617
18 19 2021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 21st, 2025 07:20 pm
Powered by Dreamwidth Studios