تايب سكريبت - NestJS/TypeORM التعريب


أعمل على تطبيق يستخدم خادم NestJS و TypeORM. أحتاج إلى تعريب بعض الحقول، وبعد البحث وجدت هذه الحزمة typeorm-i18n. تقول الوثائق إنه إذا كنت تستخدم NestJS يجب عليك استخدام هذه الحزمة: vlzh/nest-typeorm-i18n بدلاً من ذلك. لكن لا توجد أمثلة على كيفية استخدامها. كما أنني نظرت أيضاً في مجلد الاختبارات، لكن دون جدوى.

هل يعرف أحد كيف يستخدم هذه الحزمة؟ أو ربما يأتي بحل أفضل؟

الإجابة رقم 1

بالنظر إلى تجهيزات typeorm-i18n، فإن الحل يعتمد على وجود عمود منفصل لكل حقل قابل للترجمة لكل لغة مدعومة. رغم أن هذا قد ينتج أبسط تصميم لقاعدة البيانات، إلا أنني سأستخدم هذا فقط إذا كان لديك عدد قليل جدًا (1-2) من الحقول القابلة للترجمة، وعدد صغير فقط من اللغات (2-3) لدعمها، ولا تتوقع أن يتغير هذا في المستقبل.

في معظم الحالات الأخرى، كنت سأبحث في الحصول على مخطط قاعدة بيانات متعدد اللغات حقيقي. هناك بعض الإجابات الجيدة على StackOverflow التي تشرح الحلول الممكنة، مثل مخطط لقاعدة بيانات متعددة اللغات (انظر أيضًا إلى الحل رقم 5 في الإجابة الثانية). ومن الصدفة أن هذه الإجابة تم ربطها بمسألة GitHub الخاصة بـ TypeORM حول رسائل I18n (والمفتوحة وقت كتابة هذا النص).

في المشكلة، يقترح @michael-bromley حلاً جيدًا لـ TypeORM بناءً على هذا (تأكد من قراءة المتابعة لأنه يستخدم الآن نسخة معدلة). تطور الحل وتم تنفيذه في منتجه الإلكتروني مفتوح المصدر Vendure (انظر الكيان Product القابل للترجمة).

في نهاية المسألة، يتم أيضًا اقتراح علاقة من نوع N إلى M بين اللغة والمنتج.

بالنسبة لي، يبدو أن نهج مايكل بروملي جيد. لكنك ربما تضطر إلى استخلاص النسخة الأخيرة من مشروعه فندور.