11
43
Fork
You've already forked base
6

Mehrsprachigkeit per Weblate etc #93

Closed
opened 2022年01月19日 23:52:23 +01:00 by gerhardbeck · 44 comments

Lerntools ist bisher zweisprachig. Um mehr Sprachen zu ermöglichen könnte eine Software wie Weblate verwendet werden.

Lerntools ist bisher zweisprachig. Um mehr Sprachen zu ermöglichen könnte eine Software wie Weblate verwendet werden.

Sollte sich für Weblate entschieden werden, würde ich die Weblate-Instanz von Marcus Hoffmann alias Bubu empfehlen: https://weblate.bubu1.eu/

Sollte sich für Weblate entschieden werden, würde ich die Weblate-Instanz von Marcus Hoffmann alias Bubu empfehlen: https://weblate.bubu1.eu/

Bei Weblate gäbe es auch die Möglichkeit, als freies Projekt ein kostenloses Hosting in deren Cloud zu kriegen

@gwenn hat im Chat vorgeschlagen, es in eigene Dateien auszulagern. Die Sprachdateien finden sich momentan noch in den .vue dateien

@pw könnte es eine der Formate sein:
https://docs.weblate.org/en/latest/formats.html

Bei Weblate gäbe es auch die Möglichkeit, als freies Projekt ein kostenloses Hosting in deren Cloud zu kriegen @gwenn hat im Chat vorgeschlagen, es in eigene Dateien auszulagern. Die Sprachdateien finden sich momentan noch in den .vue dateien @pw könnte es eine der Formate sein: https://docs.weblate.org/en/latest/formats.html

Bitte bei Umstellung vue #62 beachten

Bitte bei Umstellung vue #62 beachten
Contributor
Copy link

Eine webbasierte Software zu nutzen ist eine sehr gute Idee - idealerweise ist der Workflow dabei vollständig automatisiert. Wenn Ihr das hinbekommen habt, überlege ich das für die #MintApps auch :-)

Zum Thema auslagern: Vue-Seiten sind möglichst eigenständige Komponenten, die unabhängig voneinander genutzt und entwickelt werden. Fasst man alle Sprachdateien außerhalb zusammen, "zerstört" das diese Kapselung. Außerdem steigt die Ladezeit ggf., weil die gesammelte Sprachdatei sehr groß wird.

Hat leider alles seine Vor- und Nachteile...

PS: In jedem Fall benötigt Ihr ein Tool, das vue Dateien parsen kann - sonst sammeln sich ungenutzte oder unübersetze Wörter. Recht gut zu funktionieren scheint hier https://github.com/pixari/vue-i18n-extract

PPS: Und nochwas ... falls Ihr auf Vue3 wechselt und dort die neue Composition API verwendet, so bedeutet das massive Änderugen bei der Nutzung von i18n in vue: https://vue-i18n.intlify.dev/guide/advanced/composition.html#basic-usage

PPPS: Wenn Ihr
1. Vue3 nutzt
2. Euch für die Composition API entscheidet
3. vue-client verwendet
4. die Sprachdateien auslagert
... dann geht alles ziemlich einfach:

vue add i18

Fehlende und überflüssige Wörter liefert dann:

npm run i18n:report
Eine webbasierte Software zu nutzen ist eine sehr gute Idee - idealerweise ist der Workflow dabei vollständig automatisiert. Wenn Ihr das hinbekommen habt, überlege ich das für die #MintApps auch :-) Zum Thema auslagern: Vue-Seiten sind möglichst eigenständige Komponenten, die unabhängig voneinander genutzt und entwickelt werden. Fasst man alle Sprachdateien außerhalb zusammen, "zerstört" das diese Kapselung. Außerdem steigt die Ladezeit ggf., weil die gesammelte Sprachdatei sehr groß wird. Hat leider alles seine Vor- und Nachteile... PS: In jedem Fall benötigt Ihr ein Tool, das vue Dateien parsen kann - sonst sammeln sich ungenutzte oder unübersetze Wörter. Recht gut zu funktionieren scheint hier https://github.com/pixari/vue-i18n-extract PPS: Und nochwas ... falls Ihr auf Vue3 wechselt und dort die neue Composition API verwendet, so bedeutet das massive Änderugen bei der Nutzung von i18n in vue: https://vue-i18n.intlify.dev/guide/advanced/composition.html#basic-usage PPPS: Wenn Ihr 1. Vue3 nutzt 2. Euch für die Composition API entscheidet 3. vue-client verwendet 4. die Sprachdateien auslagert ... dann geht alles ziemlich einfach: ~~~ vue add i18 ~~~ Fehlende und überflüssige Wörter liefert dann: ~~~ npm run i18n:report ~~~

naja, die Überlegung war, wenn wir schon auf Vue3 umsteigen auch gleich die Sprachdateien outzusourcen um Weblate nutzen zu können.... wenn es sinnvoll ist.

naja, die Überlegung war, wenn wir schon auf Vue3 umsteigen auch gleich die Sprachdateien outzusourcen um Weblate nutzen zu können.... wenn es sinnvoll ist.

Aktuell wird daran gearbeitet, die MintApps mit Weblate mehrsprachig aufzustellen. Erste Tests scheinen zu funktionieren. Wird aber noch sehr viel Aufwand. Das Issue dazu: MintApps/client#97

Aktuell wird daran gearbeitet, die MintApps mit Weblate mehrsprachig aufzustellen. Erste Tests scheinen zu funktionieren. Wird aber noch sehr viel Aufwand. Das Issue dazu: https://codeberg.org/MintApps/client/issues/97

Die MintApps laufen nun soweit über Weblate mehrsprachlich.

Für die LernTools fehlen dazu folgende Schritte:

Wegen dem sync.js-Skript, @tk100 anpingen.

Die MintApps laufen nun soweit über Weblate mehrsprachlich. Für die LernTools fehlen dazu folgende Schritte: - [x] Auslagerung der Sprachkomponenten in .json-Dateien - [x] Umbau der .vue-Files in das i18n-Schema (siehe als Beispiel https://codeberg.org/MintApps/client/src/branch/main/src/mint/views/FourColors.vue) - [x] Eigenes Weblate Repo (siehe https://codeberg.org/MintApps/weblate ) + - [x] Anlegen eines "LernTools"-Weblateprojekt - [x] sync Skript (siehe https://codeberg.org/MintApps/weblate/src/branch/main/sync.js) Wegen dem sync.js-Skript, @tk100 anpingen.
Contributor
Copy link

Schritt zwei ist nicht nötig: Umbau der .vue-Files in das i18n-Schema (siehe als Beispiel https://codeberg.org/MintApps/client/src/branch/main/src/mint/views/FourColors.vue)

Das habe ich vor ca. zwei Jahren schon erledigt :-) Damit ist es auch relativ wenig Arbeit, für Schritt 1 benötigt man keine Programmierkenntnisse.

Schritt zwei ist nicht nötig: Umbau der .vue-Files in das i18n-Schema (siehe als Beispiel https://codeberg.org/MintApps/client/src/branch/main/src/mint/views/FourColors.vue) Das habe ich vor ca. zwei Jahren schon erledigt :-) Damit ist es auch relativ wenig Arbeit, für Schritt 1 benötigt man keine Programmierkenntnisse.

Ich würde mal Schritt 1 federführend übernehmen und mir Helfer suchen

Ich würde mal Schritt 1 federführend übernehmen und mir Helfer suchen

Ich würde am Ende Mai helfen, die Anbindung an Weblate zu realisieren.

cc: @gerhardbeck @pw

Ich würde am Ende Mai helfen, die Anbindung an Weblate zu realisieren. cc: @gerhardbeck @pw

Frage zur Vorbereitung @w4ts0n @pw

Sollen wir wie @tk100 den Ordner /locales/irgendwasfrühervue.json verwenden für jedes Modul? Sinnvoll oder?

Frage zur Vorbereitung @w4ts0n @pw Sollen wir wie @tk100 den Ordner /locales/irgendwasfrühervue.json verwenden für jedes Modul? Sinnvoll oder?
Member
Copy link

Zu Punkt 1 "Auslagerung der Sprachkomponenten in .json-Dateien" wurde die zuvor (automatisch) verlinkten MR erstellt. Projekt "pairs" wurde ausgelassen, da als deprecated markiert.

Zu Punkt 1 "Auslagerung der Sprachkomponenten in .json-Dateien" wurde die zuvor (automatisch) verlinkten MR erstellt. Projekt "pairs" wurde ausgelassen, da als *deprecated* markiert.
Contributor
Copy link

Perfekt! Der nächste Schritt ist es, ein neues Repository namens "weblate" in den Lerntools anzulegen. In dieses Repository kopiert ihr das Skript

https://codeberg.org/MintApps/weblate/src/branch/main/sync.js

der MintApps und passt die Einträge im oberen Teil entsprechend der Dokumentation an. Im einzelnen:

const LOCALES = ['de', 'da', 'en', 'fi', 'fr', 'nl', 'pl', 'ru', 'sv', 'es', 'cs', 'ua', 'hu']

Tragt hier alle Sprachen ein, die ihr in weblate verwalten wollt (dies können mehr sein, als in der client App verfügbar, z.B. wenn erst ein Teil übersetzt ist.)

const DEFAULT_LANG = "de"

Standard-Sprache, vermutlich de oder en bei euch.

const WEBLATE_REPO = "./weblate/"

Relativer Pfad zum Weblate Repo

const CLIENT_REPO = "./client/"

Relativer Pfad zum Base Lerntools Repo

const LOCALE_DIRS = {
 "main": "src/main/locales/",
 "mint": "src/mint/locales/"
}

Liste aller Verzeichnisse (relativ zum CLIENT_REPO), in denen sich locale Dateien befinden, bei euch also einige mehr (wegen der Module ideas, abcd und survey)

AUTOMATISCHER PUSH DEAKTIVIEREN

const PUSH_AUTO = false

Das Skript pusht sonst nach dem Durchgang automatisch alle Änderungen! Bei der Vielfalt an Zweigen und Repos, ist das vermutlich bei den Lerntools nicht sinnvoll. Wenn ihr es später aktivieren möchten, müsstet ihr die Funktion pushRepositories() so erweitern, dass sie base, ideas, survey, abcd und weblate berücksischtigt.

Probelauf

  1. README lesen! https://codeberg.org/MintApps/weblate/src/branch/main/README.md
  2. Vorher alle Änderungen in base, ideas, survey, abcd comitten (und so sichern)
  3. im Terminal node weblate/sync.js starten und hoffen :-)
Perfekt! Der nächste Schritt ist es, ein neues Repository namens "weblate" in den Lerntools anzulegen. In dieses Repository kopiert ihr das Skript https://codeberg.org/MintApps/weblate/src/branch/main/sync.js der MintApps und passt die Einträge im oberen Teil entsprechend der Dokumentation an. Im einzelnen: ~~~ const LOCALES = ['de', 'da', 'en', 'fi', 'fr', 'nl', 'pl', 'ru', 'sv', 'es', 'cs', 'ua', 'hu'] ~~~ Tragt hier alle Sprachen ein, die ihr in weblate verwalten wollt (dies können mehr sein, als in der client App verfügbar, z.B. wenn erst ein Teil übersetzt ist.) ~~~ const DEFAULT_LANG = "de" ~~~ Standard-Sprache, vermutlich de oder en bei euch. ~~~ const WEBLATE_REPO = "./weblate/" ~~~ Relativer Pfad zum Weblate Repo ~~~ const CLIENT_REPO = "./client/" ~~~ Relativer Pfad zum Base Lerntools Repo ~~~ const LOCALE_DIRS = { "main": "src/main/locales/", "mint": "src/mint/locales/" } ~~~ Liste aller Verzeichnisse (relativ zum CLIENT_REPO), in denen sich locale Dateien befinden, bei euch also einige mehr (wegen der Module ideas, abcd und survey) **AUTOMATISCHER PUSH DEAKTIVIEREN** ~~~ const PUSH_AUTO = false ~~~ Das Skript pusht sonst nach dem Durchgang automatisch alle Änderungen! Bei der Vielfalt an Zweigen und Repos, ist das vermutlich bei den Lerntools nicht sinnvoll. Wenn ihr es später aktivieren möchten, **müsstet** ihr die Funktion pushRepositories() so erweitern, dass sie base, ideas, survey, abcd und weblate berücksischtigt. **Probelauf** 0. README lesen! https://codeberg.org/MintApps/weblate/src/branch/main/README.md 1. Vorher alle Änderungen in base, ideas, survey, abcd comitten (und so sichern) 2. im Terminal `node weblate/sync.js` starten und hoffen :-)

So weit sind wir noch nicht, sind da auf Probleme gestoßen:
#117

So weit sind wir noch nicht, sind da auf Probleme gestoßen: https://codeberg.org/lerntools/base/issues/117
Member
Copy link

An i18n-Experten: Frage zu einem Problem, das bei #62 aufgefallen ist (und noch nicht gelöst ist): Wenn bspw. im Modul "ideas" eine Warnung ausgeben wird (msg: not-found), dass das Ticket gar nicht gefunden wurde, dann läuft die Ausgabe über die Main-Komponente "WarningList". Jetzt geht die App natürlich hin und übersetzt den Message-Code aus der Main-Komponente heraus. Das heißt aber auch: ich muss Modulspezifische Fehlermeldungen in die Main-Komponente packen. Richtig? Wenn ja: gibt es alternativen um die Modulbezogenen Dinge wie Texte weiterhin zu trennen?

An i18n-Experten: Frage zu einem Problem, das bei #62 aufgefallen ist (und noch nicht gelöst ist): Wenn bspw. im Modul "ideas" eine Warnung ausgeben wird (msg: not-found), dass das Ticket gar nicht gefunden wurde, dann läuft die Ausgabe über die Main-Komponente "WarningList". Jetzt geht die App natürlich hin und übersetzt den Message-Code aus der Main-Komponente heraus. Das heißt aber auch: ich muss Modulspezifische Fehlermeldungen in die Main-Komponente packen. Richtig? Wenn ja: gibt es alternativen um die Modulbezogenen Dinge wie Texte weiterhin zu trennen?
Contributor
Copy link

Dieses Problem kann ich bestätigen...

Eine Möglichkeit wäre es, die Texte zu übersetzen, bevor sie an die WarningList übergeben werden. Das könnte man direkt im Template mittels map recht einfach durchführen:

:warnings="list.map(c => t(c))"

In WarningList selbst würde der Text dann nur ausgegeben. Der Nachteil ist dabei, dass text-gleiche Meldungen aus verschiedenen Komponenten dort jeweils übersetzt werden müssen.

Um das zu lösen, könnte man eine separate Sprachdatei mit allgemeinen Fehlermeldungen erstellen, die man wieder in jeder Komponente zusätzlich einbindet, die allgemeine Fehlermeldungen benötigt:

<i18n src="../locales/GeneralWarningMessages.json"/>
<i18n src='../locales/Component.json'/>
Dieses Problem kann ich bestätigen... Eine Möglichkeit wäre es, die Texte zu übersetzen, bevor sie an die WarningList übergeben werden. Das könnte man direkt im Template mittels map recht einfach durchführen: ~~~ :warnings="list.map(c => t(c))" ~~~ In WarningList selbst würde der Text dann nur ausgegeben. Der Nachteil ist dabei, dass text-gleiche Meldungen aus verschiedenen Komponenten dort jeweils übersetzt werden müssen. Um das zu lösen, könnte man eine separate Sprachdatei mit allgemeinen Fehlermeldungen erstellen, die man wieder in jeder Komponente zusätzlich einbindet, die allgemeine Fehlermeldungen benötigt: ~~~ <i18n src="../locales/GeneralWarningMessages.json"/> <i18n src='../locales/Component.json'/> ~~~
Member
Copy link

Das klingt sehr gut @tk100. Man würde also im Prinzip eine globale Liste zur Verfügung stellen, die von allen Modulen genutzt werden könnte. Und wirklich modulspezifische dann auf Modulebene. 👍

Das klingt sehr gut @tk100. Man würde also im Prinzip eine globale Liste zur Verfügung stellen, die von allen Modulen genutzt werden könnte. Und wirklich modulspezifische dann auf Modulebene. 👍
Member
Copy link

Stand 29.05.2022:

Offen:

  • Anlegen eines "LernTools"-Weblateprojekt

@tk100 : wie macht man das am Besten hinsichtlich Token bei Weblate für die Authentifzierung? Habt ihr dort ein eigenes "Bot"-Konto bei Codeberg angelegt oder geht auf Repo bzw. Orga-Ebene etwas?

Stand 29.05.2022: - i18n-Strings sind exportiert - MR erledigt - Tests im Rahmen von #117 abgeschlossen. - Weblate-Repo angelegt: https://codeberg.org/lerntools/weblate - Script https://codeberg.org/lerntools/weblate/src/branch/main/sync.js an die Bedürfnisse von Lerntools angepasst. Offen: > - [ ] Anlegen eines "LernTools"-Weblateprojekt @tk100 : wie macht man das am Besten hinsichtlich Token bei Weblate für die Authentifzierung? Habt ihr dort ein eigenes "Bot"-Konto bei Codeberg angelegt oder geht auf Repo bzw. Orga-Ebene etwas?
Contributor
Copy link

Gute Frage ... das hat bei uns @w4ts0n eingerichtet, ich bitte ihn gleich einmal um mehr Infos.

Gute Frage ... das hat bei uns @w4ts0n eingerichtet, ich bitte ihn gleich einmal um mehr Infos.

Ich hatte mich bei weblate.bubu1.eu via meinem Codeberg Repo angemeldet und das Projekt erstellt.

Rückblickend gesehen war dies aus Sicht der Sicherheit vielleicht nicht die beste vorgehensweise.

Mein Vorschlag:

  1. Mailalias weblate@lerntools.org anlegen
  2. Konto auf einer Weblate-Instanz anlegen und dann ein Projekt anlegen und nach Abschluss dessen, sich mit bspw. seinem Codeberg Account anmelden und über den Bot-Account Admin machen lassen.
Ich hatte mich bei weblate.bubu1.eu via meinem Codeberg Repo angemeldet und das Projekt erstellt. Rückblickend gesehen war dies aus Sicht der Sicherheit vielleicht nicht die beste vorgehensweise. Mein Vorschlag: 1. Mailalias weblate@lerntools.org anlegen 2. Konto auf einer Weblate-Instanz anlegen und dann ein Projekt anlegen und nach Abschluss dessen, sich mit bspw. seinem Codeberg Account anmelden und über den Bot-Account Admin machen lassen.

Ich hatte mich bei weblate.bubu1.eu via meinem Codeberg Repo angemeldet und das Projekt erstellt.

Rückblickend gesehen war dies aus Sicht der Sicherheit vielleicht nicht die beste vorgehensweise.

Mein Vorschlag:

  1. Mailalias weblate@lerntools.org anlegen
  2. Konto auf einer Weblate-Instanz anlegen und dann ein Projekt anlegen und nach Abschluss dessen, sich mit bspw. seinem Codeberg Account anmelden und über den Bot-Account Admin machen lassen.

Falls Interesse besteht, könnten wir uns die Tage auch in eine Videokonferenz via Senfcall oder Jitsi-Meet setzen und gemeinsam schauen, wie wir die LernTools nun final an Weblate anbinden können.

cc: @tk100 @gerhardbeck @pw

Ich hatte mich bei weblate.bubu1.eu via meinem Codeberg Repo angemeldet und das Projekt erstellt. Rückblickend gesehen war dies aus Sicht der Sicherheit vielleicht nicht die beste vorgehensweise. Mein Vorschlag: 1. Mailalias weblate@lerntools.org anlegen 2. Konto auf einer Weblate-Instanz anlegen und dann ein Projekt anlegen und nach Abschluss dessen, sich mit bspw. seinem Codeberg Account anmelden und über den Bot-Account Admin machen lassen. Falls Interesse besteht, könnten wir uns die Tage auch in eine Videokonferenz via Senfcall oder Jitsi-Meet setzen und gemeinsam schauen, wie wir die LernTools nun final an Weblate anbinden können. cc: @tk100 @gerhardbeck @pw
Contributor
Copy link

Das selbe Angebot von mir - bei Interesse gerne auch kurze Videokonferenz :-)

Das selbe Angebot von mir - bei Interesse gerne auch kurze Videokonferenz :-)
Member
Copy link

Hallo @w4ts0n , hallo @tk100 ,

danke für eure Angebote! Vorschlag von @w4ts0n halte ich für klug. Aber wir müssen ja dann auch einen Codeberg-Konto mit dem Mailalias anlegen, damit es kein persönlicher Token wird. Hatte gehofft, man könnte wie bei Gitlab auch bei Codeberg Repo oder Organisationstoken generieren.
Jetzt brauchen wir nur jemandem mit der nötigen Ermächtigung für @lerntools.org :)

Hallo @w4ts0n , hallo @tk100 , danke für eure Angebote! Vorschlag von @w4ts0n halte ich für klug. Aber wir müssen ja dann auch einen Codeberg-Konto mit dem Mailalias anlegen, damit es kein persönlicher Token wird. Hatte gehofft, man könnte wie bei Gitlab auch bei Codeberg Repo oder Organisationstoken generieren. Jetzt brauchen wir nur jemandem mit der nötigen Ermächtigung für @lerntools.org :)

Hallo @w4ts0n , hallo @tk100 ,

danke für eure Angebote! Vorschlag von @w4ts0n halte ich für klug. Aber wir müssen ja dann auch einen Codeberg-Konto mit dem Mailalias anlegen, damit es kein persönlicher Token wird. Hatte gehofft, man könnte wie bei Gitlab auch bei Codeberg Repo oder Organisationstoken generieren.
Jetzt brauchen wir nur jemandem mit der nötigen Ermächtigung für @lerntools.org :)

Das Konto für den Mailalias kann auch lokal auf der Codeberg-Instanz selber angelegt werden.

Bei den MintApps ist es so, dass ich bspw. "Anmelden via Codeberg" angeklickt habe mit diesem Account hier und dieses gemeinsam gemeinsam mit dem MintAPps-Bot-Account (direkt mal nach meiner Nachricht so angelegt) und dem Konto von @tk100 als Admin hinzugefügt.

> Hallo @w4ts0n , hallo @tk100 , > > danke für eure Angebote! Vorschlag von @w4ts0n halte ich für klug. Aber wir müssen ja dann auch einen Codeberg-Konto mit dem Mailalias anlegen, damit es kein persönlicher Token wird. Hatte gehofft, man könnte wie bei Gitlab auch bei Codeberg Repo oder Organisationstoken generieren. > Jetzt brauchen wir nur jemandem mit der nötigen Ermächtigung für @lerntools.org :) Das Konto für den Mailalias kann auch lokal auf der Codeberg-Instanz selber angelegt werden. Bei den MintApps ist es so, dass ich bspw. "Anmelden via Codeberg" angeklickt habe mit diesem Account hier und dieses gemeinsam gemeinsam mit dem MintAPps-Bot-Account (direkt mal nach meiner Nachricht so angelegt) und dem Konto von @tk100 als Admin hinzugefügt.

@markus.weingaertner kannst du die Emailadresse anlegen?

@markus.weingaertner kannst du die Emailadresse anlegen?

@markus.weingaertner kannst du die Emailadresse anlegen?

Weiterleitung oder richtige E-Mail-Adresse?

> @markus.weingaertner kannst du die Emailadresse anlegen? Weiterleitung oder richtige E-Mail-Adresse?
Member
Copy link

@markus.weingaertner kannst du die Emailadresse anlegen?

Weiterleitung oder richtige E-Mail-Adresse?

Sehr gute Frage. Bei einer Weiterleitung besteht wahrscheinlich die Gefahr, dass jemand die Benachrichtigungen zweimal erhält. Bei Konto das irgendwann das Konto vollläuft.

Beides lässt sich über Filterregeln lösen.
Ich empfehle eine Weiterleitung. Im nächsten Schritt würde mit dieser E-Mail-Adresse dann ein Codeberg-Konto angelegt werden.

> > @markus.weingaertner kannst du die Emailadresse anlegen? > > Weiterleitung oder richtige E-Mail-Adresse? Sehr gute Frage. Bei einer Weiterleitung besteht wahrscheinlich die Gefahr, dass jemand die Benachrichtigungen zweimal erhält. Bei Konto das irgendwann das Konto vollläuft. Beides lässt sich über Filterregeln lösen. Ich empfehle eine Weiterleitung. Im nächsten Schritt würde mit dieser E-Mail-Adresse dann ein Codeberg-Konto angelegt werden.
Member
Copy link

Die von @w4ts0n beschriebene Prozedur funktionierte reibunglos (Danke!):
image

Auch der Commit und push in lerntools/weblate klappt.
Synchronisieren klappt auch.

Jemand aus dem Lerntools-Team mit Repo-Adminrechte auf weblate darf gerne noch den Hook https://weblate.bubu1.eu/hooks/gitea/ hinterlegen (mit POST - ist hier beschrieben: https://docs.weblate.org/en/weblate-4.12/api.html#post--hooks-gitea- ) - @gerhardbeck ?

Wenn Du die Mail-Adresse hast, lass es mich wissen @markus.weingaertner

Die von @w4ts0n beschriebene Prozedur funktionierte reibunglos (Danke!): ![image](/attachments/ea1c7025-c9bd-48e9-9aac-d6e099ce2636) Auch der Commit und push in lerntools/weblate klappt. Synchronisieren klappt auch. Jemand aus dem Lerntools-Team mit Repo-Adminrechte auf `weblate` darf gerne noch den Hook https://weblate.bubu1.eu/hooks/gitea/ hinterlegen (mit POST - ist hier beschrieben: https://docs.weblate.org/en/weblate-4.12/api.html#post--hooks-gitea- ) - @gerhardbeck ? Wenn Du die Mail-Adresse hast, lass es mich wissen @markus.weingaertner
Member
Copy link

Stand 04.06.2022:

  • Webhook im Weblate-Repo ist hinterlegt
  • Module die eingerichtet sind:
    • Basis (main)
    • ABCD
    • Ideas
    • Survey
  • Nicht enthalten:
    • die *.md-Dateien für bspw. den Standardtemplates / E-mails.
    • die Modul-Metainformationen (title/subtitle)
  • Die Synchronisierung muss (aktuell) händisch erfolgen (Ausführen des Scripts + Push) für den Abgleich.
  • Weitere Übersetzungen sind damit möglich.

Werden weitere Module benötigt?

Stand 04.06.2022: - Webhook im Weblate-Repo ist hinterlegt - Module die eingerichtet sind: - Basis (main) - ABCD - Ideas - Survey - **Nicht enthalten**: - die \*.md-Dateien für bspw. den Standardtemplates / E-mails. - die Modul-Metainformationen (title/subtitle) - Die Synchronisierung muss (aktuell) händisch erfolgen (Ausführen des Scripts + Push) für den Abgleich. - Weitere Übersetzungen sind damit möglich. Werden weitere Module benötigt?

Ich würde eventuell noch einen Gedanken einwerfen wollen: Wäre es unter Umständen sinnvoll, das Wiki in ein separates Repo auszulagern, um es langfristig auch an Weblate anbinden zu können (Falls das ginge), um auch die Dokumentation mehrsprachig aufstellen zu können?

Was wäre deine Einschätzung dazu, @monofox ?

Ich würde eventuell noch einen Gedanken einwerfen wollen: Wäre es unter Umständen sinnvoll, das Wiki in ein separates Repo auszulagern, um es langfristig auch an Weblate anbinden zu können (Falls das ginge), um auch die Dokumentation mehrsprachig aufstellen zu können? Was wäre deine Einschätzung dazu, @monofox ?
Member
Copy link

Hallo @w4ts0n ,

das Wiki ist technisch bereits in einem separaten Repo: https://codeberg.org/lerntools/base.wiki.git. Darüber bearbeite ich bereits heute das Wiki, weil es einfacher macht, Bilder einzubinden.

Hierbei werden "markdown"-Dateien abgelegt.

Unser Hauptproblem: Weblate kommt Stand heute nur bedingt mit Markdown-Dateien klar. Das heißt der Ablauf wäre:

  1. Alle Markdown-Dateien in pot umwandeln (po4a - Einbinden in sync.js bspw.)
  2. Jede pot/Markdown-Seite generiert automatisch eine Komponente (geht via Komponentendiscovery) mit den extrahierten Strings.
  3. Nach Übersetzung müssten die entsprechenden Markdown-Dateien erzeugt werden (von pot zu markdown).

Punkt 1 und Punkt 2 ist ggf. mit der Beta-Funktion von Weblate vereinfachbar, weil man auch Plaintext-Dateien übersetzen kann.

Die grundlegende technische Voraussetzungen wären womöglich damit schon gegeben.

Dein Tipp hat mir aber gerade die Augen geöffnet, wie man die Standardtemplates aus lerntools/base#90 übersetzt bekommt 😃.

Hallo @w4ts0n , das Wiki ist technisch bereits in einem separaten Repo: `https://codeberg.org/lerntools/base.wiki.git`. Darüber bearbeite ich bereits heute das Wiki, weil es einfacher macht, Bilder einzubinden. Hierbei werden "markdown"-Dateien abgelegt. Unser Hauptproblem: Weblate kommt Stand heute nur bedingt mit Markdown-Dateien klar. Das heißt der Ablauf wäre: 1. Alle Markdown-Dateien in pot umwandeln (po4a - Einbinden in sync.js bspw.) 2. Jede pot/Markdown-Seite generiert automatisch eine Komponente (geht via Komponentendiscovery) mit den extrahierten Strings. 3. Nach Übersetzung müssten die entsprechenden Markdown-Dateien erzeugt werden (von pot zu markdown). Punkt 1 und Punkt 2 ist ggf. mit der Beta-Funktion von Weblate vereinfachbar, weil man auch Plaintext-Dateien übersetzen kann. Die grundlegende technische Voraussetzungen wären womöglich damit schon gegeben. Dein Tipp hat mir aber gerade die Augen geöffnet, wie man die Standardtemplates aus lerntools/base#90 übersetzt bekommt 😃.

@monofox

Hallo @w4ts0n ,

das Wiki ist technisch bereits in einem separaten Repo: https://codeberg.org/lerntools/base.wiki.git. Darüber bearbeite ich bereits heute das Wiki, weil es einfacher macht, Bilder einzubinden.

Hierbei werden "markdown"-Dateien abgelegt.

Unser Hauptproblem: Weblate kommt Stand heute nur bedingt mit Markdown-Dateien klar. Das heißt der Ablauf wäre:

  1. Alle Markdown-Dateien in pot umwandeln (po4a - Einbinden in sync.js bspw.)
  2. Jede pot/Markdown-Seite generiert automatisch eine Komponente (geht via Komponentendiscovery) mit den extrahierten Strings.
  3. Nach Übersetzung müssten die entsprechenden Markdown-Dateien erzeugt werden (von pot zu markdown).

Punkt 1 und Punkt 2 ist ggf. mit der Beta-Funktion von Weblate vereinfachbar, weil man auch Plaintext-Dateien übersetzen kann.

Die grundlegende technische Voraussetzungen wären womöglich damit schon gegeben.

Dein Tipp hat mir aber gerade die Augen geöffnet, wie man die Standardtemplates aus lerntools/base#90 übersetzt bekommt 😃.

Gerne, freut mich, wenn ich helfen konnte. :)

@monofox >Hallo @w4ts0n , > >das Wiki ist technisch bereits in einem separaten Repo: `https://codeberg.org/lerntools/base.wiki.git`. Darüber bearbeite ich bereits heute das Wiki, weil es einfacher macht, Bilder einzubinden. > >Hierbei werden "markdown"-Dateien abgelegt. > >Unser Hauptproblem: Weblate kommt Stand heute nur bedingt mit Markdown-Dateien klar. Das heißt der Ablauf wäre: > 1. Alle Markdown-Dateien in pot umwandeln (po4a - Einbinden in sync.js bspw.) > 2. Jede pot/Markdown-Seite generiert automatisch eine Komponente (geht via Komponentendiscovery) mit den extrahierten Strings. > 3. Nach Übersetzung müssten die entsprechenden Markdown-Dateien erzeugt werden (von pot zu markdown). > >Punkt 1 und Punkt 2 ist ggf. mit der Beta-Funktion von Weblate vereinfachbar, weil man auch Plaintext-Dateien übersetzen kann. > >Die grundlegende technische Voraussetzungen wären womöglich damit schon gegeben. > >Dein Tipp hat mir aber gerade die Augen geöffnet, wie man die Standardtemplates aus lerntools/base#90 übersetzt bekommt 😃. Gerne, freut mich, wenn ich helfen konnte. :)

Wäre es sinnvoll eine Feature Request ans Weblate-Projekt zu stellen, womit Markdown-Files auch einfach mitübersetzt werden könnten?

Wäre es sinnvoll eine Feature Request ans Weblate-Projekt zu stellen, womit Markdown-Files auch einfach mitübersetzt werden könnten?
Member
Copy link

Wäre es sinnvoll eine Feature Request ans Weblate-Projekt zu stellen, womit Markdown-Files auch einfach mitübersetzt werden könnten?

Gibt es schon seit 2019: https://github.com/WeblateOrg/weblate/issues/3106

> Wäre es sinnvoll eine Feature Request ans Weblate-Projekt zu stellen, womit Markdown-Files auch einfach mitübersetzt werden könnten? Gibt es schon seit 2019: https://github.com/WeblateOrg/weblate/issues/3106
Member
Copy link

Wenn wir die Markdown-Dateien über Weblate übersetzbar machen würden, sähe das so aus:

image

Also jede Markdown-Datei wäre eine eigenständige Übersetzungskomponente. Das geht auch automatisiert von der Komponentenanlage. Allerdings macht es das ganze natürlich unübersichtlich.

Die Alternative wäre ein Multiline-String für die Gesamtmarkdown. Macht das Übersetzen natürlich schwieriger, weil es dann eben auch größere, längere Texte sein könnten.

Wie ist eure Meinung hierzu? Sollten wir das so machen?

Wenn wir die Markdown-Dateien über Weblate übersetzbar machen würden, sähe das so aus: ![image](/attachments/1557845d-1ce9-4a70-91f6-685be3612f3c) Also jede Markdown-Datei wäre eine eigenständige Übersetzungskomponente. Das geht auch automatisiert von der Komponentenanlage. Allerdings macht es das ganze natürlich unübersichtlich. Die Alternative wäre ein Multiline-String für die Gesamtmarkdown. Macht das Übersetzen natürlich schwieriger, weil es dann eben auch größere, längere Texte sein könnten. Wie ist eure Meinung hierzu? Sollten wir das so machen?

Ich wäre für die Variante mit den mehreren

Ich wäre für die Variante mit den mehreren
Member
Copy link

Ich wäre für die Variante mit den mehreren

Mehrere Zeilen in einem Multiline-String einer Komponente oder Mehrere Komponenten?

> Ich wäre für die Variante mit den mehreren Mehrere Zeilen in einem Multiline-String einer Komponente oder Mehrere Komponenten?
Member
Copy link

Was beim Aktivieren von Sprachen auffällt: die Modul-Metadaten werden noch nicht automatisch aktualisiert (wurde ja im ersten Schritt herausgenommen)!

Was beim Aktivieren von Sprachen auffällt: die Modul-Metadaten werden noch nicht automatisch aktualisiert (wurde ja im ersten Schritt herausgenommen)!
Member
Copy link

Was beim Aktivieren von Sprachen auffällt: die Modul-Metadaten werden noch nicht automatisch aktualisiert (wurde ja im ersten Schritt herausgenommen)!

Erledigt. Es bedarf jetzt je Modul in der locales/Index.json ein "title" und ein "subtitle"-Element. Dieser wird automatisch in der config.js eingelesen.

> Was beim Aktivieren von Sprachen auffällt: die Modul-Metadaten werden noch nicht automatisch aktualisiert (wurde ja im ersten Schritt herausgenommen)! Erledigt. Es bedarf jetzt je Modul in der locales/Index.json ein "title" und ein "subtitle"-Element. Dieser wird automatisch in der config.js eingelesen.

Was ist jetzt hier noch offen?

Was ist jetzt hier noch offen?
Member
Copy link

Nur noch: #93 (comment) (Kommentar 654099)

Nur noch: https://codeberg.org/lerntools/base/issues/93#issuecomment-654099 (Kommentar 654099)
Member
Copy link

Aktueller Stand:

  • die text/ und templates/-Sachen tauchen jetzt auch automatisch im Rahmen der Autodiscovery im Weblate auf. Alle Texte werden damit entsprechend über Weblate zum Übersetzen angeboten.
  • Plaintextdateien zu übersetzen ist noch ein wenig spannend, wenn die Sprachdatei quasi noch leer ist (also mit Einführung der Sprache eigentlich immer). Hier sind eventuell noch Optimierungen möglich.
  • Synchronisierung ist im sync.js im lerntools/weblate Repository abgebildet.
  • Einige Punkte, die @gerhardbeck beim Testen jetzt aufgefallen sind, werden wir noch prüfen müssen.
Aktueller Stand: - die text/ und templates/-Sachen tauchen jetzt auch automatisch im Rahmen der Autodiscovery im Weblate auf. Alle Texte werden damit entsprechend über Weblate zum Übersetzen angeboten. - Plaintextdateien zu übersetzen ist noch ein wenig spannend, wenn die Sprachdatei quasi noch leer ist (also mit Einführung der Sprache eigentlich immer). Hier sind eventuell noch Optimierungen möglich. - Synchronisierung ist im sync.js im lerntools/weblate Repository abgebildet. - Einige Punkte, die @gerhardbeck beim Testen jetzt aufgefallen sind, werden wir noch prüfen müssen.

Korrektur: bei neuen Sprachen ist nicht automatisch leer, sondern Deutsch vorbelegt. Darf man für das automatische Übersetzen nur nicht löschen...

Korrektur: bei neuen Sprachen ist nicht automatisch leer, sondern Deutsch vorbelegt. Darf man für das automatische Übersetzen nur nicht löschen...
Member
Copy link

Aktueller Stand: alle Punkte abgebildet.
Ticket geschlossen

Einige Sonderfälle werden noch intern gesammelt.

Des Weiteren wurde das Wiki aktualisiert - auch, wie Screenshots bereitgestellt werden kann.

Aktueller Stand: alle Punkte abgebildet. Ticket geschlossen Einige Sonderfälle werden noch [intern gesammelt](https://codeberg.org/lerntools/interneBesprechungen/issues/24). Des Weiteren wurde das [Wiki](https://codeberg.org/lerntools/base/wiki) aktualisiert - auch, wie Screenshots bereitgestellt werden kann.
Sign in to join this conversation.
No Branch/Tag specified
main
dev
vue3
feature/ticket_117
weblate
master
experimental
v.0.9.1
v.0.9
v.0.8.2
v.0.8.1
v.0.8.0
v.0.7.0
0.7
v0.6.0
v0.30
v0.2.0
v0.12
v0.11
v0.1
Labels
Clear labels
Kind/Breaking
Breaking change that won't be backward compatible
Kind/Bug
Something is not working
Kind/Documentation
Documentation changes
Kind/Enhancement
Improve existing functionality
Kind/Feature
New functionality
Kind/Security
This is security issue
Kind/Testing
Issue or pull request related to testing
Priority
Critical
The priority is critical
Priority
High
The priority is high
Priority
Low
The priority is low
Priority
Medium
The priority is medium
Reviewed
Confirmed
Issue has been confirmed
Reviewed
Duplicate
This issue or pull request already exists
Reviewed
Invalid
Invalid issue
Reviewed
Won't Fix
This issue won't be fixed
Status
Abandoned
Somebody has started to work on this but abandoned work
Status
Blocked
Something is blocking this issue or pull request
Status
Need More Info
Feedback is required to reproduce issue or to continue work
Kind: Enhancement
improvement of a feature
Kind: Feature
Something totally new
Kind: Interesting for Wiki
to be saved in the wiki
Kind: invalid
Something is wrong
Kind: Question
More information is needed
Kind: Security
Relevant for security
Kind:bug
Something is not working
Priority: High
Priority: Low
Priority: Medium
Status: Contribution welcome
Contributions are very welcome, get started here
Status: Duplicate
This issue or pull request already exists
Status: External problem
There is an external problem
Status: Help wanted
Need some help
Status: In progress
Someone's working on it
Status: In review
we're testing a possible solution
Status: next release
All tested and ready for the next release
Status: Starters
This is a good task to start helping lerntools
Status: Tests neededd
Need some tests for locating the problem
Status: won't fix
This won't be fixed
vue3
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
5 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
lerntools/base#93
Reference in a new issue
lerntools/base
No description provided.
Delete branch "%!s()"

Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?