Форум программистов, компьютерный форум CyberForum.ru

Не работает gettext в Windows [Язык - C] - C++

Восстановить пароль Регистрация
 
knkd
37 / 36 / 2
Регистрация: 08.08.2010
Сообщений: 162
23.09.2010, 17:34     Не работает gettext в Windows [Язык - C] #1
Делаю локализацию сообщений в консольной програмке.
Устанавливаю локаль с помощью setlocale(...), кладу в директрию "./locale" нужные файлы.
При компиляции в Linux - всё работает.
В Windows (WinXP-SP3) - сообщения не переводятся.

Думал что проблема в названии локали. Использовал названия "ru", "rus", "Russian", "ru_RU", "Russian_Russia", "ru_RU.1251", "ru_RU.utf8", "Russian_Russia.1251" и такой же набор для украинского языка.
Менял язык системы в панели управления на украинский, русский, английский.
При этом в директорию "./locale" клал поддиректрии с соответствующими названиями.

В Linux работают все варианты. В Windows ни один не работает.

Что нибудь делаю не так?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.09.2010, 17:34     Не работает gettext в Windows [Язык - C]
Посмотрите здесь:

Код функции gettext (или puttext) C++
C++ Hook клавиатуры не работает на windows 7
Программа работает на Windows 7, но не работает на XP C++
C++ Не работает русский язык
Не работает русский язык C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gooseim
Эксперт C++
500 / 404 / 35
Регистрация: 23.09.2010
Сообщений: 1,139
23.09.2010, 18:49     Не работает gettext в Windows [Язык - C] #2
locale зависит от компилятора. Некоторыми поддерживается, некоторыми нет. Вы каким пользуетесь?
knkd
37 / 36 / 2
Регистрация: 08.08.2010
Сообщений: 162
23.09.2010, 20:47  [ТС]     Не работает gettext в Windows [Язык - C] #3
Цитата Сообщение от gooseim Посмотреть сообщение
locale зависит от компилятора. Некоторыми поддерживается, некоторыми нет. Вы каким пользуетесь?
linux - gcc 4.4.3
windows - MinGW

Добавлено через 11 минут
Кстати. Локализация как раз работает.
Если ставлю LC_ALL - в форматном выводе десятичная точка сменяется на запятую.
А значит как минимум LC_NUMERIC включается.
Не работает именно gettext.

И при этом программа сильно тормозится.
Такое бывает в Линуксе, если убрать директорию с переводом.
Тогда strace показывает что при каждой попытке вывода локализованой строки программа выполняет системный вызов getcwd в результате чего тормозится раз в пять.

Так что gettext видимо не может найти нужной директории, но как её тогда называть - я не понимаю.
knkd
37 / 36 / 2
Регистрация: 08.08.2010
Сообщений: 162
29.09.2010, 00:14  [ТС]     Не работает gettext в Windows [Язык - C] #4
Ничего не помогает
Yandex
Объявления
29.09.2010, 00:14     Не работает gettext в Windows [Язык - C]
Ответ Создать тему
Опции темы

Текущее время: 12:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru