La langue est prise en compte, traduction fonctionnelle
This commit is contained in:
parent
99ab55d48b
commit
8cdb578277
@ -1,134 +0,0 @@
|
|||||||
# SOME DESCRIPTIVE TITLE.
|
|
||||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
|
||||||
# This file is distributed under the same license as the PACKAGE package.
|
|
||||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
|
||||||
#
|
|
||||||
#, fuzzy
|
|
||||||
msgid ""
|
|
||||||
msgstr ""
|
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
|
||||||
"Report-Msgid-Bugs-To: \n"
|
|
||||||
"POT-Creation-Date: 2023-10-14 15:29+0200\n"
|
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
|
||||||
"Language: \n"
|
|
||||||
"MIME-Version: 1.0\n"
|
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
|
||||||
|
|
||||||
#: agenda_culturel/models.py:15
|
|
||||||
msgid "Published"
|
|
||||||
msgstr "Publié"
|
|
||||||
|
|
||||||
#: agenda_culturel/models.py:16
|
|
||||||
msgid "Trash"
|
|
||||||
msgstr "Corbeille"
|
|
||||||
|
|
||||||
#: agenda_culturel/models.py:17
|
|
||||||
msgid "Draft"
|
|
||||||
msgstr "Brouillon"
|
|
||||||
|
|
||||||
#: agenda_culturel/models.py:24
|
|
||||||
msgid "Title"
|
|
||||||
msgstr "Titre"
|
|
||||||
|
|
||||||
#: agenda_culturel/models.py:24
|
|
||||||
msgid "Short title"
|
|
||||||
msgstr "Titre court"
|
|
||||||
|
|
||||||
#: agenda_culturel/models.py:26
|
|
||||||
msgid "Status"
|
|
||||||
msgstr "Status"
|
|
||||||
|
|
||||||
#: agenda_culturel/models.py:28
|
|
||||||
msgid "Day of the event"
|
|
||||||
msgstr "Date de l'événement"
|
|
||||||
|
|
||||||
#: agenda_culturel/models.py:29
|
|
||||||
msgid "Starting time"
|
|
||||||
msgstr "Heure de début"
|
|
||||||
|
|
||||||
#: agenda_culturel/models.py:31
|
|
||||||
msgid "End day of the event"
|
|
||||||
msgstr "Fin de l'événement"
|
|
||||||
|
|
||||||
#: agenda_culturel/models.py:31
|
|
||||||
msgid "End day of the event, only required if different from the start day."
|
|
||||||
msgstr ""
|
|
||||||
"Date de fin de l'événement, uniquement nécessaire s'il est différent du "
|
|
||||||
"premier jour de l'événement"
|
|
||||||
|
|
||||||
#: agenda_culturel/models.py:32
|
|
||||||
msgid "Final time"
|
|
||||||
msgstr "Heure de fin"
|
|
||||||
|
|
||||||
#: agenda_culturel/models.py:34
|
|
||||||
msgid "Location"
|
|
||||||
msgstr "Localisation"
|
|
||||||
|
|
||||||
#: agenda_culturel/models.py:34
|
|
||||||
msgid "Address of the event"
|
|
||||||
msgstr "Adresse de l'événement"
|
|
||||||
|
|
||||||
#: agenda_culturel/models.py:36
|
|
||||||
msgid "Description"
|
|
||||||
msgstr "Description"
|
|
||||||
|
|
||||||
#: agenda_culturel/models.py:36
|
|
||||||
msgid "General description of the event"
|
|
||||||
msgstr "Description générale de l'événement"
|
|
||||||
|
|
||||||
#: agenda_culturel/models.py:38
|
|
||||||
msgid "Illustration"
|
|
||||||
msgstr "Illustration"
|
|
||||||
|
|
||||||
#: agenda_culturel/models.py:38
|
|
||||||
msgid "URL of the illustration image"
|
|
||||||
msgstr "URL de l'image illustrative"
|
|
||||||
|
|
||||||
#: agenda_culturel/models.py:39
|
|
||||||
msgid "Illustration description"
|
|
||||||
msgstr "Description de l'illustration"
|
|
||||||
|
|
||||||
#: agenda_culturel/models.py:39
|
|
||||||
msgid "Alternative text used by screen readers for the image"
|
|
||||||
msgstr "Texte alternatif utiliser par les lecteurs d'écrans pour l'image"
|
|
||||||
|
|
||||||
#: agenda_culturel/models.py:41
|
|
||||||
msgid "URLs"
|
|
||||||
msgstr "URLs"
|
|
||||||
|
|
||||||
#: agenda_culturel/models.py:41
|
|
||||||
msgid "List of all the urls where this event can be found."
|
|
||||||
msgstr "Liste de toutes les urls où l'événement peut être trouvé."
|
|
||||||
|
|
||||||
#: agenda_culturel/models.py:55
|
|
||||||
msgid "Event"
|
|
||||||
msgstr "Événement"
|
|
||||||
|
|
||||||
#: agenda_culturel/models.py:56
|
|
||||||
msgid "Events"
|
|
||||||
msgstr "Événements"
|
|
||||||
|
|
||||||
#: agenda_culturel/views.py:11
|
|
||||||
msgid "this_week"
|
|
||||||
msgstr "cette_semaine"
|
|
||||||
|
|
||||||
#: agenda_culturel/views.py:12
|
|
||||||
msgid "this_weekend"
|
|
||||||
msgstr "ce_weekend"
|
|
||||||
|
|
||||||
#: agenda_culturel/views.py:13
|
|
||||||
msgid "next_week"
|
|
||||||
msgstr "semaine_prochaine"
|
|
||||||
|
|
||||||
#: agenda_culturel/views.py:14
|
|
||||||
msgid "this_month"
|
|
||||||
msgstr "ce_mois_ci"
|
|
||||||
|
|
||||||
#: agenda_culturel/views.py:15
|
|
||||||
#, fuzzy
|
|
||||||
#| msgid "next_mont"
|
|
||||||
msgid "next_month"
|
|
||||||
msgstr "mois_prochain"
|
|
@ -1,5 +1,6 @@
|
|||||||
from os import getenv as os_getenv, path as os_path # noqa
|
from os import getenv as os_getenv, path as os_path # noqa
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
from django.core.management.utils import get_random_secret_key
|
from django.core.management.utils import get_random_secret_key
|
||||||
|
|
||||||
@ -45,6 +46,7 @@ MIDDLEWARE = [
|
|||||||
"django.middleware.security.SecurityMiddleware",
|
"django.middleware.security.SecurityMiddleware",
|
||||||
"whitenoise.middleware.WhiteNoiseMiddleware",
|
"whitenoise.middleware.WhiteNoiseMiddleware",
|
||||||
"django.contrib.sessions.middleware.SessionMiddleware",
|
"django.contrib.sessions.middleware.SessionMiddleware",
|
||||||
|
'django.middleware.locale.LocaleMiddleware',
|
||||||
"corsheaders.middleware.CorsMiddleware", # CorsMiddleware should be placed as high as possible,
|
"corsheaders.middleware.CorsMiddleware", # CorsMiddleware should be placed as high as possible,
|
||||||
"django.middleware.common.CommonMiddleware",
|
"django.middleware.common.CommonMiddleware",
|
||||||
"django.middleware.csrf.CsrfViewMiddleware",
|
"django.middleware.csrf.CsrfViewMiddleware",
|
||||||
@ -108,7 +110,7 @@ AUTH_PASSWORD_VALIDATORS = [
|
|||||||
# Internationalization
|
# Internationalization
|
||||||
# https://docs.djangoproject.com/en/4.2/topics/i18n/
|
# https://docs.djangoproject.com/en/4.2/topics/i18n/
|
||||||
|
|
||||||
LANGUAGE_CODE = "fr-fr"
|
LANGUAGE_CODE = "fr"
|
||||||
|
|
||||||
TIME_ZONE = "Europe/Paris"
|
TIME_ZONE = "Europe/Paris"
|
||||||
|
|
||||||
@ -116,6 +118,12 @@ USE_I18N = True
|
|||||||
|
|
||||||
USE_TZ = True
|
USE_TZ = True
|
||||||
|
|
||||||
|
LANGUAGES = (
|
||||||
|
('en-us', _('English')),
|
||||||
|
('fr', _('French')),
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
# Static files (CSS, JavaScript, Images)
|
# Static files (CSS, JavaScript, Images)
|
||||||
# https://docs.djangoproject.com/en/4.2/howto/static-files/
|
# https://docs.djangoproject.com/en/4.2/howto/static-files/
|
||||||
|
|
||||||
|
@ -1,5 +1,9 @@
|
|||||||
{% extends "agenda_culturel/page.html" %}
|
{% extends "agenda_culturel/page.html" %}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
{% load i18n %}
|
||||||
|
|
||||||
{% load cat_extra %}
|
{% load cat_extra %}
|
||||||
|
|
||||||
{% block entete_header %}
|
{% block entete_header %}
|
||||||
@ -10,7 +14,7 @@
|
|||||||
<header>
|
<header>
|
||||||
<div id="display-mode" class="nav-buttons">
|
<div id="display-mode" class="nav-buttons">
|
||||||
{% for mode in modes %}
|
{% for mode in modes %}
|
||||||
{% if selected_mode == mode.name %}
|
{% if selected_mode.name == mode.name %}
|
||||||
<span class="mode selected">{{ mode }}</span>
|
<span class="mode selected">{{ mode }}</span>
|
||||||
{% else %}
|
{% else %}
|
||||||
{% if category %}
|
{% if category %}
|
||||||
@ -24,15 +28,17 @@
|
|||||||
<div id="categories" class="nav-buttons">
|
<div id="categories" class="nav-buttons">
|
||||||
{% for cat in categories %}
|
{% for cat in categories %}
|
||||||
{% if category == cat %}
|
{% if category == cat %}
|
||||||
<span class="cat {{ cat.css_class }} selected">{{ cat }} <a href="{% url 'view_mode' selected_mode %}" class="close">✕</a></span>
|
<span class="cat {{ cat.css_class }} selected">{{ cat }} <a href="{% url 'view_mode' selected_mode.name %}" class="close">✕</a></span>
|
||||||
{% else %}
|
{% else %}
|
||||||
<a href="{% url 'view_mode_cat' selected_mode cat.pk %}" class="cat {{ cat.css_class }} {% if category == None %}selected{% endif %}">{{ cat }}</a>
|
<a href="{% url 'view_mode_cat' selected_mode.name cat.pk %}" class="cat {{ cat.css_class }} {% if category == None %}selected{% endif %}">{{ cat }}</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
<section>
|
<section>
|
||||||
{% block events %}{% endblock %}
|
{% block events %}
|
||||||
|
<h2>{{ selected_mode | capfirst }}</h2>
|
||||||
|
{% endblock %}
|
||||||
</section>
|
</section>
|
||||||
<footer id="tags">
|
<footer id="tags">
|
||||||
TODO
|
TODO
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
<body>
|
<body>
|
||||||
<div id="full_content" class="{% block main_class %}{% endblock %}">
|
<div id="full_content" class="{% block main_class %}{% endblock %}">
|
||||||
<header>
|
<header>
|
||||||
<h1>Les nuits électromagmatiques</h1>
|
<h1>Les nuits énigmagmatiques</h1>
|
||||||
<div role="doc-subtitle">Agenda culturel de Clermont-Ferrand et des environs</div>
|
<div role="doc-subtitle">Agenda culturel de Clermont-Ferrand et des environs</div>
|
||||||
</header>
|
</header>
|
||||||
<section>
|
<section>
|
||||||
|
@ -9,17 +9,19 @@ from django.utils import timezone
|
|||||||
from enum import StrEnum
|
from enum import StrEnum
|
||||||
from datetime import datetime, timedelta
|
from datetime import datetime, timedelta
|
||||||
|
|
||||||
from django.utils.translation import gettext as _
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
from django.utils.translation import activate, get_language_info
|
||||||
|
|
||||||
class DisplayMode(StrEnum):
|
class DisplayMode(StrEnum):
|
||||||
this_week = _("this week")
|
this_week = "this week"
|
||||||
this_weekend = _("this weekend")
|
this_weekend = "this weekend"
|
||||||
next_week = _("next week")
|
next_week = "next week"
|
||||||
next_weekend = _("next weekend")
|
next_weekend = "next weekend"
|
||||||
this_month = _("this month")
|
this_month = "this month"
|
||||||
next_month = _("next month")
|
next_month = "next month"
|
||||||
|
|
||||||
|
def i18n_value(self):
|
||||||
|
return _(self.value)
|
||||||
|
|
||||||
def get_dates(self):
|
def get_dates(self):
|
||||||
now = datetime.now()
|
now = datetime.now()
|
||||||
@ -44,6 +46,9 @@ class DisplayMode(StrEnum):
|
|||||||
delta = end - start
|
delta = end - start
|
||||||
return [start + timedelta(days=x) for x in range(0, delta.days + 1)]
|
return [start + timedelta(days=x) for x in range(0, delta.days + 1)]
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return str(self.i18n_value())
|
||||||
|
|
||||||
|
|
||||||
def home(request):
|
def home(request):
|
||||||
# TODO: si on est au début de la semaine, on affiche la semaine en entier
|
# TODO: si on est au début de la semaine, on affiche la semaine en entier
|
||||||
@ -55,7 +60,8 @@ def home(request):
|
|||||||
def view_mode(request, mode):
|
def view_mode(request, mode):
|
||||||
categories = Category.objects.all()
|
categories = Category.objects.all()
|
||||||
dates = DisplayMode[mode].get_dates()
|
dates = DisplayMode[mode].get_dates()
|
||||||
context = {"modes": list(DisplayMode), "selected_mode": mode, "categories": categories }
|
activate("fr")
|
||||||
|
context = {"modes": list(DisplayMode), "selected_mode": DisplayMode[mode], "categories": categories }
|
||||||
# TODO: select matching events
|
# TODO: select matching events
|
||||||
return render(request, 'agenda_culturel/page-events.html', context)
|
return render(request, 'agenda_culturel/page-events.html', context)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user