2012-06-20 65 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}."在我的標題等