Cómo hacer que la personalización de textos sea "permanente"
¿Qué quiero decir con "permanente"? Cada vez que se instala un paquete de idiomas nuevo en DotNetNuke todos el conjunto de archivos *.resx de esa localización se sobrescribe. Esto significa que cualquier cambio realizado en alguno de esos archivos se perderá. En la Parte 1 de esta publicación realicé una modificación sobre el archivo GlobalResources.es-ES.resx y si realizara una nueva instalación de un paquete de idiomas para España (es-ES), perdería esa modificación.
DotNetNuke proporciona dos mecanismos para realizar modificaciones sobre los mensajes de texto y que no resulten sobrescritas al instalar un nuevo paquete de idiomas. Una es a nivel de toda la instalación de DNN (es decir para todos los portales) y la otra es propia de cada portal; la primera es denominada "de nivel Host" y la segunda, "de nivel Admin".
Veremos a continuación cómo realizar las tres modificaciones y las diferencias que implican.
1. Modificación de mensajes a nivel de Sistema
Es la modificación que realizamos en el mensaje anterior y consiste en modificar el texto en el sistema de archivos estándar del paquete de idiomas. Esta modificación se pierde al instalar un nuevo paquete de idiomas.
Los pasos son los siguientes:
- Ingresar al sitio como usuario Host
- Ir a la página de Idiomas, siguiendo la opción de menú Host - Idiomas
- Hacer clic en el vínculo "Editor de Idiomas" ubicado abajo y a la izquierda de la página
- Dentro de la página de Idiomas:
- En el árbol de archivos de la izquierda, seleccionar el archivo de sistema a editar
- En el descolgable de Idiomas disponibles seleccionar el idioma a editar
- En la configuración que está debajo de los Idiomas disponibles, llamada Modo y que posee dos opciones (Sistema y Host) asegurarse de elegir "Sistema"
- Elegir el texto a modificar, modificarlo y...
- Hacer clic en Actualizar al pie de la página
Las modificaciones realizadas de esta manera afectan a los archivos de sistema, llamados [nombredearchivo].[cultura].resx, por ejemplo: GlobalResources.es-ES.resx, donde la cultura es de España: es-ES. En el caso de los archivos predeterminados del sistema, para inglés (en-US), el campo no se utiliza y el archivo se llama GlobalResources.resx.
Este archivo en particular se encuentra dentro del directorio App_GlobalResources de la instalación de DNN.
2. Modificación de mensajes a nivel Host
En este esquema las modificaciones realizadas sobre los mensajes de texto serán grabadas en un archivo diferente de los estándar de sistema. Esto asegura que la instalación de un nuevo paquete de idiomas (o una actualización de la versión de DotNetNuke sobre el sitio, para el caso de los recursos de texto en inglés en-US) no sobrescriban las modificaciones realizadas.
Los pasos son idénticos al caso anterior, y la única diferencia está en el paso e). El nuevo paso es el siguiente:
e) En la configuración que está debajo de los Idiomas disponibles, llamada Modo y que posee dos opciones (Sistema y Host) asegurarse de elegir "Host"
Cualquier modificación realizada en este modo creará un nuevo archivo llamado [nombredearchivo].[cultura].Host.resx (por ejemplo, 'GlobalResources.es-ES.Host.resx'). Este archivo contiene únicamente los recursos de texto que fueron modificados.
3. Modificación de mensajes a nivel Admin (para cada portal en particular)
En este esquema las modificaciones realizadas sobre los mensajes de texto serán grabadas en un archivo diferente de los estándar de sistema, también protegiendo las modificaciones frente a nuevas instalaciones de paquetes de idiomas o actualizaciones de DotNetNuke sobre el sitio.
Veamos nuevamente los pasos para la edición:
- No importa si se ingresa al sitio como usuario Host o Admin
- Ir a la página de Idiomas, siguiendo la opción de menú Admin - Idiomas
- Hacer clic en el vínculo "Editor de Idiomas" ubicado abajo y a la izquierda de la página
- Dentro de la página de Idiomas:
- En el árbol de archivos de la izquierda, seleccionar el archivo de sistema a editar
- En el descolgable de Idiomas disponibles seleccionar el idioma a editar
- Notar que en esta página no existe la posibilidad de elegir el Modo de edición, entre Sistema y Host.
- Elegir el texto a modificar, modificarlo y...
- Hacer clic en Actualizar al pie de la página
Los pasos distintos esta vez fueron el a), el b) y... ¡nada más!
Cualquier modificación realizada en este modo creará un nuevo archivo llamado [nombredearchivo].[cultura].Portal-[numero].resx (por ejemplo, 'GlobalResources.es-ES.Portal-0.resx'). Este archivo contiene únicamente los recursos de texto que fueron modificados.
3. Prioridades de acceso a los recursos de texto
El orden de prioridades de acceso (fallback) a un determinado recurso es:
- Archivo propio del Portal
- Archivo del Host
- Archivo estándar del Sistema.
Es una buena sugerencia jugar con el recurso de texto 'MESSAGE_REGISTRATION_INSTRUCTIONS.Text' que está dentro de GlobalResources.es-ES.resx (o el que corresponda a cada localización). Es el primer mensaje que aparece debajo de la "Información Preferida del Usuario" en la página de registración. Este recurso de texto fue referido en la Parte 1 de esta serie.
En la próxima entrega:
- Cómo personalizar de la página de Registración de Nuevos Usuarios (Parte 3):
Cómo requerir otras variables de perfil, además de las predeterminadas