如何在运行时通过Qt进行翻译?

时间:2019-05-09 10:58:05

标签: c++ qt

我正在使用C ++和QML开发Qt程序,具体取决于数据库服务器。我想将程序翻译成3种语言。我已经翻译了程序中的所有单词。并且我在文本文件中有字符串列表,每隔10秒我将从数据库中收到一句话,其中包含一些字符串列表中已经存在的单词,如何在运行时使用此列表来翻译此情感。 / p>

2 个答案:

答案 0 :(得分:1)

QTranslator类和tr函数可用于这种情况。

您可以从本地文件或原始数据加载翻译文件。 并使用tr函数翻译您的字符串。

  

QString QObject :: tr(const char * sourceText)

     

返回sourceText的翻译版本,可以选择基于   消除歧义的字符串和包含复数的字符串的n值;   否则返回QString :: fromUtf8(sourceText)   提供翻译后的字符串。

    void MainWindow::createActions()
    {
         QMenu *fileMenu = menuBar()->addMenu(tr("&File"));
         ...

答案 1 :(得分:1)

可以使用QTranslator Class。首先必须创建一个文件,该文件定义所有常量字符串的字典。这是一个质量管理文件。

必须在应用程序中加载它,然后才能使用translate()函数来获取以指定语言翻译的字符串。

您可以找到一个不错的official example here