0

この小さなアプリケーションはいくつかの問題を引き起こします:

int main(int argc, char *argv[])
{
  QTranslator* translator = new QTranslator();
  QString langCode = "en_GB";
  translator->load(QString("Core_%1.qm").arg(langCode));
  QCoreApplication::installTranslator(translator);

  auto now = QDateTime::currentDateTime();
  qDebug() << now.toString(tr("Timeformat"));

  return 0
}

言語ごとに、Timeformat の翻訳を含む個別のCore.qmを作成します。これは「en_GB」用です

<message>
  <source>Timeformat</source>
  <translation>hh:mm ap</translation>
  <comment/>
</message>

これは「de_DE」用です

<message>
  <source>Timeformat</source>
  <translation>hh.mm</translation>
  <comment/>
</message>

システムの言語設定は、ロードされた言語ファイルとは異なる場合があります。13:57 にCore_de_DE.qmが読み込まれた英語のラップトップでソフトウェアが実行されている場合、13.57と表示されます。そして、 Core_en_GB.qmをロード すると、 01:57 pmと表示されます。

しかし、Core_en_GB.qmがロードされたフランス語のラップトップでソフトウェアが実行されている場合(私のソフトウェアにはフランス語の翻訳がないため)。ソフトウェアは01:57を表示します(午後がありません)。なんで?

4

1 に答える 1