![]() |
|
![]() ![]() ![]() |
|
cann |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 18.8.2010 Репутация: нет Всего: нет |
Пытаюсь реализовать возможность изменения языка программы через функцию setlocale. Проблема в том, что функция setlocale не работает. Прошу подсказать в чем может быть причина. Установлена Ubuntu 15.10. Файл переводов создал gtk_test.mo и расположил его в каталоге ./locale/ru/LC_MESSAGES
Код программы:
|
|||
|
||||
tzirechnoy |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: 1 Всего: 16 |
Попробуйте для начала проверять коды возврата функцый и писать ошыбки в случае чего.
Ещё потыкайте в это strace/ltrace, возможно, поймёте что случилось. PS Нет, я не знаю, вроде всё логично написано, собирать и проверять лень. |
|||
|
||||
cann |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 18.8.2010 Репутация: нет Всего: нет |
Спасибо за ответ. Буду думать в чем может причина.
Это сообщение отредактировал(а) cann - 25.12.2015, 11:30 |
|||
|
||||
ss |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 133 Регистрация: 17.5.2007 Репутация: нет Всего: нет |
может в последних версиях что-то поменялось ?! в Qt всегда для мультиязычности использовалась функ. tr() в параметрах якорь к которому привязывается текст
qDebug()<< tr("hello "); а после написания кода заходим в утилиту Qt linguist ( инструменты/внешние/linguist) там делаем файл с переводом. Но мне было проще сделать свой маленький класс который занимался переводом. В файле хранить строки ключ - значение. Загрузить файл в QMap и через ключ у мапы получать строку с переводом а локаль использовать для выбора файла перевода. Это сообщение отредактировал(а) ss - 14.1.2016, 00:31 |
|||
|
||||
cann |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 18.8.2010 Репутация: нет Всего: нет |
Так и есть, в Ubuntu 15.10 что-то изменилось и в данный момент не работает, но в 15.04, до этого, код работал. На днях, на второй компьютер поставил Fedora 23, собрал там эту программу и все работает. Что магло, в ubuntu 15.10, поменяться после апгрейта, даже не знаю. Попробую установить Ubuntu 15.10 из образа может все заработает. |
|||
|
||||
math64 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 23 Всего: 72 |
Проверь соответствие версий библиотек. Нужно использовать ту, для которой компиллировалось.
В gtk_init() происходит проверка, но она не всегда может обнаружить несоответствие. |
|||
|
||||
cann |
|
||||||||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 18.8.2010 Репутация: нет Всего: нет |
Как можно узнать под какую версию библиотеки компилировалась программа? На данный момент у меня установлена и используется моей программой GTK+3 библиотека версии 3.16.7 Узнаем, где расположена библиютека:
Узнаем версию библиотеки:
т.е. отсюда сделал вывод, что используется библиотека версии 3.16.7 Узнаем, какая библиотека установлена в Ubuntu 15.10:
т.е. установлена версия 3.16.7 |
||||||||
|
|||||||||
cann |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 18.8.2010 Репутация: нет Всего: нет |
Проблема все-таки в Ubuntu 15.10.
На втором компьютере, с установленной Fedora 23, провел следующий эксперимент. 1. Просмотрел настройки локали, выполнил команду:
2. Запустил программу Geany (у нее есть файл переводов на русский) из командной строки, явно прописав с какой локалью нужно запустится:
и программа Geany открылась с русским интерфейсом. Тоже самое проделал на Ubuntu 15.10. Интерфейс как и был на английском так и остался. Вывод команды locale на Ubuntu 15.10:
Может кто знает какие пакеты нужно переустановить, что исправить эту проблему или надо переставлять Ubuntu 15.10 полностью? |
||||||
|
|||||||
![]() ![]() ![]() |
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |