两种方法。
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不能递归遍历目录查找,因此必须列出所有的目录。