Qt Translation lupdate и пространства имен - PullRequest
2 голосов
/ 05 февраля 2010

При разработке приложения Qt я столкнулся с проблемой при использовании QTranslator. После небольшого исследования я обнаружил, что проблема была в lupdate от Qt, проблема с

using namespace;

директива. Следуя инструкциям, приведенным в здесь , я обнаружил, что должен использовать специальные комментарии в своем коде, чтобы помочь lupdate понять, что классы находятся внутри пространства имен. Специальный комментарий выглядит примерно так:

 /*
 TRANSLATOR namespace::MyClass
 */

Итак, я добавил эти комментарии во все мои источники, в которых QStrings управлялся tr. Но, тем не менее, заявки не переводятся. Метод installTranslator в QTranslator возвращает true. Фактический код, который я использую для установки Переводчика:

Application app(argc,argv); //Application is a subclass of QApplication
QTextCoded::setCodecForTr(QTextCodec::codecForName("utf8"));
QTranslator translator;
translator.load(QString("..//language//") + locale);
app.installTranslator(&translator);
app.exec();

Кто-нибудь сталкивался с такой же проблемой? Что я делаю не так?

EDIT -

Исправлена ​​одна маленькая ошибка в приведенном выше коде, но все равно безрезультатно.

1 Ответ

0 голосов
/ 05 февраля 2010

Вы устанавливаете переводчик, но не загружаете перевод для него.

В документации, на которую вы ссылаетесь, указано точно:

int main(int argc, char *argv[])
{
     QApplication app(argc, argv);

     QTranslator translator;
     translator.load(QString("arrowpad_") + locale); // here load translation
     app.installTranslator(&translator);

     app.exec()
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...