Mission
Better Translate هو مركزي بشكل مقصود، يبدأ من حيث تهم الترجمات الآمنة من حيث النوع (type-safe) أكثر اليوم:
- TypeScript
- Node.js و Bun
- React والنظام البيئي الحديث لـ React
وهذا يتضمن أطر عمل مثل:
- Next.js (App Router)
- TanStack Start
- React Router
- React Native
هذا ليس عرضياً، بل يتعلق ببناء نظام واحد متين يعمل عبر المكدس الذي تستخدمه معظم الفرق بالفعل.
أين نحن اليوم
تم تصميم Better Translate ليشعر وكأنه أصلي داخل مكدس TypeScript الحديث.
نواة واحدة. نموذج ترجمة واحد. في كل مكان.
سواء كنت تبني:
- backend باستخدام Node.js أو Bun
- تطبيق ويب باستخدام React
- تطبيق جوال باستخدام React Native
- أو تطبيق fullstack باستخدام Next.js أو TanStack Start
يجب أن تكون التجربة متشابهة، لا أدوات مختلفة لكل إطار عمل، لا أنماط مختلفة لتتعلمها. التركيز الآن بسيط، اجعل هذه التجربة متينة، ويمكن التنبؤ بها، وسريعة في الاستخدام.
الهدف النهائي
الترجمة اليوم لا تزال تعتمد بشكل كبير على الأنظمة المبنية على المفاتيح، وهذا يخلق مشاكل على نطاق واسع. تخيل تطبيقاً يحتوي على آلاف الرسائل:
- آلاف المفاتيح للحفاظ عليها
- آلاف التعيينات للحفاظ عليها متزامنة
- آلاف الترجمات لتوليدها ومراجعتها
حتى مع الأدوات الحديثة، يصبح هذا مكلفاً من حيث الوقت والجهد والتكلفة. وحتى عندما تكون آلية، لا تلتقط الترجمات دائماً النية. تتغير النبرة، ويتشوه المعنى، والنتيجة ليست دائماً صحيحة.
يهدف Better Translate إلى الابتعاد عن هذا النموذج، تقليل الاعتماد على ملفات الترجمة المحددة مسبقاً وأنظمة المفاتيح الصارمة، والانتقال نحو نهج أكثر مباشرة، مدفوعاً بوقت التشغيل.
نظام حيث:
- تبقى الترجمات أقرب إلى مصدر الحقيقة
- يتم الحفاظ على النية، لا مجرد تحويلها
- وتبقى تجربة المطور بسيطة ويمكن التنبؤ بها
يجب أن يعمل هذا عبر كل طبقة، العميل والخادم وواجهات برمجة التطبيقات
إلى أين نتجه
سينمو النطاق، لكن بحذر. سيتم دعم المزيد من أطر العمل بمرور الوقت، خاصة داخل النظام البيئي React وما وراءه.
التوسع ليس الهدف، الاتساق هو الهدف. يجب أن يتوسع Better Translate عبر:
- المزيد من أطر العمل
- المزيد من بيئات التشغيل
- في النهاية، المزيد من اللغات بخلاف TypeScript
- وبدون الاعتماد على ملفات مفاتيح كبيرة ومتنامية باستمرار
بدون كسر الفكرة الأساسية: نظام واحد، في كل مكان
لماذا هذا مهم
الترجمات ليست معزولة، فهي تعيش عبر منتجك بأكمله: الواجهة الأمامية والخلفية والجوال وكل ما بينهما. يجب أن تعكس الأدوات ذلك.
المهمة هي البدء بأساس قوي في التطبيقات التي تضع TypeScript في المقام الأول، ثم التطور دون فقدان ما يجعلها ذات قيمة:
- أمان الأنواع افتراضياً
- الاتساق عبر المكدس
- عدم الاعتماد على أنظمة تعيين المفاتيح الصارمة
- ونظام لا تضطر إلى إعادة تعلمه في كل مرة