Я пытаюсь сделать простое приложение в kivy (пакет python), которое получает текст из поля TextInput, и при нажатии кнопки оно возвращает текст на иврите, который будет отображаться в другом TextInput. Кажется, все работает нормально, но Я сталкиваюсь с проблемой, что поле TextInput в Kivy не может отображать текст на иврите, который я пытаюсь показать.
Вот что я получаю:
Как видите, он показывает этот странный текст вместо текста, который мне нужно показать...
Мой код, мой основной скрипт:
import kivy
from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.gridlayout import GridLayout
from kivy.uix.textinput import TextInput
from kivy.uix.label import Label
from kivy.uix.widget import Widget
from kivy.properties import ObjectProperty
import getData
class MainScreen(Widget):
ttc = ObjectProperty(None)
ct = ObjectProperty(None)
def btn(self):
self.ct.text = getData.HE_EN(text=self.ttc.text.lower())
pass
class MyApp(App):
def build(self):
return MainScreen()
if __name__ == "__main__":
MyApp().run()
Мой файл "my.kv":
<MainScreen>:
ttc: ttc
ct: ct
GridLayout:
size: root.width, root.height
cols: 1
TextInput:
text: ""
id: ttc
Button:
text: "CONVERT"
on_press: root.btn()
TextInput:
text: "CONVERTED TEXT"
id: ct
Нет необходимости показывать скрипт getData.py, который возвращает текст на иврите, потому что это не имеет большого значения...
Ожидаемый результат - получить текст, который я хочу, в TextInput, даже если мне это не удается. Пожалуйста, помогите мне решить мою проблему, мне это очень нужно...
@inclement хорошо, Kivy не поддерживает форматирование справа налево, хотя мне это действительно не нужно, так что сейчас я в порядке.






Хорошо! Так что это не заняло много времени, потому что кто-то на сервере разногласий помог мне, и все, что мне нужно было сделать, это просто переключить шрифт текстовой области, потому что в предыдущем не было шрифта на иврите. Для этого я скачал шрифт «Arial», добавил его в свою папку с основным скриптом, импортировал from kivy.core.text import LabelBase, а затем зарегистрировал шрифт: LabelBase.register(name = "Arial", fn_regular = "Arial.ttf"), чтобы сообщить TextInput, что я хочу установить шрифт, который я только что добавил в свой файл . kv под виджетом 'font_name: "Arial"', и это решило проблему.
На самом деле все, что вам нужно, это использовать font_name: «Arial», и ему не нужно больше импортировать.
Но как вы исправили эту штуку с RTL-LTR? Я получаю "םולש" вместо "שלום"
Ну, мне не удалось это исправить, поэтому я просто перевернул текст и написал это в левой части текстовой области.
Шрифт по умолчанию не содержит символов иврита, вам нужно использовать тот, который их содержит. TextInput должен иметь свойство для установки шрифта. Я не уверен, работает ли форматирование справа налево, это может быть ошибка в kivy.