Update translations
This commit is contained in:
parent
6a3390bb8d
commit
706de5bd41
|
@ -7,7 +7,7 @@ WORKDIR /code
|
||||||
|
|
||||||
# Install LaTeX requirements
|
# Install LaTeX requirements
|
||||||
RUN apt update && \
|
RUN apt update && \
|
||||||
apt install -y texlive-latex-extra texlive-fonts-extra texlive-lang-french && \
|
apt install -y gettext texlive-latex-extra texlive-fonts-extra texlive-lang-french && \
|
||||||
rm -rf /var/lib/apt/lists/*
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
COPY . /code/
|
COPY . /code/
|
||||||
|
|
|
@ -0,0 +1,30 @@
|
||||||
|
import os
|
||||||
|
from datetime import date
|
||||||
|
from getpass import getpass
|
||||||
|
|
||||||
|
from django.core.management import BaseCommand
|
||||||
|
from member.models import TFJMUser
|
||||||
|
|
||||||
|
|
||||||
|
class Command(BaseCommand):
|
||||||
|
def handle(self, *args, **options):
|
||||||
|
email = input("Email: ")
|
||||||
|
password = "1"
|
||||||
|
confirm_password = "2"
|
||||||
|
while password != confirm_password:
|
||||||
|
password = getpass("Password: ")
|
||||||
|
confirm_password = getpass("Confirm password: ")
|
||||||
|
if password != confirm_password:
|
||||||
|
self.stderr.write(self.style.ERROR("Passwords don't match."))
|
||||||
|
|
||||||
|
user = TFJMUser.objects.create(
|
||||||
|
email=email,
|
||||||
|
password="",
|
||||||
|
role="admin",
|
||||||
|
year=os.getenv("TFJM_YEAR", date.today().year),
|
||||||
|
is_active=True,
|
||||||
|
is_staff=True,
|
||||||
|
is_superuser=True,
|
||||||
|
)
|
||||||
|
user.set_password(password)
|
||||||
|
user.save()
|
|
@ -38,7 +38,7 @@ class TFJMUser(AbstractUser):
|
||||||
("female", _("Female")),
|
("female", _("Female")),
|
||||||
("non-binary", _("Non binary")),
|
("non-binary", _("Non binary")),
|
||||||
],
|
],
|
||||||
verbose_name=_("addresss"),
|
verbose_name=_("address"),
|
||||||
)
|
)
|
||||||
|
|
||||||
address = models.CharField(
|
address = models.CharField(
|
||||||
|
|
|
@ -0,0 +1,319 @@
|
||||||
|
# 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: TFJM2\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2020-04-29 02:09+0000\n"
|
||||||
|
"PO-Revision-Date: 2020-04-29 02:09+0000\n"
|
||||||
|
"Last-Translator: Yohann D'ANELLO <yohann.danello@animath.fr>\n"
|
||||||
|
"Language-Team: fr <LL@li.org>\n"
|
||||||
|
"Language: fr\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||||
|
|
||||||
|
#: apps/member/models.py:15
|
||||||
|
msgid "email"
|
||||||
|
msgstr "Adresse électronique"
|
||||||
|
|
||||||
|
#: apps/member/models.py:23 apps/member/models.py:154
|
||||||
|
#: apps/tournament/models.py:129 apps/tournament/models.py:146
|
||||||
|
msgid "team"
|
||||||
|
msgstr "équipe"
|
||||||
|
|
||||||
|
#: apps/member/models.py:29
|
||||||
|
msgid "birth date"
|
||||||
|
msgstr "date de naissance"
|
||||||
|
|
||||||
|
#: apps/member/models.py:37
|
||||||
|
msgid "Male"
|
||||||
|
msgstr "Homme"
|
||||||
|
|
||||||
|
#: apps/member/models.py:38
|
||||||
|
msgid "Female"
|
||||||
|
msgstr "Femme"
|
||||||
|
|
||||||
|
#: apps/member/models.py:39
|
||||||
|
msgid "Non binary"
|
||||||
|
msgstr "Non binaire"
|
||||||
|
|
||||||
|
#: apps/member/models.py:41
|
||||||
|
#: apps/member/models.py:48
|
||||||
|
msgid "address"
|
||||||
|
msgstr "adresse"
|
||||||
|
|
||||||
|
#: apps/member/models.py:54
|
||||||
|
msgid "postal code"
|
||||||
|
msgstr "code postal"
|
||||||
|
|
||||||
|
#: apps/member/models.py:61
|
||||||
|
msgid "city"
|
||||||
|
msgstr "ville"
|
||||||
|
|
||||||
|
#: apps/member/models.py:68
|
||||||
|
msgid "country"
|
||||||
|
msgstr "pays"
|
||||||
|
|
||||||
|
#: apps/member/models.py:76
|
||||||
|
msgid "phone number"
|
||||||
|
msgstr "numéro de téléphone"
|
||||||
|
|
||||||
|
#: apps/member/models.py:83
|
||||||
|
msgid "school"
|
||||||
|
msgstr "école"
|
||||||
|
|
||||||
|
#: apps/member/models.py:89
|
||||||
|
msgid "Seconde or less"
|
||||||
|
msgstr "Seconde ou inférieur"
|
||||||
|
|
||||||
|
#: apps/member/models.py:90
|
||||||
|
msgid "Première"
|
||||||
|
msgstr "Première"
|
||||||
|
|
||||||
|
#: apps/member/models.py:91
|
||||||
|
msgid "Terminale"
|
||||||
|
msgstr "Terminale"
|
||||||
|
|
||||||
|
#: apps/member/models.py:102
|
||||||
|
msgid "responsible name"
|
||||||
|
msgstr "nom du responsable"
|
||||||
|
|
||||||
|
#: apps/member/models.py:109
|
||||||
|
msgid "responsible phone"
|
||||||
|
msgstr "téléphone du responsable"
|
||||||
|
|
||||||
|
#: apps/member/models.py:115
|
||||||
|
msgid "responsible email"
|
||||||
|
msgstr "email du responsable"
|
||||||
|
|
||||||
|
#: apps/member/models.py:121 apps/tournament/models.py:33
|
||||||
|
msgid "description"
|
||||||
|
msgstr "description"
|
||||||
|
|
||||||
|
#: apps/member/models.py:127
|
||||||
|
msgid "admin"
|
||||||
|
msgstr "administrateur"
|
||||||
|
|
||||||
|
#: apps/member/models.py:128
|
||||||
|
msgid "organizer"
|
||||||
|
msgstr "oragnisateur"
|
||||||
|
|
||||||
|
#: apps/member/models.py:129
|
||||||
|
msgid "encadrant"
|
||||||
|
msgstr "encadrant"
|
||||||
|
|
||||||
|
#: apps/member/models.py:130
|
||||||
|
msgid "participant"
|
||||||
|
msgstr "participant"
|
||||||
|
|
||||||
|
#: apps/member/models.py:135 apps/tournament/models.py:61
|
||||||
|
#: apps/tournament/models.py:117
|
||||||
|
msgid "year"
|
||||||
|
msgstr "année"
|
||||||
|
|
||||||
|
#: apps/member/models.py:139 apps/tournament/models.py:139
|
||||||
|
msgid "user"
|
||||||
|
msgstr "utilisateur"
|
||||||
|
|
||||||
|
#: apps/member/models.py:140
|
||||||
|
msgid "users"
|
||||||
|
msgstr "utilisateurs"
|
||||||
|
|
||||||
|
#: apps/member/models.py:147
|
||||||
|
msgid "file"
|
||||||
|
msgstr "fichier"
|
||||||
|
|
||||||
|
#: apps/member/models.py:161 apps/tournament/models.py:69
|
||||||
|
#: apps/tournament/models.py:87
|
||||||
|
msgid "tournament"
|
||||||
|
msgstr "tournoi"
|
||||||
|
|
||||||
|
#: apps/member/models.py:167
|
||||||
|
msgid "Parental consent"
|
||||||
|
msgstr "Autorisation parentale"
|
||||||
|
|
||||||
|
#: apps/member/models.py:168
|
||||||
|
msgid "Photo consent"
|
||||||
|
msgstr "Autorisation de droit à l'image"
|
||||||
|
|
||||||
|
#: apps/member/models.py:169
|
||||||
|
msgid "Sanitary plug"
|
||||||
|
msgstr "Fiche sanitaire"
|
||||||
|
|
||||||
|
#: apps/member/models.py:170
|
||||||
|
msgid "Motivation letter"
|
||||||
|
msgstr "Lettre de motivation"
|
||||||
|
|
||||||
|
#: apps/member/models.py:171 apps/tournament/models.py:157
|
||||||
|
msgid "Scholarship"
|
||||||
|
msgstr "Bourse"
|
||||||
|
|
||||||
|
#: apps/member/models.py:172
|
||||||
|
msgid "Solution"
|
||||||
|
msgstr "Solution"
|
||||||
|
|
||||||
|
#: apps/member/models.py:173
|
||||||
|
msgid "Synthesis"
|
||||||
|
msgstr "Synthèse"
|
||||||
|
|
||||||
|
#: apps/member/models.py:175
|
||||||
|
msgid "type"
|
||||||
|
msgstr "type"
|
||||||
|
|
||||||
|
#: apps/member/models.py:180
|
||||||
|
msgid "uploaded at"
|
||||||
|
msgstr "téléversé le"
|
||||||
|
|
||||||
|
#: apps/member/models.py:184
|
||||||
|
msgid "abstract document"
|
||||||
|
msgstr "document abstrait"
|
||||||
|
|
||||||
|
#: apps/member/models.py:185
|
||||||
|
msgid "abstract documents"
|
||||||
|
msgstr "documents abstraits"
|
||||||
|
|
||||||
|
#: apps/member/models.py:190
|
||||||
|
msgid "document"
|
||||||
|
msgstr "document"
|
||||||
|
|
||||||
|
#: apps/member/models.py:191
|
||||||
|
msgid "documents"
|
||||||
|
msgstr "documents"
|
||||||
|
|
||||||
|
#: apps/member/models.py:196 apps/member/models.py:210
|
||||||
|
msgid "problem"
|
||||||
|
msgstr "problème"
|
||||||
|
|
||||||
|
#: apps/member/models.py:204
|
||||||
|
msgid "solution"
|
||||||
|
msgstr "solution"
|
||||||
|
|
||||||
|
#: apps/member/models.py:205
|
||||||
|
msgid "solutions"
|
||||||
|
msgstr "solutions"
|
||||||
|
|
||||||
|
#: apps/member/models.py:218
|
||||||
|
msgid "synthesis"
|
||||||
|
msgstr "synthèse"
|
||||||
|
|
||||||
|
#: apps/member/models.py:219
|
||||||
|
msgid "syntheses"
|
||||||
|
msgstr "synthèses"
|
||||||
|
|
||||||
|
#: apps/tournament/models.py:10 apps/tournament/models.py:76
|
||||||
|
msgid "name"
|
||||||
|
msgstr "nom"
|
||||||
|
|
||||||
|
#: apps/tournament/models.py:16
|
||||||
|
msgid "organizers"
|
||||||
|
msgstr "organisateurs"
|
||||||
|
|
||||||
|
#: apps/tournament/models.py:20
|
||||||
|
msgid "size"
|
||||||
|
msgstr "taille"
|
||||||
|
|
||||||
|
#: apps/tournament/models.py:25
|
||||||
|
msgid "place"
|
||||||
|
msgstr "lieu"
|
||||||
|
|
||||||
|
#: apps/tournament/models.py:29
|
||||||
|
msgid "price"
|
||||||
|
msgstr "prix"
|
||||||
|
|
||||||
|
#: apps/tournament/models.py:37 apps/tournament/models.py:41
|
||||||
|
msgid "date start"
|
||||||
|
msgstr "date de début"
|
||||||
|
|
||||||
|
#: apps/tournament/models.py:45
|
||||||
|
msgid "date of registration closing"
|
||||||
|
msgstr "date de clôture des inscriptions"
|
||||||
|
|
||||||
|
#: apps/tournament/models.py:49
|
||||||
|
msgid "date of maximal solution submission"
|
||||||
|
msgstr "date d'envoi maximal des solutions"
|
||||||
|
|
||||||
|
#: apps/tournament/models.py:53
|
||||||
|
msgid "date of maximal syntheses submission"
|
||||||
|
msgstr "date d'envoi maximal des notes de synthèses"
|
||||||
|
|
||||||
|
#: apps/tournament/models.py:57
|
||||||
|
msgid "final tournament"
|
||||||
|
msgstr "finale"
|
||||||
|
|
||||||
|
#: apps/tournament/models.py:70
|
||||||
|
msgid "tournaments"
|
||||||
|
msgstr "tournois"
|
||||||
|
|
||||||
|
#: apps/tournament/models.py:81
|
||||||
|
msgid "trigram"
|
||||||
|
msgstr "trigramme"
|
||||||
|
|
||||||
|
#: apps/tournament/models.py:92
|
||||||
|
msgid "inscription date"
|
||||||
|
msgstr "date d'inscription"
|
||||||
|
|
||||||
|
#: apps/tournament/models.py:98 apps/tournament/models.py:166
|
||||||
|
msgid "Registration not validated"
|
||||||
|
msgstr "Inscription non validée"
|
||||||
|
|
||||||
|
#: apps/tournament/models.py:99 apps/tournament/models.py:167
|
||||||
|
msgid "Waiting for validation"
|
||||||
|
msgstr "En attente de validation"
|
||||||
|
|
||||||
|
#: apps/tournament/models.py:100 apps/tournament/models.py:168
|
||||||
|
msgid "Registration validated"
|
||||||
|
msgstr "Inscription validée"
|
||||||
|
|
||||||
|
#: apps/tournament/models.py:102 apps/tournament/models.py:170
|
||||||
|
msgid "validation status"
|
||||||
|
msgstr "statut de validation"
|
||||||
|
|
||||||
|
#: apps/tournament/models.py:107
|
||||||
|
msgid "selected for final"
|
||||||
|
msgstr "sélectionnée pour la finale"
|
||||||
|
|
||||||
|
#: apps/tournament/models.py:113
|
||||||
|
msgid "access code"
|
||||||
|
msgstr "code d'accès"
|
||||||
|
|
||||||
|
#: apps/tournament/models.py:130
|
||||||
|
msgid "teams"
|
||||||
|
msgstr "équipes"
|
||||||
|
|
||||||
|
#: apps/tournament/models.py:152
|
||||||
|
msgid "Not paid"
|
||||||
|
msgstr "Non payé"
|
||||||
|
|
||||||
|
#: apps/tournament/models.py:153
|
||||||
|
msgid "Credit card"
|
||||||
|
msgstr "Carte bancaire"
|
||||||
|
|
||||||
|
#: apps/tournament/models.py:154
|
||||||
|
msgid "Bank check"
|
||||||
|
msgstr "Chèque bancaire"
|
||||||
|
|
||||||
|
#: apps/tournament/models.py:155
|
||||||
|
msgid "Bank transfer"
|
||||||
|
msgstr "Virement bancaire"
|
||||||
|
|
||||||
|
#: apps/tournament/models.py:156
|
||||||
|
msgid "Cash"
|
||||||
|
msgstr "Espèces"
|
||||||
|
|
||||||
|
#: apps/tournament/models.py:160
|
||||||
|
msgid "payment method"
|
||||||
|
msgstr "moyen de paiement"
|
||||||
|
|
||||||
|
#: tfjm/settings.py:123
|
||||||
|
msgid "English"
|
||||||
|
msgstr "Anglais"
|
||||||
|
|
||||||
|
#: tfjm/settings.py:124
|
||||||
|
msgid "French"
|
||||||
|
msgstr "Français"
|
|
@ -13,6 +13,8 @@ https://docs.djangoproject.com/en/3.0/ref/settings/
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
|
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
|
||||||
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||||
PROJECT_DIR = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
|
PROJECT_DIR = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
|
||||||
|
@ -54,6 +56,8 @@ MIDDLEWARE = [
|
||||||
'django.contrib.auth.middleware.AuthenticationMiddleware',
|
'django.contrib.auth.middleware.AuthenticationMiddleware',
|
||||||
'django.contrib.messages.middleware.MessageMiddleware',
|
'django.contrib.messages.middleware.MessageMiddleware',
|
||||||
'django.middleware.clickjacking.XFrameOptionsMiddleware',
|
'django.middleware.clickjacking.XFrameOptionsMiddleware',
|
||||||
|
'django.middleware.locale.LocaleMiddleware',
|
||||||
|
'django.contrib.sites.middleware.CurrentSiteMiddleware',
|
||||||
]
|
]
|
||||||
|
|
||||||
ROOT_URLCONF = 'tfjm.urls'
|
ROOT_URLCONF = 'tfjm.urls'
|
||||||
|
@ -113,7 +117,12 @@ AUTH_USER_MODEL = 'member.TFJMUser'
|
||||||
# Internationalization
|
# Internationalization
|
||||||
# https://docs.djangoproject.com/en/3.0/topics/i18n/
|
# https://docs.djangoproject.com/en/3.0/topics/i18n/
|
||||||
|
|
||||||
LANGUAGE_CODE = 'fr-fr'
|
LANGUAGE_CODE = 'en'
|
||||||
|
|
||||||
|
LANGUAGES = [
|
||||||
|
('en', _('English')),
|
||||||
|
('fr', _('French')),
|
||||||
|
]
|
||||||
|
|
||||||
TIME_ZONE = 'UTC'
|
TIME_ZONE = 'UTC'
|
||||||
|
|
||||||
|
@ -123,6 +132,8 @@ USE_L10N = True
|
||||||
|
|
||||||
USE_TZ = True
|
USE_TZ = True
|
||||||
|
|
||||||
|
LOCALE_PATHS = [os.path.join(BASE_DIR, "locale")]
|
||||||
|
|
||||||
|
|
||||||
# Static files (CSS, JavaScript, Images)
|
# Static files (CSS, JavaScript, Images)
|
||||||
# https://docs.djangoproject.com/en/3.0/howto/static-files/
|
# https://docs.djangoproject.com/en/3.0/howto/static-files/
|
||||||
|
|
Loading…
Reference in New Issue