Python + kivy : How to display multi language in one label (Unicode)?

标签 python unicode character-encoding kivy

我想使用以下代码将某些语言的字母显示到一个标签中。

这些语言是:英语、德语、日语、中文、俄语、法语、西类牙语、阿拉伯语。

我尝试了一些 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/

相关文章:

python - django session 以防止用户多次投票

C++ 服务示例 - Unicode 转换

c++ - CString 到 const byte* 的 Unicode 项目?

c - 如何为 C11 U“unicode 文字”正确使用 `__attribute__((format (printf, x, y)))`?

Java正则表达式匹配UTF-8字符串(无副本)

mysql - 运算符喜欢,字段类型时间戳和西里尔字母? MySQL错误?

python - 如何从字符串中删除所有标点符号?

javascript - Python 相当于 Javascript 类和箭头函数

python - POST 数据中出现的字符

php - 无法使用 php 脚本和 fpdf 在 pdf 中打印希腊字符