0Pricing
Vue Academy · レッスン

vue-i18nの設定とメッセージファイル

createI18n()、ロケールJSONファイル、メッセージ構文{name}、ネストしたキー、フォールバックロケール

「vue-i18nの設定とメッセージファイル」はCoddyKit上の無料Vue Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはVue Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Vue Academyコースには全4レッスンが含まれています。

i18nとは

国際化(i18n)とは、アプリで複数の言語のテキストを表示できるように構築することです。Vue I18nは、Vueアプリの翻訳に使う公式ライブラリに準じたライブラリです。

英語の文字列を直接記述する代わりに、アクティブな言語に対応する値へ解決されるキーを参照します。

Vue I18nのインストール

パッケージを追加します。Vue 3では、Composition APIを中心に構築されたバージョン9以降を使用します。

// terminal
// npm install vue-i18n

メッセージファイル

翻訳は、ロケールごとに1つずつ用意するメッセージオブジェクトに格納します。キーが翻訳済みの文字列に対応します。まずは英語から始めます。

const en = {
  greeting: "Hello",
  nav: {
    home: "Home",
    about: "About",
  },
}

トルコ語ロケールの追加

すべてのキーがすべての言語に存在するように、各ロケールで同じキー構造を用意します。

const tr = {
  greeting: "Merhaba",
  nav: {
    home: "Ana Sayfa",
    about: "Hakkinda",
  },
}

i18nインスタンスの作成

createI18nでインスタンスを作成します。locale(アクティブな言語)、fallbackLocale(キーがない場合に使うロケール)、messagesマップを設定します。

import { createI18n } from "vue-i18n"

const i18n = createI18n({
  legacy: false,
  locale: "en",
  fallbackLocale: "en",
  messages: { en, tr },
})

legacy: falseを使う理由

legacy: falseを設定すると、Composition APIモードが有効になります。これは、現在のVue 3アプリで使われているモードです。次のレッスンで扱うuseI18n composableも使えるようになります。

const i18n = createI18n({
  legacy: false, // Composition API mode
  locale: "en",
  messages: { en, tr },
})

アプリへの登録

app.use(i18n)でインスタンスをプラグインとして登録します。これにより、コンポーネントツリー全体で翻訳ヘルパーを利用できるようになります。

import { createApp } from "vue"
import App from "./App.vue"

const app = createApp(App)
app.use(i18n)
app.mount("#app")

テンプレートでの$tの使用

インストールすると、すべてのテンプレートで$t(key)を呼び出して、アクティブなロケールの翻訳を参照できます。

<template>
  <h1>{{ $t("greeting") }}</h1>
  <a>{{ $t("nav.home") }}</a>
</template>

fallbackLocaleの動作

アクティブなロケールにキーがない場合、Vue I18nはキーをそのまま表示する代わりにfallbackLocaleへフォールバックします。翻訳作業中でも、UIを適切な状態に保てます。

// tr is missing "tagline" -> falls back to en
// {{ $t("tagline") }} renders the English text

プレースホルダーによる補間

メッセージには、中かっこで囲んだ名前付きプレースホルダーを含められます。2番目の引数として値を渡すと、プレースホルダーがその値で置き換えられます。

const en = {
  welcome: "Welcome, {name}!",
}

// template:
// {{ $t("welcome", { name: "Ada" }) }}
// => "Welcome, Ada!"

メッセージファイルの整理

実際のアプリでは、各ロケールを専用ファイル(en.json、tr.json)に分けて配置し、インポートします。翻訳を管理しやすくなり、翻訳者が独立して作業できます。

// locales/en.json, locales/tr.json
import en from "./locales/en.json"
import tr from "./locales/tr.json"

createI18n({ locale: "en", messages: { en, tr } })

理解度チェック

Vue I18nのセットアップについての理解度を確認しましょう。

復習

Vue I18nをセットアップしました。

  • i18nとは、キーを参照して複数の言語でテキストを表示する仕組みです。
  • ロケールごとに、同じキー構造を持つメッセージオブジェクトを定義します。
  • createI18nにはlocale、fallbackLocale、messagesを渡します。Compositionモードにはlegacy: falseを使用します。
  • app.use(i18n)で登録し、テンプレートでは$t(key)で翻訳します。
  • {name}のようなプレースホルダーには、2番目の引数で値を設定します。

よくある質問

「vue-i18nの設定とメッセージファイル」レッスンは無料ですか?

はい。「vue-i18nの設定とメッセージファイル」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Vue Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Vue Academyコースには全4レッスンが含まれています。

「vue-i18nの設定とメッセージファイル」で何を学びますか?

createI18n()、ロケールJSONファイル、メッセージ構文{name}、ネストしたキー、フォールバックロケール ブラウザで直接実行するハンズオンコードでVue Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Vue Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのVue Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「vue-i18nの設定とメッセージファイル」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このVue Academyレッスンでコードを書いて実行できますか?

はい。すべてのVue Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. vue-i18nの設定とメッセージファイル
  2. useI18n Composableとt()関数
  3. 複数形とリンクメッセージ
  4. 数値・日付・通貨のフォーマット
← Vue Academyに戻る