Lokalisierung
mdui verwendet standardmäßig intern Englisch. Wenn Sie eine andere Sprache verwenden möchten, müssen Sie eine Mehrsprachenkonfiguration vornehmen.
Verwendung
mdui bietet drei Funktionen für die Mehrsprachenunterstützung:
loadLocale: Lädt ein Sprachpaket. Das Argument ist eine Funktion, die einen Sprachcode als Parameter erhält und ein Promise zurückgibt. Wenn das Sprachpaket geladen ist, wird das Promise mit dem entsprechenden Sprachpaket aufgelöst. Stellen Sie sicher, dass Sie diese Funktion in der Einstiegsdatei Ihres Projekts aufrufen.setLocale: Wechselt zu einer bestimmten Sprache. Das Argument ist der neue Sprachcode. Der Rückgabewert ist ein Promise, das aufgelöst wird, sobald das neue Sprachpaket geladen ist.getLocale: Gibt den aktuellen Sprachcode zurück.
Ein Beispiel:
import { loadLocale } from 'mdui/functions/loadLocale.js';
import { setLocale } from 'mdui/functions/setLocale.js';
import { getLocale } from 'mdui/functions/getLocale.js';
// Rufen Sie loadLocale am Projekteinstiegspunkt auf, um Sprachpakete zu laden
loadLocale((locale) => import(`../node_modules/mdui/locales/${locale}.js`));
// Rufen Sie diese Funktion auf, wenn Sie die Sprache wechseln möchten. Nachdem das Promise aufgelöst ist, ist der Sprachwechsel abgeschlossen.
setLocale('zh-cn').then(() => {
// Ein Aufruf von getLocale gibt den aktuellen Sprachcode zurück
console.log(getLocale()); // zh-cn
});
Zustandsereignisse
Zu Beginn, am Ende oder bei einem Fehler des Sprachwechsels wird das mdui-localize-status-Ereignis auf dem window ausgelöst. Sie können dieses Ereignis abhören, um benutzerdefinierte Aktionen auszuführen, z. B. das Schreiben des Sprachcodes in ein Cookie nach erfolgreichem Sprachwechsel.
Die detail.status-Eigenschaft des Ereignisses beschreibt, welche Zustandsänderung stattgefunden hat. Mögliche Werte sind: loading, ready, error:
detail.status |
Beschreibung |
|---|---|
loading |
Das Laden eines neuen Sprachpakets beginnt. Das
|
ready |
Das neue Sprachpaket wurde erfolgreich geladen. Das
|
error |
Das Laden des neuen Sprachpakets ist fehlgeschlagen. Das
|
Ein Beispiel:
window.addEventListener('mdui-localize-status', (event) => {
if (event.detail.status === 'loading') {
console.log(
`Beginne mit dem Laden des neuen Sprachpakets: ${event.detail.loadingLocale}`,
);
} else if (event.detail.status === 'ready') {
console.log(
`Neues Sprachpaket ${event.detail.readyLocale} erfolgreich geladen`,
);
} else if (event.detail.status === 'error') {
console.error(
`Neues Sprachpaket ${event.detail.errorLocale} konnte nicht geladen werden: ${event.detail.errorMessage}`,
);
}
});
Methoden zum Laden von Sprachpaketen
Lazy Loading
Die Verwendung von dynamischen Importen ermöglicht es, das entsprechende Sprachpaket erst beim Wechsel zu dieser Sprache herunterzuladen. Dies ist die empfohlene Methode.
import { loadLocale } from 'mdui/functions/loadLocale.js';
loadLocale((locale) => import(`../node_modules/mdui/locales/${locale}.js`));
Preloading
Laden Sie alle benötigten Sprachpakete herunter, während die Seite geladen wird. Dadurch ist kein weiterer Download beim Sprachwechsel erforderlich, was den Sprachwechsel beschleunigt.
import { loadLocale } from 'mdui/functions/loadLocale.js';
const localizedTemplates = new Map([
['zh-cn', import(`../node_modules/mdui/locales/zh-cn.js`)],
['zh-tw', import(`../node_modules/mdui/locales/zh-tw.js`)],
]);
loadLocale(async (locale) => localizedTemplates.get(locale));
Statische Importe
Mit dieser Methode können Sie alle benötigten Sprachpakete zusammen mit Ihrem Projektcode in dieselbe Datei bündeln, sodass kein separater Download von Sprachpaketen mehr erforderlich ist.
import { loadLocale } from 'mdui/functions/loadLocale.js';
import * as locale_zh_cn from 'mdui/locales/zh-cn.js';
import * as locale_zh_tw from 'mdui/locales/zh-tw.js';
const localizedTemplates = new Map([
['zh-cn', locale_zh_cn],
['zh-tw', locale_zh_tw],
]);
loadLocale(async (locale) => localizedTemplates.get(locale));
Sprachpakete über ein CDN laden
Wenn Sie mdui über ein CDN verwenden, können Sie Sprachpakete direkt über das CDN laden. Ein Beispiel:
<script src="https://unpkg.com/mdui@2/mdui.global.js"></script>
<script>
mdui.loadLocale(
(locale) => import(`https://unpkg.com/mdui@2/locales/${locale}.js`),
);
mdui.setLocale('zh-cn');
</script>
Unterstützte Sprachen
Derzeit unterstützt mdui die folgenden Sprachen:
| Sprache | Sprachcode |
|---|---|
| Arabisch | ar-eg |
| Aserbaidschanisch | az-az |
| Bulgarisch | bg-bg |
| Bengalisch (Bangladesch) | bn-bd |
| Weißrussisch | be-by |
| Katalanisch | ca-es |
| Tschechisch | cs-cz |
| Dänisch | da-dk |
| Deutsch | de-de |
| Griechisch | el-gr |
| Englisch | en-gb |
| Englisch (US) | en-us |
| Spanisch | es-es |
| Estnisch | et-ee |
| Persisch | fa-ir |
| Finnisch | fi-fi |
| Französisch (Belgien) | fr-be |
| Französisch (Kanada) | fr-ca |
| Französisch (Frankreich) | fr-fr |
| Irisch | ga-ie |
| Galicisch (Spanien) | gl-es |
| Hebräisch | he-il |
| Hindi | hi-in |
| Kroatisch | hr-hr |
| Ungarisch | hu-hu |
| Armenisch | hy-am |
| Indonesisch | id-id |
| Italienisch | it-it |
| Isländisch | is-is |
| Japanisch | ja-jp |
| Georgisch | ka-ge |
| Khmer | km-kh |
| Nordkurdisch | kmr-iq |
| Kannada | kn-in |
| Kasachisch | kk-kz |
| Koreanisch | ko-kr |
| Litauisch | lt-lt |
| Lettisch | lv-lv |
| Mazedonisch | mk-mk |
| Malayalam | ml-in |
| Mongolisch | mn-mn |
| Malaiisch (Malaysia) | ms-my |
| Norwegisch | nb-no |
| Nepalesisch | ne-np |
| Niederländisch (Belgien) | nl-be |
| Niederländisch | nl-nl |
| Polnisch | pl-pl |
| Portugiesisch (Brasilien) | pt-br |
| Portugiesisch | pt-pt |
| Rumänisch | ro-ro |
| Russisch | ru-ru |
| Slowakisch | sk-sk |
| Serbisch | sr-rs |
| Slowenisch | sl-si |
| Schwedisch | sv-se |
| Tamilisch | ta-in |
| Thailändisch | th-th |
| Türkisch | tr-tr |
| Urdu (Pakistan) | ur-pk |
| Ukrainisch | uk-ua |
| Vietnamesisch | vi-vn |
| Vereinfachtes Chinesisch | zh-cn |
| Traditionelles Chinesisch (Hongkong) | zh-hk |
| Traditionelles Chinesisch (Taiwan) | zh-tw |
Neue Übersetzungen einreichen
Um neue Übersetzungen beizutragen oder bestehende Übersetzungen zu verbessern, reichen Sie bitte einen Pull Request auf Github ein. Die Sprachpakete befinden sich unter packages/mdui/src/xliff. Sie können sie direkt auf Github bearbeiten.