diff --git a/i18n.lock b/i18n.lock index 948b531d8..008b7cc5e 100644 --- a/i18n.lock +++ b/i18n.lock @@ -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 @@ -19,9 +19,9 @@ 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 @@ -29,14 +29,14 @@ checksums: 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 @@ -47,52 +47,52 @@ 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 @@ -100,7 +100,7 @@ checksums: content/96: 51adf33450cab2ef392e93147386647c content/97: 72b9fd0ce0e4bfc98dfd36fb35238fab content/98: 982245493d09b3db1ef60824afa1bbf8 - content/99: a252b562fc300883f2845e0c54a2d0cd + content/99: 0649cda26da4bb9ce185b9e8dd6ee41e content/100: c234c213e540ee3bcffad017c9c9cb75 content/101: dcd5bc676b9b4956e66fe1045f86a5a0 content/102: fa2896ac28faaddc29540dba0f2ea7cf @@ -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 diff --git a/readme/ar.md b/readme/ar.md index 37dcb5e21..c59eff1f4 100644 --- a/readme/ar.md +++ b/readme/ar.md @@ -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()` | --- @@ -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` و`/pt-BR`) 2. إعداد مكونات تبديل اللغة 3. تنفيذ الكشف التلقائي عن اللغة 4. إنشاء ملفات التكوين اللازمة @@ -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 { @@ -165,7 +165,7 @@ npx lingo.dev@latest run } ``` -حقل `provider` اختياري (افتراضيًا Lingo.dev Engine). لمزودي LLM المخصصين: +حقل `provider` اختياري (الافتراضي هو Lingo.dev Engine). لمزودي LLM المخصصين: ```json { @@ -227,8 +227,8 @@ jobs: **متطلبات الإعداد:** -1. أضف `LINGODOTDEV_API_KEY` إلى أسرار المستودع (Settings > Secrets and variables > Actions) -2. لسير عمل PR: فعّل "Allow GitHub Actions to create and approve pull requests" في Settings > Actions > General +1. أضف `LINGODOTDEV_API_KEY` إلى أسرار المستودع (الإعدادات > الأسرار والمتغيرات > الإجراءات) +2. لسير عمل PR: قم بتمكين "السماح لـ GitHub Actions بإنشاء طلبات السحب والموافقة عليها" في الإعدادات > الإجراءات > عام **خيارات سير العمل:** @@ -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) @@ -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 يعمل بلغات متعددة. @@ -432,17 +432,17 @@ export function LanguageSwitcher() { } ``` -**التطوير:** `npm run dev` (يستخدم مترجمًا وهميًا، بدون استدعاءات API) +**التطوير:** `npm run dev` (يستخدم المترجم الوهمي، بدون استدعاءات API) -**الإنتاج:** اضبط `usePseudotranslator: false`، ثم `next build` +**الإنتاج:** قم بتعيين `usePseudotranslator: false`، ثم `next build` قم بإيداع دليل `.lingo/` في نظام التحكم بالإصدارات. **الميزات الرئيسية:** - تكلفة أداء صفرية في وقت التشغيل -- لا مفاتيح ترجمة أو ملفات JSON -- لا دوال `t()` أو مكونات تغليف `` +- لا توجد مفاتيح ترجمة أو ملفات JSON +- لا توجد دوال `t()` أو مكونات تغليف `` - اكتشاف تلقائي للنصوص القابلة للترجمة في JSX - دعم TypeScript - تنسيق ICU MessageFormat للجمع @@ -453,7 +453,7 @@ export function LanguageSwitcher() { - `pseudotranslator`: وضع التطوير مع ترجمات نائبة (بدون تكاليف API) - `real`: إنشاء ترجمات فعلية باستخدام نماذج اللغة الكبيرة -- `cache-only`: وضع الإنتاج باستخدام ترجمات مُنشأة مسبقًا من CI (بدون استدعاءات API) +- `cache-only`: وضع الإنتاج باستخدام ترجمات مُنشأة مسبقاً من CI (بدون استدعاءات API) **الأطر المدعومة:** @@ -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` @@ -500,7 +500,7 @@ 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]` diff --git a/readme/as-IN.md b/readme/as-IN.md index 44f63932d..90a928e2f 100644 --- a/readme/as-IN.md +++ b/readme/as-IN.md @@ -71,12 +71,12 @@ ## দ্ৰুত আৰম্ভণি -| টুল | ব্যৱহাৰৰ ক্ষেত্ৰ | দ্ৰুত কমাণ্ড | +| সঁজুলি | ব্যৱহাৰৰ ক্ষেত্ৰ | দ্ৰুত আদেশ | | ---------------------------------- | ------------------------------------------------ | ---------------------------------- | -| [**MCP**](#lingodev-mcp) | React এপৰ বাবে AI-সহায়ক i18n ছেটআপ | প্ৰম্পট: `Set up i18n` | +| [**MCP**](#lingodev-mcp) | React এপৰ বাবে AI-সহায়ক i18n ছেটআপ | প্ৰমপ্ট: `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` | +| [**SDK**](#lingodev-sdk) | গতিশীল সমল বাবে ৰানটাইম অনুবাদ | `npm install lingo.dev` | | [**Compiler**](#lingodev-compiler) | i18n wrapper অবিহনে বিল্ড-টাইম React স্থানীয়কৰণ | `withLingo()` প্লাগইন | --- @@ -110,10 +110,10 @@ Set up i18n with the following locales: en, es, and pt-BR. The default locale is সহায়কে: -1. লোকেল-ভিত্তিক ৰাউটিং কনফিগাৰ কৰিব (যেনে, `/en`, `/es`, `/pt-BR`) -2. ভাষা সলনিকাৰী কম্পোনেণ্ট ছেটআপ কৰিব -3. স্বয়ংক্ৰিয় লোকেল চিনাক্তকৰণ ইমপ্লিমেণ্ট কৰিব -4. প্ৰয়োজনীয় কনফিগাৰেশ্যন ফাইল জেনাৰেট কৰিব +1. লোকেল-ভিত্তিক ৰাউটিং কনফিগাৰ কৰক (যেনে, `/en`, `/es`, `/pt-BR`) +2. ভাষা সলনি কৰা কম্পোনেণ্ট ছেটআপ কৰক +3. স্বয়ংক্ৰিয় লোকেল চিনাক্তকৰণ ৰূপায়ণ কৰক +4. প্ৰয়োজনীয় কনফিগাৰেচন ফাইল জেনেৰেট কৰক **টোকা:** AI-সহায়িত কোড জেনাৰেশ্যন নন-ডিটাৰমিনিষ্টিক। কমিট কৰাৰ আগতে জেনাৰেট কৰা কোড পৰ্যালোচনা কৰক। @@ -139,14 +139,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 { @@ -164,7 +164,7 @@ npx lingo.dev@latest run } ``` -`provider` ফিল্ডটো ঐচ্ছিক (ডিফল্ট Lingo.dev Engine)। কাষ্টম LLM প্ৰভাইডাৰৰ বাবে: +`provider` ফিল্ড ঐচ্ছিক (ডিফল্ট Lingo.dev Engine)। কাষ্টম LLM প্ৰদানকাৰীৰ বাবে: ```json { @@ -258,7 +258,7 @@ env: | `pull-request` | `false` | প্ৰত্যক্ষভাৱে কমিট কৰাৰ পৰিৱৰ্তে PR সৃষ্টি কৰক | | `commit-message` | `"feat: update translations via @LingoDotDev"` | কাষ্টম কমিট বাৰ্তা | | `pull-request-title` | `"feat: update translations via @LingoDotDev"` | কাষ্টম PR শিৰোনাম | -| `working-directory` | `"."` | চলাবলৈ ডাইৰেক্টৰী | +| `working-directory` | `"."` | চলাবলগীয়া ডাইৰেক্টৰী | | `parallel` | `false` | সমান্তৰাল প্ৰচেছিং সক্ষম কৰক | [ডকুমেণ্ট পঢ়ক →](https://lingo.dev/en/ci/github) @@ -335,7 +335,7 @@ const locale = await lingoDotDev.recognizeLocale("Bonjour le monde"); ### Lingo.dev Compiler -পৰম্পৰাগত i18n আক্ৰমণাত্মক। আপুনি প্ৰতিটো ষ্ট্ৰিং `t()` ফাংশ্যনত ৰেপ কৰে, অনুবাদ কী উদ্ভাৱন কৰে (`home.hero.title.v2`), সমান্তৰাল JSON ফাইল মেইণ্টেইন কৰে, আৰু আপোনাৰ কম্পোনেণ্টবোৰ লোকেলাইজেশ্যন বয়লাৰপ্লেটৰ সৈতে ফুলি উঠা দেখে। ই ইমানেই ক্লান্তিকৰ যে টিমসমূহে আন্তৰ্জাতিকীকৰণ পিছুৱাই দিয়ে যেতিয়ালৈকে ই এটা বৃহৎ ৰিফেক্টৰ নহয়। +পৰম্পৰাগত i18n আক্ৰমণাত্মক। আপুনি প্ৰতিটো ষ্ট্ৰিং `t()` ফাংচনত মেৰিয়াই লয়, অনুবাদ কী (`home.hero.title.v2`) উদ্ভাৱন কৰে, সমান্তৰাল JSON ফাইল বজাই ৰাখে, আৰু আপোনাৰ কম্পোনেণ্টবোৰ স্থানীয়কৰণ বয়লাৰপ্লেটৰ সৈতে ফুলি উঠা দেখে। ই ইমানেই ক্লান্তিকৰ যে দলবোৰে আন্তৰ্জাতিকীকৰণ পিছুৱাই দিয়ে যেতিয়ালৈকে ই এটা বৃহৎ ৰিফেক্টৰ নহয়। Lingo.dev Compiler এ আনুষ্ঠানিকতা আঁতৰায়। সাধাৰণ ইংৰাজী টেক্সটৰ সৈতে React কম্পোনেণ্ট লিখক। কম্পাইলাৰে বিল্ড টাইমত অনুবাদযোগ্য ষ্ট্ৰিং চিনাক্ত কৰে আৰু স্বয়ংক্ৰিয়ভাৱে স্থানীয়কৃত ভেৰিয়েণ্ট জেনেৰেট কৰে। কোনো কী নাই, কোনো JSON ফাইল নাই, কোনো ৰেপাৰ ফাংচন নাই - কেৱল React ক'ড যি একাধিক ভাষাত কাম কৰে। @@ -433,26 +433,26 @@ export function LanguageSwitcher() { **ডেভেলপমেণ্ট:** `npm run dev` (pseudotranslator ব্যৱহাৰ কৰে, কোনো API কল নাই) -**প্ৰডাকশ্যন:** `usePseudotranslator: false` ছেট কৰক, তাৰপিছত `next build` +**প্ৰডাকচন:** `usePseudotranslator: false` ছেট কৰক, তাৰ পিছত `next build` -`.lingo/` ডাইৰেক্টৰী ভাৰ্ছন কণ্ট্ৰ'লত কমিট কৰক। +`.lingo/` ডাইৰেক্টৰী সংস্কৰণ নিয়ন্ত্ৰণত কমিট কৰক। **মুখ্য বৈশিষ্ট্যসমূহ:** -- শূন্য ৰানটাইম পাৰফৰ্মেন্স খৰচ +- শূন্য ৰানটাইম পাৰফৰমেন্স খৰচ - কোনো অনুবাদ কী বা JSON ফাইল নাই - কোনো `t()` ফাংচন বা `` ৰেপাৰ কম্পোনেণ্ট নাই -- JSX ত অনুবাদযোগ্য টেক্সটৰ স্বয়ংক্ৰিয় চিনাক্তকৰণ +- JSX-ত অনুবাদযোগ্য পাঠৰ স্বয়ংক্ৰিয় সনাক্তকৰণ - TypeScript সমৰ্থন - বহুবচনৰ বাবে ICU MessageFormat - `data-lingo-override` এট্ৰিবিউটৰ জৰিয়তে মেনুৱেল অভাৰৰাইড -- বিল্ট-ইন অনুবাদ এডিটৰ ৱিজেট +- বিল্ট-ইন অনুবাদ সম্পাদক ৱিজেট **বিল্ড ম'ডসমূহ:** - `pseudotranslator`: প্লেচহ'ল্ডাৰ অনুবাদৰ সৈতে ডেভেলপমেণ্ট ম'ড (কোনো API খৰচ নাই) -- `real`: LLM ব্যৱহাৰ কৰি প্ৰকৃত অনুবাদ জেনেৰেট কৰক -- `cache-only`: CI ৰ পৰা পূৰ্ব-জেনেৰেট কৰা অনুবাদ ব্যৱহাৰ কৰি প্ৰডাকশ্যন ম'ড (কোনো API কল নাই) +- `real`: LLM ব্যৱহাৰ কৰি প্ৰকৃত অনুবাদ সৃষ্টি কৰক +- `cache-only`: CI ৰ পৰা পূৰ্ব-সৃষ্ট অনুবাদ ব্যৱহাৰ কৰি প্ৰডাকচন ম'ড (কোনো API কল নাই) **সমৰ্থিত ফ্ৰেমৱৰ্কসমূহ:** @@ -469,13 +469,13 @@ export function LanguageSwitcher() { অৱদান স্বাগতম। অনুগ্ৰহ কৰি এই নিৰ্দেশনাসমূহ অনুসৰণ কৰক: -1. **সমস্যাসমূহ:** [বাগ ৰিপ'ৰ্ট কৰক বা বৈশিষ্ট্যৰ অনুৰোধ কৰক](https://github.com/lingodotdev/lingo.dev/issues) -2. **পুল ৰিকুৱেষ্টসমূহ:** [পৰিৱৰ্তনসমূহ জমা দিয়ক](https://github.com/lingodotdev/lingo.dev/pulls) - - প্ৰতিটো PR ৰ বাবে এটা changeset প্ৰয়োজন: `pnpm new` (বা non-release পৰিৱৰ্তনৰ বাবে `pnpm new:empty`) - - জমা দিয়াৰ আগতে পৰীক্ষাসমূহ পাছ হোৱাটো নিশ্চিত কৰক +1. **সমস্যা:** [বাগ ৰিপ'ৰ্ট কৰক বা বৈশিষ্ট্য অনুৰোধ কৰক](https://github.com/lingodotdev/lingo.dev/issues) +2. **পুল ৰিকুৱেষ্ট:** [পৰিৱৰ্তন জমা দিয়ক](https://github.com/lingodotdev/lingo.dev/pulls) + - প্ৰতিটো PR-ৰ বাবে এটা চেঞ্জছেটৰ প্ৰয়োজন: `pnpm new` (বা নন-ৰিলিজ পৰিৱৰ্তনৰ বাবে `pnpm new:empty`) + - জমা দিয়াৰ আগতে পৰীক্ষা পাছ হোৱাটো নিশ্চিত কৰক 3. **ডেভেলপমেণ্ট:** এইটো এটা pnpm + turborepo monorepo - - নিৰ্ভৰশীলতাসমূহ ইনষ্টল কৰক: `pnpm install` - - পৰীক্ষাসমূহ চলাওক: `pnpm test` + - নিৰ্ভৰশীলতা ইনষ্টল কৰক: `pnpm install` + - পৰীক্ষা চলাওক: `pnpm test` - বিল্ড: `pnpm build` **সমৰ্থন:** [Discord সম্প্ৰদায়](https://lingo.dev/go/discord) @@ -498,12 +498,12 @@ export function LanguageSwitcher() { **নতুন ভাষা যোগ কৰা:** -1. [`i18n.json`](./i18n.json) ত [BCP-47 ফৰ্মেট](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale) ব্যৱহাৰ কৰি locale code যোগ কৰক -2. এটা pull request জমা দিয়ক +1. [BCP-47 ফৰ্মেট](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale) ব্যৱহাৰ কৰি [`i18n.json`](./i18n.json)-ত লোকেল ক'ড যোগ কৰক +2. এটা পুল ৰিকুৱেষ্ট জমা দিয়ক -**BCP-47 locale ফৰ্মেট:** `language[-Script][-REGION]` +**BCP-47 লোকেল ফৰ্মেট:** `language[-Script][-REGION]` -- `language`: ISO 639-1/2/3 (lowercase): `en`, `zh`, `bho` -- `Script`: ISO 15924 (title case): `Hans`, `Hant`, `Latn` -- `REGION`: ISO 3166-1 alpha-2 (uppercase): `US`, `CN`, `IN` -- উদাহৰণসমূহ: `en`, `pt-BR`, `zh-Hans`, `sr-Cyrl-RS` +- `language`: ISO 639-1/2/3 (সৰু আখৰ): `en`, `zh`, `bho` +- `Script`: ISO 15924 (টাইটেল কেছ): `Hans`, `Hant`, `Latn` +- `REGION`: ISO 3166-1 alpha-2 (ডাঙৰ আখৰ): `US`, `CN`, `IN` +- উদাহৰণ: `en`, `pt-BR`, `zh-Hans`, `sr-Cyrl-RS` diff --git a/readme/bho.md b/readme/bho.md index e706db75a..3c2f19193 100644 --- a/readme/bho.md +++ b/readme/bho.md @@ -71,12 +71,12 @@ ## तुरंत शुरुआत -| टूल | उपयोग केस | त्वरित कमांड | +| औजार | उपयोग के मामला | त्वरित कमांड | | ---------------------------------- | ---------------------------------------------------- | ---------------------------------- | | [**MCP**](#lingodev-mcp) | React ऐप्स खातिर AI-सहायता प्राप्त i18n सेटअप | प्रॉम्प्ट: `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` | +| [**SDK**](#lingodev-sdk) | गतिशील सामग्री खातिर रनटाइम अनुवाद | `npm install lingo.dev` | | [**Compiler**](#lingodev-compiler) | i18n रैपर बिना बिल्ड-टाइम React स्थानीयकरण | `withLingo()` प्लगइन | --- @@ -110,10 +110,10 @@ Set up i18n with the following locales: en, es, and pt-BR. The default locale is असिस्टेंट करी: -1. लोकेल-आधारित राउटिंग कॉन्फ़िगर करी (जइसे, `/en`, `/es`, `/pt-BR`) -2. भाषा स्विचिंग कंपोनेंट सेटअप करी -3. ऑटोमैटिक लोकेल डिटेक्शन लागू करी -4. जरूरी कॉन्फ़िगरेशन फाइल जेनरेट करी +1. लोकेल-आधारित रूटिंग कॉन्फ़िगर करीं (जइसे कि, `/en`, `/es`, `/pt-BR`) +2. भाषा स्विचिंग कंपोनेंट सेट अप करीं +3. स्वचालित लोकेल पहचान लागू करीं +4. जरूरी कॉन्फ़िगरेशन फाइल सभ जेनरेट करीं **नोट:** AI-सहायता प्राप्त कोड जेनरेशन गैर-निर्धारक बा। कमिट करे से पहिले जेनरेट कइल कोड के समीक्षा करीं। @@ -140,8 +140,8 @@ npx lingo.dev@latest run **ई कइसे काम करेला:** 1. कॉन्फ़िगर कइल फाइल सभ से अनुवाद योग्य सामग्री निकालेला -2. अनुवाद खातिर सामग्री के LLM प्रोवाइडर के भेजेला -3. अनुवादित सामग्री के वापस फाइलसिस्टम में लिखेला +2. अनुवाद खातिर LLM प्रदाता के सामग्री भेजेला +3. अनुवादित सामग्री के फाइल सिस्टम में वापस लिखेला 4. पूरा भइल अनुवाद के ट्रैक करे खातिर `i18n.lock` फाइल बनावेला (अनावश्यक प्रोसेसिंग से बचावेला) **कॉन्फ़िगरेशन:** @@ -164,7 +164,7 @@ npx lingo.dev@latest run } ``` -`provider` फील्ड वैकल्पिक बा (डिफ़ॉल्ट रूप से Lingo.dev Engine)। कस्टम LLM प्रोवाइडर खातिर: +`provider` फील्ड वैकल्पिक बा (डिफ़ॉल्ट Lingo.dev Engine बा)। कस्टम LLM प्रदाता खातिर: ```json { @@ -252,14 +252,14 @@ env: **उपलब्ध इनपुट:** -| इनपुट | डिफ़ॉल्ट | विवरण | -| -------------------- | ---------------------------------------------- | ------------------------------- | -| `api-key` | (जरूरी) | Lingo.dev API की | -| `pull-request` | `false` | सीधे कमिट करे के बजाय PR बनाईं | -| `commit-message` | `"feat: update translations via @LingoDotDev"` | कस्टम कमिट संदेश | -| `pull-request-title` | `"feat: update translations via @LingoDotDev"` | कस्टम PR शीर्षक | -| `working-directory` | `"."` | जवना डायरेक्टरी में चलावे के बा | -| `parallel` | `false` | समानांतर प्रोसेसिंग सक्षम करीं | +| इनपुट | डिफ़ॉल्ट | विवरण | +| -------------------- | ---------------------------------------------- | ------------------------------ | +| `api-key` | (जरूरी) | Lingo.dev API कुंजी | +| `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) @@ -335,7 +335,7 @@ const locale = await lingoDotDev.recognizeLocale("Bonjour le monde"); ### Lingo.dev Compiler -पारंपरिक i18n आक्रामक बा। रउआ हर स्ट्रिंग के `t()` फंक्शन में लपेटीला, अनुवाद की (`home.hero.title.v2`) के आविष्कार करीला, समानांतर JSON फाइल के मेंटेन करीला, आ अपना कंपोनेंट के लोकलाइजेशन बॉयलरप्लेट से फूलल देखीला। ई एतना थकाऊ बा कि टीम अंतर्राष्ट्रीयकरण के तब तक टाल देवेला जब तक ई एगो बहुत बड़ रिफैक्टर ना बन जाला। +पारंपरिक i18n घुसपैठिया बा। रउआ हर स्ट्रिंग के `t()` फंक्शन में लपेट देनी, अनुवाद कुंजी (`home.hero.title.v2`) बनावे के पड़ेला, समानांतर JSON फाइल के रखरखाव करे के पड़ेला, आ आपन कंपोनेंट के लोकलाइजेशन बॉयलरप्लेट से फूलल देखे के पड़ेला। ई एतना उबाऊ बा कि टीम अंतर्राष्ट्रीयकरण के तब तक टाल देवेला जब तक ई एगो बहुत बड़ रिफैक्टर ना बन जाला। Lingo.dev Compiler औपचारिकता के खत्म क देला। सादा अंग्रेजी टेक्स्ट के साथ React कंपोनेंट लिखीं। कंपाइलर बिल्ड टाइम पर अनुवाद योग्य स्ट्रिंग के पहचान लेला आ स्वचालित रूप से स्थानीयकृत वेरिएंट जेनरेट क देला। ना कुंजी, ना JSON फाइल, ना रैपर फंक्शन - बस React कोड जवन कई भाषा में काम करेला। @@ -431,7 +431,7 @@ export function LanguageSwitcher() { } ``` -**डेवलपमेंट:** `npm run dev` (स्यूडोट्रांसलेटर के उपयोग करेला, कवनो API कॉल नइखे) +**डेवलपमेंट:** `npm run dev` (स्यूडोट्रांसलेटर के इस्तेमाल करेला, कवनो API कॉल नइखे) **प्रोडक्शन:** `usePseudotranslator: false` सेट करीं, फिर `next build` @@ -439,20 +439,20 @@ export function LanguageSwitcher() { **मुख्य विशेषता:** -- शून्य रनटाइम परफॉर्मेंस लागत -- ना अनुवाद कुंजी ना JSON फाइल -- ना `t()` फंक्शन ना `` रैपर कंपोनेंट +- रनटाइम परफॉर्मेंस के कवनो लागत नइखे +- कवनो अनुवाद कुंजी भा JSON फाइल नइखे +- कवनो `t()` फंक्शन भा `` रैपर कंपोनेंट नइखे - JSX में अनुवाद योग्य टेक्स्ट के स्वचालित पहचान -- TypeScript समर्थन +- TypeScript सपोर्ट - बहुवचन खातिर ICU MessageFormat -- `data-lingo-override` एट्रिब्यूट के माध्यम से मैनुअल ओवरराइड +- `data-lingo-override` एट्रिब्यूट के जरिए मैनुअल ओवरराइड - बिल्ट-इन अनुवाद एडिटर विजेट **बिल्ड मोड:** - `pseudotranslator`: प्लेसहोल्डर अनुवाद के साथ डेवलपमेंट मोड (कवनो API लागत नइखे) -- `real`: LLM के उपयोग करके वास्तविक अनुवाद जेनरेट करीं -- `cache-only`: CI से पहिले से जेनरेट कइल अनुवाद के उपयोग करके प्रोडक्शन मोड (कवनो API कॉल नइखे) +- `real`: LLM के इस्तेमाल से वास्तविक अनुवाद जेनरेट करीं +- `cache-only`: CI से पहिले से जेनरेट कइल अनुवाद के इस्तेमाल करत प्रोडक्शन मोड (कवनो API कॉल नइखे) **समर्थित फ्रेमवर्क:** @@ -469,11 +469,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) - - हर PR खातिर एगो changeset जरूरी बा: `pnpm new` (या `pnpm new:empty` गैर-रिलीज बदलाव खातिर) + - हर PR खातिर चेंजसेट जरूरी बा: `pnpm new` (भा नॉन-रिलीज बदलाव खातिर `pnpm new:empty`) - सबमिट करे से पहिले सुनिश्चित करीं कि टेस्ट पास हो जाला -3. **डेवलपमेंट:** ई एगो pnpm + turborepo monorepo बा +3. **डेवलपमेंट:** ई एगो pnpm + turborepo मोनोरेपो बा - डिपेंडेंसी इंस्टॉल करीं: `pnpm install` - टेस्ट चलाईं: `pnpm test` - बिल्ड करीं: `pnpm build` @@ -498,12 +498,12 @@ export function LanguageSwitcher() { **नया भाषा जोड़ल:** -1. [`i18n.json`](./i18n.json) में [BCP-47 फॉर्मेट](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale) के इस्तेमाल करके locale code जोड़ीं -2. एगो pull request सबमिट करीं +1. [BCP-47 फॉर्मेट](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale) के इस्तेमाल करत [`i18n.json`](./i18n.json) में लोकेल कोड जोड़ीं +2. पुल रिक्वेस्ट सबमिट करीं -**BCP-47 locale फॉर्मेट:** `language[-Script][-REGION]` +**BCP-47 लोकेल फॉर्मेट:** `language[-Script][-REGION]` -- `language`: ISO 639-1/2/3 (lowercase): `en`, `zh`, `bho` -- `Script`: ISO 15924 (title case): `Hans`, `Hant`, `Latn` -- `REGION`: ISO 3166-1 alpha-2 (uppercase): `US`, `CN`, `IN` +- `language`: ISO 639-1/2/3 (लोअरकेस): `en`, `zh`, `bho` +- `Script`: ISO 15924 (टाइटल केस): `Hans`, `Hant`, `Latn` +- `REGION`: ISO 3166-1 alpha-2 (अपरकेस): `US`, `CN`, `IN` - उदाहरण: `en`, `pt-BR`, `zh-Hans`, `sr-Cyrl-RS` diff --git a/readme/bn.md b/readme/bn.md index d89d9da99..93f43667a 100644 --- a/readme/bn.md +++ b/readme/bn.md @@ -77,7 +77,7 @@ | [**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) | i18n র‍্যাপার ছাড়াই বিল্ড-টাইম React স্থানীয়করণ | `withLingo()` প্লাগইন | +| [**Compiler**](#lingodev-compiler) | i18n র‍্যাপার ছাড়াই বিল্ড-টাইম React লোকালাইজেশন | `withLingo()` প্লাগইন | --- @@ -110,10 +110,10 @@ Set up i18n with the following locales: en, es, and pt-BR. The default locale is সহায়ক করবে: -1. লোকেল-ভিত্তিক রাউটিং কনফিগার করবে (যেমন, `/en`, `/es`, `/pt-BR`) -2. ভাষা পরিবর্তন কম্পোনেন্ট সেটআপ করবে -3. স্বয়ংক্রিয় লোকেল সনাক্তকরণ বাস্তবায়ন করবে -4. প্রয়োজনীয় কনফিগারেশন ফাইল তৈরি করবে +1. লোকেল-ভিত্তিক রাউটিং কনফিগার করুন (যেমন, `/en`, `/es`, `/pt-BR`) +2. ভাষা পরিবর্তন কম্পোনেন্ট সেট আপ করুন +3. স্বয়ংক্রিয় লোকেল সনাক্তকরণ প্রয়োগ করুন +4. প্রয়োজনীয় কনফিগারেশন ফাইল তৈরি করুন **দ্রষ্টব্য:** AI-সহায়তা কোড জেনারেশন নন-ডিটারমিনিস্টিক। কমিট করার আগে জেনারেট করা কোড পর্যালোচনা করুন। @@ -139,14 +139,14 @@ npx lingo.dev@latest run **এটি কীভাবে কাজ করে:** -১. কনফিগার করা ফাইল থেকে অনুবাদযোগ্য কন্টেন্ট এক্সট্র্যাক্ট করে -২. অনুবাদের জন্য LLM প্রোভাইডারে কন্টেন্ট পাঠায় -৩. অনুবাদিত কন্টেন্ট ফাইলসিস্টেমে লিখে রাখে -৪. সম্পন্ন অনুবাদ ট্র্যাক করার জন্য `i18n.lock` ফাইল তৈরি করে (অপ্রয়োজনীয় প্রসেসিং এড়ায়) +1. কনফিগার করা ফাইল থেকে অনুবাদযোগ্য কন্টেন্ট এক্সট্র্যাক্ট করে +2. অনুবাদের জন্য LLM প্রোভাইডারে কন্টেন্ট পাঠায় +3. অনুবাদিত কন্টেন্ট ফাইলসিস্টেমে লিখে দেয় +4. সম্পন্ন অনুবাদ ট্র্যাক করতে `i18n.lock` ফাইল তৈরি করে (অপ্রয়োজনীয় প্রসেসিং এড়ায়) **কনফিগারেশন:** -`init` কমান্ড একটি `i18n.json` ফাইল জেনারেট করে। লোকেল এবং বাকেট কনফিগার করুন: +`init` কমান্ড একটি `i18n.json` ফাইল তৈরি করে। লোকেল এবং বাকেট কনফিগার করুন: ```json { @@ -226,8 +226,8 @@ jobs: **সেটআপ প্রয়োজনীয়তা:** -১. রিপোজিটরি সিক্রেটে `LINGODOTDEV_API_KEY` যোগ করুন (Settings > Secrets and variables > Actions) -২. PR ওয়ার্কফ্লোর জন্য: Settings > Actions > General-এ "Allow GitHub Actions to create and approve pull requests" সক্ষম করুন +1. রিপোজিটরি সিক্রেটে `LINGODOTDEV_API_KEY` যোগ করুন (Settings > Secrets and variables > Actions) +2. PR ওয়ার্কফ্লোর জন্য: Settings > Actions > General-এ "Allow GitHub Actions to create and approve pull requests" সক্ষম করুন **ওয়ার্কফ্লো অপশন:** @@ -259,7 +259,7 @@ env: | `commit-message` | `"feat: update translations via @LingoDotDev"` | কাস্টম কমিট মেসেজ | | `pull-request-title` | `"feat: update translations via @LingoDotDev"` | কাস্টম PR শিরোনাম | | `working-directory` | `"."` | যে ডিরেক্টরিতে চালাতে হবে | -| `parallel` | `false` | প্যারালাল প্রসেসিং সক্রিয় করুন | +| `parallel` | `false` | প্যারালাল প্রসেসিং সক্ষম করুন | [ডকুমেন্টেশন পড়ুন →](https://lingo.dev/en/ci/github) @@ -335,7 +335,7 @@ const locale = await lingoDotDev.recognizeLocale("Bonjour le monde"); ### Lingo.dev Compiler -ট্র্যাডিশনাল i18n ইনভেসিভ। আপনি প্রতিটি স্ট্রিং `t()` ফাংশনে র‍্যাপ করেন, অনুবাদ কী আবিষ্কার করেন (`home.hero.title.v2`), প্যারালাল JSON ফাইল মেইনটেইন করেন, এবং আপনার কম্পোনেন্টগুলো লোকালাইজেশন বয়লারপ্লেটে ফুলে যেতে দেখেন। এটি এতটাই ক্লান্তিকর যে টিমগুলো আন্তর্জাতিকীকরণ বিলম্বিত করে যতক্ষণ না এটি একটি বিশাল রিফ্যাক্টরে পরিণত হয়। +ঐতিহ্যবাহী i18n আক্রমণাত্মক। আপনি প্রতিটি স্ট্রিংকে `t()` ফাংশনে মোড়ান, অনুবাদ কী উদ্ভাবন করেন (`home.hero.title.v2`), সমান্তরাল JSON ফাইল রক্ষণাবেক্ষণ করেন এবং আপনার কম্পোনেন্টগুলি লোকালাইজেশন বয়লারপ্লেটে ফুলে উঠতে দেখেন। এটি এতটাই ক্লান্তিকর যে টিমগুলি আন্তর্জাতিকীকরণ বিলম্বিত করে যতক্ষণ না এটি একটি বিশাল রিফ্যাক্টরে পরিণত হয়। Lingo.dev Compiler আনুষ্ঠানিকতা দূর করে। সাধারণ ইংরেজি টেক্সট দিয়ে React কম্পোনেন্ট লিখুন। কম্পাইলার বিল্ড টাইমে অনুবাদযোগ্য স্ট্রিং সনাক্ত করে এবং স্বয়ংক্রিয়ভাবে স্থানীয়করণ করা ভেরিয়েন্ট তৈরি করে। কোনো কী নেই, কোনো JSON ফাইল নেই, কোনো র‍্যাপার ফাংশন নেই - শুধু React কোড যা একাধিক ভাষায় কাজ করে। @@ -471,9 +471,9 @@ export function LanguageSwitcher() { 1. **ইস্যু:** [বাগ রিপোর্ট করুন বা ফিচার অনুরোধ করুন](https://github.com/lingodotdev/lingo.dev/issues) 2. **পুল রিকোয়েস্ট:** [পরিবর্তন জমা দিন](https://github.com/lingodotdev/lingo.dev/pulls) - - প্রতিটি PR-এর জন্য একটি changeset প্রয়োজন: `pnpm new` (অথবা নন-রিলিজ পরিবর্তনের জন্য `pnpm new:empty`) - - জমা দেওয়ার আগে নিশ্চিত করুন যে টেস্ট পাস হয়েছে -3. **ডেভেলপমেন্ট:** এটি একটি pnpm + turborepo monorepo + - প্রতিটি PR-এর জন্য একটি চেঞ্জসেট প্রয়োজন: `pnpm new` (অথবা নন-রিলিজ পরিবর্তনের জন্য `pnpm new:empty`) + - জমা দেওয়ার আগে টেস্ট পাস হয়েছে তা নিশ্চিত করুন +3. **ডেভেলপমেন্ট:** এটি একটি pnpm + turborepo মনোরেপো - ডিপেন্ডেন্সি ইনস্টল করুন: `pnpm install` - টেস্ট চালান: `pnpm test` - বিল্ড করুন: `pnpm build` @@ -498,12 +498,12 @@ export function LanguageSwitcher() { **নতুন ভাষা যোগ করা:** -1. [`i18n.json`](./i18n.json)-এ [BCP-47 ফরম্যাট](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale) ব্যবহার করে লোকেল কোড যোগ করুন +1. [BCP-47 ফরম্যাট](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale) ব্যবহার করে [`i18n.json`](./i18n.json)-এ লোকেল কোড যোগ করুন 2. একটি পুল রিকোয়েস্ট জমা দিন **BCP-47 লোকেল ফরম্যাট:** `language[-Script][-REGION]` -- `language`: ISO 639-1/2/3 (ছোট হাতের অক্ষর): `en`, `zh`, `bho` +- `language`: ISO 639-1/2/3 (ছোট হাতের): `en`, `zh`, `bho` - `Script`: ISO 15924 (টাইটেল কেস): `Hans`, `Hant`, `Latn` -- `REGION`: ISO 3166-1 alpha-2 (বড় হাতের অক্ষর): `US`, `CN`, `IN` +- `REGION`: ISO 3166-1 alpha-2 (বড় হাতের): `US`, `CN`, `IN` - উদাহরণ: `en`, `pt-BR`, `zh-Hans`, `sr-Cyrl-RS` diff --git a/readme/de.md b/readme/de.md index d7bb92742..d6741a357 100644 --- a/readme/de.md +++ b/readme/de.md @@ -75,9 +75,9 @@ | ---------------------------------- | --------------------------------------------------------- | ---------------------------------- | | [**MCP**](#lingodev-mcp) | KI-gestützte i18n-Einrichtung für React-Apps | Prompt: `Set up i18n` | | [**CLI**](#lingodev-cli) | Übersetzung von JSON-, YAML-, Markdown-, CSV-, PO-Dateien | `npx lingo.dev@latest run` | -| [**CI/CD**](#lingodev-cicd) | Automatisierte Übersetzungs-Pipeline in GitHub Actions | `uses: lingodotdev/lingo.dev@main` | -| [**SDK**](#lingodev-sdk) | Laufzeit-Übersetzung für dynamische Inhalte | `npm install lingo.dev` | -| [**Compiler**](#lingodev-compiler) | Build-Time-React-Lokalisierung ohne i18n-Wrapper | `withLingo()`-Plugin | +| [**CI/CD**](#lingodev-cicd) | Automatisierte Übersetzungspipeline in GitHub Actions | `uses: lingodotdev/lingo.dev@main` | +| [**SDK**](#lingodev-sdk) | Laufzeitübersetzung für dynamische Inhalte | `npm install lingo.dev` | +| [**Compiler**](#lingodev-compiler) | Build-Zeit-React-Lokalisierung ohne i18n-Wrapper | `withLingo()`-Plugin | --- @@ -113,7 +113,7 @@ Der Assistent wird: 1. Locale-basiertes Routing konfigurieren (z. B. `/en`, `/es`, `/pt-BR`) 2. Sprachwechsel-Komponenten einrichten 3. Automatische Locale-Erkennung implementieren -4. Notwendige Konfigurationsdateien generieren +4. Erforderliche Konfigurationsdateien generieren **Hinweis:** KI-gestützte Code-Generierung ist nicht-deterministisch. Überprüfen Sie generierten Code vor dem Committen. @@ -140,13 +140,13 @@ npx lingo.dev@latest run **Funktionsweise:** 1. Extrahiert übersetzbare Inhalte aus konfigurierten Dateien -2. Sendet Inhalte an LLM-Anbieter zur Übersetzung +2. Sendet Inhalte an LLM-Provider zur Übersetzung 3. Schreibt übersetzte Inhalte zurück ins Dateisystem 4. Erstellt `i18n.lock`-Datei zur Nachverfolgung abgeschlossener Übersetzungen (vermeidet redundante Verarbeitung) **Konfiguration:** -Der Befehl `init` generiert eine `i18n.json`-Datei. Konfigurieren Sie Locales und Buckets: +Der Befehl `init` generiert eine `i18n.json`-Datei. Locales und Buckets konfigurieren: ```json { @@ -164,7 +164,7 @@ Der Befehl `init` generiert eine `i18n.json`-Datei. Konfigurieren Sie Locales un } ``` -Das Feld `provider` ist optional (Standard ist Lingo.dev Engine). Für benutzerdefinierte LLM-Anbieter: +Das Feld `provider` ist optional (Standard ist Lingo.dev Engine). Für benutzerdefinierte LLM-Provider: ```json { @@ -204,7 +204,7 @@ Lingo.dev CI/CD macht Übersetzungen automatisch. Jeder Push löst die Übersetz **GitHub Actions-Einrichtung:** -Erstellen Sie `.github/workflows/translate.yml`: +`.github/workflows/translate.yml` erstellen: ```yaml name: Translate @@ -226,8 +226,8 @@ jobs: **Einrichtungsanforderungen:** -1. Fügen Sie `LINGODOTDEV_API_KEY` zu den Repository-Secrets hinzu (Einstellungen > Secrets and variables > Actions) -2. Für PR-Workflows: Aktivieren Sie „Allow GitHub Actions to create and approve pull requests" unter Einstellungen > Actions > General +1. `LINGODOTDEV_API_KEY` zu Repository-Secrets hinzufügen (Settings > Secrets and variables > Actions) +2. Für PR-Workflows: "Allow GitHub Actions to create and approve pull requests" in Settings > Actions > General aktivieren **Workflow-Optionen:** @@ -252,14 +252,14 @@ env: **Verfügbare Eingaben:** -| Eingabe | Standard | Beschreibung | -| -------------------- | ---------------------------------------------- | -------------------------------------- | -| `api-key` | (erforderlich) | Lingo.dev API-Schlüssel | -| `pull-request` | `false` | PR erstellen statt direkt zu committen | -| `commit-message` | `"feat: update translations via @LingoDotDev"` | Benutzerdefinierte Commit-Nachricht | -| `pull-request-title` | `"feat: update translations via @LingoDotDev"` | Benutzerdefinierter PR-Titel | -| `working-directory` | `"."` | Verzeichnis für Ausführung | -| `parallel` | `false` | Parallele Verarbeitung aktivieren | +| Input | Standard | Beschreibung | +| -------------------- | ---------------------------------------------- | ------------------------------------------ | +| `api-key` | (erforderlich) | Lingo.dev-API-Schlüssel | +| `pull-request` | `false` | PR erstellen statt direkt zu committen | +| `commit-message` | `"feat: update translations via @LingoDotDev"` | Benutzerdefinierte Commit-Nachricht | +| `pull-request-title` | `"feat: update translations via @LingoDotDev"` | Benutzerdefinierter PR-Titel | +| `working-directory` | `"."` | Verzeichnis, in dem ausgeführt werden soll | +| `parallel` | `false` | Parallele Verarbeitung aktivieren | [Dokumentation lesen →](https://lingo.dev/en/ci/github) @@ -431,7 +431,7 @@ export function LanguageSwitcher() { } ``` -**Entwicklung:** `npm run dev` (verwendet Pseudoübersetzer, keine API-Aufrufe) +**Entwicklung:** `npm run dev` (verwendet Pseudotranslator, keine API-Aufrufe) **Produktion:** Setzen Sie `usePseudotranslator: false`, dann `next build` @@ -452,7 +452,7 @@ Committen Sie das `.lingo/`-Verzeichnis in die Versionskontrolle. - `pseudotranslator`: Entwicklungsmodus mit Platzhalter-Übersetzungen (keine API-Kosten) - `real`: Generierung tatsächlicher Übersetzungen mittels LLMs -- `cache-only`: Produktionsmodus mit vorgenerierten Übersetzungen aus CI (keine API-Aufrufe) +- `cache-only`: Produktionsmodus mit vorgeneriertem Übersetzungen aus CI (keine API-Aufrufe) **Unterstützte Frameworks:** @@ -469,14 +469,14 @@ Unterstützung weiterer Frameworks geplant. Beiträge sind willkommen. Bitte befolgen Sie diese Richtlinien: -1. **Issues:** [Fehler melden oder Funktionen anfordern](https://github.com/lingodotdev/lingo.dev/issues) +1. **Issues:** [Bugs melden oder Features anfordern](https://github.com/lingodotdev/lingo.dev/issues) 2. **Pull Requests:** [Änderungen einreichen](https://github.com/lingodotdev/lingo.dev/pulls) - Jeder PR erfordert ein Changeset: `pnpm new` (oder `pnpm new:empty` für Änderungen ohne Release) - - Stellen Sie sicher, dass die Tests vor dem Einreichen bestehen + - Stellen Sie sicher, dass Tests bestehen, bevor Sie einreichen 3. **Entwicklung:** Dies ist ein pnpm + turborepo Monorepo - Abhängigkeiten installieren: `pnpm install` - Tests ausführen: `pnpm test` - - Build erstellen: `pnpm build` + - Build: `pnpm build` **Support:** [Discord-Community](https://lingo.dev/go/discord) @@ -498,8 +498,8 @@ Wenn Sie Lingo.dev nützlich finden, geben Sie uns einen Stern und helfen Sie un **Neue Sprache hinzufügen:** -1. Locale-Code zu [`i18n.json`](./i18n.json) im [BCP-47-Format](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale) hinzufügen -2. Pull Request einreichen +1. Fügen Sie den Locale-Code zu [`i18n.json`](./i18n.json) im [BCP-47-Format](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale) hinzu +2. Reichen Sie einen Pull Request ein **BCP-47-Locale-Format:** `language[-Script][-REGION]` diff --git a/readme/es.md b/readme/es.md index 27e72b3a6..cc6582d01 100644 --- a/readme/es.md +++ b/readme/es.md @@ -72,13 +72,13 @@ ## Inicio rápido -| Herramienta | Caso de uso | Comando rápido | -| ---------------------------------- | ------------------------------------------------------------- | ---------------------------------- | -| [**MCP**](#lingodev-mcp) | Configuración i18n asistida por IA para apps React | Prompt: `Set up i18n` | -| [**CLI**](#lingodev-cli) | Traducir archivos JSON, YAML, markdown, CSV, PO | `npx lingo.dev@latest run` | -| [**CI/CD**](#lingodev-cicd) | Pipeline de traducción automatizado en GitHub Actions | `uses: lingodotdev/lingo.dev@main` | -| [**SDK**](#lingodev-sdk) | Traducción en tiempo de ejecución para contenido dinámico | `npm install lingo.dev` | -| [**Compiler**](#lingodev-compiler) | Localización React en tiempo de compilación sin wrappers i18n | Plugin `withLingo()` | +| Herramienta | Caso de uso | Comando rápido | +| ---------------------------------- | ---------------------------------------------------------------- | ---------------------------------- | +| [**MCP**](#lingodev-mcp) | Configuración i18n asistida por IA para apps React | Prompt: `Set up i18n` | +| [**CLI**](#lingodev-cli) | Traducir archivos JSON, YAML, markdown, CSV, PO | `npx lingo.dev@latest run` | +| [**CI/CD**](#lingodev-cicd) | Pipeline de traducción automatizado en GitHub Actions | `uses: lingodotdev/lingo.dev@main` | +| [**SDK**](#lingodev-sdk) | Traducción en tiempo de ejecución para contenido dinámico | `npm install lingo.dev` | +| [**Compiler**](#lingodev-compiler) | Localización de React en tiempo de compilación sin wrappers i18n | Plugin `withLingo()` | --- @@ -111,10 +111,10 @@ Set up i18n with the following locales: en, es, and pt-BR. The default locale is El asistente: -1. Configurará el enrutamiento basado en locale (ej., `/en`, `/es`, `/pt-BR`) -2. Configurará componentes de cambio de idioma -3. Implementará detección automática de locale -4. Generará los archivos de configuración necesarios +1. Configurar enrutamiento basado en locale (ej., `/en`, `/es`, `/pt-BR`) +2. Configurar componentes de cambio de idioma +3. Implementar detección automática de locale +4. Generar archivos de configuración necesarios **Nota:** La generación de código asistida por IA es no determinista. Revisa el código generado antes de hacer commit. @@ -140,14 +140,14 @@ npx lingo.dev@latest run **Cómo funciona:** -1. Extrae el contenido traducible de los archivos configurados -2. Envía el contenido al proveedor de LLM para su traducción -3. Escribe el contenido traducido de vuelta al sistema de archivos -4. Crea el archivo `i18n.lock` para rastrear las traducciones completadas (evita el procesamiento redundante) +1. Extrae contenido traducible de archivos configurados +2. Envía contenido al proveedor LLM para traducción +3. Escribe contenido traducido de vuelta al sistema de archivos +4. Crea archivo `i18n.lock` para rastrear traducciones completadas (evita procesamiento redundante) **Configuración:** -El comando `init` genera un archivo `i18n.json`. Configura los idiomas y buckets: +El comando `init` genera un archivo `i18n.json`. Configura locales y buckets: ```json { @@ -165,7 +165,7 @@ El comando `init` genera un archivo `i18n.json`. Configura los idiomas y buckets } ``` -El campo `provider` es opcional (por defecto usa Lingo.dev Engine). Para proveedores de LLM personalizados: +El campo `provider` es opcional (por defecto Lingo.dev Engine). Para proveedores LLM personalizados: ```json { @@ -205,7 +205,7 @@ Lingo.dev CI/CD hace que las traducciones sean automáticas. Cada push activa la **Configuración de GitHub Actions:** -Crea `.github/workflows/translate.yml`: +Crear `.github/workflows/translate.yml`: ```yaml name: Translate @@ -227,8 +227,8 @@ jobs: **Requisitos de configuración:** -1. Añade `LINGODOTDEV_API_KEY` a los secretos del repositorio (Settings > Secrets and variables > Actions) -2. Para flujos de trabajo de PR: habilita "Allow GitHub Actions to create and approve pull requests" en Settings > Actions > General +1. Agregar `LINGODOTDEV_API_KEY` a los secretos del repositorio (Settings > Secrets and variables > Actions) +2. Para workflows de PR: Habilitar "Allow GitHub Actions to create and approve pull requests" en Settings > Actions > General **Opciones de flujo de trabajo:** @@ -253,14 +253,14 @@ env: **Entradas disponibles:** -| Entrada | Predeterminado | Descripción | -| -------------------- | ---------------------------------------------- | ------------------------------------------- | -| `api-key` | (requerido) | Clave API de Lingo.dev | -| `pull-request` | `false` | Crear PR en lugar de confirmar directamente | -| `commit-message` | `"feat: update translations via @LingoDotDev"` | Mensaje de confirmación personalizado | -| `pull-request-title` | `"feat: update translations via @LingoDotDev"` | Título de PR personalizado | -| `working-directory` | `"."` | Directorio en el que ejecutar | -| `parallel` | `false` | Habilitar procesamiento paralelo | +| Input | Por defecto | Descripción | +| -------------------- | ---------------------------------------------- | ---------------------------------------------- | +| `api-key` | (requerido) | Clave API de Lingo.dev | +| `pull-request` | `false` | Crear PR en lugar de hacer commit directamente | +| `commit-message` | `"feat: update translations via @LingoDotDev"` | Mensaje de commit personalizado | +| `pull-request-title` | `"feat: update translations via @LingoDotDev"` | Título de PR personalizado | +| `working-directory` | `"."` | Directorio en el que ejecutar | +| `parallel` | `false` | Habilitar procesamiento paralelo | [Consulta la documentación →](https://lingo.dev/en/ci/github) @@ -336,7 +336,7 @@ const locale = await lingoDotDev.recognizeLocale("Bonjour le monde"); ### Compilador de Lingo.dev -La i18n tradicional es invasiva. Envuelves cada cadena en funciones `t()`, inventas claves de traducción (`home.hero.title.v2`), mantienes archivos JSON paralelos y ves cómo tus componentes se inflan con código repetitivo de localización. Es tan tedioso que los equipos retrasan la internacionalización hasta que se convierte en una refactorización masiva. +La i18n tradicional es invasiva. Envuelves cada cadena en funciones `t()`, inventas claves de traducción (`home.hero.title.v2`), mantienes archivos JSON paralelos y ves cómo tus componentes se hinchan con código repetitivo de localización. Es tan tedioso que los equipos retrasan la internacionalización hasta que se convierte en una refactorización masiva. Lingo.dev Compiler elimina la ceremonia. Escribe componentes de React con texto en inglés simple. El compilador detecta cadenas traducibles en tiempo de compilación y genera variantes localizadas automáticamente. Sin claves, sin archivos JSON, sin funciones envolventes, solo código React que funciona en múltiples idiomas. @@ -440,18 +440,18 @@ Confirma el directorio `.lingo/` en el control de versiones. **Características principales:** -- Cero costo de rendimiento en tiempo de ejecución +- Cero coste de rendimiento en tiempo de ejecución - Sin claves de traducción ni archivos JSON -- Sin funciones `t()` ni componentes envolventes `` +- Sin funciones `t()` ni componentes wrapper `` - Detección automática de texto traducible en JSX - Soporte para TypeScript - ICU MessageFormat para plurales - Anulaciones manuales mediante el atributo `data-lingo-override` -- Widget de editor de traducción integrado +- Widget editor de traducciones integrado **Modos de compilación:** -- `pseudotranslator`: Modo de desarrollo con traducciones de marcador de posición (sin costos de API) +- `pseudotranslator`: Modo de desarrollo con traducciones de marcador de posición (sin costes de API) - `real`: Genera traducciones reales usando LLMs - `cache-only`: Modo de producción usando traducciones pregeneradas desde CI (sin llamadas a la API) @@ -471,12 +471,12 @@ Soporte adicional de frameworks planificado. Las contribuciones son bienvenidas. Por favor, sigue estas directrices: 1. **Issues:** [Reporta errores o solicita funcionalidades](https://github.com/lingodotdev/lingo.dev/issues) -2. **Pull Requests:** [Envía cambios](https://github.com/lingodotdev/lingo.dev/pulls) - - Cada PR requiere un changeset: `pnpm new` (o `pnpm new:empty` para cambios que no requieren release) +2. **Pull requests:** [Envía cambios](https://github.com/lingodotdev/lingo.dev/pulls) + - Cada PR requiere un changeset: `pnpm new` (o `pnpm new:empty` para cambios sin lanzamiento) - Asegúrate de que las pruebas pasen antes de enviar -3. **Desarrollo:** Este es un monorepo de pnpm + turborepo - - Instala las dependencias: `pnpm install` - - Ejecuta las pruebas: `pnpm test` +3. **Desarrollo:** Este es un monorepo pnpm + turborepo + - Instala dependencias: `pnpm install` + - Ejecuta pruebas: `pnpm test` - Compila: `pnpm build` **Soporte:** [Comunidad de Discord](https://lingo.dev/go/discord) @@ -499,7 +499,7 @@ Si encuentras útil Lingo.dev, danos una estrella y ayúdanos a alcanzar las 10 **Añadir un nuevo idioma:** -1. Añade el código de locale a [`i18n.json`](./i18n.json) usando el [formato BCP-47](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale) +1. Añade el código de locale a [`i18n.json`](./i18n.json) usando [formato BCP-47](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale) 2. Envía un pull request **Formato de locale BCP-47:** `language[-Script][-REGION]` diff --git a/readme/fa.md b/readme/fa.md index 2c2697f73..890b24ac9 100644 --- a/readme/fa.md +++ b/readme/fa.md @@ -71,13 +71,13 @@ ## شروع سریع -| ابزار | مورد استفاده | دستور سریع | -| ---------------------------------- | --------------------------------------------------------- | ---------------------------------- | -| [**MCP**](#lingodev-mcp) | راه‌اندازی i18n با کمک هوش مصنوعی برای اپلیکیشن‌های React | Prompt: `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 در زمان build بدون wrapper های i18n | افزونه `withLingo()` | +| ابزار | مورد استفاده | دستور سریع | +| ---------------------------------- | ------------------------------------------------------- | ---------------------------------- | +| [**MCP**](#lingodev-mcp) | راه‌اندازی i18n با کمک هوش مصنوعی برای برنامه‌های React | Prompt: `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 در زمان build بدون wrapper های i18n | پلاگین `withLingo()` | --- @@ -111,7 +111,7 @@ Set up i18n with the following locales: en, es, and pt-BR. The default locale is دستیار این کارها را انجام می‌دهد: 1. پیکربندی مسیریابی مبتنی بر locale (مثلاً `/en`، `/es`، `/pt-BR`) -2. راه‌اندازی کامپوننت‌های تعویض زبان +2. راه‌اندازی کامپوننت‌های تغییر زبان 3. پیاده‌سازی تشخیص خودکار locale 4. تولید فایل‌های پیکربندی لازم @@ -139,14 +139,14 @@ npx lingo.dev@latest run **نحوه‌ی عملکرد:** -1. محتوای قابل ترجمه را از فایل‌های پیکربندی‌شده استخراج می‌کند -2. محتوا را برای ترجمه به ارائه‌دهنده‌ی LLM ارسال می‌کند -3. محتوای ترجمه‌شده را به filesystem بازمی‌نویسد -4. فایل `i18n.lock` را برای ردیابی ترجمه‌های تکمیل‌شده ایجاد می‌کند (از پردازش تکراری جلوگیری می‌کند) +1. محتوای قابل ترجمه را از فایل‌های پیکربندی شده استخراج می‌کند +2. محتوا را برای ترجمه به ارائه‌دهنده LLM ارسال می‌کند +3. محتوای ترجمه شده را به filesystem بازمی‌نویسد +4. فایل `i18n.lock` را برای پیگیری ترجمه‌های تکمیل شده ایجاد می‌کند (از پردازش تکراری جلوگیری می‌کند) **پیکربندی:** -دستور `init` یک فایل `i18n.json` تولید می‌کند. locale‌ها و bucket‌ها را پیکربندی کنید: +دستور `init` یک فایل `i18n.json` تولید می‌کند. locale ها و bucket ها را پیکربندی کنید: ```json { @@ -164,7 +164,7 @@ npx lingo.dev@latest run } ``` -فیلد `provider` اختیاری است (به‌طور پیش‌فرض Lingo.dev Engine). برای ارائه‌دهندگان LLM سفارشی: +فیلد `provider` اختیاری است (پیش‌فرض Lingo.dev Engine). برای ارائه‌دهندگان LLM سفارشی: ```json { @@ -226,8 +226,8 @@ jobs: **الزامات راه‌اندازی:** -1. `LINGODOTDEV_API_KEY` را به secret‌های repository اضافه کنید (Settings > Secrets and variables > Actions) -2. برای workflow‌های PR: گزینه‌ی "Allow GitHub Actions to create and approve pull requests" را در Settings > Actions > General فعال کنید +1. `LINGODOTDEV_API_KEY` را به secret های مخزن اضافه کنید (Settings > Secrets and variables > Actions) +2. برای workflow های PR: گزینه "Allow GitHub Actions to create and approve pull requests" را در Settings > Actions > General فعال کنید **گزینه‌های workflow:** @@ -335,7 +335,7 @@ const locale = await lingoDotDev.recognizeLocale("Bonjour le monde"); ### Lingo.dev Compiler -i18n سنتی مزاحم است. شما هر رشته را در توابع `t()` می‌پیچید، کلیدهای ترجمه اختراع می‌کنید (`home.hero.title.v2`)، فایل‌های JSON موازی نگهداری می‌کنید، و شاهد متورم شدن کامپوننت‌های خود با boilerplate محلی‌سازی هستید. آنقدر خسته‌کننده است که تیم‌ها بین‌المللی‌سازی را به تعویق می‌اندازند تا زمانی که به یک refactor عظیم تبدیل شود. +i18n سنتی مزاحم است. شما هر رشته را در توابع `t()` می‌پیچید، کلیدهای ترجمه را اختراع می‌کنید (`home.hero.title.v2`)، فایل‌های JSON موازی را نگهداری می‌کنید و شاهد متورم شدن کامپوننت‌هایتان با کدهای اضافی محلی‌سازی هستید. این کار آنقدر خسته‌کننده است که تیم‌ها بین‌المللی‌سازی را به تعویق می‌اندازند تا زمانی که به یک بازسازی عظیم تبدیل شود. کامپایلر Lingo.dev تشریفات را حذف می‌کند. کامپوننت‌های React را با متن ساده انگلیسی بنویسید. کامپایلر رشته‌های قابل ترجمه را در زمان build شناسایی کرده و نسخه‌های محلی‌سازی شده را به صورت خودکار تولید می‌کند. بدون کلید، بدون فایل JSON، بدون تابع wrapper - فقط کد React که اتفاقاً به چندین زبان کار می‌کند. @@ -435,23 +435,23 @@ export function LanguageSwitcher() { **تولید:** `usePseudotranslator: false` را تنظیم کنید، سپس `next build` -دایرکتوری `.lingo/` را در version control ثبت کنید. +دایرکتوری `.lingo/` را در کنترل نسخه commit کنید. **ویژگی‌های کلیدی:** -- بدون هزینه‌ی عملکرد runtime +- هیچ هزینه عملکردی در زمان اجرا - بدون کلید ترجمه یا فایل JSON -- بدون تابع `t()` یا کامپوننت wrapper `` -- شناسایی خودکار متن قابل ترجمه در JSX +- بدون توابع `t()` یا کامپوننت‌های wrapper `` +- تشخیص خودکار متن قابل ترجمه در JSX - پشتیبانی از TypeScript - ICU MessageFormat برای جمع‌ها -- بازنویسی دستی از طریق attribute `data-lingo-override` -- ویجت ویرایشگر ترجمه‌ی داخلی +- بازنویسی دستی از طریق ویژگی `data-lingo-override` +- ویجت ویرایشگر ترجمه داخلی **حالت‌های build:** -- `pseudotranslator`: حالت توسعه با ترجمه‌های placeholder (بدون هزینه‌ی API) -- `real`: تولید ترجمه‌های واقعی با استفاده از LLM ها +- `pseudotranslator`: حالت توسعه با ترجمه‌های جایگزین (بدون هزینه API) +- `real`: تولید ترجمه‌های واقعی با استفاده از LLM‌ها - `cache-only`: حالت تولید با استفاده از ترجمه‌های از پیش تولید شده از CI (بدون فراخوانی API) **فریم‌ورک‌های پشتیبانی شده:** @@ -471,9 +471,9 @@ export function LanguageSwitcher() { 1. **مسائل:** [گزارش باگ یا درخواست ویژگی](https://github.com/lingodotdev/lingo.dev/issues) 2. **درخواست‌های Pull:** [ارسال تغییرات](https://github.com/lingodotdev/lingo.dev/pulls) - - هر PR نیاز به یک changeset دارد: `pnpm new` (یا `pnpm new:empty` برای تغییرات بدون انتشار) + - هر PR نیاز به changeset دارد: `pnpm new` (یا `pnpm new:empty` برای تغییرات بدون انتشار) - قبل از ارسال اطمینان حاصل کنید که تست‌ها موفق هستند -3. **توسعه:** این یک monorepo با pnpm + turborepo است +3. **توسعه:** این یک monorepo pnpm + turborepo است - نصب وابستگی‌ها: `pnpm install` - اجرای تست‌ها: `pnpm test` - ساخت: `pnpm build` @@ -504,6 +504,6 @@ export function LanguageSwitcher() { **فرمت locale BCP-47:** `language[-Script][-REGION]` - `language`: ISO 639-1/2/3 (حروف کوچک): `en`، `zh`، `bho` -- `Script`: ISO 15924 (حروف بزرگ در ابتدا): `Hans`، `Hant`، `Latn` +- `Script`: ISO 15924 (حروف بزرگ اول): `Hans`، `Hant`، `Latn` - `REGION`: ISO 3166-1 alpha-2 (حروف بزرگ): `US`، `CN`، `IN` - مثال‌ها: `en`، `pt-BR`، `zh-Hans`، `sr-Cyrl-RS` diff --git a/readme/fr.md b/readme/fr.md index 9d2888651..df2daa615 100644 --- a/readme/fr.md +++ b/readme/fr.md @@ -72,13 +72,13 @@ ## Démarrage rapide -| Outil | Cas d'usage | Commande rapide | -| ------------------------------------- | ----------------------------------------------------------------- | ---------------------------------- | -| [**MCP**](#lingodev-mcp) | Configuration i18n assistée par IA pour apps React | Prompt : `Set up i18n` | -| [**CLI**](#lingodev-cli) | Traduction de fichiers JSON, YAML, markdown, CSV, PO | `npx lingo.dev@latest run` | -| [**CI/CD**](#lingodev-cicd) | Pipeline de traduction automatisé dans GitHub Actions | `uses: lingodotdev/lingo.dev@main` | -| [**SDK**](#lingodev-sdk) | Traduction à l'exécution pour contenu dynamique | `npm install lingo.dev` | -| [**Compilateur**](#lingodev-compiler) | Localisation React au moment de la compilation sans wrappers i18n | Plugin `withLingo()` | +| Outil | Cas d'usage | Commande rapide | +| ---------------------------------- | ----------------------------------------------------- | ---------------------------------- | +| [**MCP**](#lingodev-mcp) | Configuration i18n assistée par IA pour apps React | Prompt : `Set up i18n` | +| [**CLI**](#lingodev-cli) | Traduire fichiers JSON, YAML, markdown, CSV, PO | `npx lingo.dev@latest run` | +| [**CI/CD**](#lingodev-cicd) | Pipeline de traduction automatisé dans GitHub Actions | `uses: lingodotdev/lingo.dev@main` | +| [**SDK**](#lingodev-sdk) | Traduction à l'exécution pour contenu dynamique | `npm install lingo.dev` | +| [**Compiler**](#lingodev-compiler) | Localisation React au build sans wrappers i18n | Plugin `withLingo()` | --- @@ -111,8 +111,8 @@ Set up i18n with the following locales: en, es, and pt-BR. The default locale is L'assistant va : -1. Configurer le routage basé sur les locales (par ex. `/en`, `/es`, `/pt-BR`) -2. Mettre en place des composants de changement de langue +1. Configurer le routage basé sur les locales (ex. `/en`, `/es`, `/pt-BR`) +2. Mettre en place les composants de changement de langue 3. Implémenter la détection automatique de locale 4. Générer les fichiers de configuration nécessaires @@ -147,7 +147,7 @@ npx lingo.dev@latest run **Configuration :** -La commande `init` génère un fichier `i18n.json`. Configurez les locales et les buckets : +La commande `init` génère un fichier `i18n.json`. Configurez les locales et buckets : ```json { @@ -434,24 +434,24 @@ export function LanguageSwitcher() { **Développement :** `npm run dev` (utilise le pseudotraducteur, aucun appel API) -**Production :** définissez `usePseudotranslator: false`, puis `next build` +**Production :** Définissez `usePseudotranslator: false`, puis `next build` Commitez le répertoire `.lingo/` dans le contrôle de version. **Fonctionnalités clés :** - Aucun coût de performance à l'exécution -- Pas de clés de traduction ni de fichiers JSON -- Pas de fonctions `t()` ni de composants wrapper `` +- Aucune clé de traduction ni fichier JSON +- Aucune fonction `t()` ni composant wrapper `` - Détection automatique du texte traduisible dans JSX - Support TypeScript -- ICU MessageFormat pour les pluriels +- Format ICU MessageFormat pour les pluriels - Remplacements manuels via l'attribut `data-lingo-override` -- Widget d'éditeur de traduction intégré +- Widget éditeur de traduction intégré **Modes de compilation :** -- `pseudotranslator` : mode développement avec traductions placeholder (aucun coût API) +- `pseudotranslator` : mode développement avec traductions de substitution (aucun coût API) - `real` : génère les traductions réelles en utilisant les LLM - `cache-only` : mode production utilisant les traductions pré-générées depuis la CI (aucun appel API) @@ -470,13 +470,13 @@ Support de frameworks supplémentaires prévu. Les contributions sont les bienvenues. Veuillez suivre ces directives : -1. **Issues :** [Signaler des bugs ou demander des fonctionnalités](https://github.com/lingodotdev/lingo.dev/issues) -2. **Pull Requests :** [Soumettre des modifications](https://github.com/lingodotdev/lingo.dev/pulls) +1. **Issues :** [Signalez des bugs ou demandez des fonctionnalités](https://github.com/lingodotdev/lingo.dev/issues) +2. **Pull requests :** [Soumettez des modifications](https://github.com/lingodotdev/lingo.dev/pulls) - Chaque PR nécessite un changeset : `pnpm new` (ou `pnpm new:empty` pour les modifications sans release) - Assurez-vous que les tests passent avant de soumettre 3. **Développement :** Il s'agit d'un monorepo pnpm + turborepo - - Installer les dépendances : `pnpm install` - - Exécuter les tests : `pnpm test` + - Installez les dépendances : `pnpm install` + - Exécutez les tests : `pnpm test` - Build : `pnpm build` **Support :** [Communauté Discord](https://lingo.dev/go/discord) @@ -499,8 +499,8 @@ Si vous trouvez Lingo.dev utile, donnez-nous une étoile et aidez-nous à attein **Ajouter une nouvelle langue :** -1. Ajouter le code de locale à [`i18n.json`](./i18n.json) en utilisant le [format BCP-47](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale) -2. Soumettre une pull request +1. Ajoutez le code de locale à [`i18n.json`](./i18n.json) en utilisant le [format BCP-47](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale) +2. Soumettez une pull request **Format de locale BCP-47 :** `language[-Script][-REGION]` diff --git a/readme/gu-IN.md b/readme/gu-IN.md index 7e810467f..476d10c02 100644 --- a/readme/gu-IN.md +++ b/readme/gu-IN.md @@ -77,7 +77,7 @@ | [**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) | i18n રેપર્સ વિના બિલ્ડ-ટાઇમ React સ્થાનિકીકરણ | `withLingo()` પ્લગઇન | +| [**Compiler**](#lingodev-compiler) | i18n રેપર્સ વિના બિલ્ડ-ટાઇમ React લોકલાઇઝેશન | `withLingo()` પ્લગઇન | --- @@ -110,10 +110,10 @@ Set up i18n with the following locales: en, es, and pt-BR. The default locale is સહાયક આ કરશે: -1. લોકેલ-આધારિત રાઉટિંગ કન્ફિગર કરશે (દા.ત., `/en`, `/es`, `/pt-BR`) -2. ભાષા સ્વિચિંગ કમ્પોનન્ટ્સ સેટઅપ કરશે -3. ઓટોમેટિક લોકેલ ડિટેક્શન લાગુ કરશે -4. જરૂરી કન્ફિગરેશન ફાઇલો જનરેટ કરશે +1. લોકેલ-આધારિત રાઉટિંગ કન્ફિગર કરો (દા.ત., `/en`, `/es`, `/pt-BR`) +2. ભાષા સ્વિચિંગ કમ્પોનન્ટ્સ સેટઅપ કરો +3. સ્વચાલિત લોકેલ ડિટેક્શન લાગુ કરો +4. જરૂરી કન્ફિગરેશન ફાઇલો જનરેટ કરો **નોંધ:** AI-સહાયિત કોડ જનરેશન નોન-ડિટર્મિનિસ્ટિક છે. કમિટ કરતાં પહેલાં જનરેટ કરેલા કોડની સમીક્ષા કરો. @@ -139,10 +139,10 @@ npx lingo.dev@latest run **તે કેવી રીતે કામ કરે છે:** -1. કન્ફિગર કરેલી ફાઇલોમાંથી અનુવાદ યોગ્ય કન્ટેન્ટ એક્સટ્રેક્ટ કરે છે -2. અનુવાદ માટે LLM પ્રોવાઇડરને કન્ટેન્ટ મોકલે છે -3. અનુવાદિત કન્ટેન્ટને ફાઇલસિસ્ટમમાં પાછું લખે છે -4. પૂર્ણ થયેલા અનુવાદોને ટ્રેક કરવા માટે `i18n.lock` ફાઇલ બનાવે છે (રીડન્ડન્ટ પ્રોસેસિંગ ટાળે છે) +1. કન્ફિગર કરેલી ફાઇલોમાંથી ભાષાંતર યોગ્ય કન્ટેન્ટ એક્સ્ટ્રેક્ટ કરે છે +2. ભાષાંતર માટે LLM પ્રોવાઇડરને કન્ટેન્ટ મોકલે છે +3. ભાષાંતરિત કન્ટેન્ટ ફાઇલસિસ્ટમમાં પાછું લખે છે +4. પૂર્ણ થયેલા ભાષાંતરોને ટ્રેક કરવા માટે `i18n.lock` ફાઇલ બનાવે છે (રિડન્ડન્ટ પ્રોસેસિંગ ટાળે છે) **કન્ફિગરેશન:** @@ -252,12 +252,12 @@ env: **ઉપલબ્ધ inputs:** -| Input | Default | Description | +| ઇનપુટ | ડિફોલ્ટ | વર્ણન | | -------------------- | ---------------------------------------------- | ------------------------------ | -| `api-key` | (આવશ્યક) | Lingo.dev API key | +| `api-key` | (આવશ્યક) | Lingo.dev API કી | | `pull-request` | `false` | સીધા કમિટ કરવાને બદલે PR બનાવો | -| `commit-message` | `"feat: update translations via @LingoDotDev"` | કસ્ટમ commit message | -| `pull-request-title` | `"feat: update translations via @LingoDotDev"` | કસ્ટમ PR title | +| `commit-message` | `"feat: update translations via @LingoDotDev"` | કસ્ટમ કમિટ મેસેજ | +| `pull-request-title` | `"feat: update translations via @LingoDotDev"` | કસ્ટમ PR શીર્ષક | | `working-directory` | `"."` | જેમાં રન કરવું તે ડિરેક્ટરી | | `parallel` | `false` | પેરેલલ પ્રોસેસિંગ સક્ષમ કરો | @@ -335,7 +335,7 @@ const locale = await lingoDotDev.recognizeLocale("Bonjour le monde"); ### Lingo.dev Compiler -પરંપરાગત i18n આક્રમક છે. તમે દરેક સ્ટ્રિંગને `t()` ફંક્શન્સમાં રેપ કરો છો, ટ્રાન્સલેશન કી શોધો છો (`home.hero.title.v2`), પેરેલલ JSON ફાઇલો મેન્ટેઇન કરો છો, અને તમારા કમ્પોનન્ટ્સને લોકલાઇઝેશન બોઇલરપ્લેટથી ફૂલતા જુઓ છો. તે એટલું કંટાળાજનક છે કે ટીમો આંતરરાષ્ટ્રીયકરણને વિલંબિત કરે છે જ્યાં સુધી તે મોટા રિફેક્ટરમાં ન બદલાય. +પરંપરાગત i18n આક્રમક છે. તમે દરેક સ્ટ્રિંગને `t()` ફંક્શન્સમાં લપેટો છો, અનુવાદ કી (`home.hero.title.v2`) શોધો છો, સમાંતર JSON ફાઇલો જાળવો છો, અને તમારા કમ્પોનન્ટ્સને સ્થાનિકીકરણ બોઇલરપ્લેટથી ફૂલેલા જુઓ છો. આ એટલું કંટાળાજનક છે કે ટીમો આંતરરાષ્ટ્રીયકરણને મોટા રિફેક્ટર બનતા સુધી વિલંબિત કરે છે. Lingo.dev કમ્પાઇલર ઔપચારિકતાને દૂર કરે છે. સાદા અંગ્રેજી ટેક્સ્ટ સાથે React કમ્પોનન્ટ્સ લખો. કમ્પાઇલર બિલ્ડ સમયે ભાષાંતર યોગ્ય સ્ટ્રિંગ્સ શોધી કાઢે છે અને આપમેળે સ્થાનિકીકૃત વેરિઅન્ટ્સ જનરેટ કરે છે. કોઈ કી નહીં, કોઈ JSON ફાઇલો નહીં, કોઈ રેપર ફંક્શન્સ નહીં - ફક્ત React કોડ જે બહુવિધ ભાષાઓમાં કામ કરે છે. @@ -431,28 +431,28 @@ export function LanguageSwitcher() { } ``` -**ડેવલપમેન્ટ:** `npm run dev` (સ્યુડોટ્રાન્સલેટરનો ઉપયોગ કરે છે, કોઈ API કોલ્સ નહીં) +**ડેવલપમેન્ટ:** `npm run dev` (સ્યુડોટ્રાન્સલેટરનો ઉપયોગ કરે છે, કોઈ API કૉલ્સ નથી) **પ્રોડક્શન:** `usePseudotranslator: false` સેટ કરો, પછી `next build` -`.lingo/` ડિરેક્ટરીને વર્ઝન કન્ટ્રોલમાં કમિટ કરો. +`.lingo/` ડિરેક્ટરીને વર્ઝન કંટ્રોલમાં કમિટ કરો. **મુખ્ય વિશેષતાઓ:** - શૂન્ય રનટાઇમ પરફોર્મન્સ કોસ્ટ -- કોઈ ટ્રાન્સલેશન કી અથવા JSON ફાઇલો નહીં -- કોઈ `t()` ફંક્શન્સ અથવા `` રેપર કમ્પોનન્ટ્સ નહીં -- JSX માં ભાષાંતર યોગ્ય ટેક્સ્ટની આપમેળે શોધ +- કોઈ અનુવાદ કી અથવા JSON ફાઇલો નથી +- કોઈ `t()` ફંક્શન્સ અથવા `` રેપર કમ્પોનન્ટ્સ નથી +- JSX માં અનુવાદ યોગ્ય ટેક્સ્ટની સ્વચાલિત શોધ - TypeScript સપોર્ટ - બહુવચન માટે ICU MessageFormat - `data-lingo-override` એટ્રિબ્યુટ દ્વારા મેન્યુઅલ ઓવરરાઇડ્સ -- બિલ્ટ-ઇન ટ્રાન્સલેશન એડિટર વિજેટ +- બિલ્ટ-ઇન અનુવાદ એડિટર વિજેટ **બિલ્ડ મોડ્સ:** -- `pseudotranslator`: પ્લેસહોલ્ડર ટ્રાન્સલેશન્સ સાથે ડેવલપમેન્ટ મોડ (કોઈ API કોસ્ટ નહીં) -- `real`: LLMs નો ઉપયોગ કરીને વાસ્તવિક ટ્રાન્સલેશન્સ જનરેટ કરો -- `cache-only`: CI માંથી પ્રી-જનરેટેડ ટ્રાન્સલેશન્સનો ઉપયોગ કરીને પ્રોડક્શન મોડ (કોઈ API કોલ્સ નહીં) +- `pseudotranslator`: પ્લેસહોલ્ડર અનુવાદો સાથે ડેવલપમેન્ટ મોડ (કોઈ API ખર્ચ નથી) +- `real`: LLM નો ઉપયોગ કરીને વાસ્તવિક અનુવાદો જનરેટ કરો +- `cache-only`: CI થી પૂર્વ-જનરેટ કરેલા અનુવાદોનો ઉપયોગ કરીને પ્રોડક્શન મોડ (કોઈ API કૉલ્સ નથી) **સપોર્ટેડ ફ્રેમવર્ક્સ:** @@ -469,11 +469,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) - - દરેક PR માટે changeset જરૂરી છે: `pnpm new` (અથવા નોન-રિલીઝ ફેરફારો માટે `pnpm new:empty`) - - સબમિટ કરતા પહેલાં ખાતરી કરો કે ટેસ્ટ્સ પાસ થાય છે -3. **ડેવલપમેન્ટ:** આ pnpm + turborepo monorepo છે + - દરેક PR ને ચેન્જસેટની જરૂર છે: `pnpm new` (અથવા નોન-રિલીઝ ફેરફારો માટે `pnpm new:empty`) + - સબમિટ કરતા પહેલા ટેસ્ટ્સ પાસ થાય તેની ખાતરી કરો +3. **ડેવલપમેન્ટ:** આ pnpm + turborepo મોનોરેપો છે - ડિપેન્ડન્સીઝ ઇન્સ્ટોલ કરો: `pnpm install` - ટેસ્ટ્સ ચલાવો: `pnpm test` - બિલ્ડ: `pnpm build` @@ -498,12 +498,12 @@ export function LanguageSwitcher() { **નવી ભાષા ઉમેરવી:** -1. [BCP-47 ફોર્મેટ](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale)નો ઉપયોગ કરીને [`i18n.json`](./i18n.json)માં લોકેલ કોડ ઉમેરો +1. [BCP-47 ફોર્મેટ](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale) નો ઉપયોગ કરીને [`i18n.json`](./i18n.json) માં લોકેલ કોડ ઉમેરો 2. પુલ રિક્વેસ્ટ સબમિટ કરો **BCP-47 લોકેલ ફોર્મેટ:** `language[-Script][-REGION]` -- `language`: ISO 639-1/2/3 (lowercase): `en`, `zh`, `bho` -- `Script`: ISO 15924 (title case): `Hans`, `Hant`, `Latn` -- `REGION`: ISO 3166-1 alpha-2 (uppercase): `US`, `CN`, `IN` +- `language`: ISO 639-1/2/3 (લોઅરકેસ): `en`, `zh`, `bho` +- `Script`: ISO 15924 (ટાઇટલ કેસ): `Hans`, `Hant`, `Latn` +- `REGION`: ISO 3166-1 alpha-2 (અપરકેસ): `US`, `CN`, `IN` - ઉદાહરણો: `en`, `pt-BR`, `zh-Hans`, `sr-Cyrl-RS` diff --git a/readme/he.md b/readme/he.md index 36fcc6cd9..d6973cd2a 100644 --- a/readme/he.md +++ b/readme/he.md @@ -74,7 +74,7 @@ | [**MCP**](#lingodev-mcp) | הגדרת i18n בסיוע AI עבור אפליקציות React | Prompt: `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` | +| [**SDK**](#lingodev-sdk) | תרגום בזמן ריצה עבור תוכן דינמי | `npm install lingo.dev` | | [**Compiler**](#lingodev-compiler) | לוקליזציה של React בזמן build ללא wrappers של i18n | תוסף `withLingo()` | --- @@ -108,10 +108,10 @@ Set up i18n with the following locales: en, es, and pt-BR. The default locale is העוזר יבצע: -1. הגדרת routing מבוסס locale (לדוגמה, `/en`, `/es`, `/pt-BR`) -2. הגדרת קומפוננטות להחלפת שפה +1. הגדרת ניתוב מבוסס locale (לדוגמה, `/en`, `/es`, `/pt-BR`) +2. הגדרת רכיבי החלפת שפה 3. יישום זיהוי אוטומטי של locale -4. יצירת קבצי הגדרות נדרשים +4. יצירת קבצי תצורה נדרשים **שים לב:** יצירת קוד בעזרת AI אינה דטרמיניסטית. בדוק את הקוד שנוצר לפני ביצוע commit. @@ -162,7 +162,7 @@ npx lingo.dev@latest run } ``` -השדה `provider` הוא אופציונלי (ברירת מחדל: Lingo.dev Engine). עבור ספקי LLM מותאמים אישית: +השדה `provider` הוא אופציונלי (ברירת מחדל היא Lingo.dev Engine). עבור ספקי LLM מותאמים אישית: ```json { @@ -224,7 +224,7 @@ jobs: **דרישות הגדרה:** -1. הוסף `LINGODOTDEV_API_KEY` ל-secrets של ה-repository (Settings > Secrets and variables > Actions) +1. הוסף `LINGODOTDEV_API_KEY` ל-secrets של המאגר (Settings > Secrets and variables > Actions) 2. עבור workflows של PR: אפשר "Allow GitHub Actions to create and approve pull requests" ב-Settings > Actions > General **אפשרויות workflow:** @@ -250,14 +250,14 @@ env: **פרמטרים זמינים:** -| פרמטר | ברירת מחדל | תיאור | -| -------------------- | ---------------------------------------------- | -------------------------- | -| `api-key` | (נדרש) | מפתח API של Lingo.dev | -| `pull-request` | `false` | יצירת PR במקום commit ישיר | -| `commit-message` | `"feat: update translations via @LingoDotDev"` | הודעת commit מותאמת אישית | -| `pull-request-title` | `"feat: update translations via @LingoDotDev"` | כותרת PR מותאמת אישית | -| `working-directory` | `"."` | תיקייה להרצה | -| `parallel` | `false` | הפעלת עיבוד מקבילי | +| קלט | ברירת מחדל | תיאור | +| -------------------- | ---------------------------------------------- | ------------------------------- | +| `api-key` | (נדרש) | מפתח API של Lingo.dev | +| `pull-request` | `false` | צור PR במקום לבצע commit ישירות | +| `commit-message` | `"feat: update translations via @LingoDotDev"` | הודעת commit מותאמת אישית | +| `pull-request-title` | `"feat: update translations via @LingoDotDev"` | כותרת PR מותאמת אישית | +| `working-directory` | `"."` | ספרייה להרצה | +| `parallel` | `false` | אפשר עיבוד מקבילי | [קרא את התיעוד ←](https://lingo.dev/en/ci/github) @@ -333,7 +333,7 @@ const locale = await lingoDotDev.recognizeLocale("Bonjour le monde"); ### Lingo.dev Compiler -i18n מסורתי הוא פולשני. אתה עוטף כל מחרוזת בפונקציות `t()`, ממציא מפתחות תרגום (`home.hero.title.v2`), מתחזק קבצי JSON מקבילים, וצופה בקומפוננטות שלך מתנפחות עם boilerplate של לוקליזציה. זה כל כך מייגע שצוותים מדחים בינאום עד שזה הופך ל-refactor מסיבי. +i18n מסורתי הוא פולשני. עוטפים כל מחרוזת בפונקציות `t()`, ממציאים מפתחות תרגום (`home.hero.title.v2`), מתחזקים קבצי JSON מקבילים, וצופים בקומפוננטות מתנפחות עם קוד עזר של לוקליזציה. זה כל כך מייגע שצוותים דוחים בינלאום עד שזה הופך לרפקטור מסיבי. Lingo.dev Compiler מבטל את הטקסיות. כתוב קומפוננטות React עם טקסט באנגלית פשוטה. הקומפיילר מזהה מחרוזות הניתנות לתרגום בזמן build ומייצר גרסאות מתורגמות באופן אוטומטי. ללא מפתחות, ללא קבצי JSON, ללא פונקציות עטיפה - רק קוד React שפשוט עובד במספר שפות. @@ -431,25 +431,25 @@ export function LanguageSwitcher() { **פיתוח:** `npm run dev` (משתמש ב-pseudotranslator, ללא קריאות API) -**ייצור:** הגדר `usePseudotranslator: false`, ואז `next build` +**ייצור:** הגדירו `usePseudotranslator: false`, ואז `next build` -בצע commit לתיקיית `.lingo/` לבקרת גרסאות. +בצעו commit לתיקיית `.lingo/` לבקרת גרסאות. **תכונות עיקריות:** - ללא עלות ביצועים בזמן ריצה - ללא מפתחות תרגום או קבצי JSON -- ללא פונקציות `t()` או קומפוננטות עטיפה `` +- ללא פונקציות `t()` או קומפוננטות עוטפות `` - זיהוי אוטומטי של טקסט הניתן לתרגום ב-JSX - תמיכה ב-TypeScript -- ICU MessageFormat לריבוי +- ICU MessageFormat לרבים - עקיפות ידניות באמצעות תכונת `data-lingo-override` -- widget מובנה לעורך תרגומים +- ווידג'ט מובנה לעריכת תרגומים **מצבי build:** - `pseudotranslator`: מצב פיתוח עם תרגומי placeholder (ללא עלויות API) -- `real`: יצירת תרגומים אמיתיים באמצעות LLMs +- `real`: יצירת תרגומים בפועל באמצעות LLMs - `cache-only`: מצב ייצור המשתמש בתרגומים שנוצרו מראש מ-CI (ללא קריאות API) **פריימוורקים נתמכים:** @@ -467,10 +467,10 @@ export function LanguageSwitcher() { תרומות מתקבלות בברכה. אנא עקבו אחר ההנחיות הבאות: -1. **בעיות:** [דיווח על באגים או בקשת תכונות](https://github.com/lingodotdev/lingo.dev/issues) +1. **בעיות:** [דיווח על באגים או בקשת פיצ'רים](https://github.com/lingodotdev/lingo.dev/issues) 2. **Pull Requests:** [שליחת שינויים](https://github.com/lingodotdev/lingo.dev/pulls) - - כל PR דורש changeset: `pnpm new` (או `pnpm new:empty` עבור שינויים שאינם לשחרור) - - יש לוודא שהבדיקות עוברות לפני השליחה + - כל PR דורש changeset: `pnpm new` (או `pnpm new:empty` לשינויים שאינם release) + - ודאו שהבדיקות עוברות לפני השליחה 3. **פיתוח:** זהו monorepo של pnpm + turborepo - התקנת תלויות: `pnpm install` - הרצת בדיקות: `pnpm test` diff --git a/readme/hi.md b/readme/hi.md index 2f204048e..b7bc3b568 100644 --- a/readme/hi.md +++ b/readme/hi.md @@ -71,7 +71,7 @@ ## त्वरित शुरुआत -| टूल | उपयोग का मामला | त्वरित कमांड | +| उपकरण | उपयोग का मामला | त्वरित कमांड | | ---------------------------------- | ---------------------------------------------------- | ---------------------------------- | | [**MCP**](#lingodev-mcp) | React ऐप्स के लिए AI-सहायता प्राप्त i18n सेटअप | प्रॉम्प्ट: `Set up i18n` | | [**CLI**](#lingodev-cli) | JSON, YAML, markdown, CSV, PO फ़ाइलों का अनुवाद करें | `npx lingo.dev@latest run` | @@ -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`) -2. भाषा स्विचिंग कंपोनेंट सेटअप करें +2. भाषा स्विचिंग कंपोनेंट्स सेट अप करें 3. स्वचालित लोकेल डिटेक्शन लागू करें 4. आवश्यक कॉन्फ़िगरेशन फ़ाइलें जेनरेट करें @@ -140,7 +140,7 @@ npx lingo.dev@latest run **यह कैसे काम करता है:** 1. कॉन्फ़िगर की गई फ़ाइलों से अनुवाद योग्य कंटेंट निकालता है -2. अनुवाद के लिए कंटेंट को LLM प्रोवाइडर को भेजता है +2. अनुवाद के लिए LLM प्रदाता को कंटेंट भेजता है 3. अनुवादित कंटेंट को फ़ाइल सिस्टम में वापस लिखता है 4. पूर्ण किए गए अनुवादों को ट्रैक करने के लिए `i18n.lock` फ़ाइल बनाता है (अनावश्यक प्रोसेसिंग से बचाता है) @@ -164,7 +164,7 @@ npx lingo.dev@latest run } ``` -`provider` फ़ील्ड वैकल्पिक है (डिफ़ॉल्ट रूप से Lingo.dev Engine)। कस्टम LLM प्रोवाइडर के लिए: +`provider` फ़ील्ड वैकल्पिक है (डिफ़ॉल्ट Lingo.dev Engine)। कस्टम LLM प्रदाताओं के लिए: ```json { @@ -256,10 +256,10 @@ env: | -------------------- | ---------------------------------------------- | ------------------------------- | | `api-key` | (आवश्यक) | Lingo.dev API key | | `pull-request` | `false` | सीधे कमिट करने के बजाय PR बनाएं | -| `commit-message` | `"feat: update translations via @LingoDotDev"` | कस्टम कमिट मैसेज | -| `pull-request-title` | `"feat: update translations via @LingoDotDev"` | कस्टम PR टाइटल | -| `working-directory` | `"."` | जिस डायरेक्टरी में रन करना है | -| `parallel` | `false` | पैरेलल प्रोसेसिंग सक्षम करें | +| `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) @@ -335,7 +335,7 @@ const locale = await lingoDotDev.recognizeLocale("Bonjour le monde"); ### Lingo.dev Compiler -पारंपरिक i18n इनवेसिव है। आप हर स्ट्रिंग को `t()` फंक्शन में रैप करते हैं, ट्रांसलेशन कुंजियां बनाते हैं (`home.hero.title.v2`), पैरेलल JSON फ़ाइलें मेंटेन करते हैं, और अपने कंपोनेंट को लोकलाइज़ेशन बॉयलरप्लेट से भरा हुआ देखते हैं। यह इतना थकाऊ है कि टीमें इंटरनेशनलाइज़ेशन को तब तक टालती हैं जब तक यह एक बड़ा रिफ़ैक्टर नहीं बन जाता। +पारंपरिक i18n आक्रामक है। आप हर स्ट्रिंग को `t()` फ़ंक्शन में लपेटते हैं, अनुवाद कुंजियाँ (`home.hero.title.v2`) बनाते हैं, समानांतर JSON फ़ाइलें मेंटेन करते हैं, और अपने कंपोनेंट्स को लोकलाइज़ेशन बॉयलरप्लेट से फूलते हुए देखते हैं। यह इतना थकाऊ है कि टीमें अंतर्राष्ट्रीयकरण को तब तक टालती हैं जब तक यह एक विशाल रिफ़ैक्टर नहीं बन जाता। Lingo.dev Compiler औपचारिकता को समाप्त करता है। सादे अंग्रेजी टेक्स्ट के साथ React components लिखें। Compiler बिल्ड टाइम पर अनुवाद योग्य स्ट्रिंग्स का पता लगाता है और स्वचालित रूप से स्थानीयकृत वेरिएंट जेनरेट करता है। कोई keys नहीं, कोई JSON फ़ाइलें नहीं, कोई wrapper functions नहीं - बस React कोड जो कई भाषाओं में काम करता है। @@ -431,28 +431,28 @@ export function LanguageSwitcher() { } ``` -**Development:** `npm run dev` (pseudotranslator का उपयोग करता है, कोई API कॉल नहीं) +**डेवलपमेंट:** `npm run dev` (स्यूडोट्रांसलेटर का उपयोग करता है, कोई API कॉल नहीं) -**Production:** `usePseudotranslator: false` सेट करें, फिर `next build` +**प्रोडक्शन:** `usePseudotranslator: false` सेट करें, फिर `next build` -`.lingo/` डायरेक्टरी को version control में commit करें। +`.lingo/` डायरेक्टरी को वर्ज़न कंट्रोल में कमिट करें। **मुख्य विशेषताएं:** -- शून्य runtime performance cost -- कोई translation keys या JSON फ़ाइलें नहीं -- कोई `t()` functions या `` wrapper components नहीं -- JSX में अनुवाद योग्य टेक्स्ट का स्वचालित पता लगाना -- TypeScript समर्थन -- बहुवचन के लिए ICU MessageFormat -- `data-lingo-override` attribute के माध्यम से मैनुअल overrides -- बिल्ट-इन translation editor widget +- शून्य रनटाइम परफ़ॉर्मेंस कॉस्ट +- कोई अनुवाद कुंजियाँ या JSON फ़ाइलें नहीं +- कोई `t()` फ़ंक्शन या `` रैपर कंपोनेंट नहीं +- JSX में अनुवाद योग्य टेक्स्ट की स्वचालित पहचान +- TypeScript सपोर्ट +- प्लूरल्स के लिए ICU MessageFormat +- `data-lingo-override` एट्रिब्यूट के माध्यम से मैनुअल ओवरराइड +- बिल्ट-इन अनुवाद एडिटर विजेट **बिल्ड मोड:** -- `pseudotranslator`: प्लेसहोल्डर अनुवादों के साथ development मोड (कोई API लागत नहीं) -- `real`: LLMs का उपयोग करके वास्तविक अनुवाद जेनरेट करें -- `cache-only`: CI से पूर्व-जेनरेट किए गए अनुवादों का उपयोग करके production मोड (कोई API कॉल नहीं) +- `pseudotranslator`: प्लेसहोल्डर अनुवादों के साथ डेवलपमेंट मोड (कोई API कॉस्ट नहीं) +- `real`: LLM का उपयोग करके वास्तविक अनुवाद जेनरेट करें +- `cache-only`: CI से पूर्व-जेनरेट किए गए अनुवादों का उपयोग करते हुए प्रोडक्शन मोड (कोई API कॉल नहीं) **समर्थित frameworks:** @@ -469,13 +469,13 @@ 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) - - प्रत्येक PR के लिए चेंजसेट आवश्यक है: `pnpm new` (या `pnpm new:empty` नॉन-रिलीज़ परिवर्तनों के लिए) - - सबमिट करने से पहले सुनिश्चित करें कि टेस्ट पास हो जाएं + - हर PR के लिए चेंजसेट आवश्यक है: `pnpm new` (या नॉन-रिलीज़ परिवर्तनों के लिए `pnpm new:empty`) + - सबमिट करने से पहले सुनिश्चित करें कि टेस्ट पास हों 3. **डेवलपमेंट:** यह एक pnpm + turborepo मोनोरेपो है - - डिपेंडेंसीज़ इंस्टॉल करें: `pnpm install` - - टेस्ट चलाएं: `pnpm test` + - डिपेंडेंसी इंस्टॉल करें: `pnpm install` + - टेस्ट रन करें: `pnpm test` - बिल्ड करें: `pnpm build` **सपोर्ट:** [Discord कम्युनिटी](https://lingo.dev/go/discord) @@ -498,10 +498,10 @@ 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. एक पुल रिक्वेस्ट सबमिट करें +1. [BCP-47 फ़ॉर्मेट](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale) का उपयोग करके [`i18n.json`](./i18n.json) में लोकेल कोड जोड़ें +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` diff --git a/readme/it.md b/readme/it.md index e0474bf0c..0d5ef2e4f 100644 --- a/readme/it.md +++ b/readme/it.md @@ -71,13 +71,13 @@ ## Quick start -| Tool | Caso d'uso | Comando rapido | -| ---------------------------------- | ------------------------------------------------------ | ---------------------------------- | -| [**MCP**](#lingodev-mcp) | Setup i18n assistito da AI per app React | Prompt: `Set up i18n` | -| [**CLI**](#lingodev-cli) | Traduzione di file JSON, YAML, markdown, CSV, PO | `npx lingo.dev@latest run` | -| [**CI/CD**](#lingodev-cicd) | Pipeline di traduzione automatizzata in GitHub Actions | `uses: lingodotdev/lingo.dev@main` | -| [**SDK**](#lingodev-sdk) | Traduzione runtime per contenuti dinamici | `npm install lingo.dev` | -| [**Compiler**](#lingodev-compiler) | Localizzazione React a build-time senza wrapper i18n | Plugin `withLingo()` | +| Strumento | Caso d'uso | Comando rapido | +| ---------------------------------- | -------------------------------------------------------- | ---------------------------------- | +| [**MCP**](#lingodev-mcp) | Configurazione i18n assistita da AI per app React | Prompt: `Set up i18n` | +| [**CLI**](#lingodev-cli) | Traduzione di file JSON, YAML, markdown, CSV, PO | `npx lingo.dev@latest run` | +| [**CI/CD**](#lingodev-cicd) | Pipeline di traduzione automatizzata in GitHub Actions | `uses: lingodotdev/lingo.dev@main` | +| [**SDK**](#lingodev-sdk) | Traduzione runtime per contenuti dinamici | `npm install lingo.dev` | +| [**Compiler**](#lingodev-compiler) | Localizzazione React in fase di build senza wrapper i18n | Plugin `withLingo()` | --- @@ -110,10 +110,10 @@ Set up i18n with the following locales: en, es, and pt-BR. The default locale is L'assistente: -1. Configurerà il routing basato su locale (es. `/en`, `/es`, `/pt-BR`) -2. Configurerà i componenti per il cambio lingua -3. Implementerà il rilevamento automatico del locale -4. Genererà i file di configurazione necessari +1. Configurare il routing basato su locale (es. `/en`, `/es`, `/pt-BR`) +2. Configurare i componenti per il cambio lingua +3. Implementare il rilevamento automatico del locale +4. Generare i file di configurazione necessari **Nota:** la generazione di codice assistita da AI è non deterministica. Rivedi il codice generato prima di committare. @@ -139,14 +139,14 @@ npx lingo.dev@latest run **Come funziona:** -1. Estrae i contenuti traducibili dai file configurati -2. Invia i contenuti al provider LLM per la traduzione -3. Scrive i contenuti tradotti nel filesystem +1. Estrae il contenuto traducibile dai file configurati +2. Invia il contenuto al provider LLM per la traduzione +3. Scrive il contenuto tradotto nel filesystem 4. Crea il file `i18n.lock` per tracciare le traduzioni completate (evita elaborazioni ridondanti) **Configurazione:** -Il comando `init` genera un file `i18n.json`. Configura le locale e i bucket: +Il comando `init` genera un file `i18n.json`. Configurare i locale e i bucket: ```json { @@ -204,7 +204,7 @@ Lingo.dev CI/CD rende le traduzioni automatiche. Ogni push attiva la traduzione. **Setup GitHub Actions:** -Crea `.github/workflows/translate.yml`: +Creare `.github/workflows/translate.yml`: ```yaml name: Translate @@ -226,8 +226,8 @@ jobs: **Requisiti di setup:** -1. Aggiungi `LINGODOTDEV_API_KEY` ai secret del repository (Settings > Secrets and variables > Actions) -2. Per i workflow PR: Abilita "Allow GitHub Actions to create and approve pull requests" in Settings > Actions > General +1. Aggiungere `LINGODOTDEV_API_KEY` ai secret del repository (Impostazioni > Secrets and variables > Actions) +2. Per i workflow PR: abilitare "Allow GitHub Actions to create and approve pull requests" in Impostazioni > Actions > General **Opzioni workflow:** @@ -252,7 +252,7 @@ env: **Input disponibili:** -| Input | Default | Descrizione | +| Input | Predefinito | Descrizione | | -------------------- | ---------------------------------------------- | ----------------------------------------- | | `api-key` | (obbligatorio) | Chiave API Lingo.dev | | `pull-request` | `false` | Crea PR invece di committare direttamente | @@ -335,7 +335,7 @@ const locale = await lingoDotDev.recognizeLocale("Bonjour le monde"); ### Lingo.dev Compiler -L'i18n tradizionale è invasivo. Avvolgi ogni stringa in funzioni `t()`, inventi chiavi di traduzione (`home.hero.title.v2`), mantieni file JSON paralleli e guardi i tuoi componenti gonfiarsi con boilerplate di localizzazione. È così tedioso che i team ritardano l'internazionalizzazione finché non diventa un refactoring massiccio. +L'i18n tradizionale è invasivo. Si avvolge ogni stringa in funzioni `t()`, si inventano chiavi di traduzione (`home.hero.title.v2`), si mantengono file JSON paralleli e si osserva come i componenti si gonfiano di boilerplate di localizzazione. È così tedioso che i team rimandano l'internazionalizzazione finché non diventa un refactoring massiccio. Lingo.dev Compiler elimina le cerimonie. Scrivi componenti React con testo in inglese semplice. Il compiler rileva le stringhe traducibili al momento della build e genera automaticamente le varianti localizzate. Niente chiavi, niente file JSON, niente funzioni wrapper - solo codice React che funziona in più lingue. @@ -450,9 +450,9 @@ Committa la directory `.lingo/` nel version control. **Modalità di build:** -- `pseudotranslator`: Modalità sviluppo con traduzioni placeholder (nessun costo API) -- `real`: Genera traduzioni reali utilizzando LLM -- `cache-only`: Modalità produzione utilizzando traduzioni pre-generate da CI (nessuna chiamata API) +- `pseudotranslator`: modalità sviluppo con traduzioni placeholder (nessun costo API) +- `real`: genera traduzioni effettive utilizzando LLM +- `cache-only`: modalità produzione utilizzando traduzioni pre-generate da CI (nessuna chiamata API) **Framework supportati:** @@ -469,11 +469,11 @@ Supporto per framework aggiuntivi in programma. I contributi sono benvenuti. Si prega di seguire queste linee guida: -1. **Issue:** [Segnala bug o richiedi funzionalità](https://github.com/lingodotdev/lingo.dev/issues) -2. **Pull request:** [Invia modifiche](https://github.com/lingodotdev/lingo.dev/pulls) - - Ogni PR richiede un changeset: `pnpm new` (o `pnpm new:empty` per modifiche che non richiedono rilascio) +1. **Issues:** [segnala bug o richiedi funzionalità](https://github.com/lingodotdev/lingo.dev/issues) +2. **Pull request:** [invia modifiche](https://github.com/lingodotdev/lingo.dev/pulls) + - Ogni PR richiede un changeset: `pnpm new` (o `pnpm new:empty` per modifiche senza release) - Assicurati che i test passino prima di inviare -3. **Sviluppo:** Questo è un monorepo pnpm + turborepo +3. **Sviluppo:** questo è un monorepo pnpm + turborepo - Installa le dipendenze: `pnpm install` - Esegui i test: `pnpm test` - Build: `pnpm build` @@ -504,6 +504,6 @@ Se trovi Lingo.dev utile, lasciaci una stella e aiutaci a raggiungere 10.000 ste **Formato locale BCP-47:** `language[-Script][-REGION]` - `language`: ISO 639-1/2/3 (minuscolo): `en`, `zh`, `bho` -- `Script`: ISO 15924 (maiuscolo iniziale): `Hans`, `Hant`, `Latn` +- `Script`: ISO 15924 (title case): `Hans`, `Hant`, `Latn` - `REGION`: ISO 3166-1 alpha-2 (maiuscolo): `US`, `CN`, `IN` - Esempi: `en`, `pt-BR`, `zh-Hans`, `sr-Cyrl-RS` diff --git a/readme/ja.md b/readme/ja.md index 4e6e3a9bf..2b7cce3f0 100644 --- a/readme/ja.md +++ b/readme/ja.md @@ -72,10 +72,10 @@ ## クイックスタート -| ツール | ユースケース | クイックコマンド | +| ツール | 使用例 | クイックコマンド | | ---------------------------------- | --------------------------------------------------- | ---------------------------------- | | [**MCP**](#lingodev-mcp) | ReactアプリのAI支援i18nセットアップ | プロンプト: `Set up i18n` | -| [**CLI**](#lingodev-cli) | JSON、YAML、Markdown、CSV、POファイルの翻訳 | `npx lingo.dev@latest run` | +| [**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) | i18nラッパーなしのビルド時Reactローカライゼーション | `withLingo()`プラグイン | @@ -147,7 +147,7 @@ npx lingo.dev@latest run **設定:** -`init`コマンドは`i18n.json`ファイルを生成します。ロケールとバケットを設定してください: +`init`コマンドは`i18n.json`ファイルを生成します。ロケールとバケットを設定: ```json { @@ -227,7 +227,7 @@ jobs: **セットアップ要件:** -1. リポジトリシークレットに`LINGODOTDEV_API_KEY`を追加(Settings > Secrets and variables > Actions) +1. `LINGODOTDEV_API_KEY`をリポジトリシークレットに追加(Settings > Secrets and variables > Actions) 2. PRワークフローの場合: Settings > Actions > Generalで「Allow GitHub Actions to create and approve pull requests」を有効化 **ワークフローオプション:** @@ -336,7 +336,7 @@ const locale = await lingoDotDev.recognizeLocale("Bonjour le monde"); ### Lingo.dev Compiler -従来のi18nは侵襲的です。すべての文字列を`t()`関数でラップし、翻訳キー(`home.hero.title.v2`)を考案し、並列JSONファイルを維持し、コンポーネントがローカライゼーションの定型コードで肥大化するのを見守ります。あまりにも面倒なため、チームは国際化を遅らせ、最終的に大規模なリファクタリングになってしまいます。 +従来のi18nは侵襲的です。すべての文字列を`t()`関数でラップし、翻訳キー(`home.hero.title.v2`)を考案し、並列JSONファイルを保守し、コンポーネントがローカライゼーションの定型コードで肥大化するのを見守ることになります。非常に面倒なため、チームは国際化を遅らせ、最終的には大規模なリファクタリングになってしまいます。 Lingo.devコンパイラーは煩雑な作業を排除します。プレーンな英語テキストでReactコンポーネントを記述できます。コンパイラーはビルド時に翻訳可能な文字列を検出し、ローカライズされたバリアントを自動的に生成します。キー、JSONファイル、ラッパー関数は不要です。複数の言語で動作するReactコードを記述するだけです。 @@ -432,9 +432,9 @@ export function LanguageSwitcher() { } ``` -**開発:** `npm run dev`(疑似翻訳を使用、API呼び出しなし) +**開発環境:** `npm run dev`(疑似翻訳を使用、APIコールなし) -**本番:** `usePseudotranslator: false`を設定し、`next build`を実行 +**本番環境:** `usePseudotranslator: false`を設定し、`next build`を実行 `.lingo/`ディレクトリをバージョン管理にコミットします。 @@ -442,18 +442,18 @@ export function LanguageSwitcher() { - ランタイムパフォーマンスコストゼロ - 翻訳キーやJSONファイル不要 -- `t()`関数や``ラッパーコンポーネント不要 -- JSX内の翻訳可能なテキストの自動検出 +- `t()`関数やINLINE_CODE_PLACEHOLDER_84cd12aa71f0670_ENDラッパーコンポーネント不要 +- JSX内の翻訳可能テキストの自動検出 - TypeScriptサポート - 複数形のためのICU MessageFormat - `data-lingo-override`属性による手動オーバーライド -- 組み込み翻訳エディターウィジェット +- 組み込み翻訳エディタウィジェット **ビルドモード:** -- `pseudotranslator`: プレースホルダー翻訳を使用する開発モード(APIコストなし) -- `real`: LLMを使用して実際の翻訳を生成 -- `cache-only`: CIから事前生成された翻訳を使用する本番モード(API呼び出しなし) +- `pseudotranslator`: プレースホルダー翻訳を使用した開発モード(APIコストなし) +- `real`: LLMを使用した実際の翻訳生成 +- `cache-only`: CIで事前生成された翻訳を使用する本番モード(APIコールなし) **対応フレームワーク:** @@ -470,13 +470,13 @@ export function LanguageSwitcher() { コントリビューションを歓迎します。以下のガイドラインに従ってください。 -1. **Issue:** [バグ報告や機能リクエスト](https://github.com/lingodotdev/lingo.dev/issues) -2. **プルリクエスト:** [変更を送信](https://github.com/lingodotdev/lingo.dev/pulls) - - すべてのPRにはchangesetが必要です: `pnpm new` (リリース対象外の変更の場合は `pnpm new:empty`) +1. **Issues:** [バグ報告や機能リクエスト](https://github.com/lingodotdev/lingo.dev/issues) +2. **Pull Requests:** [変更の送信](https://github.com/lingodotdev/lingo.dev/pulls) + - すべてのPRにはchangesetが必要です: `pnpm new`(リリース対象外の変更の場合は`pnpm new:empty`) - 送信前にテストが通過することを確認してください -3. **開発:** これはpnpm + turborepoのモノレポです +3. **開発:** これはpnpm + turborepoモノレポです - 依存関係のインストール: `pnpm install` - - テストの実行: `pnpm test` + - テスト実行: `pnpm test` - ビルド: `pnpm build` **サポート:** [Discordコミュニティ](https://lingo.dev/go/discord) @@ -499,12 +499,12 @@ Lingo.devが役に立つと思ったら、スターを付けて10,000スター **新しい言語の追加:** -1. [BCP-47形式](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale)を使用して、ロケールコードを [`i18n.json`](./i18n.json) に追加してください -2. プルリクエストを送信してください +1. [BCP-47形式](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale)を使用して、ロケールコードを[`i18n.json`](./i18n.json)に追加します +2. プルリクエストを送信します **BCP-47ロケール形式:** `language[-Script][-REGION]` -- `language`: ISO 639-1/2/3 (小文字): `en`、`zh`、`bho` -- `Script`: ISO 15924 (タイトルケース): `Hans`、`Hant`、`Latn` -- `REGION`: ISO 3166-1 alpha-2 (大文字): `US`、`CN`、`IN` +- `language`: ISO 639-1/2/3(小文字): `en`、`zh`、`bho` +- `Script`: ISO 15924(タイトルケース): `Hans`、`Hant`、`Latn` +- `REGION`: ISO 3166-1 alpha-2(大文字): `US`、`CN`、`IN` - 例: `en`、`pt-BR`、`zh-Hans`、`sr-Cyrl-RS` diff --git a/readme/ko.md b/readme/ko.md index 16345c99c..22208c855 100644 --- a/readme/ko.md +++ b/readme/ko.md @@ -69,13 +69,13 @@ ## 빠른 시작 -| 도구 | 사용 사례 | 빠른 명령어 | -| ---------------------------------- | ------------------------------------------- | ---------------------------------- | -| [**MCP**](#lingodev-mcp) | React 앱을 위한 AI 지원 i18n 설정 | 프롬프트: `Set up i18n` | -| [**CLI**](#lingodev-cli) | JSON, YAML, 마크다운, 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) | i18n 래퍼 없이 빌드 타임 React 현지화 | `withLingo()` 플러그인 | +| 도구 | 사용 사례 | 빠른 명령 | +| ---------------------------------- | --------------------------------------------- | ---------------------------------- | +| [**MCP**](#lingodev-mcp) | React 앱을 위한 AI 지원 i18n 설정 | 프롬프트: `Set up i18n` | +| [**CLI**](#lingodev-cli) | JSON, YAML, 마크다운, 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) | i18n 래퍼 없이 빌드 타임 React 로컬라이제이션 | `withLingo()` 플러그인 | --- @@ -162,7 +162,7 @@ npx lingo.dev@latest run } ``` -`provider` 필드는 선택 사항입니다 (기본값은 Lingo.dev Engine). 사용자 정의 LLM 제공자의 경우: +`provider` 필드는 선택 사항입니다 (기본값은 Lingo.dev Engine). 커스텀 LLM 제공자의 경우: ```json { @@ -224,7 +224,7 @@ jobs: **설정 요구사항:** -1. 리포지토리 시크릿에 `LINGODOTDEV_API_KEY` 추가 (Settings > Secrets and variables > Actions) +1. 저장소 시크릿에 `LINGODOTDEV_API_KEY` 추가 (Settings > Secrets and variables > Actions) 2. PR 워크플로우의 경우: Settings > Actions > General에서 "Allow GitHub Actions to create and approve pull requests" 활성화 **워크플로우 옵션:** @@ -250,14 +250,14 @@ env: **사용 가능한 입력:** -| 입력 | 기본값 | 설명 | -| -------------------- | ---------------------------------------------- | ----------------------- | -| `api-key` | (필수) | Lingo.dev API 키 | -| `pull-request` | `false` | 직접 커밋 대신 PR 생성 | -| `commit-message` | `"feat: update translations via @LingoDotDev"` | 사용자 정의 커밋 메시지 | -| `pull-request-title` | `"feat: update translations via @LingoDotDev"` | 사용자 정의 PR 제목 | -| `working-directory` | `"."` | 실행할 디렉토리 | -| `parallel` | `false` | 병렬 처리 활성화 | +| 입력 | 기본값 | 설명 | +| -------------------- | ---------------------------------------------- | ---------------------- | +| `api-key` | (필수) | Lingo.dev API 키 | +| `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) @@ -333,7 +333,7 @@ const locale = await lingoDotDev.recognizeLocale("Bonjour le monde"); ### Lingo.dev Compiler -기존 i18n은 침습적입니다. 모든 문자열을 `t()` 함수로 래핑하고, 번역 키를 만들고(`home.hero.title.v2`), 병렬 JSON 파일을 유지 관리하며, 현지화 보일러플레이트로 컴포넌트가 비대해지는 것을 지켜봐야 합니다. 너무 지루해서 팀들은 국제화를 대규모 리팩토링이 될 때까지 미루게 됩니다. +기존 i18n은 침투적입니다. 모든 문자열을 `t()` 함수로 감싸고, 번역 키(`home.hero.title.v2`)를 만들고, 병렬 JSON 파일을 유지 관리하며, 컴포넌트가 로컬라이제이션 보일러플레이트로 비대해지는 것을 지켜봐야 합니다. 너무 지루해서 팀들은 국제화를 대규모 리팩터링이 될 때까지 미루게 됩니다. Lingo.dev Compiler는 복잡한 절차를 제거합니다. 일반 영어 텍스트로 React 컴포넌트를 작성하세요. 컴파일러는 빌드 시점에 번역 가능한 문자열을 감지하고 자동으로 현지화된 변형을 생성합니다. 키도, JSON 파일도, 래퍼 함수도 필요 없습니다 - 그저 여러 언어로 작동하는 React 코드일 뿐입니다. @@ -429,21 +429,21 @@ export function LanguageSwitcher() { } ``` -**개발:** `npm run dev` (의사 번역기 사용, API 호출 없음) +**개발:** `npm run dev` (pseudotranslator 사용, API 호출 없음) -**프로덕션:** `usePseudotranslator: false`를 설정한 후 `next build` 실행 +**프로덕션:** `usePseudotranslator: false` 설정 후 `next build` 실행 -`.lingo/` 디렉토리를 버전 관리에 커밋하세요. +`.lingo/` 디렉터리를 버전 관리에 커밋하세요. **주요 기능:** - 런타임 성능 비용 제로 -- 번역 키 또는 JSON 파일 불필요 -- `t()` 함수 또는 `` 래퍼 컴포넌트 불필요 +- 번역 키나 JSON 파일 불필요 +- `t()` 함수나 `` 래퍼 컴포넌트 불필요 - JSX 내 번역 가능한 텍스트 자동 감지 - TypeScript 지원 - 복수형을 위한 ICU MessageFormat -- `data-lingo-override` 속성을 통한 수동 재정의 +- `data-lingo-override` 속성을 통한 수동 오버라이드 - 내장 번역 편집기 위젯 **빌드 모드:** @@ -467,10 +467,10 @@ 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) - 모든 PR에는 changeset이 필요합니다: `pnpm new` (또는 릴리스하지 않는 변경 사항의 경우 `pnpm new:empty`) - - 제출 전에 테스트가 통과하는지 확인하세요 + - 제출 전 테스트 통과 확인 3. **개발:** pnpm + turborepo 모노레포입니다 - 의존성 설치: `pnpm install` - 테스트 실행: `pnpm test` @@ -496,12 +496,12 @@ Lingo.dev가 유용하다면 스타를 주시고 10,000개의 스타를 달성 **새 언어 추가:** -1. [BCP-47 형식](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale)을 사용하여 [`i18n.json`](./i18n.json)에 로케일 코드를 추가하세요 -2. 풀 리퀘스트를 제출하세요 +1. [BCP-47 형식](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale)을 사용하여 [`i18n.json`](./i18n.json)에 로케일 코드 추가 +2. 풀 리퀘스트 제출 **BCP-47 로케일 형식:** `language[-Script][-REGION]` - `language`: ISO 639-1/2/3 (소문자): `en`, `zh`, `bho` -- `Script`: ISO 15924 (첫 글자 대문자): `Hans`, `Hant`, `Latn` +- `Script`: ISO 15924 (타이틀 케이스): `Hans`, `Hant`, `Latn` - `REGION`: ISO 3166-1 alpha-2 (대문자): `US`, `CN`, `IN` - 예시: `en`, `pt-BR`, `zh-Hans`, `sr-Cyrl-RS` diff --git a/readme/mr-IN.md b/readme/mr-IN.md index 6cb064bfb..6480415a5 100644 --- a/readme/mr-IN.md +++ b/readme/mr-IN.md @@ -69,7 +69,7 @@ ## द्रुत प्रारंभ -| टूल | वापर प्रकरण | द्रुत कमांड | +| साधन | वापराचे क्षेत्र | द्रुत आदेश | | ---------------------------------- | ----------------------------------------------- | ---------------------------------- | | [**MCP**](#lingodev-mcp) | React अॅप्ससाठी AI-सहाय्यित i18n सेटअप | प्रॉम्प्ट: `Set up i18n` | | [**CLI**](#lingodev-cli) | JSON, YAML, markdown, CSV, PO फाइल्सचे भाषांतर | `npx lingo.dev@latest run` | @@ -108,10 +108,10 @@ Set up i18n with the following locales: en, es, and pt-BR. The default locale is असिस्टंट हे करेल: -1. लोकेल-आधारित राउटिंग कॉन्फिगर करेल (उदा., `/en`, `/es`, `/pt-BR`) -2. भाषा स्विचिंग कंपोनेंट्स सेटअप करेल -3. स्वयंचलित लोकेल डिटेक्शन इम्प्लिमेंट करेल -4. आवश्यक कॉन्फिगरेशन फाइल्स जनरेट करेल +1. लोकेल-आधारित राउटिंग कॉन्फिगर करा (उदा., `/en`, `/es`, `/pt-BR`) +2. भाषा स्विचिंग घटक सेट अप करा +3. स्वयंचलित लोकेल शोध लागू करा +4. आवश्यक कॉन्फिगरेशन फाइल्स जनरेट करा **टीप:** AI-असिस्टेड कोड जनरेशन नॉन-डिटर्मिनिस्टिक आहे. कमिट करण्यापूर्वी जनरेट केलेल्या कोडचे पुनरावलोकन करा. @@ -137,14 +137,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 { @@ -162,7 +162,7 @@ npx lingo.dev@latest run } ``` -`provider` फील्ड ऐच्छिक आहे (डीफॉल्ट Lingo.dev Engine). कस्टम LLM प्रोव्हायडर्ससाठी: +`provider` फील्ड ऐच्छिक आहे (डीफॉल्ट Lingo.dev Engine). कस्टम LLM प्रदात्यांसाठी: ```json { @@ -250,14 +250,14 @@ env: **उपलब्ध इनपुट्स:** -| इनपुट | डिफॉल्ट | वर्णन | +| इनपुट | डीफॉल्ट | वर्णन | | -------------------- | ---------------------------------------------- | --------------------------------- | | `api-key` | (आवश्यक) | Lingo.dev API की | | `pull-request` | `false` | थेट कमिट करण्याऐवजी PR तयार करा | | `commit-message` | `"feat: update translations via @LingoDotDev"` | कस्टम कमिट मेसेज | | `pull-request-title` | `"feat: update translations via @LingoDotDev"` | कस्टम PR शीर्षक | | `working-directory` | `"."` | ज्या डिरेक्टरीमध्ये रन करायचे आहे | -| `parallel` | `false` | पॅरलल प्रोसेसिंग सक्षम करा | +| `parallel` | `false` | समांतर प्रक्रिया सक्षम करा | [डॉक्युमेंटेशन वाचा →](https://lingo.dev/en/ci/github) @@ -333,7 +333,7 @@ const locale = await lingoDotDev.recognizeLocale("Bonjour le monde"); ### Lingo.dev Compiler -पारंपारिक i18n आक्रमक आहे. तुम्ही प्रत्येक स्ट्रिंग `t()` फंक्शन्समध्ये रॅप करता, ट्रान्सलेशन की शोधता (`home.hero.title.v2`), पॅरलल JSON फाइल्स मेंटेन करता आणि तुमचे कंपोनेंट्स लोकलायझेशन बॉयलरप्लेटने फुगलेले पाहता. हे इतके कंटाळवाणे आहे की टीम्स इंटरनॅशनलायझेशन पुढे ढकलतात जोपर्यंत ते मोठे रिफॅक्टर बनत नाही. +पारंपरिक i18n आक्रमक आहे. तुम्ही प्रत्येक स्ट्रिंगला `t()` फंक्शन्समध्ये गुंडाळता, भाषांतर की शोधता (`home.hero.title.v2`), समांतर JSON फाइल्स व्यवस्थापित करता आणि तुमचे कंपोनेंट्स स्थानिकीकरण बॉयलरप्लेटने फुगलेले पाहता. हे इतके कंटाळवाणे आहे की टीम्स आंतरराष्ट्रीयीकरण विलंबित करतात जोपर्यंत ते मोठ्या रिफॅक्टरमध्ये बदलत नाही. Lingo.dev Compiler औपचारिकता काढून टाकतो. साध्या इंग्रजी मजकुरासह React कॉम्पोनेंट्स लिहा. कंपायलर बिल्ड टाइमवर भाषांतर करण्यायोग्य स्ट्रिंग्स शोधतो आणि आपोआप स्थानिकीकृत व्हेरिएंट्स जनरेट करतो. की नाहीत, JSON फाइल्स नाहीत, रॅपर फंक्शन्स नाहीत - फक्त React कोड जो अनेक भाषांमध्ये काम करतो. @@ -429,7 +429,7 @@ export function LanguageSwitcher() { } ``` -**डेव्हलपमेंट:** `npm run dev` (स्यूडोट्रान्सलेटर वापरतो, API कॉल्स नाहीत) +**डेव्हलपमेंट:** `npm run dev` (स्यूडोट्रान्सलेटर वापरते, API कॉल्स नाहीत) **प्रोडक्शन:** `usePseudotranslator: false` सेट करा, नंतर `next build` @@ -439,12 +439,12 @@ export function LanguageSwitcher() { - रनटाइम परफॉर्मन्स कॉस्ट शून्य - भाषांतर की किंवा JSON फाइल्स नाहीत -- `t()` फंक्शन्स किंवा `` रॅपर कॉम्पोनेंट्स नाहीत -- JSX मध्ये भाषांतर करण्यायोग्य मजकुराचे स्वयंचलित शोध +- `t()` फंक्शन्स किंवा `` रॅपर कंपोनेंट्स नाहीत +- JSX मध्ये भाषांतर करण्यायोग्य मजकूराचा स्वयंचलित शोध - TypeScript सपोर्ट -- अनेकवचनासाठी ICU MessageFormat -- `data-lingo-override` अॅट्रिब्यूटद्वारे मॅन्युअल ओव्हरराइड्स -- बिल्ट-इन भाषांतर एडिटर विजेट +- अनेकवचनांसाठी ICU MessageFormat +- `data-lingo-override` विशेषतेद्वारे मॅन्युअल ओव्हरराइड्स +- अंतर्भूत भाषांतर एडिटर विजेट **बिल्ड मोड्स:** @@ -467,13 +467,13 @@ export function LanguageSwitcher() { योगदानाचे स्वागत आहे. कृपया या मार्गदर्शक तत्त्वांचे पालन करा: -1. **समस्या:** [बग रिपोर्ट करा किंवा वैशिष्ट्यांची विनंती करा](https://github.com/lingodotdev/lingo.dev/issues) -2. **पुल रिक्वेस्ट:** [बदल सबमिट करा](https://github.com/lingodotdev/lingo.dev/pulls) - - प्रत्येक PR साठी चेंजसेट आवश्यक आहे: `pnpm new` (किंवा नॉन-रिलीज बदलांसाठी `pnpm new:empty`) - - सबमिट करण्यापूर्वी टेस्ट पास होतात याची खात्री करा +1. **इश्यूज:** [बग्स रिपोर्ट करा किंवा फीचर्सची विनंती करा](https://github.com/lingodotdev/lingo.dev/issues) +2. **पुल रिक्वेस्ट्स:** [बदल सबमिट करा](https://github.com/lingodotdev/lingo.dev/pulls) + - प्रत्येक PR ला चेंजसेट आवश्यक आहे: `pnpm new` (किंवा नॉन-रिलीज बदलांसाठी `pnpm new:empty`) + - सबमिट करण्यापूर्वी टेस्ट्स पास होतात याची खात्री करा 3. **डेव्हलपमेंट:** हे pnpm + turborepo मोनोरेपो आहे - डिपेंडन्सी इन्स्टॉल करा: `pnpm install` - - टेस्ट चालवा: `pnpm test` + - टेस्ट्स रन करा: `pnpm test` - बिल्ड: `pnpm build` **सपोर्ट:** [Discord कम्युनिटी](https://lingo.dev/go/discord) @@ -503,5 +503,5 @@ export function LanguageSwitcher() { - `language`: ISO 639-1/2/3 (लोअरकेस): `en`, `zh`, `bho` - `Script`: ISO 15924 (टायटल केस): `Hans`, `Hant`, `Latn` -- `REGION`: ISO 3166-1 alpha-2 (अप्परकेस): `US`, `CN`, `IN` +- `REGION`: ISO 3166-1 alpha-2 (अपरकेस): `US`, `CN`, `IN` - उदाहरणे: `en`, `pt-BR`, `zh-Hans`, `sr-Cyrl-RS` diff --git a/readme/or-IN.md b/readme/or-IN.md index 92fe3988e..55688c58b 100644 --- a/readme/or-IN.md +++ b/readme/or-IN.md @@ -71,13 +71,13 @@ ## ଶୀଘ୍ର ଆରମ୍ଭ -| ଟୁଲ୍ | ବ୍ୟବହାର କେସ୍ | ଶୀଘ୍ର କମାଣ୍ଡ | +| ଉପକରଣ | ବ୍ୟବହାର କ୍ଷେତ୍ର | ଶୀଘ୍ର କମାଣ୍ଡ | | ---------------------------------- | ------------------------------------------------- | ---------------------------------- | -| [**MCP**](#lingodev-mcp) | React ଆପ୍ ପାଇଁ AI-ସହାୟକ i18n ସେଟଅପ୍ | Prompt: `Set up i18n` | +| [**MCP**](#lingodev-mcp) | React ଆପ୍ ପାଇଁ AI-ସହାୟକ i18n ସେଟଅପ୍ | ପ୍ରମ୍ପ୍ଟ: `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) | i18n ରାପର୍ ବିନା ବିଲ୍ଡ-ଟାଇମ୍ React ଲୋକାଲାଇଜେସନ୍ | `withLingo()` plugin | +| [**SDK**](#lingodev-sdk) | ଗତିଶୀଳ ବିଷୟବସ୍ତୁ ପାଇଁ ରନଟାଇମ୍ ଅନୁବାଦ | `npm install lingo.dev` | +| [**Compiler**](#lingodev-compiler) | i18n ରାପର୍ ବିନା ବିଲ୍ଡ-ଟାଇମ୍ React ଲୋକାଲାଇଜେସନ୍ | `withLingo()` ପ୍ଲଗଇନ୍ | --- @@ -110,10 +110,10 @@ Set up i18n with the following locales: en, es, and pt-BR. The default locale is ଆସିଷ୍ଟାଣ୍ଟ କରିବ: -1. Locale-based routing କନଫିଗର୍ କରିବ (ଯଥା, `/en`, `/es`, `/pt-BR`) -2. Language switching components ସେଟଅପ୍ କରିବ -3. Automatic locale detection implement କରିବ -4. ଆବଶ୍ୟକ configuration ଫାଇଲ୍ generate କରିବ +1. ଲୋକେଲ୍-ଆଧାରିତ ରାଉଟିଂ କନଫିଗର୍ କରନ୍ତୁ (ଯଥା, `/en`, `/es`, `/pt-BR`) +2. ଭାଷା ସୁଇଚିଂ କମ୍ପୋନେଣ୍ଟ୍ ସେଟଅପ୍ କରନ୍ତୁ +3. ସ୍ୱୟଂଚାଳିତ ଲୋକେଲ୍ ଚିହ୍ନଟ କାର୍ଯ୍ୟକାରୀ କରନ୍ତୁ +4. ଆବଶ୍ୟକ କନଫିଗରେସନ୍ ଫାଇଲ୍ ଜେନେରେଟ୍ କରନ୍ତୁ **ଧ୍ୟାନ ଦିଅନ୍ତୁ:** AI-assisted କୋଡ୍ generation non-deterministic ଅଟେ। Commit କରିବା ପୂର୍ବରୁ generated କୋଡ୍ review କରନ୍ତୁ। @@ -139,14 +139,14 @@ npx lingo.dev@latest run **ଏହା କିପରି କାମ କରେ:** -1. କନଫିଗର୍ କରାଯାଇଥିବା ଫାଇଲଗୁଡ଼ିକରୁ ଅନୁବାଦଯୋଗ୍ୟ କଣ୍ଟେଣ୍ଟ ବାହାର କରେ -2. ଅନୁବାଦ ପାଇଁ LLM provider କୁ କଣ୍ଟେଣ୍ଟ ପଠାଏ -3. ଅନୁବାଦିତ କଣ୍ଟେଣ୍ଟକୁ filesystem ରେ ଲେଖେ -4. ସମ୍ପୂର୍ଣ୍ଣ ହୋଇଥିବା ଅନୁବାଦଗୁଡ଼ିକୁ ଟ୍ରାକ୍ କରିବା ପାଇଁ `i18n.lock` ଫାଇଲ୍ ସୃଷ୍ଟି କରେ (ଅନାବଶ୍ୟକ ପ୍ରକ୍ରିୟାକରଣରୁ ଦୂରେଇ ରହେ) +1. କନଫିଗର୍ ହୋଇଥିବା ଫାଇଲ୍ ରୁ ଅନୁବାଦଯୋଗ୍ୟ ବିଷୟବସ୍ତୁ ଏକ୍ସଟ୍ରାକ୍ଟ କରେ +2. ଅନୁବାଦ ପାଇଁ LLM ପ୍ରଦାତାଙ୍କୁ ବିଷୟବସ୍ତୁ ପଠାଏ +3. ଅନୁବାଦିତ ବିଷୟବସ୍ତୁକୁ ଫାଇଲସିସ୍ଟମ୍‌କୁ ଲେଖେ +4. ସମ୍ପୂର୍ଣ୍ଣ ଅନୁବାଦଗୁଡ଼ିକୁ ଟ୍ରାକ୍ କରିବା ପାଇଁ `i18n.lock` ଫାଇଲ୍ ସୃଷ୍ଟି କରେ (ଅନାବଶ୍ୟକ ପ୍ରକ୍ରିୟାକରଣକୁ ଏଡାଏ) **କନଫିଗରେସନ୍:** -`init` କମାଣ୍ଡ ଏକ `i18n.json` ଫାଇଲ୍ ସୃଷ୍ଟି କରେ। locales ଏବଂ buckets କନଫିଗର୍ କରନ୍ତୁ: +`init` କମାଣ୍ଡ ଏକ `i18n.json` ଫାଇଲ୍ ଜେନେରେଟ୍ କରେ। ଲୋକେଲ୍ ଏବଂ ବକେଟ୍ କନଫିଗର୍ କରନ୍ତୁ: ```json { @@ -164,7 +164,7 @@ npx lingo.dev@latest run } ``` -`provider` ଫିଲ୍ଡ ଇଚ୍ଛାଧୀନ (ଡିଫଲ୍ଟ Lingo.dev Engine)। କଷ୍ଟମ୍ LLM providers ପାଇଁ: +`provider` ଫିଲ୍ଡ ଐଚ୍ଛିକ (ଡିଫଲ୍ଟ Lingo.dev Engine)। କଷ୍ଟମ୍ LLM ପ୍ରଦାତାଙ୍କ ପାଇଁ: ```json { @@ -226,8 +226,8 @@ jobs: **ସେଟଅପ୍ ଆବଶ୍ୟକତା:** -1. repository secrets ରେ `LINGODOTDEV_API_KEY` ଯୋଡ଼ନ୍ତୁ (Settings > Secrets and variables > Actions) -2. PR workflows ପାଇଁ: Settings > Actions > General ରେ "Allow GitHub Actions to create and approve pull requests" ସକ୍ଷମ କରନ୍ତୁ +1. ରିପୋଜିଟୋରୀ ସିକ୍ରେଟ୍‌ରେ `LINGODOTDEV_API_KEY` ଯୋଗ କରନ୍ତୁ (Settings > Secrets and variables > Actions) +2. PR ୱର୍କଫ୍ଲୋ ପାଇଁ: Settings > Actions > General ରେ "Allow GitHub Actions to create and approve pull requests" ସକ୍ଷମ କରନ୍ତୁ **Workflow ବିକଳ୍ପଗୁଡ଼ିକ:** @@ -252,14 +252,14 @@ env: **ଉପଲବ୍ଧ input ଗୁଡ଼ିକ:** -| Input | Default | Description | -| -------------------- | ---------------------------------------------- | ------------------------------------------------ | -| `api-key` | (ଆବଶ୍ୟକ) | Lingo.dev API key | -| `pull-request` | `false` | ସିଧାସଳଖ commit କରିବା ପରିବର୍ତ୍ତେ PR ସୃଷ୍ଟି କରନ୍ତୁ | -| `commit-message` | `"feat: update translations via @LingoDotDev"` | କଷ୍ଟମ୍ commit message | -| `pull-request-title` | `"feat: update translations via @LingoDotDev"` | କଷ୍ଟମ୍ PR title | -| `working-directory` | `"."` | ଚଲାଇବା ପାଇଁ ଡିରେକ୍ଟୋରୀ | -| `parallel` | `false` | ସମାନ୍ତରାଳ ପ୍ରକ୍ରିୟାକରଣ ସକ୍ଷମ କରନ୍ତୁ | +| ଇନପୁଟ୍ | ଡିଫଲ୍ଟ | ବର୍ଣ୍ଣନା | +| -------------------- | ---------------------------------------------- | ----------------------------------------------- | +| `api-key` | (ଆବଶ୍ୟକ) | Lingo.dev API କୀ | +| `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) @@ -335,7 +335,7 @@ const locale = await lingoDotDev.recognizeLocale("Bonjour le monde"); ### Lingo.dev Compiler -ପାରମ୍ପରିକ i18n ଆକ୍ରମଣାତ୍ମକ। ଆପଣ ପ୍ରତ୍ୟେକ string କୁ `t()` function ରେ wrap କରନ୍ତି, ଅନୁବାଦ key ଉଦ୍ଭାବନ କରନ୍ତି (`home.hero.title.v2`), ସମାନ୍ତରାଳ JSON ଫାଇଲ୍ ରକ୍ଷଣାବେକ୍ଷଣ କରନ୍ତି, ଏବଂ ଆପଣଙ୍କ component ଗୁଡ଼ିକୁ localization boilerplate ସହିତ ଫୁଲିବାର ଦେଖନ୍ତି। ଏହା ଏତେ କ୍ଲାନ୍ତିକର ଯେ ଦଳଗୁଡ଼ିକ internationalization କୁ ବିଳମ୍ବ କରନ୍ତି ଯେପର୍ଯ୍ୟନ୍ତ ଏହା ଏକ ବିରାଟ refactor ହୋଇଯାଏ। +ପାରମ୍ପରିକ i18n ଆକ୍ରମଣାତ୍ମକ ଅଟେ। ଆପଣ ପ୍ରତ୍ୟେକ ଷ୍ଟ୍ରିଂକୁ `t()` ଫଙ୍କସନରେ ଗୁଡ଼ାନ୍ତି, ଅନୁବାଦ କି (`home.hero.title.v2`) ଉଦ୍ଭାବନ କରନ୍ତି, ସମାନ୍ତରାଳ JSON ଫାଇଲଗୁଡ଼ିକ ରକ୍ଷଣାବେକ୍ଷଣ କରନ୍ତି, ଏବଂ ଆପଣଙ୍କ କମ୍ପୋନେଣ୍ଟଗୁଡ଼ିକ ଲୋକାଲାଇଜେସନ ବଏଲରପ୍ଲେଟରେ ଫୁଲିଯିବା ଦେଖନ୍ତି। ଏହା ଏତେ କ୍ଲାନ୍ତିକର ଯେ ଟିମଗୁଡ଼ିକ ଆନ୍ତର୍ଜାତୀକରଣକୁ ବିଳମ୍ବ କରନ୍ତି ଯେପର୍ଯ୍ୟନ୍ତ ଏହା ଏକ ବୃହତ୍ ରିଫ୍ୟାକ୍ଟରରେ ପରିଣତ ହୁଏ। Lingo.dev Compiler ଆନୁଷ୍ଠାନିକତାକୁ ହଟାଇଥାଏ। ସାଧା ଇଂରାଜୀ ଟେକ୍ସଟ୍ ସହିତ React components ଲେଖନ୍ତୁ। Compiler ବିଲ୍ଡ ସମୟରେ ଅନୁବାଦଯୋଗ୍ୟ strings ଚିହ୍ନଟ କରେ ଏବଂ ସ୍ୱୟଂଚାଳିତ ଭାବରେ ଲୋକାଲାଇଜ୍ଡ variants ସୃଷ୍ଟି କରେ। କୌଣସି keys ନାହିଁ, କୌଣସି JSON ଫାଇଲ୍ ନାହିଁ, କୌଣସି wrapper functions ନାହିଁ - କେବଳ React code ଯାହା ଏକାଧିକ ଭାଷାରେ କାମ କରେ। @@ -431,28 +431,28 @@ export function LanguageSwitcher() { } ``` -**ଡେଭଲପମେଣ୍ଟ:** `npm run dev` (pseudotranslator ବ୍ୟବହାର କରେ, କୌଣସି API calls ନାହିଁ) +**ଡେଭଲପମେଣ୍ଟ:** `npm run dev` (ସୁଡୋଟ୍ରାନ୍ସଲେଟର ବ୍ୟବହାର କରେ, କୌଣସି API କଲ ନାହିଁ) -**ପ୍ରଡକ୍ସନ୍:** `usePseudotranslator: false` ସେଟ୍ କରନ୍ତୁ, ତାପରେ `next build` +**ପ୍ରଡକସନ:** `usePseudotranslator: false` ସେଟ କରନ୍ତୁ, ତାପରେ `next build` -`.lingo/` ଡିରେକ୍ଟୋରୀକୁ version control ରେ commit କରନ୍ତୁ। +`.lingo/` ଡିରେକ୍ଟୋରୀକୁ ଭର୍ସନ କଣ୍ଟ୍ରୋଲରେ କମିଟ କରନ୍ତୁ। **ମୁଖ୍ୟ ବୈଶିଷ୍ଟ୍ୟଗୁଡ଼ିକ:** -- ଶୂନ୍ୟ runtime performance cost -- କୌଣସି translation keys କିମ୍ବା JSON ଫାଇଲ୍ ନାହିଁ -- କୌଣସି `t()` functions କିମ୍ବା `` wrapper components ନାହିଁ -- JSX ରେ ଅନୁବାଦଯୋଗ୍ୟ ଟେକ୍ସଟ୍ର ସ୍ୱୟଂଚାଳିତ ଚିହ୍ନଟ -- TypeScript ସପୋର୍ଟ +- ଶୂନ୍ୟ ରନଟାଇମ ପରଫରମାନ୍ସ ଖର୍ଚ୍ଚ +- କୌଣସି ଅନୁବାଦ କି କିମ୍ବା JSON ଫାଇଲ ନାହିଁ +- କୌଣସି `t()` ଫଙ୍କସନ କିମ୍ବା `` ରାପର କମ୍ପୋନେଣ୍ଟ ନାହିଁ +- JSXରେ ଅନୁବାଦଯୋଗ୍ୟ ଟେକ୍ସଟର ସ୍ୱୟଂଚାଳିତ ଚିହ୍ନଟ +- TypeScript ସମର୍ଥନ - ବହୁବଚନ ପାଇଁ ICU MessageFormat -- `data-lingo-override` attribute ମାଧ୍ୟମରେ manual overrides -- ବିଲ୍ଟ-ଇନ୍ translation editor widget +- `data-lingo-override` ଆଟ୍ରିବ୍ୟୁଟ ମାଧ୍ୟମରେ ମାନୁଆଲ ଓଭରାଇଡ +- ବିଲ୍ଟ-ଇନ ଅନୁବାଦ ଏଡିଟର ୱିଜେଟ **ବିଲ୍ଡ modes:** -- `pseudotranslator`: placeholder translations ସହିତ development mode (କୌଣସି API costs ନାହିଁ) -- `real`: LLMs ବ୍ୟବହାର କରି ପ୍ରକୃତ translations ସୃଷ୍ଟି କରେ -- `cache-only`: CI ରୁ pre-generated translations ବ୍ୟବହାର କରି production mode (କୌଣସି API calls ନାହିଁ) +- `pseudotranslator`: ପ୍ଲେସହୋଲ୍ଡର ଅନୁବାଦ ସହିତ ଡେଭଲପମେଣ୍ଟ ମୋଡ (କୌଣସି API ଖର୍ଚ୍ଚ ନାହିଁ) +- `real`: LLM ବ୍ୟବହାର କରି ପ୍ରକୃତ ଅନୁବାଦ ଜେନେରେଟ କରନ୍ତୁ +- `cache-only`: CIରୁ ପୂର୍ବ-ଜେନେରେଟ ହୋଇଥିବା ଅନୁବାଦ ବ୍ୟବହାର କରି ପ୍ରଡକସନ ମୋଡ (କୌଣସି API କଲ ନାହିଁ) **ସପୋର୍ଟେଡ୍ frameworks:** @@ -469,12 +469,12 @@ export function LanguageSwitcher() { ଅବଦାନକୁ ସ୍ୱାଗତ। ଦୟାକରି ଏହି ନିର୍ଦ୍ଦେଶାବଳୀ ଅନୁସରଣ କରନ୍ତୁ: -1. **ସମସ୍ୟା:** [ବଗ୍ ରିପୋର୍ଟ କରନ୍ତୁ କିମ୍ବା ଫିଚର୍ ଅନୁରୋଧ କରନ୍ତୁ](https://github.com/lingodotdev/lingo.dev/issues) -2. **ପୁଲ୍ ରିକ୍ୱେଷ୍ଟ:** [ପରିବର୍ତ୍ତନ ସବମିଟ୍ କରନ୍ତୁ](https://github.com/lingodotdev/lingo.dev/pulls) - - ପ୍ରତ୍ୟେକ PR ପାଇଁ ଏକ changeset ଆବଶ୍ୟକ: `pnpm new` (କିମ୍ବା ନନ୍-ରିଲିଜ୍ ପରିବର୍ତ୍ତନ ପାଇଁ `pnpm new:empty`) - - ସବମିଟ୍ କରିବା ପୂର୍ବରୁ ଟେଷ୍ଟ ପାସ୍ ହେବା ନିଶ୍ଚିତ କରନ୍ତୁ -3. **ଡେଭଲପମେଣ୍ଟ:** ଏହା ଏକ pnpm + turborepo monorepo - - ଡିପେଣ୍ଡେନ୍ସି ଇନଷ୍ଟଲ୍ କରନ୍ତୁ: `pnpm install` +1. **ଇସୁ:** [ବଗ ରିପୋର୍ଟ କରନ୍ତୁ କିମ୍ବା ଫିଚର ଅନୁରୋଧ କରନ୍ତୁ](https://github.com/lingodotdev/lingo.dev/issues) +2. **ପୁଲ ରିକ୍ୱେଷ୍ଟ:** [ପରିବର୍ତ୍ତନ ସବମିଟ କରନ୍ତୁ](https://github.com/lingodotdev/lingo.dev/pulls) + - ପ୍ରତ୍ୟେକ PR ପାଇଁ ଏକ ଚେଞ୍ଜସେଟ ଆବଶ୍ୟକ: `pnpm new` (କିମ୍ବା ନନ-ରିଲିଜ ପରିବର୍ତ୍ତନ ପାଇଁ `pnpm new:empty`) + - ସବମିଟ କରିବା ପୂର୍ବରୁ ଟେଷ୍ଟ ପାସ ହେବା ନିଶ୍ଚିତ କରନ୍ତୁ +3. **ଡେଭଲପମେଣ୍ଟ:** ଏହା ଏକ pnpm + turborepo ମୋନୋରେପୋ + - ଡିପେଣ୍ଡେନ୍ସି ଇନଷ୍ଟଲ କରନ୍ତୁ: `pnpm install` - ଟେଷ୍ଟ ଚଲାନ୍ତୁ: `pnpm test` - ବିଲ୍ଡ: `pnpm build` @@ -498,12 +498,12 @@ 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. ଏକ pull request ସବମିଟ୍ କରନ୍ତୁ +1. [BCP-47 ଫର୍ମାଟ](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale) ବ୍ୟବହାର କରି [`i18n.json`](./i18n.json)ରେ ଲୋକେଲ କୋଡ ଯୋଡ଼ନ୍ତୁ +2. ଏକ ପୁଲ ରିକ୍ୱେଷ୍ଟ ସବମିଟ କରନ୍ତୁ -**BCP-47 ଲୋକେଲ୍ ଫର୍ମାଟ:** `language[-Script][-REGION]` +**BCP-47 ଲୋକେଲ ଫର୍ମାଟ:** `language[-Script][-REGION]` -- `language`: ISO 639-1/2/3 (lowercase): `en`, `zh`, `bho` -- `Script`: ISO 15924 (title case): `Hans`, `Hant`, `Latn` -- `REGION`: ISO 3166-1 alpha-2 (uppercase): `US`, `CN`, `IN` +- `language`: ISO 639-1/2/3 (ଲୋୟରକେସ): `en`, `zh`, `bho` +- `Script`: ISO 15924 (ଟାଇଟଲ କେସ): `Hans`, `Hant`, `Latn` +- `REGION`: ISO 3166-1 alpha-2 (ଅପରକେସ): `US`, `CN`, `IN` - ଉଦାହରଣ: `en`, `pt-BR`, `zh-Hans`, `sr-Cyrl-RS` diff --git a/readme/pa-IN.md b/readme/pa-IN.md index bd86fe999..82a537dea 100644 --- a/readme/pa-IN.md +++ b/readme/pa-IN.md @@ -69,13 +69,13 @@ ## ਤੁਰੰਤ ਸ਼ੁਰੂਆਤ -| ਟੂਲ | ਵਰਤੋਂ ਦਾ ਮਾਮਲਾ | ਤੁਰੰਤ ਕਮਾਂਡ | -| ---------------------------------- | ---------------------------------------------------- | ---------------------------------- | -| [**MCP**](#lingodev-mcp) | React ਐਪਸ ਲਈ AI-ਸਹਾਇਤਾ ਪ੍ਰਾਪਤ i18n ਸੈੱਟਅੱਪ | Prompt: `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) | i18n wrappers ਤੋਂ ਬਿਨਾਂ ਬਿਲਡ-ਟਾਈਮ React ਲੋਕਲਾਈਜ਼ੇਸ਼ਨ | `withLingo()` plugin | +| ਟੂਲ | ਵਰਤੋਂ ਦਾ ਮਾਮਲਾ | ਤੇਜ਼ ਕਮਾਂਡ | +| ---------------------------------- | -------------------------------------------------- | ---------------------------------- | +| [**MCP**](#lingodev-mcp) | React ਐਪਸ ਲਈ AI-ਸਹਾਇਤਾ ਪ੍ਰਾਪਤ i18n ਸੈੱਟਅੱਪ | ਪ੍ਰੋਂਪਟ: `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) | i18n ਰੈਪਰਾਂ ਤੋਂ ਬਿਨਾਂ ਬਿਲਡ-ਟਾਈਮ React ਲੋਕਲਾਈਜ਼ੇਸ਼ਨ | `withLingo()` ਪਲੱਗਇਨ | --- @@ -108,10 +108,10 @@ Set up i18n with the following locales: en, es, and pt-BR. The default locale is ਸਹਾਇਕ ਇਹ ਕਰੇਗਾ: -1. ਲੋਕੇਲ-ਅਧਾਰਿਤ ਰਾਊਟਿੰਗ ਕੌਂਫਿਗਰ ਕਰੇਗਾ (ਜਿਵੇਂ ਕਿ `/en`, `/es`, `/pt-BR`) -2. ਭਾਸ਼ਾ ਸਵਿੱਚਿੰਗ ਕੰਪੋਨੈਂਟਸ ਸੈੱਟਅੱਪ ਕਰੇਗਾ -3. ਆਟੋਮੈਟਿਕ ਲੋਕੇਲ ਖੋਜ ਲਾਗੂ ਕਰੇਗਾ -4. ਲੋੜੀਂਦੀਆਂ ਕੌਂਫਿਗਰੇਸ਼ਨ ਫਾਈਲਾਂ ਤਿਆਰ ਕਰੇਗਾ +1. ਲੋਕੇਲ-ਅਧਾਰਿਤ ਰਾਊਟਿੰਗ ਕੌਂਫਿਗਰ ਕਰੋ (ਜਿਵੇਂ ਕਿ, `/en`, `/es`, `/pt-BR`) +2. ਭਾਸ਼ਾ ਸਵਿਚਿੰਗ ਕੰਪੋਨੈਂਟਸ ਸੈੱਟਅੱਪ ਕਰੋ +3. ਸਵੈਚਲਿਤ ਲੋਕੇਲ ਖੋਜ ਲਾਗੂ ਕਰੋ +4. ਲੋੜੀਂਦੀਆਂ ਕੌਂਫਿਗਰੇਸ਼ਨ ਫਾਈਲਾਂ ਤਿਆਰ ਕਰੋ **ਨੋਟ:** AI-ਸਹਾਇਤਾ ਪ੍ਰਾਪਤ ਕੋਡ ਜਨਰੇਸ਼ਨ ਗੈਰ-ਨਿਰਧਾਰਕ ਹੈ। ਕਮਿਟ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਤਿਆਰ ਕੀਤੇ ਕੋਡ ਦੀ ਸਮੀਖਿਆ ਕਰੋ। @@ -137,14 +137,14 @@ npx lingo.dev@latest run **ਇਹ ਕਿਵੇਂ ਕੰਮ ਕਰਦਾ ਹੈ:** -1. ਕੌਂਫਿਗਰ ਕੀਤੀਆਂ ਫਾਈਲਾਂ ਤੋਂ ਅਨੁਵਾਦਯੋਗ ਸਮੱਗਰੀ ਕੱਢਦਾ ਹੈ +1. ਕੌਂਫਿਗਰ ਕੀਤੀਆਂ ਫਾਈਲਾਂ ਤੋਂ ਅਨੁਵਾਦਯੋਗ ਸਮੱਗਰੀ ਐਕਸਟ੍ਰੈਕਟ ਕਰਦਾ ਹੈ 2. ਅਨੁਵਾਦ ਲਈ LLM ਪ੍ਰੋਵਾਈਡਰ ਨੂੰ ਸਮੱਗਰੀ ਭੇਜਦਾ ਹੈ 3. ਅਨੁਵਾਦਿਤ ਸਮੱਗਰੀ ਨੂੰ ਫਾਈਲਸਿਸਟਮ ਵਿੱਚ ਵਾਪਸ ਲਿਖਦਾ ਹੈ 4. ਪੂਰੇ ਹੋਏ ਅਨੁਵਾਦਾਂ ਨੂੰ ਟਰੈਕ ਕਰਨ ਲਈ `i18n.lock` ਫਾਈਲ ਬਣਾਉਂਦਾ ਹੈ (ਬੇਲੋੜੀ ਪ੍ਰੋਸੈਸਿੰਗ ਤੋਂ ਬਚਦਾ ਹੈ) **ਕੌਂਫਿਗਰੇਸ਼ਨ:** -`init` ਕਮਾਂਡ ਇੱਕ `i18n.json` ਫਾਈਲ ਬਣਾਉਂਦੀ ਹੈ। ਲੋਕੇਲਾਂ ਅਤੇ ਬਕੇਟਾਂ ਨੂੰ ਕੌਂਫਿਗਰ ਕਰੋ: +`init` ਕਮਾਂਡ ਇੱਕ `i18n.json` ਫਾਈਲ ਤਿਆਰ ਕਰਦੀ ਹੈ। ਲੋਕੇਲਾਂ ਅਤੇ ਬਕੇਟਾਂ ਨੂੰ ਕੌਂਫਿਗਰ ਕਰੋ: ```json { @@ -162,7 +162,7 @@ npx lingo.dev@latest run } ``` -`provider` ਫੀਲਡ ਵਿਕਲਪਿਕ ਹੈ (ਡਿਫਾਲਟ Lingo.dev Engine ਹੈ)। ਕਸਟਮ LLM ਪ੍ਰੋਵਾਈਡਰਾਂ ਲਈ: +`provider` ਫੀਲਡ ਵਿਕਲਪਿਕ ਹੈ (ਡਿਫੌਲਟ Lingo.dev Engine ਹੈ)। ਕਸਟਮ LLM ਪ੍ਰੋਵਾਈਡਰਾਂ ਲਈ: ```json { @@ -224,7 +224,7 @@ jobs: **ਸੈੱਟਅੱਪ ਲੋੜਾਂ:** -1. ਰਿਪੋਜ਼ਿਟਰੀ ਸੀਕਰੇਟਸ ਵਿੱਚ `LINGODOTDEV_API_KEY` ਸ਼ਾਮਲ ਕਰੋ (Settings > Secrets and variables > Actions) +1. ਰਿਪੋਜ਼ਿਟਰੀ ਸੀਕ੍ਰੇਟਸ ਵਿੱਚ `LINGODOTDEV_API_KEY` ਸ਼ਾਮਲ ਕਰੋ (Settings > Secrets and variables > Actions) 2. PR ਵਰਕਫਲੋਜ਼ ਲਈ: Settings > Actions > General ਵਿੱਚ "Allow GitHub Actions to create and approve pull requests" ਨੂੰ ਸਮਰੱਥ ਕਰੋ **ਵਰਕਫਲੋ ਵਿਕਲਪ:** @@ -250,14 +250,14 @@ env: **ਉਪਲਬਧ ਇਨਪੁੱਟਸ:** -| ਇਨਪੁੱਟ | ਡਿਫਾਲਟ | ਵੇਰਵਾ | +| ਇਨਪੁੱਟ | ਡਿਫੌਲਟ | ਵੇਰਵਾ | | -------------------- | ---------------------------------------------- | ------------------------------ | | `api-key` | (ਲੋੜੀਂਦਾ) | Lingo.dev API ਕੁੰਜੀ | | `pull-request` | `false` | ਸਿੱਧੇ ਕਮਿਟ ਕਰਨ ਦੀ ਬਜਾਏ PR ਬਣਾਓ | | `commit-message` | `"feat: update translations via @LingoDotDev"` | ਕਸਟਮ ਕਮਿਟ ਸੁਨੇਹਾ | | `pull-request-title` | `"feat: update translations via @LingoDotDev"` | ਕਸਟਮ PR ਸਿਰਲੇਖ | | `working-directory` | `"."` | ਚਲਾਉਣ ਲਈ ਡਾਇਰੈਕਟਰੀ | -| `parallel` | `false` | ਸਮਾਨਾਂਤਰ ਪ੍ਰੋਸੈਸਿੰਗ ਸਮਰੱਥ ਕਰੋ | +| `parallel` | `false` | ਸਮਾਂਤਰ ਪ੍ਰੋਸੈਸਿੰਗ ਸਮਰੱਥ ਕਰੋ | [ਦਸਤਾਵੇਜ਼ ਪੜ੍ਹੋ →](https://lingo.dev/en/ci/github) @@ -333,7 +333,7 @@ const locale = await lingoDotDev.recognizeLocale("Bonjour le monde"); ### Lingo.dev Compiler -ਰਵਾਇਤੀ i18n ਦਖਲਅੰਦਾਜ਼ੀ ਵਾਲਾ ਹੈ। ਤੁਸੀਂ ਹਰ ਸਟ੍ਰਿੰਗ ਨੂੰ `t()` ਫੰਕਸ਼ਨਾਂ ਵਿੱਚ ਲਪੇਟਦੇ ਹੋ, ਅਨੁਵਾਦ ਕੁੰਜੀਆਂ ਦੀ ਖੋਜ ਕਰਦੇ ਹੋ (`home.hero.title.v2`), ਸਮਾਨਾਂਤਰ JSON ਫਾਈਲਾਂ ਨੂੰ ਸੰਭਾਲਦੇ ਹੋ, ਅਤੇ ਆਪਣੇ ਕੰਪੋਨੈਂਟਸ ਨੂੰ ਸਥਾਨੀਕਰਨ ਬੋਇਲਰਪਲੇਟ ਨਾਲ ਫੁੱਲਦੇ ਦੇਖਦੇ ਹੋ। ਇਹ ਇੰਨਾ ਥਕਾਊ ਹੈ ਕਿ ਟੀਮਾਂ ਅੰਤਰਰਾਸ਼ਟਰੀਕਰਨ ਨੂੰ ਉਦੋਂ ਤੱਕ ਮੁਲਤਵੀ ਕਰ ਦਿੰਦੀਆਂ ਹਨ ਜਦੋਂ ਤੱਕ ਇਹ ਇੱਕ ਵਿਸ਼ਾਲ ਰੀਫੈਕਟਰ ਨਹੀਂ ਬਣ ਜਾਂਦਾ। +ਰਵਾਇਤੀ i18n ਦਖਲਅੰਦਾਜ਼ੀ ਵਾਲਾ ਹੈ। ਤੁਸੀਂ ਹਰ ਸਟ੍ਰਿੰਗ ਨੂੰ `t()` ਫੰਕਸ਼ਨਾਂ ਵਿੱਚ ਲਪੇਟਦੇ ਹੋ, ਅਨੁਵਾਦ ਕੁੰਜੀਆਂ (`home.hero.title.v2`) ਦੀ ਖੋਜ ਕਰਦੇ ਹੋ, ਸਮਾਨਾਂਤਰ JSON ਫਾਈਲਾਂ ਨੂੰ ਸੰਭਾਲਦੇ ਹੋ, ਅਤੇ ਆਪਣੇ ਕੰਪੋਨੈਂਟਾਂ ਨੂੰ ਲੋਕਲਾਈਜ਼ੇਸ਼ਨ ਬੋਇਲਰਪਲੇਟ ਨਾਲ ਫੁੱਲਦੇ ਦੇਖਦੇ ਹੋ। ਇਹ ਇੰਨਾ ਥਕਾਊ ਹੈ ਕਿ ਟੀਮਾਂ ਅੰਤਰਰਾਸ਼ਟਰੀਕਰਨ ਨੂੰ ਉਦੋਂ ਤੱਕ ਮੁਲਤਵੀ ਕਰ ਦਿੰਦੀਆਂ ਹਨ ਜਦੋਂ ਤੱਕ ਇਹ ਇੱਕ ਵਿਸ਼ਾਲ ਰੀਫੈਕਟਰ ਨਹੀਂ ਬਣ ਜਾਂਦਾ। Lingo.dev Compiler ਰਸਮੀ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਖਤਮ ਕਰਦਾ ਹੈ। ਸਾਦੇ ਅੰਗਰੇਜ਼ੀ ਟੈਕਸਟ ਨਾਲ React ਕੰਪੋਨੈਂਟਸ ਲਿਖੋ। Compiler ਬਿਲਡ ਟਾਈਮ 'ਤੇ ਅਨੁਵਾਦਯੋਗ ਸਟ੍ਰਿੰਗਾਂ ਦਾ ਪਤਾ ਲਗਾਉਂਦਾ ਹੈ ਅਤੇ ਸਥਾਨਿਕ ਰੂਪਾਂ ਨੂੰ ਆਪਣੇ-ਆਪ ਜਨਰੇਟ ਕਰਦਾ ਹੈ। ਕੋਈ keys ਨਹੀਂ, ਕੋਈ JSON ਫਾਈਲਾਂ ਨਹੀਂ, ਕੋਈ wrapper functions ਨਹੀਂ - ਸਿਰਫ਼ React ਕੋਡ ਜੋ ਕਈ ਭਾਸ਼ਾਵਾਂ ਵਿੱਚ ਕੰਮ ਕਰਦਾ ਹੈ। @@ -429,28 +429,28 @@ export function LanguageSwitcher() { } ``` -**ਡਿਵੈਲਪਮੈਂਟ:** `npm run dev` (pseudotranslator ਵਰਤਦਾ ਹੈ, ਕੋਈ API ਕਾਲਾਂ ਨਹੀਂ) +**ਡਿਵੈਲਪਮੈਂਟ:** `npm run dev` (ਸੂਡੋਟ੍ਰਾਂਸਲੇਟਰ ਵਰਤਦਾ ਹੈ, ਕੋਈ API ਕਾਲਾਂ ਨਹੀਂ) **ਪ੍ਰੋਡਕਸ਼ਨ:** `usePseudotranslator: false` ਸੈੱਟ ਕਰੋ, ਫਿਰ `next build` -`.lingo/` ਡਾਇਰੈਕਟਰੀ ਨੂੰ version control ਵਿੱਚ commit ਕਰੋ। +`.lingo/` ਡਾਇਰੈਕਟਰੀ ਨੂੰ ਵਰਜ਼ਨ ਕੰਟਰੋਲ ਵਿੱਚ ਕਮਿਟ ਕਰੋ। **ਮੁੱਖ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ:** -- ਜ਼ੀਰੋ runtime performance cost -- ਕੋਈ translation keys ਜਾਂ JSON ਫਾਈਲਾਂ ਨਹੀਂ -- ਕੋਈ `t()` functions ਜਾਂ `` wrapper components ਨਹੀਂ -- JSX ਵਿੱਚ ਅਨੁਵਾਦਯੋਗ ਟੈਕਸਟ ਦਾ ਆਟੋਮੈਟਿਕ ਪਤਾ ਲਗਾਉਣਾ -- TypeScript ਸਹਾਇਤਾ +- ਜ਼ੀਰੋ ਰਨਟਾਈਮ ਪਰਫਾਰਮੈਂਸ ਲਾਗਤ +- ਕੋਈ ਅਨੁਵਾਦ ਕੁੰਜੀਆਂ ਜਾਂ JSON ਫਾਈਲਾਂ ਨਹੀਂ +- ਕੋਈ `t()` ਫੰਕਸ਼ਨ ਜਾਂ `` ਰੈਪਰ ਕੰਪੋਨੈਂਟ ਨਹੀਂ +- JSX ਵਿੱਚ ਅਨੁਵਾਦਯੋਗ ਟੈਕਸਟ ਦੀ ਆਟੋਮੈਟਿਕ ਖੋਜ +- TypeScript ਸਪੋਰਟ - ਬਹੁਵਚਨਾਂ ਲਈ ICU MessageFormat -- `data-lingo-override` attribute ਰਾਹੀਂ ਮੈਨੁਅਲ ਓਵਰਰਾਈਡਸ -- ਬਿਲਟ-ਇਨ translation editor widget +- `data-lingo-override` ਐਟ੍ਰੀਬਿਊਟ ਰਾਹੀਂ ਮੈਨੁਅਲ ਓਵਰਰਾਈਡਸ +- ਬਿਲਟ-ਇਨ ਅਨੁਵਾਦ ਐਡੀਟਰ ਵਿਜੇਟ **ਬਿਲਡ ਮੋਡਸ:** -- `pseudotranslator`: placeholder translations ਨਾਲ ਡਿਵੈਲਪਮੈਂਟ ਮੋਡ (ਕੋਈ API ਖਰਚੇ ਨਹੀਂ) +- `pseudotranslator`: ਪਲੇਸਹੋਲਡਰ ਅਨੁਵਾਦਾਂ ਨਾਲ ਡਿਵੈਲਪਮੈਂਟ ਮੋਡ (ਕੋਈ API ਲਾਗਤਾਂ ਨਹੀਂ) - `real`: LLMs ਵਰਤਦੇ ਹੋਏ ਅਸਲ ਅਨੁਵਾਦ ਜਨਰੇਟ ਕਰੋ -- `cache-only`: CI ਤੋਂ ਪਹਿਲਾਂ ਤੋਂ ਜਨਰੇਟ ਕੀਤੇ ਅਨੁਵਾਦਾਂ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਪ੍ਰੋਡਕਸ਼ਨ ਮੋਡ (ਕੋਈ API ਕਾਲਾਂ ਨਹੀਂ) +- `cache-only`: CI ਤੋਂ ਪਹਿਲਾਂ-ਜਨਰੇਟ ਕੀਤੇ ਅਨੁਵਾਦਾਂ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਪ੍ਰੋਡਕਸ਼ਨ ਮੋਡ (ਕੋਈ API ਕਾਲਾਂ ਨਹੀਂ) **ਸਮਰਥਿਤ ਫਰੇਮਵਰਕਸ:** @@ -467,12 +467,12 @@ 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) - - ਹਰੇਕ PR ਲਈ ਇੱਕ changeset ਦੀ ਲੋੜ ਹੈ: `pnpm new` (ਜਾਂ ਗੈਰ-ਰਿਲੀਜ਼ ਤਬਦੀਲੀਆਂ ਲਈ `pnpm new:empty`) + - ਹਰ PR ਲਈ ਇੱਕ ਚੇਂਜਸੈੱਟ ਦੀ ਲੋੜ ਹੈ: `pnpm new` (ਜਾਂ ਗੈਰ-ਰਿਲੀਜ਼ ਤਬਦੀਲੀਆਂ ਲਈ `pnpm new:empty`) - ਸਬਮਿਟ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਯਕੀਨੀ ਬਣਾਓ ਕਿ ਟੈਸਟ ਪਾਸ ਹੋ ਜਾਣ -3. **ਡਿਵੈਲਪਮੈਂਟ:** ਇਹ ਇੱਕ pnpm + turborepo monorepo ਹੈ - - ਡਿਪੈਂਡੈਂਸੀਆਂ ਇੰਸਟਾਲ ਕਰੋ: `pnpm install` +3. **ਡਿਵੈਲਪਮੈਂਟ:** ਇਹ ਇੱਕ pnpm + turborepo ਮੋਨੋਰੇਪੋ ਹੈ + - ਡਿਪੈਂਡੈਂਸੀਜ਼ ਇੰਸਟਾਲ ਕਰੋ: `pnpm install` - ਟੈਸਟ ਚਲਾਓ: `pnpm test` - ਬਿਲਡ: `pnpm build` @@ -496,12 +496,12 @@ export function LanguageSwitcher() { **ਨਵੀਂ ਭਾਸ਼ਾ ਸ਼ਾਮਲ ਕਰਨਾ:** -1. [`i18n.json`](./i18n.json) ਵਿੱਚ [BCP-47 ਫਾਰਮੈਟ](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale) ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਲੋਕੇਲ ਕੋਡ ਸ਼ਾਮਲ ਕਰੋ +1. [BCP-47 ਫਾਰਮੈਟ](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale) ਵਰਤਦੇ ਹੋਏ [`i18n.json`](./i18n.json) ਵਿੱਚ ਲੋਕੇਲ ਕੋਡ ਸ਼ਾਮਲ ਕਰੋ 2. ਇੱਕ ਪੁੱਲ ਰਿਕੁਐਸਟ ਸਬਮਿਟ ਕਰੋ **BCP-47 ਲੋਕੇਲ ਫਾਰਮੈਟ:** `language[-Script][-REGION]` -- `language`: ISO 639-1/2/3 (lowercase): `en`, `zh`, `bho` -- `Script`: ISO 15924 (title case): `Hans`, `Hant`, `Latn` -- `REGION`: ISO 3166-1 alpha-2 (uppercase): `US`, `CN`, `IN` +- `language`: ISO 639-1/2/3 (ਛੋਟੇ ਅੱਖਰ): `en`, `zh`, `bho` +- `Script`: ISO 15924 (ਟਾਈਟਲ ਕੇਸ): `Hans`, `Hant`, `Latn` +- `REGION`: ISO 3166-1 alpha-2 (ਵੱਡੇ ਅੱਖਰ): `US`, `CN`, `IN` - ਉਦਾਹਰਨਾਂ: `en`, `pt-BR`, `zh-Hans`, `sr-Cyrl-RS` diff --git a/readme/pl.md b/readme/pl.md index 80f1f6c7b..d07868f45 100644 --- a/readme/pl.md +++ b/readme/pl.md @@ -71,13 +71,13 @@ ## Szybki start -| Narzędzie | Zastosowanie | Szybka komenda | -| ------------------------------------ | --------------------------------------------------------- | ---------------------------------- | -| [**MCP**](#lingodev-mcp) | Asystowane przez AI wdrożenie i18n dla aplikacji React | Prompt: `Set up i18n` | -| [**CLI**](#lingodev-cli) | Tłumaczenie plików JSON, YAML, markdown, CSV, PO | `npx lingo.dev@latest run` | -| [**CI/CD**](#lingodev-cicd) | Automatyczny pipeline tłumaczeń w GitHub Actions | `uses: lingodotdev/lingo.dev@main` | -| [**SDK**](#lingodev-sdk) | Tłumaczenie w czasie rzeczywistym dla dynamicznych treści | `npm install lingo.dev` | -| [**Kompilator**](#lingodev-compiler) | Lokalizacja React na etapie budowania bez wrapperów i18n | `withLingo()` plugin | +| Narzędzie | Zastosowanie | Szybkie polecenie | +| ---------------------------------- | --------------------------------------------------------- | ---------------------------------- | +| [**MCP**](#lingodev-mcp) | Wspomagane przez AI wdrożenie i18n dla aplikacji React | Prompt: `Set up i18n` | +| [**CLI**](#lingodev-cli) | Tłumaczenie plików JSON, YAML, markdown, CSV, PO | `npx lingo.dev@latest run` | +| [**CI/CD**](#lingodev-cicd) | Automatyczny pipeline tłumaczeń w GitHub Actions | `uses: lingodotdev/lingo.dev@main` | +| [**SDK**](#lingodev-sdk) | Tłumaczenie w czasie rzeczywistym dla dynamicznych treści | `npm install lingo.dev` | +| [**Compiler**](#lingodev-compiler) | Lokalizacja React na etapie budowania bez wrapperów i18n | `withLingo()` plugin | --- @@ -110,10 +110,10 @@ Set up i18n with the following locales: en, es, and pt-BR. The default locale is Asystent wykona następujące kroki: -1. Skonfiguruje routing oparty na lokalizacji (np. `/en`, `/es`, `/pt-BR`) -2. Skonfiguruje komponenty do przełączania języka -3. Wdroży automatyczne wykrywanie lokalizacji -4. Wygeneruje niezbędne pliki konfiguracyjne +1. Skonfiguruj routing oparty na lokalizacji (np. `/en`, `/es`, `/pt-BR`) +2. Skonfiguruj komponenty do zmiany języka +3. Wdróż automatyczne wykrywanie lokalizacji +4. Wygeneruj wymagane pliki konfiguracyjne **Uwaga:** Generowanie kodu przez AI jest niedeterministyczne. Przejrzyj wygenerowany kod przed zatwierdzeniem. @@ -139,10 +139,10 @@ npx lingo.dev@latest run **Jak to działa:** -1. Ekstrahuje treści do tłumaczenia z skonfigurowanych plików +1. Ekstrahuje treści do tłumaczenia z wybranych plików 2. Wysyła treści do dostawcy LLM w celu tłumaczenia 3. Zapisuje przetłumaczone treści z powrotem do systemu plików -4. Tworzy plik `i18n.lock` do śledzenia ukończonych tłumaczeń (eliminuje zbędne przetwarzanie) +4. Tworzy plik `i18n.lock` do śledzenia ukończonych tłumaczeń (zapobiega powtórnemu przetwarzaniu) **Konfiguracja:** @@ -164,7 +164,7 @@ Polecenie `init` generuje plik `i18n.json`. Skonfiguruj lokalizacje i buckety: } ``` -Pole `provider` jest opcjonalne (domyślnie Lingo.dev Engine). Dla niestandardowych dostawców LLM: +Pole `provider` jest opcjonalne (domyślnie: Lingo.dev Engine). Dla własnych dostawców LLM: ```json { @@ -204,7 +204,7 @@ Lingo.dev CI/CD automatyzuje tłumaczenia. Każdy push uruchamia proces tłumacz **Konfiguracja GitHub Actions:** -Utwórz plik `.github/workflows/translate.yml`: +Utwórz `.github/workflows/translate.yml`: ```yaml name: Translate @@ -226,8 +226,8 @@ jobs: **Wymagania wstępne:** -1. Dodaj `LINGODOTDEV_API_KEY` do sekcji secrets repozytorium (Ustawienia > Secrets and variables > Actions) -2. Dla workflow PR: Włącz "Zezwól GitHub Actions na tworzenie i zatwierdzanie pull requestów" w Ustawienia > Actions > General +1. Dodaj `LINGODOTDEV_API_KEY` do sekretów repozytorium (Ustawienia > Sekrety i zmienne > Actions) +2. Dla workflow PR: Włącz "Zezwól GitHub Actions na tworzenie i zatwierdzanie pull requestów" w Ustawienia > Actions > Ogólne **Opcje workflow:** @@ -252,14 +252,14 @@ env: **Dostępne wejścia:** -| Wejście | Domyślna wartość | Opis | -| -------------------- | ---------------------------------------------- | --------------------------------------------- | -| `api-key` | (wymagane) | Klucz API Lingo.dev | -| `pull-request` | `false` | Tworzy PR zamiast bezpośredniego commitowania | -| `commit-message` | `"feat: update translations via @LingoDotDev"` | Niestandardowa wiadomość commita | -| `pull-request-title` | `"feat: update translations via @LingoDotDev"` | Niestandardowy tytuł PR | -| `working-directory` | `"."` | Katalog, w którym uruchomić | -| `parallel` | `false` | Włącz przetwarzanie równoległe | +| Wejście | Domyślna wartość | Opis | +| -------------------- | ---------------------------------------------- | ------------------------------------------------ | +| `api-key` | (wymagane) | Klucz API Lingo.dev | +| `pull-request` | `false` | Tworzenie PR zamiast bezpośredniego commitowania | +| `commit-message` | `"feat: update translations via @LingoDotDev"` | Niestandardowa wiadomość commita | +| `pull-request-title` | `"feat: update translations via @LingoDotDev"` | Niestandardowy tytuł PR | +| `working-directory` | `"."` | Katalog roboczy | +| `parallel` | `false` | Włącz przetwarzanie równoległe | [Przeczytaj dokumentację →](https://lingo.dev/en/ci/github) @@ -335,7 +335,7 @@ const locale = await lingoDotDev.recognizeLocale("Bonjour le monde"); ### Lingo.dev Compiler -Tradycyjne i18n jest inwazyjne. Każdy string opakowujesz w funkcje `t()`, wymyślasz klucze tłumaczeń (`home.hero.title.v2`), utrzymujesz równoległe pliki JSON i obserwujesz, jak komponenty puchną od boilerplate'u lokalizacyjnego. To tak żmudne, że zespoły odwlekają internacjonalizację, aż staje się to ogromnym refaktoringiem. +Tradycyjne i18n jest inwazyjne. Każdy string opakowujesz w funkcje `t()`, wymyślasz klucze tłumaczeń (`home.hero.title.v2`), utrzymujesz równoległe pliki JSON i obserwujesz, jak komponenty puchną od boilerplate'u lokalizacyjnego. To tak żmudne, że zespoły odkładają internacjonalizację, aż staje się to ogromnym refaktoringiem. Kompilator Lingo.dev eliminuje zbędną złożoność. Pisz komponenty React z tekstem w prostym angielskim. Kompilator wykrywa teksty do tłumaczenia podczas budowania i automatycznie generuje ich zlokalizowane warianty. Bez kluczy, plików JSON, funkcji wrapperów – po prostu kod React, który działa w wielu językach. @@ -431,28 +431,28 @@ export function LanguageSwitcher() { } ``` -**Development:** `npm run dev` (używa pseudotranslatora, bez wywołań API) +**Development:** `npm run dev` (używa pseudotranslatora, brak wywołań API) **Production:** Ustaw `usePseudotranslator: false`, następnie `next build` -Dodaj katalog `.lingo/` do kontroli wersji. +Zacommituj katalog `.lingo/` do kontroli wersji. **Kluczowe funkcje:** -- Brak kosztów wydajności w runtime -- Bez kluczy tłumaczeń i plików JSON -- Bez funkcji `t()` ani wrapperów `` +- Zero kosztów wydajnościowych w runtime +- Brak kluczy tłumaczeń i plików JSON +- Brak funkcji `t()` ani wrapperów `` - Automatyczne wykrywanie tekstów do tłumaczenia w JSX - Wsparcie dla TypeScript - ICU MessageFormat dla liczby mnogiej -- Ręczne nadpisywanie przez atrybut `data-lingo-override` +- Ręczne nadpisy przez atrybut `data-lingo-override` - Wbudowany edytor tłumaczeń **Tryby budowania:** -- `pseudotranslator`: Tryb deweloperski z tłumaczeniami zastępczymi (bez kosztów API) +- `pseudotranslator`: Tryb deweloperski z tłumaczeniami zastępczymi (brak kosztów API) - `real`: Generowanie rzeczywistych tłumaczeń przy użyciu LLM -- `cache-only`: Tryb produkcyjny z użyciem wygenerowanych tłumaczeń z CI (bez wywołań API) +- `cache-only`: Tryb produkcyjny z użyciem wygenerowanych tłumaczeń z CI (brak wywołań API) **Obsługiwane frameworki:** @@ -469,14 +469,14 @@ Planowane wsparcie dla kolejnych frameworków. Zapraszamy do współpracy. Prosimy o przestrzeganie poniższych wytycznych: -1. **Zgłoszenia:** [Zgłaszaj błędy lub prośby o funkcje](https://github.com/lingodotdev/lingo.dev/issues) -2. **Pull Requesty:** [Przesyłaj zmiany](https://github.com/lingodotdev/lingo.dev/pulls) - - Każdy PR wymaga changesetu: `pnpm new` (lub `pnpm new:empty` dla zmian niewydaniowych) - - Przed wysłaniem upewnij się, że testy przechodzą poprawnie +1. **Issues:** [Zgłoś błąd lub zaproponuj funkcję](https://github.com/lingodotdev/lingo.dev/issues) +2. **Pull Requests:** [Prześlij zmiany](https://github.com/lingodotdev/lingo.dev/pulls) + - Każdy PR wymaga changeset: `pnpm new` (lub `pnpm new:empty` dla zmian niepublikowanych) + - Upewnij się, że testy przechodzą przed wysłaniem 3. **Development:** To monorepo pnpm + turborepo - Instalacja zależności: `pnpm install` - - Uruchamianie testów: `pnpm test` - - Budowanie: `pnpm build` + - Uruchom testy: `pnpm test` + - Build: `pnpm build` **Wsparcie:** [Społeczność Discord](https://lingo.dev/go/discord) @@ -498,12 +498,12 @@ Jeśli Lingo.dev jest dla Ciebie przydatne, daj nam gwiazdkę i pomóż osiągn **Dodawanie nowego języka:** -1. Dodaj kod języka do [`i18n.json`](./i18n.json) używając [formatu BCP-47](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale) -2. Prześlij pull request +1. Dodaj kod języka do [`i18n.json`](./i18n.json) używając formatu [BCP-47](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale) +2. Wyślij pull request -**Format lokalizacji BCP-47:** `language[-Script][-REGION]` +**Format locale BCP-47:** `language[-Script][-REGION]` - `language`: ISO 639-1/2/3 (małe litery): `en`, `zh`, `bho` -- `Script`: ISO 15924 (wielka litera na początku): `Hans`, `Hant`, `Latn` -- `REGION`: ISO 3166-1 alpha-2 (wielkie litery): `US`, `CN`, `IN` +- `Script`: ISO 15924 (pierwsza wielka litera): `Hans`, `Hant`, `Latn` +- `REGION`: ISO 3166-1 alpha-2 (duże litery): `US`, `CN`, `IN` - Przykłady: `en`, `pt-BR`, `zh-Hans`, `sr-Cyrl-RS` diff --git a/readme/pt-BR.md b/readme/pt-BR.md index 93aff81a4..e7bce7a1d 100644 --- a/readme/pt-BR.md +++ b/readme/pt-BR.md @@ -77,8 +77,8 @@ | [**MCP**](#lingodev-mcp) | Configuração de i18n assistida por IA para apps React | Prompt: `Set up i18n` | | [**CLI**](#lingodev-cli) | Traduzir arquivos JSON, YAML, markdown, CSV, PO | `npx lingo.dev@latest run` | | [**CI/CD**](#lingodev-cicd) | Pipeline de tradução automatizado no GitHub Actions | `uses: lingodotdev/lingo.dev@main` | -| [**SDK**](#lingodev-sdk) | Tradução em tempo de execução para conteúdo dinâmico | `npm install lingo.dev` | -| [**Compiler**](#lingodev-compiler) | Localização React em tempo de build sem wrappers i18n | Plugin `withLingo()` | +| [**SDK**](#lingodev-sdk) | Tradução em runtime para conteúdo dinâmico | `npm install lingo.dev` | +| [**Compiler**](#lingodev-compiler) | Localização React em build-time sem wrappers i18n | Plugin `withLingo()` | --- @@ -111,10 +111,10 @@ Set up i18n with the following locales: en, es, and pt-BR. The default locale is O assistente irá: -1. Configurar roteamento baseado em locale (por exemplo, `/en`, `/es`, `/pt-BR`) -2. Configurar componentes de troca de idioma -3. Implementar detecção automática de locale -4. Gerar arquivos de configuração necessários +1. Configure roteamento baseado em locale (ex.: `/en`, `/es`, `/pt-BR`) +2. Configure componentes de troca de idioma +3. Implemente detecção automática de locale +4. Gere os arquivos de configuração necessários **Observação:** a geração de código assistida por IA é não-determinística. Revise o código gerado antes de fazer commit. @@ -141,9 +141,9 @@ npx lingo.dev@latest run **Como funciona:** 1. Extrai conteúdo traduzível dos arquivos configurados -2. Envia o conteúdo para o provedor LLM para tradução -3. Grava o conteúdo traduzido de volta no sistema de arquivos -4. Cria o arquivo `i18n.lock` para rastrear traduções concluídas (evita processamento redundante) +2. Envia conteúdo para o provedor LLM para tradução +3. Escreve conteúdo traduzido de volta no sistema de arquivos +4. Cria arquivo `i18n.lock` para rastrear traduções concluídas (evita processamento redundante) **Configuração:** @@ -253,14 +253,14 @@ env: **Inputs disponíveis:** -| Input | Padrão | Descrição | -| -------------------- | ---------------------------------------------- | -------------------------------------- | -| `api-key` | (obrigatório) | Chave de API do Lingo.dev | -| `pull-request` | `false` | Criar PR em vez de fazer commit direto | -| `commit-message` | `"feat: update translations via @LingoDotDev"` | Mensagem de commit personalizada | -| `pull-request-title` | `"feat: update translations via @LingoDotDev"` | Título de PR personalizado | -| `working-directory` | `"."` | Diretório para executar | -| `parallel` | `false` | Habilitar processamento paralelo | +| Input | Padrão | Descrição | +| -------------------- | ---------------------------------------------- | --------------------------------------- | +| `api-key` | (obrigatório) | Chave de API Lingo.dev | +| `pull-request` | `false` | Criar PR em vez de commitar diretamente | +| `commit-message` | `"feat: update translations via @LingoDotDev"` | Mensagem de commit personalizada | +| `pull-request-title` | `"feat: update translations via @LingoDotDev"` | Título de PR personalizado | +| `working-directory` | `"."` | Diretório para executar | +| `parallel` | `false` | Habilitar processamento paralelo | [Leia a documentação →](https://lingo.dev/en/ci/github) @@ -336,7 +336,7 @@ const locale = await lingoDotDev.recognizeLocale("Bonjour le monde"); ### Lingo.dev Compiler -A i18n tradicional é invasiva. Você envolve cada string em funções `t()`, inventa chaves de tradução (`home.hero.title.v2`), mantém arquivos JSON paralelos e vê seus componentes incharem com boilerplate de localização. É tão tedioso que as equipes adiam a internacionalização até que ela se torne uma refatoração massiva. +A i18n tradicional é invasiva. Você envolve cada string em funções `t()`, inventa chaves de tradução (`home.hero.title.v2`), mantém arquivos JSON paralelos e vê seus componentes incharem com código boilerplate de localização. É tão tedioso que as equipes adiam a internacionalização até que ela se torne uma refatoração massiva. O Lingo.dev Compiler elimina a cerimônia. Escreva componentes React com texto em inglês simples. O compilador detecta strings traduzíveis em tempo de build e gera variantes localizadas automaticamente. Sem chaves, sem arquivos JSON, sem funções wrapper - apenas código React que funciona em vários idiomas. @@ -447,13 +447,13 @@ Faça commit do diretório `.lingo/` no controle de versão. - Suporte a TypeScript - ICU MessageFormat para plurais - Substituições manuais via atributo `data-lingo-override` -- Widget integrado de editor de traduções +- Widget editor de tradução integrado **Modos de build:** -- `pseudotranslator`: Modo de desenvolvimento com traduções placeholder (sem custos de API) -- `real`: Gera traduções reais usando LLMs -- `cache-only`: Modo de produção usando traduções pré-geradas do CI (sem chamadas de API) +- `pseudotranslator`: modo de desenvolvimento com traduções placeholder (sem custos de API) +- `real`: gera traduções reais usando LLMs +- `cache-only`: modo de produção usando traduções pré-geradas do CI (sem chamadas de API) **Frameworks suportados:** @@ -471,8 +471,8 @@ Suporte a frameworks adicionais planejado. Contribuições são bem-vindas. Siga estas diretrizes: 1. **Issues:** [Reporte bugs ou solicite recursos](https://github.com/lingodotdev/lingo.dev/issues) -2. **Pull Requests:** [Envie alterações](https://github.com/lingodotdev/lingo.dev/pulls) - - Todo PR requer um changeset: `pnpm new` (ou `pnpm new:empty` para alterações que não geram release) +2. **Pull requests:** [Envie alterações](https://github.com/lingodotdev/lingo.dev/pulls) + - Todo PR requer um changeset: `pnpm new` (ou `pnpm new:empty` para alterações sem release) - Certifique-se de que os testes passem antes de enviar 3. **Desenvolvimento:** Este é um monorepo pnpm + turborepo - Instale as dependências: `pnpm install` @@ -505,6 +505,6 @@ Se você acha o Lingo.dev útil, nos dê uma estrela e nos ajude a alcançar 10. **Formato de locale BCP-47:** `language[-Script][-REGION]` - `language`: ISO 639-1/2/3 (minúsculas): `en`, `zh`, `bho` -- `Script`: ISO 15924 (primeira letra maiúscula): `Hans`, `Hant`, `Latn` +- `Script`: ISO 15924 (title case): `Hans`, `Hant`, `Latn` - `REGION`: ISO 3166-1 alpha-2 (maiúsculas): `US`, `CN`, `IN` - Exemplos: `en`, `pt-BR`, `zh-Hans`, `sr-Cyrl-RS` diff --git a/readme/ru.md b/readme/ru.md index 7bbe06e31..edb4bbe5c 100644 --- a/readme/ru.md +++ b/readme/ru.md @@ -74,8 +74,8 @@ | Инструмент | Сценарий использования | Быстрая команда | | ---------------------------------- | -------------------------------------------------- | ---------------------------------- | | [**MCP**](#lingodev-mcp) | AI-помощь при настройке i18n для React-приложений | Prompt: `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` | +| [**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()` plugin | @@ -110,10 +110,10 @@ Set up i18n with the following locales: en, es, and pt-BR. The default locale is Ассистент сделает следующее: -1. Настроит роутинг по локали (например, `/en`, `/es`, `/pt-BR`) -2. Добавит компоненты для переключения языка -3. Реализует автоматическое определение локали -4. Сгенерирует нужные конфиги +1. Настройте маршрутизацию по локали (например, `/en`, `/es`, `/pt-BR`) +2. Добавьте компоненты для переключения языка +3. Реализуйте автоматическое определение локали +4. Сгенерируйте необходимые конфигурационные файлы **Важно:** Генерация кода с помощью AI непредсказуема. Проверьте код перед коммитом. @@ -140,13 +140,13 @@ npx lingo.dev@latest run **Как это работает:** 1. Извлекает переводимый контент из настроенных файлов -2. Отправляет контент провайдеру LLM для перевода +2. Отправляет контент в LLM-провайдер для перевода 3. Записывает переведённый контент обратно в файловую систему 4. Создаёт файл `i18n.lock` для отслеживания завершённых переводов (чтобы избежать повторной обработки) **Конфигурация:** -Команда `init` генерирует файл `i18n.json`. Настройте языки и бакеты: +Команда `init` генерирует файл `i18n.json`. Настройте локали и бакеты: ```json { @@ -164,7 +164,7 @@ npx lingo.dev@latest run } ``` -Поле `provider` необязательное (по умолчанию — Lingo.dev Engine). Для кастомных LLM-провайдеров: +Поле `provider` не обязательно (по умолчанию используется Lingo.dev Engine). Для кастомных LLM-провайдеров: ```json { @@ -227,7 +227,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 workflow: Включите "Allow GitHub Actions to create and approve pull requests" в Settings > Actions > General **Опции воркфлоу:** @@ -252,14 +252,14 @@ env: **Доступные параметры:** -| Параметр | По умолчанию | Описание | -| -------------------- | ---------------------------------------------- | ----------------------------------- | -| `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` | Включить параллельную обработку | +| Входные данные | По умолчанию | Описание | +| -------------------- | ---------------------------------------------- | --------------------------------- | +| `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) @@ -335,7 +335,7 @@ const locale = await lingoDotDev.recognizeLocale("Bonjour le monde"); ### Lingo.dev Compiler -Классический i18n — это боль. Нужно оборачивать каждую строку в функции `t()`, придумывать ключи переводов (`home.hero.title.v2`), поддерживать параллельные JSON-файлы и наблюдать, как компоненты раздуваются от локализационного кода. Всё настолько муторно, что команды откладывают интернационализацию до последнего, пока не приходится делать огромный рефакторинг. +Традиционный i18n — это боль. Нужно оборачивать каждую строку в функции `t()`, придумывать ключи переводов (`home.hero.title.v2`), поддерживать параллельные JSON-файлы и наблюдать, как компоненты раздуваются от локализационного шаблона. Всё настолько муторно, что команды откладывают интернационализацию до тех пор, пока это не превращается в огромный рефакторинг. Компилятор Lingo.dev убирает всю рутину. Пиши React-компоненты с обычным английским текстом — компилятор сам находит переводимые строки на этапе сборки и автоматически генерирует локализованные версии. Никаких ключей, JSON-файлов или обёрток — только React-код, который сразу работает на нескольких языках. @@ -433,15 +433,15 @@ export function LanguageSwitcher() { **Разработка:** `npm run dev` (использует псевдопереводчик, без API-запросов) -**Продакшн:** Установи `usePseudotranslator: false`, затем `next build` +**Продакшн:** Установите `usePseudotranslator: false`, затем `next build` -Добавь директорию `.lingo/` в систему контроля версий. +Добавьте директорию `.lingo/` в систему контроля версий. **Ключевые возможности:** -- Нулевая стоимость по производительности на рантайме -- Нет ключей перевода и JSON-файлов -- Нет функций `t()` или обёрток-компонентов `` +- Нулевая стоимость производительности на рантайме +- Без ключей переводов и JSON-файлов +- Без функций `t()` или обёрток-компонентов `` - Автоматическое определение переводимого текста в JSX - Поддержка TypeScript - ICU MessageFormat для плюрализации @@ -450,9 +450,9 @@ export function LanguageSwitcher() { **Режимы сборки:** -- `pseudotranslator`: режим разработки с псевдопереводами (без затрат на API) -- `real`: генерация реальных переводов с помощью LLM -- `cache-only`: продакшн-режим с использованием заранее сгенерированных переводов из CI (без API-запросов) +- `pseudotranslator`: Режим разработки с плейсхолдерными переводами (без затрат на API) +- `real`: Генерация реальных переводов с помощью LLM +- `cache-only`: Продакшн-режим с использованием заранее сгенерированных переводов из CI (без API-запросов) **Поддерживаемые фреймворки:** @@ -469,11 +469,11 @@ export function LanguageSwitcher() { Будем рады вашим вкладом! Пожалуйста, следуйте этим рекомендациям: -1. **Issues:** [Сообщить об ошибках или предложить новые функции](https://github.com/lingodotdev/lingo.dev/issues) -2. **Pull Requests:** [Отправить изменения](https://github.com/lingodotdev/lingo.dev/pulls) - - Для каждого PR нужен changeset: `pnpm new` (или `pnpm new:empty` для изменений без релиза) - - Перед отправкой убедитесь, что все тесты проходят -3. **Разработка:** Это монорепозиторий на pnpm + turborepo +1. **Issues:** [Сообщить об ошибках или предложить фичи](https://github.com/lingodotdev/lingo.dev/issues) +2. **Pull Requests:** [Внести изменения](https://github.com/lingodotdev/lingo.dev/pulls) + - Каждый PR требует changeset: `pnpm new` (или `pnpm new:empty` для нерелизных изменений) + - Перед отправкой убедитесь, что тесты проходят +3. **Разработка:** Это монорепозиторий pnpm + turborepo - Установить зависимости: `pnpm install` - Запустить тесты: `pnpm test` - Собрать проект: `pnpm build` @@ -505,5 +505,5 @@ export function LanguageSwitcher() { - `language`: ISO 639-1/2/3 (строчные): `en`, `zh`, `bho` - `Script`: ISO 15924 (с заглавной буквы): `Hans`, `Hant`, `Latn` -- `REGION`: ISO 3166-1 alpha-2 (заглавные): `US`, `CN`, `IN` +- `REGION`: ISO 3166-1 alpha-2 (прописные): `US`, `CN`, `IN` - Примеры: `en`, `pt-BR`, `zh-Hans`, `sr-Cyrl-RS` diff --git a/readme/si-LK.md b/readme/si-LK.md index 1c20897db..66b4717b8 100644 --- a/readme/si-LK.md +++ b/readme/si-LK.md @@ -74,10 +74,10 @@ | මෙවලම | භාවිත අවස්ථාව | ඉක්මන් විධානය | | ---------------------------------- | ----------------------------------------------------- | ---------------------------------- | -| [**MCP**](#lingodev-mcp) | React යෙදුම් සඳහා AI-සහාය i18n සැකසුම | Prompt: `Set up i18n` | -| [**CLI**](#lingodev-cli) | JSON, YAML, markdown, CSV, PO ගොනු පරිවර්තනය කරන්න | `npx lingo.dev@latest run` | -| [**CI/CD**](#lingodev-cicd) | GitHub Actions හි ස්වයංක්‍රීය පරිවර්තන pipeline | `uses: lingodotdev/lingo.dev@main` | -| [**SDK**](#lingodev-sdk) | ගතික අන්තර්ගතය සඳහා runtime පරිවර්තනය | `npm install lingo.dev` | +| [**MCP**](#lingodev-mcp) | React යෙදුම් සඳහා AI-සහාය i18n පිහිටුවීම | විමසුම: `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) | i18n wrappers නොමැතිව build-time React ප්‍රාදේශීයකරණය | `withLingo()` plugin | --- @@ -111,10 +111,10 @@ Set up i18n with the following locales: en, es, and pt-BR. The default locale is සහායක: -1. Locale-පාදක routing වින්‍යාස කරයි (උදා., `/en`, `/es`, `/pt-BR`) -2. භාෂා මාරු components පිහිටුවයි -3. ස්වයංක්‍රීය locale හඳුනාගැනීම ක්‍රියාත්මක කරයි -4. අවශ්‍ය වින්‍යාස ගොනු ජනනය කරයි +1. locale-පාදක මාර්ගගත කිරීම වින්‍යාස කරන්න (උදා., `/en`, `/es`, `/pt-BR`) +2. භාෂා මාරු කිරීමේ සංරචක පිහිටුවන්න +3. ස්වයංක්‍රීය locale හඳුනාගැනීම ක්‍රියාත්මක කරන්න +4. අවශ්‍ය වින්‍යාස ගොනු උත්පාදනය කරන්න **සටහන:** AI-සහාය කේත ජනනය අ-නිර්ණායක වේ. commit කිරීමට පෙර ජනනය කළ කේතය සමාලෝචනය කරන්න. @@ -140,14 +140,14 @@ npx lingo.dev@latest run **එය ක්‍රියා කරන ආකාරය:** -1. වින්‍යාසගත ගොනු වලින් පරිවර්තනය කළ හැකි අන්තර්ගතය උකහා ගනී -2. පරිවර්තනය සඳහා අන්තර්ගතය LLM සපයන්නා වෙත යවයි +1. වින්‍යාස කළ ගොනු වලින් පරිවර්තනය කළ හැකි අන්තර්ගතය උපුටා ගනී +2. පරිවර්තනය සඳහා LLM සපයන්නා වෙත අන්තර්ගතය යවයි 3. පරිවර්තනය කළ අන්තර්ගතය ගොනු පද්ධතියට නැවත ලියයි -4. සම්පූර්ණ කළ පරිවර්තන නිරීක්ෂණය කිරීමට `i18n.lock` ගොනුව නිර්මාණය කරයි (අතිරික්ත සැකසීම වළක්වයි) +4. සම්පූර්ණ කළ පරිවර්තන ලුහුබැඳීමට `i18n.lock` ගොනුව නිර්මාණය කරයි (අතිරික්ත සැකසීම වළක්වයි) **වින්‍යාසය:** -`init` විධානය `i18n.json` ගොනුවක් ජනනය කරයි. locales සහ buckets වින්‍යාස කරන්න: +`init` විධානය `i18n.json` ගොනුවක් උත්පාදනය කරයි. locales සහ buckets වින්‍යාස කරන්න: ```json { @@ -165,7 +165,7 @@ npx lingo.dev@latest run } ``` -`provider` ක්ෂේත්‍රය විකල්ප වේ (පෙරනිමියෙන් Lingo.dev Engine වෙත). අභිරුචි LLM සපයන්නන් සඳහා: +`provider` ක්ෂේත්‍රය විකල්ප වේ (පෙරනිමිය Lingo.dev Engine වේ). අභිරුචි LLM සපයන්නන් සඳහා: ```json { @@ -227,8 +227,8 @@ jobs: **ස්ථාපන අවශ්‍යතා:** -1. repository secrets වෙත `LINGODOTDEV_API_KEY` එක් කරන්න (Settings > Secrets and variables > Actions) -2. PR workflows සඳහා: Settings > Actions > General හි "Allow GitHub Actions to create and approve pull requests" සබල කරන්න +1. ගබඩා රහස් වෙත `LINGODOTDEV_API_KEY` එක් කරන්න (Settings > Secrets and variables > Actions) +2. PR workflows සඳහා: Settings > Actions > General හි "Allow GitHub Actions to create and approve pull requests" සක්‍රීය කරන්න **Workflow විකල්ප:** @@ -253,14 +253,14 @@ env: **ලබා ගත හැකි inputs:** -| Input | පෙරනිමි | විස්තරය | -| -------------------- | ---------------------------------------------- | ------------------------------------ | -| `api-key` | (අවශ්‍යයි) | Lingo.dev API යතුර | -| `pull-request` | `false` | සෘජුවම commit කිරීම වෙනුවට PR සාදන්න | -| `commit-message` | `"feat: update translations via @LingoDotDev"` | අභිරුචි commit පණිවිඩය | -| `pull-request-title` | `"feat: update translations via @LingoDotDev"` | අභිරුචි PR මාතෘකාව | -| `working-directory` | `"."` | ධාවනය කිරීමට directory එක | -| `parallel` | `false` | සමාන්තර සැකසීම සක්‍රීය කරන්න | +| ආදානය | පෙරනිමිය | විස්තරය | +| -------------------- | ---------------------------------------------- | -------------------------------------------- | +| `api-key` | (අවශ්‍යයි) | Lingo.dev API යතුර | +| `pull-request` | `false` | සෘජුවම commit කිරීම වෙනුවට PR නිර්මාණය කරන්න | +| `commit-message` | `"feat: update translations via @LingoDotDev"` | අභිරුචි commit පණිවිඩය | +| `pull-request-title` | `"feat: update translations via @LingoDotDev"` | අභිරුචි PR මාතෘකාව | +| `working-directory` | `"."` | ධාවනය කිරීමට නාමාවලිය | +| `parallel` | `false` | සමාන්තර සැකසීම සක්‍රීය කරන්න | [ලේඛන කියවන්න →](https://lingo.dev/en/ci/github) @@ -336,7 +336,7 @@ const locale = await lingoDotDev.recognizeLocale("Bonjour le monde"); ### Lingo.dev Compiler -සාම්ප්‍රදායික i18n ආක්‍රමණශීලී වේ. ඔබ සෑම string එකක්ම `t()` functions වලින් ඔතා, පරිවර්තන යතුරු නිර්මාණය කර (`home.hero.title.v2`), සමාන්තර JSON ගොනු නඩත්තු කර, ඔබේ components දේශීයකරණ boilerplate සමඟ විශාල වන ආකාරය නරඹයි. එය කෙතරම් කම්මැලි කාර්යයක්ද යත්, කණ්ඩායම් ජාත්‍යන්තරකරණය එය විශාල refactor එකක් බවට පත්වන තෙක් ප්‍රමාද කරයි. +සාම්ප්‍රදායික i18n ආක්‍රමණශීලී වේ. ඔබ සෑම තන්තුවක්ම `t()` ශ්‍රිතවල ඔතා, පරිවර්තන යතුරු (`home.hero.title.v2`) නිර්මාණය කර, සමාන්තර JSON ගොනු නඩත්තු කර, ඔබේ සංරචක ස්ථානීයකරණ boilerplate සමඟ පිම්බීම නරඹයි. එය කණ්ඩායම් ජාත්‍යන්තරකරණය විශාල ප්‍රතිව්‍යුහගත කිරීමක් බවට පත්වන තෙක් ප්‍රමාද කරන තරමට කම්මැලි වේ. Lingo.dev Compiler උත්සවය ඉවත් කරයි. සරල ඉංග්‍රීසි පාඨයෙන් React සංරචක ලියන්න. සම්පාදකය ගොඩනැගීමේ කාලයේදී පරිවර්තනය කළ හැකි තන්තු හඳුනාගෙන ස්වයංක්‍රීයව දේශීයකරණය කළ ප්‍රභේද ජනනය කරයි. යතුරු නැත, JSON ගොනු නැත, ආවරණ ශ්‍රිත නැත - බහු භාෂාවලින් ක්‍රියා කරන React කේතය පමණි. @@ -432,7 +432,7 @@ export function LanguageSwitcher() { } ``` -**සංවර්ධනය:** `npm run dev` (ව්‍යාජ පරිවර්තකය භාවිතා කරයි, API ඇමතුම් නැත) +**සංවර්ධනය:** `npm run dev` (pseudotranslator භාවිතා කරයි, API ඇමතුම් නැත) **නිෂ්පාදනය:** `usePseudotranslator: false` සකසන්න, පසුව `next build` @@ -440,20 +440,20 @@ export function LanguageSwitcher() { **ප්‍රධාන විශේෂාංග:** -- ධාවන කාල කාර්ය සාධන පිරිවැය ශුන්‍යයි +- ශුන්‍ය ධාවන කාල කාර්ය සාධන පිරිවැය - පරිවර්තන යතුරු හෝ JSON ගොනු නැත -- `t()` ශ්‍රිත හෝ `` ආවරණ සංරචක නැත -- JSX හි පරිවර්තනය කළ හැකි පාඨයේ ස්වයංක්‍රීය හඳුනාගැනීම +- `t()` ශ්‍රිත හෝ `` wrapper සංරචක නැත +- JSX හි පරිවර්තනය කළ හැකි පෙළ ස්වයංක්‍රීයව හඳුනාගැනීම - TypeScript සහාය -- බහු වචන සඳහා ICU MessageFormat +- බහුවචන සඳහා ICU MessageFormat - `data-lingo-override` ගුණාංගය හරහා අතින් අභිබවා යාම - ඇතුළත් පරිවර්තන සංස්කාරක විජට් **ගොඩනැගීමේ ප්‍රකාරයන්:** -- `pseudotranslator`: ස්ථාන දරණ පරිවර්තන සහිත සංවර්ධන ප්‍රකාරය (API පිරිවැය නැත) -- `real`: LLM භාවිතයෙන් සැබෑ පරිවර්තන ජනනය කරන්න -- `cache-only`: CI වෙතින් පෙර-ජනනය කළ පරිවර්තන භාවිතා කරන නිෂ්පාදන ප්‍රකාරය (API ඇමතුම් නැත) +- `pseudotranslator`: ස්ථාන දරණ පරිවර්තන සමඟ සංවර්ධන මාදිලිය (API පිරිවැය නැත) +- `real`: LLMs භාවිතයෙන් සැබෑ පරිවර්තන උත්පාදනය කරන්න +- `cache-only`: CI වෙතින් පෙර-උත්පාදිත පරිවර්තන භාවිතා කරන නිෂ්පාදන මාදිලිය (API ඇමතුම් නැත) **සහාය දක්වන රාමු:** @@ -472,12 +472,12 @@ export function LanguageSwitcher() { 1. **ගැටළු:** [දෝෂ වාර්තා කරන්න හෝ විශේෂාංග ඉල්ලන්න](https://github.com/lingodotdev/lingo.dev/issues) 2. **Pull Requests:** [වෙනස්කම් ඉදිරිපත් කරන්න](https://github.com/lingodotdev/lingo.dev/pulls) - - සෑම PR එකකටම changeset එකක් අවශ්‍යයි: `pnpm new` (හෝ නිකුතුවට අදාළ නොවන වෙනස්කම් සඳහා `pnpm new:empty`) - - ඉදිරිපත් කිරීමට පෙර පරීක්ෂණ සාර්ථක වන බව සහතික කරන්න + - සෑම PR එකකටම changeset අවශ්‍යයි: `pnpm new` (හෝ නිකුතු නොවන වෙනස්කම් සඳහා `pnpm new:empty`) + - ඉදිරිපත් කිරීමට පෙර පරීක්ෂණ සමත් වන බව සහතික කරන්න 3. **සංවර්ධනය:** මෙය pnpm + turborepo monorepo එකකි - - dependencies ස්ථාපනය කරන්න: `pnpm install` + - යැපීම් ස්ථාපනය කරන්න: `pnpm install` - පරීක්ෂණ ධාවනය කරන්න: `pnpm test` - - Build කරන්න: `pnpm build` + - ගොඩනැගීම: `pnpm build` **සහාය:** [Discord ප්‍රජාව](https://lingo.dev/go/discord) @@ -499,12 +499,12 @@ Lingo.dev ප්‍රයෝජනවත් නම්, අපට තරුවක **නව භාෂාවක් එකතු කිරීම:** -1. [BCP-47 ආකෘතිය](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale) භාවිතයෙන් [`i18n.json`](./i18n.json) වෙත locale කේතය එකතු කරන්න +1. [BCP-47 ආකෘතිය](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale) භාවිතයෙන් [`i18n.json`](./i18n.json) වෙත ස්ථාන කේතය එක් කරන්න 2. Pull request එකක් ඉදිරිපත් කරන්න -**BCP-47 locale ආකෘතිය:** `language[-Script][-REGION]` +**BCP-47 ස්ථාන ආකෘතිය:** `language[-Script][-REGION]` -- `language`: ISO 639-1/2/3 (lowercase): `en`, `zh`, `bho` -- `Script`: ISO 15924 (title case): `Hans`, `Hant`, `Latn` -- `REGION`: ISO 3166-1 alpha-2 (uppercase): `US`, `CN`, `IN` +- `language`: ISO 639-1/2/3 (කුඩා අකුරු): `en`, `zh`, `bho` +- `Script`: ISO 15924 (ශීර්ෂ අකුරු): `Hans`, `Hant`, `Latn` +- `REGION`: ISO 3166-1 alpha-2 (ලොකු අකුරු): `US`, `CN`, `IN` - උදාහරණ: `en`, `pt-BR`, `zh-Hans`, `sr-Cyrl-RS` diff --git a/readme/ta-IN.md b/readme/ta-IN.md index 7643ac5cd..33e4ba114 100644 --- a/readme/ta-IN.md +++ b/readme/ta-IN.md @@ -72,13 +72,13 @@ ## விரைவு தொடக்கம் -| கருவி | பயன்பாட்டு நிகழ்வு | விரைவு கட்டளை | -| ---------------------------------- | -------------------------------------------------------- | ---------------------------------- | -| [**MCP**](#lingodev-mcp) | React பயன்பாடுகளுக்கான AI-உதவி i18n அமைப்பு | Prompt: `Set up i18n` | -| [**CLI**](#lingodev-cli) | JSON, YAML, markdown, CSV, PO கோப்புகளை மொழிபெயர்க்கவும் | `npx lingo.dev@latest run` | -| [**CI/CD**](#lingodev-cicd) | GitHub Actions இல் தானியங்கு மொழிபெயர்ப்பு pipeline | `uses: lingodotdev/lingo.dev@main` | -| [**SDK**](#lingodev-sdk) | டைனமிக் உள்ளடக்கத்திற்கான runtime மொழிபெயர்ப்பு | `npm install lingo.dev` | -| [**Compiler**](#lingodev-compiler) | i18n wrappers இல்லாமல் build-time React உள்ளூர்மயமாக்கல் | `withLingo()` plugin | +| கருவி | பயன்பாட்டு நிகழ்வு | விரைவு கட்டளை | +| ---------------------------------- | --------------------------------------------------------- | ---------------------------------- | +| [**MCP**](#lingodev-mcp) | React பயன்பாடுகளுக்கான AI-உதவி i18n அமைப்பு | Prompt: `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) | i18n wrappers இல்லாமல் பில்ட்-டைம் React உள்ளூர்மயமாக்கல் | `withLingo()` plugin | --- @@ -111,10 +111,10 @@ Set up i18n with the following locales: en, es, and pt-BR. The default locale is உதவியாளர் செய்யும்: -1. Locale-அடிப்படையிலான routing-ஐ கட்டமைக்கும் (எ.கா., `/en`, `/es`, `/pt-BR`) -2. மொழி மாற்றும் components-ஐ அமைக்கும் -3. தானியங்கு locale கண்டறிதலை செயல்படுத்தும் -4. தேவையான கட்டமைப்பு கோப்புகளை உருவாக்கும் +1. லொகேல்-அடிப்படையிலான ரூட்டிங்கை உள்ளமைக்கவும் (எ.கா., `/en`, `/es`, `/pt-BR`) +2. மொழி மாற்று கூறுகளை அமைக்கவும் +3. தானியங்கு லொகேல் கண்டறிதலை செயல்படுத்தவும் +4. தேவையான உள்ளமைவு கோப்புகளை உருவாக்கவும் **குறிப்பு:** AI-உதவி code உருவாக்கம் non-deterministic ஆகும். commit செய்வதற்கு முன் உருவாக்கப்பட்ட code-ஐ மதிப்பாய்வு செய்யவும். @@ -140,14 +140,14 @@ npx lingo.dev@latest run **இது எவ்வாறு செயல்படுகிறது:** -1. கட்டமைக்கப்பட்ட கோப்புகளிலிருந்து மொழிபெயர்க்கக்கூடிய உள்ளடக்கத்தை பிரித்தெடுக்கிறது -2. மொழிபெயர்ப்புக்காக உள்ளடக்கத்தை LLM provider-க்கு அனுப்புகிறது -3. மொழிபெயர்க்கப்பட்ட உள்ளடக்கத்தை filesystem-க்கு மீண்டும் எழுதுகிறது -4. முடிக்கப்பட்ட மொழிபெயர்ப்புகளைக் கண்காணிக்க `i18n.lock` கோப்பை உருவாக்குகிறது (தேவையற்ற செயலாக்கத்தைத் தவிர்க்கிறது) +1. உள்ளமைக்கப்பட்ட கோப்புகளிலிருந்து மொழிபெயர்க்கக்கூடிய உள்ளடக்கத்தை பிரித்தெடுக்கிறது +2. மொழிபெயர்ப்புக்காக LLM வழங்குநருக்கு உள்ளடக்கத்தை அனுப்புகிறது +3. மொழிபெயர்க்கப்பட்ட உள்ளடக்கத்தை கோப்பு அமைப்புக்கு மீண்டும் எழுதுகிறது +4. முடிக்கப்பட்ட மொழிபெயர்ப்புகளை கண்காணிக்க `i18n.lock` கோப்பை உருவாக்குகிறது (தேவையற்ற செயலாக்கத்தை தவிர்க்கிறது) **கட்டமைப்பு:** -`init` கட்டளை ஒரு `i18n.json` கோப்பை உருவாக்குகிறது. locales மற்றும் buckets-ஐ கட்டமைக்கவும்: +`init` கட்டளை ஒரு `i18n.json` கோப்பை உருவாக்குகிறது. லொகேல்கள் மற்றும் பக்கெட்களை உள்ளமைக்கவும்: ```json { @@ -165,7 +165,7 @@ npx lingo.dev@latest run } ``` -`provider` புலம் விருப்பமானது (இயல்புநிலையாக Lingo.dev Engine). தனிப்பயன் LLM providers-க்கு: +`provider` புலம் விருப்பமானது (இயல்புநிலை Lingo.dev Engine). தனிப்பயன் LLM வழங்குநர்களுக்கு: ```json { @@ -205,7 +205,7 @@ Lingo.dev CI/CD மொழிபெயர்ப்புகளை தானிய **GitHub Actions அமைப்பு:** -`.github/workflows/translate.yml` உருவாக்கவும்: +`.github/workflows/translate.yml` ஐ உருவாக்கவும்: ```yaml name: Translate @@ -227,8 +227,8 @@ jobs: **அமைப்பு தேவைகள்:** -1. repository secrets-க்கு `LINGODOTDEV_API_KEY` சேர்க்கவும் (Settings > Secrets and variables > Actions) -2. PR workflows-க்கு: Settings > Actions > General-இல் "Allow GitHub Actions to create and approve pull requests" இயக்கவும் +1. ரெப்பசிட்டரி சீக்ரெட்களில் `LINGODOTDEV_API_KEY` ஐ சேர்க்கவும் (Settings > Secrets and variables > Actions) +2. PR வொர்க்ஃப்ளோக்களுக்கு: Settings > Actions > General இல் "Allow GitHub Actions to create and approve pull requests" ஐ இயக்கவும் **Workflow விருப்பங்கள்:** @@ -253,14 +253,14 @@ env: **கிடைக்கும் inputs:** -| Input | Default | விளக்கம் | -| -------------------- | ---------------------------------------------- | --------------------------------------------------- | -| `api-key` | (தேவையானது) | Lingo.dev API key | -| `pull-request` | `false` | நேரடியாக commit செய்வதற்குப் பதிலாக PR உருவாக்கவும் | -| `commit-message` | `"feat: update translations via @LingoDotDev"` | தனிப்பயன் commit செய்தி | -| `pull-request-title` | `"feat: update translations via @LingoDotDev"` | தனிப்பயன் PR தலைப்பு | -| `working-directory` | `"."` | இயக்குவதற்கான டைரக்டரி | -| `parallel` | `false` | இணையான செயலாக்கத்தை இயக்கவும் | +| இன்புட் | இயல்புநிலை | விளக்கம் | +| -------------------- | ---------------------------------------------- | ------------------------------------------------ | +| `api-key` | (தேவையானது) | Lingo.dev API கீ | +| `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) @@ -336,7 +336,7 @@ const locale = await lingoDotDev.recognizeLocale("Bonjour le monde"); ### Lingo.dev Compiler -பாரம்பரிய i18n ஊடுருவக்கூடியது. ஒவ்வொரு string-ஐயும் `t()` functions-இல் wrap செய்கிறீர்கள், மொழிபெயர்ப்பு keys-ஐக் கண்டுபிடிக்கிறீர்கள் (`home.hero.title.v2`), இணையான JSON கோப்புகளைப் பராமரிக்கிறீர்கள், மேலும் localization boilerplate மூலம் உங்கள் components வீங்குவதைப் பார்க்கிறீர்கள். இது மிகவும் சலிப்பானது, அது பெரிய refactor ஆகும் வரை குழுக்கள் internationalization-ஐ தாமதப்படுத்துகின்றன. +பாரம்பரிய i18n ஊடுருவக்கூடியது. நீங்கள் ஒவ்வொரு சரத்தையும் `t()` செயல்பாடுகளில் சுற்றி, மொழிபெயர்ப்பு விசைகளை உருவாக்கி (`home.hero.title.v2`), இணை JSON கோப்புகளை பராமரித்து, உங்கள் கூறுகள் உள்ளூர்மயமாக்கல் boilerplate உடன் வீங்குவதைப் பார்க்கிறீர்கள். இது மிகவும் சலிப்பானது, குழுக்கள் சர்வதேசமயமாக்கலை ஒத்திவைக்கின்றன, அது பெரிய மறுசீரமைப்பாக மாறும் வரை. Lingo.dev Compiler சடங்குகளை நீக்குகிறது. சாதாரண ஆங்கில உரையுடன் React components எழுதுங்கள். Compiler build நேரத்தில் மொழிபெயர்க்கக்கூடிய strings-ஐ கண்டறிந்து தானாகவே localized variants-ஐ உருவாக்குகிறது. Keys இல்லை, JSON கோப்புகள் இல்லை, wrapper functions இல்லை - பல மொழிகளில் வேலை செய்யும் React code மட்டுமே. @@ -432,28 +432,28 @@ export function LanguageSwitcher() { } ``` -**Development:** `npm run dev` (pseudotranslator-ஐ பயன்படுத்துகிறது, API calls இல்லை) +**உருவாக்கம்:** `npm run dev` (pseudotranslator ஐப் பயன்படுத்துகிறது, API அழைப்புகள் இல்லை) -**Production:** `usePseudotranslator: false`-ஐ அமைக்கவும், பின்னர் `next build` +**உற்பத்தி:** `usePseudotranslator: false` ஐ அமைக்கவும், பின்னர் `next build` -`.lingo/` directory-ஐ version control-க்கு commit செய்யவும். +`.lingo/` அடைவை பதிப்பு கட்டுப்பாட்டில் commit செய்யவும். **முக்கிய அம்சங்கள்:** -- Zero runtime performance செலவு -- மொழிபெயர்ப்பு keys அல்லது JSON கோப்புகள் இல்லை -- `t()` functions அல்லது `` wrapper components இல்லை -- JSX-இல் மொழிபெயர்க்கக்கூடிய உரையின் தானியங்கு கண்டறிதல் +- இயக்க நேர செயல்திறன் செலவு இல்லை +- மொழிபெயர்ப்பு விசைகள் அல்லது JSON கோப்புகள் இல்லை +- `t()` செயல்பாடுகள் அல்லது `` wrapper கூறுகள் இல்லை +- JSX இல் மொழிபெயர்க்கக்கூடிய உரையின் தானியங்கு கண்டறிதல் - TypeScript ஆதரவு -- Plurals-க்கான ICU MessageFormat -- `data-lingo-override` attribute வழியாக manual overrides -- உள்ளமைக்கப்பட்ட மொழிபெயர்ப்பு editor widget +- பன்மைகளுக்கான ICU MessageFormat +- `data-lingo-override` பண்புக்கூறு வழியாக கைமுறை மேலெழுதுதல்கள் +- உள்ளமைக்கப்பட்ட மொழிபெயர்ப்பு எடிட்டர் விட்ஜெட் **Build modes:** -- `pseudotranslator`: Placeholder மொழிபெயர்ப்புகளுடன் development mode (API செலவுகள் இல்லை) -- `real`: LLMs-ஐ பயன்படுத்தி உண்மையான மொழிபெயர்ப்புகளை உருவாக்கவும் -- `cache-only`: CI-இலிருந்து முன்பே உருவாக்கப்பட்ட மொழிபெயர்ப்புகளைப் பயன்படுத்தும் production mode (API calls இல்லை) +- `pseudotranslator`: placeholder மொழிபெயர்ப்புகளுடன் உருவாக்க பயன்முறை (API செலவுகள் இல்லை) +- `real`: LLM களைப் பயன்படுத்தி உண்மையான மொழிபெயர்ப்புகளை உருவாக்கவும் +- `cache-only`: CI இலிருந்து முன்-உருவாக்கப்பட்ட மொழிபெயர்ப்புகளைப் பயன்படுத்தி உற்பத்தி பயன்முறை (API அழைப்புகள் இல்லை) **ஆதரிக்கப்படும் frameworks:** @@ -472,12 +472,12 @@ export function LanguageSwitcher() { 1. **சிக்கல்கள்:** [பிழைகளைப் புகாரளிக்கவும் அல்லது அம்சங்களைக் கோரவும்](https://github.com/lingodotdev/lingo.dev/issues) 2. **Pull Requests:** [மாற்றங்களைச் சமர்ப்பிக்கவும்](https://github.com/lingodotdev/lingo.dev/pulls) - - ஒவ்வொரு PR-க்கும் changeset தேவை: `pnpm new` (அல்லது release அல்லாத மாற்றங்களுக்கு `pnpm new:empty`) - - சமர்ப்பிப்பதற்கு முன் tests தேர்ச்சி பெறுவதை உறுதிசெய்யவும் -3. **Development:** இது ஒரு pnpm + turborepo monorepo - - dependencies நிறுவவும்: `pnpm install` - - tests இயக்கவும்: `pnpm test` - - Build: `pnpm build` + - ஒவ்வொரு PR க்கும் changeset தேவை: `pnpm new` (அல்லது வெளியீடு அல்லாத மாற்றங்களுக்கு `pnpm new:empty`) + - சமர்ப்பிப்பதற்கு முன் சோதனைகள் தேர்ச்சி பெறுவதை உறுதிசெய்யவும் +3. **உருவாக்கம்:** இது ஒரு pnpm + turborepo monorepo + - சார்புகளை நிறுவவும்: `pnpm install` + - சோதனைகளை இயக்கவும்: `pnpm test` + - உருவாக்கவும்: `pnpm build` **ஆதரவு:** [Discord சமூகம்](https://lingo.dev/go/discord) @@ -499,12 +499,12 @@ Lingo.dev பயனுள்ளதாக இருந்தால், எங் **புதிய மொழியைச் சேர்ப்பது:** -1. [`i18n.json`](./i18n.json)-ல் [BCP-47 format](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale) பயன்படுத்தி locale code சேர்க்கவும் -2. pull request சமர்ப்பிக்கவும் +1. [BCP-47 வடிவமைப்பைப்](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale) பயன்படுத்தி [`i18n.json`](./i18n.json) இல் locale குறியீட்டைச் சேர்க்கவும் +2. pull request ஐச் சமர்ப்பிக்கவும் -**BCP-47 locale format:** `language[-Script][-REGION]` +**BCP-47 locale வடிவமைப்பு:** `language[-Script][-REGION]` -- `language`: ISO 639-1/2/3 (lowercase): `en`, `zh`, `bho` -- `Script`: ISO 15924 (title case): `Hans`, `Hant`, `Latn` -- `REGION`: ISO 3166-1 alpha-2 (uppercase): `US`, `CN`, `IN` +- `language`: ISO 639-1/2/3 (சிறிய எழுத்துக்கள்): `en`, `zh`, `bho` +- `Script`: ISO 15924 (தலைப்பு வழக்கு): `Hans`, `Hant`, `Latn` +- `REGION`: ISO 3166-1 alpha-2 (பெரிய எழுத்துக்கள்): `US`, `CN`, `IN` - எடுத்துக்காட்டுகள்: `en`, `pt-BR`, `zh-Hans`, `sr-Cyrl-RS` \ No newline at end of file diff --git a/readme/te-IN.md b/readme/te-IN.md index 5202b017c..586ff8c4b 100644 --- a/readme/te-IN.md +++ b/readme/te-IN.md @@ -71,13 +71,13 @@ ## త్వరిత ప్రారంభం -| టూల్ | వినియోగ సందర్భం | త్వరిత కమాండ్ | -| ---------------------------------- | -------------------------------------------------- | ---------------------------------- | -| [**MCP**](#lingodev-mcp) | React యాప్‌ల కోసం AI-సహాయక i18n సెటప్ | ప్రాంప్ట్: `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) | i18n రాపర్స్ లేకుండా బిల్డ్-టైమ్ React స్థానికీకరణ | `withLingo()` ప్లగిన్ | +| సాధనం | ఉపయోగ సందర్భం | త్వరిత కమాండ్ | +| ---------------------------------- | ------------------------------------------------- | ---------------------------------- | +| [**MCP**](#lingodev-mcp) | React యాప్‌ల కోసం AI-సహాయిత i18n సెటప్ | ప్రాంప్ట్: `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) | i18n రాపర్స్ లేకుండా బిల్డ్-టైమ్ React లోకలైజేషన్ | `withLingo()` ప్లగిన్ | --- @@ -110,10 +110,10 @@ Set up i18n with the following locales: en, es, and pt-BR. The default locale is అసిస్టెంట్ ఇలా చేస్తుంది: -1. లొకేల్-బేస్డ్ రూటింగ్‌ను కాన్ఫిగర్ చేస్తుంది (ఉదా., `/en`, `/es`, `/pt-BR`) -2. లాంగ్వేజ్ స్విచింగ్ కాంపోనెంట్‌లను సెటప్ చేస్తుంది -3. ఆటోమేటిక్ లొకేల్ డిటెక్షన్‌ను ఇంప్లిమెంట్ చేస్తుంది -4. అవసరమైన కాన్ఫిగరేషన్ ఫైల్స్‌ను జనరేట్ చేస్తుంది +1. లొకేల్-ఆధారిత రూటింగ్‌ను కాన్ఫిగర్ చేయండి (ఉదా., `/en`, `/es`, `/pt-BR`) +2. భాషా మార్పిడి కాంపోనెంట్‌లను సెటప్ చేయండి +3. ఆటోమేటిక్ లొకేల్ డిటెక్షన్‌ను అమలు చేయండి +4. అవసరమైన కాన్ఫిగరేషన్ ఫైల్స్‌ను జనరేట్ చేయండి **గమనిక:** AI-అసిస్టెడ్ కోడ్ జనరేషన్ నాన్-డిటర్మినిస్టిక్. కమిట్ చేయడానికి ముందు జనరేట్ చేసిన కోడ్‌ను రివ్యూ చేయండి. @@ -139,9 +139,9 @@ npx lingo.dev@latest run **ఇది ఎలా పనిచేస్తుంది:** -1. కాన్ఫిగర్ చేసిన ఫైల్స్ నుండి అనువదించదగిన కంటెంట్‌ను సేకరిస్తుంది -2. అనువాదం కోసం కంటెంట్‌ను LLM ప్రొవైడర్‌కు పంపుతుంది -3. అనువదించిన కంటెంట్‌ను తిరిగి ఫైల్‌సిస్టమ్‌కు వ్రాస్తుంది +1. కాన్ఫిగర్ చేసిన ఫైల్స్ నుండి అనువదించదగిన కంటెంట్‌ను ఎక్స్‌ట్రాక్ట్ చేస్తుంది +2. అనువాదం కోసం LLM ప్రొవైడర్‌కు కంటెంట్‌ను పంపుతుంది +3. అనువదించిన కంటెంట్‌ను ఫైల్‌సిస్టమ్‌కు తిరిగి వ్రాస్తుంది 4. పూర్తయిన అనువాదాలను ట్రాక్ చేయడానికి `i18n.lock` ఫైల్‌ను సృష్టిస్తుంది (అనవసర ప్రాసెసింగ్‌ను నివారిస్తుంది) **కాన్ఫిగరేషన్:** @@ -252,14 +252,14 @@ env: **అందుబాటులో ఉన్న ఇన్‌పుట్‌లు:** -| ఇన్‌పుట్ | డిఫాల్ట్ | వివరణ | -| -------------------- | ---------------------------------------------- | ----------------------------------------------- | -| `api-key` | (అవసరం) | Lingo.dev API కీ | -| `pull-request` | `false` | నేరుగా కమిట్ చేయడానికి బదులు PR క్రియేట్ చేయండి | -| `commit-message` | `"feat: update translations via @LingoDotDev"` | కస్టమ్ కమిట్ మెసేజ్ | -| `pull-request-title` | `"feat: update translations via @LingoDotDev"` | కస్టమ్ PR టైటిల్ | -| `working-directory` | `"."` | రన్ చేయడానికి డైరెక్టరీ | -| `parallel` | `false` | పారలెల్ ప్రాసెసింగ్‌ను ఎనేబుల్ చేయండి | +| ఇన్‌పుట్ | డిఫాల్ట్ | వివరణ | +| -------------------- | ---------------------------------------------- | ------------------------------------------- | +| `api-key` | (అవసరం) | Lingo.dev API కీ | +| `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) @@ -335,7 +335,7 @@ const locale = await lingoDotDev.recognizeLocale("Bonjour le monde"); ### Lingo.dev కంపైలర్ -సాంప్రదాయ i18n ఇన్వేసివ్‌గా ఉంటుంది. మీరు ప్రతి స్ట్రింగ్‌ను `t()` ఫంక్షన్లలో wrap చేస్తారు, అనువాద కీలను (`home.hero.title.v2`) ఇన్వెంట్ చేస్తారు, పారలెల్ JSON ఫైల్స్‌ను మెయింటెయిన్ చేస్తారు మరియు మీ కాంపోనెంట్లు లోకలైజేషన్ బాయిలర్‌ప్లేట్‌తో bloat అవడం చూస్తారు. ఇది చాలా టెడియస్‌గా ఉంటుంది కాబట్టి టీమ్‌లు ఇంటర్నేషనలైజేషన్‌ను అది మాసివ్ రీఫాక్టర్‌గా మారే వరకు ఆలస్యం చేస్తాయి. +సాంప్రదాయ i18n చొరబాటుగా ఉంటుంది. మీరు ప్రతి స్ట్రింగ్‌ను `t()` ఫంక్షన్‌లలో చుట్టి, అనువాద కీలను కనిపెడతారు (`home.hero.title.v2`), సమాంతర JSON ఫైల్‌లను నిర్వహిస్తారు మరియు మీ కాంపోనెంట్‌లు లోకలైజేషన్ బాయిలర్‌ప్లేట్‌తో ఉబ్బిపోవడం చూస్తారు. ఇది చాలా దుర్భరమైనది కాబట్టి టీమ్‌లు అంతర్జాతీయీకరణను భారీ రీఫాక్టర్‌గా మారే వరకు ఆలస్యం చేస్తాయి. Lingo.dev కంపైలర్ సంప్రదాయాన్ని తొలగిస్తుంది. సాధారణ ఆంగ్ల టెక్స్ట్‌తో React కాంపోనెంట్‌లను రాయండి. కంపైలర్ బిల్డ్ టైమ్‌లో అనువదించదగిన స్ట్రింగ్‌లను గుర్తించి, స్వయంచాలకంగా స్థానికీకరించిన వేరియంట్‌లను జనరేట్ చేస్తుంది. కీలు లేవు, JSON ఫైల్స్ లేవు, రాపర్ ఫంక్షన్‌లు లేవు - బహుళ భాషలలో పనిచేసే React కోడ్ మాత్రమే. @@ -439,10 +439,10 @@ export function LanguageSwitcher() { **ముఖ్య ఫీచర్లు:** -- జీరో రన్‌టైమ్ పెర్ఫార్మెన్స్ కాస్ట్ -- అనువాద కీలు లేదా JSON ఫైల్స్ లేవు +- జీరో రన్‌టైమ్ పెర్ఫార్మెన్స్ ఖర్చు +- అనువాద కీలు లేదా JSON ఫైల్‌లు లేవు - `t()` ఫంక్షన్‌లు లేదా `` రాపర్ కాంపోనెంట్‌లు లేవు -- JSXలో అనువదించదగిన టెక్స్ట్ యొక్క స్వయంచాలక గుర్తింపు +- JSXలో అనువదించదగిన టెక్స్ట్ యొక్క ఆటోమేటిక్ డిటెక్షన్ - TypeScript సపోర్ట్ - బహువచనాల కోసం ICU MessageFormat - `data-lingo-override` అట్రిబ్యూట్ ద్వారా మాన్యువల్ ఓవర్‌రైడ్‌లు @@ -452,7 +452,7 @@ export function LanguageSwitcher() { - `pseudotranslator`: ప్లేస్‌హోల్డర్ అనువాదాలతో డెవలప్‌మెంట్ మోడ్ (API ఖర్చులు లేవు) - `real`: LLMలను ఉపయోగించి వాస్తవ అనువాదాలను జనరేట్ చేయండి -- `cache-only`: CIలో ముందుగా జనరేట్ చేసిన అనువాదాలను ఉపయోగించి ప్రొడక్షన్ మోడ్ (API కాల్స్ లేవు) +- `cache-only`: CIనుండి ముందుగా జనరేట్ చేసిన అనువాదాలను ఉపయోగించి ప్రొడక్షన్ మోడ్ (API కాల్స్ లేవు) **సపోర్ట్ చేయబడిన ఫ్రేమ్‌వర్క్‌లు:** @@ -469,10 +469,10 @@ 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) - - ప్రతి PR కి చేంజ్‌సెట్ అవసరం: `pnpm new` (లేదా రిలీజ్ కాని మార్పులకు `pnpm new:empty`) - - సబ్మిట్ చేసే ముందు టెస్ట్‌లు పాస్ అవుతున్నాయని నిర్ధారించుకోండి + - ప్రతి PRకు చేంజ్‌సెట్ అవసరం: `pnpm new` (లేదా నాన్-రిలీజ్ మార్పుల కోసం `pnpm new:empty`) + - సబ్మిట్ చేయడానికి ముందు టెస్ట్‌లు పాస్ అవుతున్నాయని నిర్ధారించుకోండి 3. **డెవలప్‌మెంట్:** ఇది pnpm + turborepo మోనోరెపో - డిపెండెన్సీలను ఇన్‌స్టాల్ చేయండి: `pnpm install` - టెస్ట్‌లను రన్ చేయండి: `pnpm test` @@ -498,12 +498,12 @@ Lingo.dev మీకు ఉపయోగకరంగా ఉంటే, మాకు **కొత్త భాషను జోడించడం:** -1. [`i18n.json`](./i18n.json) కి [BCP-47 ఫార్మాట్](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale) ఉపయోగించి లొకేల్ కోడ్‌ను జోడించండి +1. [BCP-47 ఫార్మాట్](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale)ను ఉపయోగించి [`i18n.json`](./i18n.json)కు లొకేల్ కోడ్‌ను జోడించండి 2. పుల్ రిక్వెస్ట్‌ను సబ్మిట్ చేయండి **BCP-47 లొకేల్ ఫార్మాట్:** `language[-Script][-REGION]` -- `language`: ISO 639-1/2/3 (చిన్న అక్షరాలు): `en`, `zh`, `bho` +- `language`: ISO 639-1/2/3 (లోయర్‌కేస్): `en`, `zh`, `bho` - `Script`: ISO 15924 (టైటిల్ కేస్): `Hans`, `Hant`, `Latn` -- `REGION`: ISO 3166-1 alpha-2 (పెద్ద అక్షరాలు): `US`, `CN`, `IN` +- `REGION`: ISO 3166-1 alpha-2 (అప్పర్‌కేస్): `US`, `CN`, `IN` - ఉదాహరణలు: `en`, `pt-BR`, `zh-Hans`, `sr-Cyrl-RS` diff --git a/readme/tr.md b/readme/tr.md index c90a3f5ff..e823c2fcf 100644 --- a/readme/tr.md +++ b/readme/tr.md @@ -71,7 +71,7 @@ ## Hızlı başlangıç -| Araç | Kullanım alanı | Hızlı komut | +| Araç | Kullanım Alanı | Hızlı Komut | | ---------------------------------- | ---------------------------------------------------------- | ---------------------------------- | | [**MCP**](#lingodev-mcp) | React uygulamaları için AI destekli i18n kurulumu | Prompt: `Set up i18n` | | [**CLI**](#lingodev-cli) | JSON, YAML, markdown, CSV, PO dosyalarını çevir | `npx lingo.dev@latest run` | @@ -110,10 +110,10 @@ Set up i18n with the following locales: en, es, and pt-BR. The default locale is Asistan şunları yapacaktır: -1. Yerel ayar tabanlı yönlendirmeyi yapılandırır (örn. `/en`, `/es`, `/pt-BR`) -2. Dil değiştirme bileşenlerini kurar -3. Otomatik yerel ayar tespitini uygular -4. Gerekli yapılandırma dosyalarını oluşturur +1. Locale tabanlı yönlendirmeyi yapılandırın (örn. `/en`, `/es`, `/pt-BR`) +2. Dil değiştirme bileşenlerini kurun +3. Otomatik locale algılamasını uygulayın +4. Gerekli yapılandırma dosyalarını oluşturun **Not:** AI destekli kod üretimi deterministik değildir. Commit etmeden önce oluşturulan kodu gözden geçirin. @@ -146,7 +146,7 @@ npx lingo.dev@latest run **Yapılandırma:** -`init` komutu bir `i18n.json` dosyası oluşturur. Yerel ayarları ve bucket'ları yapılandırın: +`init` komutu bir `i18n.json` dosyası oluşturur. Locale'leri ve bucket'ları yapılandırın: ```json { @@ -164,7 +164,7 @@ npx lingo.dev@latest run } ``` -`provider` alanı isteğe bağlıdır (varsayılan olarak Lingo.dev Engine kullanılır). Özel LLM sağlayıcıları için: +`provider` alanı isteğe bağlıdır (varsayılan olarak Lingo.dev Engine). Özel LLM sağlayıcıları için: ```json { @@ -204,7 +204,7 @@ Lingo.dev CI/CD çevirileri otomatik hale getirir. Her push çeviriyi tetikler. **GitHub Actions kurulumu:** -`.github/workflows/translate.yml` dosyasını oluşturun: +`.github/workflows/translate.yml` oluşturun: ```yaml name: Translate @@ -227,7 +227,7 @@ jobs: **Kurulum gereksinimleri:** 1. Repository secret'larına `LINGODOTDEV_API_KEY` ekleyin (Settings > Secrets and variables > Actions) -2. PR workflow'ları için: Settings > Actions > General bölümünden "Allow GitHub Actions to create and approve pull requests" seçeneğini etkinleştirin +2. PR workflow'ları için: Settings > Actions > General'da "Allow GitHub Actions to create and approve pull requests" seçeneğini etkinleştirin **Workflow seçenekleri:** @@ -252,7 +252,7 @@ env: **Kullanılabilir girdiler:** -| Girdi | Varsayılan | Açıklama | +| Input | Varsayılan | Açıklama | | -------------------- | ---------------------------------------------- | --------------------------------- | | `api-key` | (gerekli) | Lingo.dev API anahtarı | | `pull-request` | `false` | Doğrudan commit yerine PR oluştur | @@ -335,7 +335,7 @@ const locale = await lingoDotDev.recognizeLocale("Bonjour le monde"); ### Lingo.dev Compiler -Geleneksel i18n müdahaleci bir yaklaşımdır. Her string'i `t()` fonksiyonlarına sararsınız, çeviri anahtarları icat edersiniz (`home.hero.title.v2`), paralel JSON dosyaları yönetirsiniz ve bileşenlerinizin yerelleştirme boilerplate'i ile şiştiğini izlersiniz. O kadar sıkıcıdır ki ekipler uluslararasılaştırmayı büyük bir refactor haline gelene kadar erteler. +Geleneksel i18n müdahaleci bir yaklaşımdır. Her metni `t()` fonksiyonlarına sararsınız, çeviri anahtarları icat edersiniz (`home.hero.title.v2`), paralel JSON dosyaları yönetirsiniz ve bileşenlerinizin yerelleştirme standart kodlarıyla şiştiğini izlersiniz. O kadar sıkıcıdır ki ekipler uluslararasılaştırmayı büyük bir yeniden yapılandırma haline gelene kadar erteler. Lingo.dev Compiler tüm karmaşıklığı ortadan kaldırır. React bileşenlerini düz İngilizce metinle yazın. Derleyici, derleme zamanında çevrilebilir metinleri algılar ve yerelleştirilmiş varyantları otomatik olarak oluşturur. Anahtar yok, JSON dosyası yok, sarmalayıcı fonksiyon yok - sadece birden fazla dilde çalışan React kodu. @@ -439,9 +439,9 @@ export function LanguageSwitcher() { **Temel özellikler:** -- Sıfır runtime performans maliyeti -- Çeviri anahtarı veya JSON dosyası yok -- `t()` fonksiyonu veya `` sarmalayıcı bileşeni yok +- Sıfır çalışma zamanı performans maliyeti +- Çeviri anahtarları veya JSON dosyaları yok +- `t()` fonksiyonları veya `` sarmalayıcı bileşenleri yok - JSX'te çevrilebilir metnin otomatik algılanması - TypeScript desteği - Çoğullar için ICU MessageFormat @@ -470,13 +470,13 @@ Ek framework desteği planlanmaktadır. Katkılarınızı bekliyoruz. Lütfen şu yönergeleri izleyin: 1. **Sorunlar:** [Hata bildirin veya özellik isteyin](https://github.com/lingodotdev/lingo.dev/issues) -2. **Pull request'ler:** [Değişiklik gönderin](https://github.com/lingodotdev/lingo.dev/pulls) - - Her PR bir changeset gerektirir: `pnpm new` (veya yayınlanmayacak değişiklikler için `pnpm new:empty`) +2. **Pull Request'ler:** [Değişiklikleri gönderin](https://github.com/lingodotdev/lingo.dev/pulls) + - Her PR bir changeset gerektirir: `pnpm new` (veya sürüm dışı değişiklikler için `pnpm new:empty`) - Göndermeden önce testlerin geçtiğinden emin olun 3. **Geliştirme:** Bu bir pnpm + turborepo monorepo'sudur - Bağımlılıkları yükleyin: `pnpm install` - Testleri çalıştırın: `pnpm test` - - Build edin: `pnpm build` + - Derleyin: `pnpm build` **Destek:** [Discord topluluğu](https://lingo.dev/go/discord) @@ -498,12 +498,12 @@ Lingo.dev'i faydalı buluyorsanız, bize bir yıldız verin ve 10.000 yıldıza **Yeni bir dil eklemek için:** -1. [`i18n.json`](./i18n.json) dosyasına [BCP-47 formatında](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale) yerel ayar kodu ekleyin +1. [BCP-47 formatını](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale) kullanarak yerel ayar kodunu [`i18n.json`](./i18n.json) dosyasına ekleyin 2. Bir pull request gönderin **BCP-47 yerel ayar formatı:** `language[-Script][-REGION]` - `language`: ISO 639-1/2/3 (küçük harf): `en`, `zh`, `bho` -- `Script`: ISO 15924 (başlık harfi büyük): `Hans`, `Hant`, `Latn` +- `Script`: ISO 15924 (başlık harfi): `Hans`, `Hant`, `Latn` - `REGION`: ISO 3166-1 alpha-2 (büyük harf): `US`, `CN`, `IN` - Örnekler: `en`, `pt-BR`, `zh-Hans`, `sr-Cyrl-RS` diff --git a/readme/uk-UA.md b/readme/uk-UA.md index 881a50404..c8fcfa472 100644 --- a/readme/uk-UA.md +++ b/readme/uk-UA.md @@ -78,7 +78,7 @@ | [**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) | Переклад у runtime для динамічного контенту | `npm install lingo.dev` | -| [**Compiler**](#lingodev-compiler) | Локалізація React на етапі збірки без i18n-обгорток | плагін `withLingo()` | +| [**Compiler**](#lingodev-compiler) | Локалізація React під час збірки без i18n-обгорток | `withLingo()` плагін | --- @@ -111,10 +111,10 @@ Set up i18n with the following locales: en, es, and pt-BR. The default locale is Асистент: -1. Налаштує маршрутизацію на основі локалі (наприклад, `/en`, `/es`, `/pt-BR`) -2. Налаштує компоненти перемикання мови -3. Реалізує автоматичне визначення локалі -4. Згенерує необхідні конфігураційні файли +1. Налаштуйте маршрутизацію на основі локалі (наприклад, `/en`, `/es`, `/pt-BR`) +2. Налаштуйте компоненти перемикання мови +3. Реалізуйте автоматичне визначення локалі +4. Згенеруйте необхідні конфігураційні файли **Примітка:** генерація коду за допомогою AI є недетермінованою. Перевіряйте згенерований код перед комітом. @@ -141,13 +141,13 @@ npx lingo.dev@latest run **Як це працює:** 1. Витягує контент для перекладу з налаштованих файлів -2. Надсилає контент до провайдера LLM для перекладу +2. Надсилає контент до LLM-провайдера для перекладу 3. Записує перекладений контент назад у файлову систему 4. Створює файл `i18n.lock` для відстеження завершених перекладів (уникає надмірної обробки) **Конфігурація:** -Команда `init` генерує файл `i18n.json`. Налаштуйте локалі та групи: +Команда `init` генерує файл `i18n.json`. Налаштуйте локалі та бакети: ```json { @@ -165,7 +165,7 @@ npx lingo.dev@latest run } ``` -Поле `provider` є необов'язковим (за замовчуванням використовується Lingo.dev Engine). Для власних провайдерів LLM: +Поле `provider` є опціональним (за замовчуванням Lingo.dev Engine). Для власних LLM-провайдерів: ```json { @@ -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 **Опції робочого процесу:** @@ -253,7 +253,7 @@ env: **Доступні параметри:** -| Параметр | Значення за замовчуванням | Опис | +| Вхідний параметр | За замовчуванням | Опис | | -------------------- | ---------------------------------------------- | ---------------------------------- | | `api-key` | (обов'язковий) | API-ключ Lingo.dev | | `pull-request` | `false` | Створити PR замість прямого коміту | @@ -432,7 +432,7 @@ export function LanguageSwitcher() { } ``` -**Розробка:** `npm run dev` (використовує псевдоперекладач, без API-викликів) +**Розробка:** `npm run dev` (використовує псевдоперекладач, без викликів API) **Продакшн:** Встановіть `usePseudotranslator: false`, потім `next build` @@ -452,8 +452,8 @@ export function LanguageSwitcher() { **Режими збірки:** - `pseudotranslator`: режим розробки з перекладами-заповнювачами (без витрат на API) -- `real`: генерація справжніх перекладів за допомогою LLM -- `cache-only`: продакшн-режим із використанням попередньо згенерованих перекладів з CI (без API-викликів) +- `real`: генерація реальних перекладів за допомогою LLM +- `cache-only`: продакшн-режим з використанням попередньо згенерованих перекладів з CI (без викликів API) **Підтримувані фреймворки:** @@ -470,14 +470,14 @@ export function LanguageSwitcher() { Ми вітаємо ваш внесок. Будь ласка, дотримуйтесь цих рекомендацій: -1. **Проблеми:** [Повідомте про помилки або запропонуйте функції](https://github.com/lingodotdev/lingo.dev/issues) -2. **Pull Request'и:** [Надішліть зміни](https://github.com/lingodotdev/lingo.dev/pulls) - - Кожен PR потребує changeset: `pnpm new` (або `pnpm new:empty` для змін без релізу) +1. **Issues:** [повідомляйте про баги або запитуйте функції](https://github.com/lingodotdev/lingo.dev/issues) +2. **Pull Requests:** [надсилайте зміни](https://github.com/lingodotdev/lingo.dev/pulls) + - Кожен PR вимагає changeset: `pnpm new` (або `pnpm new:empty` для змін без релізу) - Переконайтеся, що тести проходять перед надсиланням -3. **Розробка:** Це pnpm + turborepo монорепозиторій +3. **Розробка:** це монорепозиторій pnpm + turborepo - Встановіть залежності: `pnpm install` - Запустіть тести: `pnpm test` - - Зберіть проєкт: `pnpm build` + - Зберіть: `pnpm build` **Підтримка:** [Спільнота Discord](https://lingo.dev/go/discord) @@ -499,12 +499,12 @@ export function LanguageSwitcher() { **Додавання нової мови:** -1. Додайте код локалі до [`i18n.json`](./i18n.json), використовуючи [формат BCP-47](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale) +1. Додайте код локалі до [`i18n.json`](./i18n.json) у [форматі BCP-47](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale) 2. Надішліть pull request **Формат локалі BCP-47:** `language[-Script][-REGION]` - `language`: ISO 639-1/2/3 (нижній регістр): `en`, `zh`, `bho` -- `Script`: ISO 15924 (регістр заголовка): `Hans`, `Hant`, `Latn` +- `Script`: ISO 15924 (з великої літери): `Hans`, `Hant`, `Latn` - `REGION`: ISO 3166-1 alpha-2 (верхній регістр): `US`, `CN`, `IN` -- Приклади: `en`, `pt-BR`, `zh-Hans`, {/_ INLINE_CODE_PLACEHOLDER_6e553bb40a655db7be211ded60744c98 _/ +- Приклади: `en`, `pt-BR`, `zh-Hans`, `sr-Cyrl-RS` diff --git a/readme/ur.md b/readme/ur.md index ff431af24..a674d9d87 100644 --- a/readme/ur.md +++ b/readme/ur.md @@ -71,9 +71,9 @@ ## فوری آغاز -| ٹول | استعمال کا معاملہ | فوری کمانڈ | +| ٹول | استعمال کی صورت | فوری کمانڈ | | ---------------------------------- | ----------------------------------------------- | ---------------------------------- | -| [**MCP**](#lingodev-mcp) | React ایپس کے لیے AI کی مدد سے i18n سیٹ اپ | Prompt: `Set up i18n` | +| [**MCP**](#lingodev-mcp) | React ایپس کے لیے AI کی مدد سے i18n سیٹ اپ | پرامپٹ: `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` | @@ -110,10 +110,10 @@ Set up i18n with the following locales: en, es, and pt-BR. The default locale is Assistant یہ کام کرے گا: -1. Locale-based routing configure کرے گا (مثلاً `/en`، `/es`، `/pt-BR`) -2. Language switching components سیٹ اپ کرے گا -3. Automatic locale detection implement کرے گا -4. ضروری configuration files generate کرے گا +1. لوکیل پر مبنی روٹنگ کو کنفیگر کریں (مثلاً، `/en`، `/es`، `/pt-BR`) +2. زبان سوئچنگ کمپوننٹس سیٹ اپ کریں +3. خودکار لوکیل کی شناخت کو نافذ کریں +4. ضروری کنفیگریشن فائلیں تیار کریں **نوٹ:** AI-assisted code generation non-deterministic ہے۔ commit کرنے سے پہلے generated code کا جائزہ لیں۔ @@ -140,13 +140,13 @@ npx lingo.dev@latest run **یہ کیسے کام کرتا ہے:** 1. کنفیگر شدہ فائلوں سے قابل ترجمہ مواد نکالتا ہے -2. ترجمے کے لیے مواد LLM فراہم کنندہ کو بھیجتا ہے -3. ترجمہ شدہ مواد واپس filesystem میں لکھتا ہے +2. ترجمے کے لیے مواد کو LLM فراہم کنندہ کو بھیجتا ہے +3. ترجمہ شدہ مواد کو فائل سسٹم میں واپس لکھتا ہے 4. مکمل شدہ تراجم کو ٹریک کرنے کے لیے `i18n.lock` فائل بناتا ہے (غیر ضروری پروسیسنگ سے بچتا ہے) **کنفیگریشن:** -`init` کمانڈ ایک `i18n.json` فائل بناتی ہے۔ locales اور buckets کنفیگر کریں: +`init` کمانڈ ایک `i18n.json` فائل تیار کرتی ہے۔ لوکیلز اور بکٹس کو کنفیگر کریں: ```json { @@ -164,7 +164,7 @@ npx lingo.dev@latest run } ``` -`provider` فیلڈ اختیاری ہے (ڈیفالٹ Lingo.dev Engine ہے)۔ حسب ضرورت LLM فراہم کنندگان کے لیے: +`provider` فیلڈ اختیاری ہے (ڈیفالٹ Lingo.dev Engine)۔ حسب ضرورت LLM فراہم کنندگان کے لیے: ```json { @@ -226,14 +226,18 @@ jobs: **سیٹ اپ کی ضروریات:** -1. repository secrets میں `LINGODOTDEV_API_KEY` شامل کریں (Settings > Secrets and variables > Actions) -2. PR workflows کے لیے: Settings > Actions > General میں "Allow GitHub Actions to create and approve pull requests" فعال کریں +1. ریپوزٹری سیکرٹس میں `LINGODOTDEV_API_KEY` شامل کریں (Settings > Secrets and variables > Actions) +2. PR workflows کے لیے: Settings > Actions > General میں "Allow GitHub Actions to create and approve pull requests" کو فعال کریں **Workflow کے اختیارات:** تراجم براہ راست commit کریں: -GitHub Actions workflow میں شامل کریں: +```yaml +uses: lingodotdev/lingo.dev@main +with: + api-key: ${{ secrets.LINGODOTDEV_API_KEY }} +``` تراجم کے ساتھ pull requests بنائیں: @@ -248,14 +252,14 @@ env: **دستیاب inputs:** -| Input | Default | Description | -| -------------------- | ---------------------------------------------- | ---------------------------------------- | -| `api-key` | (ضروری) | Lingo.dev API key | -| `pull-request` | `false` | براہ راست commit کرنے کی بجائے PR بنائیں | -| `commit-message` | `"feat: update translations via @LingoDotDev"` | حسب ضرورت commit message | -| `pull-request-title` | `"feat: update translations via @LingoDotDev"` | حسب ضرورت PR title | -| `working-directory` | `"."` | جس ڈائریکٹری میں چلانا ہے | -| `parallel` | `false` | متوازی پروسیسنگ فعال کریں | +| ان پٹ | ڈیفالٹ | تفصیل | +| -------------------- | ---------------------------------------------- | ------------------------------------- | +| `api-key` | (ضروری) | Lingo.dev API key | +| `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) @@ -331,7 +335,7 @@ const locale = await lingoDotDev.recognizeLocale("Bonjour le monde"); ### Lingo.dev Compiler -روایتی i18n مداخلت آمیز ہے۔ آپ ہر string کو `t()` functions میں wrap کرتے ہیں، ترجمہ keys ایجاد کرتے ہیں (`home.hero.title.v2`)، متوازی JSON فائلیں برقرار رکھتے ہیں، اور اپنے components کو localization boilerplate سے بھرا ہوا دیکھتے ہیں۔ یہ اتنا تکلیف دہ ہے کہ ٹیمیں internationalization کو اس وقت تک ملتوی کرتی ہیں جب تک یہ ایک بڑا refactor نہ بن جائے۔ +روایتی i18n مداخلت آمیز ہے۔ آپ ہر string کو `t()` functions میں wrap کرتے ہیں، translation keys ایجاد کرتے ہیں (`home.hero.title.v2`)، متوازی JSON files maintain کرتے ہیں، اور اپنے components کو localization boilerplate سے بھرا ہوا دیکھتے ہیں۔ یہ اتنا تکلیف دہ ہے کہ teams internationalization کو اس وقت تک ملتوی کر دیتی ہیں جب تک یہ ایک بڑا refactor نہ بن جائے۔ Lingo.dev Compiler رسمی کاموں کو ختم کرتا ہے۔ سادہ انگریزی متن کے ساتھ React components لکھیں۔ Compiler build time پر قابل ترجمہ strings کا پتہ لگاتا ہے اور خودکار طور پر مقامی variants تیار کرتا ہے۔ کوئی keys نہیں، کوئی JSON فائلیں نہیں، کوئی wrapper functions نہیں - صرف React code جو متعدد زبانوں میں کام کرتا ہے۔ @@ -429,26 +433,26 @@ export function LanguageSwitcher() { **Development:** `npm run dev` (pseudotranslator استعمال کرتا ہے، کوئی API calls نہیں) -**Production:** `usePseudotranslator: false` سیٹ کریں، پھر `next build` +**Production:** `usePseudotranslator: false` set کریں، پھر `next build` `.lingo/` directory کو version control میں commit کریں۔ **اہم خصوصیات:** - صفر runtime performance cost -- کوئی translation keys یا JSON فائلیں نہیں +- کوئی translation keys یا JSON files نہیں - کوئی `t()` functions یا `` wrapper components نہیں -- JSX میں قابل ترجمہ متن کی خودکار شناخت -- TypeScript سپورٹ +- JSX میں translatable text کی خودکار شناخت +- TypeScript support - plurals کے لیے ICU MessageFormat -- `data-lingo-override` attribute کے ذریعے دستی overrides +- `data-lingo-override` attribute کے ذریعے manual overrides - Built-in translation editor widget **Build modes:** - `pseudotranslator`: placeholder translations کے ساتھ development mode (کوئی API costs نہیں) -- `real`: LLMs استعمال کرتے ہوئے حقیقی تراجم تیار کریں -- `cache-only`: CI سے پہلے سے تیار شدہ تراجم استعمال کرتے ہوئے production mode (کوئی API calls نہیں) +- `real`: LLMs استعمال کرتے ہوئے actual translations generate کریں +- `cache-only`: CI سے pre-generated translations استعمال کرتے ہوئے production mode (کوئی API calls نہیں) **معاون frameworks:** @@ -465,14 +469,14 @@ export function LanguageSwitcher() { تعاون کی خوش آمدید۔ براہ کرم ان رہنما خطوط پر عمل کریں: -1. **مسائل:** [bugs کی اطلاع دیں یا features کی درخواست کریں](https://github.com/lingodotdev/lingo.dev/issues) -2. **Pull Requests:** [تبدیلیاں جمع کروائیں](https://github.com/lingodotdev/lingo.dev/pulls) - - ہر PR کے لیے changeset ضروری ہے: `pnpm new` (یا `pnpm new:empty` non-release تبدیلیوں کے لیے) - - جمع کروانے سے پہلے یقینی بنائیں کہ tests پاس ہو جائیں -3. **Development:** یہ pnpm + turborepo monorepo ہے - - dependencies انسٹال کریں: `pnpm install` - - tests چلائیں: `pnpm test` - - Build کریں: `pnpm build` +1. **Issues:** [bugs report کریں یا features request کریں](https://github.com/lingodotdev/lingo.dev/issues) +2. **Pull Requests:** [تبدیلیاں submit کریں](https://github.com/lingodotdev/lingo.dev/pulls) + - ہر PR کو changeset کی ضرورت ہے: `pnpm new` (یا non-release changes کے لیے `pnpm new:empty`) + - Submit کرنے سے پہلے یقینی بنائیں کہ tests pass ہوں +3. **Development:** یہ ایک pnpm + turborepo monorepo ہے + - Dependencies install کریں: `pnpm install` + - Tests run کریں: `pnpm test` + - Build: `pnpm build` **سپورٹ:** [Discord community](https://lingo.dev/go/discord) @@ -494,12 +498,12 @@ export function LanguageSwitcher() { **نئی زبان شامل کرنا:** -1. [`i18n.json`](./i18n.json) میں [BCP-47 format](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale) استعمال کرتے ہوئے locale code شامل کریں -2. pull request جمع کروائیں +1. [BCP-47 format](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale) استعمال کرتے ہوئے [`i18n.json`](./i18n.json) میں locale code شامل کریں +2. Pull request submit کریں **BCP-47 locale format:** `language[-Script][-REGION]` -- `language`: ISO 639-1/2/3 (lowercase): `en`, `zh`, `bho` -- `Script`: ISO 15924 (title case): `Hans`, `Hant`, `Latn` -- `REGION`: ISO 3166-1 alpha-2 (uppercase): `US`, `CN`, `IN` -- مثالیں: `en`, `pt-BR`, `zh-Hans`, `sr-Cyrl-RS` +- `language`: ISO 639-1/2/3 (lowercase): `en`، `zh`، `bho` +- `Script`: ISO 15924 (title case): `Hans`، `Hant`، `Latn` +- `REGION`: ISO 3166-1 alpha-2 (uppercase): `US`، `CN`، `IN` +- مثالیں: `en`، `pt-BR`، `zh-Hans`، `sr-Cyrl-RS` diff --git a/readme/zh-Hans.md b/readme/zh-Hans.md index b058a0c2a..53003cb09 100644 --- a/readme/zh-Hans.md +++ b/readme/zh-Hans.md @@ -69,13 +69,13 @@ ## 快速开始 -| 工具 | 使用场景 | 快速命令 | +| 工具 | 用例 | 快捷命令 | | ---------------------------------- | --------------------------------------- | ---------------------------------- | -| [**MCP**](#lingodev-mcp) | React 应用的 AI 辅助 i18n 配置 | Prompt: `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` | +| [**MCP**](#lingodev-mcp) | React 应用的 AI 辅助 i18n 设置 | 提示:`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) | 无需 i18n 包装器的 React 构建时本地化 | `withLingo()` plugin | +| [**Compiler**](#lingodev-compiler) | 无需 i18n 包裹器的 React 构建时本地化 | `withLingo()` 插件 | --- @@ -108,10 +108,10 @@ Set up i18n with the following locales: en, es, and pt-BR. The default locale is 助手将会: -1. 配置基于语言的路由(如 `/en`、`/es`、`/pt-BR`) +1. 配置基于语言环境的路由(如:`/en`、`/es`、`/pt-BR`) 2. 设置语言切换组件 -3. 实现自动语言检测 -4. 生成所需配置文件 +3. 实现自动语言环境检测 +4. 生成必要的配置文件 **注意:** AI 辅助代码生成具有不确定性。请在提交前仔细审核生成的代码。 @@ -137,9 +137,9 @@ npx lingo.dev@latest run **工作原理:** -1. 从已配置的文件中提取可翻译内容 -2. 将内容发送到 LLM 提供商进行翻译 -3. 将翻译后的内容写回文件系统 +1. 从已配置文件中提取可翻译内容 +2. 将内容发送到 LLM 提供方进行翻译 +3. 将翻译内容写回文件系统 4. 创建 `i18n.lock` 文件以跟踪已完成的翻译(避免重复处理) **配置:** @@ -162,7 +162,7 @@ npx lingo.dev@latest run } ``` -`provider` 字段为可选项(默认为 Lingo.dev Engine)。如需自定义 LLM 提供商: +`provider` 字段为可选项(默认为 Lingo.dev Engine)。如需自定义 LLM 提供方: ```json { @@ -333,7 +333,7 @@ const locale = await lingoDotDev.recognizeLocale("Bonjour le monde"); ### Lingo.dev Compiler -传统 i18n 方式非常繁琐。你需要用 `t()` 函数包裹每个字符串,创建翻译 key(`home.hero.title.v2`),维护多份 JSON 文件,还要忍受组件被本地化样板代码拖慢。如此繁琐,团队往往拖延国际化,直到变成一次大规模重构。 +传统的 i18n 方式具有侵入性。你需要将每个字符串包裹在 `t()` 函数中,手动创建翻译键(`home.hero.title.v2`),维护多份 JSON 文件,并且你的组件会因为本地化样板代码而变得臃肿。这个过程非常繁琐,以至于团队往往会拖延国际化,直到最后变成一次大规模重构。 **配置(Next.js):** @@ -355,7 +355,9 @@ export default async function (): Promise { } ``` -**配置(Vite):** +```bash +pnpm install @lingo.dev/compiler +``` ```ts // vite.config.ts @@ -375,7 +377,16 @@ export default defineConfig({ }); ``` -**Provider 设置:** +```bash +# Recommended: Sign up at lingo.dev and login +npx lingo.dev@latest login + +# Alternative: Add API key to .env +LINGODOTDEV_API_KEY=your_key_here + +# Or use direct LLM providers (Groq, OpenAI, Anthropic, Google) +GROQ_API_KEY=your_key +``` ```tsx // app/layout.tsx (Next.js) @@ -392,7 +403,23 @@ export default function RootLayout({ children }) { } ``` -**语言切换器:** +```ts +// next.config.ts +import type { NextConfig } from "next"; +import { withLingo } from "@lingo.dev/compiler/next"; + +const nextConfig: NextConfig = {}; + +export default async function (): Promise { + return await withLingo(nextConfig, { + sourceRoot: "./app", + sourceLocale: "en", + targetLocales: ["es", "fr", "de"], + models: "lingo.dev", + dev: { usePseudotranslator: true }, + }); +} +``` ```tsx import { useLocale, setLocale } from "@lingo.dev/compiler/react"; @@ -408,40 +435,81 @@ export function LanguageSwitcher() { } ``` -**开发环境:** `npm run dev`(使用伪翻译器,无需 API 调用) +```ts +// vite.config.ts +import { lingoCompilerPlugin } from "@lingo.dev/compiler/vite"; + +export default defineConfig({ + plugins: [ + lingoCompilerPlugin({ + sourceRoot: "src", + sourceLocale: "en", + targetLocales: ["es", "fr", "de"], + models: "lingo.dev", + dev: { usePseudotranslator: true }, + }), + react(), + ], +}); +``` **生产环境:** 设置 `usePseudotranslator: false`,然后 `next build` -将 `.lingo/` 目录提交到版本控制。 +```tsx +// app/layout.tsx (Next.js) +import { LingoProvider } from "@lingo.dev/compiler/react"; + +export default function RootLayout({ children }) { + return ( + + + {children} + + + ); +} +``` **主要特性:** +```tsx +import { useLocale, setLocale } from "@lingo.dev/compiler/react"; + +export function LanguageSwitcher() { + const locale = useLocale(); + return ( + + ); +} +``` + +**开发环境:** `npm run dev`(使用伪翻译,无 API 调用) + +**生产环境:** 设置 `usePseudotranslator: false`,然后 `next build` + +将 `.lingo/` 目录提交到版本控制。 + +- Next.js(App Router,支持 React Server Components) +- Vite + React(SPA 和 SSR) + - 零运行时性能损耗 -- 无需翻译 key 或 JSON 文件 -- 无 `t()` 函数或 `` 包裹组件 +- 无需翻译键或 JSON 文件 +- 无需 `t()` 函数或 `` 包裹组件 - 自动检测 JSX 中可翻译文本 - 支持 TypeScript - 支持 ICU MessageFormat 复数 - 通过 `data-lingo-override` 属性手动覆盖 - 内置翻译编辑器小部件 -**构建模式:** +[阅读文档 →](https://lingo.dev/en/compiler) - `pseudotranslator`:开发模式,使用占位翻译(无 API 成本) - `real`:使用 LLM 生成实际翻译 - `cache-only`:生产模式,使用 CI 预生成的翻译(无 API 调用) -**支持的框架:** - -- Next.js(App Router,支持 React Server Components) -- Vite + React(SPA 和 SSR) - -计划支持更多框架。 - -[阅读文档 →](https://lingo.dev/en/compiler) - ---- - ## 参与贡献 欢迎贡献。请遵循以下指南: @@ -463,7 +531,14 @@ export function LanguageSwitcher() { [ -![Star 历史图表](https://api.star-history.com/svg?repos=lingodotdev/lingo.dev&type=Date) +1. **问题反馈:** [报告 bug 或请求功能](https://github.com/lingodotdev/lingo.dev/issues) +2. **拉取请求:** [提交更改](https://github.com/lingodotdev/lingo.dev/pulls) + - 每个 PR 需要一个 changeset:`pnpm new`(或非发布更改用 `pnpm new:empty`) + - 提交前请确保测试通过 +3. **开发环境:** 本项目为 pnpm + turborepo 单体仓库 + - 安装依赖:`pnpm install` + - 运行测试:`pnpm test` + - 构建:`pnpm build` ](https://www.star-history.com/#lingodotdev/lingo.dev&Date) @@ -489,8 +564,8 @@ export function LanguageSwitcher() { **添加新语言:** -1. 使用 [BCP-47 格式](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale)将语言代码添加到 [`i18n.json`](./i18n.json) -2. 提交 pull request +1. 在 [`i18n.json`](./i18n.json) 中添加语言代码,格式为 [BCP-47](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale) +2. 提交拉取请求 **BCP-47 语言代码格式:** `language[-Script][-REGION]`