【发布时间】:2020-11-10 09:02:51
【问题描述】:
我是 JavaFX 的新手,我想知道如何支持多种语言字体(即中文、英文、印地语等)。
目前,当我将 TextField 设置为使用支持 css 中拉丁字符的字体系列时,其他语言的字符将无法正确呈现。
这是我的 CSS:
@font-face {
src: url('WorkSans-Regular.ttf');
}
.text-area {
-fx-font-size: 25;
-fx-font-family: 'Work Sans';
}
我意识到 JavaFX css 不允许使用逗号分隔的字体用于字体堆栈和后备字体,如下所示:
@font-face {
src: url('WorkSans-Regular.ttf');
}
@font-face {
src: url('NotoSansSC-Regular.ttf');
}
.text-area {
-fx-font-size: 25;
-fx-font-family: 'Work Sans', 'Noto Sans SC';
}
还有其他方法可以支持多种语言的输入吗? 我的项目要求用户输入多种语言的文本,我需要确保将字体嵌入到 .jar 中,以便每个用户都有相同的 UI。
【问题讨论】:
-
由于我对这个主题知之甚少,我的猜测是您应该找到一种涵盖您想要支持的大多数语言的字体。如果我是你,我会看不同的 Unicode 字体。根据网络,
Arial Unicode是一个好的开始。 en.wikipedia.org/wiki/Unicode_font -
hmm .. 这与您之前的问题stackoverflow.com/questions/62934939/… 有什么不同(无法判断,不同字体的知识不多;)?似乎答案没有得到真正的支持?无论如何,如果它足够不同,不要从零开始,而是添加对那个旧问题的引用并准确解释新问题:)
-
你能确定运行时使用的是什么语言吗?语言是用户配置吗?整个应用程序使用相同的语言还是同时使用多种语言?
-
@Slaw 我计划让用户能够命名项目。所以我希望用户能够以任何语言输入。如果不能同时使用多种字体,我应该限制用户输入拉丁字符吗?
-
好吧,我将建议使用自定义
javafx.css.PseudoClass(或多个),然后您可以在 CSS 文件中使用它来选择合适的字体。没有明确的方法来确定所使用的语言使这变得更加复杂。虽然我想您可以尝试检查个人chars 以尝试猜测语言(如果可能的话)。