Lingo.dev + Vue.js シングルファイルコンポーネント
Lingo.dev CLIはVue I18n単一ファイルコンポーネントをサポートしており、.vue
ファイル内に翻訳を保持することができます。
注意: Vue.jsアプリケーションでJSONロケールファイルを使用している場合は、フロントエンド用に.json形式を使用してください。
クイックセットアップ
プロジェクトのルートにi18n.json
設定ファイルを作成します:
{
"version": 1,
"locale": {
"source": "en",
"targets": ["es", "fr", "de"]
},
"buckets": {
"vue-json": {
"include": ["src/**/*.vue"]
}
}
}
この設定では、英語をソース言語として、スペイン語、フランス語、ドイツ語をターゲット言語として設定し、src
ディレクトリ内のすべての.vue
ファイルを処理します。
サポートされている言語を確認する
利用可能なソース言語とターゲット言語を一覧表示します:
npx lingo.dev@latest show locale sources
npx lingo.dev@latest show locale targets
すべてを翻訳する
以下のコマンドを実行して、すべてのVueコンポーネントを翻訳します:
npx lingo.dev@latest i18n
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/**/*.vue"],
"exclude": ["src/components/NoTranslate.vue"]
}
ハイブリッド翻訳
コンポーネントベースとファイルベースの翻訳を組み合わせる:
"buckets": {
"vue-json": {
"include": ["src/**/*.vue"]
},
"json": {
"include": ["src/locales/[locale].json"]
}
}
この設定により、コンポーネント固有の翻訳はコンポーネント内に保持し、グローバルな翻訳は別のJSONファイルに保存します。
このアプローチを使用する理由
- 翻訳を使用するコンポーネントと一緒に保持できる
- 文字列を別ファイルに抽出する必要がない
- AIがコンポーネントのコンテキストを理解し、より良い翻訳を提供
- 変更された部分のみを翻訳
- Vue I18nの推奨パターンと連携
Lingo.devは、Vueのコンポーネントベースのアーキテクチャを維持しながら、AI駆動の翻訳を提供します。