Files
Florian Zumpe d3311cce06
Sonarqube Scanner / Prepare environment (push) Successful in 7s
Sonarqube Scanner / Build and test (push) Successful in 30s
Sonarqube Scanner / SonarQube analysis (push) Successful in 1m6s
Sonarqube Scanner / Deploy to Server (push) Successful in 6s
insert copyright headers for images
2026-10-04 10:14:40 +02:00

3.0 KiB

Texte und Sprachen

Die Sprachdateien public/js/texts-de.js und public/js/texts-en.js enthalten jeweils die generische Klasse WegwichtelTexts. Beide Dateien verwenden dieselben Schlüssel und registrieren ihren Katalog mit der eigenen Sprachkennung in Wegwichtel.TextCatalogs. Es gibt keine sprachabhängigen Klassennamen.

Die App lädt beide Kataloge vor i18n.js. Beim Start wird die erste unterstützte Sprache aus navigator.languages gewählt; ohne diese Liste wird navigator.language verwendet. Regionale Varianten wie en-GB oder de-DE verwenden den passenden Grundkatalog. Passt keine Sprache, wird der erste geladene Katalog verwendet: in der App Deutsch. Einzelne fehlende Übersetzungen fallen ebenfalls auf diesen Katalog zurück. Wird nur eine Sprachdatei eingebunden, funktioniert sie allein und bildet den Fallback.

Verwendung

Schlüssel beschreiben die Funktion, nicht den Wortlaut. Zusammengehörige Texte liegen in verschachtelten Abschnitten; der Aufruf verwendet Punkte als Trennung.

Wegwichtel.I18n.t('app.no-route');
Wegwichtel.I18n.t('bootstrap-loader.error.start-error');
Wegwichtel.I18n.t(`bootstrap-loader.steps.${step}`);
Wegwichtel.I18n.t('media.image.count', { count: 2 });

bootstrap-loader.steps ist nach den stabilen Schrittkennungen aufgebaut: storage, jquery, jquery-ui, modules, server, routes und location. Die Zuordnung benötigt keine zusätzliche Liste von Nachrichtenschlüsseln.

HTML verwendet data-i18n, data-i18n-title, data-i18n-aria-label, data-i18n-placeholder und data-i18n-alt. Deutsche Standardtexte werden mit node scripts/localize-html.js aus dem Katalog ins HTML übernommen. Dadurch stehen Beschriftungen bereits vor dem Laden der Skripte bereit. Nach Änderungen die erzeugte public/index.html mit ins Repository übernehmen.

Impressum, Datenschutzerklärung und Nutzungsvereinbarung sind davon ausgenommen. Ihre rechtlichen Texte und Kontaktangaben stehen ausschließlich statisch auf Deutsch in public/index.html, ohne i18n-Attribute und mit lang="de" an den rechtlichen Artikeln. Änderungen an diesen Angaben direkt im HTML vornehmen. Auch die zugehörigen Dialogüberschriften bleiben auf Deutsch. Die Menüeinträge und die übrige Bedienoberfläche werden weiterhin übersetzt.

Zum gezielten Prüfen kann Wegwichtel.I18n.setLanguage('en') aufgerufen werden. Das aktualisiert feste Beschriftungen. Bereits aufgebaute dynamische Ansichten müssen neu aufgebaut werden; die automatische Startauswahl erfolgt vor ihrem ersten Aufbau. Ein sichtbarer Sprachschalter ist nicht enthalten.

Die Tests prüfen beide Kataloge, Platzhalter und Pluralformen, Browserpräferenzen, den Betrieb mit nur einer Sprachdatei, deutsche HTML-Standardtexte und englische App-Meldungen. Nutzerinhalte wie Streckennamen werden nicht übersetzt.

SonarQube prüft auch die Sprachdateien auf Probleme und Testabdeckung. Nur die Duplikaterkennung nimmt public/js/texts-*.js aus: Übersetzungskataloge müssen dieselbe Struktur haben und sind keine mehrfach implementierte Programmlogik.