首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用真实QLocale的规范QTranslator示例

使用真实QLocale的规范QTranslator示例
EN

Stack Overflow用户
提问于 2017-10-13 03:32:02
回答 1查看 208关注 0票数 0

似乎大多数关于QTranslator和为QApplication安装它们的文档都假定simplistic cases适用于QLocale

在现实世界中,用户的区域设置必须考虑语言和国家,这通常是通过首先为一种语言(en)提供翻译文件,然后为使用该语言的每个国家(en_US)提供额外的翻译文件来实现的。

使用默认的QLocale(),加载适当的翻译文件(一个、两个或无,取决于存在的文件)最优雅的方式是什么?

这里的some code是正确的,但是有点太麻烦了。

EN

回答 1

Stack Overflow用户

发布于 2017-10-13 05:13:25

代码语言:javascript
复制
bool Application::installTranslator(QString localeName)
{
  QTranslator* translator = new QTranslator(this);

  QString fileToLoad = ":/translators/translation_" + localeName + ".qm";

  if (!QFile::exists(fileToLoad))
    return;

  if (translator->load(fileToLoad)) // Caution this will perform stripping of '_' heuristic
    QApplication::installTranslator(translator);
}

void Application::installTranslator()
{
  QLocale locale;
  boost::optional<QString> optLanguage = m_commandLineParser->getLanguage();
  if (optLanguage)
    locale = QLocale(optLanguage.get());

  // Load language (en, de, etc.) translator first
  QString language = locale.name().left(2);
  installTranslator(language);

  // Load country translator (en_US, de_CH, etc.) translator second
  installTranslator(locale.name());
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46717504

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档