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.