有没有办法在 python kivy 中写波斯语

is there a way to write Persian in python kivy

我尝试在 python kivy 中写波斯语,但它不起作用。

from kivy.app import App
from kivy.uix.screenmanager import ScreenManager,Screen
from kivy.lang import Builder
from kivy import Config
from kivy.uix.label import Label
from kivy.uix.widget import Widget


class MainApp(App):
    def build(self):
        return Label(text= "فارسی")

if __name__ == "__main__":
    MainApp().run()

您需要使用一些波斯字体。 我已经用阿拉伯文字完成了

您可以从here

下载字体

然后使用 arabic_reshaper 库使其成形。

pip install arabic-reshaper

你还需要 python-bidi 来翻转字母

pip install python-bidi

参考这个https://github.com/mpcabd/python-arabic-reshaper

代码

from kivy.app import App
from kivy.uix.screenmanager import ScreenManager,Screen
from kivy.lang import Builder
from kivy import Config
from kivy.uix.label import Label
from kivy.uix.widget import Widget
import arabic_reshaper
from bidi.algorithm import get_display

class MainApp(App):
    def build(self):
        reshaped_text = arabic_reshaper.reshape("فارسی")
        bidi_text = get_display(reshaped_text)
        
        return Label(text= bidi_text, font_name='Amiri-Regular.ttf', font_size=30)

if __name__ == "__main__":
    MainApp().run()

输出