Russian Qt Forum

Qt => Интернационализация, локализация => Тема начата: izoomer от Сентябрь 04, 2009, 16:33



Название: [qt-4.5.1 Linux] Язык интерфейса программы
Отправлено: izoomer от Сентябрь 04, 2009, 16:33
В программе есть различные заголовки QLabel . Так вот, хотелось бы что бы пользователь мог подложить свой файл перевод рядом с исполняемым файлом и получить заданный язык интерфейса. Как я понял QTranslate немного не то, локаль всегда ru_RU. Подскажите как сделать лучше.
Пробовал сделать через QTranslator по аналогии с примером /examples/linguist/trollpribnt:
1. создал файл translate_en.ts
Код:
<!DOCTYPE TS><TS>
<context>
    <name>MainWindow</name>
    <message>
        <source>Карта</source>
        <translation>Map</translation>
    </message>
    <message>
        <source>Посик</source>
        <translation>Find</translation>
    </message>
</context>
</TS>
положил рядом с исполняемым
2. Прописал в .pro
TRANSLATIONS +=  translate_en.ts

3. В main.cpp
Код:
QTranslator translator;
if (translator.load("translate_en.ts")){
qDebug() << "install translator";
app.installTranslator(&translator);
} else {
qDebug() << "!!! NOT install translator ";
}

4. В самой программе вызываю например
Код:
labelTittleMap->setText(tr("Карта"))

НО ВСЕ РАВНО ВИЖУ РУССКИЙ ТЕКСТ.

P.s. ОКазалось не грузит ts файл. Почему ?


Название: Re: [qt-4.5.1 Linux] Язык интерфейса программы
Отправлено: Rcus от Сентябрь 04, 2009, 16:40
Пост выглядит немного недописанным :)
Что значит локаль всегда ru_RU, что такое QTranslate?

По поводу .ts файлов: это исходники переводов, для загрузки в приложении необходимо преобразовать их в бинарный формат .qm при помощи lrelease.


Название: Re: [qt-4.5.1 Linux] Язык интерфейса программы
Отправлено: Пантер от Сентябрь 04, 2009, 16:41
Мда. Ты вообще не знаешь принципа работы с переводами. Почитай книжку по Qt или ассистента.
А вот после прочтения спрашивай что именно не понятно.


Название: Re: [qt-4.5.1 Linux] Язык интерфейса программы
Отправлено: izoomer от Сентябрь 07, 2009, 12:33
Локаль в системе всегда ru_RU а язык нужно разный отбражать в интерфейсе при несменной локали.
QTranslator - http://doc.trolltech.com/4.2/qtranslator.html

Мда. Ты вообще не знаешь принципа работы с переводами. Почитай книжку по Qt или ассистента.
А вот после прочтения спрашивай что именно не понятно.

я понял что транслятор это не то, потому и просил совета как лучше сделать .... скорее всего легче свой класс сделать для перевода и через XML файл заданной структуры переводить.

p.s. если хочется просто что то написать в форуме то есть блоги - там можно что попало писать и умничать как угодно, а отсылать книги читать может каждый - репутация от этого не поднимается.

Тема закрыта.


Название: Re: [qt-4.5.1 Linux] Язык интерфейса программы
Отправлено: BRE от Сентябрь 07, 2009, 13:16
я понял что транслятор это не то, потому и просил совета как лучше сделать ....
Ты не правильно понял и тебе давали правильные советы: почитать что-то по этому вопросу.
Читать книги..... да нафиг надо  ;), а вот почитать документацию в том же assisten или на сайте нужно:
http://doc.trolltech.com/4.5/i18n.html - ответы на все вопросы с примерами кода и т.д.

Ну и теперь магия:
http://doc.trolltech.com/4.5/tools-i18n.html - готовая демонстрашка.

Если посмотреть первое и второе, то сделать динамическую смену языка UI не должно составить труда.

скорее всего легче свой класс сделать для перевода и через XML файл заданной структуры переводить.
Как сделаешь покажи на сайте.