Lingo.dev + .ts (TypeScript)
تقوم واجهة سطر أوامر Lingo.dev بترجمة ملفات اللغة المحلية في TypeScript مع الحفاظ على تعريفات الأنواع وهياكل الكائنات وبناء جملة TypeScript المحدد. تحافظ واجهة سطر الأوامر على فحص واستنتاج أنواع TypeScript، وتدعم جميع بناء جملة TypeScript وميزاته، وتعمل مع التصديرات الافتراضية والمسماة، وتتعامل بشكل صحيح مع سلاسل القوالب والاستيفاء، وتتكامل بسلاسة مع عمليات تجميع TypeScript.
الإعداد السريع
تكوين ملفات اللغة المحلية في TypeScript:
{
"locale": {
"source": "en",
"targets": ["es", "fr", "de"]
},
"buckets": {
"typescript": {
"include": ["src/locales/[locale].ts"]
}
}
}
تذكير: [locale]
هو عنصر نائب يجب أن يبقى في التكوين حرفيًا، حيث يتم استبداله باللغة المحلية الفعلية أثناء تشغيل واجهة سطر الأوامر.
ترجمة ملفات TypeScript
npx lingo.dev@latest i18n
يحافظ على بناء جملة TypeScript وتعليقات الأنواع وتصديرات الوحدة أثناء ترجمة محتوى السلسلة النصية.
دعم هيكل TypeScript
نمط تصدير الكائن
export const messages = {
common: {
save: "حفظ",
cancel: "إلغاء",
delete: "حذف",
},
auth: {
login: "تسجيل الدخول",
register: "إنشاء حساب",
},
} as const;
نهج قائم على الواجهة
interface Messages {
welcome: string;
itemCount: (count: number) => string;
}
export const en: Messages = {
welcome: "مرحبًا بك في منصتنا",
itemCount: (count: number) => `لديك ${count} عناصر`,
};
دعم القوالب الحرفية
export const messages = {
greeting: (name: string) => `مرحبًا، ${name}!`,
notification: `لديك ${count} رسائل جديدة`,
path: `/users/${userId}/profile`,
};
الحفاظ على سلامة النوع
تأكيدات الثابت
export const locale = {
buttons: {
submit: "إرسال النموذج",
reset: "إعادة تعيين",
},
} as const;
type LocaleKeys = typeof locale;
تظل معلومات النوع وتأكيدات الثابت سليمة.
تعريفات الدوال
export const t = {
welcome: (name: string): string => `Welcome, ${name}!`,
pluralize: (count: number): string =>
count === 1 ? "1 item" : `${count} items`,
};
يتم الحفاظ على توقيعات الدوال وأنواع الإرجاع.
الإعدادات المتقدمة
ملفات تايب سكريبت متعددة
"typescript": {
"include": [
"src/locales/[locale].ts",
"src/translations/[locale]/*.ts"
]
}
قفل تعريفات الأنواع
"typescript": {
"include": ["src/locales/[locale].ts"],
"lockedKeys": ["__type", "metadata"]
}