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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
knkd
37 / 36 / 2
Регистрация: 08.08.2010
Сообщений: 162
#1

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

23.09.2010, 17:34. Просмотров 1018. Ответов 3
Метки нет (Все метки)

Делаю локализацию сообщений в консольной програмке.
Устанавливаю локаль с помощью 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] (C++):

Не работает русский язык - C++
Если выбрать в свитче 2 или 4 варианты (ввод вручную) и рассчитать их, то когда будет рассчитывать выдаст что-то типа этого: 1) , …¤г Ї®...

Не работает русский язык - C++
У меня такая проблема: Пользуюсь компилятором Visual C++ 6.0. После написания кода нажимаю build и Execute. Но почему-то в результате в...

Код функции gettext (или puttext) - C++
Пожалуста дайте код этих функций. Спасибо.

Не работает русский язык в Visual Studio 2013 - C++
Заранее извиняюсь, если такая тема уже есть, но на форуме я подобную тему найти не смог... Итак, дело в том, что когда я создаю программу...

Русский язык в консоли Windows 10. IDE: CodeLite. Компилятор: TDM-GCC-32 - C++
Здравствуйте. Windows 10. IDE: CodeLite. Компилятор: TDM-GCC-32 В файле main.cpp такой код: #include <iostream> #include...

Программа работает на Windows 7, но не работает на XP - C++
#include <locale> #include <windows.h> #include <iostream> #include <fstream> int main () { std::string wont; size_t i; ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
23.09.2010, 18:49 #2
locale зависит от компилятора. Некоторыми поддерживается, некоторыми нет. Вы каким пользуетесь?
knkd
37 / 36 / 2
Регистрация: 08.08.2010
Сообщений: 162
23.09.2010, 20:47  [ТС] #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  [ТС] #4
Ничего не помогает
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.09.2010, 00:14
Привет! Вот еще темы с ответами:

Какое отличие между jEdtorPane.getDocument().getText(.) и jEditorPane.getText()? - Java SE
Знаю только, что отличие точно есть.

Не удаляется русский язык из Windows 10, из-за чего не работает поиск по настройкам - Windows 10
Поставил на ноутбуке (на пк все нормально) английский язык по умолчанию и перестал работать поиск по настройкам (Search results aren't...

Язык си и windows batch file. Может язык си заменить батник? Интересует запуск из языка си утилиты cmd - C (Си)
Чтобы не конвертировать bat файл в exe. Возможно сделать саму программу в си, которая запускает нужные программы? Куда смотреть, в какую...

Жёсткий диск My Passport Ultra на Windows 7 и 10 всё работает, а на Windows XP не работает - Жесткие диски
Имеется жёсткий диск My Passport Ultra на 1 терабайт. На Windows 7 и 10 всё работает. На Windows XP не работает( (пробовал ставить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
29.09.2010, 00:14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru