From ee95ea4d833cf04cacba24443c13f1296bd453f0 Mon Sep 17 00:00:00 2001 From: Christian Merten Date: Fri, 17 Mar 2023 21:12:05 +0100 Subject: [PATCH] finance: add translations --- .../finance/locale/de/LC_MESSAGES/django.po | 425 ++++++++++++++++++ jdav_web/finance/models.py | 3 +- .../templates/admin/confirmed_statement.html | 4 +- .../admin/overview_submitted_statement.html | 33 +- 4 files changed, 443 insertions(+), 22 deletions(-) create mode 100644 jdav_web/finance/locale/de/LC_MESSAGES/django.po diff --git a/jdav_web/finance/locale/de/LC_MESSAGES/django.po b/jdav_web/finance/locale/de/LC_MESSAGES/django.po new file mode 100644 index 0000000..a0a2344 --- /dev/null +++ b/jdav_web/finance/locale/de/LC_MESSAGES/django.po @@ -0,0 +1,425 @@ +# 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 , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-03-17 21:05+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \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" + +#: admin.py:69 +#, python-format +msgid "%(name)s is already submitted." +msgstr "%(name)s ist bereits eingereicht." + +#: admin.py:75 +#, python-format +msgid "" +"Successfully submited %(name)s. The finance department will notify the " +"requestors as soon as possible." +msgstr "" +"Rechnung %(name)s erfolgreich eingereicht. Das Finanzreferat wird auf dich " +"sobald wie möglich zukommen." + +#: admin.py:78 +msgid "Submit statement" +msgstr "Rechnung einreichen" + +#: admin.py:152 +#, python-format +msgid "%(name)s is not yet submitted." +msgstr "%(name)s ist noch nicht eingereicht." + +#: admin.py:159 +#, python-format +msgid "An error occured while trying to confirm %(name)s. Please try again." +msgstr "" +"Beim Abwickeln von %(name)s ist ein Fehler aufgetreten. Bitte versuche es " +"erneut." + +#: admin.py:163 +#, python-format +msgid "" +"Successfully confirmed %(name)s. I hope you executed the associated " +"transactions, I wont remind you again." +msgstr "" +"Erfolgreich %(name)s abgewickelt. Ich hoffe du hast die zugehörigen " +"Überweisungen ausgeführt, ich werde dich nicht nochmal erinnern." + +#: admin.py:170 +msgid "Statement confirmed" +msgstr "Abrechnung abgewickelt" + +#: admin.py:176 +msgid "" +"Transactions do not match the covered expenses. Please correct the mistakes " +"listed below." +msgstr "" +"Überweisungen stimmen nicht mit den übernommenen Kosten überein. Bitte " +"korrigiere die unten aufgeführten Fehler." + +#: admin.py:181 +msgid "Some transactions have no ledger configured. Please fill in the gaps." +msgstr "" +"Manche Überweisungen haben kein Geldtopf eingestellt. Bitte trage das nach." + +#: admin.py:190 +#, python-format +msgid "Successfully rejected %(name)s. The requestor can reapply, when needed." +msgstr "" +"Die Rechnung %(name)s wurde abgelehnt. Die Person kann die Rechnung erneut " +"einstellen, wenn es benötigt wird." + +#: admin.py:197 +#, python-format +msgid "" +"%(name)s already has transactions. Please delete them first, if you want to " +"generate new ones" +msgstr "" +"%(name)s hat bereits Überweisungen. Bitte lösche diese zunächst, bevor du " +"neue generierst." + +#: admin.py:201 +#, python-format +msgid "Successfully generated transactions for %(name)s" +msgstr "Automatisch Überweisungsträger für %(name)s generiert." + +#: admin.py:204 +msgid "View submitted statement" +msgstr "Eingereichte Abrechnung einsehen" + +#: admin.py:230 +#, python-format +msgid "Successfully reduced transactions for %(name)s." +msgstr "Überweisungsträger für %(name)s minimiert." + +#: models.py:13 +msgid "Name" +msgstr "Name" + +#: models.py:19 models.py:351 models.py:375 +#: templates/admin/confirmed_statement.html:38 +#: templates/admin/overview_submitted_statement.html:100 +msgid "Ledger" +msgstr "Geldtopf" + +#: models.py:20 +msgid "Ledgers" +msgstr "Geldtöpfe" + +#: models.py:42 models.py:323 models.py:374 +msgid "Short description" +msgstr "Kurzbeschreibung" + +#: models.py:45 models.py:324 +msgid "Explanation" +msgstr "Erklärung" + +#: models.py:47 +msgid "Associated excursion" +msgstr "Zugehörige Freizeit" + +#: models.py:52 +msgid "Price per night" +msgstr "Preis pro Nacht" + +#: models.py:54 +msgid "Submitted" +msgstr "Eingericht" + +#: models.py:55 +msgid "Submitted on" +msgstr "Eingereicht am" + +#: models.py:56 +msgid "Confirmed" +msgstr "Abgewickelt" + +#: models.py:57 models.py:358 +msgid "Paid on" +msgstr "Bezahlt am" + +#: models.py:59 +msgid "Submitted by" +msgstr "Eingereicht bei" + +#: models.py:64 models.py:327 models.py:359 +msgid "Authorized by" +msgstr "Autorisiert von" + +#: models.py:71 models.py:322 models.py:354 +msgid "Statement" +msgstr "Abrechnung" + +#: models.py:72 +msgid "Statements" +msgstr "Abrechnungen" + +#: models.py:77 +#, python-format +msgid "Statement: %(excursion)s" +msgstr "Abrechnung: %(excursion)s" + +#: models.py:123 +msgid "Ready to confirm" +msgstr "Bereit zur Abwicklung" + +#: models.py:162 +#, python-format +msgid "Compensation for %(excu)s" +msgstr "Entschädigung für %(excu)s" + +#: models.py:274 templates/admin/overview_submitted_statement.html:78 +msgid "Total" +msgstr "Gesamtbetrag" + +#: models.py:287 +msgid "Statement in preparation" +msgstr "Abrechnung in Vorbereitung" + +#: models.py:288 +msgid "Statements in preparation" +msgstr "Abrechnungen in Vorbereitung" + +#: models.py:301 +msgid "Submitted statement" +msgstr "Eingereichte Abrechnung" + +#: models.py:302 +msgid "Submitted statements" +msgstr "Eingereichte Abrechnungen" + +#: models.py:316 +msgid "Paid statement" +msgstr "Bezahlte Abrechnung" + +#: models.py:317 +msgid "Paid statements" +msgstr "Bezahlte Abrechnungen" + +#: models.py:329 +msgid "Covered" +msgstr "Übernommen" + +#: models.py:330 +msgid "Refunded" +msgstr "Ausgezahlt" + +#: models.py:332 +msgid "Proof" +msgstr "Beleg" + +#: models.py:342 +msgid "Bill" +msgstr "Quittung" + +#: models.py:343 templates/admin/overview_submitted_statement.html:26 +msgid "Bills" +msgstr "Quittungen" + +#: models.py:347 templates/admin/confirmed_statement.html:37 +#: templates/admin/overview_submitted_statement.html:99 +msgid "Reference" +msgstr "Verwendungszweck" + +#: models.py:349 +msgid "Recipient" +msgstr "Empfänger" + +#: models.py:357 +msgid "Paid" +msgstr "Bezahlt" + +#: models.py:369 +msgid "Transaction" +msgstr "Überweisung" + +#: models.py:370 templates/admin/overview_submitted_statement.html:84 +msgid "Transactions" +msgstr "Überweisungen" + +#: templates/admin/confirmed_statement.html:17 +#: templates/admin/overview_submitted_statement.html:17 +#: templates/admin/submit_statement.html:17 +msgid "Home" +msgstr "Start" + +#: templates/admin/confirmed_statement.html:21 +msgid "Paiment" +msgstr "Bezahlung" + +#: templates/admin/confirmed_statement.html:26 +msgid "Paying statement" +msgstr "Rechnung bezahlen" + +#: templates/admin/confirmed_statement.html:29 +msgid "" +"The statement is valid. Please execute the following transactions and then " +"proceed by finalizing the confirmation." +msgstr "" +"Die Abrechnung ist gültig. Bitte führe die folgenden Überweisungen aus und " +"fahre dann fort, indem du die Abwicklung bestätigst." + +#: templates/admin/confirmed_statement.html:35 +msgid "IBAN" +msgstr "IBAN" + +#: templates/admin/confirmed_statement.html:36 +#: templates/admin/overview_submitted_statement.html:31 +#: templates/admin/overview_submitted_statement.html:98 +msgid "Amount" +msgstr "Betrag" + +#: templates/admin/confirmed_statement.html:66 +msgid "I did execute the listed transactions." +msgstr "Ich habe die aufgeführten Überweisungen ausgeführt." + +#: templates/admin/confirmed_statement.html:68 +msgid "Confirm" +msgstr "Bestätigen" + +#: templates/admin/overview_submitted_statement.html:21 +msgid "Overview" +msgstr "Übersicht" + +#: templates/admin/overview_submitted_statement.html:32 +msgid "Covered by association" +msgstr "Vom Verein übernommen" + +#: templates/admin/overview_submitted_statement.html:50 +#, python-format +msgid "The total amount is %(total_bills)s €." +msgstr "Der Gesamtbetrag beträgt %(total_bills)s €." + +#: templates/admin/overview_submitted_statement.html:54 +msgid "Excursion" +msgstr "Freizeit" + +#: templates/admin/overview_submitted_statement.html:57 +#, python-format +msgid "This excursion featured %(staff_count)s youth leader(s), each costing" +msgstr "" +"Diese Freizeit hatte %(staff_count)s Jugendleiter:innen. Auf jede:n " +"entfallen die folgenden Kosten:" + +#: templates/admin/overview_submitted_statement.html:62 +#, python-format +msgid "" +"%(nights)s nights for %(price_per_night)s€ per night making a total of " +"%(nights_per_yl)s€." +msgstr "" +"%(nights)s Nächte zum Preis von %(price_per_night)s€ pro Nacht. Das ergibt " +"eine Gesamtsumme von %(nights_per_yl)s€." + +#: templates/admin/overview_submitted_statement.html:65 +#, python-format +msgid "" +"%(duration)s days for %(allowance_per_day)s€ per day making a total of " +"%(allowance_per_yl)s€." +msgstr "" +"%(duration)s Tage für %(allowance_per_day)s€ pro Tag. Das ergibt eine " +"Gesamtsumme von %(allowance_per_yl)s€." + +#: templates/admin/overview_submitted_statement.html:68 +#, python-format +msgid "" +"%(kilometers_traveled)s km by %(means_of_transport)s (%(euro_per_km)s € / " +"km) making a total of %(transportation_per_yl)s€." +msgstr "" +"%(kilometers_traveled)s km mit %(means_of_transport)s (%(euro_per_km)s€ / " +"km). Das ergibt eine Gesamtsumme von %(transportation_per_yl)s€." + +#: templates/admin/overview_submitted_statement.html:73 +#, python-format +msgid "" +"In total this is %(total_per_yl)s€ times %(staff_count)s, giving " +"%(total_staff)s€." +msgstr "" +"Insgesamt sind das Kosten von %(total_per_yl)s€ mal %(staff_count)s, " +"insgesamt also %(total_staff)s€." + +#: templates/admin/overview_submitted_statement.html:81 +#, python-format +msgid "This results in a total amount of %(total)s€" +msgstr "Das resultiert in einem Gesamtbetrag von %(total)s€" + +#: templates/admin/overview_submitted_statement.html:87 +msgid "" +"Currently, no transactions are planned. You can auto generate them from the " +"data, by clicking the following button." +msgstr "" +"Aktuell sind keine Überweisungen vorgesehen. Du kannst die erforderlichen " +"durch Klicken auf den folgenden Knopf generieren." + +#: templates/admin/overview_submitted_statement.html:90 +msgid "Generate transactions" +msgstr "Erzeuge Überweisungsträger" + +#: templates/admin/overview_submitted_statement.html:94 +msgid "Currently the following transactions are planned." +msgstr "Aktuell sind die folgenden Überweisungen vorgesehen." + +#: templates/admin/overview_submitted_statement.html:137 +msgid "These transactions match the calculated costs." +msgstr "Diese Überweisungen stimmen mit den berechneten Kosten überein." + +#: templates/admin/overview_submitted_statement.html:140 +msgid "" +"The current transactions do not reflect all costs in this statement. Please " +"fix the following issues:" +msgstr "" +"Die aktuell vorgesehenen Überweisungen stimmen nicht mit den berechneten " +"Kosten überein. Bitte korrigiere die folgenden Fehler:" + +#: templates/admin/overview_submitted_statement.html:145 +msgid "Currently receiving" +msgstr "Erhält aktuell" + +#: templates/admin/overview_submitted_statement.html:146 +msgid "Actual costs" +msgstr "Tatsächliche Kosten" + +#: templates/admin/overview_submitted_statement.html:147 +msgid "Difference" +msgstr "Differenz" + +#: templates/admin/overview_submitted_statement.html:174 +msgid "Accept" +msgstr "Annehmen" + +#: templates/admin/overview_submitted_statement.html:175 +msgid "Reject" +msgstr "Ablehnen" + +#: templates/admin/overview_submitted_statement.html:178 +#: templates/admin/submit_statement.html:35 +msgid "Cancel" +msgstr "Abbruch" + +#: templates/admin/submit_statement.html:21 +#: templates/admin/submit_statement.html:34 +msgid "Submit" +msgstr "Einreichen" + +#: templates/admin/submit_statement.html:26 +msgid "Submit to the finance department" +msgstr "Beim Finanzreferat einreichen" + +#: templates/admin/submit_statement.html:28 +msgid "" +"Do you want to submit the statement for further processing by the finance " +"department? If you proceed, no further changes to the statement are possible." +msgstr "" +"Möchtest du die Abrechnung beim Finanzreferat einreichen? Wenn du " +"fortschreitest, sind keine weiteren Änderungen an der Abrechnung möglich." diff --git a/jdav_web/finance/models.py b/jdav_web/finance/models.py index f6eba79..6c532b5 100644 --- a/jdav_web/finance/models.py +++ b/jdav_web/finance/models.py @@ -337,6 +337,7 @@ class Bill(models.Model): def pretty_amount(self): return "{}€".format(self.amount) pretty_amount.admin_order_field = 'amount' + pretty_amount.short_description = _('Amount') class Meta: verbose_name = _('Bill') @@ -345,7 +346,7 @@ class Bill(models.Model): class Transaction(models.Model): reference = models.TextField(verbose_name=_('Reference')) - amount = models.DecimalField(max_digits=6, decimal_places=2) + amount = models.DecimalField(max_digits=6, decimal_places=2, verbose_name=_('Amount')) member = models.ForeignKey(Member, verbose_name=_('Recipient'), on_delete=models.CASCADE) ledger = models.ForeignKey(Ledger, blank=False, null=True, default=None, verbose_name=_('Ledger'), diff --git a/jdav_web/finance/templates/admin/confirmed_statement.html b/jdav_web/finance/templates/admin/confirmed_statement.html index 793f8fd..aa2c079 100644 --- a/jdav_web/finance/templates/admin/confirmed_statement.html +++ b/jdav_web/finance/templates/admin/confirmed_statement.html @@ -26,9 +26,7 @@

{% translate "Paying statement" %}

-{% blocktrans %}The statement is valid. Please execute the following transactions and then proceed by -finalizing the confirmation. -{% endblocktrans %} +{% blocktrans %}The statement is valid. Please execute the following transactions and then proceed by finalizing the confirmation.{% endblocktrans %}

diff --git a/jdav_web/finance/templates/admin/overview_submitted_statement.html b/jdav_web/finance/templates/admin/overview_submitted_statement.html index 7743266..4fd11f8 100644 --- a/jdav_web/finance/templates/admin/overview_submitted_statement.html +++ b/jdav_web/finance/templates/admin/overview_submitted_statement.html @@ -28,8 +28,8 @@

- + + {% for bill in statement.bill_set.all %} @@ -53,41 +53,38 @@

{% trans "Excursion" %}

-{% blocktrans %}

-This excursion featured {{ staff_count }} youth leader(s), each costing +{% blocktrans %}This excursion featured {{ staff_count }} youth leader(s), each costing{% endblocktrans %}

  • - {{ nights }} nights for {{ price_per_night }}€ per night making a total of {{ nights_per_yl }}€. + {% blocktrans %}{{ nights }} nights for {{ price_per_night }}€ per night making a total of {{ nights_per_yl }}€.{% endblocktrans %}
  • - {{ duration }} days for {{ allowance_per_day }}€ per day making a total of {{ allowance_per_yl }}€. + {% blocktrans %}{{ duration }} days for {{ allowance_per_day }}€ per day making a total of {{ allowance_per_yl }}€.{% endblocktrans %}
  • - {{ kilometers_traveled }} km by {{ means_of_transport }} ({{euro_per_km}} € / km) making a total of {{ transportation_per_yl }}€. + {% blocktrans %}{{ kilometers_traveled }} km by {{ means_of_transport }} ({{euro_per_km}} € / km) making a total of {{ transportation_per_yl }}€.{% endblocktrans %}

-In total this is {{ total_per_yl }}€ times {{ staff_count }}, giving {{ total_staff }}€. +{% blocktrans %}In total this is {{ total_per_yl }}€ times {{ staff_count }}, giving {{ total_staff }}€.{% endblocktrans %}

-{% endblocktrans %} {% endif %}

{% trans "Total" %}

-{% blocktrans %} This results in a total amount of {{ total }} € {% endblocktrans %} +{% blocktrans %}This results in a total amount of {{ total }}€{% endblocktrans %}

{% trans 'Transactions' %}

{% if statement.transaction_set.count == 0 %} -{% blocktrans %}Currently, no transactions are planned. You can auto generate them from the data, by clicking the button at the -end of the page.{% endblocktrans %} +{% blocktrans %}Currently, no transactions are planned. You can auto generate them from the data, by clicking the following button.{% endblocktrans %} {% csrf_token %} @@ -98,9 +95,9 @@ end of the page.{% endblocktrans %}

- AmountCovered by association{% trans "Amount" %}{% trans "Covered by association" %}
- - + + + {% for transaction in statement.transaction_set.all %} @@ -145,9 +142,9 @@ end of the page.{% endblocktrans %}

- AmountReferenceLedger{% trans "Amount" %}{% trans "Reference" %}{% trans "Ledger" %}
- - + + + {% for issue in transaction_issues %}
- Currently receivingActual costsDifference{% trans "Currently receiving" %}{% trans "Actual costs" %}{% trans "Difference" %}