Lingo.dev + .json (Vue.js)
Lingo.dev CLIはVue.jsのi18n JSONファイルを翻訳する際に、メッセージフォーマット、補間構文、およびVue固有の規則を保持します。CLIはvue-i18nライブラリとシームレスに連携し、すべてのVueメッセージフォーマットを維持し、{name}
のようなプレースホルダーを保持し、@:
構文によるメッセージリンクを正確に処理し、コンポーネント補間プレースホルダーをそのまま保持します。
クイックセットアップ
Vue.js i18nロケールファイル用の設定:
{
"locale": {
"source": "en",
"targets": ["es", "fr", "de"]
},
"buckets": {
"vue-json": {
"include": ["src/locales/[locale].json"]
}
}
}
注意: [locale]
は設定内で文字通りのプレースホルダーとして残しておく必要があります。CLI実行時に実際のロケールに置き換えられます。
Vue i18nファイルの翻訳
npx lingo.dev@latest i18n
Vue.jsのメッセージフォーマット、補間プレースホルダー、およびvue-i18n固有の構文を保持します。
Vue i18nの機能
メッセージ補間
{
"message": {
"hello": "こんにちは{name}!",
"welcome": "ようこそ{name}さん、{count}件のメッセージがあります"
}
}
複数形ルール
{
"car": "車 | 車",
"apple": "リンゴがありません | リンゴが1個 | リンゴが{count}個"
}
リンクされたメッセージ
{
"common": {
"name": "アプリケーション名"
},
"welcome": "@:common.nameへようこそ"
}
Vueの@:
メッセージリンク構文は保持されます。
高度なVue機能
HTMLメッセージのサポート
{
"message": {
"title": "<strong>当プラットフォーム</strong>へようこそ",
"link": "<a href='/help'>ヘルプセンター</a>をご覧ください"
}
}
コンポーネント補間
{
"message": {
"terms": "{0}利用規約{/0}と{1}プライバシーポリシー{/1}に同意します"
}
}
コンポーネント補間のプレースホルダー構文はそのまま保持されます。
日時と数値のフォーマット
{
"datetime": {
"short": "{value}",
"long": "{value}"
},
"number": {
"currency": "{value}"
}
}
高度な設定
複数のロケールディレクトリ
"vue-json": {
"include": [
"src/locales/[locale].json",
"src/i18n/[locale]/*.json"
]
}
Vue固有のキーをロックする
"vue-json": {
"include": ["src/locales/[locale].json"],
"lockedKeys": ["$vuetify", "dateTimeFormats", "numberFormats"]
}