التدويل
يدعم Tiptapify أكثر من 35 لغة جاهزة للاستخدام. تُدار الترجمات عبر vue-i18n.
تعيين اللغة الافتراضية
أنشئ نسخة من vue-i18n ومرّرها عند تسجيل الإضافة:
// main.ts
import { createI18n } from 'vue-i18n'
import TiptapifyPlugin from 'tiptapify'
import 'tiptapify/style.css'
const i18n = createI18n({
legacy: false,
locale: 'en',
})
app.use(i18n)
app.use(TiptapifyPlugin, { i18n })تغيير اللغة أثناء التشغيل
يستخدم Tiptapify نسخة vue-i18n الخاصة بك — غيّر اللغة عبر useI18n():
<script setup lang="ts">
import { useI18n } from 'vue-i18n'
const { locale } = useI18n()
const languages = [
{ code: 'en', label: 'English' },
{ code: 'de', label: 'Deutsch' },
{ code: 'fr', label: 'Français' },
{ code: 'es', label: 'Español' },
{ code: 'ru', label: 'Русский' },
]
</script>
<template>
<div>
<v-select
v-model="locale"
:items="languages"
item-title="label"
item-value="code"
label="Language"
/>
<Tiptapify placeholder="Start writing..." />
</div>
</template>اللغات المتاحة
اللغات المدعومة حاليًا:
| الرمز | اللغة |
|---|---|
en | الإنجليزية |
ar | العربية |
bg | البلغارية |
ch | الصينية |
cz | التشيكية |
de | الألمانية |
el | اليونانية |
es | الإسبانية |
et | الإستونية |
fi | الفنلندية |
fr | الفرنسية |
he | العبرية |
hi | الهندية |
hr | الكرواتية |
hu | المجرية |
id | الإندونيسية |
it | الإيطالية |
ja | اليابانية |
ko | الكورية |
la | اللاتفية |
lt | الليتوانية |
nl | الهولندية |
no | النرويجية |
pl | البولندية |
pt | البرتغالية |
pt-BR | البرتغالية (البرازيلية) |
ro | الرومانية |
ru | الروسية |
se | السويدية |
sk | السلوفاكية |
sl | السلوفينية |
sr | الصربية |
th | التايلاندية |
tr | التركية |
uk | الأوكرانية |
vi | الفيتنامية |
ترجمات مولّدة بالذكاء الاصطناعي
معظم الترجمات مولّدة بالذكاء الاصطناعي وقد تحتوي على أخطاء. إذا وجدت ترجمة غير صحيحة أو أردت إضافة لغة جديدة، فيُرجى فتح مشكلة (issue) أو التواصل مع المشرف على المشروع.
إضافة ترجمات مخصصة
يدمج Tiptapify رسائل اللغات المضمّنة فيه تلقائيًا في نسخة vue-i18n الخاصة بك عند تمريرها إلى الإضافة. يمكنك توسيع الترجمات أو تجاوزها قبل تسجيل الإضافة:
import { createI18n } from 'vue-i18n'
import TiptapifyPlugin from 'tiptapify'
import 'tiptapify/style.css'
const i18n = createI18n({
legacy: false,
locale: 'en',
messages: {
// Custom translations take precedence over Tiptapify's built-in ones
en: {
toolbar: {
bold: 'Make bold',
italic: 'Make italic',
},
},
},
})
app.use(i18n)
app.use(TiptapifyPlugin, { i18n })أو ادمجها بعد إنشاء نسخة i18n:
const i18n = createI18n({
legacy: false,
locale: 'en',
})
i18n.global.mergeLocaleMessage('en', customTranslations)
app.use(i18n)
app.use(TiptapifyPlugin, { i18n })اللغات من اليمين إلى اليسار (RTL)
مع لغات RTL مثل العربية، تأكد من أن سمة Vuetify لديك تدعم RTL:
const vuetify = createVuetify({
locale: {
rtl: true,
},
})لغة مستقلة لكل نسخة
يستخدم Tiptapify لغة vue-i18n الخاصة بتطبيقك على المستوى العام. إذا احتجت إلى لغة مستقلة لكل نسخة، فاستخدم الفتحات المحصورة النطاق (scoped slots) أو composition API في vue-i18n ضمن نطاق تلك النسخة:
<script setup lang="ts">
import { useI18n } from 'vue-i18n'
const { t, locale } = useI18n({ useScope: 'local' })
</script>
<template>
<Tiptapify :placeholder="t('editor.placeholder')" />
</template>