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

متطلبات التصدير الافتراضي

لكي تعمل ترجمة TypeScript بشكل صحيح، يجب أن يقوم ملفك بتصدير كائن كتصدير افتراضي:

// هذا يعمل - كائن التصدير الافتراضي
export default {
  common: {
    save: "حفظ",
    cancel: "إلغاء",
    delete: "حذف",
  },
  auth: {
    login: "تسجيل الدخول",
    register: "إنشاء حساب",
  },
} as const;
// هذا يعمل أيضًا - متغير مع تصدير افتراضي
const messages = {
  welcome: "مرحبًا بك في تطبيقنا",
  error: "حدث خطأ ما",
};
export default messages;

الحفاظ على سلامة الأنواع

export const locale = {
  buttons: {
    submit: "إرسال النموذج",
    reset: "إعادة تعيين",
  },
} as const;

type LocaleKeys = typeof locale;

تظل معلومات النوع وتأكيدات const سليمة.

الإعدادات المتقدمة

ملفات TypeScript متعددة

"typescript": {
  "include": [
    "src/locales/[locale].ts",
    "src/translations/[locale]/*.ts"
  ]
}

قفل تعريفات الأنواع

"typescript": {
  "include": ["src/locales/[locale].ts"],
  "lockedKeys": ["__type", "metadata"]
}