diff --git a/shared/locale/en/LC_MESSAGES/django.mo b/shared/locale/en/LC_MESSAGES/django.mo new file mode 100644 index 0000000..1dac996 Binary files /dev/null and b/shared/locale/en/LC_MESSAGES/django.mo differ diff --git a/shared/locale/en/LC_MESSAGES/django.po b/shared/locale/en/LC_MESSAGES/django.po new file mode 100644 index 0000000..17d4db2 --- /dev/null +++ b/shared/locale/en/LC_MESSAGES/django.po @@ -0,0 +1,694 @@ +# Kadenios translations. +# Copyright (C) 2021 Klub Dev ENS +# This file is distributed under the same license as the kadenios package. +# Klub Dev ENS , 2021. +# +msgid "" +msgstr "" +"Project-Id-Version: 0.1\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-04-14 03:31+0200\n" +"PO-Revision-Date: 2021-04-14 20:17+0200\n" +"Last-Translator: Tom Hubrecht \n" +"Language-Team: \n" +"Language: en\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" +"X-Generator: Poedit 2.4.1\n" + +#: elections/forms.py:15 +msgid "Impossible de faire débuter l'élection dans le passé" +msgstr "Impossible to start the election in the past" + +#: elections/forms.py:19 +msgid "Impossible de terminer l'élection avant de la commencer" +msgstr "Impossible to end the election before it starts" + +#: elections/forms.py:40 +msgid "Sélectionnez un fichier .csv" +msgstr "Select a .csv file" + +#: elections/forms.py:50 +msgid "Extension de fichier invalide, il faut un fichier au format CSV." +msgstr "Invalid file extension, a CSV file is required." + +#: elections/forms.py:80 +msgid "Supprimer le vote de {} ({}) ?" +msgstr "Delete the vote of {} ({}) ?" + +#: elections/forms.py:85 elections/templates/elections/election_admin.html:150 +#: elections/templates/elections/election_admin.html:177 +#: elections/templates/elections/election_voters.html:57 +msgid "Supprimer" +msgstr "Delete" + +#: elections/forms.py:85 +msgid "Non" +msgstr "No" + +#: elections/forms.py:85 +msgid "Oui" +msgstr "Yes" + +#: elections/models.py:28 +msgid "nom" +msgstr "name" + +#: elections/models.py:29 +msgid "nom bref" +msgstr "short name" + +#: elections/models.py:30 +msgid "description" +msgstr "description" + +#: elections/models.py:32 +msgid "date et heure de début" +msgstr "start date and time" + +#: elections/models.py:33 +msgid "date et heure de fin" +msgstr "end date and time" + +#: elections/models.py:35 +msgid "conditions de vote" +msgstr "voting requirements" + +#: elections/models.py:38 +msgid "restreint le vote à une liste de personnes" +msgstr "restricts the vote to a list of people" + +#: elections/models.py:42 +msgid "mail avec les identifiants envoyé" +msgstr "mail with credentials sent" + +#: elections/models.py:59 +msgid "résultats publics" +msgstr "results published" + +#: elections/models.py:60 +msgid "dépouillée" +msgstr "counted" + +#: elections/models.py:62 +msgid "archivée" +msgstr "archived" + +#: elections/models.py:72 +msgid "question" +msgstr "question" + +#: elections/models.py:74 +msgid "type de question" +msgstr "type of question" + +#: elections/models.py:81 +msgid "nombre maximal de votes reçus" +msgstr "maximal number of votes received" + +#: elections/models.py:128 +msgid "texte" +msgstr "text" + +#: elections/models.py:130 +msgid "option gagnante" +msgstr "winning option" + +#: elections/models.py:138 +msgid "nombre de votes reçus" +msgstr "number of votes received" + +#: elections/models.py:157 +msgid "rang de l'option" +msgstr "option's ranking" + +#: elections/models.py:173 +msgid "votes supplémentaires" +msgstr "extra votes" + +#: elections/models.py:189 +msgid "Nom et Prénom" +msgstr "Name and surname" + +#: elections/models.py:211 elections/tests/test_models.py:57 +msgid "identifiants spécifiques" +msgstr "dedicated credentials" + +#: elections/models.py:215 +msgid "Peut administrer des élections" +msgstr "Can manage elections" + +#: elections/staticdefs.py:26 elections/tests/test_models.py:56 +msgid "mot de passe" +msgstr "password" + +#: elections/staticdefs.py:27 elections/tests/test_models.py:55 +msgid "CAS" +msgstr "CAS" + +#: elections/staticdefs.py:31 +msgid "Assentiment" +msgstr "Assent" + +#: elections/staticdefs.py:32 +msgid "Uninominal" +msgstr "Uninominal" + +#: elections/staticdefs.py:33 +msgid "Condorcet" +msgstr "Condorcet" + +#: elections/staticdefs.py:44 +msgid "" +"Le mode de scrutin pour cette question est un vote par assentiment. Vous " +"pouvez donc sélectionner autant d'options que vous souhaitez. Vous pouvez " +"également ne sélectionner aucune option." +msgstr "" +"The voting method for this question is a assent vote. You can therefore " +"select as many options as you wish. You can also select no options at all." + +#: elections/staticdefs.py:49 +msgid "" +"Le mode de scrutin pour cette question est un vote uninominal. Vous ne " +"pouvez donc sélectionner qu'une seule option." +msgstr "" +"The voting method for this question is a uninominal vote. You can therefore " +"only select one option." + +#: elections/staticdefs.py:53 +#, python-brace-format +msgid "" +"Le mode de scrutin pour cette question est un vote de type condorcet. Vous " +"devez classer les options entre 1 et {nb_options}, l'option classée 1 " +"étant votre préférée. Vous pouvez donner le même classement à plusieurs " +"options, si vous laissez vide le classement d'une option, elle sera " +"classée dernière automatiquement." +msgstr "" +"The voting method for this question is a condorcet vote. You must rank the " +"options between 1 and {nb_options}, with the option ranked 1 being " +"your favourite. You can give the same ranking to more than one option, if you leave an option's ranking blank, it will be ranked last " +"automatically." + +#: elections/templates/elections/delete_vote.html:7 +msgid "Supprimer un vote" +msgstr "Delete a vote" + +#: elections/templates/elections/delete_vote.html:23 +#: elections/templates/elections/election_create.html:41 +#: elections/templates/elections/election_update.html:47 +#: elections/templates/elections/option_update.html:29 +#: elections/templates/elections/question_update.html:29 +#: elections/templates/elections/vote.html:125 +#: shared/templates/auth/election_login.html:25 +#: shared/templates/authens/pwd_login.html:25 +#: shared/templates/authens/pwd_reset_confirm.html:25 +#: shared/templates/forms/modal-form.html:23 +msgid "Enregistrer" +msgstr "Save" + +#: elections/templates/elections/delete_vote.html:32 +#: elections/templates/elections/election_update.html:55 +#: elections/templates/elections/election_voters.html:19 +#: elections/templates/elections/mail_voters.html:43 +#: elections/templates/elections/option_update.html:37 +#: elections/templates/elections/question_update.html:37 +#: elections/templates/elections/upload_voters.html:46 +#: elections/templates/elections/vote.html:134 +#: shared/templates/auth/election_login.html:34 +#: shared/templates/authens/pwd_login.html:34 +#: shared/templates/authens/pwd_reset.html:34 +msgid "Retour" +msgstr "Back" + +#: elections/templates/elections/election.html:20 +msgid "Votant·e·s" +msgstr "Voters" + +#: elections/templates/elections/election.html:29 +msgid "Élection terminée" +msgstr "Election completed" + +#: elections/templates/elections/election.html:31 +msgid "Élection en cours" +msgstr "Election in progress" + +#: elections/templates/elections/election.html:40 +#: elections/templates/elections/election_list.html:72 +msgid "Administrer" +msgstr "Manage" + +#: elections/templates/elections/election.html:67 +#, python-format +msgid "Créé par %(creator)s" +msgstr "Created by %(creator)s" + +#: elections/templates/elections/election.html:80 +msgid "Votre vote a bien été enregistré." +msgstr "Your vote has been recorded." + +#: elections/templates/elections/election.html:107 +msgid "Voter" +msgstr "Vote" + +#: elections/templates/elections/election.html:118 +msgid "" +"Pour voter lors de cette élection, vous devez vous connecter à l'aide des " +"identifiants reçus par mail." +msgstr "" +"To vote in this election, you must log in using the login credentials you " +"received by e-mail." + +#: elections/templates/elections/election.html:120 +#: elections/templates/elections/election_voters.html:44 +msgid "" +"Pour voter lors de cette élection, vous devez vous connecter à l'aide du CAS " +"élève, d'autres restrictions peuvent s'appliquer et votre vote pourra être " +"supprimé si vous n'avez pas le droit de vote." +msgstr "" +"To vote in this election you must log in using the student CAS, other " +"restrictions may apply and your vote may be deleted if you are not eligible " +"to vote." + +#: elections/templates/elections/election.html:136 +msgid "Connexion par identifiants" +msgstr "Login with credentials" + +#: elections/templates/elections/election.html:147 +#: shared/templates/authens/login_switch.html:20 +msgid "Connexion via CAS" +msgstr "Login via CAS" + +#: elections/templates/elections/election.html:175 +msgid "A voté" +msgstr "Voted" + +#: elections/templates/elections/election_admin.html:23 +msgid "Actions" +msgstr "Actions" + +#: elections/templates/elections/election_admin.html:36 +#: elections/templates/elections/election_admin.html:159 +#: elections/templates/elections/election_admin.html:182 +msgid "Modifier" +msgstr "Edit" + +#: elections/templates/elections/election_admin.html:45 +#: elections/templates/elections/upload_voters.html:25 +msgid "Gestion de la liste de votant·e·s" +msgstr "Management of the voters' list" + +#: elections/templates/elections/election_admin.html:57 +#: elections/templates/elections/election_voters.html:27 +msgid "Liste des votant·e·s" +msgstr "Voters' list" + +#: elections/templates/elections/election_admin.html:65 +msgid "Dépouiller" +msgstr "Count" + +#: elections/templates/elections/election_admin.html:76 +msgid "Publier" +msgstr "Publish" + +#: elections/templates/elections/election_admin.html:78 +msgid "Dépublier" +msgstr "De-publish" + +#: elections/templates/elections/election_admin.html:88 +msgid "Archiver" +msgstr "Archive" + +#: elections/templates/elections/election_admin.html:225 +msgid "Rajouter une option" +msgstr "Add an option" + +#: elections/templates/elections/election_admin.html:231 +#: elections/templates/elections/election_admin.html:265 +msgid "Valider" +msgstr "Confirm" + +#: elections/templates/elections/election_admin.html:248 +msgid "Rajouter une question" +msgstr "Add a question" + +#: elections/templates/elections/election_create.html:31 +msgid "Création d'une élection" +msgstr "Creating an election" + +#: elections/templates/elections/election_list.html:10 +msgid "Liste des élections" +msgstr "List of elections" + +#: elections/templates/elections/election_list.html:21 +msgid "Créer une élection" +msgstr "Create an election" + +#: elections/templates/elections/election_list.html:54 +msgid "Élection dépouillée" +msgstr "Election counted" + +#: elections/templates/elections/election_list.html:60 +msgid "Élection publiée" +msgstr "Published election" + +#: elections/templates/elections/election_list.html:66 +msgid "Élection archivée" +msgstr "Archived election" + +#: elections/templates/elections/election_update.html:31 +msgid "Modification d'une élection" +msgstr "Editing an election" + +#: elections/templates/elections/election_voters.html:42 +msgid "" +"Seules les personnes présentes sur cette liste peuvent voter, vous avez dû " +"recevoir un mail avec vos identifiants de connexion." +msgstr "" +"Only people on this list can vote, you should have received an e-mail with " +"your login credentials." + +#: elections/templates/elections/election_voters.html:54 +#: elections/templates/elections/upload_voters.html:105 +msgid "Nom" +msgstr "Name" + +#: elections/templates/elections/election_voters.html:55 +msgid "Vote enregistré" +msgstr "Recorded vote" + +#: elections/templates/elections/election_voters.html:89 +#, python-format +msgid "Supprimer le vote de %(v_name)s" +msgstr "Delete the vote of %(v_name)s" + +#: elections/templates/elections/mail_voters.html:7 +msgid "Composition du mail aux votant·e·s" +msgstr "Composition of the e-mail to voters" + +#: elections/templates/elections/mail_voters.html:12 +msgid "" +"Assurez-vous que la liste des votant·e·s est complète, en effet, une fois le " +"mail envoyé, il ne sera plus possible de la modifier." +msgstr "" +"Make sure that the list of voters is complete, as once the e-mail is sent, " +"it will not be possible to change it." + +#: elections/templates/elections/mail_voters.html:17 +#, python-brace-format +msgid "" +"Rajoutez le message à envoyer aux électeurs entre 'Dear {full_name}' et " +"l'url de l'élection." +msgstr "" +"Add the message to be sent to voters between 'Dear {full_name}' and the " +"election url." + +#: elections/templates/elections/mail_voters.html:34 +msgid "Envoyer" +msgstr "Send" + +#: elections/templates/elections/option_update.html:13 +msgid "Modification d'une option" +msgstr "Editing an option" + +#: elections/templates/elections/question_update.html:13 +msgid "Modification d'une question" +msgstr "Editing a question" + +#: elections/templates/elections/results/rank.html:39 +#, python-format +msgid "" +"L'option %(winner)s est préférée à l'option %(loser)s par %(cell)s voix." +msgstr "" +"The %(winner)s option is preferred to the %(loser)s option by %(cell)s votes." + +#: elections/templates/elections/results/rank.html:51 +msgid "" +"La matrice des résultats montre les points d'avance, l'option gagnante est " +"affichée sur la colonne et la perdante sur la ligne. " +msgstr "" +"The results matrix shows the lead points, with the winning option displayed " +"in the column and the losing option in the row. " + +#: elections/templates/elections/results/select.html:4 +msgid "L'option majoritaire et gagnante est colorée en vert." +msgstr "The dominant and winning option is coloured green." + +#: elections/templates/elections/upload_voters.html:36 +msgid "Envoyer le mail d'annonce" +msgstr "Send the announcement e-mail" + +#: elections/templates/elections/upload_voters.html:57 +msgid "" +"Importez un fichier au format CSV, avec sur la première colonne le login, " +"sur la deuxième, le nom et prénom et enfin l'adresse email sur la troisième. " +"Soit :

Login_1,Prénom/Nom_1,mail_1@machin.test
Login_2,Prénom/" +"Nom_2,mail_2@bidule.test
...
" +msgstr "" +"Import a file in CSV format, with the login in the first column, the first " +"and last name in the second and the e-mail address in the third. So:" +"

Login_1,Firstname/Lastname_1,mail_1@thing.test
Login_2," +"Firstname/Lastname_2,mail_2@thingy.test
...
" + +#: elections/templates/elections/upload_voters.html:83 +msgid "Importer" +msgstr "Import" + +#: elections/templates/elections/upload_voters.html:96 +msgid "Liste des votant·e·s pour cette élection" +msgstr "List of voters for this election" + +#: elections/templates/elections/upload_voters.html:104 +msgid "Login" +msgstr "Login" + +#: elections/templates/elections/upload_voters.html:106 +msgid "Email" +msgstr "E-mail" + +#: elections/templates/elections/vote.html:25 +#: elections/templates/elections/vote.html:76 +msgid "Option(s) selectionnée(s)" +msgstr "Selected option(s)" + +#: elections/templates/elections/vote.html:75 +msgid "Classement" +msgstr "Ranking" + +#: elections/templates/elections/vote.html:101 +msgid "Vote pour la question :" +msgstr "Vote for the question:" + +#: elections/templates/elections/vote.html:142 +msgid "Confirmation du vote" +msgstr "Confirmation of the vote" + +#: elections/templates/elections/vote.html:154 +msgid "Confirmer" +msgstr "Confirm" + +#: elections/templates/elections/vote.html:161 +#: shared/templates/forms/modal-form.html:30 +msgid "Annuler" +msgstr "Cancel" + +#: elections/utils.py:206 +msgid "Vous devez sélectionnner une option." +msgstr "You must select an option." + +#: elections/utils.py:211 +msgid "Vous ne pouvez pas sélectionner plus d'une option." +msgstr "You cannot select more than one option." + +#: elections/utils.py:228 +msgid "Le classement maximal est {}." +msgstr "The maximum ranking is {}." + +#: elections/utils.py:232 +msgid "Le classement minimal est 1." +msgstr "The minimum ranking is 1." + +#: elections/utils.py:289 +msgid "" +"Format invalide. Vérifiez que le fichier est bien formé (i.e. chaque ligne " +"de la forme 'login,nom,email')." +msgstr "" +"Invalid format. Check that the file is properly formed (i.e. each line of " +"the form 'login,name,e-mail')." + +#: elections/utils.py:303 +msgid "La ligne {} n'a pas le bon nombre d'éléments." +msgstr "The line {} has the wrong number of elements." + +#: elections/utils.py:308 +msgid "Valeur manquante dans la ligne {} : 'login'." +msgstr "Missing value in line {}: 'login'." + +#: elections/utils.py:313 +msgid "Doublon dans les logins : lignes {} et {}." +msgstr "Duplicate logins: lines {} and {}." + +#: elections/utils.py:321 +msgid "Valeur manquante dans la ligne {} : 'nom'." +msgstr "Missing value in line {}: 'name'." + +#: elections/utils.py:327 +msgid "Adresse mail invalide à la ligne {} : '{}'." +msgstr "Invalid e-mail address in line {}: '{}'." + +#: elections/views.py:69 +msgid "Élection créée avec succès !" +msgstr "Election successfully created!" + +#: elections/views.py:105 +msgid "Liste de votant·e·s importée avec succès !" +msgstr "Voters list successfully imported!" + +#: elections/views.py:139 +msgid "Mail d'annonce envoyé avec succès !" +msgstr "Announcement e-mail sent successfully!" + +#: elections/views.py:171 +msgid "Élection modifiée avec succès !" +msgstr "Election successfully modified!" + +#: elections/views.py:241 +msgid "Élection dépouillée avec succès !" +msgstr "Election successfully counted!" + +#: elections/views.py:267 +msgid "Élection publiée avec succès !" +msgstr "Election successfully published!" + +#: elections/views.py:268 +msgid "Élection dépubliée avec succès !" +msgstr "Election successfully de-published!" + +#: elections/views.py:280 +msgid "Élection archivée avec succès !" +msgstr "Election successfully archived!" + +#: elections/views.py:312 +msgid "Question modifiée avec succès !" +msgstr "Question successfully modified!" + +#: elections/views.py:324 +msgid "Question supprimée !" +msgstr "Question deleted!" + +#: elections/views.py:362 +msgid "Option modifiée avec succès !" +msgstr "Option successfully modified!" + +#: elections/views.py:374 +msgid "Option supprimée !" +msgstr "Option deleted!" + +#: elections/views.py:514 +msgid "Votre choix a bien été enregistré !" +msgstr "Your choice has been recorded!" + +#: kadenios/settings/common.py:138 +msgid "Français" +msgstr "French" + +#: kadenios/settings/common.py:139 +msgid "Anglais" +msgstr "English" + +#: shared/auth/forms.py:13 +msgid "Identifiant" +msgstr "Username" + +#: shared/auth/forms.py:15 +msgid "Mot de passe" +msgstr "Password" + +#: shared/auth/forms.py:50 +msgid "" +"Aucun·e électeur·ice avec cet identifiant et mot de passe n'existe pour " +"cette élection. Vérifiez que les informations rentrées sont correctes, les " +"champs sont sensibles à la casse." +msgstr "" +"No voter with this username and password exists for this election. Check " +"that the information entered is correct, the fields are case sensitive." + +#: shared/templates/auth/election_login.html:9 +#: shared/templates/authens/login_switch.html:33 +#: shared/templates/authens/pwd_login.html:9 +msgid "Connexion par mot de passe" +msgstr "Password login" + +#: shared/templates/authens/login_switch.html:9 +msgid "Choisissez la méthode de connexion" +msgstr "Choose the connection method" + +#: shared/templates/authens/pwd_login.html:42 +msgid "Mot de passe oublié :" +msgstr "Forgotten password:" + +#: shared/templates/authens/pwd_login.html:48 +msgid "Réinitialiser mon mot de passe." +msgstr "Reset my password." + +#: shared/templates/authens/pwd_reset.html:9 +#: shared/templates/authens/pwd_reset_confirm.html:9 +msgid "Réinitialisation du mot de passe" +msgstr "Password reset" + +#: shared/templates/authens/pwd_reset.html:25 +msgid "Envoyer un mail" +msgstr "Send an e-mail" + +#: shared/templates/base.html:113 +msgid "Élections" +msgstr "Elections" + +#: shared/templates/base.html:163 +#, python-format +msgid "Connecté·e en tant que %(name)s par %(connection)s" +msgstr "Logged in as %(name)s via %(connection)s" + +#: shared/templates/base.html:178 +msgid "Se connecter" +msgstr "Log in" + +#: shared/templates/base.html:219 +msgid "" +"Développé par KDEns. En cas de pépin, contacter klub-dev [at] ens [dot] fr." +msgstr "" +"Developed by KDEns. In case of glitches, contact klub-dev [at] ens [dot] fr." + +#: shared/templates/forms/file.html:17 +msgid "Choisissez un fichier..." +msgstr "Choose a file..." + +#: shared/templates/forms/file.html:21 +msgid "Aucun fichier sélectionné" +msgstr "No file selected" + +#: shared/templates/kadenios.html:7 +msgid "Bienvenue sur Kadenios" +msgstr "Welcome to Kadenios" + +#: shared/templates/kadenios.html:10 +msgid "La plateforme Kadenios permet de créer des élections." +msgstr "The Kadenios platform provides a way to create elections." + +#: shared/templates/registration/logged_out.html:9 +msgid "Déconnexion réussie" +msgstr "Successfully logged out" + +#: shared/templates/registration/logged_out.html:22 +msgid "Se reconnecter" +msgstr "Log back in" + +#: shared/templates/registration/logged_out.html:31 +msgid "Accueil" +msgstr "Home" diff --git a/shared/templates/base.html b/shared/templates/base.html index af7b276..3e220d3 100644 --- a/shared/templates/base.html +++ b/shared/templates/base.html @@ -116,8 +116,42 @@
+ {% block auth %} +
+ {% if user.is_authenticated %} +
+
+
+ {% blocktrans with name=user.get_username connection=user.connection_method %}Connecté·e en tant que {{ name }} par {{ connection }}{% endblocktrans %} +
+
+ + +
+ {% else %} + + + {% endif %} +
+ {% endblock %} + {# Choix de la langue #} -
+
{% get_current_language as LANGUAGE_CODE %} {% get_available_languages as LANGUAGES %} {% get_language_info_list for LANGUAGES as langs %} @@ -127,10 +161,10 @@ -
- - {% block auth %} - {% if user.is_authenticated %} -
-
-
- {% blocktrans with name=user.get_username connection=user.connection_method %}Connecté·e en tant que {{ name }} par {{ connection }}{% endblocktrans %} -
-
- -
- - - -
-
- {% else %} - - - {% endif %} - {% endblock %}
{% block layout %} diff --git a/shared/templates/kadenios.html b/shared/templates/kadenios.html index 912d71f..fbf8a0b 100644 --- a/shared/templates/kadenios.html +++ b/shared/templates/kadenios.html @@ -4,11 +4,9 @@ {% block content %} -{% blocktrans %} -

Bienvenue sur Kadenios

+

{% trans "Bienvenue sur Kadenios" %}


-La plateforme Kadenios permet de créer des élections. -{% endblocktrans %} +{% trans "La plateforme Kadenios permet de créer des élections." %} {% endblock %}