2012-06-20 34 views
5

哪个最好,按组件组织i18n资源键?哪个组织国际资源密钥最好的方法是?

FILE_TAB_TITLE: 'Files' 
FILE_FIELD_TITLE: 'File' 
GROUP_TAB_TITLE: 'Group' 
GROUP_FIELD_TITLE: 'Group' 
SAVE_MENU_ITEM: 'Save' 
SAVE_AS_MENU_ITEM: 'Save as...' 
SAVE_BUTTON:  'Save' 

或者它们是什么意思?

FILE: 'File' 
FILES: 'Files' 
GROUP: 'Group' 
SAVE: 'Save' 
SAVE_AS: 'Save as...' 

回答

2

我认为这是一个比规则更多的约定,所以答案可能是“似乎更合乎逻辑”。

我开始创建我的国际化资源键,我已经通过了以下约定:

  1. 头有“称号节”,以#开头的
  2. 点分开分层符号
  3. 为了方便存取,按字母顺序排列

例子:

#File access 
file.field.title = File 
file.field.subtitle = Click here 
file.tab.title = Files 

#User 
user.name = First and last name 
user.password = Password 
user.username = Username 
2

我使用英语短语的简洁大写版本。例如(JavaScript的):

SAVE: "Save", 
LOAD: "Load", 
PLEASE_SELECT_ITEM: "Please select an item.", 
PRESS_NEXT_TO_PROCEED: "Please press the Next button to proceed." 

这样,开发人员不必查找令牌的内容,以了解它的实际含义。

对于出现在不同位置(例如“保存”出现在菜单中而不是按钮上等)的项目,我没有多余条目,除非它们出现在不同模块中,并且这些模块可能会单独转换为 。

另外,标题/标题,提示和错误消息标记被组织到不同的文件中。

1

我安排的功能矿的层次,比如,

ui: 
    choose: choose... 
    save: save 
    cancel: cancel 
    preview: preview 

season: 
    summer: summer 
    autumn: autumn 
    winter: winter 
    spring: spring 

people: !!pl 
    0: no people 
    1: one person 
    n: "%1 people" 

is_are_people: !!pl 
    0: are no people 
    1: is one person 
    n: "are %1 people" 

,然后在我的助手,路线或HAML文件(我用西纳特拉居多)可以参考我Unicode::capitalize(t.ui.save)在我的“保存”按钮, "There #{t.is_are_people some_people.count}."在我的标题等