Russian Qt Forum
Сентябрь 21, 2024, 14:32 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: [qt-4.5.1 Linux] Язык интерфейса программы  (Прочитано 4689 раз)
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 файл. Почему ?
« Последнее редактирование: Сентябрь 04, 2009, 16:40 от izoomer » Записан
Rcus
Гость
« Ответ #1 : Сентябрь 04, 2009, 16:40 »

Пост выглядит немного недописанным Улыбающийся
Что значит локаль всегда ru_RU, что такое QTranslate?

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

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #2 : Сентябрь 04, 2009, 16:41 »

Мда. Ты вообще не знаешь принципа работы с переводами. Почитай книжку по Qt или ассистента.
А вот после прочтения спрашивай что именно не понятно.
« Последнее редактирование: Сентябрь 04, 2009, 16:43 от panter_dsd » Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
izoomer
Гость
« Ответ #3 : Сентябрь 07, 2009, 12:33 »

Локаль в системе всегда ru_RU а язык нужно разный отбражать в интерфейсе при несменной локали.
QTranslator - http://doc.trolltech.com/4.2/qtranslator.html

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

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

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

Тема закрыта.
Записан
BRE
Гость
« Ответ #4 : Сентябрь 07, 2009, 13:16 »

я понял что транслятор это не то, потому и просил совета как лучше сделать ....
Ты не правильно понял и тебе давали правильные советы: почитать что-то по этому вопросу.
Читать книги..... да нафиг надо  Подмигивающий, а вот почитать документацию в том же assisten или на сайте нужно:
http://doc.trolltech.com/4.5/i18n.html - ответы на все вопросы с примерами кода и т.д.

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

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

скорее всего легче свой класс сделать для перевода и через XML файл заданной структуры переводить.
Как сделаешь покажи на сайте.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.048 секунд. Запросов: 22.