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

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

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Подскажите с локализацией строк самой библиотеки Qt  (Прочитано 28296 раз)
Mikor
Гость
« : Октябрь 15, 2007, 13:53 »

Вот есть QFileDialog, он конечно английский. У меня в программе используется свой *.ts файл для перевода своих строчек. В Qt валяется еще qt_ru.ts с переводом всего, что есть в самих Qt*.dll. Как сделать, чтобы в программе объединялся мой собственный перевод и стандартный Qt?
Записан
QCasper
Гость
« Ответ #1 : Октябрь 15, 2007, 14:12 »

Скопировать qt_ru.ts к себе в папку (или в одну из подпапок) с проектом и проделать с ним те же манипуляции, что и с Вашим файлом перевода.
Записан
Sergey B.
Программист
*****
Offline Offline

Сообщений: 544



Просмотр профиля WWW
« Ответ #2 : Октябрь 15, 2007, 14:35 »

Вам нужны файлы с расширением qm.
qt_ru.qm
и ваш_файл_перевода_проги.qm.
Просто скопируйте в папку с программой и напишите код загрузки в ассистенте есть пример.
Записан
alex12
Гость
« Ответ #3 : Октябрь 15, 2007, 15:42 »

Я делаю так:

в main()
Код:
int main(int argc, char *argv[])
{
  QApplication application( argc, argv);
  QTextCodec::setCodecForTr(QTextCodec::codecForName("Windows-1251"));
  QTextCodec::setCodecForCStrings(QTextCodec::codecForName("Windows-1251"));

  QTranslator *qt_translator = new QTranslator;
  if ( qt_translator->load( ":tr/qt_ru.qm" ) )
  { application.installTranslator( qt_translator );
  }
 
  ...

}

и в .qrc
Код:
<RCC>
    <qresource prefix="/tr" >
        <file>qt_ru.qm</file>
    </qresource>
</RCC>

Все работает правильно.
Записан
QCasper
Гость
« Ответ #4 : Октябрь 15, 2007, 21:47 »

не понимаю какое отношение к теме имеют строки:

Код:
QTextCodec::setCodecForTr(QTextCodec::codecForName("Windows-1251"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("Windows-1251"));

?
Записан
Sergey B.
Программист
*****
Offline Offline

Сообщений: 544



Просмотр профиля WWW
« Ответ #5 : Октябрь 15, 2007, 22:25 »

Мне кажется никакого, если писать всё на английском, а потом лингвистом пройтись, то всё работает прекрасно и без установки кодеков.
Записан
Mikor
Гость
« Ответ #6 : Октябрь 16, 2007, 00:36 »

Ну один QTranslator я могу загрузить. Мне надо чтобы qt_ru.qm и мойфайл.qm грузились вместе в программе
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #7 : Октябрь 16, 2007, 01:13 »

Ну один QTranslator я могу загрузить. Мне надо чтобы qt_ru.qm и мойфайл.qm грузились вместе в программе

А какая проблема использовать несколько QTranslator для подгрузки qt_ru.qm и мойфайл.qm?
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Mikor
Гость
« Ответ #8 : Октябрь 16, 2007, 03:15 »

Извините, не обратил внимание на то, что можно несколько одновременно устанавливать
Записан
juvf
Программист
*****
Offline Offline

Сообщений: 570


Просмотр профиля
« Ответ #9 : Октябрь 16, 2007, 06:42 »

подгрузил qt_ru.qm который находился в исходниках qt (qt-x11-opensource-src-4.2.2). Но там не полный перевод. только процентов 50 переведено. Например в QPrintDialog нет перевода "Print to file". Сижу с лингвистом и перевожу недостающий перевод. А есть qt_ru.qm или qt_ru.ts c полным переводов всех текстов диалогов Qt?
Записан
juvf
Программист
*****
Offline Offline

Сообщений: 570


Просмотр профиля
« Ответ #10 : Октябрь 16, 2007, 08:57 »

И вот ище:
как заставить QFile::errorString() возвращять не "No such file or directory", а "Не могу найти файл или папку"?
Записан
QCasper
Гость
« Ответ #11 : Октябрь 16, 2007, 12:31 »

И вот ище:
как заставить QFile::errorString() возвращять не "No such file or directory", а "Не могу найти файл или папку"?


Перевести QFile Улыбающийся
Записан
juvf
Программист
*****
Offline Offline

Сообщений: 570


Просмотр профиля
« Ответ #12 : Октябрь 18, 2007, 07:59 »

Цитировать
Перевести QFile

в исходниках Qt чтоли? и перекомпилять qt (((. А других путей нет?

Записан
QCasper
Гость
« Ответ #13 : Октябрь 18, 2007, 08:29 »

Цитировать
Перевести QFile

в исходниках Qt чтоли? и перекомпилять qt (((. А других путей нет?



Ой, не QFile, а QIODevice. Зачем в исходниках, всё в том же самом qt_ru.ts.
Записан
juvf
Программист
*****
Offline Offline

Сообщений: 570


Просмотр профиля
« Ответ #14 : Октябрь 18, 2007, 09:47 »

В qt_ru.ts у меня вот что.

Цитировать
<context>
    <name>QIODevice</name>
....
   <message>
        <source>No such file or directory</source>
        <translation>Нет такого файла или папки</translation>
    </message>
....
</context>

С помощью лингвиста перевел qt_ru.ts и сделал qt_ru.qm и подгрузил к приложению. Все равно не работает. ((
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


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