2015-12-20 2 views
3

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

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

image description

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

ответ

6

Вначале для этого требуется довольно много работы, но потом все автоматически.

Исходный код

В исходном файле вы должны поместить переводимые строки внутри 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.

+0

Привет, спасибо за ответ. У меня есть одна проблема, которая заключается в том, что Qt Linguist не откроет * пустые * файлы. Он жалуется на ** неожиданный конец файла **. Это не дает мне возможности создать файл перевода Qt ... –

+1

Хорошо, правильный подход: ** не создавать файлы, записывать имена файлов в '.pro' и запускать' lupdate' **. –

+0

Спасибо. Я исправил найденную вами ошибку. – adlag

1

Можно просмотреть файл «.ts», выбрать любой щелчок правой кнопкой мыши и посмотреть, что он показывает возможность открытия файла с помощью qt4 linguist?

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

, если не установить пакет "Qt4-DEV-инструменты - загрузить Qt лингвист"

Vicky Шарма

+0

Спасибо за подсказку о инструментах qt4-dev. Я немного отчаянно искал QT-Linguist без успеха. –

Смежные вопросы