Magic Translate vs. react-intl
react-intl هو جزء من FormatJS. يقوم بتنسيق الرسائل والتواريخ والأرقام باستخدام صيغة الرسالة ICU، ويمكنك توفير الترجمات لكل لغة. Magic Translate يترجم النص الموجود في مكوناتك مباشرةً، حتى لا تكتب أي ترجمات أو تحتفظ بها.
في لمحة
| Magic Translate | react-intl | |
|---|---|---|
| كيف تكتب النص | كلماتك الخاصة، ملفوفة في <T> | <FormattedMessage> مع معرف ورسالة افتراضية |
| الترجمات | ترجمة آلية، تم إنشاؤها تلقائيًا | تقوم باستخراج الرسائل وترجمتها |
| ملفات الرسائل | لا شيء | ملف واحد لكل لغة |
| التواريخ والأرقام | استخدم واجهات برمجة التطبيقات Intl للمتصفح | المكونات المضمنة وبناء الجملة ICU |
| عرض الخادم | مكونات خادم React وNext.js | نعم، مع إعداد إضافي |
| السعر | خطة مجانية، ثم خطط شهرية تعتمد على الاستخدام | مفتوح المصدر ومجاني |
كيف تختلف الشفرة
باستخدام react-intl، تحتوي كل رسالة على معرف، وتوجد الترجمات في ملفات منفصلة:
import { FormattedMessage } from 'react-intl';const Welcome = () => (<FormattedMessage id="home.welcome" defaultMessage="Welcome back!" />);// Then extract the messages, translate them for every language// and load the right file when the app starts.
باستخدام Magic Translate، تكتب الرسالة مرة واحدة:
import { T } from '@magic-translate/react';const Welcome = () => <T>Welcome back!</T>;
متى تختار Magic Translate
- تريد تطبيقك بالعديد من اللغات دون سير عمل الترجمة.
- تتغير نصوصك كثيرًا، وتريد أن تظل كل لغة محدثة.
- تريد لغات جديدة دون الدفع أو انتظار المترجمين.
متى تختار react-intl
- أنت بحاجة إلى صيغة رسالة ICU لصيغ الجمع المعقدة والجنس.
- يجب كتابة ترجماتك أو مراجعتها من قبل الأشخاص.
- تريد مكتبة مجانية مفتوحة المصدر بدون خدمة خارجية.
استخدام كليهما
يعمل الاثنان بشكل جيد معًا. استخدم react-intl أو Intl APIs لتنسيق التواريخ والأرقام والعملات، و Magic Translate لترجمة النص المحيط بها.
هل أنت مستعد لتجربته؟ اتبع دليل البدء لترجمة المكون الأول في خمس دقائق.