为什么人们使用翻译占位符而不是简单的英语?

Why do people use translation placeholders instead of plain English?

是的,这是完全相反的问题:Why do people use plain english as translation placeholders?

我一直使用标准的 gettext 方式进行翻译,但现在我正在做前端,我意识到不仅大多数库都在使用 keys/placeholders,而且有时也推荐这样做(参见 i18next ) 而不是使用简单的英语。

我对占位符的工作不多,但我发现它很难,因为:

根据i18-next的文档,建议使用占位符,因为:

While this works and might reduce files to load it makes the management of translations a lot harder as you will need to update changes to fallback values in code and json files.

  1. 我不会使用简单的英语来减少要加载的文件数量。这显然是错误的。
  2. JSON? PO/POT 怎么了?已经有很多翻译工具了。
  3. 如果需要更改措辞,则应检查所有翻译,所以我想这有点 "good" 会破坏旧的翻译,对吗?
  4. 在我看来,开发人员可以专注于正确处理英文文本,而翻译人员可以正确处理其他语言,这似乎更容易。
  5. 我真的不明白使用简单的英语有多难。一个现实生活中的例子会很棒。

我的猜测是这两种方法各有利弊,但我没有看到占位符的优点,所以我想了解一下。

我认为这只能归结为之前的假设,即固定占位符 id 意味着您以后可以在不破坏占位符与已完成的外国翻译的连接的情况下精巧地处理英文翻译字符串。

不过,我和你的看法是一样的——简单的英语更好,如果英语发生变化,那么当然也需要检查外文翻译是否也需要更新。

惯例可能是错误的。