2

スペイン語でプログラムを書いています。ファイルがロードされたことをユーザーに伝えたい。スペイン語では、次のとおりです。

ui->teLog->append("Se cargó el archivo: " + filename);

ただし、スペイン語の部分は次のように出力されます。

Se cargó el archivo:

問題はエンコーディングであることはわかっています(これがUTF8であることをプログラムに伝える必要があるように)。とにかくこれを行うことはありますか?

4

2 に答える 2

4

通常のQStringコンストラクターは、ASCII文字を記述していることを前提としています。この場合に使用するQString::fromUtf8()と、機能するはずです。

ui->teLog->append(QString::fromUtf8("Se cargó el archivo: ") + filename);

また:

QTextCodec::setCodecForCStrings( QTextCodec::codecForName("utf8") );

(詳細については、この回答を参照してください)

于 2013-03-20T18:29:27.087 に答える
2

latin1 言語を使用してすべてのメッセージを平易な英語で書き、Qt の翻訳機能を使用してメッセージをスペイン語に変換することを検討してください。http://qt-project.org/doc/qt-4.8/qobject.html#trおよびhttp://qt-project.org/doc/qt-4.8/linguist-translators.htmlを参照してください。

これにはいくつかの利点があります。

  • あなたのプログラムは他の言語に翻訳可能になります
  • 非スペイン語の開発者は、より簡単にコードを変更できるようになります (すべての開発者が英語を知っていて、スペイン語を知っているのは一部の開発者だけであると仮定します)。
于 2013-03-20T23:56:50.423 に答える