2012-06-20 11 views
5

Quale è la migliore, organizzare le chiavi delle risorse i18n per componente?Qual è il modo migliore per organizzare le chiavi delle risorse 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' 

O con cosa intendono?

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

risposta

2

Penso che questa sia una convenzione più che una regola, quindi la risposta potrebbe essere "qualsiasi cosa sembri più logica".

ho iniziato a creare le mie chiavi di risorse i18n, e ho adottato la seguente convenzione:

  1. intestazione con una "sezione del titolo", a partire dal numero
  2. Dot separato notazione gerarchica
  3. Tasti organizzati in ordine alfabetico per facilitare l'accesso

Esempio:

#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

Uso versioni tergenti, maiuscole delle frasi inglesi. Per esempio (JavaScript):

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

In questo modo, lo sviluppatore non ha bisogno di guardare in alto il contenuto di un gettone per capire che cosa significa in realtà.

Non ho voci ridondanti per voci che appaiono in luoghi diversi (ad esempio "Salva" che appare in un menu rispetto a un pulsante ecc.) A meno che non compaiano in moduli diversi che potrebbe potenzialmente essere tradotto singolarmente.

Inoltre, i token titolo/didascalia, prompt e messaggi di errore sono organizzati in file diversi.

1

organizzo la mia base alla funzione in una gerarchia, come ad esempio

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" 

e poi nei miei aiutanti, rotte o file Haml (io uso Sinatra soprattutto) che posso fare riferimento a Unicode::capitalize(t.ui.save) nel mio tasto 'Salva' e "There #{t.is_are_people some_people.count}." nella mia rubrica, ecc.

Problemi correlati