Update translations

This commit is contained in:
Yohann D'ANELLO 2020-04-29 04:26:26 +02:00
parent 6a3390bb8d
commit 706de5bd41
7 changed files with 363 additions and 3 deletions

View File

@ -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/

View File

View File

@ -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()

View File

@ -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(

View File

@ -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"

View File

@ -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/