You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
التدويل التقليدي متطفل. تقوم بتغليف كل سلسلة نصية في دوال `t()`، وابتكار مفاتيح ترجمة (`home.hero.title.v2`)، وصيانة ملفات JSON متوازية، ومشاهدة مكوناتك تنتفخ بشفرة التوطين الإضافية. إنه ممل للغاية لدرجة أن الفرق تؤجل التدويل حتى يصبح إعادة هيكلة ضخمة.
339
+
حلول التدويل التقليدية تدخلية. يجب تغليف كل سلسلة نصية بدوال `t()`، وابتكار مفاتيح ترجمة (`home.hero.title.v2`)، وصيانة ملفات JSON متوازية، وملاحظة تضخم مكوناتك بسبب شيفرة التوطين الزائدة. هذا العمل مرهق لدرجة أن الفرق تؤجل التدويل حتى يتحول لإعادة هيكلة ضخمة.
340
340
341
341
يُلغي Lingo.dev Compiler التعقيدات. اكتب مكونات React بنص إنجليزي عادي. يكتشف المُجمِّع النصوص القابلة للترجمة في وقت البناء ويُنشئ متغيرات محلية تلقائيًا. لا مفاتيح، لا ملفات JSON، لا دوال تغليف - فقط كود React يعمل بلغات متعددة.
342
342
@@ -432,28 +432,28 @@ export function LanguageSwitcher() {
432
432
}
433
433
```
434
434
435
-
**التطوير:** `npm run dev` (يستخدم مترجمًا وهميًا، بدون استدعاءات API)
435
+
**التطوير:** `npm run dev` (يستخدم مترجمًا شبه حقيقي، بلا استدعاءات API)
436
436
437
-
**الإنتاج:** اضبط `usePseudotranslator: false`، ثم `next build`
437
+
**الإنتاج:** عيّن `usePseudotranslator: false`، ثم `next build`
438
438
439
-
قم بإيداع دليل `.lingo/` في نظام التحكم بالإصدارات.
439
+
قم بإيداع مجلد `.lingo/` في نظام التحكم بالإصدارات.
440
440
441
441
**الميزات الرئيسية:**
442
442
443
-
- تكلفة أداء صفرية في وقت التشغيل
443
+
- تكلفة أداء وقت التشغيل = صفر
444
444
- لا مفاتيح ترجمة أو ملفات JSON
445
445
- لا دوال `t()` أو مكونات تغليف `<T>`
446
-
- اكتشاف تلقائي للنصوص القابلة للترجمة في JSX
446
+
- الكشف التلقائي عن النصوص القابلة للترجمة في JSX
447
447
- دعم TypeScript
448
-
- تنسيق ICU MessageFormat للجمع
449
-
- تجاوزات يدوية عبر خاصية `data-lingo-override`
450
-
- أداة محرر ترجمة مدمجة
448
+
- دعم الجمع باستخدام ICU MessageFormat
449
+
- تجاوز يدوي عبر خاصية `data-lingo-override`
450
+
- أداة تحرير ترجمة مدمجة
451
451
452
452
**أوضاع البناء:**
453
453
454
-
- `pseudotranslator`: وضع التطوير مع ترجمات نائبة (بدون تكاليف API)
454
+
- `pseudotranslator`: وضع التطوير مع ترجمات نائبة (بدون تكلفة API)
455
455
- `real`: إنشاء ترجمات فعلية باستخدام نماذج اللغة الكبيرة
456
-
- `cache-only`: وضع الإنتاج باستخدام ترجمات مُنشأة مسبقًا من CI (بدون استدعاءات API)
456
+
- `cache-only`: وضع الإنتاج باستخدام الترجمات المُنشأة مسبقًا من CI (بدون استدعاءات API)
457
457
458
458
**الأطر المدعومة:**
459
459
@@ -470,11 +470,11 @@ export function LanguageSwitcher() {
470
470
471
471
المساهمات مرحب بها. يرجى اتباع هذه الإرشادات:
472
472
473
-
1. **المشكلات:** [الإبلاغ عن الأخطاء أو طلب ميزات](https://github.com/lingodotdev/lingo.dev/issues)
- كل PR يتطلب مجموعة تغييرات: `pnpm new`(أو `pnpm new:empty` للتعديلات غير الإصدارية)
476
+
- تأكد من اجتياز جميع الاختبارات قبل الإرسال
477
+
3. **التطوير:** هذا مستودع أحادي pnpm + turborepo
478
478
- تثبيت التبعيات: `pnpm install`
479
479
- تشغيل الاختبارات: `pnpm test`
480
480
- البناء: `pnpm build`
@@ -499,12 +499,12 @@ export function LanguageSwitcher() {
499
499
500
500
**إضافة لغة جديدة:**
501
501
502
-
1. أضف رمز اللغة إلى [`i18n.json`](./i18n.json) باستخدام [تنسيق BCP-47](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale)
502
+
1. أضف رمز اللغة إلى [`i18n.json`](./i18n.json) مستخدمًا [صيغة BCP-47](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale)
503
503
2. أرسل طلب سحب
504
504
505
-
**تنسيق لغة BCP-47:** `language[-Script][-REGION]`
505
+
**صيغة لغة BCP-47:** `language[-Script][-REGION]`
506
506
507
507
- `language`: ISO 639-1/2/3 (أحرف صغيرة): `en`، `zh`، `bho`
508
-
- `Script`: ISO 15924 (حالة العنوان): `Hans`، `Hant`، `Latn`
508
+
- `Script`: ISO 15924 (حروف أولى كبيرة): `Hans`، `Hant`، `Latn`
509
509
- `REGION`: ISO 3166-1 alpha-2 (أحرف كبيرة): `US`، `CN`، `IN`
0 commit comments