分类: C/C++
2009-11-10 09:07:17
切换语言分为两种情况:
1. 程序载入的时候,根据当前的区域设置,自动选择语言包(.qm)
2. 要求在程序运行过程中动态切换语言,需要
第一种情况,一般在main函数中程序启动的部分加入如下代码:
QString locale = QLocale::system().name()); // for example: zh_CN, en_US
QTranslator *translator = new QTranslator(app); translator->load(QString("./ app->installTranslator( translator ); // 安装翻译器
第二种情况, connect(langCombo, SIGNAL(currentIndexChanged( // 载入不同的语言包 void WizarDialog::changeLang( int langIndex ) { QTranslator *translator = new QTranslator(qApp); switch( langCombo->currentIndex() ){ case 0: translator->load(QString("./ break; case 1: translator->load(QString("./ break; case 2: translator->load(QString("./ default: break; } qApp->installTranslator( translator ); this->initGUI(); }
// initGUI() 中会有大量的tr函数 void WizarDialog::initGUI() { this->setWindowTitle(tr(" /* ...... */ }
这两种情况,也可以复合起来用。 |
The data is not copied. The caller must be able to guarantee that data will not be deleted or modifiled. |