Cambiar el idioma predeterminado

El idioma predeterminado de GeoNode es el inglés, pero los usuarios de GeoNode pueden cambiar el idioma de la interfaz con el menú desplegable en la parte superior derecha de la mayoría de las páginas de GeoNode.Una vez que un usuario selecciona un idioma, GeoNode recuerda ese idioma para las páginas siguientes.

Configuración de geonode

Como root, edite el archivo de configuración del geonode /home/geonode/geonode/geonode/settings.py (o /etc/geonode/settings.py si GeoNode se ha instalado usando apt-get) y cambie LANGUAGE_CODE al idioma predeterminado deseado.

Nota

Se puede encontrar una lista de códigos de idioma en el archivo de configuración global de Django /usr/local/lib/python2.7/dist-packages/django/conf/global_settings.py (o /var/lib/geonode/lib/python2.7/site-packages/django/conf/global_settings.py si GeoNode se ha instalado usando**apt-get**).

Por ejemplo, para hacer que el francés sea el idioma predeterminado, utilice:

LANGUAGE_CODE = 'fr'

Desafortunadamente, Django anula esta configuración, dando prioridad a la configuración de idioma del navegador del usuario.Por ejemplo, si LANGUAGE_CODE está configurado en francés, pero el usuario ha configurado su sistema operativo para español, puede ver la versión en español cuando visite GeoNode por primera vez.

Pasos adicionales

Si este no es el comportamiento deseado, y todos los usuarios deberían ver inicialmente el LANGUAGE_CODE predeterminado, independientemente de la configuración de su navegador, siga los siguientes pasos para asegurarse de que Django ignore la configuración de idioma del navegador.(Los usuarios siempre pueden usar el menú desplegable de idioma para cambiar el idioma en cualquier momento).

Como root cree un nuevo directorio dentro de los paquetes del sitio de GeoNode

mkdir /usr/lib/python2.7/dist-packages/setmydefaultlanguage

o

mkdir /var/lib/geonode/lib/python2.7/site-packages/setmydefaultlanguage

si GeoNode se ha instalado usando apt-get.

Como root, cree y edite un nuevo archivo /usr/lib/python2.7/dist-packages/setmydefaultlanguage/__init__.py y agregue las siguientes líneas

class ForceDefaultLanguageMiddleware(object):
    """
    Ignore Accept-Language HTTP headers

    This will force the I18N machinery to always choose settings.LANGUAGE_CODE
    as the default initial language, unless another one is set via sessions or cookies

    Should be installed *before* any middleware that checks request.META['HTTP_ACCEPT_LANGUAGE'],
    namely django.middleware.locale.LocaleMiddleware
    """
    def process_request(self, request):
        if request.META.has_key('HTTP_ACCEPT_LANGUAGE'):
            del request.META['HTTP_ACCEPT_LANGUAGE']

Al final del archivo de configuración de GeoNode /home/geonode/geonode/geonode/settings.py (o /etc/geonode/settings.py si GeoNode se ha instalado usando apt-get) agregue las siguientes líneas para garantizar que se ejecute la clase anterior

MIDDLEWARE_CLASSES += (
    'setmydefaultlanguage.ForceDefaultLanguageMiddleware',
)

Reanudar

Deberá reiniciar GeoNode según el método de instalación que haya elegido.

Como ejemplo, en caso de que esté utilizando NGINX con UWSGI, como root deberá ejecutar los siguientes comandos

service uwsgi restart
service nginx restart

Consulte Traducción de GeoNode para obtener información sobre cómo editar páginas de GeoNode en diferentes idiomas y crear nuevas traducciones de GeoNode.