4

哪个最好,按组件组织 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...'
4

3 回答 3

2

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

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

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

对于出现在不同位置的项目(例如,菜单中出现的“保存”与按钮上的“保存”等),我没有多余的条目,除非它们出现在可能单独翻译的不同模块中。

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

于 2012-07-24T13:58:27.497 回答
2

我认为这是一个约定而不是规则,所以答案可能是“任何看起来更合乎逻辑的东西”。

我已经开始创建我的 i18n 资源密钥,并且我采用了以下约定:

  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
于 2012-07-24T13:50:32.260 回答
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 文件(我主要使用 Sinatra)中,我可以Unicode::capitalize(t.ui.save)在我的“保存”按钮和"There #{t.is_are_people some_people.count}."标题等中引用。

于 2012-09-19T22:47:37.883 回答