Commit 1cc5d7bb authored by chirac's avatar chirac

Merge branch 'translation' into 'dev'

Translation

See merge request federez/re2o!396
parents 54a5dca8 1c28c2d1
Pipeline #944 failed with stage
......@@ -28,7 +28,7 @@ done.
from django.conf import settings
from django.contrib.auth.models import Permission
from django.contrib.contenttypes.models import ContentType
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import ugettext as _
def _create_api_permission():
......@@ -71,4 +71,5 @@ def can_view(user):
'codename': settings.API_PERMISSION_CODENAME
}
can = user.has_perm('%(app_label)s.%(codename)s' % kwargs)
return can, None if can else _("You cannot see this application.")
return can, None if can else _("You don't have the right to see this"
" application.")
......@@ -46,6 +46,6 @@ class ExpiringTokenAuthentication(TokenAuthentication):
)
utc_now = datetime.datetime.now(datetime.timezone.utc)
if token.created < utc_now - token_duration:
raise exceptions.AuthenticationFailed(_('Token has expired'))
raise exceptions.AuthenticationFailed(_("The token has expired."))
return token.user, token
# Re2o est un logiciel d'administration développé initiallement au rezometz. Il
# se veut agnostique au réseau considéré, de manière à être installable en
# quelques clics.
#
# Copyright © 2018 Maël Kervella
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
msgid ""
msgstr ""
"Project-Id-Version: 2.5\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-01-08 23:06+0100\n"
"PO-Revision-Date: 2019-01-07 01:37+0100\n"
"Last-Translator: Laouen Fernet <laouen.fernet@supelec.fr>\n"
"Language-Team: \n"
"Language: fr_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"
#: acl.py:74
msgid "You don't have the right to see this application."
msgstr "Vous n'avez pas le droit de voir cette application."
#: authentication.py:49
msgid "The token has expired."
msgstr "Le jeton a expiré."
......@@ -116,7 +116,7 @@ class DiscountForm(Form):
Form used in oder to create a discount on an invoice.
"""
is_relative = forms.BooleanField(
label=_("Discount is on percentage"),
label=_("Discount is on percentage."),
required=False,
)
discount = forms.DecimalField(
......@@ -310,8 +310,8 @@ class RechargeForm(FormRevMixin, Form):
if balance_method.maximum_balance is not None and \
value + self.user.solde > balance_method.maximum_balance:
raise forms.ValidationError(
_("Requested amount is too high. Your balance can't exceed \
%(max_online_balance)s €.") % {
_("Requested amount is too high. Your balance can't exceed"
" %(max_online_balance)s €.") % {
'max_online_balance': balance_method.maximum_balance
}
)
......
......@@ -21,7 +21,7 @@ msgid ""
msgstr ""
"Project-Id-Version: 2.5\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-08-18 13:17+0200\n"
"POT-Creation-Date: 2019-01-12 16:50+0100\n"
"PO-Revision-Date: 2018-03-31 16:09+0002\n"
"Last-Translator: Laouen Fernet <laouen.fernet@supelec.fr>\n"
"Language: fr_FR\n"
......@@ -33,79 +33,98 @@ msgstr ""
msgid "You don't have the right to view this application."
msgstr "Vous n'avez pas le droit de voir cette application."
#: forms.py:63 forms.py:274
#: forms.py:66 forms.py:299
msgid "Select a payment method"
msgstr "Sélectionnez un moyen de paiement"
#: forms.py:66 models.py:510
#: forms.py:69 models.py:579
msgid "Member"
msgstr "Adhérent"
#: forms.py:68
#: forms.py:71
msgid "Select the proprietary member"
msgstr "Sélectionnez l'adhérent propriétaire"
#: forms.py:69
#: forms.py:72
msgid "Validated invoice"
msgstr "Facture validée"
#: forms.py:82
#: forms.py:85
msgid "A payment method must be specified."
msgstr "Un moyen de paiement doit être renseigné."
#: forms.py:96 forms.py:120 templates/cotisations/aff_article.html:33
#: templates/cotisations/facture.html:61
#: forms.py:97 templates/cotisations/aff_article.html:33
#: templates/cotisations/facture.html:67
msgid "Article"
msgstr "Article"
#: forms.py:100 forms.py:124 templates/cotisations/edit_facture.html:46
#: forms.py:101 templates/cotisations/edit_facture.html:50
msgid "Quantity"
msgstr "Quantité"
#: forms.py:154
#: forms.py:119
msgid "Discount is on percentage."
msgstr "La réduction est en pourcentage."
#: forms.py:123 templates/cotisations/facture.html:78
msgid "Discount"
msgstr "Réduction"
#: forms.py:140
#, python-format
msgid "{}% discount"
msgstr "{}% de réduction"
#: forms.py:140
msgid "{}€ discount"
msgstr "{}€ de réduction"
#: forms.py:179
msgid "Article name"
msgstr "Nom de l'article"
#: forms.py:164 templates/cotisations/sidebar.html:50
#: forms.py:189 templates/cotisations/sidebar.html:55
msgid "Available articles"
msgstr "Articles disponibles"
#: forms.py:192
#: forms.py:217
msgid "Payment method name"
msgstr "Nom du moyen de paiement"
#: forms.py:204
#: forms.py:229
msgid "Available payment methods"
msgstr "Moyens de paiement disponibles"
#: forms.py:230
#: forms.py:255
msgid "Bank name"
msgstr "Nom de la banque"
#: forms.py:242
#: forms.py:267
msgid "Available banks"
msgstr "Banques disponibles"
#: forms.py:261
#: forms.py:286
msgid "Amount"
msgstr "Montant"
#: forms.py:267 templates/cotisations/aff_cotisations.html:44
#: forms.py:292 templates/cotisations/aff_cost_estimate.html:42
#: templates/cotisations/aff_cotisations.html:44
#: templates/cotisations/aff_custom_invoice.html:42
#: templates/cotisations/control.html:66
msgid "Payment method"
msgstr "Moyen de paiement"
#: forms.py:287
#: forms.py:313
#, python-format
msgid ""
"Requested amount is too high. Your balance can't exceed "
"Requested amount is too high. Your balance can't exceed "
"%(max_online_balance)s €."
msgstr ""
"Le montant demandé trop grand. Votre solde ne peut excéder "
"Le montant demandé est trop grand. Votre solde ne peut excéder "
"%(max_online_balance)s €."
#: models.py:60 templates/cotisations/aff_cotisations.html:48
#: models.py:60 templates/cotisations/aff_cost_estimate.html:46
#: templates/cotisations/aff_cotisations.html:48
#: templates/cotisations/aff_custom_invoice.html:46
#: templates/cotisations/control.html:70
msgid "Date"
......@@ -133,9 +152,9 @@ msgstr "Peut voir un objet facture"
#: models.py:158
msgid "Can edit all the previous invoices"
msgstr "Peut modifier toutes les factures existantes"
msgstr "Peut modifier toutes les factures précédentes"
#: models.py:160 models.py:305
#: models.py:160 models.py:373
msgid "invoice"
msgstr "facture"
......@@ -156,128 +175,149 @@ msgid ""
"You don't have the right to edit an invoice already controlled or "
"invalidated."
msgstr ""
"Vous n'avez pas le droit de modifier une facture précedemment contrôlée ou "
"Vous n'avez pas le droit de modifier une facture précédemment contrôlée ou "
"invalidée."
#: models.py:184
msgid "You don't have the right to delete an invoice."
msgstr "Vous n'avez pas le droit de supprimer une facture."
#: models.py:186
#: models.py:187
msgid "You don't have the right to delete this user's invoices."
msgstr "Vous n'avez pas le droit de supprimer les factures de cet utilisateur."
#: models.py:189
#: models.py:191
msgid ""
"You don't have the right to delete an invoice already controlled or "
"invalidated."
msgstr ""
"Vous n'avez pas le droit de supprimer une facture précedement contrôlée ou "
"Vous n'avez pas le droit de supprimer une facture précédemment contrôlée ou "
"invalidée."
#: models.py:197
#: models.py:199
msgid "You don't have the right to view someone else's invoices history."
msgstr ""
"Vous n'avez pas le droit de voir l'historique des factures d'un autre "
"utilisateur."
#: models.py:200
#: models.py:202
msgid "The invoice has been invalidated."
msgstr "La facture a été invalidée."
#: models.py:210
#: models.py:214
msgid "You don't have the right to edit the \"controlled\" state."
msgstr "Vous n'avez pas le droit de modifier le statut \"contrôlé\"."
#: models.py:224
#: models.py:228
msgid "There are no payment method which you can use."
msgstr "Il n'y a pas de moyen de paiement que vous puissiez utiliser."
#: models.py:226
#: models.py:230
msgid "There are no article that you can buy."
msgstr "Il n'y a pas d'article que vous puissiez acheter."
#: models.py:261
#: models.py:272
msgid "Can view a custom invoice object"
msgstr "Peut voir un objet facture personnalisée"
#: models.py:265 templates/cotisations/aff_custom_invoice.html:36
#: models.py:276 templates/cotisations/aff_cost_estimate.html:36
#: templates/cotisations/aff_custom_invoice.html:36
msgid "Recipient"
msgstr "Destinataire"
#: models.py:269 templates/cotisations/aff_paiement.html:33
#: models.py:280 templates/cotisations/aff_paiement.html:33
msgid "Payment type"
msgstr "Type de paiement"
#: models.py:273
#: models.py:284
msgid "Address"
msgstr "Adresse"
#: models.py:276 templates/cotisations/aff_custom_invoice.html:54
#: models.py:287 templates/cotisations/aff_custom_invoice.html:54
msgid "Paid"
msgstr "Payé"
#: models.py:296 models.py:516 models.py:764
#: models.py:291
msgid "Remark"
msgstr "Remarque"
#: models.py:300
msgid "Can view a cost estimate object"
msgstr "Peut voir un objet devis"
#: models.py:303
msgid "Period of validity"
msgstr "Période de validité"
#: models.py:340
msgid "You don't have the right to delete a cost estimate."
msgstr "Vous n'avez pas le droit de supprimer un devis."
#: models.py:343
msgid "The cost estimate has an invoice and can't be deleted."
msgstr "Le devis a une facture et ne peut pas être supprimé."
#: models.py:364 models.py:585 models.py:852
msgid "Connection"
msgstr "Connexion"
#: models.py:297 models.py:517 models.py:765
#: models.py:365 models.py:586 models.py:853
msgid "Membership"
msgstr "Adhésion"
#: models.py:298 models.py:512 models.py:518 models.py:766
#: models.py:366 models.py:581 models.py:587 models.py:854
msgid "Both of them"
msgstr "Les deux"
#: models.py:310
#: models.py:378
msgid "amount"
msgstr "montant"
#: models.py:315
#: models.py:383
msgid "article"
msgstr "article"
#: models.py:322
#: models.py:390
msgid "price"
msgstr "prix"
#: models.py:327 models.py:535
#: models.py:395 models.py:604
msgid "duration (in months)"
msgstr "durée (en mois)"
#: models.py:335 models.py:549 models.py:780
#: models.py:403 models.py:618 models.py:868
msgid "subscription type"
msgstr "type de cotisation"
#: models.py:340
#: models.py:408
msgid "Can view a purchase object"
msgstr "Peut voir un objet achat"
#: models.py:341
#: models.py:409
msgid "Can edit all the previous purchases"
msgstr "Peut modifier tous les achats précédents"
#: models.py:343 models.py:774
#: models.py:411 models.py:862
msgid "purchase"
msgstr "achat"
#: models.py:344
#: models.py:412
msgid "purchases"
msgstr "achats"
#: models.py:411 models.py:573
#: models.py:479 models.py:642
msgid "Duration must be specified for a subscription."
msgstr "La durée de la cotisation doit être indiquée."
#: models.py:418
#: models.py:486
msgid "You don't have the right to edit the purchases."
msgstr "Vous n'avez pas le droit de modifier les achats."
#: models.py:423
#: models.py:491
msgid "You don't have the right to edit this user's purchases."
msgstr "Vous n'avez pas le droit de modifier les achats de cet utilisateur."
#: models.py:427
#: models.py:495
msgid ""
"You don't have the right to edit a purchase already controlled or "
"invalidated."
......@@ -285,150 +325,150 @@ msgstr ""
"Vous n'avez pas le droit de modifier un achat précédemment contrôlé ou "
"invalidé."
#: models.py:434
#: models.py:502
msgid "You don't have the right to delete a purchase."
msgstr "Vous n'avez pas le droit de supprimer un achat."
#: models.py:436
#: models.py:504
msgid "You don't have the right to delete this user's purchases."
msgstr "Vous n'avez pas le droit de supprimer les achats de cet utilisateur."
#: models.py:439
#: models.py:507
msgid ""
"You don't have the right to delete a purchase already controlled or "
"invalidated."
msgstr ""
"Vous n'avez pas le droit de supprimer un achat précédement contrôlé ou "
"Vous n'avez pas le droit de supprimer un achat précédemment contrôlé ou "
"invalidé."
#: models.py:447
#: models.py:515
msgid "You don't have the right to view someone else's purchase history."
msgstr ""
"Vous n'avez pas le droit de voir l'historique des achats d'un autre "
"utilisateur."
#: models.py:511
#: models.py:580
msgid "Club"
msgstr "Club"
#: models.py:523
#: models.py:592
msgid "designation"
msgstr "désignation"
#: models.py:529
#: models.py:598
msgid "unit price"
msgstr "prix unitaire"
#: models.py:541
#: models.py:610
msgid "type of users concerned"
msgstr "type d'utilisateurs concernés"
#: models.py:553 models.py:649
#: models.py:622 models.py:733
msgid "is available for every user"
msgstr "est disponible pour chaque utilisateur"
#: models.py:560
#: models.py:629
msgid "Can view an article object"
msgstr "Peut voir un objet article"
#: models.py:561
#: models.py:630
msgid "Can buy every article"
msgstr "Peut acheter chaque article"
#: models.py:569
#: models.py:638
msgid "Balance is a reserved article name."
msgstr "Solde est un nom d'article réservé."
#: models.py:594
#: models.py:663
msgid "You can't buy this article."
msgstr "Vous ne pouvez pas acheter cet article."
#: models.py:624
#: models.py:708
msgid "Can view a bank object"
msgstr "Peut voir un objet banque"
#: models.py:626
#: models.py:710
msgid "bank"
msgstr "banque"
#: models.py:627
#: models.py:711
msgid "banks"
msgstr "banques"
#: models.py:645
#: models.py:729
msgid "method"
msgstr "moyen"
#: models.py:654
#: models.py:738
msgid "is user balance"
msgstr "est solde utilisateur"
#: models.py:655
#: models.py:739
msgid "There should be only one balance payment method."
msgstr "Il ne devrait y avoir qu'un moyen de paiement solde."
#: models.py:661
#: models.py:745
msgid "Can view a payment method object"
msgstr "Peut voir un objet moyen de paiement"
#: models.py:662
#: models.py:746
msgid "Can use every payment method"
msgstr "Peut utiliser chaque moyen de paiement"
#: models.py:664
#: models.py:748
msgid "payment method"
msgstr "moyen de paiement"
#: models.py:665
#: models.py:749
msgid "payment methods"
msgstr "moyens de paiement"
#: models.py:699 payment_methods/comnpay/views.py:63
#: models.py:787 payment_methods/comnpay/views.py:63
#, python-format
msgid "The subscription of %(member_name)s was extended to %(end_date)s."
msgstr "La cotisation de %(member_name)s a été étendue au %(end_date)s."
#: models.py:709
#: models.py:797
msgid "The invoice was created."
msgstr "La facture a été créée."
#: models.py:730
#: models.py:818
msgid "You can't use this payment method."
msgstr "Vous ne pouvez pas utiliser ce moyen de paiement."
#: models.py:748
#: models.py:836
msgid "No custom payment method."
msgstr "Pas de moyen de paiement personnalisé."
#: models.py:783
#: models.py:871
msgid "start date"
msgstr "date de début"
#: models.py:786
#: models.py:874
msgid "end date"
msgstr "date de fin"
#: models.py:791
#: models.py:879
msgid "Can view a subscription object"
msgstr "Peut voir un objet cotisation"
#: models.py:792
#: models.py:880
msgid "Can edit the previous subscriptions"
msgstr "Peut modifier les cotisations précédentes"
#: models.py:794
#: models.py:882
msgid "subscription"
msgstr "cotisation"
#: models.py:795
#: models.py:883
msgid "subscriptions"
msgstr "cotisations"
#: models.py:799
#: models.py:887
msgid "You don't have the right to edit a subscription."
msgstr "Vous n'avez pas le droit de modifier une cotisation."
#: models.py:803
#: models.py:891
msgid ""
"You don't have the right to edit a subscription already controlled or "
"invalidated."
......@@ -436,11 +476,11 @@ msgstr ""
"Vous n'avez pas le droit de modifier une cotisation précédemment contrôlée "
"ou invalidée."
#: models.py:810
#: models.py:898
msgid "You don't have the right to delete a subscription."
msgstr "Vous n'avez pas le droit de supprimer une cotisation."
#: models.py:813
#: models.py:901
msgid ""
"You don't have the right to delete a subscription already controlled or "
"invalidated."
......@@ -448,7 +488,7 @@ msgstr ""
"Vous n'avez pas le droit de supprimer une cotisation précédemment contrôlée "
"ou invalidée."
#: models.py:821
#: models.py:909
msgid "You don't have the right to view someone else's subscription history."
msgstr ""
"Vous n'avez pas le droit de voir l'historique des cotisations d'un autre "
......@@ -482,11 +522,11 @@ msgstr "Le montant maximal d'argent autorisé pour le solde."
msgid "Allow user to credit their balance"
msgstr "Autorise l'utilisateur à créditer son solde"
#: payment_methods/balance/models.py:81 payment_methods/balance/models.py:112
#: payment_methods/balance/models.py:79 payment_methods/balance/models.py:110
msgid "Your balance is too low for this operation."
msgstr "Votre solde est trop bas pour cette opération."
#: payment_methods/balance/models.py:99 validators.py:20
#: payment_methods/balance/models.py:97 validators.py:20
msgid "There is already a payment method for user balance."
msgstr "Il y a déjà un moyen de paiement pour le solde utilisateur."
......@@ -523,11 +563,11 @@ msgstr ""
msgid "Production mode enabled (production URL, instead of homologation)"
msgstr "Mode production activé (URL de production, au lieu d'homologation)"
#: payment_methods/comnpay/models.py:104
#: payment_methods/comnpay/models.py:102
msgid "Pay invoice number "
msgstr "Payer la facture numéro "
#: payment_methods/comnpay/models.py:116
#: payment_methods/comnpay/models.py:114
msgid ""
"In order to pay your invoice with ComNpay, the price must be greater than {} "
"€."
......@@ -559,6 +599,30 @@ msgstr ""
msgid "no"
msgstr "non"
#: payment_methods/note_kfet/forms.py:32
msgid "pseudo note"
msgstr "pseudo note"
#: payment_methods/note_kfet/forms.py:35
msgid "Password"
msgstr "Mot de passe"
#: payment_methods/note_kfet/models.py:40
msgid "NoteKfet"
msgstr "NoteKfet"
#: payment_methods/note_kfet/models.py:50
msgid "server"
msgstr "serveur"
#: payment_methods/note_kfet/views.py:60
msgid "Unknown error."
msgstr "Erreur inconnue."
#: payment_methods/note_kfet/views.py:88
msgid "The payment with note was done."
msgstr "Le paiement par note a été effectué."
#: templates/cotisations/aff_article.html:34
msgid "Price"
msgstr "Prix"
......@@ -579,34 +643,47 @@ msgstr "Utilisateurs concernés"
msgid "Available for everyone"
msgstr "Disponible pour tous"
#: templates/cotisations/aff_article.html:52
#: templates/cotisations/aff_paiement.html:48
#: templates/cotisations/control.html:107 views.py:483 views.py:570
#: views.py:650
msgid "Edit"
msgstr "Modifier"
#: templates/cotisations/aff_banque.html:32
msgid "Bank"
msgstr "Banque"
#: templates/cotisations/aff_cotisations.html:38
msgid "User"
msgstr "Utilisateur"
#: templates/cotisations/aff_cost_estimate.html:39