я пытаюсь написать персидский язык в 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()
когда я пытаюсь написать персидский на этикетке kivy, он не печатается
Что он печатает вместо этого? Ничего? Что-то другое?
Вам нужно использовать персидский шрифт. Я сделал это с арабским текстом
Вы можете скачать шрифт из здесь
Затем используйте библиотеку 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()
Выход
могу ли я написать персидский также в файле kv
Да, ты можешь. Вам нужно изменить его форму и биди, а затем просто включить шрифт. font_name: 'Amiri-Regular.ttf' и текст в качестве переменной.
Что значит "не работает"?