String Qt本地化:加载可本地化字符串
我想在Qt应用程序中加载本地化字符串。为此,我将遵循以下几个步骤。如果我错了,请纠正我 注意:它适用于String Qt本地化:加载可本地化字符串,string,qt,localization,qt4,character-encoding,String,Qt,Localization,Qt4,Character Encoding,我想在Qt应用程序中加载本地化字符串。为此,我将遵循以下几个步骤。如果我错了,请纠正我 注意:它适用于QString,但不适用于const char* 将pro文件更新为 翻译语言 使用Qt生成.ts&编辑 语言学家。使用生成.qm文件 lupdate和lrelease 从特定文件加载.qm文件 地点 下面是我的常量字符*的外观: const char* sayHello = QT_TRANSLATE_NOOP("FriendlyConversation","hello"); Localiz
QString
,但不适用于const char*
.ts
&编辑
语言学家。使用生成.qm
文件
lupdate和lrelease常量字符*
的外观:
const char* sayHello = QT_TRANSLATE_NOOP("FriendlyConversation","hello");
LocalizationWithQT::LocalizationWithQT(QWidget *parent)
: QMainWindow(parent)
{
//ui.setupUi(this);
QString str = tr("say hello");
QPushButton *pushbutton = new QPushButton(tr(sayHello));
setCentralWidget(pushbutton)
}
下面是我加载.qm文件的方式:
QApplication a(argc, argv);
QTranslator translator;
bool val = translator.load("c:\\Data\\test\\hellotr_la");
a.installTranslator(&translator);
LocalizationWithQT w;
w.showMaximized();
return a.exec();
问题是,如果我为“sayhello”提供任何可选的拉丁字符串,它根本不会加载
我不知道错误在哪里。如果使用tr(sayHellow)
,Qt将在当前上下文中查找sayHellow翻译(LocalizationWithQT
类)
必须显式地为Qt提供文本上下文:
QPushButton *pushbutton
= new QPushButton(qApp->translate("FriendlyConversation", sayHellow));