Lingo.dev + Vue.js単一ファイルコンポーネント

Lingo.dev CLIはVue I18n単一ファイルコンポーネントをサポートしており、.vueファイル内に翻訳を保持できます。

注意: Vue.jsアプリケーションがJSONロケールファイルを使用している場合は、フロントエンド用の.json形式を使用してください

クイックセットアップ

プロジェクトルートにi18n.json設定ファイルを作成します。

{
  "version": "1.10",
  "locale": {
    "source": "en",
    "targets": ["es", "fr", "de"]
  },
  "buckets": {
    "vue-json": {
      "include": ["src/components/*.vue", "src/views/*.vue"]
    }
  }
}

この設定では、英語をソース言語として設定し、スペイン語、フランス語、ドイツ語をターゲットとし、src/componentsおよびsrc/viewsディレクトリ内の.vueファイルを処理します。

サポートされている言語を確認

利用可能なソース言語とターゲット言語を一覧表示します。

npx lingo.dev@latest show locale sources
npx lingo.dev@latest show locale targets

すべてを翻訳

次のコマンドを実行して、すべてのVueコンポーネントを翻訳します。

npx lingo.dev@latest run

CLIはコンポーネント内の<i18n>ブロックをスキャンし、新規または変更されたコンテンツを翻訳し、翻訳をその場で更新します。

Vueコンポーネントでの動作方法

Lingo.devはVueの標準的なi18n構造で直接動作します。

<template>
  <div>
    <h1>{{ $t("welcome") }}</h1>
    <p>{{ $t("description") }}</p>
  </div>
</template>

<i18n>
{
  "en": {
    "welcome": "Welcome",
    "description": "This is a Vue component"
  }
}
</i18n>

翻訳後、コンポーネントにはすべてのターゲット言語が含まれます。

<i18n>
{
  "en": {
    "welcome": "Welcome",
    "description": "This is a Vue component"
  },
  "es": {
    "welcome": "Bienvenido",
    "description": "Este es un componente Vue"
  },
  "fr": {
    "welcome": "Bienvenue",
    "description": "Ceci est un composant Vue"
  }
}
</i18n>

高度な設定

ファイルの除外

特定のコンポーネントを翻訳から除外します。

"vue-json": {
  "include": ["src/components/*.vue", "src/views/*.vue"],
  "exclude": ["src/components/NoTranslate.vue"]
}

ハイブリッド翻訳

コンポーネントベースとファイルベースの翻訳を組み合わせます。

"buckets": {
  "vue-json": {
    "include": ["src/components/*.vue", "src/views/*.vue"]
  },
  "json": {
    "include": ["src/locales/[locale].json"]
  }
}

このセットアップにより、コンポーネント固有の翻訳はコンポーネント内に保持され、グローバルな翻訳は別のJSONファイルに保存されます。

このアプローチを使用する理由

  • 翻訳を使用するコンポーネントと一緒に保持
  • 文字列を別ファイルに抽出する必要なし
  • AIがコンポーネントのコンテキストを理解し、より良い翻訳を実現
  • 変更された部分のみを翻訳
  • Vue I18nの推奨パターンに対応

Lingo.devは、Vueのコンポーネントベースアーキテクチャを維持しながら、AI駆動の翻訳を提供します。