2 votes

django formate la date en fonction de la locale fournie par l'utilisateur

J'essaie de configurer le formatage des dates dans les modèles en fonction d'une locale fournie par l'utilisateur. Comme le reste de la page restera dans la locale originale ('en'), je veux seulement que les données fournies par mes utilisateurs soient formatées. soient formatées.

par exemple, les dates.

les utilisateurs du royaume-uni devraient pouvoir utiliser l10n sur les dates de leurs pages, mais je ne veux pas configurer tout le site pour qu'il soit en_GB .

Existe-t-il un moyen de définir la locale dans un modèle à l'intérieur d'un bloc, par exemple quelque chose comme

{% locale|'en_GB' %}
    {{ my_date|localize }}
{% endlocale %}

3voto

rantanplan Points 3497

Il n'est pas nécessaire de faire quoi que ce soit d'explicite dans le modèle.

À l'intérieur de votre settings.py définir les FORMAT_MODULE_PATH réglage. Comme :

FORMAT_MODULE_PATH = 'myproject.myapp.formats'

dans le cadre de la formats répertoire créer un paquet python par langue prise en charge (autre autre que la langue par défaut) de votre projet. A l'intérieur de chacun d'entre eux, vous devez avoir un fichier formats.py qui doit contenir toutes les options de formatage localisées.

Dans mon cas, la langue par défaut de mon projet est en mais je soutiens également el (grec). Je l'ai donc dans mon settings.py :

FORMAT_MODULE_PATH = 'myproject.websiteapp.formats'

A l'intérieur de la myproject/websiteapp/formats j'ai un el avec un formats.py comme :

el/
 __init__.py
 formats.py

A l'intérieur de la formats.py J'ai ceci :

DATETIME_FORMAT="l j M Y, g:i a"

qui est la représentation grecque spécifique d'une date.

Ainsi, lorsque j'utilise un champ de type datetime dans mes modèles :

{{ mymodel.pub_date }}

Il imprime la valeur par défaut en lorsque la locale est réglée sur la valeur par défaut :

Published on: Feb. 22, 2013, 1:47 p.m.

et ma version grecque personnalisée lorsque la locale est réglée sur el .

Δημοσιεύτηκε: Τετάρτη 6 Φεβ 2013, 5:39 μμ.

Plus d'informations aquí

Editer

Hmm, je viens de réaliser que vous avez demandé des blocs ou des valeurs de modèles spécifiques. Peut-être que le localiser modèle filtre ou le localiser modèle étiquette sont plus pertinentes pour votre cas particulier ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X