2010-02-25 5 views
0

Je développe un site Web multilingue Django. Il a deux langues, l'anglais et l'hébreu. Je veux que la langue par défaut pour chaque visiteur pour la première fois soit l'hébreu, quel que soit le Accept-Language de son navigateur.Personnalisation de l'algorithme de prédiction de langue dans Django

Bien sûr, s'il change la langue en anglais (et donc obtient le cookie de langue ou la clé dans la session), il devrait rester en anglais.

Je pense que je peux programmer moi-même cet algorithme, mais où puis-je le "brancher"? Comment puis-je utiliser mon projet?

Répondre

0

Peut-être n'avez-vous rien à redéfinir. Vous pouvez simplement vérifier sur la première page, (ou peut-être chaque page) si l'utilisateur a déjà un cookie de langue et sinon le rediriger vers la vue de redirection set_language. De cette façon, vous pourriez forcer la langue à l'hébreu.

Si l'utilisateur décide de revenir en anglais, il peut le faire très facilement.

+0

Cela m'a inspiré pour créer un petit intergiciel qui a fait exactement ce que vous avez dit. (Je l'ai fait en tant que middleware, donc il s'appliquera automatiquement à toutes les pages.) –

0

Commencez par lire ceci: http://docs.djangoproject.com/en/1.1/topics/i18n/#topics-i18n

Alors lisez ceci: http://docs.djangoproject.com/en/1.1/topics/i18n/internationalization/#topics-i18n-internationalization

Chaque RequestContext a accès à trois variables spécifiques à la traduction:

LANGUES est une liste de tuples dans laquelle le premier élément est le code de langue et le second est le nom de la langue (traduit dans le 01 actuellement actifparamètres régionaux). LANGUE_CODE est la langue préférée de l'utilisateur , en tant que chaîne . Exemple: en-us. (Voir Comment Django découvre la préférence de langue.)

LANGUAGE_BIDI est la direction de l'environnement local actuel. Si la valeur est True, il s'agit d'une langue de droite à gauche de , par exemple: hébreu, arabe. Si Faux, il est une langue de gauche à droite , par exemple: anglais, français, allemand etc.

Si vous n'utilisez pas l'extension de RequestContext, vous pouvez obtenir ces valeurs avec trois tags:

Est-ce ce que vous demandez?

+0

J'ai lu votre lien avant, et aussi celui-ci: http://docs.djangoproject.com/fr/1.1/topics/i18n/deployment/ Mais je n'ai rien vu sur la façon de personnaliser l'algorithme. –

+0

@ cool-RR: "personnaliser l'algorithme"? Voulez-vous dire remplacer les paramètres trouvés dans la demande? Demandez-vous comment utiliser le "Chaque RequestContext a accès à trois variables spécifiques à la traduction"? –

+0

Non. Je parle de l'algorithme par lequel Django détermine la langue de l'utilisateur. Découvrez la fonction 'django.utils.translation.get_language_from_request'. Je veux le contourner d'une manière ou d'une autre. –

Questions connexes