1

我正在开发 Qt 中的多语言应用程序。我需要支持中文、日文、韩文和英文。为此,我使用“makeqpf”工具来转换 ukai.ttf(支持中文和日文)和 UnDotum.ttf(支持韩文)字体 qpf 共振峰,并将它们复制到 /usr/local/Trolltech 的目标板(基于 imx6q 的板) /lib/字体。复制到目标后,从下拉框中选择中文/日文后,我可以在屏幕上看到我的字符串转换为适当的语言。我正在使用翻译来转换字符串并将 .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-embedded linux 环境

4

0 回答 0