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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QTranslator проблема с файлом .qm  (Прочитано 8593 раз)
iks
Гость
« : Февраль 17, 2011, 07:28 »

Есть такой файл, конечно обрезан тут, но суть не в этом
Код:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0" language="en" sourcelanguage="ru_RU">
<context>
    <name>MainWindow</name>
    <message>
        <source>Файл</source>
        <translation>File</translation>
    </message>
    <message>
        <source>Выбрать проект</source>
        <translation>Draft pick</translation>
    </message>
    <message>
        <source>Выход</source>
        <translation>Exit</translation>
    </message>
    <message>
        <source>Открыть</source>
        <translation>Open</translation>
    </message>
    <message>
        <source>Сайт программы</source>
        <translation>Program website</translation>
    </message>
    <message>
        <source>Справка Debian</source>
        <translation>Help Debian</translation>
    </message>
</context>
</TS>
при компилировании Весь русский в файле .qm идет вопросами, уже голову сломал, что можно натворить с кодировкой.
Сборку провожу на Linux
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


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


Просмотр профиля WWW
« Ответ #1 : Февраль 17, 2011, 08:40 »

Ты немного не так понимаешь принцип перевода: интерфейс пишешь на английском и переводишь его на русский, а не наоборот.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
iks
Гость
« Ответ #2 : Февраль 17, 2011, 09:14 »

Это кому как, а у меня по умолчанию прога на русском написана, мне и надо обратный перевод на английский.
Блин это что выходит одностороние движение, попробовал в обратку нормально компилирование прошло, теперь не переводит, уже и на класс чисто писал
Код:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0" language="ru_RU">
<context>
    <name>MainWindow</name>
    <message>
        <source>File</source>
        <translation>Файл</translation>
    </message>
    <message>
        <source>Draft pick</source>
        <translation>Выбрать проект</translation>
    </message>
    <message>
        <source>Exit</source>
        <translation>Выход</translation>
    </message>
    <message>
        <source>Open</source>
        <translation>Открыть</translation>
    </message>
    <message>
        <source>Program website</source>
        <translation>Сайт программы</translation>
    </message>
    <message>
        <source>Help Debian</source>
        <translation>Справка Debian</translation>
    </message>
</context>
</TS>
и менял на
Код:
<name>QMenu</name>
походу вот тут как-то не подгружает его
Код:
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QTranslator translator;
    translator.load(QDir::homePath() + "/program/fstcadp_ru.qm");
    a.installTranslator(&translator);

    MainWindow *window = new MainWindow();
    window->show();
    return a.exec();
}
Хотя если ставлю эту строку
Код:
translator.load("/usr/share/qt4/translations/qt_ru.qm");
все нормально срабатывает
« Последнее редактирование: Февраль 17, 2011, 10:06 от iks » Записан
Mikhail
Программист
*****
Offline Offline

Сообщений: 587


Просмотр профиля
« Ответ #3 : Февраль 17, 2011, 09:59 »

В таком случае все твои пользователи должны быть телепатами или знать язык вопросов.
Какой вопрос такой и ответ.
Воообще то Вы можете написать свой фреймворк. 
Записан
iks
Гость
« Ответ #4 : Февраль 17, 2011, 10:26 »

Да вот уже думаю об этом, загонять текст из XML по запросу и все, хотя нет, все работает, но приходится весь текст гнат через QObject::tr()
Код:
QPushButton *quitButton = new QPushButton(QObject::tr("Exit"));
и сам .ts файл направил на него-же
Код:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0" language="ru_RU">
<context>
    <name>QObject</name>
    <message>
        <source>File</source>
        <translation>Файл</translation>
    </message>
    <message>
        <source>Draft pick</source>
        <translation>Выбрать проект</translation>
    </message>
    <message>
        <source>Open</source>
        <translation>Открыть</translation>
    </message>
    <message>
        <source>Program website</source>
        <translation>Сайт программы</translation>
    </message>
    <message>
        <source>Help Debian</source>
        <translation>Справка Debian</translation>
    </message>
    <message>
        <source>Remove from list</source>
        <translation>Удалить из списка</translation>
    </message>
    <message>
        <source>Continue</source>
        <translation>Продолжить</translation>
    </message>
    <message>
        <source>Exit</source>
        <translation>Выйти</translation>
    </message>
</context>
</TS>
« Последнее редактирование: Февраль 17, 2011, 10:49 от iks » Записан
vaychick
Гость
« Ответ #5 : Август 18, 2011, 15:16 »

Цитировать
при компилировании Весь русский в файле .qm идет вопросами
Была схожая проблема, нашел решение вот по этим двум ссылкам http://www.linux.org.ru/forum/development/5687490 и http://forum.vingrad.ru/topic-238091.html

Вкратце:

  • В .pro файле
Код:
 CODECFORTR = utf8
CODEC = utf8
  • в .ts <defaultcodec>UTF-8</defaultcodec> если таковой секции нет
  • переключить кодировку редактора на utf-8 (русские символы будут крякозябрами и нужно будет пересохранить эти страницы в utf-8 (Правка->выбрать кодировку)
Записан
ритт
Гость
« Ответ #6 : Август 27, 2011, 23:44 »

vaychick'у плюсую, пантеру минусую )
исходный язык и кодировка могут быть любыми (но utf-8 всё же преферабельна - 2012 год уж на носу, как-никак) - для того и существует ::trUtf8().
другое дело, что гемору с этим поболе...
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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