当用户在 Django i18n 翻译中更改语言时如何提供不同的 CSS 文件
How to serve different CSS file when user change language in Django i18n translation
我使用的是Django i18n翻译系统,有两种语言:
LANGUAGES = (
('fa', _('Persian')),
('en', _('English')),
)
波斯语是从右到左的,我想在用户将语言更改为波斯语时提供另一个 CSS 文件。
或者当用户更改语言时,也许有更好的方法将 LTR 更改为 RTL?
我在 Ubuntu Ubuntu 上使用 nginx 和 wsgi vps.
一种可能的方式:
我假设您有 2 个 css 文件,例如 static/css/fa.css 和 static/css/en.css
在模板中,当你 link 你的 css 你可以这样做:
<link type="text/css" href="{% trans 'static/css/en.css' %}">
在您的波斯语翻译文件中,您输入如下内容:
msgid "static/css/en.css"
msgstr "static/css/fa.css"
或者,如果您希望 css 做的唯一事情是将 LTR 更改为 RTL,您可以在模板中执行以下操作:
{%load i18n%}
{%get_current_language as LANGUAGE_CODE%}
{%get_language_info for LANGUAGE_CODE as lang%}
....
{% if lang.bidi %}
<!-- Some HTML code for RTL -->
{% else %}
<!-- Some HTML code for LTR -->
{% endif %}
我假设您有以下文件和目录结构:
/static/fa/css/default.css
/static/en/css/default.css
然后我会选择:
{% get_static_prefix %}{% get_current_language %}"/css/default.css"
我使用的是Django i18n翻译系统,有两种语言:
LANGUAGES = (
('fa', _('Persian')),
('en', _('English')),
)
波斯语是从右到左的,我想在用户将语言更改为波斯语时提供另一个 CSS 文件。 或者当用户更改语言时,也许有更好的方法将 LTR 更改为 RTL?
我在 Ubuntu Ubuntu 上使用 nginx 和 wsgi vps.
一种可能的方式:
我假设您有 2 个 css 文件,例如 static/css/fa.css 和 static/css/en.css
在模板中,当你 link 你的 css 你可以这样做:
<link type="text/css" href="{% trans 'static/css/en.css' %}">
在您的波斯语翻译文件中,您输入如下内容:
msgid "static/css/en.css" msgstr "static/css/fa.css"
或者,如果您希望 css 做的唯一事情是将 LTR 更改为 RTL,您可以在模板中执行以下操作:
{%load i18n%}
{%get_current_language as LANGUAGE_CODE%}
{%get_language_info for LANGUAGE_CODE as lang%}
....
{% if lang.bidi %}
<!-- Some HTML code for RTL -->
{% else %}
<!-- Some HTML code for LTR -->
{% endif %}
我假设您有以下文件和目录结构:
/static/fa/css/default.css
/static/en/css/default.css
然后我会选择:
{% get_static_prefix %}{% get_current_language %}"/css/default.css"