Re: Перловый gettext
Jul. 3rd, 2009 03:44 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
-
Бодание с перловым интерфейсом к геттексту завершилось успешно. Результат можно понаблюдать на http://urc.ac.ru/cgi/ftpsearch/ — скрипт пишет ответ на нужном языке в зависимости от языковых настроек браузера посетителя и использует правильные формы множественного числа (о применении геттекста для множественного числа мне
zauberer Яша ещё в позапрошлом году говорил).
-
Множественные числа можно добывать функцией
nget
. Для неё псевдоним тоже не будет лишним:# __ и _n - псевдонимы для $d->get и $d->nget sub __ ($) { $d->get( @_ ) } sub _n ($$$) { $d->nget( @_ ) }
- Посмотрел в исходники Locale::gettext — там вызываются обычные функции. Нафига было приплетать сюда ООП?
- Функция
setlocale
не хочет понимать переданный язык, ориентируясь исключительно на переменную окружения$LANG
. Чей это глюк — непонятно. В результате приходится использовать костыль:# Вопреки мануалу, второй параметр функции setlocale игнорируется $ENV{'LANG'} = ( $ENV{'HTTP_ACCEPT_LANGUAGE'} =~ /ru/ ) ? 'ru' : 'en';