对于拥有大量固定字符串(标签,公告等)的网站,我将为项目添加国际化,并且我想知道您在原始代码中使用关键字与真实短语的体验?哪一个更好用?
检查此示例 - 在django中:
真实的短语:
<p>
{% trans "Welcome to my website" %}
</p>
关键字:
<p>
{% trans "WELCOME_MESSAGE" %}
</p>
当然使用真实的短语更容易,但我有一些不好的经历。考虑一般词,{% trans "contacts" %}
用作页面的标题,在{{selected_contacts_count}}{% trans "contacts" %}
这样的词组中使用的其他地方,contacts
的翻译作为页面的标题可能与{{{{1}的翻译不同1}}作为短语中的单词,所以这是冲突。
答案 0 :(得分:2)
当然,关键字更好,不仅因为它们更容易为程序员阅读,而且还能更快地在文件中查找这些字符串,并且您不会“绑定”一种语言(例如英语)
答案 1 :(得分:2)
我认为这主要是个人品味的问题。
使用真实短语,您将遇到上述碰撞,您可以使用
作为示例 {% blocktrans %}{{selected_contacts_count}} contacts{% endblocktrans %}
代替。
使用关键字,您必须为所有翻译创建一个唯一的关键字,这在项目增长时可能不那么容易,因此事先设计某种命名约定可能是个好主意。
答案 2 :(得分:1)
关键字。
某个地方,有时候,某个地方,你需要有一个翻译表。它可能是平面文件,它可能是数据库存储,但它可能看起来像这样:
field | language | message
构建和维护基于关键字的系统会更容易:
WELCOME_MESSAGE | EN | Welcome to our online h ome
WELCOME_MESSAGE | FR | bienvenue chez nous en ligne
WELCOME_MESSAGE | SW | kuwakaribisha nyumbani kwetu online
如果您正在将数据插入到这些翻译中,那么您可能遇到的一个问题是必须处理多元化:
There is one item.
There are four items.
You have one new message.
You have four new messages.
因此,当你向前迈进时,请记住这一点。