我在django网站上有一个表单
<form method="POST" action="." class="right_custom">{% csrf_token %}
<br>{% trans "Enter the discount coupon code if you have any" %}</br>
<input type="text" name="coupon_code" size="25" maxlength="25" />
<input type="submit" name="submit" value="Caluclate Discount"/>
</form>
我想将整个网站翻译成很多语言。我需要翻译Caluclate Discount
的按钮文本。我怎样才能做到这一点?如果我使用{% trans %}
标记,视图将如何捕获正确的帖子请求?
更新
在同一页面上有很多这样的表单,我的视图使用if postdata['submit']=="Caluclate Discount"
来确定它是哪个提交请求。
答案 0 :(得分:2)
我能够让翻译工作。
感谢@ linux-warrior和@Joachim的答案
现在表格是
<form method="POST" action="." class="right_custom">{% csrf_token %}
<input type="hidden" name="form_name" value="discount_form" />
<br>{% trans "Enter the discount coupon code if you have any" %}</br>
<input type="text" name="coupon_code" size="25" maxlength="25" />
<input type="submit" name="submit" value="{% trans "Caluclate Discount" %}" />
</form>
我在我的视图中检查是否postdata['form_name']=='discount_form'
答案 1 :(得分:1)
对于按钮,您实际上不会将值字段用于除按钮文本之外的任何其他内容,因此可以直接翻译:
<input type="submit" name="submit" value="{% trans "Caluclate Discount" %}"/>
答案 2 :(得分:0)
我认为你应该使用{%trans%}来提交“价值”。我不明白为什么你在视图中需要这个价值。如果需要,您仍然可以为提交输入提供自定义“名称”属性。
修改即可。顺便说一下,你的
<br>...</br>
表单中的内容似乎是一个错误。你可能想要成功
<p>...</p>
代替。也不建议对type =“submit”输入使用“submit”名称(取自http://api.jquery.com/submit/):
表单及其子元素不应使用与表单属性冲突的输入名称或ID,例如submit,length或method。名称冲突可能导致混乱的故障。有关规则的完整列表以及检查这些问题的标记,请参阅DOMLint。
答案 3 :(得分:0)
您的视图并不关心提交按钮的值是什么,所以即使您翻译它,您的视图功能也会起作用。