Название: [решено] Перевод с русского на английский Отправлено: nitro2005 от Октябрь 19, 2010, 09:38 Кто-нибудь сталкивался?
Есть довольно здоровый проект на русском, весь текст в tr(). Кодировка везде - UTF-8. Сгенерил перевод, предварительно вставив в pro строчки: CODECFORSRC=UTF-8 TRANSLATIONS=../bin/gui_en.ts При старте делаю setCodecForTr, setCodecForCString в UTF-8. Потом: QTranslator appTranslator; appTranslator.load("gui_en"); app->installTranslator(&appTranslator); Не переводит :-( Проверил appTranslator.translate() - обрабатывает нормально только те фразы, которые в исходнике также на английском. Если sourceText на русском (подсовываю тоже в UTF-8) - возвращает пустую строку. Переводить исходник на английский не вариант - слишком большой объем. Заранее спасибо! Название: Re: Перевод с русского на английский Отправлено: lit-uriy от Октябрь 19, 2010, 11:44 у меня всё в исходниках на русском, всё нормально переводится на английский
Название: Re: Перевод с русского на английский Отправлено: nitro2005 от Октябрь 19, 2010, 13:46 у меня всё в исходниках на русском, всё нормально переводится на английский а кодировку какую использовали? У меня ощущение, что не хочет переводчик UTF-8 в сырце переводить... Причем в используемой версии Qt 4.4.3 - и лингвист отказывался нормально понимать сырцы. Обновил до 4.6.3, вставил CODECFORSRC - лингвист заработал нормально, но в QTranslator не хочет переводить :( Название: Re: Перевод с русского на английский Отправлено: crossly от Октябрь 20, 2010, 16:47 а *.qm создался нормально??
Название: Re: Перевод с русского на английский Отправлено: lit-uriy от Октябрь 20, 2010, 17:35 >>а кодировку какую использовали?
Utf-8 Название: Re: Перевод с русского на английский Отправлено: nitro2005 от Октябрь 21, 2010, 17:17 а *.qm создался нормально?? qm создался, а нормально или нет - не знаю :)Название: Re: Перевод с русского на английский Отправлено: nitro2005 от Ноябрь 22, 2010, 12:26 Отчаялся... Может кто кинуть работающий пример? Или подсказать как тестовый заставить работать?
main.cpp: Код: #include <QtGui/QApplication> test.pro: Код: TARGET = test test_en.ts: Код: <?xml version="1.0" encoding="utf-8"?> Перед запуском делаю Код: export LANG=en_US.UTF-8 Код: QTranslator qtTranslator; Название: Re: Перевод с русского на английский Отправлено: serkol от Ноябрь 22, 2010, 16:48 У вас есть в main такое?
Код: QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8")); Название: Re: Перевод с русского на английский Отправлено: nitro2005 от Ноябрь 23, 2010, 09:26 У вас есть в main такое? Код: QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8")); Попробовал добавить - эффекта нет. Название: Re: Перевод с русского на английский Отправлено: nitro2005 от Ноябрь 23, 2010, 09:28 Прикладываю сырцы тестового проекта.
Название: Re: Перевод с русского на английский Отправлено: uriel от Ноябрь 23, 2010, 10:24 Qm-файл в архиве почему-то неправильный. Русская строка там явно не в UTF-8, поэтому он и не может найти соответствия в рантайме. Если сделать ещё раз "lrelease test.pro" и насильно заставить грузить нужный файл, то всё заработает.
P.S. Странно, но у меня он вообще не собирался без включения <cstdio> в main.cpp Название: Re: Перевод с русского на английский Отправлено: nitro2005 от Ноябрь 23, 2010, 10:34 Большое Человеческое Спасибо!
На компутере стояла версия Qt 4.4.3 как основная, на ней переводы в Utf-8 не работали. Использовал qmake и linguist 4.7.0 - ts сгенерился нормально, а вместо lrelease из 4.7.0 делал "Скомпилировать" в linguist-е из 4.7.0, а он видимо вызывал старый lrelease. Еще раз спасибо! |