gpt4 book ai didi

python - TKinter 中的 RTL(从右到左)语言

转载 作者:行者123 更新时间:2023-11-28 19:28:47 26 4
gpt4 key购买 nike

我正在为我的 Gui (Python) 使用 Tkinter。到目前为止,该程序仅支持 LTR 语言。现在我还需要支持 RTL 语言(希伯来语)。

我看到了处理镜像文本的答案,但这不是我的问题。我在使用符号/标点符号(点、逗号等)以及在同一个句子中同时写英语和希伯来语时遇到问题。例如,我得到:

"שלום. welcome. מה שלומכם?"

什么时候应该:

"?מה שלומכם .welcome .שלום"

我迷路了。有什么建议吗?

最佳答案

四年后,但作为练习,我编写了一个函数,将文本从从左到右更改为从右到左。

text = "שלום. welcome. מה שלומכם?"

new_text = []
# list to hold each sentence

end_character_number = len(text) - 1
end_char = end_character_number

if text[end_char] == "?" or text[end_char] == "!" or text[end_char] == ".":
new_text.append(text[end_char]) # adds final punctuation first
text = text[:end_char] # removes final punctuation from left-to-right text

right_to_left_checker = end_char - 1
rtl_checker = right_to_left_checker

while rtl_checker >= 0:
if text[rtl_checker] == "?" or text[rtl_checker] == "!" or text[rtl_checker] == ".":
sentence = text[rtl_checker+1:].strip()
new_text.append(sentence) # adds each sentence in right-to-left order
new_text.append(" " + text[rtl_checker]) # add punctuation and space after
text = text[:rtl_checker] # removes sentence from left-to-right text
if rtl_checker == 0:
new_text.append(text) # adds final sentence in right-to-left order
text = text[:rtl_checker] # removes final sentence from left-to-right text
rtl_checker = rtl_checker - 1 # moves punctuation checker one place right-to-left

right_to_left_sentence = ""
rtl_sent = right_to_left_sentence

for part in new_text:
rtl_sent = rtl_sent + part # creates new right-to-left sentence

print(rtl_sent)

关于python - TKinter 中的 RTL(从右到左)语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50387231/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com