使用 i18n 对 QML 应用程序进行国际化

使用 i18n 对 QML 应用程序进行国际化

有人知道将应用程序翻译成多种语言所需的所有步骤吗?

我在 QML 文件中使用i18n.tr() ,我需要翻译这些词

我执行了以下步骤(~/QtCreator/OwnDictionary是项目目录),但应用程序始终是英文的:

roman@roman-ubuntu:~/QtCreator/OwnDictionary$ mkdir locale
roman@roman-ubuntu:~/QtCreator/OwnDictionary$ xgettext -C --qt --keyword=tr --add-comments=TRANSLATORS OwnDictionary.qml -p locale -o messages.pot
roman@roman-ubuntu:~/QtCreator/OwnDictionary$ ls locale
messages.pot
roman@roman-ubuntu:~/QtCreator/OwnDictionary$ cd locale/
roman@roman-ubuntu:~/QtCreator/OwnDictionary/locale$ msginit -i messages.pot -o sk.po
-- I edited here the sk.po to add Slovak translation
roman@roman-ubuntu:~/QtCreator/OwnDictionary/locale$ msgmerge -U sk.po messages.pot
roman@roman-ubuntu:~/QtCreator/OwnDictionary/locale$ mkdir -p sk/LC_MESSAGES
-- in manifest.json I found such line :     "name": 
"com.ubuntu.developer.username.owndictionary", so I executed this :
roman@roman-ubuntu:~/QtCreator/OwnDictionary/locale$ msgfmt sk.po -o sk/LC_MESSAGES/com.ubuntu.developer.username.owndictionary.mo

也许还需要一些特殊的环境设置?

答案1

实际上,您的应用程序需要设置几个环境变量来告诉 gettext 使用哪个 .mo 文件以及在哪里找到它。

https://www.gnu.org/software/gettext/manual/html_node/Triggering.html

相关内容