通常,翻译方法采用键 > 值映射并使用键将其转换为值。现在我认识到了两种不同的方法来命名你的翻译键,在我的团队中,我们并没有就似乎是最好的方法达成共识。
方法一: 使用完整的英文单词或句子:
Name => Name
Please enter your email address => Please enter your email address
方法二: 使用关键字描述情况:
NAME => Name
ENTER_EMAIL => Please enter your email address
我个人更喜欢方法#1,因为它直接显示了消息的含义。如果翻译不存在,您可以退回到密钥,这不会导致任何问题。但是,当翻译频繁更改时,该方法很麻烦,因为所有文件都需要更新。同样对于较长的文本,这些键变得非常大。这可以通过使用类似的键来解决ENTER_EMAIL
,但是措辞完全脱离了上下文。抽象翻译键的列表会很大,您需要所有键的元数据来解释它们的用法,并且更容易发生冲突。
是否有两全其美的方法或第三种方法?您如何在应用程序中使用翻译键?在我们的例子中,它是一个基于 php 的 web 应用程序,但我认为上面的问题足够笼统地讨论 i18n。