Я использую Locale::TextDomain, который поддерживает контексты.
__p('new user form button', 'New');
__p('show only new books link', 'new');

Вторую проблему я не понял.


2012/12/12 Ruslan Zakirov <[email protected]>

> 2012/12/12 Ruslan Zakirov <[email protected]>:
> >> В мире Rails принято хранить i18n в config/locales/$LANGCODE.yml
> >>
> >> В шаблонах и в коде используются хэлперы типа
> >> t(ключ_локализации_иерархия_черезз_точку, параметры).
> >>
> >> ru:
> >>   page:
> >>     title: Привет, %1
> >>
> >> Использование
> >>
> >> [%= t('page.title', customer_title) %]
> >>
> >> В принипе, у меня есть заготовка модуля для CPAN, могу выложить.
> >>
> >> По своей практике скажу, что поддерживать такой код удобно.
> >>
>
> Хоть такой код и кособоко выглядит, но из простых альтернатив gettext,
> который тоже имеет свои проблемы. Из самых назойливых:
> 1) короткие термины с многими значениями, типа new. Они могут
> переводится по разному в зависимости от контекста. Контексты в
> перловых модулях не поддерживаются. Можно обойти вводом контекста
> прямо в текст и созданием перевода и для основного языка.
> 2) loc("Created $type"). По другому нельзя, а список возможных типов
> может быть большим.
>
> И так далее и тому подобное.
>
> --
> Best regards, Ruslan.
> --
> Moscow.pm mailing list
> [email protected] | http://moscow.pm.org
>



-- 
With best regards,
    Alexander Q                        mailto:[email protected]
-- 
Moscow.pm mailing list
[email protected] | http://moscow.pm.org

Ответить