localize.dev

الوثائق / Vue

Vue i18n، آليًا

انقل النسخ المكتوبة يدويًا في مكونات Vue ذات الملف الواحد، أو قوالب HTML أو Pug، إلى استدعاءات vue-i18n ، مع صيغ الجمع، والجمل حول الروابط عبر <i18n-t>، وإعداد vue-i18n.

كيف يعمل

نص القالب و {{ }} يتحول إلى {{ 'key' }}، والسمات تتحول إلى :placeholder="'key'"، والنصوص المعروضة من <script setup> (التنبيهات، الإشعارات، document.title) تستخدم t() من useI18n.

تستخدم الجمعات صيغة أنابيب vue-i18n مع قواعد الجمع لكل لغة، وتظل الجمل حول الروابط رسالة واحدة مع <i18n-t>.

القوالب المكتوبة بـ Pug (<template lang="pug">) تُترجم أيضًا: h1 {{ 'key' }}، النصوص الموجهة والمجمعة، input(:placeholder="'key'")، والجمل حول #[a(href) inline tags].

النسخ المحفوظة في <script setup> والمعروضة بواسطة القالب، مثل const tabs = [{ label: 'Overview' }] المكررة مع v-for، تصبح مفاتيح يقرأها القالب عبر tab.label.

قبل وبعد

المخرجات الحقيقية للمحرك لهذا الملف. في تشغيل حقيقي، يقوم النموذج المستضاف بتسمية المفاتيح من السياق.

src/components/InviteTeam.vue · قبل
<template>
  <section>
    <h2>Invite people to {{ team.name }}</h2>
    <p>{{ seats }} {{ seats === 1 ? 'seat' : 'seats' }} left on your plan</p>
    <input placeholder="name@company.com" />
    <p>Read the <a href="/docs">docs</a> first.</p>
  </section>
</template>
src/components/InviteTeam.vue · بعد
<template>
  <section>
    <h2>{{ $t('invite_team.invite_people_to', { name: team.name }) }}</h2>
    <p>{{ $t('invite_team.seats_left_on_your_plan', { count: seats }, seats) }}</p>
    <input placeholder="name@company.com" />
    <p><i18n-t keypath="invite_team.read_the_first" scope="global"><template #a><a href="/docs">{{ $t('invite_team.docs') }}</a></template></i18n-t></p>
  </section>
</template>
locales/en.json
{
  "invite_team": {
    "invite_people_to": "Invite people to {name}",
    "seats_left_on_your_plan": "{count} seat left on your plan | {count} seats left on your plan",
    "docs": "docs",
    "read_the_first": "Read the {a} first."
  }
}

ما يضيفه الإعداد

الإعداد الأول يقوم بإعداد vue-i18n إذا لم يكن المشروع يحتوي عليه بعد:

  • vue-i18n في package.json
  • src/i18n.ts مع كل لغة وقواعد الجمع، مثبت مع app.use(i18n) في main.ts
  • يُترك إعداد createI18n الحالي كما هو

قم بتشغيله

يتطلب CLI إصدار Node.js 22 أو أحدث.

npm install --save-dev localize-dev
npx localize-dev login

# Preview, then write the changes
npx localize-dev run --dry-run -l es,fr,de
npx localize-dev run -l es,fr,de

# Or open a pull request instead
npx localize-dev pr -l es,fr,de

أو أضف إجراء GitHub واحصل على طلب سحب عند كل دفعة. جربه على الكود الخاص بك أولاً في ملعب.