您提供的代码示例
var one = _(moment().startOf("week").format('dddd'))
是 JavaScript。在 JS 中,更常见的是使用 _ 名称作为 underscore.js 或 lodash,而不是用于翻译。这可能不是你想要的。
如果您想在 Python 中进行翻译,那么您应该将已翻译的字符串作为变量提供给您的 JS 脚本。如果 values 仅来自 JS,那么我建议使用字典/对象将日期数字映射到已翻译的字符串。制作一个包含以下内容的 Django 模板:
{% load trans %}
<script>
var dayNamesMap = {
0: "{% trans 'Monday' %}",
1: "{% trans 'Tuesday' %}",
2: "{% trans 'Wednesday' %}",
// etc.
};
</script>
或在您的视图中执行此操作,确保已设置语言环境(请参阅How Django discovers language preference):
day_names_map = json.dumps({
date.weekday(): date.strftime('%A')
for i in range(7)
for date in [datetime.date.today() + datetime.timedelta(days=i)]
})
返回
'{"3": "Thursday", "4": "Friday", "5": "Saturday", "6": "Sunday", "0": "Monday", "1": "Tuesday", "2": "Wednesday"}'
然后将day_names_map 添加到您的上下文中,并在您的模板中执行以下操作:
<script>
var dayNamesMap = {{ day_names_map }}
</script>