Использование механизмов локализации KDE4 в чистом приложении QT4
-
05-07-2019 - |
Вопрос
Я пишу приложение, которое в настоящее время является чистым приложением QT4.Он предназначен для чистой работы как в Linux, так и в Windows.
Однако в будущем я планирую немного интегрировать его в KDE, и здесь возникают проблемы с локализацией / переводами.
QT4 использует свой собственный механизм tr()/tr().arg().arg() и файлы .ts/.qm.KDE4 использует gettext и механизм i18n / i18np, а также файлы .po.
Как я могу легко использовать механизм KDE4 в моем приложении QT4 без необходимости тесной интеграции его с KDE сейчас (по-видимому, делая его недоступным для запуска в Windows)?
Возможно ли это вообще?
Спасибо!
Решение
Начиная с версии 4.5, Qt будет поддерживать как .po, так и .xliff;
http://doc.trolltech.com/4.5/qt4-5-intro.html#qt-linguist-improvements
Другие советы
Я думаю, вам нужно будет просто выбрать одно и использовать его, если это кроссплатформенное приложение, я бы выбрал метод QT.Причина в том, что KDE обертывает свою интернационализированную строку макросами i18 * (), а QT использует макросы tr() , поскольку макрос не может создать другой макрос, нет никакого способа, если у вас нет #ifdef по всему вашему коду или массивной таблицы строк ... и то, и другое отстой.