使用Qt语言学家生成完对应语言的.qm文件并放在../translations目录下。system.ini中存放着默认的系统语言 DEFAULTLANGUAGE。
1. 在使用的类的*.h文件中声明QTranslator translator;变量
2. 在*.cpp中使用
void DisplayDemo::setLanguage()
{
QString path = qApp->applicationDirPath();
QString fileName = path+"/system.ini";
QSettings settings(fileName, QSettings::IniFormat);
// defaultLanguage
settings.setValue("DEFAULTLANGUAGE", defaultLanguage);
switch(defaultLanguage)
{
case 1:
translator.load(path+"/translations/display_en.qm",path);
break;
case 0:
default:
translator.load(path+"/translations/display_zh.qm",path);
}
qApp->installTranslator(&translator);
}
在需要改换语言的地方调用此方法 就可以了!!
==============================
引用引用第6楼shiroki于2009-07-16 10:21发表的 :
楼主的这个方法很不Qt哦, 在Qt里不用去读系统的配置, 应该用QLocale去获得当前的语言, 这样才能跨平台的说。
QLocale QLocale::system () [static]
Returns a QLocale object initialized to the system locale.
On Windows and Mac, this locale will use the decimal/grouping characters and date/time formats specified in the system configuration panel.
用上shiroki MM的这个建议就完美多啦。
QM文件存储的时候将名称 与QLocale::system的返回值关联起来。。。。。