Wikimedia – Sprach- und Produktlokalisierung/Überarbeitung des ULS
Die universelle Sprachauswahl (Universal Language Selector, ULS) ist eine MediaWiki-Erweiterung. Zu ihren Hauptfunktionen gehören eine Sprachauswahl mit Suchfunktion, die Unterstützung von Webfonts und Eingabemethoden sowie Einstiegsmöglichkeiten zum Ändern der Benutzersprache, zum Aufrufen anderer Sprachprojekte und zum Anpassen der Spracheinstellungen.
ULS war eine der ersten Erweiterungen, die vom damaligen Language-Team (heute Language and Product Localization, LPL) entwickelt wurden. Im Laufe der Zeit ist die Wartung des veralteten Codes immer schwieriger geworden. Jede Änderung birgt ein hohes Risiko für Regressionen, was Verbesserungen oder die Entwicklung neuer Funktionen erschwert. Darüber hinaus leidet ULS unter Leistungsproblemen und bietet keine angemessene Unterstützung für den Dunkelmodus.
ULS wird weiterhin technische Altlasten produzieren und sich vom Rest der Benutzererfahrung auf unseren Websites abheben, sofern keine vollständige Neuprogrammierung erfolgt. Da das Codex-Designsystem nun stabil läuft, sind wir der Meinung, dass jetzt der richtige Zeitpunkt für die Modernisierung von ULS gekommen ist.
Projektziele
- Vereinfachung. Veraltete Abhängigkeiten entfernen. Das Codex-Designsystem und modernes JavaScript verwenden. Native JavaScript- und CSS-Funktionen nutzen, die zuvor nicht verfügbar waren. Dies erleichtert die Wartung und ermöglicht die Entwicklung neuer Funktionen in der Zukunft.
- Einheitliches Erlebnis. Da ULS derzeit in einer Erweiterung enthalten ist, kann der MediaWiki-Kern darauf nicht zurückgreifen, und es ist für andere Erweiterungen schwierig, darauf zuzugreifen. Die neue Version wird im MediaWiki-Kern verfügbar sein und sollte überall in MediaWiki, einschließlich mobiler Skins, als Standard-Sprachauswahl dienen, um ein einheitliches Benutzererlebnis zu gewährleisten.
- Erweiterbarkeit. Es wird eine übersichtliche und leistungsstarke Möglichkeit geben, ULS zu erweitern, um Schnittstellen zu anderen Tools bereitzustellen oder sein Verhalten anzupassen.
- Modernes Erlebnis. Dank Codex und der Nutzung nativer Browserfunktionen erwarten wir Verbesserungen bei der Barrierefreiheit und der Leistung. Wir werden die standardmäßige Unterstützung für den Dunkelmodus erhalten.
Keine Ziele
- 1:1-Kopie des bestehenden ULS. Wir möchten die Erkenntnisse aus über einem Jahrzehnt nutzen und Änderungen vornehmen, die mit den Projektzielen im Einklang stehen. Dies ist eine Gelegenheit, Dinge besser zu gestalten und Funktionen zu entfernen, die nicht mehr gerechtfertigt sind.
- Modernisierung von Webfonts. Webfonts werden zwar in geringem Umfang unterstützt, eine umfassendere Neugestaltung ist jedoch nicht vorgesehen. Es besteht ein wachsender Bedarf an der Unterstützung von Webfonts, der über die reine Sprachunterstützung hinausgeht.
- Aktualisierung der Verwendung von ULS außerhalb von MediaWiki. Externe Software kann vorerst weiterhin jquery.uls verwenden, obwohl sich dieses bereits im reinen Wartungsmodus befindet. Wir hoffen – können dies jedoch nicht versprechen –, dass die neue Sprachauswahlkomponente auch außerhalb von MediaWiki genutzt werden kann, um einen Migrationspfad weg von jquery.uls zu bieten.
Ausführungsplan
Phase 0: Planung (Februar–Oktober 2025)
Wir haben uns im Vorfeld Zeit genommen, um den Umfang, den Umsetzungsplan, die Abhängigkeiten und die Risiken zu klären. Das Ergebnis ist dieser Plan.
Phase 1: Neue Komponente zur Sprachauswahl (November–Dezember 2025)
Wir werden eine neue, auf Codex basierende Komponente zur Sprachauswahl implementieren. Diese Komponente wird entweder direkt oder über eine Bibliothek in den MediaWiki-Kern integriert.
Die neue Sprachauswahlkomponente verfügt über ein responsives Design mit Sprachsuche. Sie unterstützt die Auswahl einer oder mehrerer Sprachen und bietet eine Fallback-Lösung ohne JavaScript.
Um die Sprachsuche zu unterstützen, werden wir die Sprachsuch-API in den MediaWiki-Kern integrieren.
Die Sprachauswahl hängt von der Bibliothek „language-data“ ab. Wir werden diese Bibliothek als neue Abhängigkeit in den MediaWiki-Kern integrieren und sowohl PHP- als auch JavaScript-Schnittstellen für den Zugriff darauf bereitstellen. Dies sind vorbereitende Maßnahmen, damit andere Codeabschnitte damit beginnen können, von „$.uls.data“ weg zu migrieren.
Wir werden die bestehenden Sprachauswahlfunktionen im Kern und in ausgewählten Erweiterungen (zumindest in denen, die vom LPL-Team gepflegt werden) ersetzen. Die zentralen Einstiegspunkte von ULS werden wir vorerst nicht antasten. Dies wird uns helfen, die Kernfunktionalität auf risikominimierte Weise zu validieren und zu optimieren. Die ULS-Erweiterung bleibt mit minimalen Änderungen verfügbar.
Phase 2: Hauptzugangspunkt für den Desktop (~Januar–Juni 2025; ausreichend Zeit für eine schrittweise Einführung vorgesehen)
Der wichtigste Einstiegspunkt auf dem Desktop ist die gut sichtbare Schaltfläche für die Sprachlinks („X Sprachen“) im Skin Vector 2022. Wir werden das Verhalten der Einstiegsseite in verschiedenen Anwendungsfällen untersuchen, die von der Verfügbarkeit von Wikibase, Content Translation, Sprachvarianten und den Translate-Erweiterungen abhängen. Das bedeutet, dass die Beschriftung der Schaltfläche in verschiedenen Situationen unterschiedlich ausfällt oder gar nicht vorhanden ist.
Die bestehenden Einstiegspunkte „Content Translation“, „Translate“ und „Wikibase“ innerhalb des ULS-Hauptzugangs werden aktualisiert, um die neue Version zu unterstützen.
Wir werden nur das Nötigste tun, um sicherzustellen, dass Webfonts und Eingabemethoden weiterhin unterstützt werden und zugänglich bleiben.
Um eine schrittweise Einführung zu ermöglichen, wird die neue Version über ein Feature-Flag gesteuert. Sie kann für einen begrenzten Zeitraum auch von einer Beta-Funktion oder einer Benutzereinstellung abhängig sein. Die vorläufige Reihenfolge der schrittweisen Einführung lautet:
- translatewiki.net
- Pilot-Wikis (noch zu bestimmen) als Beta-Funktion für frühzeitiges Feedback
- Spezialwikis
- Pilot-Wikis
- restliche Projekte, außer Wikipedia
- Alle Wikipedias
Wir betrachten dies auch als Gelegenheit, die Sprachauswahl für die übersetzbare Seite (der Erweiterung „Translate“) vom Seiteninhaltsbereich an den Haupteinstiegspunkt zu verlagern. Dies ist technisch bereits möglich, erfordert jedoch Rücksprache mit der Community.
Phase 3: Vereinheitlichung und Auslaufphase (~Februar–Juni 2026; die Arbeiten können bereits vor Abschluss der Einführung beginnen)
Wir werden die Unterstützung für weitere Skins und die mobile Website aktualisieren, damit diese die neue Sprachauswahl nutzen können. Der alte ULS-Code wird als veraltet markiert, und wir werden die Betreuer von Code, der das alte ULS verwendet, kontaktieren, um sie um ihre Mitarbeit bei der Migration zu bitten und sie dabei zu unterstützen. Es gibt zahlreiche Erweiterungen, Helferlein und Benutzerskripte. Einige davon enthalten „jquery.uls“ als Bundle, andere nutzen es über die ULS-Erweiterung.
Wir planen, den ungenutzten ULS-Code zu entfernen, sobald MediaWiki 1.46 und das dazugehörige MediaWiki Language Extension Bundle veröffentlicht worden sind.
Phase 4 (erweitertes Ziel): Überarbeitung der Eingabemethoden (sofern nach Phase 3 noch Zeit übrig ist)
Wir werden die Bibliothek „jquery.uls“ so umschreiben, dass sie aus reinem Vanilla-JavaScript besteht, und die MediaWiki-Integration neu programmieren.