我们正在翻译现有的Symfony4应用程序,方法是使用翻译组件提取文本,并另外使用php-translation / symfony-bundle
我们不确定将现有文本用作键或插入占位符是否更好。
使用文本的优点是:
缺点是:
您和您的团队如何处理? 翻译文件是您存储库的一部分吗?
此链接建议使用按键: https://medium.com/@smaine.milianni/straightforward-symfony-4-best-practices-e6d1b3c0a9dd
答案 0 :(得分:2)
始终使用键而不是内容字符串进行翻译。
使用密钥可简化翻译文件的管理,因为 您可以更改原始内容,而不必更新所有 翻译文件。
键应始终描述其目的,而不是位置。对于 例如,如果表单的字段带有标签
Username
,则很不错 键将是label.username
,而不是edit_form.label.username
。
使用键代替文本通常会避免在内容中设置键时出现错误,并且显示的内容要小得多。
示例
<div>
<span>{% trans %}Please enter the value of this input in order for the calculation to work{% endtrans %}</span>
<label>{% trans %}Simple Input{% endtrans %}</label>
<input type="text"/>
</div>
在这种情况下,如果您将{% trans %}Simple input{% endtrans %}
写在其他地方,那么即使它是相同的,也必须管理另一个翻译。
当然,我们可以争辩说您希望进行大写/小写转换,但是例如,如果使用细枝,则可以使用一些帮助函数来处理lower,upper和{{3 }}。
VS
<div>
<span>{% trans %}help_text.simple_input{% endtrans %}</span>
<label>{% trans %}label.simple_input{% endtrans %}</label>
<input type="text"/>
</div>