国際化

世界中のユーザーの言語と文化を尊重してコンポーネントを適応させることは、アプリケーションをより多くの人々に利用してもらうための重要な方法です。Yamada UIは、30以上の言語をサポートしています。

概要

国際化とは、コードとユーザーインターフェイスをローカリゼーションに対応させるように構造化するプロセスです。Yamada UIは、組み込まれている文字列の翻訳から日付・数値のフォーマットまで、多くのコンポーネントで様々なローカリゼーションをサポートしています。Yamada UIのコンポーネントを使用することで、これらの国際化が自動的に処理されます。

ローカリゼーション

ローカリゼーションとは、アプリケーションを特定の言語または地域に適応させるプロセスです。文字の翻訳に加えて、日付・数値のフォーマットからテキスト検索などの調整も含まれます。Yamada UIは、30以上のロケールでローカリゼーションをサポートしています。

ロケールを変更する

ロケールを変更する場合は、UIProviderlocaleに値を設定します。

import { UIProvider } from "@yamada-ui/react"

const App = () => {
  return (
    <UIProvider locale="ja-JP">
      <App />
    </UIProvider>
  )
}

ラベルを変更する

ラベルを変更する場合は、CLIを使用してi18n-providerをダウンロードする必要があります。

  • 1

    プロバイダーを追加する

    addコマンドを使用して、i18n-providerを追加します。

    pnpm yamada-cli add i18n-provider
    
  • 2

    言語データを変更する

    i18n-providerintlフォルダに各言語のデータがあります。変更する言語のデータを変更します。

    intl/ja-JP.ts

    import type { IntlData } from "."
    
    const data: IntlData = {
      /* ... */
      avatar: {
        "Avatar Icon": "ユーザーアイコン",
      },
      /* ... */
    }
    
    export default data
    

言語を追加する

言語を追加する場合は、CLIを使用してi18n-providerをダウンロードする必要があります。

  • 1

    プロバイダーを追加する

    addコマンドを使用して、i18n-providerを追加します。

    pnpm yamada-cli add i18n-provider
    
  • 2

    言語データを追加する

    i18n-providerintlフォルダに各言語のデータがあります。新しい言語のデータを追加します。データは、intl/en-US.tsをコピー・ペーストして各値を変更します。

    intl/vi-VN.ts

    import type { IntlData } from "."
    
    const data: IntlData = {
      autocomplete: {
        "Clear value": "Giá trị xóa",
        "No results found": "Không tìm thấy kết quả",
      },
      /* ... */
    }
    
    export default data
    
  • 3

    インデックスを更新する

    intl/index.tsに追加した言語データを追加します。

    intl/index.ts

    import arAE from "./ar-AE"
    /* ... */
    import viVN from "./vi-VN"
    
    /* ... */
    
    export default {
      "ar-AE": arAE,
      /* ... */
      "vi-VN": viVN,
    }
    

サポートされているロケール

  • 日本語(日本)
  • 英語(イギリス)
  • 英語(米国)
  • アラビア語(アラブ首長国連邦)
  • ブルガリア語(ブルガリア)
  • クロアチア語(クロアチア)
  • チェコ語(チェコ共和国)
  • デンマーク語(デンマーク)
  • オランダ語(オランダ)
  • エストニア語(エストニア)
  • フィンランド語(フィンランド)
  • フランス語(カナダ)
  • フランス語(フランス)
  • ドイツ語(ドイツ)
  • ギリシャ語(ギリシャ)
  • ヘブライ語(イスラエル)
  • ハンガリー語(ハンガリー)
  • イタリア語(イタリア)
  • ラトビア語(ラトビア)
  • リトアニア語(リトアニア)
  • ノルウェー語(ノルウェー)
  • ポーランド語(ポーランド)
  • ポルトガル語(ブラジル)
  • ルーマニア語(ルーマニア)
  • ロシア語(ロシア)
  • セルビア語(セルビア)
  • スロバキア語(スロバキア)
  • スロベニア語(スロベニア)
  • スペイン語(スペイン)
  • スウェーデン語(スウェーデン)
  • トルコ語(トルコ)
  • ウクライナ語(ウクライナ)
  • 中国語(簡体字)
  • 中国語(繁体字)
  • 韓国語(韓国)

バンドルサイズの最適化

Yamada UIは、デフォルトで上記のすべての言語のデータを含んでいます。これは、多くのユーザーにとってそのまま使えるものですが、バンドルサイズが大きくなります。アプリケーションがこれらのすべてのロケールをサポートしない場合は、intl/index.tsから不要なデータを削除することで、バンドルサイズを最適化することができます。