gpt4 book ai didi

Qt 翻译文件 (qm) 信息

转载 作者:行者123 更新时间:2023-12-04 13:37:17 29 4
gpt4 key购买 nike

我的应用程序有一些 qm 文件。 (pr_en.qm,pr_ru.qm)。我可以加载它们

translator.load(fileName, '.');
qApp->installTranslator(translator);

我想建立动态菜单(英语、俄语)来选择语言。但是,我怎样才能从 qm 文件中提取这样的常量(英语、俄语)而不是它的名称(pr_en.qm、pr_ru.qm)。谢谢。

最佳答案

我会建议两种方法:

首先是声明特殊的翻译器字段,如:
tr("__LANGNAME__")这将在每个翻译文件中填充正确的语言名称(甚至是母语)。然后你可以列出所有可用的翻译,一一加载并使用 QTranslator::translate(const char * context, const char * sourceText, const char * disambiguation = 0)方法。

例子:

QStringList availableLanguages;
QDirIterator qmIt(pathToQm, QStringList() << "*.qm", QDir::Files);
while(qmIt.hasNext())
{
qmIt.next();
QFileInfo finfo = qmIt.fileInfo();
QTranslator translator;
translator.load(finfo.baseName(), pathToQm);
availableLanguages << translator.translate("__LANGNAME__");
}

qDebug() << availableLanguages;

我的第二个方法是使用 QLocale 和 QLocale::Language。我会在 qm 目录中为每个文件的基本名称创建 QLocale 对象,然后使用 QLocale::Language 枚举来获取带有 QLocale::languageToString 的语言名称方法。

关于Qt 翻译文件 (qm) 信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10585652/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com