Qtで多言語アプリケーションに取り組んでいます。英語に加えて、中国語、日本語、韓国語をサポートする必要があります。そのために、「makeqpf」ツールを使用して、ukai.ttf (中国語と日本語をサポート) と UnDotum.ttf (韓国語をサポート) フォントの qpf フォルマントを変換し、/usr/local/Trolltech にあるターゲット ボード (imx6q ベースのボード) にコピーしました。 /lib/fonts. ターゲットにコピーしたら、ドロップダウン ボックスから中国語/日本語を選択すると、画面上の文字列が適切な言語に変換されていることがわかります。翻訳を使用して文字列を変換し、.ts & .qm ファイルをリソースとしてプロジェクトに追加しました。
しかし、言語コンボ ボックスから韓国語を選択すると、画面にテキストが表示されず、空白の文字列が表示されます。
しかし、以下のように「-fn UnDotum」オプションを付けてアプリを実行しようとすると、
./MyTestApp -qws -fn UnDotum
コンボボックスから選択すると、韓国語の翻訳文字列も画面に表示されました。しかし、このようにアプリケーションを実行すると、英語のフォントが正しく表示されません。大きなフォントのテキストと太字のテキストがありますが、「-fn UnDotum」オプションを使用すると、すべてのテキストが同じサイズで通常のテキスト (太字なし) に見えます。
UnDotum フォントが読み込まれているかどうかは、次の方法で確認しました。
QFontDatabase *fdb = new QFontDatabase ;
QStringList fam2 = fdb->families(QFontDatabase::Korean);
qDebug() << "QFontDatabase::Korean: available font families" ;
for(int i=0 ; i< fam2.count(); i++){
qDebug() << fam2[i] ;
}
UnDotum フォントが読み込まれて使用可能になっていることがわかります。
次のコードも試して、ロードされているフォントが正確に何であるかを確認しました
QFont font("UnDotum", 10, QFont::Bold);
QFontInfo fontInfo(font);
qDebug() << "Expected:" << font.family() << "Real:" << fontInfo.family();
出力は次のようになります
Expected: "UnDotum" Real: "UnDotum"
それでも画面上のすべての文字列は空白として表示されます
ターゲット ボードの「/usr/local/Trolltech/examples/tools/i18n」にある i18n の例を実行しようとしましたが、韓国語でも何も表示されません。すべての文字列に対して単に空白が表示されます。
他の多くの韓国語フォント (batang、Code2000、UnShinmum、NanumGothic、UnPilgi など) も試しましたが、同じ結果になりました。
誰かが私が欠けているものを教えてくれますか?
私はqt組み込みのLinux環境に取り組んでいます