qt 汉化 国际化

时间:2021-10-18 15:17:04

两种方法。

1. 使用 QTextCodec  setcodeforname 设置编码, 然后在程序中对于需要处理的字符使用 fromLocal8Bit 。

2. 使用 Linguist。

  • 首先把文件中所有使用到 字符串的地方都加上 tr。
  • 然后在 pro 文件中 添加 一行 TRANSLATIONS += filename.ts
  • 接着在pro所在目录运行 lupdate, 生成 以filename为文件名的翻译文件。
  • 再打开Linguist 翻译tr。tr里面一般是“Ascii”形式, 在翻译器里面写上每一个对应的unicode字符
  • 使用lrelease 生成 qm 文件
  • 最后使用 QTranslator 类加载该文件, 因为是动态加载, 所以这个文件要放在 exe 可见的目录里。
  • 注意对于 QML 和 js , 如果其中有中文字符, 则它们需要被 lupdate 使用但无需被 C++ 编译器识别。 因此可以在 pro 文件中使用如下所示:

        lupdate_only {
      SOURCES = *.qml \
             *.js \
             content/*.qml \
             content/*.js
      }

      但是注意 lupdate不能递归遍历目录查找,因此必须列出所有的目录。