Вначале для этого требуется довольно много работы, но потом все автоматически.
Исходный код
В исходном файле вы должны поместить переводимые строки внутри tr()
функции. Все производные классы QObject имеют свою собственную функцию 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 Cr вы заходите в Tools/External/Configure ... и заполняете местоположение lupdate и lrelease. Вы можете жестко закодировать свое местоположение или использовать макросы. Эти утилиты расположены в поддирете bin в месте установки Qt.
TS файлы
Предположим, вы хотите перевести с английского на голландский. Вам понадобятся два файла. Назовем их: myapp_en.ts
и myapp_nl.ts
. В принципе вам не нужно включать английский ts-файл, но он помогает рассматривать английский язык на том же уровне, что и другой язык.
файл проект
добавить про файл
TRANSLATIONS+= /path_to_/myapp_en.ts
TRANSLATIONS+= /path_to_/myapp_nl.ts
впервые применяющих ери файлов
Первое время запуск будут созданы LUPDATE Тз файлы.
Фактический перевод
Откройте TS файл с Qt Linguist. Вы можете установить некоторые свойства этого файла. Все строки, которые необходимо перевести, теперь должны быть видны в представлении Qt Linguist в файле ts. Вы можете вставлять переводы. Сохраните измененный файл ts.
обновление ерей файлов
Каждый раз, когда вы изменили исходный код, который вы должны запустить LUPDATE. Добавьте переводы любых новых строк с Qt Linguist и запустите lupdate, а затем lrelease. Программа lrelease преобразует текстовые файлы в сжатые двоичные файлы (расширение «qm»).
Загрузить перевод
Единственное, что осталось теперь сказать, приложение для загрузки определенного перевода (то есть загрузить определенный файл QM). Вы делаете это с QT-транслятором Qt класса с excellent documentation.
Привет, спасибо за ответ. У меня есть одна проблема, которая заключается в том, что Qt Linguist не откроет * пустые * файлы. Он жалуется на ** неожиданный конец файла **. Это не дает мне возможности создать файл перевода Qt ... –
Хорошо, правильный подход: ** не создавать файлы, записывать имена файлов в '.pro' и запускать' lupdate' **. –
Спасибо. Я исправил найденную вами ошибку. – adlag