Qt版本
ubuntu14 qt5.7
元素
1、tr(***),如tr(“Text_hello”,“hello1”) ,hello1指当找不到对应翻译内容时的默认内容
指示出哪些需要翻译
2、.ts文件
第一步需要在,pro文件中写明哪几种ts文件
TRANSLATIONS = lang_en.ts \
lang_zh.ts \
lang_la.ts
第二步:编译
第三步:通过tool—extern—Linguist-----lupdata生成对应几个ts文件
此时ts文件会包含工程中所有的tr()内容
第四步、通过Linguist软件 (可以通过“/”目录 下搜索)更改更个ts文件内容,这项工作属翻译组的任务,与软件编程无关
3、通过tool—extern—Linguist-----lrelease生成对应几个qm文件
应用
第一步:将qm文件拷贝至程序目录下。
第二步:在程序中指令翻译方式
比如:
static QTranslator* translator;
if(translator != NULL)
{
qApp->removeTranslator(translator);
delete translator;
translator = NULL;
}
translator = new QTranslator;
QString qmFilename = "lang_"+langCode;//加上lang_的目的是因为本项目中qm的文件名。
if(translator->load(QString("./")+qmFilename))//qm的文件名
{
qApp->installTranslator(translator);//这种方法适用于客户在产品上自己选择语言。
}
错误认知更改
1、软件并不会多国语言自动翻译,而是由项目开发人员,自己翻译。此活也可以通过代码实现选择,如:
if(语言==英文)
{
}
else if(语言==英文)
{
}
else
{
}
优点:不存在ts.qm的管理问题。代码适用于多种软件平台。
缺点:当增加一种语言时,翻译组与开发组交流会变得很乱。