есть ли способ написать персидский в 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()

person Pykalier    schedule 21.12.2020    source источник
comment
Что значит не работает?   -  person mkrieger1    schedule 21.12.2020
comment
когда я пытаюсь написать персидский на этикетке kivy, он не печатается   -  person Pykalier    schedule 21.12.2020
comment
Что он печатает вместо этого? Ничего такого? Что-то другое?   -  person mkrieger1    schedule 21.12.2020


Ответы (1)


Вам нужно использовать персидский шрифт. Я сделал это с арабским текстом

Вы можете скачать шрифт с здесь

Затем используйте библиотеку 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()

Вывод

введите здесь описание изображения

person Fadi Abu Raid    schedule 21.12.2020
comment
могу ли я написать персидский также в файле kv - person Pykalier; 21.12.2020
comment
Да, ты можешь. Вам нужно изменить его форму и биди, а затем просто включить шрифт. font_name: 'Amiri-Regular.ttf' и текст в качестве переменной. - person Fadi Abu Raid; 21.12.2020