Russian Qt Forum

Qt => Интернационализация, локализация => Тема начата: Fat-Zer от Декабрь 16, 2010, 21:17



Название: Локализация диалогов
Отправлено: Fat-Zer от Декабрь 16, 2010, 21:17
Не понял, как оно работает
Старый топик (http://www.prog.org.ru/topic_12734_0.html)
Пробовал так:
Код:
	QString locale = QLocale::system().name();
QTranslator translator;
translator.load(QString("eb_") + locale); // мой файл трансляции
translator.load(QString("$QTDIR/translations/qt_") + locale);
app.installTranslator(&translator);
В итоге мой перевод затирается, а диалоги остаются английскими


Название: Re: Локализация диалогов
Отправлено: kibsoft от Декабрь 17, 2010, 00:37
2 объекта транслэтора надо. Один на Qt, другой на твое приложение.


Название: Re: Локализация диалогов
Отправлено: Fat-Zer от Декабрь 17, 2010, 01:38
всё равно не работает
Код:
	QString locale = QLocale::system().name();

QTranslator translator;
QTranslator qttranslator;

translator.load(QString("eb_") + locale);
qttranslator.load(QString("qt_ru"));
app.installTranslator(&translator);
app.installTranslator(&qttranslator);

ещё должен ли быть ts файл для qt? надо ли добавлять его в проект? откуда его взять? в дистрибутиве не установился из сорцов?


Название: Re: Локализация диалогов
Отправлено: lit-uriy от Декабрь 17, 2010, 06:33
Цитировать
ещё должен ли быть ts файл для qt?
для использования в своей программе нужен qm-файл (т.е. скомпилированный перевод).
Его можно взять в каталоге %QTDIR%/translations

Цитировать
в дистрибутиве не установился из сорцов?
Сначала определись используешь ли ты дистрибутив или сам собирал из исходников.
В обоих случаях он должен быть там, где я сказал. При полной сборке Qt он генерируется автоматически. Можно просто открыть ts-файл в Лингвисте и скомпилировать из него qm-файл.


Название: Re: Локализация диалогов
Отправлено: Fat-Zer от Декабрь 17, 2010, 07:17
Цитировать
Сначала определись используешь ли ты дистрибутив или сам собирал из исходников.
Сложно определится, что я использую :)...(Gentoo)

Цитировать
для использования в своей программе нужен qm-файл (т.е. скомпилированный перевод).
Его можно взять в каталоге %QTDIR%/translations
Так и сделал, копировал его себе в папку, однако он не подцепляется (см. код выше) Почему?


Название: Re: Локализация диалогов
Отправлено: lit-uriy от Декабрь 17, 2010, 10:55
Ну коль линух, то и смотри внимательно описание метода QTranslator::load (http://doc.crossplatform.ru/qt/4.6.x/qtranslator.html#load)