Как мне начать использовать QtLinguist для перевода моего проекта QtCreator?

У меня простой .pro Проект Qt Creator. У меня есть большая часть, если не все, текст моего приложения в Qt .ui XML-файлы форм. Я хочу использовать Qt Linguist для перевода текста в этом проекте, но я не знаю, с чего начать. В интернете нет полезной статьи "Начало работы с Qt Linguist". Страница, гордо называющая себя Qt Linguist Manual, также не очень полезна, поскольку содержит только общую информацию, а не практические советы.

Я нашел эти предметы в Qt Creator:

Описание изображения

Я не совсем уверен, что нужно сделать, чтобы заставить их работать, и как они связаны с Qt Linguist, который является полностью автономным приложением. Я открыл Qt Linguist, и он даже не содержит никаких File -> New... пункт меню, с которого я бы начал.

2 ответа

Решение

В начале это требует некоторой работы, но затем все это происходит автоматически.

Исходный код

В вашем исходном файле вы должны поместить переводимые строки внутри tr() функция. Все производные классы QObject имеют свои tr() функция. Для строк внутри этого класса используйте функцию tr этого класса: так вместо

QString str ="string to be translated";

использование

QString str = MyClass::tr("string to be translated");

Если у класса нет tr() использование функции

QString str = QOject::tr("string to be translated");

Qt Creator

В Qt Creator вы идете в Инструменты / Внешние / Конфигурировать... и заполняете местоположение lupdate и lrelease. Вы можете жестко указать их местоположение или использовать макросы. Эти утилиты находятся в подкаталоге bin каталога установки Qt.

TS файлы

Предположим, вы хотите перевести с английского на голландский. Вам понадобятся два файла. Мы назовем их: myapp_en.ts а также myapp_nl.ts, В принципе, вам не нужно включать файл английского языка ts, но он помогает рассматривать английский на том же уровне, что и другой язык.

Файл проекта

добавить в про файл

TRANSLATIONS+=  /path_to_/myapp_en.ts

TRANSLATIONS+=  /path_to_/myapp_nl.ts

Первый раз файлы TS

При первом запуске lupdate будут созданы файлы ts.

Актуальный перевод

Откройте файл ts с помощью Qt Linguist. Вы можете установить некоторые свойства этого файла. Все строки, которые нужно перевести, теперь должны быть видны в представлении Qt Linguist в файле ts. Вы можете вставить переводы. И сохраните измененный файл TS.

Обновление файлов TS

Каждый раз, когда вы меняете свой исходный код, вы должны запускать lupdate. Добавьте переводы любых новых строк с помощью Qt Linguist и запустите lupdate, а затем lrelease. Программа lrelease преобразует текстовые файлы в сжатые двоичные файлы (расширение "qm").

Загрузить перевод

Осталось только сказать приложению, что нужно загрузить определенный перевод (то есть загрузить определенный файл qm). Вы делаете это с помощью класса Qt QTranslator с отличной документацией.

Будет ли возможность просмотреть файл ".ts", выбрать любой файл правой кнопкой мыши и посмотреть, показывает ли он возможность открытия файла с помощью лингвиста qt4?

если не просматриваете перейти к свойствам / открыть с
в последнем будет нажатие кнопки сброса, теперь можно будет увидеть.

если не установить пакет "qt4-dev-tools - скачать qt linguist"

Вики Шарма

Другие вопросы по тегам