Django模板以奇怪的顺序呈现{%trans%}字符串

时间:2017-05-17 10:27:33

标签: html django

我正在努力在Django网络数据库中支持阿拉伯语,我遇到了一些非常奇怪的渲染行为。具体来说,我正在尝试从右到左对页面上的单词进行重新排序,所有单词都是在模板中单独收集的字符串(来自上下文变量或反式标记)。希望这些图像能够清楚地说明问题。

英语是项目默认值。 Django版本是1.6。

在英语中,一切都很好 enter image description here 产率enter image description here

然而在阿拉伯语中,相同的标记会导致这种情况,最后会呈现文化时段。 enter image description here

但是如果我拿出第一个反式标签并用这样的字符串替换它 enter image description here 订单是正确的 enter image description here

现在这里变得非常奇怪。如果我在第一个反式标记之后添加一些字符(在本例中为cp),它会正确呈现 enter image description here 产量 enter image description here

但是如果我在之前添加一个字符(在这种情况下是冒号),它会以一种非常奇怪的方式分裂 enter image description here 产率enter image description here

我真的希望Django在翻译时使用一些可以解释这一点的基本规则。我真的希望它不是(因为我理论化)由翻译所带来的微小滞后造成的,导致模板的某些部分在其他部分之前渲染......

我还应该提到一些上下文变量被传递给模板,并且屏幕截图中显示了标记之外的循环结构和if语句。

更新:通过更多测试,我相信我发现如果不止一个反式字符串彼此相邻,它们将从右向左呈现,即使它们在模板中从左到右显示。如果引入了非反式字符,它会“重置”此模式,并将其前后的所有内容呈现为一组从右到左的文本。遗憾的是,&nbsp;无法分隔这些字符串,也不会将它们放在不同的div中。我可能需要使用<br>,但风格明智,我宁愿不...

0 个答案:

没有答案