关于资源文件中的密钥命名,有人吗?例如,您是否将密钥名称基于需要本地化的文本或使用该文本的控件?

假设您在几个屏幕中都有一个编辑按钮(一个用于编辑用户,一个用于编辑组)。您可以使用以下键:


editUserButton.label =编辑用户...
editGroupButton.label =编辑组...


要么


editUser =编辑用户...
editGroup =编辑组...


要么


user.edit =编辑用户...
group.edit =编辑组...


您喜欢哪种方案,为什么?

最佳答案

我用用例或操作类名作为文字的前缀。例如:

PlaceOrder.invalidId =订单{0}的无效ID
PlaceOrder.success =您的订单{0}成功
PlaceOrder.fail.visa =您的签证是...
PlaceOrder.fail.communications =我们无法...
PlaceOrder.submit =立即购买

登录=登录
Login.fail =您的凭据没有...
Login.alread =您已经登录

这样可以避免冲突:

EditStudent =编辑
EditClass =编辑
EditCourse =编辑课程

...也可以更轻松地找到您需要的东西。

我分组的另一种方法是按实体:

Person.id =#
Person.name =名字
Person.surname =姓氏

这些可以显示为带有实体的表的标题。这样可以节省您的时间:

Person.id =#
Class.id =#
Course.id =课程ID

最后,通过在属性键中提供上下文,您可以避免错误翻译。例如,我曾经有:

否=否

它被用作左上方单元格的id(#)表头,但是我们的法语翻译为法语做了此操作:

否=无

...他认为这是“否”(否定是)一词。 :)

最后(但并非最不重要)的前缀是classname,当您希望重构/重命名类并快速更新这些属性键而无需查看模板时,它们将为您提供帮助。

关于localization - 在资源文件中命名 key 最佳实践,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/621600/

10-10 19:39