Modification de la langue par défaut

La langue par défaut de GeoNode est l’anglais, mais les utilisateurs de GeoNode peuvent changer la langue de l’interface en utilisant le menu déroulant situé en haut à droite de la plupart des pages de GeoNode. Une fois qu’un utilisateur sélectionne une langue GeoNode se souvient que la langue pour les pages suivantes.

Configuration de GeoNode

En tant que root, éditez le fichier de configuration geonode /home/geonode/geonode/geonode/settings.py (ou /etc/geonode/settings.py si GeoNode a été installé en utilisant apt-get) et changer LANGUAGE_CODE à la langue par défaut souhaité.

Note

Une liste des codes des langues se trouvent dans le fichier de configuration global django /usr/local/lib/python2.7/dist-packages/django/conf/global_settings.py (ou /var/lib/geonode/lib/python2.7/site-packages/django/conf/global_settings.py si GeoNode a été installé en utilisant apt-get).

For example, to make French the default language use

LANGUAGE_CODE = 'fr'

Malheureusement Django substitue à ce paramètre, ce qui donne le paramètre de langue de priorité du navigateur de l’utilisateur. Par exemple, si LANGUAGE_CODE est sur le Français, mais l’utilisateur a configuré leur système d’exploitation pour l’espagnol qu’ils peuvent voir la version espagnole lors de leur première visite GeoNode.

Etapes supplémentaires

Si ce ne sont pas le comportement désiré, et tous les utilisateurs doivent d’abord voir le défaut LANGUAGE_CODE, quels que soient les paramètres de leur navigateur, effectuez les étapes suivantes pour assurer Django ignore les paramètres de langue du navigateur. (Les utilisateurs peuvent toujours utiliser le menu déroulant de la langue pour changer la langue à tout moment.)

As root create a new directory within GeoNode’s site packages

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

or

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

or

mkdir ~/.venvs/geonode/lib/python2.7/site-packages/setmydefaultlanguage

if GeoNode has been installed using apt-get as root create and edit a new file /usr/lib/python2.7/dist-packages/setmydefaultlanguage/__init__.py

if GeoNode has been installed as a custom project dependency, ~/.venvs/geonode/lib/python2.7/site-packages/setmydefaultlanguage/__init__.py

Add the following lines

from django.conf import settings
from django.utils import translation

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):
        request.LANG = getattr(settings, 'LANGUAGE_CODE', settings.LANGUAGE_CODE)
        translation.activate(request.LANG)
        request.LANGUAGE_CODE = request.LANG

At the end of the GeoNode configuration file /home/geonode/geonode/geonode/settings.py, /etc/geonode/settings.py if GeoNode has been installed using apt-get or ~/.venvs/geonode/src/geonode/geonode/settings.py if installed as a custom project dependency, add the following lines to ensure the above class is executed:

MIDDLEWARE_CLASSES += (
    'setmydefaultlanguage.ForceDefaultLanguageMiddleware',
)

Redémarrage

Enfin redémarrez Apache2 en tant que root avec:

service apache2 restart

S’il vous plaît se référer à traduire GeoNode pour plus d’informations sur la modification des pages GeoNode dans différentes langues et créer de nouvelles traductions de GeoNode.