Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
66 changes: 33 additions & 33 deletions i18n.lock
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ checksums:
content/4: fdb5d914fd53a8502b906bd89fe6f6d1
content/5: 51adf33450cab2ef392e93147386647c
content/6: 56ea06288e338a3c329d80a0f845b4a0
content/7: ae9cd7c558922aa5eba1d4dfd8915b2e
content/7: ac632ee57422256987ec69fa1fa55571
content/8: 51adf33450cab2ef392e93147386647c
content/9: 9c9e94642807e3728a1791e6cfd7516b
content/10: b0dd1b2af0249cadc8147fcd2824162d
Expand All @@ -19,24 +19,24 @@ checksums:
content/15: e6b92356986f64601ded73a3a9af1760
content/16: c925da800b56879b8b83d151a263f7bb
content/17: 385018fc789da284a0c96960fe3f6ec4
content/18: 39673a2fbbfcb3d6035f8a12f32a6e52
content/18: 2f6014a509bf52e9a0db39569885dfd5
content/19: 97f1f7f04ad2be288b05caacb61f66c3
content/20: 96afeb7ab8ab312120cb0dec235f407e
content/20: 9934e6aeaf9c4b8a33e70cc0601679a9
content/21: 7d2a6af3866f9c4beba6a53f207a599b
content/22: ca7c2dd535aa43aa1804fdb47c26cf42
content/23: 51adf33450cab2ef392e93147386647c
content/24: 8462a747b18279082fe601bc44c41b96
content/25: 9efc8f824620922048a0cbd5463e6baf
content/26: ac19d92f18727a2abce5e8b280412f72
content/27: a9dae9fb033168e0cc0128b42c133897
content/28: b581d7213fcd9fe1ffef252d04edafea
content/28: cab963eba977bb2538989ce8a02c4e50
content/29: a3eef7ecff263ece91113908c007b486
content/30: da146b6a33df8ab327349ef2cd9de5e1
content/30: 904b08ea9e505e43a60a01563ffc74a9
content/31: 520419d855f9069c9a48f0c590d2c60b
content/32: 384243c13b52adaa4aa619e8b10e65c3
content/33: 348895c13a0f06afbae7f3c832cbee98
content/34: c4d10409af53c453ed6bd243b8b97651
content/35: 0b7c38fd121008dcdbadbf16904c652f
content/32: d260e7ce3242f424076b40c1ad3e1f65
content/33: 69db4bb5d135eb2173ff00a3ad5fe4fc
content/34: 36593fbb8a8679de7088014740b04770
content/35: edc9976e14549f7b4f33bf15cd12b208
content/36: eb9ad4a218b52cd59a4d23e889627a62
content/37: 920e5ca759926d926da155e9656dcd02
content/38: c9c30d1a6b315c734b07060cd402b1fa
Expand All @@ -47,60 +47,60 @@ checksums:
content/43: 48e65dd974a85d67d43e5b3da6a78ff8
content/44: b7e51ae9cce80e0be35533cf8ccce5a7
content/45: 590b699bc7b9f756129e6f5c2b189c9e
content/46: f326987f3b0dd0162fa9a6f0b32ae181
content/47: 931dc0722c3fbd4cf5af40d67c92255c
content/46: ed02fd2d93a74e9d3c692ac1620990fe
content/47: a0364c9c16e27ff63e92db74f27bf8be
content/48: 05960209692c8fc636f7da40163fac04
content/49: 3aa3ab067923c80b37c641f3d6566831
content/49: 15617f8218be7bf0c656c608ed6541fc
content/50: a106f8db58f6d2e59173e9c68affa713
content/51: b9830587df82e6a5a870afa08f30544c
content/52: 309e2ce52a98e9bb0f6143996549eebb
content/52: 755163c96e23f2783dcba2e032349782
content/53: 1837a73959f9d011a5d1b21de26f815e
content/54: 2c22a291c616fe28a204ed2f10dd905b
content/54: 57c98b2f8f235598ae294f1d09eb1274
content/55: f485581183a6a7b40851438e5b2a1f1b
content/56: 9c985b24acc2d0cbbada8e161af777d5
content/56: 68c9888b4baef08387b1a21a7e44e6cd
content/57: 549f415f93ce5b29bfb16cf5fe0bf785
content/58: 51adf33450cab2ef392e93147386647c
content/59: 3f5c50b11a42c261f57641175fc69222
content/60: 2ff59376b60be9d37dd4845afb951e94
content/61: f2c27e1ada8ed0823ad58ad83eee76b1
content/62: 155571e96a847fa90449522f2b77a54b
content/63: 0190ab67d95a4c2d453fce9dae4508b6
content/63: 863046676d0454d212c40ddf7bb700e4
content/64: c925da800b56879b8b83d151a263f7bb
content/65: 8969b18c6bc5d0c7018aa965410a1be5
content/65: e16c6b546c5e32ee71ec11b54e456216
content/66: 36c89a48af78d0c2a439185e74c170ea
content/67: d1ef1d51d33535073230250d9e8dfee8
content/68: bd52587c186fb2501e9c47a7fb0b2189
content/69: 51adf33450cab2ef392e93147386647c
content/70: e961a3814821e9529a4d8e08cf496f17
content/71: 47c181bd7227e1dc0830adce14f94b14
content/71: d8bec837d112c3cd1c53438353b09ed8
content/72: 86788f54446ee8745226bdddf4055cb9
content/73: 155571e96a847fa90449522f2b77a54b
content/74: 751561cfdbc84712b32cd375697a362f
content/74: def921ed25d6ff8216542490a5fbc1a0
content/75: 092fde845f398b5322bb9b3e69a07ce6
content/76: 39b85b238c3a00ae1acb1d9ad7e834b7
content/76: d14a2bf38e78a012e159a7915a612a15
content/77: 1d76d5f8d23c18ea8789cac55c440bcb
content/78: e63e5f6a557b28fd6d2d9a2e6babe9d0
content/78: 4a2f9c451c8e957a54c2cb818b8cf34a
content/79: 79dc425a930dabcbc62c4af289f2e6d5
content/80: e2df426b0840fb9088fd7a33a9ac57bc
content/80: 3280b3907d020b3a691d740832ae70e7
content/81: be664aea2917020efb16c4946593f119
content/82: a206be4b15f56d3face035b3b7784b99
content/82: 2633e220ade7f46cb6d4c9273fd001d5
content/83: 0c5c9be2b269111bd0c388ee7a3184cd
content/84: b4c67f33e5014e9226490ca951ce9c47
content/85: 7a8782963389d2189f52be8c9d232de6
content/86: b7d77c41ac0a05293a82106fe76c5b63
content/87: 78d2b9d0bb00df8cd51d787d86d55c6e
content/84: dd0c693003eade2e536aff82f043d57a
content/85: ab82386736186c1e02042d3b0eff3d84
content/86: e55631402680e7be376aca390cdbd207
content/87: 4a14b613ffd8aec8fe21af632429259b
content/88: 7c42527fc9be269d599e31379c49a1fe
content/89: fb110f75da846dd85bc444842616ada1
content/89: f2630e5a88e09a612d4d8413c2d02745
content/90: bc32754a3325936c0e49c1bfbd710eac
content/91: 28ffebda0009dc7110d779aaf80de7d2
content/91: 26caa05ddbd48ee00bee8fe553321815
content/92: 0b8b6bb14eeae9d2ea344cabfefaa543
content/93: 2b8ba27330ad5af9422b0de27bc01e00
content/94: 3b04113f7cf1b64fe9a357a247925d34
content/95: 59e04b5c97c9c7fccdb6f284f3be9981
content/96: 51adf33450cab2ef392e93147386647c
content/97: 72b9fd0ce0e4bfc98dfd36fb35238fab
content/98: 982245493d09b3db1ef60824afa1bbf8
content/99: a252b562fc300883f2845e0c54a2d0cd
content/99: 0649cda26da4bb9ce185b9e8dd6ee41e
content/100: c234c213e540ee3bcffad017c9c9cb75
content/101: dcd5bc676b9b4956e66fe1045f86a5a0
content/102: fa2896ac28faaddc29540dba0f2ea7cf
Expand All @@ -111,6 +111,6 @@ checksums:
content/107: c708ae80a2e8b9752789a68a9bee176d
content/108: 11f28ceca8ebac9f2469cb627a1a7937
content/109: acb15cd882a954ec87b446478a0fc54b
content/110: 9d640420f03b6b66571e4e10ff8f2e23
content/111: 3a723392b702f4ca317da50a6204c68a
content/112: 013ff55aff5956cfe7cf59fdb790f8ed
content/110: 96c485d76c0e7f680d657f4e14beab7a
content/111: ea8aaa0be5ef7931c7f7e671b51a6cc1
content/112: 526a7243df6a8a7adaac235aa7271601
70 changes: 35 additions & 35 deletions readme/ar.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,13 +72,13 @@

## البدء السريع

| الأداة | حالة الاستخدام | الأمر السريع |
| --------------------------------- | -------------------------------------------------- | ---------------------------------- |
| [**MCP**](#lingodev-mcp) | إعداد i18n بمساعدة الذكاء الاصطناعي لتطبيقات React | الأمر: `Set up i18n` |
| [**CLI**](#lingodev-cli) | ترجمة ملفات JSON وYAML وmarkdown وCSV وPO | `npx lingo.dev@latest run` |
| [**CI/CD**](#lingodev-cicd) | خط أنابيب ترجمة آلي في GitHub Actions | `uses: lingodotdev/lingo.dev@main` |
| [**SDK**](#lingodev-sdk) | ترجمة وقت التشغيل للمحتوى الديناميكي | `npm install lingo.dev` |
| [**المترجم**](#lingodev-compiler) | ترجمة React في وقت البناء بدون أغلفة i18n | إضافة `withLingo()` |
| الأداة | حالة الاستخدام | الأمر السريع |
| ---------------------------------- | -------------------------------------------------- | ---------------------------------- |
| [**MCP**](#lingodev-mcp) | إعداد i18n بمساعدة الذكاء الاصطناعي لتطبيقات React | الأمر: `Set up i18n` |
| [**CLI**](#lingodev-cli) | ترجمة ملفات JSON وYAML وmarkdown وCSV وPO | `npx lingo.dev@latest run` |
| [**CI/CD**](#lingodev-cicd) | خط أنابيب ترجمة آلي في GitHub Actions | `uses: lingodotdev/lingo.dev@main` |
| [**SDK**](#lingodev-sdk) | ترجمة وقت التشغيل للمحتوى الديناميكي | `npm install lingo.dev` |
| [**Compiler**](#lingodev-compiler) | توطين React في وقت البناء بدون أغلفة i18n | إضافة `withLingo()` |

---

Expand Down Expand Up @@ -111,7 +111,7 @@ Set up i18n with the following locales: en, es, and pt-BR. The default locale is

سيقوم المساعد بـ:

1. تكوين التوجيه المعتمد على اللغة (مثل `/en`، `/es`، `/pt-BR`)
1. تكوين التوجيه المستند إلى اللغة (مثل `/en` و`/es` وINLINE_PLACEHOLDER_9f403b2a81eba81f_END)
2. إعداد مكونات تبديل اللغة
3. تنفيذ الكشف التلقائي عن اللغة
4. إنشاء ملفات التكوين اللازمة
Expand Down Expand Up @@ -140,14 +140,14 @@ npx lingo.dev@latest run

**كيف يعمل:**

1. يستخرج المحتوى القابل للترجمة من الملفات المُعدّة
2. يرسل المحتوى إلى مزود LLM للترجمة
3. يكتب المحتوى المترجم مرة أخرى إلى نظام الملفات
4. ينشئ ملف `i18n.lock` لتتبع الترجمات المكتملة (يتجنب المعالجة الزائدة)
1. استخراج المحتوى القابل للترجمة من الملفات المكونة
2. إرسال المحتوى إلى مزود LLM للترجمة
3. كتابة المحتوى المترجم مرة أخرى إلى نظام الملفات
4. إنشاء ملف `i18n.lock` لتتبع الترجمات المكتملة (تجنب المعالجة الزائدة)

**الإعداد:**

ينشئ أمر `init` ملف `i18n.json`. قم بإعداد اللغات والحاويات:
ينشئ أمر `init` ملف `i18n.json`. قم بتكوين اللغات والحاويات:

```json
{
Expand All @@ -165,7 +165,7 @@ npx lingo.dev@latest run
}
```

حقل `provider` اختياري (افتراضيًا Lingo.dev Engine). لمزودي LLM المخصصين:
حقل `provider` اختياري (الافتراضي هو Lingo.dev Engine). لمزودي LLM المخصصين:

```json
{
Expand Down Expand Up @@ -228,7 +228,7 @@ jobs:
**متطلبات الإعداد:**

1. أضف `LINGODOTDEV_API_KEY` إلى أسرار المستودع (Settings > Secrets and variables > Actions)
2. لسير عمل PR: فعّل "Allow GitHub Actions to create and approve pull requests" في Settings > Actions > General
2. لسير عمل PR: قم بتمكين "Allow GitHub Actions to create and approve pull requests" في Settings > Actions > General

**خيارات سير العمل:**

Expand All @@ -253,14 +253,14 @@ env:

**المدخلات المتاحة:**

| المدخل | الافتراضي | الوصف |
| -------------------- | ---------------------------------------------- | --------------------------------------- |
| `api-key` | (مطلوب) | مفتاح API الخاص بـ Lingo.dev |
| `pull-request` | `false` | إنشاء طلب سحب بدلاً من الالتزام المباشر |
| `commit-message` | `"feat: update translations via @LingoDotDev"` | رسالة التزام مخصصة |
| `pull-request-title` | `"feat: update translations via @LingoDotDev"` | عنوان طلب السحب المخصص |
| `working-directory` | `"."` | الدليل المراد التشغيل فيه |
| `parallel` | `false` | تفعيل المعالجة المتوازية |
| المدخل | الافتراضي | الوصف |
| -------------------- | ---------------------------------------------- | --------------------------------- |
| `api-key` | (مطلوب) | مفتاح API الخاص بـ Lingo.dev |
| `pull-request` | `false` | إنشاء PR بدلاً من الالتزام مباشرة |
| `commit-message` | `"feat: update translations via @LingoDotDev"` | رسالة التزام مخصصة |
| `pull-request-title` | `"feat: update translations via @LingoDotDev"` | عنوان PR مخصص |
| `working-directory` | `"."` | الدليل المراد التشغيل فيه |
| `parallel` | `false` | تمكين المعالجة المتوازية |

[اقرأ المستندات ←](https://lingo.dev/en/ci/github)

Expand Down Expand Up @@ -336,7 +336,7 @@ const locale = await lingoDotDev.recognizeLocale("Bonjour le monde");

### Lingo.dev Compiler

التدويل التقليدي متطفل. تقوم بتغليف كل سلسلة نصية في دوال `t()`، وابتكار مفاتيح ترجمة (`home.hero.title.v2`)، وصيانة ملفات JSON متوازية، ومشاهدة مكوناتك تنتفخ بشفرة التوطين الإضافية. إنه ممل للغاية لدرجة أن الفرق تؤجل التدويل حتى يصبح إعادة هيكلة ضخمة.
التدويل التقليدي متطفل. تقوم بتغليف كل نص في دوال `t()`، وابتكار مفاتيح الترجمة (`home.hero.title.v2`)، وصيانة ملفات JSON موازية، ومشاهدة مكوناتك تنتفخ بشيفرة التوطين الإضافية. إنها مملة للغاية لدرجة أن الفرق تؤجل التدويل حتى يصبح إعادة هيكلة ضخمة.

يُلغي Lingo.dev Compiler التعقيدات. اكتب مكونات React بنص إنجليزي عادي. يكتشف المُجمِّع النصوص القابلة للترجمة في وقت البناء ويُنشئ متغيرات محلية تلقائيًا. لا مفاتيح، لا ملفات JSON، لا دوال تغليف - فقط كود React يعمل بلغات متعددة.

Expand Down Expand Up @@ -432,28 +432,28 @@ export function LanguageSwitcher() {
}
```

**التطوير:** `npm run dev` (يستخدم مترجمًا وهميًا، بدون استدعاءات API)
**التطوير:** `npm run dev` (يستخدم المترجم الوهمي، بدون استدعاءات API)

**الإنتاج:** اضبط `usePseudotranslator: false`، ثم `next build`
**الإنتاج:** قم بتعيين `usePseudotranslator: false`، ثم `next build`

قم بإيداع دليل `.lingo/` في نظام التحكم بالإصدارات.

**الميزات الرئيسية:**

- تكلفة أداء صفرية في وقت التشغيل
- لا مفاتيح ترجمة أو ملفات JSON
- لا دوال `t()` أو مكونات تغليف `<T>`
- اكتشاف تلقائي للنصوص القابلة للترجمة في JSX
- لا توجد مفاتيح ترجمة أو ملفات JSON
- لا توجد دوال `t()` أو مكونات تغليف `<T>`
- الكشف التلقائي عن النصوص القابلة للترجمة في JSX
- دعم TypeScript
- تنسيق ICU MessageFormat للجمع
- تجاوزات يدوية عبر خاصية `data-lingo-override`
- التجاوزات اليدوية عبر خاصية `data-lingo-override`
- أداة محرر ترجمة مدمجة

**أوضاع البناء:**

- `pseudotranslator`: وضع التطوير مع ترجمات نائبة (بدون تكاليف API)
- `real`: إنشاء ترجمات فعلية باستخدام نماذج اللغة الكبيرة
- `cache-only`: وضع الإنتاج باستخدام ترجمات مُنشأة مسبقًا من CI (بدون استدعاءات API)
- `cache-only`: وضع الإنتاج باستخدام ترجمات مُنشأة مسبقاً من CI (بدون استدعاءات API)

**الأطر المدعومة:**

Expand All @@ -470,11 +470,11 @@ export function LanguageSwitcher() {

المساهمات مرحب بها. يرجى اتباع هذه الإرشادات:

1. **المشكلات:** [الإبلاغ عن الأخطاء أو طلب ميزات](https://github.com/lingodotdev/lingo.dev/issues)
1. **المشكلات:** [الإبلاغ عن الأخطاء أو طلب الميزات](https://github.com/lingodotdev/lingo.dev/issues)
2. **طلبات السحب:** [إرسال التغييرات](https://github.com/lingodotdev/lingo.dev/pulls)
- كل طلب سحب يتطلب مجموعة تغييرات: `pnpm new` (أو `pnpm new:empty` للتغييرات التي لا تتطلب إصداراً)
- تأكد من نجاح الاختبارات قبل الإرسال
3. **التطوير:** هذا مستودع أحادي من نوع pnpm + turborepo
3. **التطوير:** هذا مستودع أحادي pnpm + turborepo
- تثبيت التبعيات: `pnpm install`
- تشغيل الاختبارات: `pnpm test`
- البناء: `pnpm build`
Expand All @@ -500,9 +500,9 @@ export function LanguageSwitcher() {
**إضافة لغة جديدة:**

1. أضف رمز اللغة إلى [`i18n.json`](./i18n.json) باستخدام [تنسيق BCP-47](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale)
2. أرسل طلب سحب
2. قدم طلب سحب

**تنسيق لغة BCP-47:** `language[-Script][-REGION]`
**تنسيق اللغة BCP-47:** `language[-Script][-REGION]`

- `language`: ISO 639-1/2/3 (أحرف صغيرة): `en`، `zh`، `bho`
- `Script`: ISO 15924 (حالة العنوان): `Hans`، `Hant`، `Latn`
Expand Down
Loading