使用LANGUAGE_BIDI的django从右到左的语言不起作用

sae*_*eed 9 django multilingual internationalization

我正在使用其中一种语言"波斯语"构建一个多语言网站:到目前为止一切正常,但是当开始下一行文本时,右到左语言"波斯语/波斯语"没有正确对齐.这意味着下一行不会像往常一样从右到左语言对齐.翻译工作.

settings.py

gettext = lambda s: s

#default language should be german
LANGUAGE_CODE = 'de'
#LANGUAGE_CODE = 'en'
#LANGUAGE_CODE = 'fa'


LANGUAGES = (
    #('fr', gettext('French')),
    ('de', gettext('German')),
    ('en', gettext('English')),
    ('fa', gettext('Farsi')),
    #('pt-br', gettext("Brazil")),
)
Run Code Online (Sandbox Code Playgroud)

language_chooser.html

{% load localeurl_tags %}
{% load i18n %}
{% load tabs %} 


{% for lang in LANGUAGES %}
        {% ifequal lang.0 LANGUAGE_CODE %}
           <li class="active"><a>{{ lang.1 }}</a></li>
        {% else %}

<!--
        {% if LANGUAGE_BIDI %}
          <li>The current language is bidirectional</li>
        {% else %}
          <li>The current language is <b>not</b> bidirectional</li>
        {% endif %}
-->
           <li class="{% ifactivetab "en" %}active{% else %}inactive{% endifactivetab %}"><a href="{{ request.path|chlocale:lang.0 }}" accesskey="2">{{ lang.1 }}</a></li>
        {% endifequal %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

base.html我也加载:

{% load i18n %}
{% get_current_language as LANGUAGE_CODE %}
{% get_available_languages as LANGUAGES %}
{% get_current_language_bidi as LANGUAGE_BIDI %}
Run Code Online (Sandbox Code Playgroud)

我的"farsi/persian"语言的django.po文件如下: 替代文字

我该怎么办呢?

解决方案: 在使用属性"text-align:right;"定义新的css类"article_right_aligned_language"之后 并修改我的基本模板如下,它现在工作!

      <div {% if LANGUAGE_BIDI %} class="article_right_aligned_language" {% else %} class="article"> {% endif %}
        {% block site_wrapper %}{% endblock %}
      </div>
Run Code Online (Sandbox Code Playgroud)

Mar*_*row 7

文本对齐由CSS而不是Django处理.text-align在容器元素上设置属性:

.container.right-aligned-language {
    text-align: right;
}
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用right-aligned-language模板中的条件语句将类应用于容器(或者该标签的正文标记).