Un extracto de un archivo típico suele tener el siguiente aspecto:
... #Combos comboDepartamentos=Todos los departamentos comboAreas=Todas las áreas comboRepositorios=Todos los repositorios comboAplicaciones=Todas las aplicaciones comboModulos=Todos los módulos comboProgramas=Todos los programas ... #Mantenimiento de Repositorios mr.aceptar=Aceptar mr.buscar=Buscar mr.cancelar=Cancelar mr.confirmarEliminar=Los repositorios seleccionados pueden tener información relacionada que será eliminada en cascada. ¿Desea eliminar los repositorios seleccionados y la información relacionada? mr.registroEliminado=El registro ha sido eliminado por otro usuario. mr.validacion.nombreExiste=Existe otro repositorio con el mismo nombre. ... #Mantenimiento de Aplicaciones ma.aceptar=Aceptar ma.buscar=Buscar ma.cancelar=Cancelar ... #Mantenimiento de Módulos mm.aceptar=Aceptar mm.buscar=Buscar mm.confirmarEliminar=Los módulos seleccionados pueden tener información relacionada que será eliminada en cascada. ¿Desea eliminar los módulos seleccionados y la información relacionada? ...
Como se puede observar las claves de los literales de cada pantalla están identificados por un prefijo (mr, ma, mm) con el objetivo de agrupar los de cada pantalla, algunos no tienen prefijo como los de la sección #Combos. A los literales muy largos como mr.confirmarEliminar y mm.confirmarEliminar se les asigna una clave más corta que el propio literal y que tendremos que asignar para identificarlo.
Estas convenciones tienen algunos problemas. Uno de ellos es que hay literales que son muy comunes en la aplicación y estarán varias veces repetidos como Aceptar, Buscar, Cancelar lo que implica que los traductores tendrán que tarducirlo varias veces y a los programadores mantener mayor número de literales, además de ralentizar el trabajo ¿tiene sentido pedir a los traductores traducir el mismo literal varias veces? No. Los literales largos como mr.confirmarEliminar y mm.confirmarEliminar tienen el problema de que sus claves son poco representativas de su literal siendo vistos en el archivo de código fuente donde se use, lo que hace que leerlo sea poco significativo y representativo de los textos que luego se muestran.
Para solventar estos problemas y después de varios años de experiencia trabajando con archivos de literales en Java prefiero seguir otras convenciones. Según estas los archivos tendrían el siguiente aspecto:
... Aceptar=Aceptar Buscar=Buscar Cancelar=Cancelar ... El_registro_ha_sido_eliminado_por_=El registro ha sido eliminado por otro usuario. Existe_otro_repositorio_con_=Existe otro repositorio con el mismo nombre. Los_repositorios_seleccionados_pueden_tener_información_relacionada_=Los repositorios seleccionados pueden tener información relacionada que será eliminada en cascada. ¿Desea eliminar los repositorios seleccionados y la información relacionada? ... Los_módulos_seleccionados_pueden_tener_información_relacionada_=Los módulos seleccionados pueden tener información relacionada que será eliminada en cascada. ¿Desea eliminar los módulos seleccionados y la información relacionada? ... #Combos Todas_las_aplicaciones=Todas las aplicaciones Todas_las_areas=Todas las áreas Todos_los_departamentos=Todos los departamentos Todos_los_modulos=Todos los módulos Todos_los_programas=Todos los programas Todos_los_repositorios=Todos los repositorios ...
Como se puede ver para los literales cortos la clave será el propio literal en nuestro idioma nativo sin ñ o tildes, con esto al leer el archivo de código fuente sabremos cual es el texto exacto que se mostrará y no tendremos que estar inventándonos constantemente identificadores para los literales. Los literales cortos pero formados por varias palabras tendrán un «_» para representar el espacio. Las claves de los literales largos son el literal acortado con suficientes palabras para que no se repitan, les añado un «_» al final para saber que se ha acortado, el objetivo de acortarlo es que con unas cuantas palabras ya podemos hacernos una idea del texto que se muestra. Además los literales están ordenados alfabéticamente por la clave para encontrarlos más fácilmente. No digo que estas reglas no puedan tener excepciones para algunos casos pero siguiéndolas para la mayoría evitaremos que según vaya pasando el tiempo estos archivos se conviertan en un problema de mantenimiento, cuando en una aplicación tenemos 2000 o más literales, créeme, puede llegar a serlo.