我正在用django 1.4运行python2.7。python/django - html选择列表中的双向括号问题
我有我的views.py页面下面的代码返回在选择列表中的语言名称:
Python代码:(views.py)
available_languages = []
for lv in language_versions:
language = LANGUAGES[lv.language_code]
if lv.language_code == user_language_code:
language_label = (lv.language_code, u"%s" % (language.name_native))
else:
language_label = (lv.language_code, u"%s/%s" % (language.name, language.name_native))
available_languages.append(language_label)
....
available_languages = sorted(available_languages, key=lambda x: x[1], cmp=compare)
return available_languages
HTML代码:
{{ field }}
选择列表:
German/Deutsch
Polish/polski
Portuguese (Brasil)/português (Brasil)
Spanish (Latin America)/español (Latinoamérica)
Russian/pусский
问题是,当页面在像阿拉伯语选择列表呈现一个RTL语言被认为有错位置的LTR文本的括号如下:
لألمانية/Deutsch
البولندية/polski
البرتغالية) لبرتغال)/português) Portugal)
لإسبانية أمريكا) اللاتينية)/español) Latinoamérica)
الروسية/pусский
怎么办我在view.py文件中编写代码以正确显示双向括号?
我已经阅读了很多主题,并尝试了很多不同的方法来解决这个问题,但我已经没有想法。
一次没有奏效的尝试是用Unicode控制(定向)字符挡住语言名称‪ ‬ & rlm;在view.py文件中 - ‪ ‬ & rlm;被渲染到页面中的选择列表。例如:
‪إسبانيةأمريكا)اللاتينية)/português(Brasil)‬ & rlm;
还增加了以下的CSS没有效果:
direction: rtl; unicode-bidi: embed
您是否试过https://pypi.python.org/pypi/django-right-to-left/0.1.1? –
我还没有尝试django从右到左,因为问题仍然会发生由于rtl,ltr和中性文本的混合。括号被认为是一个中性文本字段。 – user1261774
您是否尝试将Unicode控制字符直接嵌入到源代码中(在'LANGUAGES'中)?我认为将这些控制字符添加到views.py是没有意义的,因为您不知道它是否会提前使用RTL或LTR语言。 – user193130