MDUIDocs
llms.txt のリンクをコピーllms-full.txt のリンクをコピーMarkdown 形式でこのページを表示このページの内容について ChatGPT と相談するプロジェクトの完全なドキュメントについて ChatGPT と相談する
プリセットカラー
カスタムカラー
壁紙から色を抽出
壁紙を選択してください
開発ガイド
概要 インストール クイックスタート TypeScript サポート IDE サポート ローカライズ よくある質問
AI 補助開発
スタイル
フレームワークとの統合
コンポーネント
関数
独立パッケージ

ローカライズ

mdui はデフォルトで英語を使用します。他の言語を使用する場合は、ローカライズ設定を行う必要があります。

使用方法

mdui はローカライズ機能を実現するために 3 つの関数を提供しています:

  • loadLocale:言語パックをロードします。パラメーターは関数で、言語コードを受け取り、Promise を返します。言語パックのロードが完了すると、Promise は対応する言語パックで解決されます。プロジェクトのエントリーファイルでこの関数を呼び出してください。
  • setLocale:指定された言語に切り替えます。パラメーターは新しい言語コードで、Promise を返します。新しい言語パックのロードが完了すると resolve されます。
  • getLocale:現在の言語コードを取得します。

使用例は次のとおりです:

import { loadLocale } from 'mdui/functions/loadLocale.js';
import { setLocale } from 'mdui/functions/setLocale.js';
import { getLocale } from 'mdui/functions/getLocale.js';

// プロジェクトのエントリーポイントで loadLocale を呼び出し言語パックをロード
loadLocale((locale) => import(`../node_modules/mdui/locales/${locale}.js`));

// 言語を切り替える必要があるときにこの関数を呼び出します。Promise が resolve された後、言語の切り替えが成功します
setLocale('zh-cn').then(() => {
  // getLocale を呼び出すと現在の言語コードを取得できます
  console.log(getLocale()); // zh-cn
});

状態イベント

言語切り替えの開始時、終了時、失敗時に、window オブジェクトで mdui-localize-status イベントが発火します。このイベントをリッスンして、例えば言語切り替え成功後に言語コードを Cookie に書き込むなどのカスタム操作を実行できます。

イベントの detail.status プロパティは、どのような状態の変更が発生したかを表します。取り得る値は loadingreadyerror です:

detail.status 説明
loading

新しい言語パックのロードを開始します。

detail オブジェクトには以下が含まれます:

  • loadingLocale:新しくロードする言語の言語コード。
ready

新しい言語パックのロードが成功しました。

detail オブジェクトには以下が含まれます:

  • readyLocale:新しくロードされた言語の言語コード。
error

新しい言語パックのロードが失敗しました。

detail オブジェクトには以下が含まれます:

  • errorLocale:ロードに失敗した言語の言語コード。
  • errorMessage:ロード失敗のエラーメッセージ。

使用例は次のとおりです:

window.addEventListener('mdui-localize-status', (event) => {
  if (event.detail.status === 'loading') {
    console.log(
      `新しい言語パックのロードを開始:${event.detail.loadingLocale}`,
    );
  } else if (event.detail.status === 'ready') {
    console.log(`新しい言語パック ${event.detail.readyLocale} のロードに成功`);
  } else if (event.detail.status === 'error') {
    console.error(
      `新しい言語パック ${event.detail.errorLocale} のロードに失敗:${event.detail.errorMessage}`,
    );
  }
});

言語パックのロード方法

遅延ロード(Lazy Load)

動的インポート を使用すると、対応する言語に切り替えたときにのみ、対応する言語パックがダウンロードされます。これが最も推奨される方法です。

import { loadLocale } from 'mdui/functions/loadLocale.js';

loadLocale((locale) => import(`../node_modules/mdui/locales/${locale}.js`));

プリロード

ページ読み込み時に、必要なすべての言語パックを事前にダウンロードします。これにより、言語切り替え時に再度ダウンロードする必要がなくなり、言語切り替えがより速くなります。

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));

静的インポート

この方法を使用すると、必要なすべての言語パックをプロジェクトのコードと同じファイルにバンドルでき、言語パックを個別にダウンロードする必要がなくなります。

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));

CDN からの言語パックのロード

CDN で mdui を使用している場合は、CDN から直接言語パックをロードできます。使用例は次のとおりです:

<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>

サポートされている言語

現在、mdui は以下の言語をサポートしています:

言語 言語コード
アラビア語 ar-eg
アゼルバイジャン語 az-az
ブルガリア語 bg-bg
ベンガル語(バングラデシュ) bn-bd
ベラルーシ語 be-by
カタルーニャ語 ca-es
チェコ語 cs-cz
デンマーク語 da-dk
ドイツ語 de-de
ギリシャ語 el-gr
英語 en-gb
英語(アメリカ) en-us
スペイン語 es-es
エストニア語 et-ee
ペルシア語 fa-ir
フィンランド語 fi-fi
フランス語(ベルギー) fr-be
フランス語(カナダ) fr-ca
フランス語(フランス) fr-fr
アイルランド語 ga-ie
ガリシア語(スペイン) gl-es
ヘブライ語 he-il
ヒンディー語 hi-in
クロアチア語 hr-hr
ハンガリー語 hu-hu
アルメニア語 hy-am
インドネシア語 id-id
イタリア語 it-it
アイスランド語 is-is
日本語 ja-jp
グルジア語 ka-ge
クメール語 km-kh
クルド語(北) kmr-iq
カンナダ語 kn-in
カザフ語 kk-kz
韓国語 ko-kr
リトアニア語 lt-lt
ラトビア語 lv-lv
マケドニア語 mk-mk
マラヤーラム語 ml-in
モンゴル語 mn-mn
マレー語(マレーシア) ms-my
ノルウェー語 nb-no
ネパール語 ne-np
オランダ語(ベルギー) nl-be
オランダ語 nl-nl
ポーランド語 pl-pl
ポルトガル語(ブラジル) pt-br
ポルトガル語 pt-pt
ルーマニア語 ro-ro
ロシア語 ru-ru
スロバキア語 sk-sk
セルビア語 sr-rs
スロベニア語 sl-si
スウェーデン語 sv-se
タミル語 ta-in
タイ語 th-th
トルコ語 tr-tr
ウルドゥー語(パキスタン) ur-pk
ウクライナ語 uk-ua
ベトナム語 vi-vn
簡体字中国語 zh-cn
繁体字中国語(香港) zh-hk
繁体字中国語(台湾) zh-tw

新しい翻訳の提供

新しい翻訳を提供したり、既存の翻訳を改善したりするには、Github で Pull Request を作成してください。言語パックは packages/mdui/src/xliff にあります。Github 上で直接編集できます。

このページの目次