Lokalizace
mdui interně používá angličtinu. Pokud potřebujete jiný jazyk, je nutné nastavit vícejazyčnou konfiguraci.
Způsob použití
mdui nabízí tři funkce pro práci s lokalizací:
loadLocale: Načte jazykový balíček. Parametrem je funkce, která přijímá kód jazyka jako parametr a vrací Promise. Když je jazykový balíček načten, Promise je vyřešen (resolve) na odpovídající jazykový balíček. Zavolejte tuto funkci ve vstupním souboru projektu.setLocale: Přepne na zadaný jazyk. Parametrem je nový kód jazyka, návratovou hodnotou je Promise, který je vyřešen po načtení nového jazykového balíčku.getLocale: Získá aktuální kód jazyka.
Příklad použití:
import { loadLocale } from 'mdui/functions/loadLocale.js';
import { setLocale } from 'mdui/functions/setLocale.js';
import { getLocale } from 'mdui/functions/getLocale.js';
// Na vstupu projektu zavolejte loadLocale pro načtení jazykového balíčku
loadLocale((locale) => import(`../node_modules/mdui/locales/${locale}.js`));
// Když potřebujete přepnout jazyk, zavolejte tuto funkci. Po vyřešení (resolve) Promise je přepnutí jazyka dokončeno
setLocale('zh-cn').then(() => {
// Voláním getLocale získáte aktuální kód jazyka
console.log(getLocale()); // zh-cn
});
Události stavu
Na začátku, konci a při selhání přepínání jazyka se na window spustí událost mdui-localize-status. Můžete ji poslouchat a provádět vlastní akce, například zapsat kód jazyka do cookie po úspěšném přepnutí jazyka.
Vlastnost detail.status události popisuje, k jaké změně stavu došlo. Možné hodnoty: loading, ready, error:
detail.status |
Popis |
|---|---|
loading |
Začíná se načítat nový jazykový balíček. Objekt
|
ready |
Nový jazykový balíček byl úspěšně načten. Objekt
|
error |
Načtení nového jazykového balíčku selhalo. Objekt
|
Příklad použití:
window.addEventListener('mdui-localize-status', (event) => {
if (event.detail.status === 'loading') {
console.log(
`Začíná se načítat nový jazykový balíček: ${event.detail.loadingLocale}`,
);
} else if (event.detail.status === 'ready') {
console.log(
`Nový jazykový balíček ${event.detail.readyLocale} byl úspěšně načten`,
);
} else if (event.detail.status === 'error') {
console.error(
`Načtení nového jazykového balíčku ${event.detail.errorLocale} selhalo: ${event.detail.errorMessage}`,
);
}
});
Způsoby načtení jazykového balíčku
Líné načítání
Použití dynamického importu umožňuje stáhnout odpovídající jazykový balíček až při přepnutí na daný jazyk. Toto je nejdoporučovanější metoda.
import { loadLocale } from 'mdui/functions/loadLocale.js';
loadLocale((locale) => import(`../node_modules/mdui/locales/${locale}.js`));
Přednačítání
Při načítání stránky se předem stáhnou všechny potřebné jazykové balíčky. To znamená, že při přepínání jazyků není nutné další stahování, což činí přepínání jazyků rychlejším.
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));
Statický import
Tato metoda umožňuje zabalit všechny potřebné jazykové balíčky do jednoho souboru spolu s kódem vašeho projektu, takže již není nutné stahovat jazykové balíčky samostatně.
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));
Načtení jazykového balíčku přes CDN
Pokud používáte mdui přes CDN, můžete jazykový balíček načíst přímo z CDN. Příklad použití:
<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>
Podporované jazyky
mdui v současné době podporuje následující jazyky:
| Jazyk | Kód jazyka |
|---|---|
| arabština | ar-eg |
| ázerbájdžánština | az-az |
| bulharština | bg-bg |
| bengálština (Bangladéš) | bn-bd |
| běloruština | be-by |
| katalánština | ca-es |
| čeština | cs-cz |
| dánština | da-dk |
| němčina | de-de |
| řečtina | el-gr |
| angličtina | en-gb |
| angličtina (americká) | en-us |
| španělština | es-es |
| estonština | et-ee |
| perština | fa-ir |
| finština | fi-fi |
| francouzština (Belgie) | fr-be |
| francouzština (Kanada) | fr-ca |
| francouzština (Francie) | fr-fr |
| irština | ga-ie |
| galicijština (Španělsko) | gl-es |
| hebrejština | he-il |
| hindština | hi-in |
| chorvatština | hr-hr |
| maďarština | hu-hu |
| arménština | hy-am |
| indonéština | id-id |
| italština | it-it |
| islandština | is-is |
| japonština | ja-jp |
| gruzínština | ka-ge |
| khmérština | km-kh |
| severní kurdština | kmr-iq |
| kannadština | kn-in |
| kazaština | kk-kz |
| korejština | ko-kr |
| litevština | lt-lt |
| lotyština | lv-lv |
| makedonština | mk-mk |
| malajálamština | ml-in |
| mongolština | mn-mn |
| malajština (Malajsie) | ms-my |
| norština | nb-no |
| nepálština | ne-np |
| nizozemština (Belgie) | nl-be |
| nizozemština | nl-nl |
| polština | pl-pl |
| portugalština (Brazílie) | pt-br |
| portugalština | pt-pt |
| rumunština | ro-ro |
| ruština | ru-ru |
| slovenština | sk-sk |
| srbština | sr-rs |
| slovinština | sl-si |
| švédština | sv-se |
| tamilština | ta-in |
| thajština | th-th |
| turečtina | tr-tr |
| urdština (Pákistán) | ur-pk |
| ukrajinština | uk-ua |
| vietnamština | vi-vn |
| zjednodušená čínština | zh-cn |
| tradiční čínština (Hongkong) | zh-hk |
| tradiční čínština (Tchaj-wan) | zh-tw |
Odeslání nového překladu
Chcete-li přispět novým překladem nebo vylepšit stávající překlad, vytvořte prosím Pull Request na Githubu. Jazykové balíčky se nacházejí v packages/mdui/src/xliff. Můžete je upravovat přímo na Githubu.