gettext/win32

Rynor

stay hungry
gettext/win32

Уважаемые!
Собственно - кто юзал сабж (с PHP)?
Все прочитал, все скачал и поставил (MING), скомпилил 2 тестовых .mo для en и ru.
Есть проблема - не работает en.
При любом раскладе выдается русская версия.
index.php
PHP:
bindtextdomain("messages", "./share/locale/");
textdomain ('messages');
putenv('LANGUAGE=en');
echo _("str_hello");
putenv('LANGUAGE=en'); как бы и не имеет места быть...

Причем кешируется все это дело по-страшному :( Приходится по скудоумию пока рестартовать Апач, благо сервак отладочный. Но это - уже вторая проблема. Что в коде не так?

В мануале и комментах именно такой подход...
Вообще, интересует, кто работал с сабжем под виндой, потом можно развить темку.

В принципе, разобрался, осталось самое главное - запустить без багов :)

Заранее благодарю за помощь.
 

Макс

Старожил PHPClub
PHP:
<?
$lang = 'ru';
$domain = 'domain';

putenv("LANG=".$lang); 
setlocale(LC_ALL, "");
bindtextdomain("$domain", ".\\locale"); 
textdomain("$domain");

echo _("Привет малыш. Я - Карлсон!");
?>
У меня так работает любой язык, какой укажу в $lang
 

Profic

just Profic (PHP5 BetaTeam)
Думаю, это должно помочь :)
PHP:
// локаль
$config['lc.locale'] = "ru_RU.CP1251"; // системная локаль
putenv ("LANG=".$config['lc.locale']); //для Unix-а
setlocale (LC_COLLATE, ""); //установка локали (системная для Windows и из переменной окружения "LANG" для Unix
setlocale (LC_CTYPE, "");
setlocale (LC_TIME, "");
 

Profic

just Profic (PHP5 BetaTeam)
ЗЫ. Самое главное забыл :) С этими установками локали все (ну почти :)) функции ПХП связанные с локалезависимой обработкой строк работают правильно :)
 

Profic

just Profic (PHP5 BetaTeam)
Еще вспомнил, также стоит обнулить переменную окружения LANGUAGE, из-за нее у меня под Linux-ом возникали проблемы...
 

Rynor

stay hungry
спасибо большое, сегодня буду пробовать!

еще один вопрос, может и тупой, но я не понял - из чего собирается .po с помощью утилиты?

в структуре .po я разобрался, можно и его руками править, но ведь править руками надо вообще-то исходник (который понятен и девочке-переводчице), так вот что там за формат? :)

в мануале как-то очень смутно написано...
 

Rynor

stay hungry
по поводу первого поста:
добавление в код:
PHP:
putenv("LANG=".$lang); 
setlocale(LC_ALL, "");
решило проблему.
Большое спасибо за помощь!
 
Сверху