Estamos desarrollando una aplicación grande, que consta de muchos paquetes pequeños. Cada paquete tiene su propio conjunto de archivos de recursos para la localización.
¿Cuál es el mejor enfoque para organizar y nombrar las cadenas de localización?
Aquí están mis pensamientos hasta ahora:
Manejo de duplicados
El mismo texto (por ejemplo, "Código postal") puede aparecer varias veces dentro de un paquete dado. El instinto de programación (DRY) me dice que cree un único recurso de cadena compartido por todas las ocurrencias .
Por otra parte, un traductor puede elegir una traducción larga ("Postleitzahl") en algunos lugares y una más corta ("PLZ") en lugares con menos espacio. O podemos decidir agregar dos puntos a algunas ocurrencias ("Código postal:"), pero no a otras. O podemos requerir una capitalización diferente ("código postal") en algunos lugares. Todos estos argumentos apuntan a crear un recurso por uso, incluso si sus contenidos son idénticos .
Nombrar
Si buscamos eliminar duplicados, tiene sentido nombrar los recursos por contenido , tal vez insinuando el tipo de uso a través del prefijo. Entonces podemos tener labelOK
= "OK" , messageFileTooLarge
= "El archivo excede el tamaño máximo de archivo". , y labelZipCode
= "Código postal" .
Nombrar por contenido tiene la ventaja de manejar los argumentos de formato de forma natural: el recurso messageFileHas_0_MBWhileMaximumIs_1_MB
claramente toma dos argumentos de formato, el tamaño real del archivo y el tamaño máximo del archivo.
Sin embargo, si permitimos duplicados, nombrar solo por contenido no tiene sentido. Para obtener nombres de recursos únicos, de alguna manera debemos incluir el lugar de uso en el nombre del recurso. Eso funciona para los controles gráficos, aunque los identificadores tienden a ser un poco largos: fileSelectionConfirmationButtonText
= "OK" , customerDetailsTableColumnZipCode
= "Código postal" . Sin embargo, para archivos de código no visual, se vuelve más difícil. ¿Cómo nombra un uso específico de una cadena si no sabe dónde se mostrará eventualmente? ¿Por archivo de código y nombre de función? Parece bastante torpe y frágil para mí.
En general, me inclino por permitir duplicados, pero estoy luchando por encontrar un esquema de nomenclatura consistente que lo respalde.
Editar: esta pregunta tiene dos aspectos: cómo organizar los recursos (DRY vs. duplicados) y cómo nombrarlos . Hasta ahora, las respuestas se han concentrado en el primer aspecto. Agradecería algunos comentarios sobre convenciones de nomenclatura!