From dc4af21e0020c2dc4a6f5ca7c73fd8c751e04d48 Mon Sep 17 00:00:00 2001 From: Christian Cueni Date: Tue, 16 Jul 2024 16:07:32 +0200 Subject: [PATCH] Add translations in backend --- server/locale/de/LC_MESSAGES/django.po | 26 ++++++++- server/locale/fr/LC_MESSAGES/django.mo | Bin 2743 -> 2855 bytes server/locale/fr/LC_MESSAGES/django.po | 25 ++++++++- server/locale/it/LC_MESSAGES/django.mo | Bin 2646 -> 2746 bytes server/locale/it/LC_MESSAGES/django.po | 25 ++++++++- .../vbv_lernwelt/dashboard/person_export.py | 15 ++++- .../dashboard/tests/test_export.py | 53 ++++++++++++++++-- 7 files changed, 132 insertions(+), 12 deletions(-) diff --git a/server/locale/de/LC_MESSAGES/django.po b/server/locale/de/LC_MESSAGES/django.po index d377dfff..b0106577 100644 --- a/server/locale/de/LC_MESSAGES/django.po +++ b/server/locale/de/LC_MESSAGES/django.po @@ -87,7 +87,7 @@ msgstr "" msgid "Lehrgang-Seite" msgstr "" -#: vbv_lernwelt/course/models.py:278 +#: vbv_lernwelt/dashboard/person_export.py:116 msgid "Teilnehmer" msgstr "" @@ -111,7 +111,7 @@ msgstr "" msgid "Versicherungsvermittler-Lehrgang" msgstr "" -#: vbv_lernwelt/course/models.py:351 +#: vbv_lernwelt/course/models.py:350 msgid "ÜK-Lehrgang" msgstr "" @@ -155,10 +155,30 @@ msgstr "" msgid "Email" msgstr "Email" -#: vbv_lernwelt/course_session/services/export_attendance.py:138 +#: vbv_lernwelt/course_session/services/export_attendance.py:127 msgid "Lehrvertragsnummer" msgstr "" +#: vbv_lernwelt/dashboard/person_export.py:16 +msgid "export_personen" +msgstr "" + +#: vbv_lernwelt/dashboard/person_export.py:68 +msgid "Telefon" +msgstr "" + +#: vbv_lernwelt/dashboard/person_export.py:69 +msgid "Rolle" +msgstr "" + +#: vbv_lernwelt/dashboard/person_export.py:118 +msgid "Trainer" +msgstr "" + +#: vbv_lernwelt/dashboard/person_export.py:120 +msgid "Regionenleiter" +msgstr "" + #: vbv_lernwelt/feedback/export.py:19 msgid "export_feedback" msgstr "" diff --git a/server/locale/fr/LC_MESSAGES/django.mo b/server/locale/fr/LC_MESSAGES/django.mo index 57810233a1dc8e67621a4022cb8761f6c74a6e9b..31cad5f5592e86e242942c10a9703903a3f25e9f 100644 GIT binary patch delta 917 zcmZY7KWGzC9Ki9PN$o|eQDYmct@T>#P*96omk#kCw1bow)E1XByqeSN-Ep}}2O+3~ zn?p|*!9|1;!KsRFqH%F_6>+eOMMV%N3+ngRT&Movm(P2-m-pW9mwVZ>RBU`MbUYAZ zknAUiw}_15(F`BNSIprmcHuAFhJSG@=CUF?F^@X$M_o6B1w4-W`x54H5_jQrd)^Q? zU9f<J2}kcI7*k=t{n`UC9);()H7*7p(HZ8FC%9@(@`nH&H9TgG0EO&R^gT z=I=1a`SKxs@Da80RpdwFBQ$*RYRy7q_7iGC=A&jlCr22(JU}6xl-_BKMOTHmTKa zgmy|p_am;YSEy~*iU&z;nZ8inWuwcQ%}w`{~g2KquDAbCZkH+hyB zPkv-ZlD_P~SlL{41K;?babpun+0^H~*ombac%G4paXsJE=6F&uo|z4NsYH(Jn`rrB z_DePyw@S%vt9Xu|g@Ippu6V{iH6i6zv%O87;dAzxa-!I+x}oF8QfW24Rx_+|s+75eFwHM+d1OLjM3K{r;}Wk9+U)?(*)J_j~WQ$KNH}KN15k zg*Z=}rj4Bt$zd!+N9e9K47Bpscp7(+OWxC!@Dt`S%xZ4qRlJAmSi|3V1D9E46JKE#qa;)FXkrC5 zuZLRj6Kv~Xoxxdrixe(XG!60wk)qc#)?i9dy(a31=HPgP??=yCtJi!Q=Z*=!FD+7c zh>Z=7Vwg<}wnFFVR_Zy8(ne^y<^33Apj(`#jdy;93ZX@-lQAwEw&Qjd3^QGB`cA{O z>b6;QS8dOBYqsM{#r9ft-|`POjGu;4ZaJN`$o%zN4Of;d&ul*G?l9Ar?z3vG(dzEV b((#k3Z9cTB!JE!wTPjQoZoGp_(SM=;x;0%5 diff --git a/server/locale/fr/LC_MESSAGES/django.po b/server/locale/fr/LC_MESSAGES/django.po index f18ecf09..3498fd8e 100644 --- a/server/locale/fr/LC_MESSAGES/django.po +++ b/server/locale/fr/LC_MESSAGES/django.po @@ -88,8 +88,9 @@ msgid "Lehrgang-Seite" msgstr "" #: vbv_lernwelt/course/models.py:278 +#: vbv_lernwelt/dashboard/person_export.py:116 msgid "Teilnehmer" -msgstr "" +msgstr "Participant" #: vbv_lernwelt/course/models.py:279 msgid "Experte/Trainer" @@ -160,6 +161,28 @@ msgstr "E-mail" msgid "Lehrvertragsnummer" msgstr "Numéro de contrat d'apprentissage" +#: vbv_lernwelt/dashboard/person_export.py:16 +#, fuzzy +#| msgid "export_anwesenheit" +msgid "export_personen" +msgstr "export_presence" + +#: vbv_lernwelt/dashboard/person_export.py:68 +msgid "Telefon" +msgstr "Téléphone" + +#: vbv_lernwelt/dashboard/person_export.py:69 +msgid "Rolle" +msgstr "Rôle" + +#: vbv_lernwelt/dashboard/person_export.py:118 +msgid "Trainer" +msgstr "Formateur / Formatrice" + +#: vbv_lernwelt/dashboard/person_export.py:120 +msgid "Regionenleiter" +msgstr "Responsable CI" + #: vbv_lernwelt/feedback/export.py:19 msgid "export_feedback" msgstr "export_feedback" diff --git a/server/locale/it/LC_MESSAGES/django.mo b/server/locale/it/LC_MESSAGES/django.mo index a046bd9415926ec35a412e4d2314c0f5562689d1..2ec499c4d39874cedc1aaaddc627f7324c823099 100644 GIT binary patch delta 915 zcmZwFPi#z46vy#nrc5cLYD(#-Dea;nEH#lXRDw1ZH6{_=J0Bo zM{iIoeurA&M^sgQ;y6_)ZfNi146D+PrZZ=dIn1MWehK-+u4Vn3SfPIh`PmYe&G=G% z=C`*rG~s*HLO!7e_=b9M88zV_)` ziYoQQHC&WBI}vyvrm;q;$5A7=5PDZRK4I0cJt|KYV;|d8kfd%VtOxoi8#w+q@{__+ F?k}kuZR-F4 delta 814 zcmX}q&r1|x9LMo*JL;NkYU{4Q(sisv)}vjN^pJ?O9y0V`1VM8cXkwXJbQZzOf=7=o z9uy1;qKgN^O9-Bd4xT!B>`)0I_y=?ddVgjYzsxhQXNG5<=lgu0Imw^rYCp0qyGD%A zhG@APW<|`TxDiL#j-T)rp5RUVhOPJ=Z{vCM`8RUeB{z+~!Yuwp&69D=S}>2DW;Gk6 z)5VJ-=5ZP|a0%1+9H;OV-p4(h!&5AwW_tmP_y9lP3ZCH@7Ra(6=dll8qBc;)EbCj1 zjuP0xQGAbcRN*Tsku+Jz?xq9C+;$JO!*OJ&Jw$S{>E`=cba^fzm%ZUe5o`@JSk-&h zw=Fs<(Kafx1JnW^@ev;482-U0*hx03z$$LwJ{B>{#~#k$0KUZu{M>y0g$%WSs7kkW zuz7Wc=%}=l$i{7urqE!8Ces-!7?LDMF4v*zX=nO>v=PqL?$Q*)4U+#$YpFu2mX4yE zC6iLnPfDqC>Y?4Ck>qvc=(W)bwBGtfYBsg#)kmEP#}C4K$#Dxyl{kn(uk5>z!wrAk z4`2I1Y|H+7wH$l#@jK_I{;?+({rQBW@9Q_ N4jP|F#~tlQssGU9R_Oo$ diff --git a/server/locale/it/LC_MESSAGES/django.po b/server/locale/it/LC_MESSAGES/django.po index 13e9a24a..8aa12dea 100644 --- a/server/locale/it/LC_MESSAGES/django.po +++ b/server/locale/it/LC_MESSAGES/django.po @@ -88,8 +88,9 @@ msgid "Lehrgang-Seite" msgstr "" #: vbv_lernwelt/course/models.py:278 +#: vbv_lernwelt/dashboard/person_export.py:116 msgid "Teilnehmer" -msgstr "" +msgstr "Partecipante" #: vbv_lernwelt/course/models.py:279 msgid "Experte/Trainer" @@ -160,6 +161,28 @@ msgstr "Email" msgid "Lehrvertragsnummer" msgstr "Numero di contratto di tirocinio" +#: vbv_lernwelt/dashboard/person_export.py:16 +#, fuzzy +#| msgid "export_anwesenheit" +msgid "export_personen" +msgstr "esportazione_presenza" + +#: vbv_lernwelt/dashboard/person_export.py:68 +msgid "Telefon" +msgstr "Telefono" + +#: vbv_lernwelt/dashboard/person_export.py:69 +msgid "Rolle" +msgstr "Ruolo" + +#: vbv_lernwelt/dashboard/person_export.py:118 +msgid "Trainer" +msgstr "Trainer" + +#: vbv_lernwelt/dashboard/person_export.py:120 +msgid "Regionenleiter" +msgstr "Responsabile CI" + #: vbv_lernwelt/feedback/export.py:19 msgid "export_feedback" msgstr "esportazione_feedback" diff --git a/server/vbv_lernwelt/dashboard/person_export.py b/server/vbv_lernwelt/dashboard/person_export.py index e9a0495a..67dfb1b0 100644 --- a/server/vbv_lernwelt/dashboard/person_export.py +++ b/server/vbv_lernwelt/dashboard/person_export.py @@ -96,7 +96,7 @@ def _add_rows( idx_offset += 1 continue - user_role = (user_cs.get("user_role"),) + user_role = _role_as_string(user_cs.get("user_role")) idx = row_idx - idx_offset sheet.cell(row=idx, column=1, value=user["first_name"]) @@ -108,4 +108,15 @@ def _add_rows( column=5, value=user.get("phone", ""), ) - sheet.cell(row=idx, column=6, value=user_role[0]) + sheet.cell(row=idx, column=6, value=user_role) + + +def _role_as_string(role): + if role == "MEMBER": + return str(_("Teilnehmer")) + elif role == "EXPERT": + return str(_("Trainer")) + elif role == "SUPERVISOR": + return str(_("Regionenleiter")) + else: + return role diff --git a/server/vbv_lernwelt/dashboard/tests/test_export.py b/server/vbv_lernwelt/dashboard/tests/test_export.py index ed48761e..c00d1fef 100644 --- a/server/vbv_lernwelt/dashboard/tests/test_export.py +++ b/server/vbv_lernwelt/dashboard/tests/test_export.py @@ -1,5 +1,6 @@ import io +from django.utils.translation import activate from openpyxl import load_workbook from vbv_lernwelt.core.constants import ( @@ -45,7 +46,7 @@ class PersonsExportTestCase(ExportBaseTestCase): self.test_student1.email, None, None, - "MEMBER", + "Teilnehmer", ] self.test_student2_row = [ self.test_student2.first_name, @@ -53,7 +54,7 @@ class PersonsExportTestCase(ExportBaseTestCase): self.test_student2.email, None, None, - "MEMBER", + "Teilnehmer", ] self.test_student3_row = [ self.test_student3.first_name, @@ -61,7 +62,7 @@ class PersonsExportTestCase(ExportBaseTestCase): self.test_student3.email, None, None, - "MEMBER", + "Teilnehmer", ] self.test_trainer1_row = [ self.test_trainer1.first_name, @@ -69,7 +70,7 @@ class PersonsExportTestCase(ExportBaseTestCase): self.test_trainer1.email, None, None, - "EXPERT", + "Trainer", ] self.test_trainer2_row = [ self.test_trainer2.first_name, @@ -77,7 +78,7 @@ class PersonsExportTestCase(ExportBaseTestCase): self.test_trainer2.email, None, None, - "EXPERT", + "Trainer", ] def _generate_expected_data(self, rows): @@ -139,3 +140,45 @@ class PersonsExportTestCase(ExportBaseTestCase): wb.active = wb["Test Zürich 2022 a"] self._check_export(wb, [[None] * 6], 1, 6) + + def test_export_in_fr(self): + activate("fr") + wb = self._generate_workbook(self.test_trainer1, [self.course_session_be.id]) + self.assertEqual(len(wb.sheetnames), 1) + self.assertEqual(wb.sheetnames[0], "Test Bern 2022 a") + wb.active = wb["Test Bern 2022 a"] + + header = [ + "Prénom", + "Nom de famille", + "E-mail", + "Numéro de contrat d'apprentissage", + "Téléphone", + "Rôle", + ] + + self.assertEqual([cell.value for cell in wb.active[1]], header) + self.assertEqual(wb.active.cell(row=2, column=6).value, "Participant") + self.assertEqual( + wb.active.cell(row=5, column=6).value, "Formateur / Formatrice" + ) + + def test_export_in_it(self): + activate("it") + wb = self._generate_workbook(self.test_trainer1, [self.course_session_be.id]) + self.assertEqual(len(wb.sheetnames), 1) + self.assertEqual(wb.sheetnames[0], "Test Bern 2022 a") + wb.active = wb["Test Bern 2022 a"] + + header = [ + "Nome", + "Cognome", + "Email", + "Numero di contratto di tirocinio", + "Telefono", + "Ruolo", + ] + + self.assertEqual([cell.value for cell in wb.active[1]], header) + self.assertEqual(wb.active.cell(row=2, column=6).value, "Partecipante") + self.assertEqual(wb.active.cell(row=5, column=6).value, "Trainer")