我正在使用 Tkinter 作为我的 Gui (Python)。到目前为止,该程序仅支持 LTR 语言。现在我还需要支持 RTL 语言(希伯来语)。
\n\n我看到了处理镜像文本的答案,但这不是我的问题。\n我在使用符号/标点符号(点、逗号等)时遇到问题,而且在我写英语和英语时也遇到问题希伯来语在同一个句子中。\n例如,我得到:
\n\n\n\n\n"\xd7\xa9\xd7\x9c\xd7\x95\xd7\x9d。欢迎。\xd7\x9e\xd7\x94 \xd7\xa9\xd7\x9c\xd7\x95\xd7\x9e\xd7\x9b\xd7 \x9d?”
\n
什么时候应该是:
\n\n\n\n\n"?\xd7\x9e\xd7\x94\xd7\xa9\xd7\x9c\xd7\x95\xd7\x9e\xd7\x9b\xd7\x9d.欢迎。\xd7\xa9\xd7\x9c\xd7\x95\ xd7\x9d"
\n
我迷路了。有什么建议么?
\n小智 1
四年后,作为练习,我编写了一个函数,将文本从左到右更改为从右到左。
\ntext = "\xd7\xa9\xd7\x9c\xd7\x95\xd7\x9d. welcome. \xd7\x9e\xd7\x94 \xd7\xa9\xd7\x9c\xd7\x95\xd7\x9e\xd7\x9b\xd7\x9d?"\n\nnew_text = []\n# list to hold each sentence\n\nend_character_number = len(text) - 1\nend_char = end_character_number\n\nif text[end_char] == "?" or text[end_char] == "!" or text[end_char] == ".":\n new_text.append(text[end_char]) # adds final punctuation first\n text = text[:end_char] # removes final punctuation from left-to-right text\n\nright_to_left_checker = end_char - 1 \nrtl_checker = right_to_left_checker \n\nwhile rtl_checker >= 0:\n if text[rtl_checker] == "?" or text[rtl_checker] == "!" or text[rtl_checker] == ".":\n sentence = text[rtl_checker+1:].strip()\n new_text.append(sentence) # adds each sentence in right-to-left order\n new_text.append(" " + text[rtl_checker]) # add punctuation and space after\n text = text[:rtl_checker] # removes sentence from left-to-right text\n if rtl_checker == 0:\n new_text.append(text) # adds final sentence in right-to-left order\n text = text[:rtl_checker] # removes final sentence from left-to-right text\n rtl_checker = rtl_checker - 1 # moves punctuation checker one place right-to-left\n\nright_to_left_sentence = ""\nrtl_sent = right_to_left_sentence\n\nfor part in new_text:\n rtl_sent = rtl_sent + part # creates new right-to-left sentence\n\nprint(rtl_sent)\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
620 次 |
| 最近记录: |