我想使用以下代码将某些语言的字母显示到一个标签中。
这些语言是:英语、德语、日语、中文、俄语、法语、西类牙语、阿拉伯语。
我尝试了一些 Windows 系统字体,但它们都不能正确显示 ALL 字母。
我想知道是否有任何字体可以支持以上所有语言?
或者我怎样才能在 kivy 中做到这一点? (将所有这些都放在一个标签中。)
代码如下:
# -*- coding: utf-8 -*-
from kivy.app import App
#kivy.require("1.8.0")
from kivy.uix.label import Label
from kivy.uix.widget import Widget
from kivy.lang import Builder
import kivy.resources
#kivy.resources.resource_add_path(r'/home/kivy/android/android-sdk-linux/platforms/android-18/data/fonts')
kivy.resources.resource_add_path('C:\Windows\Fonts')
import os.path
Builder.load_string('''
<Label>:
font_name: 'AdobeGothicStd-Bold.otf'
<Widgets>:
Label:
text: "ABC ÄäÜüß にほんご 中文 ру́сский язы́к ÉéÈèÊêËë Españolالعَرَبِيَّة français"
size: root.width, 75
pos: root.x, root.top - 150
font_size: 50
height: 75
''')
class Widgets(Widget):
def build(self):
return Widgets()
class MyApp(App):
def build(self):
return Widgets()
if __name__ == "__main__":
MyApp().run()
谢谢!
最佳答案
由于许多技术和社会原因,您不会找到一种涵盖您想要定位的所有区域设置的优质字体。
好的软件通过组合不同的字体来实现你想要做的事情(并且标签需要用目标语言环境注释,代码点不够,日文和中文代码点重叠但不应该以相同的方式呈现)。
很多 python 软件都没有国际化,并且仍然假设选择特定的字体或字体文件就足够了。是的,但仅在 ascii 世界中。
要了解字体组合,请查看 fontconfig 和 harfbuzz-ng。
关于Python + kivy : How to display multi language in one label (Unicode)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39029719/