[Moscow.pm] Мультиязычный сайт на Mojo

Иван Бессарабов ivan на bessarabov.ru
Чт Дек 13 01:04:14 PST 2012


Locale::Maketext::Extract (то что использует gettext.pl для парсинга) не
умеет
доставать pgettext() и ngettext(), xgettext (который на c) умеет pgettext,
ngettext() и еще кучу всего, но не умеет работать с template toolkit.


13 декабря 2012 г., 12:48 пользователь iSage <isage на aumi.ru> написал:

> **
>
> То есть как это "не понимает"? xgettext всеравно откуда доставать строки.
>
> Я вот таким скриптом из ТТ доставал: http://pastie.org/5519469
>
> А в ТТ использовал синтаксис l("some text")
>
>
>
> On 2012-12-13 12:28, Иван Бессарабов wrote:
>
> Совсем-совсем самопильными или ты что-то взял за основу с cpan?
> Со станартным экстрактором xgettext есть проблема — он не понимает
> template toolkit.
>
>
> 13 декабря 2012 г., 12:14 пользователь Alexander Q <qalexx на gmail.com>написал:
>
>> Лично я в момент раздумий, как бы прикрутить стандартные утилиты gettext
>> к этой задаче, вспомнил, на каком языке пишу, и делаю всё это средствами
>> перла, самописным скриптом.
>>
>>
>> 2012/12/13 Иван Бессарабов <ivan на bessarabov.ru>
>>
>>> А как ты экстрактишь вот эти pgettext строки из template toolkit
>>> шаблонов?
>>>
>>>
>>> 12 декабря 2012 г., 23:07 пользователь Alexander Q <qalexx на gmail.com>написал:
>>>
>>>
>>> Я использую Locale::TextDomain, который поддерживает контексты.
>>>> __p('new user form button', 'New');
>>>> __p('show only new books link', 'new');
>>>>
>>>> Вторую проблему я не понял.
>>>>
>>>>
>>>> 2012/12/12 Ruslan Zakirov <ruz на bestpractical.com>
>>>>
>>>>> 2012/12/12 Ruslan Zakirov <ruz на bestpractical.com>:
>>>>> >> В мире 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
>>>>> moscow-pm на pm.org | http://moscow.pm.org
>>>>>
>>>>
>>>>
>>>>
>>>>  --
>>>> With best regards,
>>>>     Alexander Q                        mailto:qalexx на gmail.com
>>>>
>>>> --
>>>> Moscow.pm mailing list
>>>> moscow-pm на pm.org | http://moscow.pm.org
>>>>
>>>>
>>> --
>>> Moscow.pm mailing list
>>> moscow-pm на pm.org | http://moscow.pm.org
>>>
>>>
>>
>>
>> --
>> With best regards,
>>     Alexander Q                        mailto:qalexx на gmail.com
>>
>> --
>> Moscow.pm mailing list
>> moscow-pm на pm.org | http://moscow.pm.org
>>
>>
>
>
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>
>
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20121213/a590c669/attachment-0001.html>


Подробная информация о списке рассылки Moscow-pm