2012-06-20 18 views
5

¿Qué es lo mejor, organizar las claves de recursos i18n por componente?¿Cuál es la mejor manera de organizar las teclas de recursos 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 en qué consisten?

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

Respuesta

2

Creo que esta es una convención más que una regla, por lo que la respuesta podría ser "lo que parece más lógico".

he comenzado a crear las llaves de recursos i18n, y yo he adoptado la siguiente convención:

  1. Cabecera con una "sección de título", empezando por el nº
  2. punto separado notación jerárquica
  3. llaves organizadas alfabéticamente para un acceso más fácil

Ejemplo:

#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 las versiones en mayúsculas y minúsculas de las frases en inglés. Por ejemplo (JavaScript):

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

De esta manera, el desarrollador no tiene que buscar el contenido de un token de entender lo que realmente significa.

No tengo entradas redundantes para elementos que aparecen en diferentes lugares (por ejemplo, "Guardar" en un menú o en un botón, etc.) a menos que aparezcan en diferentes módulos que podrían traducirse individualmente.

Además, los tokens de título/título, mensaje y mensaje de error están organizados en diferentes archivos.

1

yo arregle la mina en función de una jerarquía, como

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" 

y luego en mis ayudantes, rutas o archivos HAML (utilizo Sinatra en su mayoría) que puedo hacer referencia a Unicode::capitalize(t.ui.save) en botón de mi 'Guardar' y "There #{t.is_are_people some_people.count}." en mi encabezado, etc.

Cuestiones relacionadas