- Updated the create-german-for-bisaya-course-content.js script to improve lesson pattern retrieval by introducing a new function for generating a lesson pattern pool. - Added new exercises for various topics including 'Wohnung & Nachbarn', 'Besuch empfangen', 'Arzt, Apotheke, Termin', and 'Amt, Dokumente, Anmeldung', enhancing practical language skills for learners. - Improved localization by integrating translation keys for various UI elements and error messages across multiple components, ensuring a consistent user experience in both German and Bisaya. - Enhanced the main.js file to recognize Bisaya language preferences in browser settings, improving accessibility for users.
12 KiB
Bisaya-Lokalisierung der Gesamtwebseite: Umsetzungsdokument
1. Ziel
Die gesamte Webseite soll zusätzlich in Bisaya verfügbar werden, nicht nur einzelne Sprachkurse.
Das Ziel ist:
- die komplette Produktoberfläche für Bisaya-Nutzer verständlich zu machen
- Hauptnavigation, Formulare, Dialoge, Fehlermeldungen und Lernbereiche konsistent zu übersetzen
- vorhandene i18n-Struktur weiterzuverwenden statt einen Sonderpfad zu bauen
- die Qualität der Übersetzungen hoch zu halten, besonders bei Alltagssprache und sprachdidaktischen Inhalten
Das ist kein reines JSON-Kopieren. Es ist eine Kombination aus:
- technischer i18n-Erweiterung
- Audit von hartcodierten Strings
- kontrollierter Übersetzungsarbeit
- fachlicher QA
2. Ist-Stand
Die aktuelle Lokalisierung ist in frontend/src/i18n/index.js zentral verdrahtet.
Derzeit existieren drei Web-Locales:
deenes
Die Struktur ist modulartig aufgebaut:
general.jsonheader.jsonnavigation.jsonhome.jsonchat.jsonsettings.jsonsocialnetwork.jsonfalukant.json- weitere Funktionsbereiche
Die bestehende Struktur ist grundsätzlich gut genug für eine vierte Sprache.
Der Haken ist:
- es gibt weiterhin viele hartcodierte Texte in Vue-Komponenten
- manche Bereiche nutzen bereits sauber
$t(...) - andere mischen i18n und direkte Strings
- einige
tr:-Muster umgehen die normale Komponentensprache
Für Bisaya reicht es deshalb nicht, nur neue Locale-Dateien zu erzeugen.
3. Sprachentscheidung
3.1 Locale-Code
Empfehlung:
- Web-Locale-Code:
ceb
Begründung:
cebist der etablierte technische Code für Cebuano/Bisaya- besser anschlussfähig an Standards und spätere Integrationen
- klarer als ein frei erfundener Key wie
bis
3.2 Sichtbarer Sprachname
Empfehlung im UI:
Bisaya
Optional im Admin-/Technik-Kontext:
Bisaya (Cebuano)
3.3 Sprachstil
Der Stil darf nicht zu formal oder zu schulbuchartig sein.
Empfohlen:
- alltagsnah
- warm
- direkt verständlich
- kurze Sätze
- neutrale, breit verständliche Bisaya-Formulierungen
Nicht empfohlen:
- künstlich hochsprachliche Formulierungen
- unnötig spanisch geprägte oder regionale Spezialformen, wenn einfachere Alternativen reichen
- gemischtes Englisch-Bisaya ohne klare Regel
4. Produktentscheidung
Die Bisaya-Lokalisierung wird als vollwertige vierte Oberfläche behandelt, nicht als Teil des Sprachkurs-Features.
Das heißt:
- Bisaya ist globale UI-Sprache
- dieselbe Sprache kann zusätzlich als Lernsprache in Kursen vorkommen
- Website-Locale und Sprachkursinhalt sind fachlich getrennt
Wichtig:
Website-Bisayaist Produkt-LokalisierungBisaya-Sprachkursist Lerninhalt
Das muss technisch und redaktionell getrennt bleiben.
5. Hauptprobleme, die vor der Übersetzung geklärt werden müssen
5.1 Hartcodierte Strings
Die größte technische Altlast sind direkte Texte in Komponenten.
Beispiele aus dem aktuellen Frontend:
- Abschnittslabels in Komponenten wie AppSectionBar.vue
- direkte Buttontexte und Statusmeldungen in Views
- Fehlermeldungen, die als deutscher Klartext im Code stehen
- teils auch Titel, Platzhalter und Hilfetexte
Konsequenz:
- vor oder während der Bisaya-Einführung müssen diese Texte systematisch in i18n überführt werden
5.2 Fallback-Logik
Aktuell ist fallbackLocale: 'de' gesetzt.
Für Bisaya ist das kurzfristig okay, aber fachlich nicht ideal.
Empfehlung:
- während der Einführung: globaler Fallback kann vorerst
debleiben - mittelfristig: für
cebbevorzugt aufenoder spezifisches Ketten-Fallback umstellen
Zielbild:
fallbackLocale: {
ceb: ['en', 'de'],
default: ['de']
}
So landet ein Bisaya-Nutzer bei fehlenden Schlüsseln nicht sofort in Deutsch.
5.3 Übersetzungstiefe
Nicht alles muss in einem Schritt übersetzt werden.
Wir brauchen klare Ebenen:
- Shell und Navigation zuerst
- Hauptnutzungspfade danach
- Spezialbereiche später
6. Übersetzungsprinzipien
6.1 Quelle
Primäre Übersetzungsquelle sollte de sein.
Begründung:
- das Produkt wird aktuell stark deutsch geführt
- viele Texte sind fachlich auf Deutsch zuerst gepflegt
- so vermeiden wir doppelte Drift zwischen
deunden
6.2 Glossar
Vor dem Massenübersetzen braucht es ein verbindliches Glossar.
Pflichtbegriffe:
- Anmeldung
- Einstellungen
- Freunde
- Nachrichten
- Chat
- Kurs
- Lektion
- Übung
- Wiederholung
- Abschluss
- Senden
- Löschen
- Speichern
- Suche
- Zurück
- Weiter
Zusätzlich fachliche Glossare für:
- Vokabeltrainer
- Falukant
- Socialnetwork
- Moderation
- Erotik-Bereich
6.3 Nicht alles wörtlich
Die beste Bisaya-UI ist nicht immer die wörtlichste.
Beispiel:
- kurze, handlungsnahe Buttons sind wichtiger als exakte 1:1-Übertragung
- Hilfetexte dürfen freier formuliert werden, solange der Zweck gleich bleibt
6.4 Konsistenzregeln
Es muss pro Begriff genau eine Standardform geben, außer es gibt einen klaren Kontextgrund.
Beispiel:
Weiternicht an einer Stelle frei übersetzen und an anderer nur halb Englisch lassenLektionundKursnicht ständig unterschiedlich umschreiben
7. Rollout-Phasen
7.1 Phase A: Technische Basis
Ziel:
cebals viertes Locale technisch einführen
Umfang:
- neue Locale-Dateien unter
frontend/src/i18n/locales/ceb/ - Ergänzung in index.js
- Sprachumschalter auf
ceberweitern - Store- und Default-Sprachlogik prüfen
Ergebnis:
- die App kann Bisaya als UI-Sprache laden
- zunächst mit vielen Fallbacks, aber technisch sauber
7.2 Phase B: Shell und globale Oberfläche
Ziel:
- die Seite fühlt sich sofort als Bisaya-Oberfläche an
Umfang:
general.jsonheader.jsonnavigation.jsonmessage.jsonerror.json
Zusätzlich:
- hartcodierte Hauptnavigationen in Komponenten in i18n überführen
Ergebnis:
- Header, Footer, Navigation, Standarddialoge, Basisaktionen und Fehlermeldungen sind in Bisaya
7.3 Phase C: Einstiegspfade
Ziel:
- zentrale Nutzungspfade vollständig lokalisieren
Umfang:
home.jsonregister.jsonactivate.jsonpasswordReset.jsonsettings.json- allgemeine No-Login-/Login-Flows
Ergebnis:
- neue Nutzer können die Plattform in Bisaya betreten und bedienen
7.4 Phase D: Socialnetwork und Sprachlernen
Ziel:
- Hauptanwendungsbereich für Community und Lernen abdecken
Umfang:
socialnetwork.jsonfriends.json- Vokabeltrainer-Views
- Sprachkurs-Views
- Such- und Dialogflächen im Social-Bereich
Wichtig:
- Sprachlerntexte im Kurs selbst nicht blind mitsynchronisieren
- UI-Texte ja, Lerninhalte separat prüfen
7.5 Phase E: Falukant und Spezialbereiche
Ziel:
- komplexe Produktmodule sauber nachziehen
Umfang:
falukant.jsonblog.jsonchat.jsonminigames.json- Admin-Bereiche optional später
Hinweis:
- Falukant ist textlich sehr groß und fachlich komplex
- dafür braucht es gesonderte QA
8. Technische Umsetzung
8.1 Neue Locale-Dateien
Geplante Struktur:
frontend/src/i18n/locales/ceb/
activate.json
admin.json
blog.json
chat.json
error.json
falukant.json
friends.json
general.json
header.json
home.json
message.json
minigames.json
navigation.json
passwordReset.json
personal.json
register.json
settings.json
socialnetwork.json
8.2 Import in i18n
In frontend/src/i18n/index.js:
- alle
ceb-Dateien importieren - vierten
messages.ceb-Block ergänzen - Fallback-Regel ggf. modernisieren
8.3 Sprachwahl im Store
In frontend/src/store/index.js:
setLanguagemusscebakzeptieren- Browser-Spracherkennung bleibt vorerst
de/en, außer wir wollencebaktiv auch automatisch setzen
Empfehlung:
- Auto-Default nicht auf
ceb - Bisaya bewusst auswählbar machen
8.4 UI-Auswahl erweitern
Komponenten wie:
müssen ceb als auswählbare Sprache bekommen.
9. Audit von Nicht-i18n-Texten
Vor der Vollübersetzung braucht es einen String-Audit.
Kategorien:
- komplett hartcodierte Texte
- gemischte Texte mit Teil-i18n
- technische Fehlermeldungen
- Admin-/Debugtexte, die bewusst vorerst unübersetzt bleiben dürfen
Besonders kritisch:
- AppSectionBar.vue
- Views mit hero-texten und Buttons
- direkte Dialogtitel
- direkte Success-/Error-Meldungen in JS-Dateien
Empfehlung:
- zuerst Audit-Backlog erzeugen
- dann Bereich für Bereich in i18n ziehen
10. Übersetzungsworkflow
10.1 Empfohlener Ablauf pro Datei
- deutsche Quelldatei nehmen
- Schlüsselstruktur unverändert lassen
- Bisaya-Datei anlegen
- problematische Begriffe mit Glossar abgleichen
- UI-Stichprobe im echten Produkt machen
10.2 Qualitätssicherung
Jede größere Datei braucht:
- formale Prüfung: alle Keys vorhanden
- Produktprüfung: Text passt im Layout
- Sprachprüfung: natürliches Bisaya
- Kontextprüfung: Button- und Fehlermeldungstexte klingen im UI sinnvoll
10.3 Platzhalter und Variablen
Besondere Aufmerksamkeit für:
{count}{minutes}{title}{name}- plural-/choice-nahe Muster
Bisaya-Übersetzungen müssen Variablen und Platzhalter exakt beibehalten.
11. Inhaltliche Risiken
11.1 Falukant
Falukant hat viele produktinterne Begriffe.
Risiko:
- zu direkte Übersetzung zerstört die interne Fachsprache
Empfehlung:
- einige Begriffe bewusst nicht übersetzen
- stattdessen mit konsistenten Lehnformen arbeiten
11.2 Sprachkurs-Bereich
Risiko:
- UI wird lokalisiert, Lerninhalt aber versehentlich mitübersetzt, obwohl er als Kursmaterial bestehen bleiben soll
Empfehlung:
- klare Trennung zwischen:
- UI-Text
- Kursinhalt
- Vokabel-/Satzmaterial
11.3 Mischnutzung Deutsch/Bisaya
Viele Nutzer könnten Deutsch lernen und gleichzeitig die Website in Bisaya benutzen.
Das ist erlaubt, aber nur wenn:
- UI-Lokalisierung stabil ist
- Kursinhalt nicht durcheinandergerät
12. Priorisierte Umsetzung
Empfohlene Reihenfolge:
cebtechnisch einführen- Sprachumschalter erweitern
general/header/navigation/message/error- hartcodierte Shell-Texte bereinigen
settings/home/register/passwordResetsocialnetwork/friends- Vokabeltrainer- und Kurs-UI
- Chat/Blog/Minigames
- Falukant
- Admin-Bereich optional zuletzt
13. Definition von "fertig"
Die Bisaya-Weblokalisierung ist erst dann wirklich fertig, wenn:
cebals Sprache global auswählbar ist- Hauptnavigation und Standardsystemtexte lokalisiert sind
- zentrale Nutzerflüsse ohne Deutsch funktionieren
- Sprachkurs-UI sauber lokalisiert ist
- Falukant und Spezialmodule zumindest konsistent oder bewusst ausgeklammert sind
- fehlende Keys systematisch kontrolliert werden
14. Konkrete nächste technische Phase
Die sinnvolle erste echte Bauphase ist:
Phase 1
frontend/src/i18n/locales/ceb/anlegenindex.jsfürceberweiternSettingsWidget.vueSprachwahl erweiternAppSectionBar.vueund vergleichbare Shell-Komponenten in i18n ziehengeneral/header/navigation/message/errorauf Bisaya anlegen
Erst danach lohnt es sich, größere Produktbereiche wie Socialnetwork oder Falukant vollständig zu übersetzen.
15. Ergebnis
Die Website in Bisaya zu lokalisieren ist machbar und passt gut zur bestehenden Struktur, aber nur, wenn wir es als echtes Produktprojekt behandeln.
Die richtige Reihenfolge ist:
- erst technische Sprachbasis
- dann Shell und Kernpfade
- dann die großen Module
- parallel dazu Audit und Bereinigung harter Strings
So entsteht keine halbfertige vierte Sprache, sondern eine wirklich benutzbare Bisaya-Oberfläche.