django - Django - 是否可以只翻译一些模型(管理表单)?
问题描述
假设您有一个 django 管理站点,其中包含常见的用户/组模型,以及您希望保留未翻译的一些其他模型,但需要将某些特定形式翻译成另一种预定义语言,因此它可以很容易使用他们。
想想希伯来语/阿拉伯语:我找到了一种翻译字段名称的简单方法,甚至找到了用于部分翻译我的表单的“rtl.css ”。然而标题仍然是英文的,但在屏幕的右侧。
文档和一些示例表明,在翻译整个管理站点时有很好的支持(通过设置在整个站点上设置语言),但我找不到如何专门设置语言一种/一些形式,这似乎是一个合理的要求。
解决方案
这比预期的要容易得多......
将 rtl.css 从 django 存储库复制到您的 static/
然后在您想要使用 RTL 的任何 ModelAdmin 中添加:
class Media:
css = {'all': ('project_name_folder/css/rtl.css',)}
def render_change_form(self, request, context, add=False, change=False, form_url='', obj=None):
translation.activate('he') # 'he' for hebrew
return super().render_change_form(request, context, add, change,
translation.activate('en') # go back to english/LTR for other views
form_url,对象)
你可以走了。这只会影响被覆盖模型的管理员。
推荐阅读
- javascript - 测试时弹出消息框
- regex - 如何使用正则表达式从 Bash 中的字符串中提取变量?
- vue.js - Vue.js 单元测试更新 vuex 存储错误
- python - 从 S3 下载,存放在 Lambda 的 /tmp/ 并解压到 /tmp/ 目录
- docker - docker-compose 环境中的 IdentityServer4 令牌颁发者
- r - 网络抓取时是否有用于在网站上查找特定单词的 R 函数?
- scala - 将元素插入集合是否有特定的顺序?
- gatsby - 将 Gatsby 代码转换为传统的 HTML/CSS/JS 文件?
- javascript - 为什么 let 在 async for 循环中工作而 var 不工作?
- java - Spring @Cacheable 除非由自定义键生成器创建的属性引用键