css - 当用户在 Django i18n 翻译中更改语言时如何提供不同的 CSS 文件
问题描述
我正在使用 Django i18n 翻译系统,有两种语言:
LANGUAGES = (
('fa', _('Persian')),
('en', _('English')),
)
波斯语是从右到左的,当用户将语言更改为波斯语时,我想提供另一个 CSS 文件。或者,当用户更改语言时,是否有更好的方法将 LTR 更改为 RTL?
我在Ubuntu vps上使用nginx和wsgi 。
解决方案
一种可能的方式:
我假设您有 2 个 css 文件,例如 static/css/fa.css 和 static/css/en.css
在模板中,当你链接你的 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 %}
推荐阅读
- hadoop - 如何将配置单元查询输出重定向到带有空格的标题和列名的文本文件
- kubernetes - Nginx Ingress 控制器设置问题
- python - Mixin 方法 super() 调用在 PyCharm 中生成一个未解析的属性引用
- sql - 警告:使用编译错误创建的类型
- visual-studio-code - 编辑器和小地图中文件中的灰色突出显示行?
- uwp - 是否可以在 Windows 10 的开发人员模式下安装未签名的 UWP 应用?
- java - 如何在基本适配器中按下按钮时添加新项目
- angular - 对于 Angular 应用程序,我应该在哪里存储从 Auth Server 生成的 JWT 令牌?
- python - Python:用熊猫重命名列
- javascript - 如何在html中显示从firebase检索到的数据