diff --git a/i18n.lock b/i18n.lock
index 008b7cc5e..7eab8c2e8 100644
--- a/i18n.lock
+++ b/i18n.lock
@@ -1,116 +1,50 @@
version: 1
checksums:
29ba5363b2b0f1cc53dd4a667d52f86e:
- content/0: b896c53685482156e740ce08d88ba8d2
- content/1: 1e046d4dd54af989112f43dc1e6ae9c6
+ content/0: bd24fa10e2af7659360cf0a39f8865bd
+ content/1: cd96a4b01077d23b6c9b77517175e239
content/2: 2acf1e217477dafe17423bcbdd123711
- content/3: 9987be7cffb2f6188d54ea906c0a9485
+ content/3: 7fe22ab520ac8a154a77c3b24efa610e
content/4: fdb5d914fd53a8502b906bd89fe6f6d1
content/5: 51adf33450cab2ef392e93147386647c
content/6: 56ea06288e338a3c329d80a0f845b4a0
- content/7: ac632ee57422256987ec69fa1fa55571
- content/8: 51adf33450cab2ef392e93147386647c
- content/9: 9c9e94642807e3728a1791e6cfd7516b
- content/10: b0dd1b2af0249cadc8147fcd2824162d
- content/11: 54a79f931699d3ca31ca6a09318eed64
- content/12: 5b384876c724cf927b56649179c4e808
- content/13: 90afdec0d22684a09430fa503dbc82bf
- content/14: 0b8b6bb14eeae9d2ea344cabfefaa543
- content/15: e6b92356986f64601ded73a3a9af1760
- content/16: c925da800b56879b8b83d151a263f7bb
- content/17: 385018fc789da284a0c96960fe3f6ec4
- content/18: 2f6014a509bf52e9a0db39569885dfd5
- content/19: 97f1f7f04ad2be288b05caacb61f66c3
- content/20: 9934e6aeaf9c4b8a33e70cc0601679a9
- content/21: 7d2a6af3866f9c4beba6a53f207a599b
- content/22: ca7c2dd535aa43aa1804fdb47c26cf42
- content/23: 51adf33450cab2ef392e93147386647c
- content/24: 8462a747b18279082fe601bc44c41b96
- content/25: 9efc8f824620922048a0cbd5463e6baf
- content/26: ac19d92f18727a2abce5e8b280412f72
- content/27: a9dae9fb033168e0cc0128b42c133897
- content/28: cab963eba977bb2538989ce8a02c4e50
- content/29: a3eef7ecff263ece91113908c007b486
- content/30: 904b08ea9e505e43a60a01563ffc74a9
- content/31: 520419d855f9069c9a48f0c590d2c60b
- content/32: d260e7ce3242f424076b40c1ad3e1f65
- content/33: 69db4bb5d135eb2173ff00a3ad5fe4fc
- content/34: 36593fbb8a8679de7088014740b04770
- content/35: edc9976e14549f7b4f33bf15cd12b208
- content/36: eb9ad4a218b52cd59a4d23e889627a62
- content/37: 920e5ca759926d926da155e9656dcd02
- content/38: c9c30d1a6b315c734b07060cd402b1fa
- content/39: 51adf33450cab2ef392e93147386647c
- content/40: 6aa11e4bc848e9e1a7da310d66231af7
- content/41: dc1cadb5a2826d6fd9237bb344741c72
- content/42: 85d4891021fd0f7426642998d158952e
- content/43: 48e65dd974a85d67d43e5b3da6a78ff8
- content/44: b7e51ae9cce80e0be35533cf8ccce5a7
- content/45: 590b699bc7b9f756129e6f5c2b189c9e
- content/46: ed02fd2d93a74e9d3c692ac1620990fe
- content/47: a0364c9c16e27ff63e92db74f27bf8be
- content/48: 05960209692c8fc636f7da40163fac04
- content/49: 15617f8218be7bf0c656c608ed6541fc
- content/50: a106f8db58f6d2e59173e9c68affa713
- content/51: b9830587df82e6a5a870afa08f30544c
- content/52: 755163c96e23f2783dcba2e032349782
- content/53: 1837a73959f9d011a5d1b21de26f815e
- content/54: 57c98b2f8f235598ae294f1d09eb1274
- content/55: f485581183a6a7b40851438e5b2a1f1b
- content/56: 68c9888b4baef08387b1a21a7e44e6cd
- content/57: 549f415f93ce5b29bfb16cf5fe0bf785
- content/58: 51adf33450cab2ef392e93147386647c
- content/59: 3f5c50b11a42c261f57641175fc69222
- content/60: 2ff59376b60be9d37dd4845afb951e94
- content/61: f2c27e1ada8ed0823ad58ad83eee76b1
- content/62: 155571e96a847fa90449522f2b77a54b
- content/63: 863046676d0454d212c40ddf7bb700e4
- content/64: c925da800b56879b8b83d151a263f7bb
- content/65: e16c6b546c5e32ee71ec11b54e456216
- content/66: 36c89a48af78d0c2a439185e74c170ea
- content/67: d1ef1d51d33535073230250d9e8dfee8
- content/68: bd52587c186fb2501e9c47a7fb0b2189
- content/69: 51adf33450cab2ef392e93147386647c
- content/70: e961a3814821e9529a4d8e08cf496f17
- content/71: d8bec837d112c3cd1c53438353b09ed8
- content/72: 86788f54446ee8745226bdddf4055cb9
- content/73: 155571e96a847fa90449522f2b77a54b
- content/74: def921ed25d6ff8216542490a5fbc1a0
- content/75: 092fde845f398b5322bb9b3e69a07ce6
- content/76: d14a2bf38e78a012e159a7915a612a15
- content/77: 1d76d5f8d23c18ea8789cac55c440bcb
- content/78: 4a2f9c451c8e957a54c2cb818b8cf34a
- content/79: 79dc425a930dabcbc62c4af289f2e6d5
- content/80: 3280b3907d020b3a691d740832ae70e7
- content/81: be664aea2917020efb16c4946593f119
- content/82: 2633e220ade7f46cb6d4c9273fd001d5
- content/83: 0c5c9be2b269111bd0c388ee7a3184cd
- content/84: dd0c693003eade2e536aff82f043d57a
- content/85: ab82386736186c1e02042d3b0eff3d84
- content/86: e55631402680e7be376aca390cdbd207
- content/87: 4a14b613ffd8aec8fe21af632429259b
- content/88: 7c42527fc9be269d599e31379c49a1fe
- content/89: f2630e5a88e09a612d4d8413c2d02745
- content/90: bc32754a3325936c0e49c1bfbd710eac
- content/91: 26caa05ddbd48ee00bee8fe553321815
- content/92: 0b8b6bb14eeae9d2ea344cabfefaa543
- content/93: 2b8ba27330ad5af9422b0de27bc01e00
- content/94: 3b04113f7cf1b64fe9a357a247925d34
- content/95: 59e04b5c97c9c7fccdb6f284f3be9981
- content/96: 51adf33450cab2ef392e93147386647c
- content/97: 72b9fd0ce0e4bfc98dfd36fb35238fab
- content/98: 982245493d09b3db1ef60824afa1bbf8
- content/99: 0649cda26da4bb9ce185b9e8dd6ee41e
- content/100: c234c213e540ee3bcffad017c9c9cb75
- content/101: dcd5bc676b9b4956e66fe1045f86a5a0
- content/102: fa2896ac28faaddc29540dba0f2ea7cf
- content/103: c7315dc914f85a8e7be1553e0458fdda
- content/104: a15715eea8694ee737338c021ea79787
- content/105: 3194966101f0d8ea12b02a4dcaa34d0e
- content/106: 38038c4d1efda89e5c1f9d8640c67aef
- content/107: c708ae80a2e8b9752789a68a9bee176d
- content/108: 11f28ceca8ebac9f2469cb627a1a7937
- content/109: acb15cd882a954ec87b446478a0fc54b
- content/110: 96c485d76c0e7f680d657f4e14beab7a
- content/111: ea8aaa0be5ef7931c7f7e671b51a6cc1
- content/112: 526a7243df6a8a7adaac235aa7271601
+ content/7: 8e05ef21751b3f3b7b211fb9545a7f8d
+ content/8: 174acfccbcf521ad81019a2cab8c1e93
+ content/9: 82c1fde30db2706a19ab2cda52b6144c
+ content/10: 51adf33450cab2ef392e93147386647c
+ content/11: 9c9e94642807e3728a1791e6cfd7516b
+ content/12: c9d9d618181f211ee651e61291d40b4c
+ content/13: ca7c2dd535aa43aa1804fdb47c26cf42
+ content/14: 51adf33450cab2ef392e93147386647c
+ content/15: 8462a747b18279082fe601bc44c41b96
+ content/16: f609da95637b703ac3f6fd74dcaf9d08
+ content/17: 1004e80e4b9f723cce00a819cdb7a400
+ content/18: f3d5c47e7d97d8fd9231bc5785235b9d
+ content/19: 51adf33450cab2ef392e93147386647c
+ content/20: 6aa11e4bc848e9e1a7da310d66231af7
+ content/21: 0e2f86bd2bf33042bba7264583382e9f
+ content/22: 755163c96e23f2783dcba2e032349782
+ content/23: 094eb1da7320e72d053068bc95c4c420
+ content/24: 51adf33450cab2ef392e93147386647c
+ content/25: 8300a22f708e047883c0bb5d4c0ec958
+ content/26: 32bd0f5e825b9218116afaff7b541d73
+ content/27: 83b35025ef8041cd379f0aacc267509f
+ content/28: 51adf33450cab2ef392e93147386647c
+ content/29: 36ce6db68c7469c9e37576bce32e625d
+ content/30: b1f2151026db4c394f773ccea74f04bc
+ content/31: 18009ae6d0d819effbfb474b0faac7e4
+ content/32: 51adf33450cab2ef392e93147386647c
+ content/33: 72b9fd0ce0e4bfc98dfd36fb35238fab
+ content/34: 982245493d09b3db1ef60824afa1bbf8
+ content/35: 0649cda26da4bb9ce185b9e8dd6ee41e
+ content/36: c234c213e540ee3bcffad017c9c9cb75
+ content/37: dcd5bc676b9b4956e66fe1045f86a5a0
+ content/38: fa2896ac28faaddc29540dba0f2ea7cf
+ content/39: c7315dc914f85a8e7be1553e0458fdda
+ content/40: a15715eea8694ee737338c021ea79787
+ content/41: 3194966101f0d8ea12b02a4dcaa34d0e
+ content/42: 38038c4d1efda89e5c1f9d8640c67aef
+ content/43: c708ae80a2e8b9752789a68a9bee176d
+ content/44: 11f28ceca8ebac9f2469cb627a1a7937
+ content/45: acb15cd882a954ec87b446478a0fc54b
+ content/46: 96c485d76c0e7f680d657f4e14beab7a
diff --git a/readme/ar.md b/readme/ar.md
index d4763db50..7d41065e3 100644
--- a/readme/ar.md
+++ b/readme/ar.md
@@ -3,24 +3,26 @@
- Lingo.dev - مجموعة أدوات i18n مفتوحة المصدر للترجمة المدعومة بنماذج اللغة - الكبيرة + أدوات هندسة ترجمة مفتوحة المصدر. اتصل بمنصة Lingo.dev لهندسة الترجمة للحصول + على ترجمات متسقة وعالية الجودة.
- MCP •CLI • - CI/CD •SDK • - المترجم + Lingo API • + Lingo React MCP • + Lingo CLI • + Lingo GitHub Action • + Lingo Compiler for React (ألفا مبكرة)
@@ -72,167 +74,43 @@ ## البدء السريع -| الأداة | حالة الاستخدام | الأمر السريع | -| --------------------------------- | -------------------------------------------------- | ---------------------------------- | -| [**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()` | +| الأداة | ما تفعله | الأمر السريع | +| -------------------------------------------------- | -------------------------------------------------- | ---------------------------------- | +| [**Lingo React MCP**](#lingodev-mcp) | إعداد i18n بمساعدة الذكاء الاصطناعي لتطبيقات React | المطالبة: `Set up i18n` | +| [**Lingo CLI**](#lingodev-cli) | ترجمة ملفات JSON وYAML وmarkdown وCSV وPO | `npx lingo.dev@latest run` | +| [**Lingo GitHub Action**](#lingodev-cicd) | ترجمة مستمرة في GitHub Actions | `uses: lingodotdev/lingo.dev@main` | +| [**Lingo Compiler for React**](#lingodev-compiler) | ترجمة React وقت البناء بدون أغلفة i18n | إضافة `withLingo()` | ---- - -### Lingo.dev MCP - -إعداد i18n في تطبيقات React معروف بأنه عرضة للأخطاء - حتى للمطورين ذوي الخبرة. مساعدو الترميز بالذكاء الاصطناعي يزيدون الأمر سوءًا: فهم يتوهمون واجهات برمجية غير موجودة، وينسون تكوينات الوسيط، ويكسرون التوجيه، أو ينفذون نصف حل قبل أن يضيعوا. المشكلة هي أن إعداد i18n يتطلب تسلسلًا دقيقًا من التغييرات المنسقة عبر ملفات متعددة (التوجيه، الوسيط، المكونات، التكوين)، ونماذج اللغة الكبيرة تواجه صعوبة في الحفاظ على هذا السياق. - -يحل Lingo.dev MCP هذه المشكلة من خلال منح المساعدين بالذكاء الاصطناعي وصولاً منظمًا إلى معرفة i18n الخاصة بإطار العمل. بدلاً من التخمين، يتبع مساعدك أنماط التنفيذ المعتمدة لـ Next.js وReact Router وTanStack Start. - -**بيئات التطوير المدعومة:** +### محركات الترجمة -- Claude Code -- Cursor -- GitHub Copilot Agents -- Codex (OpenAI) +تتصل هذه الأدوات بـ [محركات الترجمة](https://lingo.dev) – واجهات برمجة ترجمة ذات حالة تنشئها على منصة Lingo.dev لهندسة الترجمة. يحتفظ كل محرك بالمسارد ونبرة العلامة التجارية والتعليمات الخاصة بكل لغة عبر كل طلب، [مما يقلل أخطاء المصطلحات بنسبة 16.6-44.6%](https://lingo.dev/research/retrieval-augmented-localization). أو [استخدم نموذج اللغة الكبير الخاص بك](#lingodev-cli). -**أطر العمل المدعومة:** - -- Next.js (App Router وPages Router الإصدارات 13-16) -- TanStack Start (الإصدار 1) -- React Router (الإصدار 7) - -**الاستخدام:** - -بعد تكوين خادم MCP في بيئة التطوير الخاصة بك ([راجع أدلة البدء السريع](https://lingo.dev/en/mcp))، اطلب من مساعدك: - -``` -Set up i18n with the following locales: en, es, and pt-BR. The default locale is 'en'. -``` - -سيقوم المساعد بـ: +--- -1. تكوين التوجيه المعتمد على اللغة (مثل `/en`، `/es`، `/pt-BR`) -2. إعداد مكونات تبديل اللغة -3. تنفيذ الكشف التلقائي عن اللغة -4. إنشاء ملفات التكوين اللازمة +### Lingo.dev MCP -**ملاحظة:** توليد الكود بمساعدة الذكاء الاصطناعي غير حتمي. راجع الكود المُولَّد قبل الالتزام به. +إعداد i18n في تطبيقات React معرض للأخطاء – حتى مساعدو البرمجة بالذكاء الاصطناعي يتخيلون واجهات برمجة غير موجودة ويكسرون التوجيه. يمنح Lingo.dev MCP مساعدي الذكاء الاصطناعي وصولاً منظماً إلى معرفة i18n الخاصة بالإطار لـ Next.js وReact Router وTanStack Start. يعمل مع Claude Code وCursor وGitHub Copilot Agents وCodex. -[اقرأ المستندات ←](https://lingo.dev/en/mcp) +[اقرأ الوثائق ←](https://lingo.dev/en/mcp) --- ### Lingo.dev CLI -الحفاظ على تزامن الترجمات أمر ممل. تضيف نصًا جديدًا، تنسى ترجمته، تشحن واجهة مستخدم معطلة للمستخدمين الدوليين. أو ترسل ملفات JSON إلى المترجمين، تنتظر أيامًا، ثم تدمج عملهم يدويًا. التوسع إلى أكثر من 10 لغات يعني إدارة مئات الملفات التي تخرج باستمرار عن التزامن. - -يقوم Lingo.dev CLI بأتمتة هذا. وجهه إلى ملفات الترجمة الخاصة بك، شغّل أمرًا واحدًا، وسيتم تحديث كل لغة. يتتبع ملف القفل ما تمت ترجمته بالفعل، لذا تدفع فقط مقابل المحتوى الجديد أو المُعدَّل. يدعم ملفات JSON وYAML وCSV وPO وmarkdown. - -**الإعداد:** +ترجم ملفات JSON وYAML وmarkdown وCSV وPO بأمر واحد. يتتبع ملف القفل ما تمت ترجمته بالفعل – يتم معالجة المحتوى الجديد أو المعدل فقط. يستخدم محرك الترجمة الخاص بك على Lingo.dev افتراضياً، أو استخدم نموذج اللغة الكبير الخاص بك (OpenAI وAnthropic وGoogle وMistral وOpenRouter وOllama). ```bash -# Initialize project npx lingo.dev@latest init - -# Run translations npx lingo.dev@latest run ``` -**كيف يعمل:** - -1. يستخرج المحتوى القابل للترجمة من الملفات المُعدّة -2. يرسل المحتوى إلى مزود LLM للترجمة -3. يكتب المحتوى المترجم مرة أخرى إلى نظام الملفات -4. ينشئ ملف `i18n.lock` لتتبع الترجمات المكتملة (يتجنب المعالجة الزائدة) - -**الإعداد:** - -ينشئ أمر `init` ملف `i18n.json`. قم بإعداد اللغات والحاويات: - -```json -{ - "$schema": "https://lingo.dev/schema/i18n.json", - "version": "1.10", - "locale": { - "source": "en", - "targets": ["es", "fr", "de"] - }, - "buckets": { - "json": { - "include": ["locales/[locale].json"] - } - } -} -``` - -حقل `provider` اختياري (افتراضيًا Lingo.dev Engine). لمزودي LLM المخصصين: - -```json -{ - "provider": { - "id": "openai", - "model": "gpt-4o-mini", - "prompt": "Translate from {source} to {target}" - } -} -``` - -**مزودو LLM المدعومون:** - -- Lingo.dev Engine (موصى به) -- OpenAI -- Anthropic -- Google -- Mistral -- OpenRouter -- Ollama - -[اقرأ المستندات ←](https://lingo.dev/en/cli) +[اقرأ المستندات ←](https://lingo.dev/en/docs/cli) --- -### Lingo.dev CI/CD - -الترجمات هي الميزة التي تكون دائمًا "على وشك الانتهاء". يدمج المهندسون الكود دون تحديث اللغات. يكتشف فريق ضمان الجودة الترجمات المفقودة في بيئة الاختبار - أو الأسوأ من ذلك، يكتشفها المستخدمون في الإنتاج. السبب الجذري: الترجمة خطوة يدوية يسهل تخطيها تحت ضغط المواعيد النهائية. - -يجعل Lingo.dev CI/CD الترجمات تلقائية. كل دفع يُشغّل الترجمة. تُملأ النصوص المفقودة قبل وصول الكود إلى الإنتاج. لا حاجة للانضباط - خط الأنابيب يتولى الأمر. - -**المنصات المدعومة:** - -- GitHub Actions -- GitLab CI/CD -- Bitbucket Pipelines +### واجهة سطر أوامر Lingo.dev -**إعداد GitHub Actions:** - -أنشئ `.github/workflows/translate.yml`: - -```yaml -name: Translate -on: - push: - branches: [main] -permissions: - contents: write -jobs: - translate: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Lingo.dev - uses: lingodotdev/lingo.dev@main - with: - api-key: ${{ secrets.LINGODOTDEV_API_KEY }} -``` - -**متطلبات الإعداد:** - -1. أضف `LINGODOTDEV_API_KEY` إلى أسرار المستودع (Settings > Secrets and variables > Actions) -2. لسير عمل PR: فعّل "Allow GitHub Actions to create and approve pull requests" في Settings > Actions > General - -**خيارات سير العمل:** - -إيداع الترجمات مباشرة: +الترجمة المستمرة في خط العمل. كل دفع يُفعّل الترجمة – تُملأ النصوص الناقصة قبل وصول الكود إلى الإنتاج. يدعم GitHub Actions وGitLab CI/CD وBitbucket Pipelines. ```yaml uses: lingodotdev/lingo.dev@main @@ -240,241 +118,35 @@ with: api-key: ${{ secrets.LINGODOTDEV_API_KEY }} ``` -إنشاء طلبات سحب مع الترجمات: - -```yaml -uses: lingodotdev/lingo.dev@main -with: - api-key: ${{ secrets.LINGODOTDEV_API_KEY }} - pull-request: true -env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} -``` - -**المدخلات المتاحة:** - -| المدخل | الافتراضي | الوصف | -| -------------------- | ---------------------------------------------- | --------------------------------------- | -| `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` | تفعيل المعالجة المتوازية | - -[اقرأ المستندات ←](https://lingo.dev/en/ci/github) +[اقرأ المستندات ←](https://lingo.dev/en/docs/integrations) --- -### Lingo.dev SDK +### واجهة برمجة تطبيقات Lingo.dev -تعمل ملفات الترجمة الثابتة بشكل جيد لتسميات واجهة المستخدم، ولكن ماذا عن المحتوى الذي ينشئه المستخدمون؟ رسائل الدردشة، أوصاف المنتجات، تذاكر الدعم - المحتوى الذي لا يوجد في وقت البناء لا يمكن ترجمته مسبقاً. ستضطر إلى عرض نص غير مترجم أو بناء خط أنابيب ترجمة مخصص. +استدعِ محرك الترجمة مباشرةً من كود الخادم. ترجمة متزامنة وغير متزامنة مع التسليم عبر webhook، وعزل الأخطاء لكل لغة، وتتبع التقدم في الوقت الفعلي عبر WebSocket. -يقوم Lingo.dev SDK بترجمة المحتوى في وقت التشغيل. مرر أي نص أو كائن أو HTML واحصل على نسخة محلية. يعمل للدردشة في الوقت الفعلي، الإشعارات الديناميكية، أو أي محتوى يصل بعد النشر. متاح لـ JavaScript وPHP وPython وRuby. - -**التثبيت:** - -```bash -npm install lingo.dev -``` - -**الاستخدام:** - -```ts -import { LingoDotDevEngine } from "lingo.dev/sdk"; - -const lingoDotDev = new LingoDotDevEngine({ - apiKey: process.env.LINGODOTDEV_API_KEY, -}); - -// Translate objects (preserves structure) -const translated = await lingoDotDev.localizeObject( - { greeting: "Hello", farewell: "Goodbye" }, - { sourceLocale: "en", targetLocale: "es" }, -); -// { greeting: "Hola", farewell: "Adiós" } - -// Translate text -const text = await lingoDotDev.localizeText("Hello!", { - sourceLocale: "en", - targetLocale: "fr", -}); - -// Translate to multiple languages at once -const results = await lingoDotDev.batchLocalizeText("Hello!", { - sourceLocale: "en", - targetLocales: ["es", "fr", "de"], -}); - -// Translate chat (preserves speaker names) -const chat = await lingoDotDev.localizeChat( - [{ name: "Alice", text: "Hello!" }], - { sourceLocale: "en", targetLocale: "es" }, -); - -// Translate HTML (preserves markup) -const html = await lingoDotDev.localizeHtml("
- Lingo.dev - LLM-চালিত স্থানীয়কৰণৰ বাবে মুক্ত উৎসৰ i18n টুলকিট + মুক্ত উৎসৰ স্থানীয়কৰণ অভিযান্ত্ৰিক সঁজুলি। সুসংগত, মানসম্পন্ন অনুবাদৰ বাবে + Lingo.dev স্থানীয়কৰণ অভিযান্ত্ৰিক প্লেটফৰ্মৰ সৈতে সংযোগ কৰক।
- MCP •CLI • - CI/CD •SDK • - Compiler + Lingo API • + Lingo React MCP • + Lingo CLI • + Lingo GitHub Action • + React-ৰ বাবে Lingo Compiler (আৰম্ভণি আলফা)
@@ -71,167 +74,43 @@ ## দ্ৰুত আৰম্ভণি -| টুল | ব্যৱহাৰৰ ক্ষেত্ৰ | দ্ৰুত কমাণ্ড | -| ---------------------------------- | ------------------------------------------------ | ---------------------------------- | -| [**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 wrapper অবিহনে বিল্ড-টাইম React স্থানীয়কৰণ | `withLingo()` প্লাগইন | +| সঁজুলি | ই কি কৰে | দ্ৰুত আদেশ | +| -------------------------------------------------- | -------------------------------------------------- | ---------------------------------- | +| [**Lingo React MCP**](#lingodev-mcp) | React এপৰ বাবে AI-সহায়িত i18n ছেটআপ | প্ৰম্পট: `Set up i18n` | +| [**Lingo CLI**](#lingodev-cli) | JSON, YAML, markdown, CSV, PO ফাইল স্থানীয়কৰণ কৰক | `npx lingo.dev@latest run` | +| [**Lingo GitHub Action**](#lingodev-cicd) | GitHub Actions-ত নিৰন্তৰ স্থানীয়কৰণ | `uses: lingodotdev/lingo.dev@main` | +| [**Lingo Compiler for React**](#lingodev-compiler) | i18n ৰেপাৰ নোহোৱাকৈ বিল্ড-টাইম React স্থানীয়কৰণ | `withLingo()` প্লাগইন | ---- - -### Lingo.dev MCP - -React এপসমূহত i18n ছেটআপ কৰাটো কুখ্যাতভাৱে ত্ৰুটিপ্ৰৱণ - অভিজ্ঞ ডেভেলপাৰসকলৰ বাবেও। AI কোডিং সহায়কসমূহে ইয়াক আৰু বেয়া কৰি তোলে: তেওঁলোকে অস্তিত্বহীন APIসমূহ হেলুচিনেট কৰে, মিডলৱেৰ কনফিগাৰেশ্যন পাহৰি যায়, ৰাউটিং ভাঙি পেলায়, বা হেৰাই যোৱাৰ আগতে আধা সমাধান ইমপ্লিমেণ্ট কৰে। সমস্যাটো হ'ল যে i18n ছেটআপৰ বাবে একাধিক ফাইলৰ (ৰাউটিং, মিডলৱেৰ, কম্পোনেণ্ট, কনফিগাৰেশ্যন) মাজত সমন্বিত পৰিৱৰ্তনৰ এটা সুনিৰ্দিষ্ট ক্ৰমৰ প্ৰয়োজন, আৰু LLMসমূহে সেই প্ৰসংগ বজাই ৰাখিবলৈ সংগ্ৰাম কৰে। - -Lingo.dev MCP এ AI সহায়কসমূহক ফ্ৰেমৱৰ্ক-নিৰ্দিষ্ট i18n জ্ঞানৰ গাঁথনিবদ্ধ প্ৰৱেশ প্ৰদান কৰি এইটো সমাধান কৰে। অনুমান কৰাৰ পৰিৱৰ্তে, আপোনাৰ সহায়কে Next.js, React Router, আৰু TanStack Start ৰ বাবে প্ৰমাণিত ইমপ্লিমেণ্টেশ্যন পেটাৰ্ন অনুসৰণ কৰে। - -**সমৰ্থিত IDEসমূহ:** +### স্থানীয়কৰণ ইঞ্জিন -- Claude Code -- Cursor -- GitHub Copilot Agents -- Codex (OpenAI) +এই সঁজুলিসমূহে [স্থানীয়কৰণ ইঞ্জিনসমূহৰ](https://lingo.dev) সৈতে সংযোগ কৰে – Lingo.dev স্থানীয়কৰণ অভিযান্ত্ৰিক প্লেটফৰ্মত আপুনি সৃষ্টি কৰা ষ্টেটফুল অনুবাদ APIসমূহ। প্ৰতিটো ইঞ্জিনে প্ৰতিটো অনুৰোধত শব্দকোষ, ব্ৰেণ্ড ভইচ আৰু প্ৰতি-লোকেল নিৰ্দেশনা ধৰি ৰাখে, [পৰিভাষা ত্ৰুটি 16.6–44.6% হ্ৰাস কৰে](https://lingo.dev/research/retrieval-augmented-localization)। অথবা [নিজৰ LLM আনক](#lingodev-cli)। -**সমৰ্থিত ফ্ৰেমৱৰ্কসমূহ:** - -- Next.js (App Router & Pages Router v13-16) -- TanStack Start (v1) -- React Router (v7) - -**ব্যৱহাৰ:** - -আপোনাৰ IDEত MCP চাৰ্ভাৰ কনফিগাৰ কৰাৰ পিছত ([কুইকষ্টাৰ্ট গাইড চাওক](https://lingo.dev/en/mcp)), আপোনাৰ সহায়কক প্ৰম্পট কৰক: - -``` -Set up i18n with the following locales: en, es, and pt-BR. The default locale is 'en'. -``` - -সহায়কে: +--- -1. লোকেল ভিত্তিক ৰাউটিং কনফিগাৰ কৰক (উদাহৰণস্বৰূপে, `/en`, `/es`, `/pt-BR`) -2. ভাষা সলনি কৰা কম্পোনেণ্টসমূহ ছেট আপ কৰক -3. স্বয়ংক্ৰিয় লোকেল চিনাক্তকৰণ ইমপ্লিমেণ্ট কৰক -4. প্ৰয়োজনীয় কনফিগাৰেশ্যন ফাইল জেনেৰেট কৰক +### Lingo.dev MCP -**টোকা:** AI-সহায়িত কোড জেনাৰেশ্যন নন-ডিটাৰমিনিষ্টিক। কমিট কৰাৰ আগতে জেনাৰেট কৰা কোড পৰ্যালোচনা কৰক। +React এপত i18n ছেটআপ কৰাটো ত্ৰুটিপূৰ্ণ – AI কোডিং সহায়কসকলেও অস্তিত্বহীন APIসমূহ কল্পনা কৰে আৰু ৰাউটিং ভাঙে। Lingo.dev MCP-এ AI সহায়কসকলক Next.js, React Router আৰু TanStack Start-ৰ বাবে ফ্ৰেমৱৰ্ক-নিৰ্দিষ্ট i18n জ্ঞানত গাঁথনিবদ্ধ প্ৰৱেশাধিকাৰ দিয়ে। Claude Code, Cursor, GitHub Copilot Agents আৰু Codex-ৰ সৈতে কাম কৰে। -[ডকুমেণ্টেশ্যন পঢ়ক →](https://lingo.dev/en/mcp) +[নথিপত্ৰসমূহ পঢ়ক →](https://lingo.dev/en/mcp) --- ### Lingo.dev CLI -অনুবাদসমূহ সিংকত ৰখাটো ক্লান্তিকৰ। আপুনি এটা নতুন ষ্ট্ৰিং যোগ কৰে, ইয়াক অনুবাদ কৰিবলৈ পাহৰি যায়, আন্তৰ্জাতিক ব্যৱহাৰকাৰীসকলক ভঙা UI শ্বিপ কৰে। বা আপুনি অনুবাদকসকলক JSON ফাইল পঠিয়ায়, দিনৰ পিছত দিন অপেক্ষা কৰে, তাৰ পিছত তেওঁলোকৰ কাম মেনুৱেলি মাৰ্জ কৰে। 10+ ভাষালৈ স্কেল কৰাৰ অৰ্থ হ'ল শ শ ফাইল পৰিচালনা কৰা যিবোৰ নিৰন্তৰ সিংকৰ বাহিৰত ড্ৰিফ্ট হয়। - -Lingo.dev CLI এ এইটো স্বয়ংক্ৰিয় কৰে। আপোনাৰ অনুবাদ ফাইলসমূহত ইয়াক পইণ্ট কৰক, এটা কমাণ্ড চলাওক, আৰু প্ৰতিটো লোকেল আপডেট হয়। এটা লকফাইলে ইতিমধ্যে কি অনুবাদ কৰা হৈছে ট্ৰেক কৰে, গতিকে আপুনি কেৱল নতুন বা সলনি হোৱা কণ্টেণ্টৰ বাবে পেমেণ্ট কৰে। JSON, YAML, CSV, PO ফাইল, আৰু markdown সমৰ্থন কৰে। - -**ছেটআপ:** +এটা আদেশত JSON, YAML, markdown, CSV আৰু PO ফাইল স্থানীয়কৰণ কৰক। এটা লকফাইলে কি ইতিমধ্যে স্থানীয়কৃত সেয়া ট্ৰেক কৰে – কেৱল নতুন বা সলনি হোৱা সমলহে প্ৰক্ৰিয়াকৰণ হয়। Lingo.dev-ত আপোনাৰ স্থানীয়কৰণ ইঞ্জিনলৈ ডিফল্ট হয়, অথবা নিজৰ LLM আনক (OpenAI, Anthropic, Google, Mistral, OpenRouter, Ollama)। ```bash -# Initialize project npx lingo.dev@latest init - -# Run translations npx lingo.dev@latest run ``` -**ই কেনেকৈ কাম কৰে:** - -1. কনফিগাৰ কৰা ফাইলসমূহৰ পৰা অনুবাদযোগ্য কন্টেণ্ট এক্সট্ৰেক্ট কৰে -2. অনুবাদৰ বাবে কন্টেণ্ট LLM প্ৰভাইডাৰলৈ প্ৰেৰণ কৰা হয় -3. অনুবাদৰ ফলাফল পুনৰ ফাইলচিস্টেমত লিখে -4. সম্পূৰ্ণ হোৱা অনুবাদসমূহ ট্ৰেক কৰিবলৈ `i18n.lock` ফাইল সৃষ্টি কৰে (অপ্ৰয়োজনীয় পুনৰ প্ৰচেছিং এৰোৱাই যায়) - -**কনফিগাৰেশ্যন:** - -`init` কমাণ্ডে এটা `i18n.json` ফাইল জেনেৰেট কৰে। লোকেল আৰু বাকেটসমূহ কনফিগাৰ কৰক: - -```json -{ - "$schema": "https://lingo.dev/schema/i18n.json", - "version": "1.10", - "locale": { - "source": "en", - "targets": ["es", "fr", "de"] - }, - "buckets": { - "json": { - "include": ["locales/[locale].json"] - } - } -} -``` - -`provider` ফিল্ডটো ঐচ্ছিক (ডিফল্ট Lingo.dev Engine)। কাষ্টম LLM প্ৰভাইডাৰৰ বাবে: - -```json -{ - "provider": { - "id": "openai", - "model": "gpt-4o-mini", - "prompt": "Translate from {source} to {target}" - } -} -``` - -**সমৰ্থিত LLM প্ৰভাইডাৰসমূহ:** - -- Lingo.dev Engine (পৰামৰ্শিত) -- OpenAI -- Anthropic -- Google -- Mistral -- OpenRouter -- Ollama - -[ডকুমেণ্টেশ্যন পঢ়ক →](https://lingo.dev/en/cli) +[নথিপত্ৰ পঢ়ক →](https://lingo.dev/en/docs/cli) --- ### Lingo.dev CI/CD -অনুবাদ হৈছে সেই ফিচাৰ যি সদায় "প্ৰায় সম্পূৰ্ণ" হৈ থাকে। ইঞ্জিনিয়াৰসকলে লোকেল আপডেট নকৰাকৈয়ে ক'ড মাৰ্জ কৰে। QA য়ে ষ্টেজিংত হেৰোৱা অনুবাদসমূহ ধৰা পেলায় - বা আৰু বেয়া, ব্যৱহাৰকাৰীয়ে প্ৰডাকশ্যনত ধৰা পেলায়। মূল কাৰণ: অনুবাদ এটা মেনুৱেল পদক্ষেপ যি ডেডলাইনৰ চাপত এৰি দিয়া সহজ। - -Lingo.dev CI/CD য়ে অনুবাদ স্বয়ংক্ৰিয় কৰে। প্ৰতিটো পুশে অনুবাদ ট্ৰিগাৰ কৰে। হেৰোৱা ষ্ট্ৰিংসমূহ ক'ড প্ৰডাকশ্যনত উপনীত হোৱাৰ আগতেই পূৰণ হয়। কোনো শৃংখলাৰ প্ৰয়োজন নাই - পাইপলাইনে ইয়াক সম্ভালে। - -**সমৰ্থিত প্লেটফৰ্মসমূহ:** - -- GitHub Actions -- GitLab CI/CD -- Bitbucket Pipelines - -**GitHub Actions ছেটআপ:** - -`.github/workflows/translate.yml` সৃষ্টি কৰক: - -```yaml -name: Translate -on: - push: - branches: [main] -permissions: - contents: write -jobs: - translate: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Lingo.dev - uses: lingodotdev/lingo.dev@main - with: - api-key: ${{ secrets.LINGODOTDEV_API_KEY }} -``` - -**ছেটআপ প্ৰয়োজনীয়তাসমূহ:** - -1. ৰিপজিটৰী ছিক্ৰেটছত `LINGODOTDEV_API_KEY` যোগ কৰক (Settings > Secrets and variables > Actions) -2. PR ৱৰ্কফ্ল'ৰ বাবে: Settings > Actions > General ত "Allow GitHub Actions to create and approve pull requests" সক্ষম কৰক - -**ৱৰ্কফ্ল' বিকল্পসমূহ:** - -অনুবাদসমূহ পোনপটীয়াকৈ কমিট কৰক: +আপোনাৰ পাইপলাইনত নিৰন্তৰ স্থানীয়কৰণ। প্ৰতিটো পুশে স্থানীয়কৰণ সক্ৰিয় কৰে – ক'ডে উৎপাদনত উপনীত হোৱাৰ আগতে অনুপস্থিত স্ট্ৰিংবোৰ পূৰণ কৰা হয়। GitHub Actions, GitLab CI/CD, আৰু Bitbucket Pipelines সমৰ্থন কৰে। ```yaml uses: lingodotdev/lingo.dev@main @@ -239,258 +118,52 @@ with: api-key: ${{ secrets.LINGODOTDEV_API_KEY }} ``` -অনুবাদৰ সৈতে pull request সৃষ্টি কৰক: - -```yaml -uses: lingodotdev/lingo.dev@main -with: - api-key: ${{ secrets.LINGODOTDEV_API_KEY }} - pull-request: true -env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} -``` - -**উপলব্ধ ইনপুটসমূহ:** - -| ইনপুট | ডিফল্ট | বিৱৰণ | -| -------------------- | ---------------------------------------------- | ---------------------------------------------- | -| `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) +[নথিপত্ৰ পঢ়ক →](https://lingo.dev/en/docs/integrations) --- -### Lingo.dev SDK +### Lingo.dev API -ষ্টেটিক অনুবাদ ফাইলে UI লেবেলৰ বাবে কাম কৰে, কিন্তু ব্যৱহাৰকাৰীয়ে সৃষ্টি কৰা কণ্টেণ্টৰ ক্ষেত্ৰত কি হ'ব? চেট বাৰ্তা, প্ৰডাক্ট বিৱৰণ, সাপ'ৰ্ট টিকেট - যিবোৰ কণ্টেণ্ট বিল্ড টাইমত নাথাকে সেইবোৰ পূৰ্বতে অনুবাদ কৰিব নোৱাৰি। আপুনি অনুবাদ নোহোৱা টেক্সট দেখুৱাবলৈ বাধ্য হয় বা কাষ্টম অনুবাদ পাইপলাইন নিৰ্মাণ কৰিব লাগে। +বেকেণ্ড ক'ডৰ পৰা পোনপটীয়াকৈ আপোনাৰ স্থানীয়কৰণ ইঞ্জিন কল কৰক। ৱেবহুক ডেলিভাৰীৰ সৈতে সিংক্ৰনাছ আৰু এছিংক্ৰনাছ স্থানীয়কৰণ, প্ৰতিটো ল'কেলৰ বাবে বিফলতা বিচ্ছিন্নতা, আৰু WebSocket যোগে ৰিয়েল-টাইম প্ৰগতি। -Lingo.dev SDK এ ৰানটাইমত কণ্টেণ্ট অনুবাদ কৰে। যিকোনো টেক্সট, অবজেক্ট, বা HTML পাছ কৰক আৰু স্থানীয়কৃত সংস্কৰণ পাওক। ৰিয়েল-টাইম চেট, ডাইনামিক নটিফিকেশ্যন, বা ডিপ্লয়মেণ্টৰ পিছত আহা যিকোনো কণ্টেণ্টৰ বাবে কাম কৰে। JavaScript, PHP, Python, আৰু Ruby ৰ বাবে উপলব্ধ। - -**ইনষ্টলেশ্যন:** - -```bash -npm install lingo.dev -``` - -**ব্যৱহাৰ:** - -```ts -import { LingoDotDevEngine } from "lingo.dev/sdk"; - -const lingoDotDev = new LingoDotDevEngine({ - apiKey: process.env.LINGODOTDEV_API_KEY, -}); - -// Translate objects (preserves structure) -const translated = await lingoDotDev.localizeObject( - { greeting: "Hello", farewell: "Goodbye" }, - { sourceLocale: "en", targetLocale: "es" }, -); -// { greeting: "Hola", farewell: "Adiós" } - -// Translate text -const text = await lingoDotDev.localizeText("Hello!", { - sourceLocale: "en", - targetLocale: "fr", -}); - -// Translate to multiple languages at once -const results = await lingoDotDev.batchLocalizeText("Hello!", { - sourceLocale: "en", - targetLocales: ["es", "fr", "de"], -}); - -// Translate chat (preserves speaker names) -const chat = await lingoDotDev.localizeChat( - [{ name: "Alice", text: "Hello!" }], - { sourceLocale: "en", targetLocale: "es" }, -); - -// Translate HTML (preserves markup) -const html = await lingoDotDev.localizeHtml("
- Lingo.dev - LLM-संचालित स्थानीयकरण खातिर ओपन-सोर्स i18n टूलकिट + ओपन-सोर्स स्थानीयकरण इंजीनियरिंग औजार। सुसंगत आ गुणवत्ता वाला अनुवाद खातिर + Lingo.dev स्थानीयकरण इंजीनियरिंग प्लेटफ़ॉर्म से जुड़ल जाव।
- MCP •CLI • - CI/CD •SDK • - Compiler + Lingo API • + Lingo React MCP • + Lingo CLI • + Lingo GitHub Action • + Lingo Compiler for React (जल्दी अल्फा)
@@ -71,167 +74,43 @@ ## तुरंत शुरुआत -| टूल | उपयोग केस | त्वरित कमांड | -| ---------------------------------- | ---------------------------------------------------- | ---------------------------------- | -| [**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()` प्लगइन | +| औजार | ई का करेला | झटपट कमांड | +| -------------------------------------------------- | -------------------------------------------------------- | ---------------------------------- | +| [**Lingo React MCP**](#lingodev-mcp) | React ऐप्स खातिर AI-सहायता वाला i18n सेटअप | प्रॉम्प्ट: `Set up i18n` | +| [**Lingo CLI**](#lingodev-cli) | JSON, YAML, markdown, CSV, PO फाइल सभ के स्थानीयकरण करीं | `npx lingo.dev@latest run` | +| [**Lingo GitHub Action**](#lingodev-cicd) | GitHub Actions में निरंतर स्थानीयकरण | `uses: lingodotdev/lingo.dev@main` | +| [**Lingo Compiler for React**](#lingodev-compiler) | बिल्ड-टाइम React स्थानीयकरण बिना i18n रैपर के | `withLingo()` प्लगइन | ---- - -### Lingo.dev MCP - -React ऐप्स में i18n सेटअप करल बहुत गलती-प्रवण बा - अनुभवी डेवलपर लोग खातिर भी। AI कोडिंग असिस्टेंट एकरा के आउर खराब बना देला: ऊ लोग गैर-मौजूद API के हैलुसिनेट करेला, मिडलवेयर कॉन्फ़िगरेशन भूल जाला, राउटिंग तोड़ देला, या आधा समाधान लागू करे के बाद भटक जाला। समस्या ई बा कि i18n सेटअप खातिर कई फाइलन (राउटिंग, मिडलवेयर, कंपोनेंट, कॉन्फ़िगरेशन) में समन्वित बदलाव के एगो सटीक क्रम के जरूरत होला, आ LLM लोग ओह संदर्भ के बनाए रखे में संघर्ष करेला। - -Lingo.dev MCP एकरा के हल करेला AI असिस्टेंट के फ्रेमवर्क-विशिष्ट i18n ज्ञान के संरचित पहुंच देके। अनुमान लगावे के बजाय, रउआ के असिस्टेंट Next.js, React Router, आ TanStack Start खातिर सत्यापित कार्यान्वयन पैटर्न के पालन करेला। - -**समर्थित IDE:** +### स्थानीयकरण इंजन सभ -- Claude Code -- Cursor -- GitHub Copilot Agents -- Codex (OpenAI) +ई औजार सभ [स्थानीयकरण इंजन](https://lingo.dev) से जुड़ल बाटें – स्टेटफुल अनुवाद API जवन रउरा Lingo.dev स्थानीयकरण इंजीनियरिंग प्लेटफ़ॉर्म प बनावत बानी। हर इंजन हर अनुरोध में शब्दकोश, ब्रांड आवाज, आ प्रति-लोकेल निर्देश सभ के बनवले रखेला, [शब्दावली के गलती के 16.6–44.6% घटावेला](https://lingo.dev/research/retrieval-augmented-localization)। या [आपन LLM लावल जाव](#lingodev-cli)। -**समर्थित फ्रेमवर्क:** - -- Next.js (App Router & Pages Router v13-16) -- TanStack Start (v1) -- React Router (v7) - -**उपयोग:** - -रउआ के IDE में MCP सर्वर कॉन्फ़िगर करे के बाद ([क्विकस्टार्ट गाइड देखीं](https://lingo.dev/en/mcp)), अपना असिस्टेंट के प्रॉम्प्ट करीं: - -``` -Set up i18n with the following locales: en, es, and pt-BR. The default locale is 'en'. -``` - -असिस्टेंट करी: +--- -1. लोकेल-आधारित राउटिंग के कॉन्फ़िगर करीं (जइसे, `/en`, `/es`, `/pt-BR`) -2. भाषा बदले वाला कंपोनेंट सेटअप करीं -3. ऑटोमैटिक लोकेल डिटेक्शन लागू करीं -4. जरूरी कॉन्फ़िगरेशन फाइल बनाईं +### Lingo.dev MCP -**नोट:** AI-सहायता प्राप्त कोड जेनरेशन गैर-निर्धारक बा। कमिट करे से पहिले जेनरेट कइल कोड के समीक्षा करीं। +React ऐप्स में i18n सेटअप करे में गलती होखे के संभावना बा – AI कोडिंग सहायक सभ भी नकली API सभ बनावे लागेलें आ राउटिंग तोड़ देवेलें। Lingo.dev MCP, AI सहायक सभ के Next.js, React Router, आ TanStack Start खातिर फ्रेमवर्क-खास i18n ज्ञान के संरचित एक्सेस देवेला। Claude Code, Cursor, GitHub Copilot Agents, आ Codex के साथे काम करेला। -[दस्तावेज़ पढ़ीं →](https://lingo.dev/en/mcp) +[दस्तावेज पढ़ीं →](https://lingo.dev/en/mcp) --- ### Lingo.dev CLI -अनुवाद के सिंक में रखल थकाऊ बा। रउआ एगो नया स्ट्रिंग जोड़ेनी, ओकर अनुवाद करल भूल जानी, अंतरराष्ट्रीय उपयोगकर्ता लोग के टूटल UI भेज देनी। या रउआ अनुवादक लोग के JSON फाइल भेजेनी, दिन भर इंतजार करेनी, फिर मैन्युअल रूप से उनकर काम के वापस मर्ज करेनी। 10+ भाषा में स्केल करे के मतलब बा सैकड़ों फाइल के प्रबंधन करल जे लगातार सिंक से बाहर हो जाला। - -Lingo.dev CLI एकरा के ऑटोमेट करेला। एकरा के रउआ के अनुवाद फाइल पर इंगित करीं, एगो कमांड चलाईं, आ हर लोकेल अपडेट हो जाला। एगो लॉकफाइल ट्रैक करेला कि का पहिले से अनुवादित बा, तs रउआ सिर्फ नया या बदलल सामग्री खातिर भुगतान करेनी। JSON, YAML, CSV, PO फाइल, आ markdown के समर्थन करेला। - -**सेटअप:** +एक कमांड में JSON, YAML, markdown, CSV, आ PO फाइल सभ के स्थानीयकरण करीं। एगो लॉकफाइल ट्रैक करेला कि का पहिले से स्थानीयकृत बा – खाली नया भा बदलल सामग्री प्रोसेस होखेला। Lingo.dev प रउरा स्थानीयकरण इंजन खातिर डिफ़ॉल्ट बा, या आपन LLM लावल जाव (OpenAI, Anthropic, Google, Mistral, OpenRouter, Ollama)। ```bash -# Initialize project npx lingo.dev@latest init - -# Run translations npx lingo.dev@latest run ``` -**ई कइसे काम करेला:** - -1. कॉन्फ़िगर कइल फाइल सभ से अनुवाद योग्य सामग्री निकालीं -2. अनुवाद खातिर कंटेंट के LLM प्रोवाइडर के पास भेजीं -3. अनुवादित कंटेंट वापस फाइल सिस्टम में लिखीं -4. पूरा भइल अनुवाद के ट्रैक रखे खातिर `i18n.lock` फाइल बनाई (अनावश्यक प्रोसेसिंग से बचावेला) - -**कॉन्फ़िगरेशन:** - -`init` कमांड एगो `i18n.json` फाइल जेनरेट करेला। लोकेल आ बकेट के कॉन्फ़िगर करीं: - -```json -{ - "$schema": "https://lingo.dev/schema/i18n.json", - "version": "1.10", - "locale": { - "source": "en", - "targets": ["es", "fr", "de"] - }, - "buckets": { - "json": { - "include": ["locales/[locale].json"] - } - } -} -``` - -`provider` फील्ड वैकल्पिक बा (डिफ़ॉल्ट Lingo.dev Engine बा)। कस्टम LLM प्रोवाइडर खातिर: - -```json -{ - "provider": { - "id": "openai", - "model": "gpt-4o-mini", - "prompt": "Translate from {source} to {target}" - } -} -``` - -**समर्थित LLM प्रोवाइडर:** - -- Lingo.dev Engine (अनुशंसित) -- OpenAI -- Anthropic -- Google -- Mistral -- OpenRouter -- Ollama - -[दस्तावेज़ पढ़ीं →](https://lingo.dev/en/cli) +[दस्तावेज पढ़ीं →](https://lingo.dev/en/docs/cli) --- ### Lingo.dev CI/CD -अनुवाद ऊ फीचर बा जवन हमेशा "लगभग पूरा" होखेला। इंजीनियर लोकेल अपडेट कइले बिना कोड मर्ज कर देला। QA स्टेजिंग में गायब अनुवाद पकड़ेला - या बदतर, यूजर प्रोडक्शन में पकड़ेला। मूल कारण: अनुवाद एगो मैनुअल स्टेप बा जेकरा के डेडलाइन के दबाव में छोड़ल आसान बा। - -Lingo.dev CI/CD अनुवाद के ऑटोमैटिक बना देला। हर पुश अनुवाद ट्रिगर करेला। गायब स्ट्रिंग कोड के प्रोडक्शन में पहुँचे से पहिले भर जाला। कवनो अनुशासन के जरूरत नइखे - पाइपलाइन संभाल लेला। - -**समर्थित प्लेटफॉर्म:** - -- GitHub Actions -- GitLab CI/CD -- Bitbucket Pipelines - -**GitHub Actions सेटअप:** - -`.github/workflows/translate.yml` बनाई: - -```yaml -name: Translate -on: - push: - branches: [main] -permissions: - contents: write -jobs: - translate: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Lingo.dev - uses: lingodotdev/lingo.dev@main - with: - api-key: ${{ secrets.LINGODOTDEV_API_KEY }} -``` - -**सेटअप आवश्यकता:** - -1. रिपॉजिटरी सीक्रेट में `LINGODOTDEV_API_KEY` जोड़ दीं (Settings > Secrets and variables > Actions) -2. PR वर्कफ्लो खातिर: Settings > Actions > General में "Allow GitHub Actions to create and approve pull requests" सक्षम करीं - -**वर्कफ़्लो विकल्प:** - -अनुवाद सीधे कमिट करीं: +रउआ के पाइपलाइन में लगातार स्थानीयकरण। हर पुश से स्थानीयकरण शुरू हो जाला – कोड प्रोडक्शन में पहुँचे से पहिले छूटल स्ट्रिंग भर जालीं। GitHub Actions, GitLab CI/CD, आ Bitbucket Pipelines के समर्थन मिलेला। ```yaml uses: lingodotdev/lingo.dev@main @@ -239,250 +118,44 @@ with: api-key: ${{ secrets.LINGODOTDEV_API_KEY }} ``` -अनुवाद के साथ पुल रिक्वेस्ट बनाईं: - -```yaml -uses: lingodotdev/lingo.dev@main -with: - api-key: ${{ secrets.LINGODOTDEV_API_KEY }} - pull-request: true -env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} -``` - -**उपलब्ध इनपुट:** - -| इनपुट | डिफ़ॉल्ट | विवरण | -| -------------------- | ---------------------------------------------- | ------------------------------ | -| `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) +[दस्तावेज पढ़ीं →](https://lingo.dev/en/docs/integrations) --- -### Lingo.dev SDK +### Lingo.dev API -स्टैटिक अनुवाद फाइल UI लेबल खातिर काम करेला, बाकिर यूजर-जेनरेटेड कंटेंट के का होई? चैट संदेश, प्रोडक्ट विवरण, सपोर्ट टिकट - जवन कंटेंट बिल्ड टाइम पर मौजूद नइखे ओकर पहिले से अनुवाद ना हो सकेला। रउआ बिना अनुवाद वाला टेक्स्ट देखावे खातिर मजबूर बानी या कस्टम अनुवाद पाइपलाइन बनावे के पड़ी। +बैकएंड कोड से सीधे आपन स्थानीयकरण इंजन के कॉल करीं। वेबहुक डिलीवरी के साथ सिंक्रोनस आ async स्थानीयकरण, प्रति लोकेल में फेलियर आइसोलेशन, आ WebSocket के जरिए रियल-टाइम प्रगति। -Lingo.dev SDK रनटाइम पर कंटेंट के अनुवाद करेला। कवनो टेक्स्ट, ऑब्जेक्ट, या HTML पास करीं आ लोकलाइज्ड वर्जन वापस पाईं। रियल-टाइम चैट, डायनामिक नोटिफिकेशन, या कवनो कंटेंट जवन डिप्लॉयमेंट के बाद आवेला ओकरा खातिर काम करेला। JavaScript, PHP, Python, आ Ruby खातिर उपलब्ध बा। - -**इंस्टॉलेशन:** - -```bash -npm install lingo.dev -``` - -**उपयोग:** - -```ts -import { LingoDotDevEngine } from "lingo.dev/sdk"; - -const lingoDotDev = new LingoDotDevEngine({ - apiKey: process.env.LINGODOTDEV_API_KEY, -}); - -// Translate objects (preserves structure) -const translated = await lingoDotDev.localizeObject( - { greeting: "Hello", farewell: "Goodbye" }, - { sourceLocale: "en", targetLocale: "es" }, -); -// { greeting: "Hola", farewell: "Adiós" } - -// Translate text -const text = await lingoDotDev.localizeText("Hello!", { - sourceLocale: "en", - targetLocale: "fr", -}); - -// Translate to multiple languages at once -const results = await lingoDotDev.batchLocalizeText("Hello!", { - sourceLocale: "en", - targetLocales: ["es", "fr", "de"], -}); - -// Translate chat (preserves speaker names) -const chat = await lingoDotDev.localizeChat( - [{ name: "Alice", text: "Hello!" }], - { sourceLocale: "en", targetLocale: "es" }, -); - -// Translate HTML (preserves markup) -const html = await lingoDotDev.localizeHtml("
- Lingo.dev - LLM-চালিত স্থানীয়করণের জন্য ওপেন-সোর্স i18n টুলকিট + ওপেন-সোর্স স্থানীয়করণ ইঞ্জিনিয়ারিং টুল। সুসংগত, মানসম্পন্ন অনুবাদের জন্য + Lingo.dev স্থানীয়করণ ইঞ্জিনিয়ারিং প্ল্যাটফর্মের সাথে সংযুক্ত হন।
- MCP •CLI • - CI/CD •SDK • - Compiler + Lingo API • + Lingo React MCP • + Lingo CLI • + Lingo GitHub Action • + React-এর জন্য Lingo Compiler (প্রাথমিক আলফা)
@@ -71,51 +74,22 @@ ## দ্রুত শুরু -| টুল | ব্যবহারের ক্ষেত্র | দ্রুত কমান্ড | -| ---------------------------------- | ------------------------------------------------- | ---------------------------------- | -| [**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()` প্লাগইন | +| টুল | এটি কী করে | দ্রুত কমান্ড | +| -------------------------------------------------- | --------------------------------------------------- | ---------------------------------- | +| [**Lingo React MCP**](#lingodev-mcp) | React অ্যাপের জন্য AI-সহায়তাপ্রাপ্ত i18n সেটআপ | প্রম্পট: `Set up i18n` | +| [**Lingo CLI**](#lingodev-cli) | JSON, YAML, markdown, CSV, PO ফাইল স্থানীয়করণ করুন | `npx lingo.dev@latest run` | +| [**Lingo GitHub Action**](#lingodev-cicd) | GitHub Actions-এ ক্রমাগত স্থানীয়করণ | `uses: lingodotdev/lingo.dev@main` | +| [**Lingo Compiler for React**](#lingodev-compiler) | i18n র্যাপার ছাড়াই বিল্ড-টাইম React স্থানীয়করণ | `withLingo()` প্লাগইন | ---- - -### Lingo.dev MCP - -React অ্যাপে i18n সেটআপ করা কুখ্যাতভাবে ত্রুটিপ্রবণ - এমনকি অভিজ্ঞ ডেভেলপারদের জন্যও। AI কোডিং সহায়করা এটিকে আরও খারাপ করে: তারা অস্তিত্বহীন API হ্যালুসিনেট করে, মিডলওয়্যার কনফিগারেশন ভুলে যায়, রাউটিং ভেঙে দেয়, বা হারিয়ে যাওয়ার আগে অর্ধেক সমাধান বাস্তবায়ন করে। সমস্যা হল যে i18n সেটআপের জন্য একাধিক ফাইল জুড়ে (রাউটিং, মিডলওয়্যার, কম্পোনেন্ট, কনফিগারেশন) সমন্বিত পরিবর্তনের একটি সুনির্দিষ্ট ক্রম প্রয়োজন, এবং LLM-রা সেই প্রসঙ্গ বজায় রাখতে সংগ্রাম করে। - -Lingo.dev MCP এটি সমাধান করে AI সহায়কদের ফ্রেমওয়ার্ক-নির্দিষ্ট i18n জ্ঞানে কাঠামোগত অ্যাক্সেস দিয়ে। অনুমান করার পরিবর্তে, আপনার সহায়ক Next.js, React Router এবং TanStack Start-এর জন্য যাচাইকৃত বাস্তবায়ন প্যাটার্ন অনুসরণ করে। - -**সমর্থিত IDE:** +### স্থানীয়করণ ইঞ্জিন -- Claude Code -- Cursor -- GitHub Copilot Agents -- Codex (OpenAI) +এই টুলগুলো [স্থানীয়করণ ইঞ্জিন](https://lingo.dev)-এর সাথে সংযুক্ত হয় – স্টেটফুল ট্রান্সলেশন API যা আপনি Lingo.dev স্থানীয়করণ ইঞ্জিনিয়ারিং প্ল্যাটফর্মে তৈরি করেন। প্রতিটি ইঞ্জিন গ্লসারি, ব্র্যান্ড ভয়েস এবং প্রতিটি অনুরোধে লোকাল-নির্দিষ্ট নির্দেশনা সংরক্ষণ করে, [পরিভাষা ত্রুটি ১৬.৬–৪৪.৬% কমায়](https://lingo.dev/research/retrieval-augmented-localization)। অথবা [নিজের LLM ব্যবহার করুন](#lingodev-cli)। -**সমর্থিত ফ্রেমওয়ার্ক:** - -- Next.js (App Router ও Pages Router v13-16) -- TanStack Start (v1) -- React Router (v7) - -**ব্যবহার:** - -আপনার IDE-তে MCP সার্ভার কনফিগার করার পরে ([কুইকস্টার্ট গাইড দেখুন](https://lingo.dev/en/mcp)), আপনার সহায়ককে প্রম্পট করুন: - -``` -Set up i18n with the following locales: en, es, and pt-BR. The default locale is 'en'. -``` - -সহায়ক করবে: +--- -১. লোকেল-ভিত্তিক রাউটিং কনফিগার করুন (যেমন, `/en`, `/es`, `/pt-BR`) -২. ভাষা সুইচিং কম্পোনেন্ট সেটআপ করুন -৩. স্বয়ংক্রিয় লোকেল সনাক্তকরণ বাস্তবায়ন করুন -৪. প্রয়োজনীয় কনফিগারেশন ফাইল তৈরি করুন +### Lingo.dev MCP -**দ্রষ্টব্য:** AI-সহায়তা কোড জেনারেশন নন-ডিটারমিনিস্টিক। কমিট করার আগে জেনারেট করা কোড পর্যালোচনা করুন। +React অ্যাপে i18n সেটআপ করা ত্রুটিপ্রবণ – এমনকি AI কোডিং সহায়করাও অস্তিত্বহীন API কল্পনা করে এবং রাউটিং ভেঙে দেয়। Lingo.dev MCP, AI সহায়কদের Next.js, React Router এবং TanStack Start-এর জন্য ফ্রেমওয়ার্ক-নির্দিষ্ট i18n জ্ঞানে সংগঠিত অ্যাক্সেস দেয়। Claude Code, Cursor, GitHub Copilot Agents এবং Codex-এর সাথে কাজ করে। [ডকুমেন্টেশন পড়ুন →](https://lingo.dev/en/mcp) @@ -123,115 +97,20 @@ Set up i18n with the following locales: en, es, and pt-BR. The default locale is ### Lingo.dev CLI -অনুবাদ সিঙ্কে রাখা ক্লান্তিকর। আপনি একটি নতুন স্ট্রিং যোগ করেন, এটি অনুবাদ করতে ভুলে যান, আন্তর্জাতিক ব্যবহারকারীদের কাছে ভাঙা UI পাঠান। অথবা আপনি অনুবাদকদের কাছে JSON ফাইল পাঠান, দিনের পর দিন অপেক্ষা করেন, তারপর ম্যানুয়ালি তাদের কাজ মার্জ করেন। 10+ ভাষায় স্কেল করার অর্থ শত শত ফাইল পরিচালনা করা যা ক্রমাগত সিঙ্কের বাইরে চলে যায়। - -Lingo.dev CLI এটি স্বয়ংক্রিয় করে। আপনার অনুবাদ ফাইলগুলিতে এটি নির্দেশ করুন, একটি কমান্ড চালান এবং প্রতিটি লোকেল আপডেট হয়। একটি লকফাইল ট্র্যাক করে কী ইতিমধ্যে অনুবাদ করা হয়েছে, তাই আপনি শুধুমাত্র নতুন বা পরিবর্তিত কন্টেন্টের জন্য অর্থ প্রদান করেন। JSON, YAML, CSV, PO ফাইল এবং markdown সমর্থন করে। - -**সেটআপ:** +একটি কমান্ডে JSON, YAML, markdown, CSV এবং PO ফাইল স্থানীয়করণ করুন। একটি লকফাইল ট্র্যাক করে কী ইতিমধ্যে স্থানীয়করণ হয়েছে – শুধুমাত্র নতুন বা পরিবর্তিত কন্টেন্ট প্রক্রিয়া করা হয়। ডিফল্টভাবে Lingo.dev-এ আপনার স্থানীয়করণ ইঞ্জিন ব্যবহার করে, অথবা নিজের LLM নিয়ে আসুন (OpenAI, Anthropic, Google, Mistral, OpenRouter, Ollama)। ```bash -# Initialize project npx lingo.dev@latest init - -# Run translations npx lingo.dev@latest run ``` -**এটি কীভাবে কাজ করে:** - -১. কনফিগার করা ফাইল থেকে অনুবাদযোগ্য কন্টেন্ট এক্সট্র্যাক্ট করা হয় -২. অনুবাদের জন্য কন্টেন্ট LLM প্রদানকারীতে পাঠানো হয় -৩. অনুবাদিত কন্টেন্ট ফাইল সিস্টেমে সংরক্ষণ করা হয় -৪. সম্পন্ন অনুবাদ ট্র্যাক করতে `i18n.lock` ফাইল তৈরি করা হয় (অপ্রয়োজনীয় প্রসেসিং এড়াতে) - -**কনফিগারেশন:** - -`init` কমান্ডটি একটি `i18n.json` ফাইল তৈরি করে। লোকেল ও বাকেট কনফিগার করুন: - -```json -{ - "$schema": "https://lingo.dev/schema/i18n.json", - "version": "1.10", - "locale": { - "source": "en", - "targets": ["es", "fr", "de"] - }, - "buckets": { - "json": { - "include": ["locales/[locale].json"] - } - } -} -``` - -`provider` ক্ষেত্রটি ঐচ্ছিক (ডিফল্ট Lingo.dev Engine)। কাস্টম LLM প্রোভাইডার ব্যবহারে: - -```json -{ - "provider": { - "id": "openai", - "model": "gpt-4o-mini", - "prompt": "Translate from {source} to {target}" - } -} -``` - -**সাপোর্টেড LLM প্রোভাইডার:** - -- Lingo.dev Engine (প্রস্তাবিত) -- OpenAI -- Anthropic -- Google -- Mistral -- OpenRouter -- Ollama - -[ডকুমেন্টেশন পড়ুন →](https://lingo.dev/en/cli) +[ডকুমেন্টেশন পড়ুন →](https://lingo.dev/en/docs/cli) --- ### Lingo.dev CI/CD -অনুবাদ হলো এমন একটি ফিচার যা সবসময় "প্রায় সম্পন্ন" থাকে। ইঞ্জিনিয়াররা লোকেল আপডেট না করেই কোড মার্জ করেন। QA স্টেজিংয়ে অনুপস্থিত অনুবাদ ধরে ফেলে - অথবা আরও খারাপ, ব্যবহারকারীরা প্রোডাকশনে সেগুলো ধরে ফেলেন। মূল কারণ: অনুবাদ একটি ম্যানুয়াল ধাপ যা ডেডলাইনের চাপে এড়িয়ে যাওয়া সহজ। - -Lingo.dev CI/CD অনুবাদকে স্বয়ংক্রিয় করে তোলে। প্রতিটি পুশ অনুবাদ ট্রিগার করে। অনুপস্থিত স্ট্রিং প্রোডাকশনে পৌঁছানোর আগেই পূরণ হয়ে যায়। কোনো শৃঙ্খলার প্রয়োজন নেই - পাইপলাইন এটি পরিচালনা করে। - -**সাপোর্টেড প্ল্যাটফর্ম:** - -- GitHub Actions -- GitLab CI/CD -- Bitbucket Pipelines - -**GitHub Actions সেটআপ:** - -`.github/workflows/translate.yml` তৈরি করুন: - -```yaml -name: Translate -on: - push: - branches: [main] -permissions: - contents: write -jobs: - translate: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Lingo.dev - uses: lingodotdev/lingo.dev@main - with: - api-key: ${{ secrets.LINGODOTDEV_API_KEY }} -``` - -**সেটআপ প্রয়োজনীয়তা:** - -১. রিপোজিটরি সিক্রেটে `LINGODOTDEV_API_KEY` যোগ করুন (Settings > Secrets and variables > Actions) -২. PR ওয়ার্কফ্লোর জন্য: Settings > Actions > General-এ "Allow GitHub Actions to create and approve pull requests" সক্রিয় করুন - -**ওয়ার্কফ্লো অপশন:** - -সরাসরি অনুবাদ কমিট করুন: +আপনার পাইপলাইনে ধারাবাহিক স্থানীয়করণ। প্রতিটি পুশ স্থানীয়করণ ট্রিগার করে – অনুপস্থিত স্ট্রিং প্রোডাকশনে কোড পৌঁছানোর আগেই পূরণ হয়ে যায়। GitHub Actions, GitLab CI/CD এবং Bitbucket Pipelines সমর্থন করে। ```yaml uses: lingodotdev/lingo.dev@main @@ -239,267 +118,58 @@ with: api-key: ${{ secrets.LINGODOTDEV_API_KEY }} ``` -অনুবাদ সহ pull request তৈরি করুন: - -```yaml -uses: lingodotdev/lingo.dev@main -with: - api-key: ${{ secrets.LINGODOTDEV_API_KEY }} - pull-request: true -env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} -``` - -**উপলব্ধ ইনপুট:** - -| ইনপুট | ডিফল্ট | বর্ণনা | -| -------------------- | ---------------------------------------------- | -------------------------------------- | -| `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) +[ডকুমেন্টেশন পড়ুন →](https://lingo.dev/en/docs/integrations) --- -### Lingo.dev SDK +### Lingo.dev API -স্ট্যাটিক অনুবাদ ফাইল UI লেবেলের জন্য কাজ করে, কিন্তু ইউজার-জেনারেটেড কন্টেন্টের ক্ষেত্রে কী হবে? চ্যাট মেসেজ, প্রোডাক্ট বর্ণনা, সাপোর্ট টিকিট - যে কন্টেন্ট বিল্ড টাইমে বিদ্যমান নেই তা প্রি-ট্রান্সলেট করা যায় না। আপনি অনুবাদহীন টেক্সট দেখাতে বাধ্য হন অথবা একটি কাস্টম অনুবাদ পাইপলাইন তৈরি করতে হয়। +ব্যাকএন্ড কোড থেকে সরাসরি আপনার স্থানীয়করণ ইঞ্জিন কল করুন। ওয়েবহুক ডেলিভারি, লোকেল প্রতি ফেইলিউর আইসোলেশন এবং WebSocket এর মাধ্যমে রিয়েল-টাইম প্রগ্রেস সহ সিঙ্ক্রোনাস এবং এসিঙ্ক স্থানীয়করণ। -Lingo.dev SDK রানটাইমে কন্টেন্ট অনুবাদ করে। যেকোনো টেক্সট, অবজেক্ট, বা HTML পাস করুন এবং একটি লোকালাইজড ভার্সন ফেরত পান। রিয়েল-টাইম চ্যাট, ডায়নামিক নোটিফিকেশন, বা ডিপ্লয়মেন্টের পরে আসা যেকোনো কন্টেন্টের জন্য কাজ করে। JavaScript, PHP, Python, এবং Ruby-এর জন্য উপলব্ধ। - -**ইনস্টলেশন:** - -```bash -npm install lingo.dev -``` - -**ব্যবহার:** - -```ts -import { LingoDotDevEngine } from "lingo.dev/sdk"; - -const lingoDotDev = new LingoDotDevEngine({ - apiKey: process.env.LINGODOTDEV_API_KEY, -}); - -// Translate objects (preserves structure) -const translated = await lingoDotDev.localizeObject( - { greeting: "Hello", farewell: "Goodbye" }, - { sourceLocale: "en", targetLocale: "es" }, -); -// { greeting: "Hola", farewell: "Adiós" } - -// Translate text -const text = await lingoDotDev.localizeText("Hello!", { - sourceLocale: "en", - targetLocale: "fr", -}); - -// Translate to multiple languages at once -const results = await lingoDotDev.batchLocalizeText("Hello!", { - sourceLocale: "en", - targetLocales: ["es", "fr", "de"], -}); - -// Translate chat (preserves speaker names) -const chat = await lingoDotDev.localizeChat( - [{ name: "Alice", text: "Hello!" }], - { sourceLocale: "en", targetLocale: "es" }, -); - -// Translate HTML (preserves markup) -const html = await lingoDotDev.localizeHtml("
- Lingo.dev - Open-Source-i18n-Toolkit für LLM-gestützte Lokalisierung + Open-Source-Tools für Lokalisierungs-Engineering. Verbinden Sie sich mit der + Lingo.dev Lokalisierungs-Engineering-Plattform für konsistente, qualitativ + hochwertige Übersetzungen.
- MCP •CLI • - CI/CD •SDK • - Compiler + Lingo API • + Lingo React MCP • + Lingo CLI • + Lingo GitHub Action • + + Lingo Compiler für React (Frühe Alpha-Version) +
@@ -71,167 +77,43 @@ ## Schnellstart -| Tool | Anwendungsfall | Schnellbefehl | -| ---------------------------------- | --------------------------------------------------------- | ---------------------------------- | -| [**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 | - ---- - -### Lingo.dev MCP - -Die Einrichtung von i18n in React-Apps ist notorisch fehleranfällig – selbst für erfahrene Entwickler. KI-Coding-Assistenten verschlimmern die Situation: Sie halluzinieren nicht existierende APIs, vergessen Middleware-Konfigurationen, brechen das Routing oder implementieren eine halbe Lösung, bevor sie den Faden verlieren. Das Problem ist, dass die i18n-Einrichtung eine präzise Abfolge koordinierter Änderungen über mehrere Dateien hinweg erfordert (Routing, Middleware, Komponenten, Konfiguration), und LLMs haben Schwierigkeiten, diesen Kontext aufrechtzuerhalten. +| Tool | Funktionsweise | Schnellbefehl | +| -------------------------------------------------- | ----------------------------------------------------------- | ---------------------------------- | +| [**Lingo React MCP**](#lingodev-mcp) | KI-gestützte i18n-Einrichtung für React-Apps | Prompt: `Set up i18n` | +| [**Lingo CLI**](#lingodev-cli) | Lokalisierung von JSON-, YAML-, Markdown-, CSV-, PO-Dateien | `npx lingo.dev@latest run` | +| [**Lingo GitHub Action**](#lingodev-cicd) | Kontinuierliche Lokalisierung in GitHub Actions | `uses: lingodotdev/lingo.dev@main` | +| [**Lingo Compiler für React**](#lingodev-compiler) | Build-Time-Lokalisierung für React ohne i18n-Wrapper | `withLingo()` Plugin | -Lingo.dev MCP löst dies, indem es KI-Assistenten strukturierten Zugriff auf framework-spezifisches i18n-Wissen gibt. Anstatt zu raten, folgt Ihr Assistent verifizierten Implementierungsmustern für Next.js, React Router und TanStack Start. +### Lokalisierungs-Engines -**Unterstützte IDEs:** +Diese Tools verbinden sich mit [Lokalisierungs-Engines](https://lingo.dev) – zustandsbehafteten Übersetzungs-APIs, die Sie auf der Lingo.dev Lokalisierungs-Engineering-Plattform erstellen. Jede Engine speichert Glossare, Markenstimme und lokale Anweisungen über alle Anfragen hinweg und [reduziert Terminologiefehler um 16,6–44,6 %](https://lingo.dev/research/retrieval-augmented-localization). Oder [nutzen Sie Ihr eigenes LLM](#lingodev-cli). -- Claude Code -- Cursor -- GitHub Copilot Agents -- Codex (OpenAI) - -**Unterstützte Frameworks:** - -- Next.js (App Router & Pages Router v13-16) -- TanStack Start (v1) -- React Router (v7) - -**Verwendung:** - -Nach der Konfiguration des MCP-Servers in Ihrer IDE ([siehe Schnellstart-Anleitungen](https://lingo.dev/en/mcp)) fordern Sie Ihren Assistenten auf: - -``` -Set up i18n with the following locales: en, es, and pt-BR. The default locale is 'en'. -``` - -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 +### Lingo.dev MCP -**Hinweis:** KI-gestützte Code-Generierung ist nicht-deterministisch. Überprüfen Sie generierten Code vor dem Committen. +Die Einrichtung von i18n in React-Apps ist fehleranfällig – selbst KI-Coding-Assistenten halluzinieren nicht existierende APIs und brechen das Routing. Lingo.dev MCP bietet KI-Assistenten strukturierten Zugriff auf Framework-spezifisches i18n-Wissen für Next.js, React Router und TanStack Start. Funktioniert mit Claude Code, Cursor, GitHub Copilot Agents und Codex. -[Dokumentation lesen →](https://lingo.dev/en/mcp) +[Zur Dokumentation →](https://lingo.dev/en/mcp) --- ### Lingo.dev CLI -Übersetzungen synchron zu halten ist mühsam. Sie fügen einen neuen String hinzu, vergessen ihn zu übersetzen und liefern fehlerhafte UI an internationale Nutzer aus. Oder Sie senden JSON-Dateien an Übersetzer, warten tagelang und führen deren Arbeit dann manuell zusammen. Die Skalierung auf über 10 Sprachen bedeutet die Verwaltung hunderter Dateien, die ständig auseinanderdriften. - -Lingo.dev CLI automatisiert dies. Richten Sie es auf Ihre Übersetzungsdateien aus, führen Sie einen Befehl aus, und jede Locale wird aktualisiert. Eine Lockfile verfolgt, was bereits übersetzt wurde, sodass Sie nur für neue oder geänderte Inhalte zahlen. Unterstützt JSON, YAML, CSV, PO-Dateien und Markdown. - -**Einrichtung:** +Lokalisieren Sie JSON-, YAML-, Markdown-, CSV- und PO-Dateien mit einem einzigen Befehl. Eine Lockfile verfolgt bereits lokalisierte Inhalte – nur neue oder geänderte Inhalte werden verarbeitet. Standardmäßig wird Ihre Lokalisierungs-Engine auf Lingo.dev verwendet, oder Sie nutzen Ihr eigenes LLM (OpenAI, Anthropic, Google, Mistral, OpenRouter, Ollama). ```bash -# Initialize project npx lingo.dev@latest init - -# Run translations npx lingo.dev@latest run ``` -**Funktionsweise:** - -1. Extrahiert übersetzbare Inhalte aus konfigurierten Dateien -2. Sendet Inhalte an LLM-Anbieter 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: - -```json -{ - "$schema": "https://lingo.dev/schema/i18n.json", - "version": "1.10", - "locale": { - "source": "en", - "targets": ["es", "fr", "de"] - }, - "buckets": { - "json": { - "include": ["locales/[locale].json"] - } - } -} -``` - -Das Feld `provider` ist optional (Standard ist Lingo.dev Engine). Für benutzerdefinierte LLM-Anbieter: - -```json -{ - "provider": { - "id": "openai", - "model": "gpt-4o-mini", - "prompt": "Translate from {source} to {target}" - } -} -``` - -**Unterstützte LLM-Anbieter:** - -- Lingo.dev Engine (empfohlen) -- OpenAI -- Anthropic -- Google -- Mistral -- OpenRouter -- Ollama - -[Dokumentation lesen →](https://lingo.dev/en/cli) +[Dokumentation lesen →](https://lingo.dev/en/docs/cli) --- ### Lingo.dev CI/CD -Übersetzungen sind das Feature, das immer "fast fertig" ist. Entwickler mergen Code, ohne die Locales zu aktualisieren. QA entdeckt fehlende Übersetzungen im Staging – oder schlimmer noch, Nutzer entdecken sie in der Produktion. Die Grundursache: Übersetzung ist ein manueller Schritt, der unter Termindruck leicht übersprungen wird. - -Lingo.dev CI/CD macht Übersetzungen automatisch. Jeder Push löst die Übersetzung aus. Fehlende Strings werden ausgefüllt, bevor Code die Produktion erreicht. Keine Disziplin erforderlich – die Pipeline übernimmt das. - -**Unterstützte Plattformen:** - -- GitHub Actions -- GitLab CI/CD -- Bitbucket Pipelines - -**GitHub Actions-Einrichtung:** - -Erstellen Sie `.github/workflows/translate.yml`: - -```yaml -name: Translate -on: - push: - branches: [main] -permissions: - contents: write -jobs: - translate: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Lingo.dev - uses: lingodotdev/lingo.dev@main - with: - api-key: ${{ secrets.LINGODOTDEV_API_KEY }} -``` - -**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 - -**Workflow-Optionen:** - -Übersetzungen direkt committen: +Kontinuierliche Lokalisierung in Ihrer Pipeline. Jeder Push löst die Lokalisierung aus – fehlende Strings werden ausgefüllt, bevor der Code in die Produktion gelangt. Unterstützt GitHub Actions, GitLab CI/CD und Bitbucket Pipelines. ```yaml uses: lingodotdev/lingo.dev@main @@ -239,244 +121,38 @@ with: api-key: ${{ secrets.LINGODOTDEV_API_KEY }} ``` -Pull Requests mit Übersetzungen erstellen: - -```yaml -uses: lingodotdev/lingo.dev@main -with: - api-key: ${{ secrets.LINGODOTDEV_API_KEY }} - pull-request: true -env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} -``` - -**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 | - -[Dokumentation lesen →](https://lingo.dev/en/ci/github) +[Dokumentation lesen →](https://lingo.dev/en/docs/integrations) --- -### Lingo.dev SDK - -Statische Übersetzungsdateien funktionieren für UI-Labels, aber was ist mit nutzergenerierten Inhalten? Chat-Nachrichten, Produktbeschreibungen, Support-Tickets – Inhalte, die zur Build-Zeit nicht existieren, können nicht vorübersetzt werden. Sie müssen unübersetzte Texte anzeigen oder eine eigene Übersetzungs-Pipeline aufbauen. - -Das Lingo.dev SDK übersetzt Inhalte zur Laufzeit. Übergeben Sie beliebigen Text, Objekte oder HTML und erhalten Sie eine lokalisierte Version zurück. Funktioniert für Echtzeit-Chat, dynamische Benachrichtigungen oder beliebige Inhalte, die nach dem Deployment eintreffen. Verfügbar für JavaScript, PHP, Python und Ruby. - -**Installation:** - -```bash -npm install lingo.dev -``` - -**Verwendung:** - -```ts -import { LingoDotDevEngine } from "lingo.dev/sdk"; - -const lingoDotDev = new LingoDotDevEngine({ - apiKey: process.env.LINGODOTDEV_API_KEY, -}); - -// Translate objects (preserves structure) -const translated = await lingoDotDev.localizeObject( - { greeting: "Hello", farewell: "Goodbye" }, - { sourceLocale: "en", targetLocale: "es" }, -); -// { greeting: "Hola", farewell: "Adiós" } - -// Translate text -const text = await lingoDotDev.localizeText("Hello!", { - sourceLocale: "en", - targetLocale: "fr", -}); - -// Translate to multiple languages at once -const results = await lingoDotDev.batchLocalizeText("Hello!", { - sourceLocale: "en", - targetLocales: ["es", "fr", "de"], -}); - -// Translate chat (preserves speaker names) -const chat = await lingoDotDev.localizeChat( - [{ name: "Alice", text: "Hello!" }], - { sourceLocale: "en", targetLocale: "es" }, -); - -// Translate HTML (preserves markup) -const html = await lingoDotDev.localizeHtml("
- Lingo.dev - Kit de herramientas i18n de código abierto para localización - impulsada por LLM + Herramientas de ingeniería de localización de código abierto. Conéctese a la + plataforma de ingeniería de localización Lingo.dev para obtener traducciones + consistentes y de calidad.
- MCP •CLI • - CI/CD •SDK • - Compilador + API de Lingo • + Lingo React MCP • + CLI de Lingo • + Acción de GitHub de Lingo • + + Compilador de Lingo para React (Alfa temprana) +
@@ -72,51 +77,22 @@ ## 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()` | - ---- - -### Lingo.dev MCP - -Configurar i18n en aplicaciones React es notoriamente propenso a errores, incluso para desarrolladores experimentados. Los asistentes de codificación con IA lo empeoran: alucinan APIs inexistentes, olvidan configuraciones de middleware, rompen el enrutamiento o implementan media solución antes de perderse. El problema es que la configuración de i18n requiere una secuencia precisa de cambios coordinados en múltiples archivos (enrutamiento, middleware, componentes, configuración), y los LLM tienen dificultades para mantener ese contexto. +| Herramienta | Qué hace | Comando rápido | +| -------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------- | +| [**Lingo React MCP**](#lingodev-mcp) | Configuración de i18n asistida por IA para apps React | Prompt: `Set up i18n` | +| [**CLI de Lingo**](#lingodev-cli) | Localiza archivos JSON, YAML, markdown, CSV, PO | `npx lingo.dev@latest run` | +| [**Acción de GitHub de Lingo**](#lingodev-cicd) | Localización continua en GitHub Actions | `uses: lingodotdev/lingo.dev@main` | +| [**Compilador de Lingo para React**](#lingodev-compiler) | Localización de React en tiempo de compilación sin wrappers i18n | `withLingo()` plugin | -Lingo.dev MCP resuelve esto dando a los asistentes de IA acceso estructurado al conocimiento de i18n específico del framework. En lugar de adivinar, tu asistente sigue patrones de implementación verificados para Next.js, React Router y TanStack Start. +### Motores de localización -**IDEs compatibles:** +Estas herramientas se conectan a [motores de localización](https://lingo.dev) – APIs de traducción con estado que crea en la plataforma de ingeniería de localización Lingo.dev. Cada motor mantiene glosarios, voz de marca e instrucciones por idioma en cada solicitud, [reduciendo errores de terminología entre 16.6–44.6%](https://lingo.dev/research/retrieval-augmented-localization). O [use su propio LLM](#lingodev-cli). -- Claude Code -- Cursor -- GitHub Copilot Agents -- Codex (OpenAI) - -**Frameworks compatibles:** - -- Next.js (App Router y Pages Router v13-16) -- TanStack Start (v1) -- React Router (v7) - -**Uso:** - -Después de configurar el servidor MCP en tu IDE ([ver guías de inicio rápido](https://lingo.dev/en/mcp)), solicita a tu asistente: - -``` -Set up i18n with the following locales: en, es, and pt-BR. The default locale is 'en'. -``` - -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 +### Lingo.dev MCP -**Nota:** La generación de código asistida por IA es no determinista. Revisa el código generado antes de hacer commit. +Configurar i18n en aplicaciones React es propenso a errores – incluso los asistentes de código con IA alucinan APIs inexistentes y rompen el enrutamiento. Lingo.dev MCP proporciona a los asistentes de IA acceso estructurado a conocimiento de i18n específico por framework para Next.js, React Router y TanStack Start. Funciona con Claude Code, Cursor, GitHub Copilot Agents y Codex. [Leer la documentación →](https://lingo.dev/en/mcp) @@ -124,115 +100,20 @@ El asistente: ### CLI de Lingo.dev -Mantener las traducciones sincronizadas es tedioso. Añades una nueva cadena, olvidas traducirla, envías una interfaz rota a usuarios internacionales. O envías archivos JSON a traductores, esperas días y luego fusionas manualmente su trabajo. Escalar a más de 10 idiomas significa gestionar cientos de archivos que constantemente se dessincronizan. - -El CLI de Lingo.dev automatiza esto. Apúntalo a tus archivos de traducción, ejecuta un comando y cada locale se actualiza. Un archivo de bloqueo rastrea lo que ya está traducido, por lo que solo pagas por contenido nuevo o modificado. Compatible con archivos JSON, YAML, CSV, PO y markdown. - -**Configuración:** +Localice archivos JSON, YAML, markdown, CSV y PO en un solo comando. Un archivo de bloqueo rastrea lo que ya está localizado – solo se procesa el contenido nuevo o modificado. Usa por defecto su motor de localización en Lingo.dev, o traiga su propio LLM (OpenAI, Anthropic, Google, Mistral, OpenRouter, Ollama). ```bash -# Initialize project npx lingo.dev@latest init - -# Run translations 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) - -**Configuración:** - -El comando `init` genera un archivo `i18n.json`. Configura los idiomas y buckets: - -```json -{ - "$schema": "https://lingo.dev/schema/i18n.json", - "version": "1.10", - "locale": { - "source": "en", - "targets": ["es", "fr", "de"] - }, - "buckets": { - "json": { - "include": ["locales/[locale].json"] - } - } -} -``` - -El campo `provider` es opcional (por defecto usa Lingo.dev Engine). Para proveedores de LLM personalizados: - -```json -{ - "provider": { - "id": "openai", - "model": "gpt-4o-mini", - "prompt": "Translate from {source} to {target}" - } -} -``` - -**Proveedores de LLM compatibles:** - -- Lingo.dev Engine (recomendado) -- OpenAI -- Anthropic -- Google -- Mistral -- OpenRouter -- Ollama - -[Leer la documentación →](https://lingo.dev/en/cli) +[Lee la documentación →](https://lingo.dev/en/docs/cli) --- ### Lingo.dev CI/CD -Las traducciones son la funcionalidad que siempre está "casi lista". Los ingenieros fusionan código sin actualizar los idiomas. QA detecta traducciones faltantes en staging, o peor aún, los usuarios las detectan en producción. La causa raíz: la traducción es un paso manual que es fácil omitir bajo presión de plazos. - -Lingo.dev CI/CD hace que las traducciones sean automáticas. Cada push activa la traducción. Las cadenas faltantes se completan antes de que el código llegue a producción. No se requiere disciplina: el pipeline se encarga de ello. - -**Plataformas compatibles:** - -- GitHub Actions -- GitLab CI/CD -- Bitbucket Pipelines - -**Configuración de GitHub Actions:** - -Crea `.github/workflows/translate.yml`: - -```yaml -name: Translate -on: - push: - branches: [main] -permissions: - contents: write -jobs: - translate: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Lingo.dev - uses: lingodotdev/lingo.dev@main - with: - api-key: ${{ secrets.LINGODOTDEV_API_KEY }} -``` - -**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 - -**Opciones de flujo de trabajo:** - -Confirmar traducciones directamente: +Localización continua en tu pipeline. Cada push activa la localización: las cadenas faltantes se completan antes de que el código llegue a producción. Compatible con GitHub Actions, GitLab CI/CD y Bitbucket Pipelines. ```yaml uses: lingodotdev/lingo.dev@main @@ -240,258 +121,52 @@ with: api-key: ${{ secrets.LINGODOTDEV_API_KEY }} ``` -Crea pull requests con traducciones: - -```yaml -uses: lingodotdev/lingo.dev@main -with: - api-key: ${{ secrets.LINGODOTDEV_API_KEY }} - pull-request: true -env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} -``` - -**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 | - -[Consulta la documentación →](https://lingo.dev/en/ci/github) +[Lee la documentación →](https://lingo.dev/en/docs/integrations) --- -### SDK de Lingo.dev - -Los archivos de traducción estáticos funcionan para etiquetas de interfaz, pero ¿qué pasa con el contenido generado por usuarios? Mensajes de chat, descripciones de productos, tickets de soporte: el contenido que no existe en tiempo de compilación no puede ser pretraducido. Te quedas mostrando texto sin traducir o construyendo un pipeline de traducción personalizado. - -El SDK de Lingo.dev traduce contenido en tiempo de ejecución. Pasa cualquier texto, objeto o HTML y obtén una versión localizada. Funciona para chat en tiempo real, notificaciones dinámicas o cualquier contenido que llegue después del despliegue. Disponible para JavaScript, PHP, Python y Ruby. - -**Instalación:** - -```bash -npm install lingo.dev -``` - -**Uso:** - -```ts -import { LingoDotDevEngine } from "lingo.dev/sdk"; - -const lingoDotDev = new LingoDotDevEngine({ - apiKey: process.env.LINGODOTDEV_API_KEY, -}); - -// Translate objects (preserves structure) -const translated = await lingoDotDev.localizeObject( - { greeting: "Hello", farewell: "Goodbye" }, - { sourceLocale: "en", targetLocale: "es" }, -); -// { greeting: "Hola", farewell: "Adiós" } - -// Translate text -const text = await lingoDotDev.localizeText("Hello!", { - sourceLocale: "en", - targetLocale: "fr", -}); - -// Translate to multiple languages at once -const results = await lingoDotDev.batchLocalizeText("Hello!", { - sourceLocale: "en", - targetLocales: ["es", "fr", "de"], -}); - -// Translate chat (preserves speaker names) -const chat = await lingoDotDev.localizeChat( - [{ name: "Alice", text: "Hello!" }], - { sourceLocale: "en", targetLocale: "es" }, -); - -// Translate HTML (preserves markup) -const html = await lingoDotDev.localizeHtml("
- Lingo.dev - جعبهابزار i18n متنباز برای بومیسازی مبتنی بر LLM + ابزارهای متنباز مهندسی بومیسازی. به پلتفرم مهندسی بومیسازی Lingo.dev متصل + شوید تا ترجمههای باکیفیت و یکپارچه داشته باشید.
- MCP •CLI • - CI/CD •SDK • - Compiler + Lingo API • + Lingo React MCP • + Lingo CLI • + Lingo GitHub Action • + کامپایلر Lingo برای React (آلفای اولیه)
@@ -71,167 +74,43 @@ ## شروع سریع -| ابزار | مورد استفاده | دستور سریع | -| ---------------------------------- | --------------------------------------------------------- | ---------------------------------- | -| [**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()` | +| ابزار | کاربرد | دستور سریع | +| --------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------- | +| [**Lingo React MCP**](#lingodev-mcp) | راهاندازی i18n با کمک هوش مصنوعی برای اپلیکیشنهای React | پرامپت: `Set up i18n` | +| [**Lingo CLI**](#lingodev-cli) | بومیسازی فایلهای JSON، YAML، markdown، CSV، PO | `npx lingo.dev@latest run` | +| [**Lingo GitHub Action**](#lingodev-cicd) | بومیسازی مداوم در GitHub Actions | `uses: lingodotdev/lingo.dev@main` | +| [**کامپایلر Lingo برای React**](#lingodev-compiler) | بومیسازی React در زمان بیلد بدون نیاز به wrapper های i18n | افزونه `withLingo()` | ---- - -### Lingo.dev MCP - -راهاندازی i18n در برنامههای React بهطور شناختهشدهای مستعد خطا است - حتی برای توسعهدهندگان با تجربه. دستیاران کدنویسی AI وضعیت را بدتر میکنند: آنها APIهای غیرموجود را توهم میبینند، پیکربندیهای middleware را فراموش میکنند، مسیریابی را خراب میکنند، یا نیمی از راهحل را پیادهسازی میکنند و سپس گم میشوند. مشکل این است که راهاندازی i18n نیازمند یک توالی دقیق از تغییرات هماهنگ در چندین فایل (مسیریابی، middleware، کامپوننتها، پیکربندی) است و LLMها در حفظ آن context دچار مشکل میشوند. - -Lingo.dev MCP این مشکل را با دادن دسترسی ساختاریافته به دانش i18n خاص framework به دستیاران AI حل میکند. بهجای حدس زدن، دستیار شما الگوهای پیادهسازی تأیید شده برای Next.js، React Router و TanStack Start را دنبال میکند. - -**IDEهای پشتیبانیشده:** +### موتورهای بومیسازی -- Claude Code -- Cursor -- GitHub Copilot Agents -- Codex (OpenAI) +این ابزارها به [موتورهای بومیسازی](https://lingo.dev) متصل میشوند – APIهای ترجمهای با حافظه که روی پلتفرم مهندسی بومیسازی Lingo.dev ایجاد میکنید. هر موتور واژهنامهها، لحن برند، و دستورالعملهای هر زبان را در تمام درخواستها حفظ میکند و [خطاهای اصطلاحشناسی را ۱۶.۶ تا ۴۴.۶٪ کاهش میدهد](https://lingo.dev/research/retrieval-augmented-localization). یا [از LLM خودتان استفاده کنید](#lingodev-cli). -**frameworkهای پشتیبانیشده:** - -- Next.js (App Router و Pages Router نسخههای 13-16) -- TanStack Start (نسخه 1) -- React Router (نسخه 7) - -**استفاده:** - -پس از پیکربندی سرور MCP در IDE خود ([راهنماهای شروع سریع را ببینید](https://lingo.dev/en/mcp))، به دستیار خود دستور دهید: - -``` -Set up i18n with the following locales: en, es, and pt-BR. The default locale is 'en'. -``` - -دستیار این کارها را انجام میدهد: +--- -1. پیکربندی مسیریابی مبتنی بر locale (مثلاً `/en`، `/es`، `/pt-BR`) -2. راهاندازی کامپوننتهای تعویض زبان -3. پیادهسازی شناسایی خودکار locale -4. تولید فایلهای پیکربندی لازم +### Lingo.dev MCP -**توجه:** تولید کد به کمک AI غیرقطعی است. کد تولید شده را قبل از commit بررسی کنید. +راهاندازی i18n در اپلیکیشنهای React مستعد خطاست – حتی دستیارهای کدنویسی هوش مصنوعی APIهای وجود نداشته را توهم میبینند و مسیریابی را خراب میکنند. Lingo.dev MCP به دستیارهای هوش مصنوعی دسترسی ساختاریافته به دانش i18n مخصوص فریمورک برای Next.js، React Router و TanStack Start میدهد. با Claude Code، Cursor، GitHub Copilot Agents و Codex کار میکند. -[مطالعهی مستندات ←](https://lingo.dev/en/mcp) +[مستندات را بخوانید ←](https://lingo.dev/en/mcp) --- ### Lingo.dev CLI -همگام نگهداشتن ترجمهها خستهکننده است. شما یک رشتهی جدید اضافه میکنید، فراموش میکنید آن را ترجمه کنید، UI خراب را برای کاربران بینالمللی ارسال میکنید. یا فایلهای JSON را برای مترجمان ارسال میکنید، چند روز منتظر میمانید، سپس کار آنها را بهصورت دستی ادغام میکنید. مقیاسبندی به بیش از 10 زبان به معنای مدیریت صدها فایل است که دائماً از همگامسازی خارج میشوند. - -Lingo.dev CLI این فرآیند را خودکار میکند. آن را به فایلهای ترجمهی خود اشاره دهید، یک دستور اجرا کنید و هر locale بهروزرسانی میشود. یک lockfile پیگیری میکند که چه چیزی قبلاً ترجمه شده است، بنابراین فقط برای محتوای جدید یا تغییر یافته هزینه میپردازید. از JSON، YAML، CSV، فایلهای PO و markdown پشتیبانی میکند. - -**راهاندازی:** +فایلهای JSON، YAML، markdown، CSV و PO را با یک دستور بومیسازی کنید. یک lockfile پیگیری میکند چه چیزی قبلاً بومیسازی شده – فقط محتوای جدید یا تغییریافته پردازش میشود. بهطور پیشفرض از موتور بومیسازی شما روی Lingo.dev استفاده میکند، یا LLM خودتان را بیاورید (OpenAI، Anthropic، Google، Mistral، OpenRouter، Ollama). ```bash -# Initialize project npx lingo.dev@latest init - -# Run translations npx lingo.dev@latest run ``` -**نحوهی عملکرد:** - -1. محتوای قابل ترجمه را از فایلهای پیکربندیشده استخراج میکند -2. محتوا را برای ترجمه به ارائهدهنده LLM ارسال میکند -3. محتوای ترجمهشده را به سیستم فایل بازمینویسد -4. فایل `i18n.lock` را برای ردیابی ترجمههای کاملشده ایجاد میکند (از پردازش تکراری جلوگیری میشود) - -**پیکربندی:** - -دستور `init` یک فایل `i18n.json` تولید میکند. localeها و bucketها را پیکربندی کنید: - -```json -{ - "$schema": "https://lingo.dev/schema/i18n.json", - "version": "1.10", - "locale": { - "source": "en", - "targets": ["es", "fr", "de"] - }, - "buckets": { - "json": { - "include": ["locales/[locale].json"] - } - } -} -``` - -فیلد `provider` اختیاری است (به طور پیشفرض Lingo.dev Engine). برای ارائهدهندگان LLM سفارشی: - -```json -{ - "provider": { - "id": "openai", - "model": "gpt-4o-mini", - "prompt": "Translate from {source} to {target}" - } -} -``` - -**ارائهدهندگان LLM پشتیبانیشده:** - -- Lingo.dev Engine (توصیهشده) -- OpenAI -- Anthropic -- Google -- Mistral -- OpenRouter -- Ollama - -[مطالعهی مستندات ←](https://lingo.dev/en/cli) +[مستندات را بخوانید ←](https://lingo.dev/en/docs/cli) --- ### Lingo.dev CI/CD -ترجمهها ویژگیای هستند که همیشه «تقریباً تمام» شدهاند. مهندسان کد را بدون بهروزرسانی localeها merge میکنند. QA ترجمههای گمشده را در staging مییابد - یا بدتر، کاربران آنها را در production مییابند. علت اصلی: ترجمه یک مرحلهی دستی است که تحت فشار deadline بهراحتی قابل نادیدهگرفتن است. - -Lingo.dev CI/CD ترجمهها را خودکار میکند. هر push ترجمه را فعال میکند. رشتههای گمشده قبل از رسیدن کد به production پر میشوند. نیازی به انضباط نیست - pipeline آن را مدیریت میکند. - -**پلتفرمهای پشتیبانیشده:** - -- GitHub Actions -- GitLab CI/CD -- Bitbucket Pipelines - -**راهاندازی GitHub Actions:** - -فایل `.github/workflows/translate.yml` را ایجاد کنید: - -```yaml -name: Translate -on: - push: - branches: [main] -permissions: - contents: write -jobs: - translate: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Lingo.dev - uses: lingodotdev/lingo.dev@main - with: - api-key: ${{ secrets.LINGODOTDEV_API_KEY }} -``` - -**الزامات راهاندازی:** - -1. مقدار `LINGODOTDEV_API_KEY` را به secrets مخزن اضافه کنید (Settings > Secrets and variables > Actions) -2. برای workflowهای PR: گزینه "Allow GitHub Actions to create and approve pull requests" را در Settings > Actions > General فعال کنید - -**گزینههای workflow:** - -ترجمهها را مستقیماً commit کنید: +بومیسازی مداوم در خط لوله شما. هر push باعث فعالسازی بومیسازی میشود – رشتههای گمشده قبل از رسیدن کد به محیط تولید تکمیل میشوند. از GitHub Actions، GitLab CI/CD و Bitbucket Pipelines پشتیبانی میکند. ```yaml uses: lingodotdev/lingo.dev@main @@ -239,254 +118,48 @@ with: api-key: ${{ secrets.LINGODOTDEV_API_KEY }} ``` -ایجاد pull request با ترجمهها: - -```yaml -uses: lingodotdev/lingo.dev@main -with: - api-key: ${{ secrets.LINGODOTDEV_API_KEY }} - pull-request: true -env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} -``` - -**ورودیهای موجود:** - -| ورودی | پیشفرض | توضیحات | -| -------------------- | ---------------------------------------------- | ----------------------------- | -| `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) +[مستندات را بخوانید ←](https://lingo.dev/en/docs/integrations) --- -### Lingo.dev SDK +### Lingo.dev API -فایلهای ترجمه استاتیک برای برچسبهای UI کار میکنند، اما محتوای تولید شده توسط کاربر چطور؟ پیامهای چت، توضیحات محصول، تیکتهای پشتیبانی - محتوایی که در زمان build وجود ندارد نمیتواند از پیش ترجمه شود. شما مجبورید متن ترجمه نشده را نمایش دهید یا یک pipeline ترجمه سفارشی بسازید. +موتور بومیسازی خود را مستقیماً از کد backend فراخوانی کنید. بومیسازی همزمان و ناهمزمان با تحویل webhook، جداسازی خطا برای هر locale و پیشرفت لحظهای از طریق WebSocket. -SDK سرویس Lingo.dev محتوا را در زمان اجرا ترجمه میکند. هر متن، شیء یا HTML را ارسال کنید و نسخه محلیسازی شده را دریافت کنید. برای چت real-time، اعلانهای پویا، یا هر محتوایی که پس از deployment میرسد کار میکند. برای JavaScript، PHP، Python و Ruby در دسترس است. - -**نصب:** - -```bash -npm install lingo.dev -``` - -**استفاده:** - -```ts -import { LingoDotDevEngine } from "lingo.dev/sdk"; - -const lingoDotDev = new LingoDotDevEngine({ - apiKey: process.env.LINGODOTDEV_API_KEY, -}); - -// Translate objects (preserves structure) -const translated = await lingoDotDev.localizeObject( - { greeting: "Hello", farewell: "Goodbye" }, - { sourceLocale: "en", targetLocale: "es" }, -); -// { greeting: "Hola", farewell: "Adiós" } - -// Translate text -const text = await lingoDotDev.localizeText("Hello!", { - sourceLocale: "en", - targetLocale: "fr", -}); - -// Translate to multiple languages at once -const results = await lingoDotDev.batchLocalizeText("Hello!", { - sourceLocale: "en", - targetLocales: ["es", "fr", "de"], -}); - -// Translate chat (preserves speaker names) -const chat = await lingoDotDev.localizeChat( - [{ name: "Alice", text: "Hello!" }], - { sourceLocale: "en", targetLocale: "es" }, -); - -// Translate HTML (preserves markup) -const html = await lingoDotDev.localizeHtml("
- Lingo.dev - Boîte à outils i18n open-source pour la localisation assistée - par LLM + Outils d'ingénierie de localisation open source. Connectez-vous à la + plateforme d'ingénierie de localisation Lingo.dev pour des traductions + cohérentes et de qualité.
- MCP •CLI • - CI/CD •SDK • - Compilateur + API Lingo • + Lingo React MCP • + CLI Lingo • + Action GitHub Lingo • + Compilateur Lingo pour React (Alpha précoce)
@@ -72,51 +75,22 @@ ## 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 à la compilation sans wrappers i18n | Plugin `withLingo()` | +| Outil | Ce qu'il fait | Commande rapide | +| ------------------------------------------------------ | ----------------------------------------------------------------- | ---------------------------------- | +| [**Lingo React MCP**](#lingodev-mcp) | Configuration i18n assistée par IA pour applications React | Prompt : `Set up i18n` | +| [**CLI Lingo**](#lingodev-cli) | Localise les fichiers JSON, YAML, markdown, CSV, PO | `npx lingo.dev@latest run` | +| [**Action GitHub Lingo**](#lingodev-cicd) | Localisation continue dans GitHub Actions | `uses: lingodotdev/lingo.dev@main` | +| [**Compilateur Lingo pour React**](#lingodev-compiler) | Localisation React au moment de la compilation sans wrappers i18n | Plugin `withLingo()` | ---- - -### Lingo.dev MCP - -La configuration de l'i18n dans les applications React est notoirement sujette aux erreurs, même pour les développeurs expérimentés. Les assistants de codage IA aggravent la situation : ils hallucinent des API inexistantes, oublient les configurations de middleware, cassent le routage ou implémentent une demi-solution avant de se perdre. Le problème est que la configuration i18n nécessite une séquence précise de modifications coordonnées sur plusieurs fichiers (routage, middleware, composants, configuration), et les LLM ont du mal à maintenir ce contexte. - -Lingo.dev MCP résout ce problème en donnant aux assistants IA un accès structuré aux connaissances i18n spécifiques aux frameworks. Au lieu de deviner, votre assistant suit des modèles d'implémentation vérifiés pour Next.js, React Router et TanStack Start. - -**IDE pris en charge :** +### Moteurs de localisation -- Claude Code -- Cursor -- GitHub Copilot Agents -- Codex (OpenAI) +Ces outils se connectent à des [moteurs de localisation](https://lingo.dev) – des API de traduction avec état que vous créez sur la plateforme d'ingénierie de localisation Lingo.dev. Chaque moteur conserve les glossaires, le ton de marque et les instructions par locale à travers chaque requête, [réduisant les erreurs terminologiques de 16,6 à 44,6 %](https://lingo.dev/research/retrieval-augmented-localization). Ou [utilisez votre propre LLM](#lingodev-cli). -**Frameworks pris en charge :** - -- Next.js (App Router & Pages Router v13-16) -- TanStack Start (v1) -- React Router (v7) - -**Utilisation :** - -Après avoir configuré le serveur MCP dans votre IDE ([voir les guides de démarrage rapide](https://lingo.dev/en/mcp)), demandez à votre assistant : - -``` -Set up i18n with the following locales: en, es, and pt-BR. The default locale is 'en'. -``` - -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 -3. Implémenter la détection automatique de la locale -4. Générer les fichiers de configuration nécessaires +### Lingo.dev MCP -**Remarque :** la génération de code assistée par IA est non déterministe. Vérifiez le code généré avant de le commiter. +Configurer l'i18n dans les applications React est source d'erreurs – même les assistants de codage IA hallucinent des API inexistantes et cassent le routage. Lingo.dev MCP donne aux assistants IA un accès structuré aux connaissances i18n spécifiques aux frameworks pour Next.js, React Router et TanStack Start. Fonctionne avec Claude Code, Cursor, GitHub Copilot Agents et Codex. [Lire la documentation →](https://lingo.dev/en/mcp) @@ -124,115 +98,20 @@ L'assistant va : ### CLI Lingo.dev -Maintenir les traductions synchronisées est fastidieux. Vous ajoutez une nouvelle chaîne, oubliez de la traduire, et livrez une interface cassée aux utilisateurs internationaux. Ou vous envoyez des fichiers JSON aux traducteurs, attendez des jours, puis fusionnez manuellement leur travail. Passer à 10+ langues signifie gérer des centaines de fichiers qui dérivent constamment. - -Le CLI Lingo.dev automatise cela. Pointez-le vers vos fichiers de traduction, exécutez une commande, et chaque locale se met à jour. Un fichier de verrouillage suit ce qui est déjà traduit, vous ne payez donc que pour le contenu nouveau ou modifié. Prend en charge les fichiers JSON, YAML, CSV, PO et markdown. - -**Configuration :** +Localisez les fichiers JSON, YAML, markdown, CSV et PO en une seule commande. Un fichier de verrouillage suit ce qui est déjà localisé – seul le contenu nouveau ou modifié est traité. Se connecte par défaut à votre moteur de localisation sur Lingo.dev, ou utilisez votre propre LLM (OpenAI, Anthropic, Google, Mistral, OpenRouter, Ollama). ```bash -# Initialize project npx lingo.dev@latest init - -# Run translations npx lingo.dev@latest run ``` -**Fonctionnement :** - -1. Extrait le contenu traduisible des fichiers configurés -2. Envoie le contenu au fournisseur LLM pour traduction -3. Écrit le contenu traduit dans le système de fichiers -4. Crée un fichier `i18n.lock` pour suivre les traductions terminées (évite le traitement redondant) - -**Configuration :** - -La commande `init` génère un fichier `i18n.json`. Configurez les locales et les buckets : - -```json -{ - "$schema": "https://lingo.dev/schema/i18n.json", - "version": "1.10", - "locale": { - "source": "en", - "targets": ["es", "fr", "de"] - }, - "buckets": { - "json": { - "include": ["locales/[locale].json"] - } - } -} -``` - -Le champ `provider` est optionnel (par défaut : Lingo.dev Engine). Pour utiliser des fournisseurs LLM personnalisés : - -```json -{ - "provider": { - "id": "openai", - "model": "gpt-4o-mini", - "prompt": "Translate from {source} to {target}" - } -} -``` - -**Fournisseurs LLM pris en charge :** - -- Lingo.dev Engine (recommandé) -- OpenAI -- Anthropic -- Google -- Mistral -- OpenRouter -- Ollama - -[Lire la documentation →](https://lingo.dev/en/cli) +[Lire la documentation →](https://lingo.dev/en/docs/cli) --- -### Lingo.dev CI/CD - -Les traductions sont la fonctionnalité qui est toujours "presque terminée". Les ingénieurs fusionnent le code sans mettre à jour les locales. L'assurance qualité détecte les traductions manquantes en staging - ou pire, les utilisateurs les détectent en production. La cause profonde : la traduction est une étape manuelle facile à ignorer sous la pression des délais. - -Lingo.dev CI/CD rend les traductions automatiques. Chaque push déclenche la traduction. Les chaînes manquantes sont complétées avant que le code n'atteigne la production. Aucune discipline requise - le pipeline s'en charge. - -**Plateformes prises en charge :** - -- GitHub Actions -- GitLab CI/CD -- Bitbucket Pipelines +### CI/CD Lingo.dev -**Configuration GitHub Actions :** - -Créez `.github/workflows/translate.yml` : - -```yaml -name: Translate -on: - push: - branches: [main] -permissions: - contents: write -jobs: - translate: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Lingo.dev - uses: lingodotdev/lingo.dev@main - with: - api-key: ${{ secrets.LINGODOTDEV_API_KEY }} -``` - -**Prérequis de configuration :** - -1. Ajoutez `LINGODOTDEV_API_KEY` aux secrets du dépôt (Settings > Secrets and variables > Actions) -2. Pour les workflows PR : activez « Allow GitHub Actions to create and approve pull requests » dans Paramètres > Actions > Général - -**Options de workflow :** - -Commiter les traductions directement : +Localisation continue dans votre pipeline. Chaque push déclenche la localisation – les chaînes manquantes sont complétées avant que le code n'atteigne la production. Compatible avec GitHub Actions, GitLab CI/CD et Bitbucket Pipelines. ```yaml uses: lingodotdev/lingo.dev@main @@ -240,229 +119,23 @@ with: api-key: ${{ secrets.LINGODOTDEV_API_KEY }} ``` -Créer des pull requests avec les traductions : - -```yaml -uses: lingodotdev/lingo.dev@main -with: - api-key: ${{ secrets.LINGODOTDEV_API_KEY }} - pull-request: true -env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} -``` - -**Entrées disponibles :** - -| Entrée | Défaut | Description | -| -------------------- | ---------------------------------------------- | ------------------------------------- | -| `api-key` | (requis) | Clé API Lingo.dev | -| `pull-request` | `false` | Créer une PR au lieu de commit direct | -| `commit-message` | `"feat: update translations via @LingoDotDev"` | Message de commit personnalisé | -| `pull-request-title` | `"feat: update translations via @LingoDotDev"` | Titre de PR personnalisé | -| `working-directory` | `"."` | Répertoire d'exécution | -| `parallel` | `false` | Activer le traitement parallèle | - -[Lire la documentation →](https://lingo.dev/en/ci/github) +[Lire la documentation →](https://lingo.dev/en/docs/integrations) --- -### SDK Lingo.dev +### API Lingo.dev -Les fichiers de traduction statiques fonctionnent pour les libellés d'interface, mais qu'en est-il du contenu généré par les utilisateurs ? Messages de chat, descriptions de produits, tickets de support - le contenu qui n'existe pas au moment de la compilation ne peut pas être pré-traduit. Vous êtes obligé d'afficher du texte non traduit ou de créer un pipeline de traduction personnalisé. +Appelez votre moteur de localisation directement depuis votre code backend. Localisation synchrone et asynchrone avec livraison par webhook, isolation des échecs par locale et progression en temps réel via WebSocket. -Le SDK Lingo.dev traduit le contenu à l'exécution. Transmettez n'importe quel texte, objet ou HTML et obtenez une version localisée. Fonctionne pour le chat en temps réel, les notifications dynamiques ou tout contenu qui arrive après le déploiement. Disponible pour JavaScript, PHP, Python et Ruby. - -**Installation :** - -```bash -npm install lingo.dev -``` - -**Utilisation :** - -```ts -import { LingoDotDevEngine } from "lingo.dev/sdk"; - -const lingoDotDev = new LingoDotDevEngine({ - apiKey: process.env.LINGODOTDEV_API_KEY, -}); - -// Translate objects (preserves structure) -const translated = await lingoDotDev.localizeObject( - { greeting: "Hello", farewell: "Goodbye" }, - { sourceLocale: "en", targetLocale: "es" }, -); -// { greeting: "Hola", farewell: "Adiós" } - -// Translate text -const text = await lingoDotDev.localizeText("Hello!", { - sourceLocale: "en", - targetLocale: "fr", -}); - -// Translate to multiple languages at once -const results = await lingoDotDev.batchLocalizeText("Hello!", { - sourceLocale: "en", - targetLocales: ["es", "fr", "de"], -}); - -// Translate chat (preserves speaker names) -const chat = await lingoDotDev.localizeChat( - [{ name: "Alice", text: "Hello!" }], - { sourceLocale: "en", targetLocale: "es" }, -); - -// Translate HTML (preserves markup) -const html = await lingoDotDev.localizeHtml("
- Lingo.dev - LLM-સંચાલિત સ્થાનિકીકરણ માટે ઓપન-સોર્સ i18n ટૂલકિટ + ઓપન-સોર્સ સ્થાનિકીકરણ એન્જિનિયરિંગ સાધનો. સુસંગત, ગુણવત્તાયુક્ત અનુવાદો માટે + Lingo.dev સ્થાનિકીકરણ એન્જિનિયરિંગ પ્લેટફોર્મ સાથે જોડાઓ.
- MCP •CLI • - CI/CD •SDK • - Compiler + Lingo API • + Lingo React MCP • + Lingo CLI • + Lingo GitHub Action • + React માટે Lingo Compiler (પ્રારંભિક આલ્ફા)
@@ -71,51 +74,22 @@ ## ઝડપી શરૂઆત -| ટૂલ | ઉપયોગ કેસ | ઝડપી કમાન્ડ | -| ---------------------------------- | ---------------------------------------------- | ---------------------------------- | -| [**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()` પ્લગઇન | +| સાધન | તે શું કરે છે | ઝડપી આદેશ | +| -------------------------------------------------- | ------------------------------------------------------ | ---------------------------------- | +| [**Lingo React MCP**](#lingodev-mcp) | React એપ્લિકેશનો માટે AI-સહાયિત i18n સેટઅપ | પ્રોમ્પ્ટ: `Set up i18n` | +| [**Lingo CLI**](#lingodev-cli) | JSON, YAML, markdown, CSV, PO ફાઇલોનું સ્થાનિકીકરણ કરો | `npx lingo.dev@latest run` | +| [**Lingo GitHub Action**](#lingodev-cicd) | GitHub Actions માં સતત સ્થાનિકીકરણ | `uses: lingodotdev/lingo.dev@main` | +| [**Lingo Compiler for React**](#lingodev-compiler) | i18n રેપર વગર બિલ્ડ-ટાઇમ React સ્થાનિકીકરણ | `withLingo()` પ્લગઇન | ---- - -### Lingo.dev MCP - -React એપ્સમાં i18n સેટઅપ કરવું કુખ્યાત રીતે ભૂલ-પ્રવણ છે - અનુભવી ડેવલપર્સ માટે પણ. AI કોડિંગ સહાયકો તેને વધુ ખરાબ બનાવે છે: તેઓ અસ્તિત્વમાં ન હોય તેવા API હેલ્યુસિનેટ કરે છે, મિડલવેર કન્ફિગરેશન્સ ભૂલી જાય છે, રાઉટિંગ તોડે છે, અથવા ખોવાઈ જતાં પહેલાં અડધું સોલ્યુશન લાગુ કરે છે. સમસ્યા એ છે કે i18n સેટઅપને બહુવિધ ફાઇલો (રાઉટિંગ, મિડલવેર, કમ્પોનન્ટ્સ, કન્ફિગરેશન) પર સંકલિત ફેરફારોના ચોક્કસ ક્રમની જરૂર છે, અને LLM તે સંદર્ભ જાળવવામાં સંઘર્ષ કરે છે. - -Lingo.dev MCP આને AI સહાયકોને ફ્રેમવર્ક-વિશિષ્ટ i18n જ્ઞાનની સ્ટ્રક્ચર્ડ એક્સેસ આપીને હલ કરે છે. અનુમાન લગાવવાને બદલે, તમારો સહાયક Next.js, React Router અને TanStack Start માટે વેરિફાઇડ ઇમ્પ્લિમેન્ટેશન પેટર્નને અનુસરે છે. - -**સપોર્ટેડ IDE:** +### સ્થાનિકીકરણ એન્જિનો -- Claude Code -- Cursor -- GitHub Copilot Agents -- Codex (OpenAI) +આ સાધનો [સ્થાનિકીકરણ એન્જિનો](https://lingo.dev) સાથે જોડાય છે – સ્ટેટફુલ અનુવાદ API જે તમે Lingo.dev સ્થાનિકીકરણ એન્જિનિયરિંગ પ્લેટફોર્મ પર બનાવો છો. દરેક એન્જિન દરેક રિક્વેસ્ટમાં ગ્લોસરી, બ્રાન્ડ વૉઇસ અને લોકેલ-વિશિષ્ટ સૂચનાઓ જાળવી રાખે છે, જે [શબ્દકોશ ભૂલો 16.6–44.6% સુધી ઘટાડે છે](https://lingo.dev/research/retrieval-augmented-localization). અથવા [તમારું પોતાનું LLM લાવો](#lingodev-cli). -**સપોર્ટેડ ફ્રેમવર્ક્સ:** - -- Next.js (App Router & Pages Router v13-16) -- TanStack Start (v1) -- React Router (v7) - -**ઉપયોગ:** - -તમારા IDEમાં MCP સર્વર કન્ફિગર કર્યા પછી ([ક્વિકસ્ટાર્ટ ગાઇડ્સ જુઓ](https://lingo.dev/en/mcp)), તમારા સહાયકને પ્રોમ્પ્ટ કરો: - -``` -Set up i18n with the following locales: en, es, and pt-BR. The default locale is 'en'. -``` - -સહાયક આ કરશે: +--- -1. લોકેલ-આધારિત રાઉટિંગ કન્ફિગર કરશે (દા.ત., `/en`, `/es`, `/pt-BR`) -2. ભાષા સ્વિચિંગ કમ્પોનન્ટ્સ સેટઅપ કરશે -3. ઓટોમેટિક લોકેલ ડિટેક્શન લાગુ કરશે -4. જરૂરી કન્સીફિગરેશન ફાઇલો જનરેટ કરશે +### Lingo.dev MCP -**નોંધ:** AI-સહાયિત કોડ જનરેશન નોન-ડિટર્મિનિસ્ટિક છે. કમિટ કરતાં પહેલાં જનરેટ કરેલા કોડની સમીક્ષા કરો. +React એપ્લિકેશનોમાં i18n સેટઅપ કરવું ભૂલ-પ્રવણ છે – AI કોડિંગ સહાયકો પણ અસ્તિત્વમાં નથી એવા API વિશે ભ્રમણા કરે છે અને રૂટિંગ તોડે છે. Lingo.dev MCP, AI સહાયકોને Next.js, React Router અને TanStack Start માટે ફ્રેમવર્ક-વિશિષ્ટ i18n જ્ઞાનની સંરચિત ઍક્સેસ આપે છે. Claude Code, Cursor, GitHub Copilot Agents અને Codex સાથે કામ કરે છે. [ડોક્સ વાંચો →](https://lingo.dev/en/mcp) @@ -123,115 +97,20 @@ Set up i18n with the following locales: en, es, and pt-BR. The default locale is ### Lingo.dev CLI -ટ્રાન્સલેશન્સને સિંકમાં રાખવું કંટાળાજનક છે. તમે નવી સ્ટ્રિંગ ઉમેરો છો, તેનું ભાષાંતર કરવાનું ભૂલી જાઓ છો, આંતરરાષ્ટ્રીય યુઝર્સને તૂટેલું UI શિપ કરો છો. અથવા તમે ટ્રાન્સલેટર્સને JSON ફાઇલો મોકલો છો, દિવસો રાહ જુઓ છો, પછી તેમના કામને મેન્યુઅલી પાછા મર્જ કરો છો. 10+ ભાષાઓ સુધી સ્કેલ કરવાનો અર્થ છે સેંકડો ફાઇલોનું સંચાલન કરવું જે સતત સિંકની બહાર જાય છે. - -Lingo.dev CLI આને ઓટોમેટ કરે છે. તેને તમારી ટ્રાન્સલેશન ફાઇલો તરફ પોઇન્ટ કરો, એક કમાન્ડ ચલાવો, અને દરેક લોકેલ અપડેટ થાય છે. લોકફાઇલ ટ્રેક કરે છે કે શું પહેલેથી ભાષાંતરિત છે, જેથી તમે ફક્ત નવી અથવા બદલાયેલી કન્ટેન્ટ માટે જ ચૂકવો છો. JSON, YAML, CSV, PO ફાઇલો અને markdown સપોર્ટ કરે છે. - -**સેટઅપ:** +એક આદેશમાં JSON, YAML, markdown, CSV અને PO ફાઇલોનું સ્થાનિકીકરણ કરો. લૉકફાઇલ શું પહેલેથી સ્થાનિકીકૃત થયું છે તે ટ્રૅક કરે છે – ફક્ત નવી અથવા બદલાયેલી સામગ્રી પ્રોસેસ થાય છે. Lingo.dev પર તમારા સ્થાનિકીકરણ એન્જિનને ડિફૉલ્ટ કરે છે, અથવા તમારું પોતાનું LLM લાવો (OpenAI, Anthropic, Google, Mistral, OpenRouter, Ollama). ```bash -# Initialize project npx lingo.dev@latest init - -# Run translations npx lingo.dev@latest run ``` -**તે કેવી રીતે કામ કરે છે:** - -1. કન્ફિગર કરેલી ફાઇલોમાંથી અનુવાદ યોગ્ય કન્ટેન્ટ એક્સટ્રેક્ટ કરે છે -2. અનુવાદ માટે LLM પ્રોવાઇડરને કન્ટેન્ટ મોકલે છે -3. અનુવાદિત કન્ટેન્ટને ફરીથી ફાઇલ સિસ્ટમમાં લખે છે -4. સંપૂર્ણ થયેલા અનુવાદોને ટ્રેક કરવા માટે `i18n.lock` ફાઇલ બનાવે છે (અવરોધક પ્રોસેસિંગ ટાળે છે) - -**કન્ફિગરેશન:** - -`init` કમાન્ડ `i18n.json` ફાઇલ જનરેટ કરે છે. લોકેલ અને બકેટ્સ કન્ફિગર કરો: - -```json -{ - "$schema": "https://lingo.dev/schema/i18n.json", - "version": "1.10", - "locale": { - "source": "en", - "targets": ["es", "fr", "de"] - }, - "buckets": { - "json": { - "include": ["locales/[locale].json"] - } - } -} -``` - -`provider` ફીલ્ડ વૈકલ્પિક છે (ડિફૉલ્ટ Lingo.dev Engine). કસ્ટમ LLM પ્રોવાઇડર્સ માટે: - -```json -{ - "provider": { - "id": "openai", - "model": "gpt-4o-mini", - "prompt": "Translate from {source} to {target}" - } -} -``` - -**સપોર્ટેડ LLM પ્રોવાઇડર્સ:** - -- Lingo.dev Engine (ભલામણ કરેલ) -- OpenAI -- Anthropic -- Google -- Mistral -- OpenRouter -- Ollama - -[ડોક્સ વાંચો →](https://lingo.dev/en/cli) +[દસ્તાવેજો વાંચો →](https://lingo.dev/en/docs/cli) --- ### Lingo.dev CI/CD -અનુવાદો એ એવી ફીચર છે જે હંમેશા "લગભગ પૂર્ણ" હોય છે. એન્જિનિયરો લોકેલ્સ અપડેટ કર્યા વિના કોડ મર્જ કરે છે. QA સ્ટેજિંગમાં ખૂટતા અનુવાદો પકડે છે - અથવા વધુ ખરાબ, યુઝર્સ તેને પ્રોડક્શનમાં પકડે છે. મૂળ કારણ: અનુવાદ એક મેન્યુઅલ સ્ટેપ છે જે ડેડલાઇન પ્રેશર હેઠળ સ્કિપ કરવું સરળ છે. - -Lingo.dev CI/CD અનુવાદોને ઓટોમેટિક બનાવે છે. દરેક પુશ અનુવાદને ટ્રિગર કરે છે. કોડ પ્રોડક્શનમાં પહોંચે તે પહેલાં ખૂટતી સ્ટ્રિંગ્સ ભરાઈ જાય છે. કોઈ ડિસિપ્લિનની જરૂર નથી - પાઇપલાઇન તેને હેન્ડલ કરે છે. - -**સપોર્ટેડ પ્લેટફોર્મ્સ:** - -- GitHub Actions -- GitLab CI/CD -- Bitbucket Pipelines - -**GitHub Actions સેટઅપ:** - -`.github/workflows/translate.yml` બનાવો: - -```yaml -name: Translate -on: - push: - branches: [main] -permissions: - contents: write -jobs: - translate: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Lingo.dev - uses: lingodotdev/lingo.dev@main - with: - api-key: ${{ secrets.LINGODOTDEV_API_KEY }} -``` - -**સેટઅપ આવશ્યકતાઓ:** - -1. રીપોઝિટરી સિક્રેટ્સમાં `LINGODOTDEV_API_KEY` ઉમેરો (Settings > Secrets and variables > Actions) -2. PR વર્કફ્લો માટે: Settings > Actions > General માં "Allow GitHub Actions to create and approve pull requests" સક્રિય કરો - -**વર્કફ્લો વિકલ્પો:** - -અનુવાદો સીધા કમિટ કરો: +તમારી પાઇપલાઇનમાં સતત સ્થાનિકીકરણ. દરેક પુશ સ્થાનિકીકરણને ટ્રિગર કરે છે – કોડ ઉત્પાદનમાં પહોંચે તે પહેલાં ખૂટતી સ્ટ્રિંગ્સ ભરાઈ જાય છે. GitHub Actions, GitLab CI/CD અને Bitbucket Pipelines ને સપોર્ટ કરે છે. ```yaml uses: lingodotdev/lingo.dev@main @@ -239,254 +118,48 @@ with: api-key: ${{ secrets.LINGODOTDEV_API_KEY }} ``` -ભાષાંતરો સાથે pull requests બનાવો: - -```yaml -uses: lingodotdev/lingo.dev@main -with: - api-key: ${{ secrets.LINGODOTDEV_API_KEY }} - pull-request: true -env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} -``` - -**ઉપલબ્ધ inputs:** - -| Input | Default | Description | -| -------------------- | ---------------------------------------------- | ------------------------------ | -| `api-key` | (આવશ્યક) | Lingo.dev API key | -| `pull-request` | `false` | સીધા કમિટ કરવાને બદલે PR બનાવો | -| `commit-message` | `"feat: update translations via @LingoDotDev"` | કસ્ટમ commit message | -| `pull-request-title` | `"feat: update translations via @LingoDotDev"` | કસ્ટમ PR title | -| `working-directory` | `"."` | જેમાં रन કરવું તે ડિરેક્ટરી | -| `parallel` | `false` | પેરલલ પ્રોસેસિંગ સક્રિય કરો | - -[ડોક્સ વાંચો →](https://lingo.dev/en/ci/github) +[દસ્તાવેજો વાંચો →](https://lingo.dev/en/docs/integrations) --- -### Lingo.dev SDK +### Lingo.dev API -સ્ટેટિક ટ્રાન્સલેશન ફાઇલો UI લેબલ્સ માટે કામ કરે છે, પરંતુ યુઝર-જનરેટેડ કન્ટેન્ટ વિશે શું? ચેટ મેસેજ, પ્રોડક્ટ વર્ણનો, સપોર્ટ ટિકિટ્સ - જે કન્ટેન્ટ બિલ્ડ ટાઇમ પર અસ્તિત્વમાં નથી તેનું પ્રી-ટ્રાન્સલેશન કરી શકાતું નથી. તમે અનુવાદ વિનાનું ટેક્સ્ટ બતાવવા અથવા કસ્ટમ ટ્રાન્સલેશન પાઇપલાઇન બનાવવા માટે અટવાઈ જાઓ છો. +બેકએન્ડ કોડમાંથી સીધા તમારા સ્થાનિકીકરણ એન્જિનને કૉલ કરો. વેબહૂક ડિલિવરી સાથે સિંક્રનસ અને એસિંક સ્થાનિકીકરણ, લોકેલ દીઠ નિષ્ફળતા અલગીકરણ અને WebSocket દ્વારા રિયલ-ટાઇમ પ્રગતિ. -Lingo.dev SDK રનટાઇમ પર કન્ટેન્ટનું ભાષાંતર કરે છે. કોઈપણ ટેક્સ્ટ, ઑબ્જેક્ટ અથવા HTML પાસ કરો અને લોકલાઇઝ્ડ વર્ઝન પાછું મેળવો. રિયલ-ટાઇમ ચેટ, ડાયનેમિક નોટિફિકેશન્સ અથવા ડિપ્લોયમેન્ટ પછી આવતા કોઈપણ કન્ટેન્ટ માટે કામ કરે છે. JavaScript, PHP, Python અને Ruby માટે ઉપલબ્ધ. - -**ઇન્સ્ટોલેશન:** - -```bash -npm install lingo.dev -``` - -**ઉપયોગ:** - -```ts -import { LingoDotDevEngine } from "lingo.dev/sdk"; - -const lingoDotDev = new LingoDotDevEngine({ - apiKey: process.env.LINGODOTDEV_API_KEY, -}); - -// Translate objects (preserves structure) -const translated = await lingoDotDev.localizeObject( - { greeting: "Hello", farewell: "Goodbye" }, - { sourceLocale: "en", targetLocale: "es" }, -); -// { greeting: "Hola", farewell: "Adiós" } - -// Translate text -const text = await lingoDotDev.localizeText("Hello!", { - sourceLocale: "en", - targetLocale: "fr", -}); - -// Translate to multiple languages at once -const results = await lingoDotDev.batchLocalizeText("Hello!", { - sourceLocale: "en", - targetLocales: ["es", "fr", "de"], -}); - -// Translate chat (preserves speaker names) -const chat = await lingoDotDev.localizeChat( - [{ name: "Alice", text: "Hello!" }], - { sourceLocale: "en", targetLocale: "es" }, -); - -// Translate HTML (preserves markup) -const html = await lingoDotDev.localizeHtml("
- Lingo.dev - ערכת כלים קוד פתוח ל-i18n עם תרגום מבוסס LLM + + כלי הנדסת לוקליזציה בקוד פתוח. התחברו לפלטפורמת ההנדסה של Lingo.dev לתרגומים + עקביים ואיכוtiים. +
- MCP •CLI • - CI/CD •SDK • - Compiler + Lingo API • + Lingo React MCP • + Lingo CLI • + Lingo GitHub Action • + Lingo Compiler עבור React (אלפא מוקדמת)
@@ -69,167 +74,43 @@ ## התחלה מהירה -| כלי | מקרה שימוש | פקודה מהירה | -| ---------------------------------- | -------------------------------------------------- | ---------------------------------- | -| [**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` | -| [**Compiler**](#lingodev-compiler) | לוקליזציה של React בזמן build ללא wrappers של i18n | תוסף `withLingo()` | +| כלי | מה הכלי עושה | פקודה מהירה | +| --------------------------------------------------- | ----------------------------------------------- | ---------------------------------- | +| [**Lingo React MCP**](#lingodev-mcp) | הגדרת i18n מונחית AI עבור אפליקציות React | הנחיה: `Set up i18n` | +| [**Lingo CLI**](#lingodev-cli) | לוקליזציה של קבצי JSON, YAML, markdown, CSV, PO | `npx lingo.dev@latest run` | +| [**Lingo GitHub Action**](#lingodev-cicd) | לוקליזציה רציפה ב-GitHub Actions | `uses: lingodotdev/lingo.dev@main` | +| [**Lingo Compiler עבור React**](#lingodev-compiler) | לוקליזציה של React בזמן build ללא עטיפות i18n | פלאגין `withLingo()` | ---- - -### Lingo.dev MCP - -הגדרת i18n באפליקציות React ידועה לשמצה כמועדת לשגיאות - אפילו עבור מפתחים מנוסים. עוזרי קידוד AI מחמירים את המצב: הם מזיות APIs לא קיימים, שוכחים הגדרות middleware, שוברים routing, או מיישמים חצי פתרון לפני שהם מאבדים את ההקשר. הבעיה היא שהגדרת i18n דורשת רצף מדויק של שינויים מתואמים על פני קבצים מרובים (routing, middleware, קומפוננטות, הגדרות), ו-LLMs מתקשים לשמור על ההקשר הזה. - -Lingo.dev MCP פותר זאת על ידי מתן גישה מובנית לעוזרי AI לידע i18n ספציפי לפריימוורק. במקום לנחש, העוזר שלך עוקב אחר דפוסי יישום מאומתים עבור Next.js, React Router ו-TanStack Start. - -**סביבות פיתוח נתמכות:** +### מנועי לוקליזציה -- Claude Code -- Cursor -- GitHub Copilot Agents -- Codex (OpenAI) +כלים אלה מתחברים ל[מנועי לוקליזציה](https://lingo.dev) – APIs תרגום עם מצב שנוצרים בפלטפורמת ההנדסה Lingo.dev. כל מנוע שומר מילונים, קול מותג והנחיות לפי שפה לאורך כל בקשה, [ומפחית שגיאות טרמינולוגיה ב-16.6–44.6%](https://lingo.dev/research/retrieval-augmented-localization). או [הביאו את ה-LLM שלכם](#lingodev-cli). -**פריימוורקים נתמכים:** - -- Next.js (App Router ו-Pages Router v13-16) -- TanStack Start (v1) -- React Router (v7) - -**שימוש:** - -לאחר הגדרת שרת ה-MCP בסביבת הפיתוח שלך ([ראה מדריכי התחלה מהירה](https://lingo.dev/en/mcp)), בקש מהעוזר שלך: - -``` -Set up i18n with the following locales: en, es, and pt-BR. The default locale is 'en'. -``` - -העוזר יבצע: +--- -1. הגדרת routing מבוסס locale (לדוגמה, `/en`, `/es`, `/pt-BR`) -2. הגדרת קומפוננטות להחלפת שפה -3. יישום זיהוי אוטומטי של locale -4. יצירת קבצי הגדרות נדרשים +### Lingo.dev MCP -**שים לב:** יצירת קוד בעזרת AI אינה דטרמיניסטית. בדוק את הקוד שנוצר לפני ביצוע commit. +הגדרת i18n באפליקציות React רגישה לטעויות – אפילו עוזרי קוד מבוססי AI מזייפים APIs לא קיימים ושוברים ניתוב. Lingo.dev MCP מעניק לעוזרי AI גישה מובנית לידע i18n ספציפי לפריימוורק עבור Next.js, React Router ו-TanStack Start. עובד עם Claude Code, Cursor, GitHub Copilot Agents ו-Codex. -[קרא את התיעוד ←](https://lingo.dev/en/mcp) +[קראו את התיעוד →](https://lingo.dev/en/mcp) --- ### Lingo.dev CLI -שמירה על סנכרון תרגומים היא מייגעת. אתה מוסיף מחרוזת חדשה, שוכח לתרגם אותה, משגר UI שבור למשתמשים בינלאומיים. או שאתה שולח קבצי JSON למתרגמים, ממתין ימים, ואז ממזג ידנית את עבודתם בחזרה. הרחבה ל-10+ שפות משמעותה ניהול מאות קבצים שסוטים כל הזמן מסנכרון. - -Lingo.dev CLI מבצע אוטומציה של זה. הפנה אותו לקבצי התרגום שלך, הרץ פקודה אחת, וכל locale מתעדכן. קובץ lockfile עוקב אחר מה כבר תורגם, כך שאתה משלם רק עבור תוכן חדש או ששונה. תומך ב-JSON, YAML, CSV, קבצי PO ו-markdown. - -**הגדרה:** +לוקליזציה של קבצי JSON, YAML, markdown, CSV ו-PO בפקודה אחת. קובץ נעילה עוקב אחר מה כבר תורגם – רק תוכן חדש או ששונה עובר עיבוד. ברירת המחדל היא מנוע הלוקליזציה שלכם ב-Lingo.dev, או הביאו את ה-LLM שלכם (OpenAI, Anthropic, Google, Mistral, OpenRouter, Ollama). ```bash -# Initialize project npx lingo.dev@latest init - -# Run translations npx lingo.dev@latest run ``` -**איך זה עובד:** - -1. מחלץ תוכן הניתן לתרגום מקבצים מוגדרים -2. שולח תוכן לספק LLM לתרגום -3. כותב תוכן מתורגם חזרה למערכת הקבצים -4. יוצר קובץ `i18n.lock` למעקב אחר תרגומים שהושלמו (נמנע מעיבוד מיותר) - -**הגדרות:** - -הפקודה `init` מייצרת קובץ `i18n.json`. הגדר locales ו-buckets: - -```json -{ - "$schema": "https://lingo.dev/schema/i18n.json", - "version": "1.10", - "locale": { - "source": "en", - "targets": ["es", "fr", "de"] - }, - "buckets": { - "json": { - "include": ["locales/[locale].json"] - } - } -} -``` - -השדה `provider` הוא אופציונלי (ברירת מחדל: Lingo.dev Engine). עבור ספקי LLM מותאמים אישית: - -```json -{ - "provider": { - "id": "openai", - "model": "gpt-4o-mini", - "prompt": "Translate from {source} to {target}" - } -} -``` - -**ספקי LLM נתמכים:** - -- Lingo.dev Engine (מומלץ) -- OpenAI -- Anthropic -- Google -- Mistral -- OpenRouter -- Ollama - -[קרא את התיעוד ←](https://lingo.dev/en/cli) +[קרא את התיעוד ←](https://lingo.dev/en/docs/cli) --- ### Lingo.dev CI/CD -תרגומים הם התכונה שתמיד "כמעט מוכנה". מהנדסים מבצעים merge לקוד מבלי לעדכן locales. QA מגלה תרגומים חסרים ב-staging - או גרוע מכך, משתמשים מגלים אותם ב-production. הסיבה העיקרית: תרגום הוא שלב ידני שקל לדלג עליו תחת לחץ של דדליינים. - -Lingo.dev CI/CD הופך תרגומים לאוטומטיים. כל push מפעיל תרגום. מחרוזות חסרות מתמלאות לפני שהקוד מגיע ל-production. אין צורך במשמעת - ה-pipeline מטפל בזה. - -**פלטפורמות נתמכות:** - -- GitHub Actions -- GitLab CI/CD -- Bitbucket Pipelines - -**הגדרת GitHub Actions:** - -צור `.github/workflows/translate.yml`: - -```yaml -name: Translate -on: - push: - branches: [main] -permissions: - contents: write -jobs: - translate: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Lingo.dev - uses: lingodotdev/lingo.dev@main - with: - api-key: ${{ secrets.LINGODOTDEV_API_KEY }} -``` - -**דרישות הגדרה:** - -1. הוסף `LINGODOTDEV_API_KEY` ל-secrets של ה-repository (Settings > Secrets and variables > Actions) -2. עבור workflows של PR: אפשר "Allow GitHub Actions to create and approve pull requests" ב-Settings > Actions > General - -**אפשרויות workflow:** - -בצע commit לתרגומים ישירות: +לוקליזציה רציפה בצינור העבודה שלך. כל push מפעיל לוקליזציה – מחרוזות חסרות מתמלאות לפני שהקוד מגיע לייצור. תומך ב-GitHub Actions, GitLab CI/CD ו-Bitbucket Pipelines. ```yaml uses: lingodotdev/lingo.dev@main @@ -237,250 +118,44 @@ with: api-key: ${{ secrets.LINGODOTDEV_API_KEY }} ``` -יצירת pull requests עם תרגומים: - -```yaml -uses: lingodotdev/lingo.dev@main -with: - api-key: ${{ secrets.LINGODOTDEV_API_KEY }} - pull-request: true -env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} -``` - -**פרמטרים זמינים:** - -| פרמטר | ברירת מחדל | תיאור | -| -------------------- | ---------------------------------------------- | -------------------------- | -| `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) +[קרא את התיעוד ←](https://lingo.dev/en/docs/integrations) --- -### Lingo.dev SDK +### Lingo.dev API -קבצי תרגום סטטיים עובדים עבור תוויות UI, אבל מה לגבי תוכן שנוצר על ידי משתמשים? הודעות צ'אט, תיאורי מוצרים, פניות תמיכה - תוכן שלא קיים בזמן build לא ניתן לתרגם מראש. אתה נתקע בהצגת טקסט לא מתורגם או בבניית pipeline תרגום מותאם אישית. +קרא למנוע הלוקליזציה שלך ישירות מקוד backend. לוקליזציה סינכרונית ואסינכרונית עם מסירה ב-webhook, בידוד כשלים לכל locale, והתקדמות בזמן אמת דרך WebSocket. -Lingo.dev SDK מתרגם תוכן ב-runtime. העבר כל טקסט, אובייקט או HTML וקבל בחזרה גרסה מלוקלזת. עובד עבור צ'אט בזמן אמת, התראות דינמיות או כל תוכן שמגיע לאחר deployment. זמין עבור JavaScript, PHP, Python ו-Ruby. - -**התקנה:** - -```bash -npm install lingo.dev -``` - -**שימוש:** - -```ts -import { LingoDotDevEngine } from "lingo.dev/sdk"; - -const lingoDotDev = new LingoDotDevEngine({ - apiKey: process.env.LINGODOTDEV_API_KEY, -}); - -// Translate objects (preserves structure) -const translated = await lingoDotDev.localizeObject( - { greeting: "Hello", farewell: "Goodbye" }, - { sourceLocale: "en", targetLocale: "es" }, -); -// { greeting: "Hola", farewell: "Adiós" } - -// Translate text -const text = await lingoDotDev.localizeText("Hello!", { - sourceLocale: "en", - targetLocale: "fr", -}); - -// Translate to multiple languages at once -const results = await lingoDotDev.batchLocalizeText("Hello!", { - sourceLocale: "en", - targetLocales: ["es", "fr", "de"], -}); - -// Translate chat (preserves speaker names) -const chat = await lingoDotDev.localizeChat( - [{ name: "Alice", text: "Hello!" }], - { sourceLocale: "en", targetLocale: "es" }, -); - -// Translate HTML (preserves markup) -const html = await lingoDotDev.localizeHtml("
- Lingo.dev - LLM-संचालित स्थानीयकरण के लिए ओपन-सोर्स i18n टूलकिट + ओपन-सोर्स लोकलाइज़ेशन इंजीनियरिंग टूल्स। सुसंगत, गुणवत्ता अनुवादों के लिए + Lingo.dev लोकलाइज़ेशन इंजीनियरिंग प्लेटफ़ॉर्म से कनेक्ट करें।
- MCP •CLI • - CI/CD •SDK • - Compiler + Lingo API • + Lingo React MCP • + Lingo CLI • + Lingo GitHub Action • + React के लिए Lingo Compiler (अर्ली अल्फा)
@@ -71,167 +74,43 @@ ## त्वरित शुरुआत -| टूल | उपयोग का मामला | त्वरित कमांड | -| ---------------------------------- | ---------------------------------------------------- | ---------------------------------- | -| [**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()` प्लगइन | +| टूल | यह क्या करता है | त्वरित कमांड | +| -------------------------------------------------- | ------------------------------------------------------ | ---------------------------------- | +| [**Lingo React MCP**](#lingodev-mcp) | React ऐप्स के लिए AI-असिस्टेड i18n सेटअप | प्रॉम्प्ट: `Set up i18n` | +| [**Lingo CLI**](#lingodev-cli) | JSON, YAML, markdown, CSV, PO फ़ाइलों को लोकलाइज़ करें | `npx lingo.dev@latest run` | +| [**Lingo GitHub Action**](#lingodev-cicd) | GitHub Actions में निरंतर लोकलाइज़ेशन | `uses: lingodotdev/lingo.dev@main` | +| [**Lingo Compiler for React**](#lingodev-compiler) | i18n रैपर्स के बिना बिल्ड-टाइम React लोकलाइज़ेशन | `withLingo()` प्लगइन | ---- - -### Lingo.dev MCP - -React ऐप्स में i18n सेटअप करना कुख्यात रूप से त्रुटि-प्रवण है - अनुभवी डेवलपर्स के लिए भी। AI कोडिंग असिस्टेंट इसे और खराब बना देते हैं: वे गैर-मौजूद API की कल्पना करते हैं, मिडलवेयर कॉन्फ़िगरेशन भूल जाते हैं, राउटिंग तोड़ देते हैं, या खो जाने से पहले आधा समाधान लागू करते हैं। समस्या यह है कि i18n सेटअप के लिए कई फ़ाइलों (राउटिंग, मिडलवेयर, कंपोनेंट, कॉन्फ़िगरेशन) में समन्वित परिवर्तनों के एक सटीक क्रम की आवश्यकता होती है, और LLM उस संदर्भ को बनाए रखने में संघर्ष करते हैं। - -Lingo.dev MCP इसे AI असिस्टेंट को फ्रेमवर्क-विशिष्ट i18n ज्ञान तक संरचित पहुंच देकर हल करता है। अनुमान लगाने के बजाय, आपका असिस्टेंट Next.js, React Router और TanStack Start के लिए सत्यापित कार्यान्वयन पैटर्न का पालन करता है। - -**समर्थित IDE:** +### लोकलाइज़ेशन इंजन -- Claude Code -- Cursor -- GitHub Copilot Agents -- Codex (OpenAI) +ये टूल्स [लोकलाइज़ेशन इंजन](https://lingo.dev) से कनेक्ट होते हैं – स्टेटफुल ट्रांसलेशन API जो आप Lingo.dev लोकलाइज़ेशन इंजीनियरिंग प्लेटफ़ॉर्म पर बनाते हैं। प्रत्येक इंजन हर अनुरोध में ग्लॉसरी, ब्रांड वॉइस और प्रति-लोकेल निर्देशों को संरक्षित रखता है, [शब्दावली त्रुटियों को 16.6–44.6% तक कम करता है](https://lingo.dev/research/retrieval-augmented-localization)। या [अपना खुद का LLM लाएं](#lingodev-cli)। -**समर्थित फ्रेमवर्क:** - -- Next.js (App Router और Pages Router v13-16) -- TanStack Start (v1) -- React Router (v7) - -**उपयोग:** - -अपने IDE में MCP सर्वर को कॉन्फ़िगर करने के बाद ([क्विकस्टार्ट गाइड देखें](https://lingo.dev/en/mcp)), अपने असिस्टेंट को प्रॉम्प्ट करें: - -``` -Set up i18n with the following locales: en, es, and pt-BR. The default locale is 'en'. -``` - -असिस्टेंट करेगा: +--- -1. लोकेल-आधारित राउटिंग कॉन्फ़िगर करें (जैसे, `/en`, `/es`, `/pt-BR`) -2. भाषा स्विचिंग कंपोनेंट सेटअप करें -3. स्वचालित लोकेल डिटेक्शन लागू करें -4. आवश्यक कॉन्फ़िगरेशन फ़ाइलें जेनरेट करें +### Lingo.dev MCP -**नोट:** AI-असिस्टेड कोड जेनरेशन नॉन-डिटर्मिनिस्टिक है। कमिट करने से पहले जेनरेट किए गए कोड की समीक्षा करें। +React ऐप्स में i18n सेटअप करना त्रुटि-प्रवण है – यहाँ तक कि AI कोडिंग असिस्टेंट भी गैर-मौजूद API को हैलुसिनेट करते हैं और राउटिंग को तोड़ देते हैं। Lingo.dev MCP, AI असिस्टेंट्स को Next.js, React Router, और TanStack Start के लिए फ्रेमवर्क-विशिष्ट i18n ज्ञान तक संरचित पहुँच देता है। Claude Code, Cursor, GitHub Copilot Agents, और Codex के साथ काम करता है। -[दस्तावेज़ पढ़ें →](https://lingo.dev/en/mcp) +[डॉक्स पढ़ें →](https://lingo.dev/en/mcp) --- ### Lingo.dev CLI -अनुवादों को सिंक में रखना थकाऊ है। आप एक नई स्ट्रिंग जोड़ते हैं, इसे अनुवाद करना भूल जाते हैं, अंतर्राष्ट्रीय उपयोगकर्ताओं को टूटा हुआ UI भेज देते हैं। या आप अनुवादकों को JSON फ़ाइलें भेजते हैं, दिनों तक प्रतीक्षा करते हैं, फिर मैन्युअल रूप से उनके काम को वापस मर्ज करते हैं। 10+ भाषाओं तक स्केल करने का मतलब है सैकड़ों फ़ाइलों को मैनेज करना जो लगातार सिंक से बाहर हो जाती हैं। - -Lingo.dev CLI इसे स्वचालित करता है। इसे अपनी अनुवाद फ़ाइलों पर पॉइंट करें, एक कमांड चलाएं, और हर लोकेल अपडेट हो जाता है। एक लॉकफ़ाइल ट्रैक करती है कि क्या पहले से अनुवादित है, इसलिए आप केवल नए या बदले हुए कंटेंट के लिए भुगतान करते हैं। JSON, YAML, CSV, PO फ़ाइलें और markdown को सपोर्ट करता है। - -**सेटअप:** +एक कमांड में JSON, YAML, markdown, CSV, और PO फ़ाइलों को लोकलाइज़ करें। एक लॉकफ़ाइल ट्रैक करती है कि क्या पहले से लोकलाइज़ किया जा चुका है – केवल नई या बदली हुई सामग्री प्रोसेस होती है। डिफ़ॉल्ट रूप से Lingo.dev पर आपके लोकलाइज़ेशन इंजन से जुड़ता है, या अपना खुद का LLM लाएं (OpenAI, Anthropic, Google, Mistral, OpenRouter, Ollama)। ```bash -# Initialize project npx lingo.dev@latest init - -# Run translations npx lingo.dev@latest run ``` -**यह कैसे काम करता है:** - -1. कॉन्फ़िगर की गई फ़ाइलों से अनुवाद योग्य कंटेंट निकालता है -2. अनुवाद के लिए कंटेंट को LLM प्रोवाइडर को भेजता है -3. अनुवादित कंटेंट को फ़ाइल सिस्टम में वापस लिखता है -4. पूर्ण किए गए अनुवादों को ट्रैक करने के लिए `i18n.lock` फ़ाइल बनाता है (अनावश्यक प्रोसेसिंग से बचाता है) - -**कॉन्फ़िगरेशन:** - -`init` कमांड एक `i18n.json` फ़ाइल जेनरेट करती है। लोकेल और बकेट कॉन्फ़िगर करें: - -```json -{ - "$schema": "https://lingo.dev/schema/i18n.json", - "version": "1.10", - "locale": { - "source": "en", - "targets": ["es", "fr", "de"] - }, - "buckets": { - "json": { - "include": ["locales/[locale].json"] - } - } -} -``` - -`provider` फ़ील्ड वैकल्पिक है (डिफ़ॉल्ट रूप से Lingo.dev Engine)। कस्टम LLM प्रोवाइडर के लिए: - -```json -{ - "provider": { - "id": "openai", - "model": "gpt-4o-mini", - "prompt": "Translate from {source} to {target}" - } -} -``` - -**समर्थित LLM प्रोवाइडर:** - -- Lingo.dev Engine (अनुशंसित) -- OpenAI -- Anthropic -- Google -- Mistral -- OpenRouter -- Ollama - -[दस्तावेज़ पढ़ें →](https://lingo.dev/en/cli) +[दस्तावेज़ पढ़ें →](https://lingo.dev/en/docs/cli) --- ### Lingo.dev CI/CD -अनुवाद वह फ़ीचर है जो हमेशा "लगभग पूरा" होता है। इंजीनियर लोकेल अपडेट किए बिना कोड मर्ज कर देते हैं। QA को स्टेजिंग में गायब अनुवाद मिलते हैं - या इससे भी बुरा, यूज़र्स को प्रोडक्शन में मिलते हैं। मूल कारण: अनुवाद एक मैनुअल स्टेप है जिसे डेडलाइन के दबाव में छोड़ना आसान है। - -Lingo.dev CI/CD अनुवाद को स्वचालित बनाता है। हर पुश अनुवाद ट्रिगर करता है। गायब स्ट्रिंग्स कोड के प्रोडक्शन में पहुंचने से पहले भर जाती हैं। किसी अनुशासन की आवश्यकता नहीं - पाइपलाइन इसे संभालती है। - -**समर्थित प्लेटफ़ॉर्म:** - -- GitHub Actions -- GitLab CI/CD -- Bitbucket Pipelines - -**GitHub Actions सेटअप:** - -`.github/workflows/translate.yml` बनाएं: - -```yaml -name: Translate -on: - push: - branches: [main] -permissions: - contents: write -jobs: - translate: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Lingo.dev - uses: lingodotdev/lingo.dev@main - with: - api-key: ${{ secrets.LINGODOTDEV_API_KEY }} -``` - -**सेटअप आवश्यकताएं:** - -1. रिपॉज़िटरी सीक्रेट्स में `LINGODOTDEV_API_KEY` जोड़ें (Settings > Secrets and variables > Actions) -2. PR वर्कफ़्लो के लिए: Settings > Actions > General में "Allow GitHub Actions to create and approve pull requests" सक्षम करें - -**वर्कफ़्लो विकल्प:** - -अनुवाद सीधे कमिट करें: +आपकी पाइपलाइन में निरंतर स्थानीयकरण। हर पुश स्थानीयकरण को ट्रिगर करता है – कोड प्रोडक्शन में पहुंचने से पहले खाली स्ट्रिंग्स भर दी जाती हैं। GitHub Actions, GitLab CI/CD और Bitbucket Pipelines का समर्थन करता है। ```yaml uses: lingodotdev/lingo.dev@main @@ -239,229 +118,23 @@ with: api-key: ${{ secrets.LINGODOTDEV_API_KEY }} ``` -अनुवादों के साथ pull request बनाएं: - -```yaml -uses: lingodotdev/lingo.dev@main -with: - api-key: ${{ secrets.LINGODOTDEV_API_KEY }} - pull-request: true -env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} -``` - -**उपलब्ध इनपुट:** - -| इनपुट | डिफ़ॉल्ट | विवरण | -| -------------------- | ---------------------------------------------- | ------------------------------- | -| `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) +[दस्तावेज़ पढ़ें →](https://lingo.dev/en/docs/integrations) --- -### Lingo.dev SDK +### Lingo.dev API -स्टैटिक ट्रांसलेशन फ़ाइलें UI लेबल के लिए काम करती हैं, लेकिन यूज़र-जेनरेटेड कंटेंट का क्या? चैट मैसेज, प्रोडक्ट डिस्क्रिप्शन, सपोर्ट टिकट - ऐसा कंटेंट जो बिल्ड टाइम पर मौजूद नहीं होता, उसे प्री-ट्रांसलेट नहीं किया जा सकता। आप अनट्रांसलेटेड टेक्स्ट दिखाने या कस्टम ट्रांसलेशन पाइपलाइन बनाने में फंस जाते हैं। +बैकएंड कोड से सीधे अपने स्थानीयकरण इंजन को कॉल करें। वेबहुक डिलीवरी के साथ सिंक्रोनस और एसिंक स्थानीयकरण, प्रति लोकेल विफलता आइसोलेशन, और WebSocket के माध्यम से रियल-टाइम प्रगति। -Lingo.dev SDK रनटाइम पर कंटेंट को ट्रांसलेट करता है। कोई भी टेक्स्ट, ऑब्जेक्ट, या HTML पास करें और लोकलाइज़्ड वर्जन प्राप्त करें। रियल-टाइम चैट, डायनामिक नोटिफ़िकेशन, या डिप्लॉयमेंट के बाद आने वाले किसी भी कंटेंट के लिए काम करता है। JavaScript, PHP, Python, और Ruby के लिए उपलब्ध। - -**इंस्टॉलेशन:** - -```bash -npm install lingo.dev -``` - -**उपयोग:** - -```ts -import { LingoDotDevEngine } from "lingo.dev/sdk"; - -const lingoDotDev = new LingoDotDevEngine({ - apiKey: process.env.LINGODOTDEV_API_KEY, -}); - -// Translate objects (preserves structure) -const translated = await lingoDotDev.localizeObject( - { greeting: "Hello", farewell: "Goodbye" }, - { sourceLocale: "en", targetLocale: "es" }, -); -// { greeting: "Hola", farewell: "Adiós" } - -// Translate text -const text = await lingoDotDev.localizeText("Hello!", { - sourceLocale: "en", - targetLocale: "fr", -}); - -// Translate to multiple languages at once -const results = await lingoDotDev.batchLocalizeText("Hello!", { - sourceLocale: "en", - targetLocales: ["es", "fr", "de"], -}); - -// Translate chat (preserves speaker names) -const chat = await lingoDotDev.localizeChat( - [{ name: "Alice", text: "Hello!" }], - { sourceLocale: "en", targetLocale: "es" }, -); - -// Translate HTML (preserves markup) -const html = await lingoDotDev.localizeHtml("
- Lingo.dev - Toolkit i18n open-source per la localizzazione basata su LLM + Strumenti open-source di ingegneria della localizzazione. Connettiti alla + piattaforma di ingegneria della localizzazione Lingo.dev per traduzioni + coerenti e di qualità.
- MCP •CLI • - CI/CD •SDK • - Compiler + API Lingo • + Lingo React MCP • + CLI Lingo • + Azione GitHub Lingo • + Compilatore Lingo per React (Alpha iniziale)
@@ -71,167 +75,43 @@ ## 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) | Traduci 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 | Cosa fa | Comando rapido | +| ----------------------------------------------------- | -------------------------------------------------------- | ---------------------------------- | +| [**Lingo React MCP**](#lingodev-mcp) | Configurazione i18n assistita da AI per app React | Prompt: `Set up i18n` | +| [**CLI Lingo**](#lingodev-cli) | Localizza file JSON, YAML, markdown, CSV, PO | `npx lingo.dev@latest run` | +| [**Azione GitHub Lingo**](#lingodev-cicd) | Localizzazione continua in GitHub Actions | `uses: lingodotdev/lingo.dev@main` | +| [**Compilatore Lingo per React**](#lingodev-compiler) | Localizzazione React in fase di build senza wrapper i18n | Plugin `withLingo()` | ---- - -### Lingo.dev MCP - -Configurare l'i18n nelle app React è notoriamente soggetto a errori, anche per sviluppatori esperti. Gli assistenti di codifica AI peggiorano la situazione: allucinano API inesistenti, dimenticano configurazioni middleware, rompono il routing o implementano metà soluzione prima di perdersi. Il problema è che la configurazione i18n richiede una sequenza precisa di modifiche coordinate su più file (routing, middleware, componenti, configurazione) e gli LLM faticano a mantenere quel contesto. - -Lingo.dev MCP risolve questo problema fornendo agli assistenti AI accesso strutturato alla conoscenza i18n specifica per framework. Invece di indovinare, il tuo assistente segue pattern di implementazione verificati per Next.js, React Router e TanStack Start. - -**IDE supportati:** +### Motori di localizzazione -- Claude Code -- Cursor -- GitHub Copilot Agents -- Codex (OpenAI) +Questi strumenti si connettono ai [motori di localizzazione](https://lingo.dev) – API di traduzione stateful che crei sulla piattaforma di ingegneria della localizzazione Lingo.dev. Ogni motore conserva glossari, tono di marca e istruzioni per locale in ogni richiesta, [riducendo gli errori terminologici del 16,6–44,6%](https://lingo.dev/research/retrieval-augmented-localization). Oppure [porta il tuo LLM](#lingodev-cli). -**Framework supportati:** - -- Next.js (App Router & Pages Router v13-16) -- TanStack Start (v1) -- React Router (v7) - -**Utilizzo:** - -Dopo aver configurato il server MCP nel tuo IDE ([vedi guide rapide](https://lingo.dev/en/mcp)), richiedi al tuo assistente: - -``` -Set up i18n with the following locales: en, es, and pt-BR. The default locale is 'en'. -``` - -L'assistente: +--- -1. Configurare il routing basato su locale (es. `/en`, `/es`, `/pt-BR`) -2. Configurare i componenti per la selezione lingua -3. Implementare il rilevamento automatico del locale -4. Generare i file di configurazione necessari +### Lingo.dev MCP -**Nota:** la generazione di codice assistita da AI è non deterministica. Rivedi il codice generato prima di committare. +Configurare i18n nelle app React è soggetto a errori – anche gli assistenti di codifica AI allucinano API inesistenti e rompono il routing. Lingo.dev MCP fornisce agli assistenti AI accesso strutturato alla conoscenza i18n specifica per framework come Next.js, React Router e TanStack Start. Funziona con Claude Code, Cursor, GitHub Copilot Agents e Codex. [Leggi la documentazione →](https://lingo.dev/en/mcp) --- -### Lingo.dev CLI +### CLI Lingo.dev -Mantenere le traduzioni sincronizzate è tedioso. Aggiungi una nuova stringa, dimentichi di tradurla, rilasci un'interfaccia rotta agli utenti internazionali. Oppure invii file JSON ai traduttori, aspetti giorni, poi unisci manualmente il loro lavoro. Scalare a oltre 10 lingue significa gestire centinaia di file che costantemente vanno fuori sincronia. - -Lingo.dev CLI automatizza questo processo. Puntalo ai tuoi file di traduzione, esegui un comando e ogni locale si aggiorna. Un lockfile traccia ciò che è già tradotto, quindi paghi solo per contenuti nuovi o modificati. Supporta file JSON, YAML, CSV, PO e markdown. - -**Setup:** +Localizza file JSON, YAML, markdown, CSV e PO con un solo comando. Un lockfile tiene traccia di ciò che è già localizzato – solo i contenuti nuovi o modificati vengono elaborati. Utilizza di default il tuo motore di localizzazione su Lingo.dev, oppure porta il tuo LLM (OpenAI, Anthropic, Google, Mistral, OpenRouter, Ollama). ```bash -# Initialize project npx lingo.dev@latest init - -# Run translations 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 -4. Crea il file `i18n.lock` per tracciare le traduzioni completate (evita elaborazioni ridondanti) - -**Configurazione:** - -Il comando `init` genera un file `i18n.json`. Configura localizzazioni e bucket: - -```json -{ - "$schema": "https://lingo.dev/schema/i18n.json", - "version": "1.10", - "locale": { - "source": "en", - "targets": ["es", "fr", "de"] - }, - "buckets": { - "json": { - "include": ["locales/[locale].json"] - } - } -} -``` - -Il campo `provider` è opzionale (predefinito Lingo.dev Engine). Per provider LLM personalizzati: - -```json -{ - "provider": { - "id": "openai", - "model": "gpt-4o-mini", - "prompt": "Translate from {source} to {target}" - } -} -``` - -**Provider LLM supportati:** - -- Lingo.dev Engine (consigliato) -- OpenAI -- Anthropic -- Google -- Mistral -- OpenRouter -- Ollama - -[Leggi la documentazione →](https://lingo.dev/en/cli) +[Leggi la documentazione →](https://lingo.dev/en/docs/cli) --- ### Lingo.dev CI/CD -Le traduzioni sono la funzionalità che è sempre "quasi pronta". Gli sviluppatori fanno il merge del codice senza aggiornare le locale. Il QA scopre le traduzioni mancanti in staging - o peggio, gli utenti le scoprono in produzione. La causa principale: la traduzione è un passaggio manuale facile da saltare sotto la pressione delle scadenze. - -Lingo.dev CI/CD rende le traduzioni automatiche. Ogni push attiva la traduzione. Le stringhe mancanti vengono completate prima che il codice raggiunga la produzione. Non serve disciplina - la pipeline se ne occupa. - -**Piattaforme supportate:** - -- GitHub Actions -- GitLab CI/CD -- Bitbucket Pipelines - -**Setup GitHub Actions:** - -Crea `.github/workflows/translate.yml`: - -```yaml -name: Translate -on: - push: - branches: [main] -permissions: - contents: write -jobs: - translate: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Lingo.dev - uses: lingodotdev/lingo.dev@main - with: - api-key: ${{ secrets.LINGODOTDEV_API_KEY }} -``` - -**Requisiti di setup:** - -1. Aggiungi `LINGODOTDEV_API_KEY` ai secret del repository (Impostazioni > Secrets and variables > Actions) -2. Per workflow PR: Abilita "Allow GitHub Actions to create and approve pull requests" in Impostazioni > Actions > General - -**Opzioni workflow:** - -Committa le traduzioni direttamente: +Localizzazione continua nella tua pipeline. Ogni push attiva la localizzazione: le stringhe mancanti vengono completate prima che il codice arrivi in produzione. Supporta GitHub Actions, GitLab CI/CD e Bitbucket Pipelines. ```yaml uses: lingodotdev/lingo.dev@main @@ -239,239 +119,33 @@ with: api-key: ${{ secrets.LINGODOTDEV_API_KEY }} ``` -Crea pull request con le traduzioni: - -```yaml -uses: lingodotdev/lingo.dev@main -with: - api-key: ${{ secrets.LINGODOTDEV_API_KEY }} - pull-request: true -env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} -``` - -**Input disponibili:** - -| Input | Default | Descrizione | -| -------------------- | ---------------------------------------------- | ----------------------------------------- | -| `api-key` | (obbligatorio) | Chiave API Lingo.dev | -| `pull-request` | `false` | Crea PR invece di committare direttamente | -| `commit-message` | `"feat: update translations via @LingoDotDev"` | Messaggio di commit personalizzato | -| `pull-request-title` | `"feat: update translations via @LingoDotDev"` | Titolo PR personalizzato | -| `working-directory` | `"."` | Directory su cui operare | -| `parallel` | `false` | Abilita elaborazione parallela | - -[Leggi la documentazione →](https://lingo.dev/en/ci/github) +[Leggi la documentazione →](https://lingo.dev/en/docs/integrations) --- -### Lingo.dev SDK +### Lingo.dev API -I file di traduzione statici funzionano per le etichette UI, ma cosa succede con i contenuti generati dagli utenti? Messaggi di chat, descrizioni di prodotti, ticket di supporto - contenuti che non esistono al momento della build non possono essere pre-tradotti. Rimani bloccato mostrando testo non tradotto o costruendo una pipeline di traduzione personalizzata. +Chiama il tuo motore di localizzazione direttamente dal codice backend. Localizzazione sincrona e asincrona con consegna webhook, isolamento dei fallimenti per locale e avanzamento in tempo reale tramite WebSocket. -Lingo.dev SDK traduce i contenuti a runtime. Passa qualsiasi testo, oggetto o HTML e ottieni una versione localizzata. Funziona per chat in tempo reale, notifiche dinamiche o qualsiasi contenuto che arriva dopo il deployment. Disponibile per JavaScript, PHP, Python e Ruby. - -**Installazione:** - -```bash -npm install lingo.dev -``` - -**Utilizzo:** - -```ts -import { LingoDotDevEngine } from "lingo.dev/sdk"; - -const lingoDotDev = new LingoDotDevEngine({ - apiKey: process.env.LINGODOTDEV_API_KEY, -}); - -// Translate objects (preserves structure) -const translated = await lingoDotDev.localizeObject( - { greeting: "Hello", farewell: "Goodbye" }, - { sourceLocale: "en", targetLocale: "es" }, -); -// { greeting: "Hola", farewell: "Adiós" } - -// Translate text -const text = await lingoDotDev.localizeText("Hello!", { - sourceLocale: "en", - targetLocale: "fr", -}); - -// Translate to multiple languages at once -const results = await lingoDotDev.batchLocalizeText("Hello!", { - sourceLocale: "en", - targetLocales: ["es", "fr", "de"], -}); - -// Translate chat (preserves speaker names) -const chat = await lingoDotDev.localizeChat( - [{ name: "Alice", text: "Hello!" }], - { sourceLocale: "en", targetLocale: "es" }, -); - -// Translate HTML (preserves markup) -const html = await lingoDotDev.localizeHtml("
- Lingo.dev - - LLMベースのローカライゼーションのためのオープンソースi18nツールキット + オープンソースのローカライゼーションエンジニアリングツール。Lingo.devローカライゼーションエンジニアリングプラットフォームに接続して、一貫性のある高品質な翻訳を実現します。
- MCP •CLI • - CI/CD •SDK • - Compiler + Lingo API • + Lingo React MCP • + Lingo CLI • + Lingo GitHub Action • + + Lingo Compiler for React(アーリーアルファ版) +
@@ -72,51 +75,22 @@ ## クイックスタート -| ツール | ユースケース | クイックコマンド | -| ---------------------------------- | --------------------------------------------------- | ---------------------------------- | -| [**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()`プラグイン | - ---- - -### Lingo.dev MCP - -Reactアプリでi18nを設定することは、経験豊富な開発者にとってもエラーが発生しやすいことで知られています。AIコーディングアシスタントはこれをさらに悪化させます。存在しないAPIを幻覚し、ミドルウェア設定を忘れ、ルーティングを壊したり、迷子になる前に半分の解決策を実装したりします。問題は、i18nのセットアップには複数のファイル(ルーティング、ミドルウェア、コンポーネント、設定)にわたる正確な一連の協調的な変更が必要であり、LLMがそのコンテキストを維持するのに苦労することです。 +| ツール | 機能 | クイックコマンド | +| -------------------------------------------------- | --------------------------------------------------- | ---------------------------------- | +| [**Lingo React MCP**](#lingodev-mcp) | ReactアプリのAI支援i18nセットアップ | プロンプト: `Set up i18n` | +| [**Lingo CLI**](#lingodev-cli) | JSON、YAML、Markdown、CSV、POファイルをローカライズ | `npx lingo.dev@latest run` | +| [**Lingo GitHub Action**](#lingodev-cicd) | GitHub Actionsでの継続的ローカライゼーション | `uses: lingodotdev/lingo.dev@main` | +| [**Lingo Compiler for React**](#lingodev-compiler) | i18nラッパー不要のビルド時Reactローカライゼーション | `withLingo()`プラグイン | -Lingo.dev MCPは、AIアシスタントにフレームワーク固有のi18n知識への構造化されたアクセスを提供することで、この問題を解決します。推測する代わりに、アシスタントはNext.js、React Router、TanStack Start向けの検証済み実装パターンに従います。 +### ローカライゼーションエンジン -**対応IDE:** +これらのツールは[ローカライゼーションエンジン](https://lingo.dev)に接続します。Lingo.devローカライゼーションエンジニアリングプラットフォーム上で作成するステートフルな翻訳APIです。各エンジンはすべてのリクエストにわたって用語集、ブランドボイス、ロケールごとの指示を保持し、[用語エラーを16.6~44.6%削減](https://lingo.dev/research/retrieval-augmented-localization)します。または[独自のLLMを使用](#lingodev-cli)することも可能です。 -- Claude Code -- Cursor -- GitHub Copilot Agents -- Codex (OpenAI) - -**対応フレームワーク:** - -- Next.js (App Router & Pages Router v13-16) -- TanStack Start (v1) -- React Router (v7) - -**使用方法:** - -IDE でMCPサーバーを設定した後([クイックスタートガイドを参照](https://lingo.dev/en/mcp))、アシスタントに次のようにプロンプトします: - -``` -Set up i18n with the following locales: en, es, and pt-BR. The default locale is 'en'. -``` - -アシスタントは以下を実行します: +--- -1. ロケールベースのルーティングを設定(例: `/en`、`/es`、`/pt-BR`) -2. 言語切り替えコンポーネントをセットアップ -3. 自動ロケール検出を実装 -4. 必要な設定ファイルを生成 +### Lingo.dev MCP -**注意:** AI支援によるコード生成は非決定的です。コミット前に生成されたコードを確認してください。 +ReactアプリでのI18nセットアップはエラーが発生しやすく、AIコーディングアシスタントでさえ存在しないAPIを幻覚し、ルーティングを破壊することがあります。Lingo.dev MCPは、Next.js、React Router、TanStack Start向けのフレームワーク固有のi18n知識へのアクセスをAIアシスタントに提供します。Claude Code、Cursor、GitHub Copilot Agents、Codexで動作します。 [ドキュメントを読む →](https://lingo.dev/en/mcp) @@ -124,115 +98,20 @@ Set up i18n with the following locales: en, es, and pt-BR. The default locale is ### Lingo.dev CLI -翻訳を同期し続けることは面倒です。新しい文字列を追加し、翻訳を忘れ、国際ユーザーに壊れたUIを提供してしまいます。または、JSONファイルを翻訳者に送り、数日待ってから、手動で彼らの作業をマージし直します。10以上の言語にスケールすることは、常に同期がずれる数百のファイルを管理することを意味します。 - -Lingo.dev CLIはこれを自動化します。翻訳ファイルを指定し、1つのコマンドを実行すると、すべてのロケールが更新されます。ロックファイルが既に翻訳されたものを追跡するため、新しいコンテンツまたは変更されたコンテンツに対してのみ支払います。JSON、YAML、CSV、POファイル、およびマークダウンに対応しています。 - -**セットアップ:** +1つのコマンドでJSON、YAML、Markdown、CSV、POファイルをローカライズ。ロックファイルがすでにローカライズされた内容を追跡し、新規または変更されたコンテンツのみが処理されます。デフォルトではLingo.dev上のローカライゼーションエンジンを使用しますが、独自のLLM(OpenAI、Anthropic、Google、Mistral、OpenRouter、Ollama)も使用可能です。 ```bash -# Initialize project npx lingo.dev@latest init - -# Run translations npx lingo.dev@latest run ``` -**仕組み:** - -1. 設定されたファイルから翻訳可能なコンテンツを抽出 -2. LLMプロバイダーにコンテンツを送信して翻訳 -3. 翻訳されたコンテンツをファイルシステムに書き戻し -4. 翻訳の完了を追跡するための`i18n.lock`ファイルを作成(冗長な処理を回避) - -**設定:** - -`init`コマンドは`i18n.json`ファイルを生成します。ロケールとバケットを設定してください: - -```json -{ - "$schema": "https://lingo.dev/schema/i18n.json", - "version": "1.10", - "locale": { - "source": "en", - "targets": ["es", "fr", "de"] - }, - "buckets": { - "json": { - "include": ["locales/[locale].json"] - } - } -} -``` - -`provider`フィールドはオプションです(デフォルトはLingo.dev Engine)。カスタムLLMプロバイダーの場合: - -```json -{ - "provider": { - "id": "openai", - "model": "gpt-4o-mini", - "prompt": "Translate from {source} to {target}" - } -} -``` - -**サポートされているLLMプロバイダー:** - -- Lingo.dev Engine(推奨) -- OpenAI -- Anthropic -- Google -- Mistral -- OpenRouter -- Ollama - -[ドキュメントを読む →](https://lingo.dev/en/cli) +[ドキュメントを読む →](https://lingo.dev/en/docs/cli) --- ### Lingo.dev CI/CD -翻訳は常に「もうすぐ完成」の機能です。エンジニアはロケールを更新せずにコードをマージします。QAはステージング環境で翻訳の欠落を発見します。さらに悪い場合は、ユーザーが本番環境で発見します。根本原因は、翻訳が締め切りのプレッシャー下でスキップしやすい手動ステップであることです。 - -Lingo.dev CI/CDは翻訳を自動化します。すべてのプッシュが翻訳をトリガーします。欠落している文字列はコードが本番環境に到達する前に補完されます。規律は不要です。パイプラインが処理します。 - -**サポートされているプラットフォーム:** - -- GitHub Actions -- GitLab CI/CD -- Bitbucket Pipelines - -**GitHub Actionsのセットアップ:** - -`.github/workflows/translate.yml`を作成: - -```yaml -name: Translate -on: - push: - branches: [main] -permissions: - contents: write -jobs: - translate: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Lingo.dev - uses: lingodotdev/lingo.dev@main - with: - api-key: ${{ secrets.LINGODOTDEV_API_KEY }} -``` - -**セットアップ要件:** - -1. リポジトリのシークレット(Settings > Secrets and variables > Actions)に`LINGODOTDEV_API_KEY`を追加 -2. PRワークフローの場合: Settings > Actions > Generalで「Allow GitHub Actions to create and approve pull requests」を有効化 - -**ワークフローオプション:** - -翻訳を直接コミット: +パイプラインでの継続的ローカライゼーション。プッシュごとにローカライゼーションが実行され、コードが本番環境に到達する前に未翻訳の文字列が補完されます。GitHub Actions、GitLab CI/CD、Bitbucket Pipelinesに対応しています。 ```yaml uses: lingodotdev/lingo.dev@main @@ -240,250 +119,44 @@ with: api-key: ${{ secrets.LINGODOTDEV_API_KEY }} ``` -翻訳を含むプルリクエストを作成: - -```yaml -uses: lingodotdev/lingo.dev@main -with: - api-key: ${{ secrets.LINGODOTDEV_API_KEY }} - pull-request: true -env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} -``` - -**利用可能な入力:** - -| 入力 | デフォルト | 説明 | -| -------------------- | ---------------------------------------------- | ---------------------------- | -| `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) +[ドキュメントを読む →](https://lingo.dev/en/docs/integrations) --- -### Lingo.dev SDK - -静的な翻訳ファイルはUIラベルには有効ですが、ユーザー生成コンテンツはどうでしょうか?チャットメッセージ、商品説明、サポートチケットなど、ビルド時に存在しないコンテンツは事前翻訳できません。未翻訳のテキストを表示するか、カスタム翻訳パイプラインを構築するしかありません。 - -Lingo.dev SDKは実行時にコンテンツを翻訳します。任意のテキスト、オブジェクト、HTMLを渡すと、ローカライズされたバージョンが返されます。リアルタイムチャット、動的通知、またはデプロイ後に到着するあらゆるコンテンツに対応します。JavaScript、PHP、Python、Rubyで利用可能です。 - -**インストール:** - -```bash -npm install lingo.dev -``` - -**使用方法:** - -```ts -import { LingoDotDevEngine } from "lingo.dev/sdk"; - -const lingoDotDev = new LingoDotDevEngine({ - apiKey: process.env.LINGODOTDEV_API_KEY, -}); - -// Translate objects (preserves structure) -const translated = await lingoDotDev.localizeObject( - { greeting: "Hello", farewell: "Goodbye" }, - { sourceLocale: "en", targetLocale: "es" }, -); -// { greeting: "Hola", farewell: "Adiós" } - -// Translate text -const text = await lingoDotDev.localizeText("Hello!", { - sourceLocale: "en", - targetLocale: "fr", -}); - -// Translate to multiple languages at once -const results = await lingoDotDev.batchLocalizeText("Hello!", { - sourceLocale: "en", - targetLocales: ["es", "fr", "de"], -}); - -// Translate chat (preserves speaker names) -const chat = await lingoDotDev.localizeChat( - [{ name: "Alice", text: "Hello!" }], - { sourceLocale: "en", targetLocale: "es" }, -); - -// Translate HTML (preserves markup) -const html = await lingoDotDev.localizeHtml("
- Lingo.dev - LLM 기반 현지화를 위한 오픈소스 i18n 툴킷 + + 오픈소스 로컬라이제이션 엔지니어링 도구. Lingo.dev 로컬라이제이션 엔지니어링 + 플랫폼에 연결하여 일관되고 품질 높은 번역을 구현하세요. +
- MCP •CLI • - CI/CD •SDK • - 컴파일러 + Lingo API • + Lingo React MCP • + Lingo CLI • + Lingo GitHub Action • + Lingo Compiler for React (얼리 알파)
@@ -69,167 +74,43 @@ ## 빠른 시작 -| 도구 | 사용 사례 | 빠른 명령어 | -| ---------------------------------- | ----------------------------------------- | ---------------------------------- | -| [**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()` 플러그인 | +| 도구 | 기능 | 빠른 명령어 | +| -------------------------------------------------- | ------------------------------------------------- | ---------------------------------- | +| [**Lingo React MCP**](#lingodev-mcp) | React 앱을 위한 AI 지원 i18n 설정 | 프롬프트: `Set up i18n` | +| [**Lingo CLI**](#lingodev-cli) | JSON, YAML, 마크다운, CSV, PO 파일 로컬라이제이션 | `npx lingo.dev@latest run` | +| [**Lingo GitHub Action**](#lingodev-cicd) | GitHub Actions에서의 지속적 로컬라이제이션 | `uses: lingodotdev/lingo.dev@main` | +| [**Lingo Compiler for React**](#lingodev-compiler) | i18n 래퍼 없이 빌드 타임 React 로컬라이제이션 | `withLingo()` 플러그인 | ---- - -### Lingo.dev MCP - -React 앱에서 i18n을 설정하는 것은 경험 많은 개발자에게도 오류가 발생하기 쉬운 것으로 악명 높습니다. AI 코딩 어시스턴트는 이를 더 악화시킵니다. 존재하지 않는 API를 환각하고, 미들웨어 구성을 잊고, 라우팅을 망가뜨리거나, 길을 잃기 전에 절반의 솔루션만 구현합니다. 문제는 i18n 설정이 여러 파일(라우팅, 미들웨어, 컴포넌트, 구성)에 걸쳐 정확한 순서의 조정된 변경을 요구하는데, LLM이 그 컨텍스트를 유지하는 데 어려움을 겪는다는 것입니다. - -Lingo.dev MCP는 AI 어시스턴트에게 프레임워크별 i18n 지식에 대한 구조화된 액세스를 제공하여 이 문제를 해결합니다. 추측하는 대신, 어시스턴트는 Next.js, React Router, TanStack Start에 대해 검증된 구현 패턴을 따릅니다. - -**지원 IDE:** +### 로컬라이제이션 엔진 -- Claude Code -- Cursor -- GitHub Copilot Agents -- Codex (OpenAI) +이 도구들은 [로컬라이제이션 엔진](https://lingo.dev)에 연결됩니다 – Lingo.dev 로컬라이제이션 엔지니어링 플랫폼에서 생성하는 상태 유지형 번역 API입니다. 각 엔진은 모든 요청에서 용어집, 브랜드 보이스, 로케일별 지침을 유지하여 [용어 오류를 16.6–44.6% 감소](https://lingo.dev/research/retrieval-augmented-localization)시킵니다. 또는 [자체 LLM을 사용](#lingodev-cli)할 수 있습니다. -**지원 프레임워크:** - -- Next.js (App Router & Pages Router v13-16) -- TanStack Start (v1) -- React Router (v7) - -**사용법:** - -IDE에서 MCP 서버를 구성한 후([빠른 시작 가이드 참조](https://lingo.dev/en/mcp)), 어시스턴트에게 다음과 같이 프롬프트하세요: - -``` -Set up i18n with the following locales: en, es, and pt-BR. The default locale is 'en'. -``` - -어시스턴트는 다음을 수행합니다: +--- -1. 로케일 기반 라우팅 구성 (예: `/en`, `/es`, `/pt-BR`) -2. 언어 전환 컴포넌트 설정 -3. 자동 로케일 감지 구현 -4. 필요한 구성 파일 생성 +### Lingo.dev MCP -**참고:** AI 지원 코드 생성은 비결정적입니다. 커밋하기 전에 생성된 코드를 검토하세요. +React 앱에서 i18n을 설정하는 것은 오류가 발생하기 쉽습니다 – AI 코딩 어시스턴트조차 존재하지 않는 API를 환각하고 라우팅을 망가뜨립니다. Lingo.dev MCP는 AI 어시스턴트에게 Next.js, React Router, TanStack Start를 위한 프레임워크별 i18n 지식에 대한 구조화된 접근을 제공합니다. Claude Code, Cursor, GitHub Copilot Agents, Codex와 함께 작동합니다. -[문서 읽기 →](https://lingo.dev/en/mcp) +[문서 보기 →](https://lingo.dev/en/mcp) --- ### Lingo.dev CLI -번역을 동기화 상태로 유지하는 것은 지루한 작업입니다. 새 문자열을 추가하고, 번역을 잊고, 국제 사용자에게 망가진 UI를 배포합니다. 또는 번역가에게 JSON 파일을 보내고, 며칠을 기다린 다음, 그들의 작업을 수동으로 다시 병합합니다. 10개 이상의 언어로 확장한다는 것은 지속적으로 동기화가 어긋나는 수백 개의 파일을 관리한다는 의미입니다. - -Lingo.dev CLI는 이를 자동화합니다. 번역 파일을 가리키고, 하나의 명령을 실행하면 모든 로케일이 업데이트됩니다. 잠금 파일이 이미 번역된 내용을 추적하므로 새롭거나 변경된 콘텐츠에 대해서만 비용을 지불합니다. JSON, YAML, CSV, PO 파일 및 마크다운을 지원합니다. - -**설정:** +단일 명령어로 JSON, YAML, 마크다운, CSV, PO 파일을 로컬라이제이션하세요. 잠금 파일이 이미 로컬라이제이션된 내용을 추적합니다 – 새롭거나 변경된 콘텐츠만 처리됩니다. 기본값은 Lingo.dev의 로컬라이제이션 엔진이며, 자체 LLM(OpenAI, Anthropic, Google, Mistral, OpenRouter, Ollama)을 사용할 수도 있습니다. ```bash -# Initialize project npx lingo.dev@latest init - -# Run translations npx lingo.dev@latest run ``` -**작동 방식:** - -1. 구성된 파일에서 번역 가능한 콘텐츠 추출 -2. 번역을 위해 LLM 제공자에게 콘텐츠 전송 -3. 번역된 콘텐츠를 파일 시스템에 기록 -4. 완료된 번역 추적용 `i18n.lock` 파일 생성 (중복 처리 방지) - -**구성:** - -`init` 명령은 `i18n.json` 파일을 생성합니다. 로케일과 버킷을 구성하세요: - -```json -{ - "$schema": "https://lingo.dev/schema/i18n.json", - "version": "1.10", - "locale": { - "source": "en", - "targets": ["es", "fr", "de"] - }, - "buckets": { - "json": { - "include": ["locales/[locale].json"] - } - } -} -``` - -`provider` 필드는 선택 사항입니다(기본값은 Lingo.dev Engine). 커스텀 LLM 제공자 사용 시: - -```json -{ - "provider": { - "id": "openai", - "model": "gpt-4o-mini", - "prompt": "Translate from {source} to {target}" - } -} -``` - -**지원되는 LLM 제공자:** - -- Lingo.dev Engine (권장) -- OpenAI -- Anthropic -- Google -- Mistral -- OpenRouter -- Ollama - -[문서 읽기 →](https://lingo.dev/en/cli) +[문서 보기 →](https://lingo.dev/en/docs/cli) --- ### Lingo.dev CI/CD -번역은 항상 "거의 완료된" 기능입니다. 엔지니어들은 로케일을 업데이트하지 않고 코드를 병합합니다. QA는 스테이징에서 누락된 번역을 발견하거나, 더 나쁜 경우 사용자가 프로덕션에서 발견합니다. 근본 원인: 번역은 마감 압박 속에서 쉽게 건너뛸 수 있는 수동 단계입니다. - -Lingo.dev CI/CD는 번역을 자동화합니다. 모든 푸시가 번역을 트리거합니다. 누락된 문자열은 코드가 프로덕션에 도달하기 전에 채워집니다. 규율이 필요 없습니다 - 파이프라인이 처리합니다. - -**지원되는 플랫폼:** - -- GitHub Actions -- GitLab CI/CD -- Bitbucket Pipelines - -**GitHub Actions 설정:** - -`.github/workflows/translate.yml` 생성: - -```yaml -name: Translate -on: - push: - branches: [main] -permissions: - contents: write -jobs: - translate: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Lingo.dev - uses: lingodotdev/lingo.dev@main - with: - api-key: ${{ secrets.LINGODOTDEV_API_KEY }} -``` - -**설정 요구사항:** - -1. `LINGODOTDEV_API_KEY`을(를) 저장소 시크릿(Settings > Secrets and variables > Actions)에 추가하세요 -2. PR 워크플로우의 경우: Settings > Actions > General에서 "Allow GitHub Actions to create and approve pull requests" 활성화 - -**워크플로우 옵션:** - -번역을 직접 커밋: +파이프라인에서 지속적인 현지화를 실현합니다. 모든 푸시마다 현지화가 자동으로 실행되어 누락된 문자열이 프로덕션 배포 전에 채워집니다. GitHub Actions, GitLab CI/CD, Bitbucket Pipelines을 지원합니다. ```yaml uses: lingodotdev/lingo.dev@main @@ -237,229 +118,23 @@ with: api-key: ${{ secrets.LINGODOTDEV_API_KEY }} ``` -번역이 포함된 풀 리퀘스트 생성: - -```yaml -uses: lingodotdev/lingo.dev@main -with: - api-key: ${{ secrets.LINGODOTDEV_API_KEY }} - pull-request: true -env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} -``` - -**사용 가능한 입력:** - -| 입력 | 기본값 | 설명 | -| -------------------- | ---------------------------------------------- | ---------------------- | -| `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) +[문서 보기 →](https://lingo.dev/en/docs/integrations) --- -### Lingo.dev SDK +### Lingo.dev API -정적 번역 파일은 UI 레이블에는 적합하지만 사용자 생성 콘텐츠는 어떻게 할까요? 채팅 메시지, 제품 설명, 지원 티켓 등 빌드 시점에 존재하지 않는 콘텐츠는 사전 번역할 수 없습니다. 번역되지 않은 텍스트를 표시하거나 사용자 정의 번역 파이프라인을 구축해야 합니다. +백엔드 코드에서 현지화 엔진을 직접 호출할 수 있습니다. 웹훅 전달을 통한 동기 및 비동기 현지화, 로케일별 오류 격리, WebSocket을 통한 실시간 진행 상황 추적을 지원합니다. -Lingo.dev SDK는 런타임에 콘텐츠를 번역합니다. 텍스트, 객체 또는 HTML을 전달하면 현지화된 버전을 받습니다. 실시간 채팅, 동적 알림 또는 배포 후 도착하는 모든 콘텐츠에 사용할 수 있습니다. JavaScript, PHP, Python, Ruby에서 사용 가능합니다. - -**설치:** - -```bash -npm install lingo.dev -``` - -**사용법:** - -```ts -import { LingoDotDevEngine } from "lingo.dev/sdk"; - -const lingoDotDev = new LingoDotDevEngine({ - apiKey: process.env.LINGODOTDEV_API_KEY, -}); - -// Translate objects (preserves structure) -const translated = await lingoDotDev.localizeObject( - { greeting: "Hello", farewell: "Goodbye" }, - { sourceLocale: "en", targetLocale: "es" }, -); -// { greeting: "Hola", farewell: "Adiós" } - -// Translate text -const text = await lingoDotDev.localizeText("Hello!", { - sourceLocale: "en", - targetLocale: "fr", -}); - -// Translate to multiple languages at once -const results = await lingoDotDev.batchLocalizeText("Hello!", { - sourceLocale: "en", - targetLocales: ["es", "fr", "de"], -}); - -// Translate chat (preserves speaker names) -const chat = await lingoDotDev.localizeChat( - [{ name: "Alice", text: "Hello!" }], - { sourceLocale: "en", targetLocale: "es" }, -); - -// Translate HTML (preserves markup) -const html = await lingoDotDev.localizeHtml("
- Lingo.dev - LLM-आधारित स्थानिकीकरणासाठी ओपन-सोर्स i18n टूलकिट + + ओपन-सोर्स स्थानिकीकरण अभियांत्रिकी साधने. सुसंगत, दर्जेदार भाषांतरांसाठी + Lingo.dev स्थानिकीकरण अभियांत्रिकी प्लॅटफॉर्मशी कनेक्ट करा. +
- MCP •CLI • - CI/CD •SDK • - Compiler + Lingo API • + Lingo React MCP • + Lingo CLI • + Lingo GitHub Action • + React साठी Lingo Compiler (प्रारंभिक अल्फा)
@@ -69,167 +74,43 @@ ## द्रुत प्रारंभ -| टूल | वापर प्रकरण | द्रुत कमांड | -| ---------------------------------- | ----------------------------------------------- | ---------------------------------- | -| [**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()` प्लगइन | +| साधन | काय करते | द्रुत कमांड | +| -------------------------------------------------- | -------------------------------------------------- | ---------------------------------- | +| [**Lingo React MCP**](#lingodev-mcp) | React अॅप्ससाठी AI-सहाय्यित i18n सेटअप | प्रॉम्प्ट: `Set up i18n` | +| [**Lingo CLI**](#lingodev-cli) | JSON, YAML, markdown, CSV, PO फायलींचे स्थानिकीकरण | `npx lingo.dev@latest run` | +| [**Lingo GitHub Action**](#lingodev-cicd) | GitHub Actions मध्ये सतत स्थानिकीकरण | `uses: lingodotdev/lingo.dev@main` | +| [**Lingo Compiler for React**](#lingodev-compiler) | i18n रॅपर्सशिवाय बिल्ड-टाइम React स्थानिकीकरण | `withLingo()` प्लगइन | ---- - -### Lingo.dev MCP - -React अॅप्समध्ये i18n सेटअप करणे अनुभवी डेव्हलपर्ससाठीही त्रुटीप्रवण आहे. AI कोडिंग असिस्टंट्स हे आणखी वाईट करतात: ते अस्तित्वात नसलेल्या API चे भ्रम निर्माण करतात, मिडलवेअर कॉन्फिगरेशन विसरतात, राउटिंग खराब करतात किंवा हरवण्यापूर्वी अर्धे सोल्यूशन इम्प्लिमेंट करतात. समस्या अशी आहे की i18n सेटअपसाठी अनेक फाइल्समध्ये (राउटिंग, मिडलवेअर, कंपोनेंट्स, कॉन्फिगरेशन) समन्वित बदलांचा अचूक क्रम आवश्यक असतो आणि LLM ला तो संदर्भ राखण्यात अडचण येते. - -Lingo.dev MCP हे AI असिस्टंट्सना फ्रेमवर्क-विशिष्ट i18n ज्ञानाचा संरचित प्रवेश देऊन सोडवते. अंदाज लावण्याऐवजी, तुमचा असिस्टंट Next.js, React Router आणि TanStack Start साठी सत्यापित इम्प्लिमेंटेशन पॅटर्न फॉलो करतो. - -**समर्थित IDE:** +### स्थानिकीकरण इंजिने -- Claude Code -- Cursor -- GitHub Copilot Agents -- Codex (OpenAI) +ही साधने [स्थानिकीकरण इंजिन](https://lingo.dev) शी कनेक्ट होतात – तुम्ही Lingo.dev स्थानिकीकरण अभियांत्रिकी प्लॅटफॉर्मवर तयार केलेले स्टेटफुल भाषांतर API. प्रत्येक इंजिन प्रत्येक विनंतीमध्ये शब्दावली, ब्रँड व्हॉइस आणि प्रति-लोकेल सूचना टिकवून ठेवते, [परिभाषा त्रुटी 16.6–44.6% कमी करते](https://lingo.dev/research/retrieval-augmented-localization). किंवा [स्वतःचे LLM आणा](#lingodev-cli). -**समर्थित फ्रेमवर्क:** - -- Next.js (App Router आणि Pages Router v13-16) -- TanStack Start (v1) -- React Router (v7) - -**वापर:** - -तुमच्या IDE मध्ये MCP सर्व्हर कॉन्फिगर केल्यानंतर ([क्विकस्टार्ट मार्गदर्शक पहा](https://lingo.dev/en/mcp)), तुमच्या असिस्टंटला प्रॉम्प्ट करा: - -``` -Set up i18n with the following locales: en, es, and pt-BR. The default locale is 'en'. -``` - -असिस्टंट हे करेल: +--- -1. लोकेल-आधारित राउटिंग कॉन्फिगर करेल (उदा., `/en`, `/es`, `/pt-BR`) -2. भाषा स्विचिंग कंपोनेंट्स सेटअप करेल -3. स्वयंचलित लोकेल डिटेक्शन इम्प्लिमेंट करेल -4. आवश्यक कॉन्फिगरेशन फाइल्स जनरेट करेल +### Lingo.dev MCP -**टीप:** AI-असिस्टेड कोड जनरेशन नॉन-डिटर्मिनिस्टिक आहे. कमिट करण्यापूर्वी जनरेट केलेल्या कोडचे पुनरावलोकन करा. +React अॅप्समध्ये i18n सेटअप करणे त्रुटीप्रवण आहे – AI कोडिंग असिस्टंट देखील अस्तित्वात नसलेल्या API च्या भ्रमात पडतात आणि राउटिंग खराब करतात. Lingo.dev MCP AI असिस्टंट्सना Next.js, React Router आणि TanStack Start साठी फ्रेमवर्क-विशिष्ट i18n ज्ञानाची संरचित प्रवेश देते. Claude Code, Cursor, GitHub Copilot Agents आणि Codex सह कार्य करते. -[डॉक्युमेंटेशन वाचा →](https://lingo.dev/en/mcp) +[दस्तऐवज वाचा →](https://lingo.dev/en/mcp) --- ### Lingo.dev CLI -अनुवाद सिंकमध्ये ठेवणे कंटाळवाणे आहे. तुम्ही नवीन स्ट्रिंग जोडता, ती अनुवादित करायला विसरता, आंतरराष्ट्रीय वापरकर्त्यांना खराब UI शिप करता. किंवा तुम्ही अनुवादकांना JSON फाइल्स पाठवता, दिवस वाट पाहता, नंतर त्यांचे काम मॅन्युअली परत मर्ज करता. 10+ भाषांपर्यंत स्केलिंग म्हणजे शेकडो फाइल्स व्यवस्थापित करणे ज्या सतत सिंकच्या बाहेर जातात. - -Lingo.dev CLI हे स्वयंचलित करते. तुमच्या अनुवाद फाइल्सकडे पॉइंट करा, एक कमांड चालवा आणि प्रत्येक लोकेल अपडेट होते. लॉकफाइल आधीच काय अनुवादित झाले आहे याचा मागोवा ठेवते, त्यामुळे तुम्ही फक्त नवीन किंवा बदललेल्या कंटेंटसाठी पैसे देता. JSON, YAML, CSV, PO फाइल्स आणि markdown सपोर्ट करते. - -**सेटअप:** +एका कमांडमध्ये JSON, YAML, markdown, CSV आणि PO फायलींचे स्थानिकीकरण करा. लॉकफाइल आधीच काय स्थानिकीकरण केले गेले आहे याचा मागोवा ठेवते – फक्त नवीन किंवा बदललेली सामग्री प्रक्रिया होते. Lingo.dev वर तुमच्या स्थानिकीकरण इंजिनला डिफॉल्ट करते, किंवा स्वतःचे LLM आणा (OpenAI, Anthropic, Google, Mistral, OpenRouter, Ollama). ```bash -# Initialize project npx lingo.dev@latest init - -# Run translations npx lingo.dev@latest run ``` -**हे कसे कार्य करते:** - -1. कॉन्फिगर केलेल्या फाइल्समधून भाषांतरणयोग्य कंटेंट एक्स्ट्रॅक्ट करते -2. Anuvadasathi content LLM provider कडे पाठवते -3. अनुवादित कंटेंट फाइलसिस्टममध्ये परत लिहिते -4. पूर्ण झालेल्या अनुवादाचा मागोवा ठेवण्यासाठी `i18n.lock` फाइल तयार करते (अनावश्यक प्रोसेसिंग टाळते) - -**कॉन्फिगरेशन:** - -`init` कमांड `i18n.json` फाइल जनरेट करते. लोकेल्स आणि बकेट्स कॉन्फिगर करा: - -```json -{ - "$schema": "https://lingo.dev/schema/i18n.json", - "version": "1.10", - "locale": { - "source": "en", - "targets": ["es", "fr", "de"] - }, - "buckets": { - "json": { - "include": ["locales/[locale].json"] - } - } -} -``` - -`provider` फील्ड ऐच्छिक आहे (डीफॉल्ट Lingo.dev Engine). कस्टम LLM प्रोव्हायडर्ससाठी: - -```json -{ - "provider": { - "id": "openai", - "model": "gpt-4o-mini", - "prompt": "Translate from {source} to {target}" - } -} -``` - -**सपोर्ट केलेले LLM प्रोव्हायडर्स:** - -- Lingo.dev Engine (शिफारस केलेले) -- OpenAI -- Anthropic -- Google -- Mistral -- OpenRouter -- Ollama - -[डॉक्युमेंटेशन वाचा →](https://lingo.dev/en/cli) +[डॉक्युमेंटेशन वाचा →](https://lingo.dev/en/docs/cli) --- ### Lingo.dev CI/CD -अनुवाद हे असे फीचर आहे जे नेहमी "जवळजवळ पूर्ण" असते. इंजिनियर्स लोकेल्स अपडेट न करता कोड मर्ज करतात. QA ला स्टेजिंगमध्ये गहाळ अनुवाद सापडतात - किंवा त्याहून वाईट, युजर्सना प्रोडक्शनमध्ये सापडतात. मूळ कारण: अनुवाद ही एक मॅन्युअल स्टेप आहे जी डेडलाइनच्या दबावाखाली वगळणे सोपे असते. - -Lingo.dev CI/CD अनुवाद स्वयंचलित बनवते. प्रत्येक पुश अनुवाद ट्रिगर करते. कोड प्रोडक्शनमध्ये पोहोचण्यापूर्वी गहाळ स्ट्रिंग्स भरल्या जातात. शिस्तीची आवश्यकता नाही - पाइपलाइन ते हाताळते. - -**सपोर्ट केलेले प्लॅटफॉर्म्स:** - -- GitHub Actions -- GitLab CI/CD -- Bitbucket Pipelines - -**GitHub Actions सेटअप:** - -`.github/workflows/translate.yml` तयार करा: - -```yaml -name: Translate -on: - push: - branches: [main] -permissions: - contents: write -jobs: - translate: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Lingo.dev - uses: lingodotdev/lingo.dev@main - with: - api-key: ${{ secrets.LINGODOTDEV_API_KEY }} -``` - -**सेटअप आवश्यकता:** - -1. रिपॉझिटरी सीक्रेट्समध्ये `LINGODOTDEV_API_KEY` जोडा (Settings > Secrets and variables > Actions) -2. PR workflows साठी: Settings > Actions > General मध्ये "Allow GitHub Actions to create and approve pull requests" सक्षम करा - -**वर्कफ्लो पर्याय:** - -अनुवाद थेट कमिट करा: +तुमच्या पाइपलाइनमध्ये सतत स्थानिकीकरण. प्रत्येक पुश स्थानिकीकरण सुरू करतो – कोड प्रोडक्शनमध्ये पोहोचण्यापूर्वी गहाळ स्ट्रिंग्स भरल्या जातात. GitHub Actions, GitLab CI/CD आणि Bitbucket Pipelines ला समर्थन देतो. ```yaml uses: lingodotdev/lingo.dev@main @@ -237,229 +118,23 @@ with: api-key: ${{ secrets.LINGODOTDEV_API_KEY }} ``` -अनुवादांसह पुल रिक्वेस्ट तयार करा: - -```yaml -uses: lingodotdev/lingo.dev@main -with: - api-key: ${{ secrets.LINGODOTDEV_API_KEY }} - pull-request: true -env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} -``` - -**उपलब्ध इनपुट्स:** - -| इनपुट | डिफॉल्ट | वर्णन | -| -------------------- | ---------------------------------------------- | --------------------------------- | -| `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) +[डॉक्युमेंटेशन वाचा →](https://lingo.dev/en/docs/integrations) --- -### Lingo.dev SDK +### Lingo.dev API -स्टॅटिक ट्रान्सलेशन फाइल्स UI लेबल्ससाठी काम करतात, पण युजर-जनरेटेड कंटेंटचे काय? चॅट मेसेजेस, प्रॉडक्ट डिस्क्रिप्शन्स, सपोर्ट टिकिट्स - जे कंटेंट बिल्ड टाइमवर अस्तित्वात नसते ते प्री-ट्रान्सलेट केले जाऊ शकत नाही. तुम्हाला अनट्रान्सलेटेड टेक्स्ट दाखवावा लागतो किंवा कस्टम ट्रान्सलेशन पाइपलाइन तयार करावी लागते. +बॅकएंड कोडमधून थेट तुमचे स्थानिकीकरण इंजिन कॉल करा. वेबहुक डिलिव्हरीसह सिंक्रोनस आणि async स्थानिकीकरण, प्रत्येक लोकॅलसाठी फेल्युअर आयसोलेशन आणि WebSocket द्वारे रिअल-टाइम प्रोग्रेस. -Lingo.dev SDK रनटाइमवर कंटेंट ट्रान्सलेट करते. कोणताही टेक्स्ट, ऑब्जेक्ट किंवा HTML पास करा आणि लोकलाइज्ड व्हर्जन मिळवा. रिअल-टाइम चॅट, डायनॅमिक नोटिफिकेशन्स किंवा डिप्लॉयमेंटनंतर येणाऱ्या कोणत्याही कंटेंटसाठी काम करते. JavaScript, PHP, Python आणि Ruby साठी उपलब्ध. - -**इन्स्टॉलेशन:** - -```bash -npm install lingo.dev -``` - -**वापर:** - -```ts -import { LingoDotDevEngine } from "lingo.dev/sdk"; - -const lingoDotDev = new LingoDotDevEngine({ - apiKey: process.env.LINGODOTDEV_API_KEY, -}); - -// Translate objects (preserves structure) -const translated = await lingoDotDev.localizeObject( - { greeting: "Hello", farewell: "Goodbye" }, - { sourceLocale: "en", targetLocale: "es" }, -); -// { greeting: "Hola", farewell: "Adiós" } - -// Translate text -const text = await lingoDotDev.localizeText("Hello!", { - sourceLocale: "en", - targetLocale: "fr", -}); - -// Translate to multiple languages at once -const results = await lingoDotDev.batchLocalizeText("Hello!", { - sourceLocale: "en", - targetLocales: ["es", "fr", "de"], -}); - -// Translate chat (preserves speaker names) -const chat = await lingoDotDev.localizeChat( - [{ name: "Alice", text: "Hello!" }], - { sourceLocale: "en", targetLocale: "es" }, -); - -// Translate HTML (preserves markup) -const html = await lingoDotDev.localizeHtml("
- Lingo.dev - LLM-ଚାଳିତ ଲୋକାଲାଇଜେସନ୍ ପାଇଁ ଓପନ୍-ସୋର୍ସ i18n ଟୁଲକିଟ୍ + ମୁକ୍ତ-ଉତ୍ସ ସ୍ଥାନୀୟକରଣ ଇଞ୍ଜିନିୟରିଂ ଉପକରଣ। ସ୍ଥିର, ଗୁଣବତ୍ତାପୂର୍ଣ୍ଣ ଅନୁବାଦ ପାଇଁ + Lingo.dev ସ୍ଥାନୀୟକରଣ ଇଞ୍ଜିନିୟରିଂ ପ୍ଲାଟଫର୍ମ ସହ ସଂଯୋଗ କରନ୍ତୁ।
- MCP •CLI • - CI/CD •SDK • - Compiler + Lingo API • + Lingo React MCP • + Lingo CLI • + Lingo GitHub Action • + React ପାଇଁ Lingo Compiler (ପ୍ରାରମ୍ଭିକ ଆଲଫା)
@@ -71,167 +74,43 @@ ## ଶୀଘ୍ର ଆରମ୍ଭ -| ଟୁଲ୍ | ବ୍ୟବହାର କେସ୍ | ଶୀଘ୍ର କମାଣ୍ଡ | -| ---------------------------------- | ------------------------------------------------- | ---------------------------------- | -| [**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 ରାପର୍ ବିନା ବିଲ୍ଡ-ଟାଇମ୍ React ଲୋକାଲାଇଜେସନ୍ | `withLingo()` plugin | +| ଉପକରଣ | ଏହା କ'ଣ କରେ | ଶୀଘ୍ର କମାଣ୍ଡ | +| -------------------------------------------------- | ----------------------------------------------------- | ---------------------------------- | +| [**Lingo React MCP**](#lingodev-mcp) | React ଆପ୍ ପାଇଁ AI-ସହାୟତା ପ୍ରାପ୍ତ i18n ସେଟଅପ୍ | ପ୍ରମ୍ପଟ୍: `Set up i18n` | +| [**Lingo CLI**](#lingodev-cli) | JSON, YAML, markdown, CSV, PO ଫାଇଲ୍ ସ୍ଥାନୀୟକରଣ କରନ୍ତୁ | `npx lingo.dev@latest run` | +| [**Lingo GitHub Action**](#lingodev-cicd) | GitHub Actions ରେ ନିରନ୍ତର ସ୍ଥାନୀୟକରଣ | `uses: lingodotdev/lingo.dev@main` | +| [**Lingo Compiler for React**](#lingodev-compiler) | i18n ରାପର୍ ବିନା ବିଲ୍ଡ-ଟାଇମ୍ React ସ୍ଥାନୀୟକରଣ | `withLingo()` ପ୍ଲଗଇନ୍ | ---- - -### Lingo.dev MCP - -React apps ରେ i18n ସେଟଅପ୍ କରିବା ଅତ୍ୟନ୍ତ ତ୍ରୁଟିପୂର୍ଣ୍ଣ - ଅଭିଜ୍ଞ ଡେଭଲପରମାନଙ୍କ ପାଇଁ ମଧ୍ୟ। AI କୋଡିଂ ଆସିଷ୍ଟାଣ୍ଟଗୁଡ଼ିକ ଏହାକୁ ଆହୁରି ଖରାପ କରିଦିଅନ୍ତି: ସେମାନେ ଅସ୍ତିତ୍ୱହୀନ APIs କୁ hallucinate କରନ୍ତି, middleware configurations ଭୁଲିଯାଆନ୍ତି, routing ଭାଙ୍ଗିଦିଅନ୍ତି, କିମ୍ବା ହଜିଯିବା ପୂର୍ବରୁ ଅଧା ସମାଧାନ implement କରନ୍ତି। ସମସ୍ୟା ହେଉଛି ଯେ i18n ସେଟଅପ୍ ଏକାଧିକ ଫାଇଲ୍ (routing, middleware, components, configuration) ମଧ୍ୟରେ ସମନ୍ୱିତ ପରିବର୍ତ୍ତନଗୁଡ଼ିକର ଏକ ସଠିକ୍ କ୍ରମ ଆବଶ୍ୟକ କରେ, ଏବଂ LLMs ସେହି context ବଜାୟ ରଖିବାରେ ସଂଘର୍ଷ କରନ୍ତି। - -Lingo.dev MCP AI ଆସିଷ୍ଟାଣ୍ଟମାନଙ୍କୁ framework-specific i18n ଜ୍ଞାନକୁ structured access ଦେଇ ଏହାର ସମାଧାନ କରେ। ଅନୁମାନ କରିବା ପରିବର୍ତ୍ତେ, ଆପଣଙ୍କର ଆସିଷ୍ଟାଣ୍ଟ Next.js, React Router, ଏବଂ TanStack Start ପାଇଁ verified implementation patterns ଅନୁସରଣ କରେ। - -**ସମର୍ଥିତ IDEs:** +### ସ୍ଥାନୀୟକରଣ ଇଞ୍ଜିନ୍ -- Claude Code -- Cursor -- GitHub Copilot Agents -- Codex (OpenAI) +ଏହି ଉପକରଣଗୁଡ଼ିକ [ସ୍ଥାନୀୟକରଣ ଇଞ୍ଜିନ୍](https://lingo.dev) ସହ ସଂଯୁକ୍ତ – ଆପଣ Lingo.dev ସ୍ଥାନୀୟକରଣ ଇଞ୍ଜିନିୟରିଂ ପ୍ଲାଟଫର୍ମରେ ସୃଷ୍ଟି କରୁଥିବା ସ୍ଥିର ଅନୁବାଦ API। ପ୍ରତ୍ୟେକ ଇଞ୍ଜିନ୍ ସମସ୍ତ ଅନୁରୋଧରେ ଶବ୍ଦାବଳୀ, ବ୍ରାଣ୍ଡ ଭଏସ୍ ଏବଂ ପ୍ରତି-ଲୋକେଲ୍ ନିର୍ଦ୍ଦେଶନା ସଂରକ୍ଷଣ କରେ, [ଶବ୍ଦାବଳୀ ତ୍ରୁଟି 16.6–44.6% ହ୍ରାସ କରେ](https://lingo.dev/research/retrieval-augmented-localization)। କିମ୍ବା [ନିଜର LLM ଆଣନ୍ତୁ](#lingodev-cli)। -**ସମର୍ଥିତ frameworks:** - -- Next.js (App Router & Pages Router v13-16) -- TanStack Start (v1) -- React Router (v7) - -**ବ୍ୟବହାର:** - -ଆପଣଙ୍କର IDE ରେ MCP server କନଫିଗର୍ କରିବା ପରେ ([quickstart guides ଦେଖନ୍ତୁ](https://lingo.dev/en/mcp)), ଆପଣଙ୍କର ଆସିଷ୍ଟାଣ୍ଟକୁ prompt କରନ୍ତୁ: - -``` -Set up i18n with the following locales: en, es, and pt-BR. The default locale is 'en'. -``` - -ଆସିଷ୍ଟାଣ୍ଟ କରିବ: +--- -1. Locale-based routing କନଫିଗର୍ କରନ୍ତୁ (ଯଥା, `/en`, `/es`, `/pt-BR`) -2. Language switching components ସେଟଅପ୍ କରନ୍ତୁ -3. Automatic locale detection implement କରନ୍ତୁ -4. ଆବଶ୍ୟକ configuration ଫାଇଲ୍ generate କରନ୍ତୁ +### Lingo.dev MCP -**ଧ୍ୟାନ ଦିଅନ୍ତୁ:** AI-assisted କୋଡ୍ generation non-deterministic ଅଟେ। Commit କରିବା ପୂର୍ବରୁ generated କୋଡ୍ review କରନ୍ତୁ। +React ଆପ୍ରେ i18n ସେଟଅପ୍ କରିବା ତ୍ରୁଟିପ୍ରବଣ – AI କୋଡିଂ ସହାୟକମାନେ ମଧ୍ୟ ଅସ୍ତିତ୍ୱହୀନ API କଳ୍ପନା କରନ୍ତି ଏବଂ ରାଉଟିଂ ଭାଙ୍ଗନ୍ତି। Lingo.dev MCP AI ସହାୟକମାନଙ୍କୁ Next.js, React Router ଏବଂ TanStack Start ପାଇଁ framework-ନିର୍ଦ୍ଦିଷ୍ଟ i18n ଜ୍ଞାନର ସଂରଚିତ ପ୍ରବେଶ ପ୍ରଦାନ କରେ। Claude Code, Cursor, GitHub Copilot Agents ଏବଂ Codex ସହ କାମ କରେ। -[ଡକ୍ସ ପଢ଼ନ୍ତୁ →](https://lingo.dev/en/mcp) +[ଡକ୍ସ୍ ପଢ଼ନ୍ତୁ →](https://lingo.dev/en/mcp) --- ### Lingo.dev CLI -ଅନୁବାଦଗୁଡ଼ିକୁ sync ରେ ରଖିବା କ୍ଲାନ୍ତିକର। ଆପଣ ଏକ ନୂଆ string ଯୋଡ଼ନ୍ତି, ଏହାକୁ ଅନୁବାଦ କରିବାକୁ ଭୁଲିଯାଆନ୍ତି, ଆନ୍ତର୍ଜାତୀୟ ବ୍ୟବହାରକାରୀଙ୍କୁ ଭଙ୍ଗା UI ship କରନ୍ତି। କିମ୍ବା ଆପଣ translators କୁ JSON ଫାଇଲ୍ ପଠାନ୍ତି, ଦିନେ ଅପେକ୍ଷା କରନ୍ତି, ତା'ପରେ manually ସେମାନଙ୍କର କାମକୁ ପୁଣି merge କରନ୍ତି। 10+ ଭାଷାକୁ scale କରିବାର ଅର୍ଥ ହେଉଛି ଶହ ଶହ ଫାଇଲ୍ manage କରିବା ଯାହା କ୍ରମାଗତ ଭାବରେ sync ବାହାରେ drift କରେ। - -Lingo.dev CLI ଏହାକୁ automate କରେ। ଏହାକୁ ଆପଣଙ୍କର translation ଫାଇଲ୍ ଆଡ଼କୁ point କରନ୍ତୁ, ଗୋଟିଏ command ଚଲାନ୍ତୁ, ଏବଂ ପ୍ରତ୍ୟେକ locale update ହୁଏ। ଏକ lockfile ଟ୍ରାକ୍ କରେ କ'ଣ ପୂର୍ବରୁ ଅନୁବାଦିତ ହୋଇଛି, ତେଣୁ ଆପଣ କେବଳ ନୂଆ କିମ୍ବା ପରିବର୍ତ୍ତିତ content ପାଇଁ ଦେୟ ଦିଅନ୍ତି। JSON, YAML, CSV, PO ଫାଇଲ୍, ଏବଂ markdown କୁ support କରେ। - -**ସେଟଅପ୍:** +ଗୋଟିଏ କମାଣ୍ଡରେ JSON, YAML, markdown, CSV ଏବଂ PO ଫାଇଲ୍ ସ୍ଥାନୀୟକରଣ କରନ୍ତୁ। ଗୋଟିଏ ଲକଫାଇଲ୍ ପୂର୍ବରୁ ସ୍ଥାନୀୟକୃତ ବିଷୟବସ୍ତୁ ଟ୍ରାକ୍ କରେ – କେବଳ ନୂତନ କିମ୍ବା ପରିବର୍ତ୍ତିତ ବିଷୟବସ୍ତୁ ପ୍ରକ୍ରିୟାକରଣ ହୁଏ। Lingo.dev ରେ ଆପଣଙ୍କ ସ୍ଥାନୀୟକରଣ ଇଞ୍ଜିନ୍ କୁ ଡିଫଲ୍ଟ କରେ, କିମ୍ବା ନିଜର LLM ଆଣନ୍ତୁ (OpenAI, Anthropic, Google, Mistral, OpenRouter, Ollama)। ```bash -# Initialize project npx lingo.dev@latest init - -# Run translations npx lingo.dev@latest run ``` -**ଏହା କିପରି କାମ କରେ:** - -1. କନଫିଗର୍ କରାଯାଇଥିବା ଫାଇଲଗୁଡ଼ିକରୁ ଅନୁବାଦଯୋଗ୍ୟ କଣ୍ଟେଣ୍ଟ ବାହାର କରନ୍ତି -2. ଅନୁବାଦ ପାଇଁ LLM provider କୁ କଣ୍ଟେଣ୍ଟ ପଠାନ୍ତି -3. ଅନୁବାଦିତ କଣ୍ଟେଣ୍ଟକୁ filesystem ରେ ଲେଖନ୍ତି -4. ସମ୍ପୂର୍ଣ୍ଣ ହୋଇଥିବା ଅନୁବାଦଗୁଡ଼ିକୁ ଟ୍ରାକ୍ କରିବା ପାଇଁ `i18n.lock` ଫାଇଲ୍ ସୃଷ୍ଟି କରନ୍ତି (ଅନାବଶ୍ୟକ ପ୍ରକ୍ରିୟାକରଣକୁ ଏଡ଼ାଇଥାଏ) - -**କନଫିଗରେସନ୍:** - -`init` କମାଣ୍ଡ ଏକ `i18n.json` ଫାଇଲ୍ ସୃଷ୍ଟି କରେ। locales ଏବଂ buckets କନଫିଗର୍ କରନ୍ତୁ: - -```json -{ - "$schema": "https://lingo.dev/schema/i18n.json", - "version": "1.10", - "locale": { - "source": "en", - "targets": ["es", "fr", "de"] - }, - "buckets": { - "json": { - "include": ["locales/[locale].json"] - } - } -} -``` - -`provider` ଫିଲ୍ଡ ଇଚ୍ଛାଧୀନ (ଡିଫଲ୍ଟ Lingo.dev Engine)। କଷ୍ଟମ୍ LLM provider ପାଇଁ: - -```json -{ - "provider": { - "id": "openai", - "model": "gpt-4o-mini", - "prompt": "Translate from {source} to {target}" - } -} -``` - -**ସପୋର୍ଟ କରାଯାଉଥିବା LLM providers:** - -- Lingo.dev Engine (ସୁପାରିଶ କରାଯାଏ) -- OpenAI -- Anthropic -- Google -- Mistral -- OpenRouter -- Ollama - -[ଡକ୍ସ ପଢ଼ନ୍ତୁ →](https://lingo.dev/en/cli) +[ଡକ୍ସ ପଢ଼ନ୍ତୁ →](https://lingo.dev/en/docs/cli) --- ### Lingo.dev CI/CD -ଅନୁବାଦ ହେଉଛି ସେହି ଫିଚର୍ ଯାହା ସବୁବେଳେ "ପ୍ରାୟ ସମ୍ପୂର୍ଣ୍ଣ" ହୋଇଥାଏ। ଇଞ୍ଜିନିୟର୍ମାନେ locales ଅପଡେଟ୍ ନକରି କୋଡ୍ merge କରନ୍ତି। QA staging ରେ ହଜିଯାଇଥିବା ଅନୁବାଦ ଧରିଥାଏ - କିମ୍ବା ଆହୁରି ଖରାପ, ୟୁଜର୍ମାନେ production ରେ ସେଗୁଡ଼ିକୁ ଧରନ୍ତି। ମୂଳ କାରଣ: ଅନୁବାଦ ଏକ manual ପଦକ୍ଷେପ ଯାହା deadline pressure ରେ ଛାଡ଼ିବା ସହଜ। - -Lingo.dev CI/CD ଅନୁବାଦକୁ ସ୍ୱୟଂଚାଳିତ କରେ। ପ୍ରତ୍ୟେକ push ଅନୁବାଦ ଟ୍ରିଗର୍ କରେ। କୋଡ୍ production ରେ ପହଞ୍ଚିବା ପୂର୍ବରୁ ହଜିଯାଇଥିବା strings ପୂରଣ ହୋଇଯାଏ। କୌଣସି ଅନୁଶାସନ ଆବଶ୍ୟକ ନାହିଁ - pipeline ଏହାକୁ ସମ୍ଭାଳେ। - -**ସପୋର୍ଟ କରାଯାଉଥିବା platforms:** - -- GitHub Actions -- GitLab CI/CD -- Bitbucket Pipelines - -**GitHub Actions ସେଟଅପ୍:** - -`.github/workflows/translate.yml` ସୃଷ୍ଟି କରନ୍ତୁ: - -```yaml -name: Translate -on: - push: - branches: [main] -permissions: - contents: write -jobs: - translate: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Lingo.dev - uses: lingodotdev/lingo.dev@main - with: - api-key: ${{ secrets.LINGODOTDEV_API_KEY }} -``` - -**ସେଟଅପ୍ ଆବଶ୍ୟକତା:** - -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" ସକ୍ଷମ କରନ୍ତୁ - -**Workflow ବିକଳ୍ପଗୁଡ଼ିକ:** - -ଅନୁବାଦଗୁଡ଼ିକୁ ସିଧାସଳଖ commit କରନ୍ତୁ: +ଆପଣଙ୍କ ପାଇପଲାଇନରେ ନିରନ୍ତର ସ୍ଥାନୀୟକରଣ। ପ୍ରତ୍ୟେକ ପୁସ୍ ସ୍ଥାନୀୟକରଣକୁ ଟ୍ରିଗର କରେ – ଅନୁପସ୍ଥିତ ଷ୍ଟ୍ରିଂଗୁଡ଼ିକ କୋଡ୍ ପ୍ରଡକ୍ସନରେ ପହଞ୍ଚିବା ପୂର୍ବରୁ ପୂରଣ ହୁଏ। GitHub Actions, GitLab CI/CD, ଏବଂ Bitbucket Pipelines କୁ ସମର୍ଥନ କରେ। ```yaml uses: lingodotdev/lingo.dev@main @@ -239,229 +118,23 @@ with: api-key: ${{ secrets.LINGODOTDEV_API_KEY }} ``` -ଅନୁବାଦ ସହିତ pull request ସୃଷ୍ଟି କରନ୍ତୁ: - -```yaml -uses: lingodotdev/lingo.dev@main -with: - api-key: ${{ secrets.LINGODOTDEV_API_KEY }} - pull-request: true -env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} -``` - -**ଉପଲବ୍ଧ 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` | ସମାନ୍ତରାଳ ପ୍ରକ୍ରିୟାକରଣ ସକ୍ଷମ କରନ୍ତୁ | - -[ଡକ୍ସ ପଢ଼ନ୍ତୁ →](https://lingo.dev/en/ci/github) +[ଡକ୍ସ ପଢ଼ନ୍ତୁ →](https://lingo.dev/en/docs/integrations) --- -### Lingo.dev SDK +### Lingo.dev API -ଷ୍ଟାଟିକ୍ ଅନୁବାଦ ଫାଇଲଗୁଡ଼ିକ UI label ପାଇଁ କାମ କରେ, କିନ୍ତୁ ବ୍ୟବହାରକାରୀ-ସୃଷ୍ଟି କଣ୍ଟେଣ୍ଟ ବିଷୟରେ କ'ଣ? ଚାଟ୍ ମେସେଜ୍, ପ୍ରଡକ୍ଟ ବର୍ଣ୍ଣନା, ସପୋର୍ଟ ଟିକେଟ୍ - ଯେଉଁ କଣ୍ଟେଣ୍ଟ build time ରେ ବିଦ୍ୟମାନ ନାହିଁ ତାହା ପୂର୍ବରୁ ଅନୁବାଦ କରାଯାଇପାରିବ ନାହିଁ। ଆପଣ ଅନୁବାଦିତ ନଥିବା ଟେକ୍ସଟ୍ ଦେଖାଇବାକୁ କିମ୍ବା କଷ୍ଟମ୍ ଅନୁବାଦ pipeline ନିର୍ମାଣ କରିବାକୁ ବାଧ୍ୟ ହୁଅନ୍ତି। +ବ୍ୟାକଏଣ୍ଡ କୋଡ଼ରୁ ସିଧାସଳଖ ଆପଣଙ୍କ ସ୍ଥାନୀୟକରଣ ଇଞ୍ଜିନକୁ କଲ କରନ୍ତୁ। ୱେବହୁକ ଡେଲିଭରି ସହିତ ସିଙ୍କ୍ରୋନସ ଏବଂ ଏସିଙ୍କ ସ୍ଥାନୀୟକରଣ, ପ୍ରତି ଲୋକେଲରେ ବିଫଳତା ପୃଥକୀକରଣ, ଏବଂ WebSocket ମାଧ୍ୟମରେ ରିଅଲ-ଟାଇମ ପ୍ରଗତି। -Lingo.dev SDK runtime ରେ କଣ୍ଟେଣ୍ଟ ଅନୁବାଦ କରେ। କୌଣସି ଟେକ୍ସଟ୍, object, କିମ୍ବା HTML ପାସ୍ କରନ୍ତୁ ଏବଂ ଏକ ଲୋକାଲାଇଜ୍ ହୋଇଥିବା ସଂସ୍କରଣ ଫେରାଇ ପାଆନ୍ତୁ। ରିଅଲ୍-ଟାଇମ୍ ଚାଟ୍, ଡାଇନାମିକ୍ ନୋଟିଫିକେସନ୍, କିମ୍ବା deployment ପରେ ଆସୁଥିବା କୌଣସି କଣ୍ଟେଣ୍ଟ ପାଇଁ କାମ କରେ। JavaScript, PHP, Python, ଏବଂ Ruby ପାଇଁ ଉପଲବ୍ଧ। - -**ଇନଷ୍ଟଲେସନ୍:** - -```bash -npm install lingo.dev -``` - -**ବ୍ୟବହାର:** - -```ts -import { LingoDotDevEngine } from "lingo.dev/sdk"; - -const lingoDotDev = new LingoDotDevEngine({ - apiKey: process.env.LINGODOTDEV_API_KEY, -}); - -// Translate objects (preserves structure) -const translated = await lingoDotDev.localizeObject( - { greeting: "Hello", farewell: "Goodbye" }, - { sourceLocale: "en", targetLocale: "es" }, -); -// { greeting: "Hola", farewell: "Adiós" } - -// Translate text -const text = await lingoDotDev.localizeText("Hello!", { - sourceLocale: "en", - targetLocale: "fr", -}); - -// Translate to multiple languages at once -const results = await lingoDotDev.batchLocalizeText("Hello!", { - sourceLocale: "en", - targetLocales: ["es", "fr", "de"], -}); - -// Translate chat (preserves speaker names) -const chat = await lingoDotDev.localizeChat( - [{ name: "Alice", text: "Hello!" }], - { sourceLocale: "en", targetLocale: "es" }, -); - -// Translate HTML (preserves markup) -const html = await lingoDotDev.localizeHtml("
- Lingo.dev - LLM-ਸੰਚਾਲਿਤ ਲੋਕਲਾਈਜ਼ੇਸ਼ਨ ਲਈ ਓਪਨ-ਸੋਰਸ i18n ਟੂਲਕਿੱਟ + + ਓਪਨ-ਸੋਰਸ ਲੋਕਲਾਈਜ਼ੇਸ਼ਨ ਇੰਜੀਨੀਅਰਿੰਗ ਟੂਲਜ਼। ਸਥਿਰ, ਉੱਚ-ਗੁਣਵੱਤਾ ਵਾਲੇ ਅਨੁਵਾਦਾਂ ਲਈ + Lingo.dev ਲੋਕਲਾਈਜ਼ੇਸ਼ਨ ਇੰਜੀਨੀਅਰਿੰਗ ਪਲੇਟਫਾਰਮ ਨਾਲ ਕਨੈਕਟ ਕਰੋ। +
- MCP •CLI • - CI/CD •SDK • - Compiler + Lingo API • + Lingo React MCP • + Lingo CLI • + Lingo GitHub Action • + React ਲਈ Lingo Compiler (ਸ਼ੁਰੂਆਤੀ ਅਲਫ਼ਾ)
@@ -69,51 +74,22 @@ ## ਤੁਰੰਤ ਸ਼ੁਰੂਆਤ -| ਟੂਲ | ਵਰਤੋਂ ਦਾ ਮਾਮਲਾ | ਤੁਰੰਤ ਕਮਾਂਡ | -| ---------------------------------- | ---------------------------------------------------- | ---------------------------------- | -| [**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 | +| ਟੂਲ | ਇਹ ਕੀ ਕਰਦਾ ਹੈ | ਤੇਜ਼ ਕਮਾਂਡ | +| -------------------------------------------------- | ------------------------------------------------------ | ---------------------------------- | +| [**Lingo React MCP**](#lingodev-mcp) | React ਐਪਸ ਲਈ AI-ਸਹਾਇਤਾ ਪ੍ਰਾਪਤ i18n ਸੈਟਅੱਪ | ਪ੍ਰੌਂਪਟ: `Set up i18n` | +| [**Lingo CLI**](#lingodev-cli) | JSON, YAML, markdown, CSV, PO ਫ਼ਾਈਲਾਂ ਨੂੰ ਲੋਕਲਾਈਜ਼ ਕਰੋ | `npx lingo.dev@latest run` | +| [**Lingo GitHub Action**](#lingodev-cicd) | GitHub Actions ਵਿੱਚ ਲਗਾਤਾਰ ਲੋਕਲਾਈਜ਼ੇਸ਼ਨ | `uses: lingodotdev/lingo.dev@main` | +| [**Lingo Compiler for React**](#lingodev-compiler) | i18n ਰੈਪਰਾਂ ਤੋਂ ਬਿਨਾਂ ਬਿਲਡ-ਟਾਈਮ React ਲੋਕਲਾਈਜ਼ੇਸ਼ਨ | `withLingo()` ਪਲੱਗਇਨ | ---- - -### Lingo.dev MCP - -React ਐਪਸ ਵਿੱਚ i18n ਸੈੱਟਅੱਪ ਕਰਨਾ ਬਦਨਾਮ ਤੌਰ 'ਤੇ ਗਲਤੀ-ਪ੍ਰਵਣ ਹੈ - ਤਜਰਬੇਕਾਰ ਡਿਵੈਲਪਰਾਂ ਲਈ ਵੀ। AI ਕੋਡਿੰਗ ਸਹਾਇਕ ਇਸਨੂੰ ਹੋਰ ਵੀ ਮਾੜਾ ਬਣਾਉਂਦੇ ਹਨ: ਉਹ ਗੈਰ-ਮੌਜੂਦ APIs ਦੀ ਕਲਪਨਾ ਕਰਦੇ ਹਨ, ਮਿਡਲਵੇਅਰ ਕੌਂਫਿਗਰੇਸ਼ਨਾਂ ਨੂੰ ਭੁੱਲ ਜਾਂਦੇ ਹਨ, ਰਾਊਟਿੰਗ ਨੂੰ ਤੋੜ ਦਿੰਦੇ ਹਨ, ਜਾਂ ਗੁੰਮ ਹੋਣ ਤੋਂ ਪਹਿਲਾਂ ਅੱਧਾ ਹੱਲ ਲਾਗੂ ਕਰਦੇ ਹਨ। ਸਮੱਸਿਆ ਇਹ ਹੈ ਕਿ i18n ਸੈੱਟਅੱਪ ਲਈ ਕਈ ਫਾਈਲਾਂ (ਰਾਊਟਿੰਗ, ਮਿਡਲਵੇਅਰ, ਕੰਪੋਨੈਂਟਸ, ਕੌਂਫਿਗਰੇਸ਼ਨ) ਵਿੱਚ ਤਾਲਮੇਲ ਵਾਲੀਆਂ ਤਬਦੀਲੀਆਂ ਦੀ ਇੱਕ ਸਟੀਕ ਕ੍ਰਮ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ, ਅਤੇ LLMs ਉਸ ਸੰਦਰਭ ਨੂੰ ਬਣਾਈ ਰੱਖਣ ਵਿੱਚ ਸੰਘਰਸ਼ ਕਰਦੇ ਹਨ। - -Lingo.dev MCP ਇਸ ਸਮੱਸਿਆ ਨੂੰ AI ਸਹਾਇਕਾਂ ਨੂੰ ਫਰੇਮਵਰਕ-ਵਿਸ਼ੇਸ਼ i18n ਗਿਆਨ ਤੱਕ ਸੰਰਚਿਤ ਪਹੁੰਚ ਦੇ ਕੇ ਹੱਲ ਕਰਦਾ ਹੈ। ਅੰਦਾਜ਼ਾ ਲਗਾਉਣ ਦੀ ਬਜਾਏ, ਤੁਹਾਡਾ ਸਹਾਇਕ Next.js, React Router, ਅਤੇ TanStack Start ਲਈ ਪ੍ਰਮਾਣਿਤ ਲਾਗੂਕਰਨ ਪੈਟਰਨਾਂ ਦੀ ਪਾਲਣਾ ਕਰਦਾ ਹੈ। - -**ਸਮਰਥਿਤ IDEs:** +### ਲੋਕਲਾਈਜ਼ੇਸ਼ਨ ਇੰਜਣ -- Claude Code -- Cursor -- GitHub Copilot Agents -- Codex (OpenAI) +ਇਹ ਟੂਲਜ਼ [ਲੋਕਲਾਈਜ਼ੇਸ਼ਨ ਇੰਜਣਾਂ](https://lingo.dev) ਨਾਲ ਕਨੈਕਟ ਹੁੰਦੇ ਹਨ – ਸਟੇਟਫੁੱਲ ਅਨੁਵਾਦ APIs ਜੋ ਤੁਸੀਂ Lingo.dev ਲੋਕਲਾਈਜ਼ੇਸ਼ਨ ਇੰਜੀਨੀਅਰਿੰਗ ਪਲੇਟਫਾਰਮ ਤੇ ਬਣਾਉਂਦੇ ਹੋ। ਹਰ ਇੰਜਣ ਹਰੇਕ ਬੇਨਤੀ ਵਿੱਚ ਗਲੋਸਰੀਜ਼, ਬ੍ਰਾਂਡ ਵੌਇਸ, ਅਤੇ ਪ੍ਰਤੀ-ਲੋਕੇਲ ਨਿਰਦੇਸ਼ਾਂ ਨੂੰ ਸੁਰੱਖਿਅਤ ਰੱਖਦਾ ਹੈ, [ਸ਼ਬਦਾਵਲੀ ਗਲਤੀਆਂ ਨੂੰ 16.6–44.6% ਘਟਾਉਂਦਾ ਹੈ](https://lingo.dev/research/retrieval-augmented-localization)। ਜਾਂ [ਆਪਣਾ LLM ਲਿਆਓ](#lingodev-cli)। -**ਸਮਰਥਿਤ ਫਰੇਮਵਰਕ:** - -- Next.js (App Router ਅਤੇ Pages Router v13-16) -- TanStack Start (v1) -- React Router (v7) - -**ਵਰਤੋਂ:** - -ਆਪਣੇ IDE ਵਿੱਚ MCP ਸਰਵਰ ਨੂੰ ਕੌਂਫਿਗਰ ਕਰਨ ਤੋਂ ਬਾਅਦ ([ਕੁਇੱਕਸਟਾਰਟ ਗਾਈਡਾਂ ਦੇਖੋ](https://lingo.dev/en/mcp)), ਆਪਣੇ ਸਹਾਇਕ ਨੂੰ ਪ੍ਰੋਂਪਟ ਕਰੋ: - -``` -Set up i18n with the following locales: en, es, and pt-BR. The default locale is 'en'. -``` - -ਸਹਾਇਕ ਇਹ ਕਰੇਗਾ: +--- -1. ਲੋਕੇਲ-ਅਧਾਰਿਤ ਰਾਊਟਿੰਗ ਕੌਂਫਿਗਰ ਕਰੋ (ਉਦਾਹਰਨਵਾਂ ਵਾਂਗ `/en`, `/es`, `/pt-BR`) -2. ਭਾਸ਼ਾ ਸਵਿੱਚਿੰਗ ਕੰਪੋਨੈਂਟਸ ਸੈੱਟਅੱਪ ਕਰੋ -3. ਆਟੋਮੈਟਿਕ ਲੋਕੇਲ ਡਿਟੈਕਸ਼ਨ ਲਾਗੂ ਕਰੋ -4. ਲੋੜੀਂਦੀਆਂ ਕੌਂਫਿਗਰੇਸ਼ਨ ਫਾਈਲਾਂ ਤਿਆਰ ਕਰੋ +### Lingo.dev MCP -**ਨੋਟ:** AI-ਸਹਾਇਤਾ ਪ੍ਰਾਪਤ ਕੋਡ ਜਨਰੇਸ਼ਨ ਗੈਰ-ਨਿਰਧਾਰਕ ਹੈ। ਕਮਿਟ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਤਿਆਰ ਕੀਤੇ ਕੋਡ ਦੀ ਸਮੀਖਿਆ ਕਰੋ। +React ਐਪਸ ਵਿੱਚ i18n ਸੈਟਅੱਪ ਕਰਨਾ ਗਲਤੀਆਂ ਵਾਲਾ ਹੋ ਸਕਦਾ ਹੈ – AI ਕੋਡਿੰਗ ਸਹਾਇਕ ਵੀ ਗੈਰ-ਮੌਜੂਦ APIs ਬਣਾਉਂਦੇ ਹਨ ਅਤੇ ਰਾਉਟਿੰਗ ਨੂੰ ਤੋੜ ਦਿੰਦੇ ਹਨ। Lingo.dev MCP, AI ਸਹਾਇਕਾਂ ਨੂੰ Next.js, React Router, ਅਤੇ TanStack Start ਲਈ ਫ੍ਰੇਮਵਰਕ-ਵਿਸ਼ੇਸ਼ i18n ਗਿਆਨ ਤੱਕ ਸੰਰਚਿਤ ਪਹੁੰਚ ਦਿੰਦਾ ਹੈ। Claude Code, Cursor, GitHub Copilot Agents, ਅਤੇ Codex ਨਾਲ ਕੰਮ ਕਰਦਾ ਹੈ। [ਦਸਤਾਵੇਜ਼ ਪੜ੍ਹੋ →](https://lingo.dev/en/mcp) @@ -121,115 +97,20 @@ Set up i18n with the following locales: en, es, and pt-BR. The default locale is ### Lingo.dev CLI -ਅਨੁਵਾਦਾਂ ਨੂੰ ਸਿੰਕ ਵਿੱਚ ਰੱਖਣਾ ਥਕਾਊ ਹੈ। ਤੁਸੀਂ ਇੱਕ ਨਵੀਂ ਸਟਰਿੰਗ ਜੋੜਦੇ ਹੋ, ਇਸਦਾ ਅਨੁਵਾਦ ਕਰਨਾ ਭੁੱਲ ਜਾਂਦੇ ਹੋ, ਅੰਤਰਰਾਸ਼ਟਰੀ ਉਪਭੋਗਤਾਵਾਂ ਨੂੰ ਟੁੱਟਿਆ UI ਭੇਜ ਦਿੰਦੇ ਹੋ। ਜਾਂ ਤੁਸੀਂ ਅਨੁਵਾਦਕਾਂ ਨੂੰ JSON ਫਾਈਲਾਂ ਭੇਜਦੇ ਹੋ, ਦਿਨਾਂ ਦੀ ਉਡੀਕ ਕਰਦੇ ਹੋ, ਫਿਰ ਮੈਨੁਅਲੀ ਉਹਨਾਂ ਦੇ ਕੰਮ ਨੂੰ ਵਾਪਸ ਮਰਜ ਕਰਦੇ ਹੋ। 10+ ਭਾਸ਼ਾਵਾਂ ਤੱਕ ਸਕੇਲ ਕਰਨ ਦਾ ਮਤਲਬ ਹੈ ਸੈਂਕੜੇ ਫਾਈਲਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰਨਾ ਜੋ ਲਗਾਤਾਰ ਸਿੰਕ ਤੋਂ ਬਾਹਰ ਹੋ ਜਾਂਦੀਆਂ ਹਨ। - -Lingo.dev CLI ਇਸਨੂੰ ਆਟੋਮੇਟ ਕਰਦਾ ਹੈ। ਇਸਨੂੰ ਆਪਣੀਆਂ ਅਨੁਵਾਦ ਫਾਈਲਾਂ ਵੱਲ ਇਸ਼ਾਰਾ ਕਰੋ, ਇੱਕ ਕਮਾਂਡ ਚਲਾਓ, ਅਤੇ ਹਰ ਲੋਕੇਲ ਅੱਪਡੇਟ ਹੋ ਜਾਂਦਾ ਹੈ। ਇੱਕ ਲਾਕਫਾਈਲ ਟਰੈਕ ਕਰਦੀ ਹੈ ਕਿ ਪਹਿਲਾਂ ਹੀ ਕੀ ਅਨੁਵਾਦ ਕੀਤਾ ਗਿਆ ਹੈ, ਇਸਲਈ ਤੁਸੀਂ ਸਿਰਫ਼ ਨਵੀਂ ਜਾਂ ਬਦਲੀ ਹੋਈ ਸਮੱਗਰੀ ਲਈ ਭੁਗਤਾਨ ਕਰਦੇ ਹੋ। JSON, YAML, CSV, PO ਫਾਈਲਾਂ, ਅਤੇ markdown ਨੂੰ ਸਮਰਥਨ ਕਰਦਾ ਹੈ। - -**ਸੈੱਟਅੱਪ:** +JSON, YAML, markdown, CSV, ਅਤੇ PO ਫ਼ਾਈਲਾਂ ਨੂੰ ਇੱਕ ਕਮਾਂਡ ਵਿੱਚ ਲੋਕਲਾਈਜ਼ ਕਰੋ। ਇੱਕ ਲੌਕਫਾਈਲ ਟਰੈਕ ਕਰਦੀ ਹੈ ਕਿ ਪਹਿਲਾਂ ਹੀ ਕੀ ਲੋਕਲਾਈਜ਼ ਹੋਇਆ ਹੈ – ਸਿਰਫ਼ ਨਵੀਂ ਜਾਂ ਬਦਲੀ ਗਈ ਸਮੱਗਰੀ ਹੀ ਪ੍ਰੋਸੈਸ ਹੁੰਦੀ ਹੈ। Lingo.dev ਤੇ ਤੁਹਾਡੇ ਲੋਕਲਾਈਜ਼ੇਸ਼ਨ ਇੰਜਣ ਨੂੰ ਡਿਫੌਲਟ ਕਰਦਾ ਹੈ, ਜਾਂ ਆਪਣਾ LLM ਲਿਆਓ (OpenAI, Anthropic, Google, Mistral, OpenRouter, Ollama)। ```bash -# Initialize project npx lingo.dev@latest init - -# Run translations npx lingo.dev@latest run ``` -**ਇਹ ਕਿਵੇਂ ਕੰਮ ਕਰਦਾ ਹੈ:** - -1. ਕੌਂਫਿਗਰ ਕੀਤੀਆਂ ਫਾਈਲਾਂ ਤੋਂ ਅਨੁਵਾਦਯੋਗ ਸਮੱਗਰੀ ਕੱਢੀ ਜਾਂਦੀ ਹੈ -2. ਅਨੁਵਾਦ ਲਈ ਸਮੱਗਰੀ LLM ਪ੍ਰੋਵਾਈਡਰ ਨੂੰ ਭੇਜੀ ਜਾਂਦੀ ਹੈ -3. ਅਨੁਵਾਦ ਹੋਈ ਸਮੱਗਰੀ ਫਾਇਲ ਸਿਸਟਮ ਵਿੱਚ ਵਾਪਸ ਲਿਖੀ ਜਾਂਦੀ ਹੈ -4. `i18n.lock` ਫਾਈਲ ਪੂਰੇ ਹੋਏ ਅਨੁਵਾਦਾਂ ਨੂੰ ਟ੍ਰੈਕ ਕਰਨ ਲਈ ਬਣਾਈ ਜਾਂਦੀ ਹੈ (ਬੇਲੋੜੀ ਪ੍ਰੋਸੈਸਿੰਗ ਤੋਂ ਬਚਾਵ) - -**ਕੌਂਫਿਗਰੇਸ਼ਨ:** - -`init` ਕਮਾਂਡ ਇੱਕ `i18n.json` ਫਾਈਲ ਤਿਆਰ ਕਰਦੀ ਹੈ। ਲੋਕੇਲਜ਼ ਅਤੇ ਬਕੇਟਸ ਨੂੰ ਕੌਂਫਿਗਰ ਕਰੋ: - -```json -{ - "$schema": "https://lingo.dev/schema/i18n.json", - "version": "1.10", - "locale": { - "source": "en", - "targets": ["es", "fr", "de"] - }, - "buckets": { - "json": { - "include": ["locales/[locale].json"] - } - } -} -``` - -`provider` ਫੀਲਡ ਵਿਕਲਪਿਕ ਹੈ (ਡਿਫ਼ਾਲਟ Lingo.dev Engine)। ਕਸਟਮ LLM ਪ੍ਰੋਵਾਈਡਰ ਲਈ: - -```json -{ - "provider": { - "id": "openai", - "model": "gpt-4o-mini", - "prompt": "Translate from {source} to {target}" - } -} -``` - -**ਸਮਰਥਿਤ LLM ਪ੍ਰੋਵਾਈਡਰ:** - -- Lingo.dev Engine (ਸਿਫਾਰਸ਼ਿਤ) -- OpenAI -- Anthropic -- Google -- Mistral -- OpenRouter -- Ollama - -[ਦਸਤਾਵੇਜ਼ ਪੜ੍ਹੋ →](https://lingo.dev/en/cli) +[ਦਸਤਾਵੇਜ਼ ਪੜ੍ਹੋ →](https://lingo.dev/en/docs/cli) --- ### Lingo.dev CI/CD -ਅਨੁਵਾਦ ਉਹ ਫੀਚਰ ਹੈ ਜੋ ਹਮੇਸ਼ਾ "ਲਗਭਗ ਪੂਰਾ" ਹੁੰਦਾ ਹੈ। ਇੰਜੀਨੀਅਰ ਲੋਕੇਲਾਂ ਨੂੰ ਅੱਪਡੇਟ ਕੀਤੇ ਬਿਨਾਂ ਕੋਡ ਮਰਜ਼ ਕਰ ਦਿੰਦੇ ਹਨ। QA ਸਟੇਜਿੰਗ ਵਿੱਚ ਗੁੰਮ ਅਨੁਵਾਦਾਂ ਨੂੰ ਫੜਦਾ ਹੈ - ਜਾਂ ਇਸ ਤੋਂ ਵੀ ਮਾੜਾ, ਯੂਜ਼ਰ ਉਹਨਾਂ ਨੂੰ ਪ੍ਰੋਡਕਸ਼ਨ ਵਿੱਚ ਫੜਦੇ ਹਨ। ਮੂਲ ਕਾਰਨ: ਅਨੁਵਾਦ ਇੱਕ ਮੈਨੁਅਲ ਸਟੈਪ ਹੈ ਜਿਸ ਨੂੰ ਡੈੱਡਲਾਈਨ ਦੇ ਦਬਾਅ ਹੇਠ ਛੱਡਣਾ ਆਸਾਨ ਹੈ। - -Lingo.dev CI/CD ਅਨੁਵਾਦਾਂ ਨੂੰ ਆਟੋਮੈਟਿਕ ਬਣਾਉਂਦਾ ਹੈ। ਹਰ ਪੁਸ਼ ਅਨੁਵਾਦ ਨੂੰ ਟਰਿੱਗਰ ਕਰਦੀ ਹੈ। ਗੁੰਮ ਸਟਰਿੰਗਾਂ ਕੋਡ ਦੇ ਪ੍ਰੋਡਕਸ਼ਨ ਵਿੱਚ ਪਹੁੰਚਣ ਤੋਂ ਪਹਿਲਾਂ ਭਰ ਜਾਂਦੀਆਂ ਹਨ। ਕਿਸੇ ਅਨੁਸ਼ਾਸਨ ਦੀ ਲੋੜ ਨਹੀਂ - ਪਾਈਪਲਾਈਨ ਇਸ ਨੂੰ ਸੰਭਾਲਦੀ ਹੈ। - -**ਸਮਰਥਿਤ ਪਲੇਟਫਾਰਮ:** - -- GitHub Actions -- GitLab CI/CD -- Bitbucket Pipelines - -**GitHub Actions ਸੈੱਟਅੱਪ:** - -`.github/workflows/translate.yml` ਬਣਾਓ: - -```yaml -name: Translate -on: - push: - branches: [main] -permissions: - contents: write -jobs: - translate: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Lingo.dev - uses: lingodotdev/lingo.dev@main - with: - api-key: ${{ secrets.LINGODOTDEV_API_KEY }} -``` - -**ਸੈੱਟਅੱਪ ਲੋੜਾਂ:** - -1. `LINGODOTDEV_API_KEY` ਨੂੰ ਰਿਪੋਸਿਟਰੀ ਸੀਕਰੇਟਸ ਵਿੱਚ ਸ਼ਾਮਲ ਕਰੋ (Settings > Secrets and variables > Actions) -2. PR ਵਰਕਫਲੋਜ਼ ਲਈ: Settings > Actions > General ਵਿੱਚ "Allow GitHub Actions to create and approve pull requests" ਸਮਰੱਥ ਕਰੋ - -**ਵਰਕਫਲੋ ਵਿਕਲਪ:** - -ਅਨੁਵਾਦਾਂ ਨੂੰ ਸਿੱਧੇ ਕਮਿਟ ਕਰੋ: +ਤੁਹਾਡੀ ਪਾਈਪਲਾਈਨ ਵਿੱਚ ਨਿਰੰਤਰ ਸਥਾਨੀਕਰਨ। ਹਰ ਪੁਸ਼ ਸਥਾਨੀਕਰਨ ਸ਼ੁਰੂ ਕਰਦੀ ਹੈ – ਕੋਡ ਪ੍ਰੋਡਕਸ਼ਨ ਵਿੱਚ ਪਹੁੰਚਣ ਤੋਂ ਪਹਿਲਾਂ ਗੁੰਮ ਸਤਰਾਂ ਭਰੀਆਂ ਜਾਂਦੀਆਂ ਹਨ। GitHub Actions, GitLab CI/CD, ਅਤੇ Bitbucket Pipelines ਦਾ ਸਮਰਥਨ ਕਰਦੀ ਹੈ। ```yaml uses: lingodotdev/lingo.dev@main @@ -237,242 +118,36 @@ with: api-key: ${{ secrets.LINGODOTDEV_API_KEY }} ``` -ਅਨੁਵਾਦਾਂ ਨਾਲ ਪੁੱਲ ਰਿਕੁਐਸਟਾਂ ਬਣਾਓ: - -```yaml -uses: lingodotdev/lingo.dev@main -with: - api-key: ${{ secrets.LINGODOTDEV_API_KEY }} - pull-request: true -env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} -``` - -**ਉਪਲਬਧ ਇਨਪੁੱਟਸ:** - -| ਇਨਪੁੱਟ | ਡਿਫਾਲਟ | ਵੇਰਵਾ | -| -------------------- | ---------------------------------------------- | ------------------------------ | -| `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) +[ਦਸਤਾਵੇਜ਼ ਪੜ੍ਹੋ →](https://lingo.dev/en/docs/integrations) --- -### Lingo.dev SDK +### Lingo.dev API -ਸਥਿਰ ਅਨੁਵਾਦ ਫਾਈਲਾਂ UI ਲੇਬਲਾਂ ਲਈ ਕੰਮ ਕਰਦੀਆਂ ਹਨ, ਪਰ ਉਪਭੋਗਤਾ-ਜਨਰੇਟਿਡ ਸਮੱਗਰੀ ਬਾਰੇ ਕੀ? ਚੈਟ ਸੁਨੇਹੇ, ਉਤਪਾਦ ਵੇਰਵੇ, ਸਹਾਇਤਾ ਟਿਕਟਾਂ - ਉਹ ਸਮੱਗਰੀ ਜੋ ਬਿਲਡ ਸਮੇਂ ਮੌਜੂਦ ਨਹੀਂ ਹੁੰਦੀ, ਪਹਿਲਾਂ ਤੋਂ ਅਨੁਵਾਦਿਤ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ। ਤੁਸੀਂ ਗੈਰ-ਅਨੁਵਾਦਿਤ ਟੈਕਸਟ ਦਿਖਾਉਣ ਜਾਂ ਕਸਟਮ ਅਨੁਵਾਦ ਪਾਈਪਲਾਈਨ ਬਣਾਉਣ ਵਿੱਚ ਫਸ ਜਾਂਦੇ ਹੋ। +ਬੈਕਐਂਡ ਕੋਡ ਤੋਂ ਸਿੱਧੇ ਆਪਣੇ ਸਥਾਨੀਕਰਨ ਇੰਜਣ ਨੂੰ ਕੌਲ ਕਰੋ। ਵੈਬਹੁੱਕ ਡਿਲੀਵਰੀ ਦੇ ਨਾਲ ਸਿੰਕਰੋਨਸ ਅਤੇ ਐਸਿੰਕ ਸਥਾਨੀਕਰਨ, ਹਰ ਲੋਕੇਲ ਲਈ ਅਸਫਲਤਾ ਅਲੱਗ-ਥਲੱਗ, ਅਤੇ WebSocket ਰਾਹੀਂ ਰੀਅਲ-ਟਾਈਮ ਪ੍ਰਗਤੀ। -Lingo.dev SDK ਰਨਟਾਈਮ ਤੇ ਸਮੱਗਰੀ ਦਾ ਅਨੁਵਾਦ ਕਰਦਾ ਹੈ। ਕੋਈ ਵੀ ਟੈਕਸਟ, ਆਬਜੈਕਟ, ਜਾਂ HTML ਪਾਸ ਕਰੋ ਅਤੇ ਸਥਾਨਿਕ ਸੰਸਕਰਣ ਵਾਪਸ ਪ੍ਰਾਪਤ ਕਰੋ। ਰੀਅਲ-ਟਾਈਮ ਚੈਟ, ਗਤੀਸ਼ੀਲ ਸੂਚਨਾਵਾਂ, ਜਾਂ ਕਿਸੇ ਵੀ ਸਮੱਗਰੀ ਲਈ ਕੰਮ ਕਰਦਾ ਹੈ ਜੋ ਡਿਪਲਾਇਮੈਂਟ ਤੋਂ ਬਾਅਦ ਆਉਂਦੀ ਹੈ। JavaScript, PHP, Python, ਅਤੇ Ruby ਲਈ ਉਪਲਬਧ। - -**ਇੰਸਟਾਲੇਸ਼ਨ:** - -```bash -npm install lingo.dev -``` - -**ਵਰਤੋਂ:** - -```ts -import { LingoDotDevEngine } from "lingo.dev/sdk"; - -const lingoDotDev = new LingoDotDevEngine({ - apiKey: process.env.LINGODOTDEV_API_KEY, -}); - -// Translate objects (preserves structure) -const translated = await lingoDotDev.localizeObject( - { greeting: "Hello", farewell: "Goodbye" }, - { sourceLocale: "en", targetLocale: "es" }, -); -// { greeting: "Hola", farewell: "Adiós" } - -// Translate text -const text = await lingoDotDev.localizeText("Hello!", { - sourceLocale: "en", - targetLocale: "fr", -}); - -// Translate to multiple languages at once -const results = await lingoDotDev.batchLocalizeText("Hello!", { - sourceLocale: "en", - targetLocales: ["es", "fr", "de"], -}); - -// Translate chat (preserves speaker names) -const chat = await lingoDotDev.localizeChat( - [{ name: "Alice", text: "Hello!" }], - { sourceLocale: "en", targetLocale: "es" }, -); - -// Translate HTML (preserves markup) -const html = await lingoDotDev.localizeHtml("
- Lingo.dev – Otwarty toolkit i18n do lokalizacji wspieranej przez LLM + Narzędzia inżynierii lokalizacji o otwartym kodzie źródłowym. Połącz się z + platformą Lingo.dev, aby uzyskać spójne tłumaczenia najwyższej jakości.
- MCP •CLI • - CI/CD •SDK • - Kompilator + Lingo API • + Lingo React MCP • + Lingo CLI • + Lingo GitHub Action • + + Lingo Compiler dla React (Wczesna wersja alfa) +
@@ -71,51 +76,22 @@ ## 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 | - ---- - -### Lingo.dev MCP - -Konfigurowanie i18n w aplikacjach React jest notorycznie podatne na błędy – nawet dla doświadczonych developerów. Asystenci AI tylko pogarszają sprawę: "halucynują" nieistniejące API, pomijają konfiguracje middleware, psują routing lub wdrażają połowiczne rozwiązania, po czym gubią kontekst. Problem polega na tym, że wdrożenie i18n wymaga precyzyjnej sekwencji skoordynowanych zmian w wielu plikach (routing, middleware, komponenty, konfiguracja), a LLM-y mają trudność z utrzymaniem takiego kontekstu. +| Narzędzie | Do czego służy | Szybkie polecenie | +| -------------------------------------------------- | -------------------------------------------------------- | ---------------------------------- | +| [**Lingo React MCP**](#lingodev-mcp) | Konfiguracja i18n dla aplikacji React z asystą AI | Prompt: `Set up i18n` | +| [**Lingo CLI**](#lingodev-cli) | Lokalizacja plików JSON, YAML, markdown, CSV, PO | `npx lingo.dev@latest run` | +| [**Lingo GitHub Action**](#lingodev-cicd) | Ciągła lokalizacja w GitHub Actions | `uses: lingodotdev/lingo.dev@main` | +| [**Lingo Compiler dla React**](#lingodev-compiler) | Lokalizacja React w czasie kompilacji bez wrapperów i18n | `withLingo()` wtyczka | -Lingo.dev MCP rozwiązuje ten problem, zapewniając asystentom AI ustrukturyzowany dostęp do wiedzy o i18n specyficznej dla frameworków. Zamiast zgadywać, Twój asystent podąża za zweryfikowanymi wzorcami implementacji dla Next.js, React Router i TanStack Start. +### Silniki lokalizacji -**Obsługiwane IDE:** +Te narzędzia łączą się z [silnikami lokalizacji](https://lingo.dev) – stanowymi API tłumaczeń, które tworzysz na platformie Lingo.dev. Każdy silnik przechowuje glosariusze, ton marki i instrukcje dla poszczególnych lokalizacji w każdym żądaniu, [redukując błędy terminologiczne o 16,6–44,6%](https://lingo.dev/research/retrieval-augmented-localization). Możesz też [użyć własnego LLM](#lingodev-cli). -- Claude Code -- Cursor -- GitHub Copilot Agents -- Codex (OpenAI) - -**Obsługiwane frameworki:** - -- Next.js (App Router i Pages Router v13-16) -- TanStack Start (v1) -- React Router (v7) - -**Użycie:** - -Po skonfigurowaniu serwera MCP w swoim IDE ([zobacz przewodniki szybkiego startu](https://lingo.dev/en/mcp)), poproś asystenta: - -``` -Set up i18n with the following locales: en, es, and pt-BR. The default locale is 'en'. -``` - -Asystent wykona następujące kroki: +--- -1. Skonfigurować routing oparty na lokalizacji (np. `/en`, `/es`, `/pt-BR`) -2. Włączyć komponenty do przełączania języka -3. Zaimplementować automatyczne wykrywanie lokalizacji -4. Wygenerować niezbędne pliki konfiguracyjne +### Lingo.dev MCP -**Uwaga:** Generowanie kodu przez AI jest niedeterministyczne. Przejrzyj wygenerowany kod przed zatwierdzeniem. +Konfiguracja i18n w aplikacjach React jest podatna na błędy – nawet asystenci AI generują nieistniejące API i psują routing. Lingo.dev MCP zapewnia asystentom AI ustrukturyzowany dostęp do wiedzy o i18n dla Next.js, React Router i TanStack Start. Działa z Claude Code, Cursor, GitHub Copilot Agents i Codex. [Przeczytaj dokumentację →](https://lingo.dev/en/mcp) @@ -123,115 +99,20 @@ Asystent wykona następujące kroki: ### Lingo.dev CLI -Utrzymywanie tłumaczeń w synchronizacji jest żmudne. Dodajesz nowy string, zapominasz go przetłumaczyć, a do użytkowników międzynarodowych trafia uszkodzony interfejs. Albo wysyłasz pliki JSON tłumaczom, czekasz kilka dni, a potem ręcznie scalasz ich pracę. Skalowanie do 10+ języków oznacza zarządzanie setkami plików, które stale się rozjeżdżają. - -Lingo.dev CLI automatyzuje ten proces. Wskaż pliki tłumaczeń, uruchom jedno polecenie i każda lokalizacja zostanie zaktualizowana. Plik lockfile śledzi, co już zostało przetłumaczone, więc płacisz tylko za nowe lub zmienione treści. Obsługuje pliki JSON, YAML, CSV, PO oraz markdown. - -**Konfiguracja:** +Lokalizuj pliki JSON, YAML, markdown, CSV i PO jednym poleceniem. Lockfile śledzi, co zostało już przetłumaczone – przetwarzana jest tylko nowa lub zmieniona treść. Domyślnie łączy się z Twoim silnikiem lokalizacji na Lingo.dev, możesz też użyć własnego LLM (OpenAI, Anthropic, Google, Mistral, OpenRouter, Ollama). ```bash -# Initialize project npx lingo.dev@latest init - -# Run translations npx lingo.dev@latest run ``` -**Jak to działa:** - -1. Ekstrahuje treści do tłumaczenia ze skonfigurowanych plików -2. Wysyła je do dostawcy LLM w celu tłumaczenia -3. Zapisuje przetłumaczoną zawartość do systemu plików -4. Tworzy plik `i18n.lock` do śledzenia ukończonych tłumaczeń (eliminuje zbędne przetwarzanie) - -**Konfiguracja:** - -Polecenie `init` generuje plik `i18n.json`. Skonfiguruj lokalizacje i buckety: - -```json -{ - "$schema": "https://lingo.dev/schema/i18n.json", - "version": "1.10", - "locale": { - "source": "en", - "targets": ["es", "fr", "de"] - }, - "buckets": { - "json": { - "include": ["locales/[locale].json"] - } - } -} -``` - -Pole `provider` jest opcjonalne (domyślnie silnik Lingo.dev). Dla innych dostawców LLM: - -```json -{ - "provider": { - "id": "openai", - "model": "gpt-4o-mini", - "prompt": "Translate from {source} to {target}" - } -} -``` - -**Obsługiwani dostawcy LLM:** - -- Lingo.dev Engine (zalecane) -- OpenAI -- Anthropic -- Google -- Mistral -- OpenRouter -- Ollama - -[Przeczytaj dokumentację →](https://lingo.dev/en/cli) +[Przeczytaj dokumentację →](https://lingo.dev/en/docs/cli) --- ### Lingo.dev CI/CD -Tłumaczenia to funkcja, która zawsze jest "prawie gotowa". Inżynierowie scalają kod bez aktualizacji lokalizacji. QA wykrywa brakujące tłumaczenia na etapie stagingu – albo, co gorsza, użytkownicy zauważają je w produkcji. Główna przyczyna: tłumaczenie to ręczny krok, który łatwo pominąć pod presją czasu. - -Lingo.dev CI/CD automatyzuje tłumaczenia. Każdy push uruchamia proces tłumaczenia. Brakujące ciągi są uzupełniane zanim kod trafi na produkcję. Nie wymaga dyscypliny – pipeline zajmuje się tym automatycznie. - -**Obsługiwane platformy:** - -- GitHub Actions -- GitLab CI/CD -- Bitbucket Pipelines - -**Konfiguracja GitHub Actions:** - -Utwórz plik `.github/workflows/translate.yml`: - -```yaml -name: Translate -on: - push: - branches: [main] -permissions: - contents: write -jobs: - translate: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Lingo.dev - uses: lingodotdev/lingo.dev@main - with: - api-key: ${{ secrets.LINGODOTDEV_API_KEY }} -``` - -**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 - -**Opcje workflow:** - -Zatwierdzaj tłumaczenia bezpośrednio: +Ciągła lokalizacja w Twoim pipeline. Każde wysłanie kodu uruchamia lokalizację – brakujące ciągi są uzupełniane, zanim kod trafi do produkcji. Wspiera GitHub Actions, GitLab CI/CD i Bitbucket Pipelines. ```yaml uses: lingodotdev/lingo.dev@main @@ -239,250 +120,44 @@ with: api-key: ${{ secrets.LINGODOTDEV_API_KEY }} ``` -Twórz pull requesty z tłumaczeniami: - -```yaml -uses: lingodotdev/lingo.dev@main -with: - api-key: ${{ secrets.LINGODOTDEV_API_KEY }} - pull-request: true -env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} -``` - -**Dostępne wejścia:** - -| Wejście | Wartość domyślna | 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 uruchomienia | -| `parallel` | `false` | Włącz przetwarzanie równoległe | - -[Przeczytaj dokumentację →](https://lingo.dev/en/ci/github) +[Przeczytaj dokumentację →](https://lingo.dev/en/docs/integrations) --- -### Lingo.dev SDK - -Statyczne pliki tłumaczeń sprawdzają się dla etykiet UI, ale co z treściami generowanymi przez użytkowników? Wiadomości na czacie, opisy produktów, zgłoszenia do supportu – treści, które nie istnieją w momencie budowania aplikacji, nie mogą być przetłumaczone z wyprzedzeniem. Pozostaje wyświetlanie nieprzetłumaczonego tekstu lub budowa własnego pipeline'u tłumaczeń. - -Lingo.dev SDK tłumaczy treści w czasie rzeczywistym. Przekaż dowolny tekst, obiekt lub HTML i otrzymaj zlokalizowaną wersję. Działa dla czatów na żywo, dynamicznych powiadomień czy dowolnych treści pojawiających się po wdrożeniu. Dostępny dla JavaScript, PHP, Pythona i Ruby. - -**Instalacja:** - -```bash -npm install lingo.dev -``` - -**Użycie:** - -```ts -import { LingoDotDevEngine } from "lingo.dev/sdk"; - -const lingoDotDev = new LingoDotDevEngine({ - apiKey: process.env.LINGODOTDEV_API_KEY, -}); - -// Translate objects (preserves structure) -const translated = await lingoDotDev.localizeObject( - { greeting: "Hello", farewell: "Goodbye" }, - { sourceLocale: "en", targetLocale: "es" }, -); -// { greeting: "Hola", farewell: "Adiós" } - -// Translate text -const text = await lingoDotDev.localizeText("Hello!", { - sourceLocale: "en", - targetLocale: "fr", -}); - -// Translate to multiple languages at once -const results = await lingoDotDev.batchLocalizeText("Hello!", { - sourceLocale: "en", - targetLocales: ["es", "fr", "de"], -}); - -// Translate chat (preserves speaker names) -const chat = await lingoDotDev.localizeChat( - [{ name: "Alice", text: "Hello!" }], - { sourceLocale: "en", targetLocale: "es" }, -); - -// Translate HTML (preserves markup) -const html = await lingoDotDev.localizeHtml("
- Lingo.dev - Kit de ferramentas i18n de código aberto para localização com - LLM + Ferramentas open-source de engenharia de localização. Conecte-se à + plataforma de engenharia de localização Lingo.dev para traduções + consistentes e de qualidade.
- MCP •CLI • - CI/CD •SDK • - Compiler + API Lingo • + Lingo React MCP • + CLI Lingo • + Ação GitHub Lingo • + Compilador Lingo para React (Alfa inicial)
@@ -72,167 +75,43 @@ ## Início rápido -| Ferramenta | Caso de uso | Comando rápido | -| ---------------------------------- | ----------------------------------------------------- | ---------------------------------- | -| [**MCP**](#lingodev-mcp) | Configuração de i18n assistida por IA para apps React | Prompt: `Set up i18n` | -| [**CLI**](#lingodev-cli) | Traduz 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 dinâmica em tempo de execução | `npm install lingo.dev` | -| [**Compiler**](#lingodev-compiler) | Localização React em tempo de build sem wrappers i18n | Plugin `withLingo()` | +| Ferramenta | O que faz | Comando Rápido | +| ----------------------------------------------------- | ----------------------------------------------------- | ---------------------------------- | +| [**Lingo React MCP**](#lingodev-mcp) | Configuração de i18n assistida por IA para apps React | Prompt: `Set up i18n` | +| [**CLI Lingo**](#lingodev-cli) | Localiza arquivos JSON, YAML, markdown, CSV, PO | `npx lingo.dev@latest run` | +| [**Ação GitHub Lingo**](#lingodev-cicd) | Localização contínua no GitHub Actions | `uses: lingodotdev/lingo.dev@main` | +| [**Compilador Lingo para React**](#lingodev-compiler) | Localização React em tempo de build sem wrappers i18n | Plugin `withLingo()` | ---- - -### Lingo.dev MCP - -Configurar i18n em aplicações React é notoriamente propenso a erros - mesmo para desenvolvedores experientes. Assistentes de IA para codificação pioram a situação: eles alucinam APIs inexistentes, esquecem configurações de middleware, quebram o roteamento ou implementam metade de uma solução antes de se perderem. O problema é que a configuração de i18n requer uma sequência precisa de mudanças coordenadas em múltiplos arquivos (roteamento, middleware, componentes, configuração), e os LLMs têm dificuldade em manter esse contexto. - -O Lingo.dev MCP resolve isso fornecendo aos assistentes de IA acesso estruturado ao conhecimento de i18n específico de cada framework. Em vez de adivinhar, seu assistente segue padrões de implementação verificados para Next.js, React Router e TanStack Start. - -**IDEs suportadas:** +### Motores de localização -- Claude Code -- Cursor -- GitHub Copilot Agents -- Codex (OpenAI) +Essas ferramentas conectam-se a [motores de localização](https://lingo.dev) – APIs de tradução com estado que você cria na plataforma de engenharia de localização Lingo.dev. Cada motor mantém glossários, voz de marca e instruções por idioma em cada requisição, [reduzindo erros de terminologia em 16,6–44,6%](https://lingo.dev/research/retrieval-augmented-localization). Ou [traga seu próprio LLM](#lingodev-cli). -**Frameworks suportados:** - -- Next.js (App Router e Pages Router v13-16) -- TanStack Start (v1) -- React Router (v7) - -**Uso:** - -Após configurar o servidor MCP na sua IDE ([veja os guias de início rápido](https://lingo.dev/en/mcp)), solicite ao seu assistente: - -``` -Set up i18n with the following locales: en, es, and pt-BR. The default locale is 'en'. -``` - -O assistente irá: +--- -1. Configurar roteamento baseado em localidade (por exemplo, `/en`, `/es`, `/pt-BR`) -2. Configurar componentes de troca de idioma -3. Implementar detecção automática de localidade -4. Gerar arquivos de configuração necessários +### Lingo.dev MCP -**Observação:** a geração de código assistida por IA é não-determinística. Revise o código gerado antes de fazer commit. +Configurar i18n em apps React é suscetível a erros – até assistentes de IA alucinam APIs inexistentes e quebram roteamento. O Lingo.dev MCP dá aos assistentes de IA acesso estruturado ao conhecimento de i18n específico para Next.js, React Router e TanStack Start. Funciona com Claude Code, Cursor, GitHub Copilot Agents e Codex. [Leia a documentação →](https://lingo.dev/en/mcp) --- -### Lingo.dev CLI +### CLI Lingo.dev -Manter traduções sincronizadas é tedioso. Você adiciona uma nova string, esquece de traduzi-la e envia uma interface quebrada para usuários internacionais. Ou você envia arquivos JSON para tradutores, espera dias e depois mescla manualmente o trabalho deles de volta. Escalar para mais de 10 idiomas significa gerenciar centenas de arquivos que constantemente ficam dessincronizados. - -O Lingo.dev CLI automatiza isso. Aponte-o para seus arquivos de tradução, execute um comando e todos os locales são atualizados. Um arquivo de bloqueio rastreia o que já foi traduzido, então você paga apenas por conteúdo novo ou alterado. Suporta arquivos JSON, YAML, CSV, PO e markdown. - -**Configuração:** +Localize arquivos JSON, YAML, markdown, CSV e PO em um comando. Um arquivo de bloqueio rastreia o que já foi localizado – apenas conteúdo novo ou alterado é processado. Usa por padrão seu motor de localização no Lingo.dev, ou traga seu próprio LLM (OpenAI, Anthropic, Google, Mistral, OpenRouter, Ollama). ```bash -# Initialize project npx lingo.dev@latest init - -# Run translations 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. Escreve o conteúdo traduzido de volta ao sistema de arquivos -4. Cria o arquivo `i18n.lock` para rastrear traduções concluídas (evita processamento redundante) - -**Configuração:** - -O comando `init` gera um arquivo `i18n.json`. Configure os locales e buckets: - -```json -{ - "$schema": "https://lingo.dev/schema/i18n.json", - "version": "1.10", - "locale": { - "source": "en", - "targets": ["es", "fr", "de"] - }, - "buckets": { - "json": { - "include": ["locales/[locale].json"] - } - } -} -``` - -O campo `provider` é opcional (padrão: Lingo.dev Engine). Para provedores LLM personalizados: - -```json -{ - "provider": { - "id": "openai", - "model": "gpt-4o-mini", - "prompt": "Translate from {source} to {target}" - } -} -``` - -**Provedores LLM suportados:** - -- Lingo.dev Engine (recomendado) -- OpenAI -- Anthropic -- Google -- Mistral -- OpenRouter -- Ollama - -[Leia a documentação →](https://lingo.dev/en/cli) +[Leia a documentação →](https://lingo.dev/en/docs/cli) --- ### Lingo.dev CI/CD -Traduções são a funcionalidade que está sempre "quase pronta". Engenheiros fazem merge de código sem atualizar os locales. O QA detecta traduções faltando em staging - ou pior, os usuários detectam em produção. A causa raiz: tradução é uma etapa manual que é fácil de pular sob pressão de prazo. - -O Lingo.dev CI/CD torna as traduções automáticas. Cada push aciona a tradução. Strings faltando são preenchidas antes do código chegar à produção. Nenhuma disciplina necessária - o pipeline cuida disso. - -**Plataformas suportadas:** - -- GitHub Actions -- GitLab CI/CD -- Bitbucket Pipelines - -**Configuração do GitHub Actions:** - -Crie `.github/workflows/translate.yml`: - -```yaml -name: Translate -on: - push: - branches: [main] -permissions: - contents: write -jobs: - translate: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Lingo.dev - uses: lingodotdev/lingo.dev@main - with: - api-key: ${{ secrets.LINGODOTDEV_API_KEY }} -``` - -**Requisitos de configuração:** - -1. Adicione `LINGODOTDEV_API_KEY` aos segredos do repositório (Settings > Secrets and variables > Actions) -2. Para workflows de PR: Habilite "Allow GitHub Actions to create and approve pull requests" em Settings > Actions > General - -**Opções de workflow:** - -Fazer commit das traduções diretamente: +Localização contínua no seu pipeline. Cada push aciona a localização – strings ausentes são preenchidas antes do código chegar à produção. Compatível com GitHub Actions, GitLab CI/CD e Bitbucket Pipelines. ```yaml uses: lingodotdev/lingo.dev@main @@ -240,229 +119,23 @@ with: api-key: ${{ secrets.LINGODOTDEV_API_KEY }} ``` -Crie pull requests com traduções: - -```yaml -uses: lingodotdev/lingo.dev@main -with: - api-key: ${{ secrets.LINGODOTDEV_API_KEY }} - pull-request: true -env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} -``` - -**Inputs disponíveis:** - -| Input | Padrão | Descrição | -| -------------------- | ---------------------------------------------- | -------------------------------------- | -| `api-key` | (obrigatório) | Chave de API do Lingo.dev | -| `pull-request` | `false` | Cria 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 personalizado de PR | -| `working-directory` | `"."` | Diretório para execução | -| `parallel` | `false` | Habilitar processamento paralelo | - -[Leia a documentação →](https://lingo.dev/en/ci/github) +[Leia a documentação →](https://lingo.dev/en/docs/integrations) --- -### Lingo.dev SDK +### API Lingo.dev -Arquivos de tradução estáticos funcionam para labels de UI, mas e quanto ao conteúdo gerado por usuários? Mensagens de chat, descrições de produtos, tickets de suporte - conteúdo que não existe em tempo de build não pode ser pré-traduzido. Você fica preso mostrando texto não traduzido ou construindo um pipeline de tradução personalizado. +Chame seu mecanismo de localização diretamente do código backend. Localização síncrona e assíncrona com entrega via webhook, isolamento de falhas por locale e progresso em tempo real via WebSocket. -O Lingo.dev SDK traduz conteúdo em tempo de execução. Passe qualquer texto, objeto ou HTML e receba de volta uma versão localizada. Funciona para chat em tempo real, notificações dinâmicas ou qualquer conteúdo que chega após o deploy. Disponível para JavaScript, PHP, Python e Ruby. - -**Instalação:** - -```bash -npm install lingo.dev -``` - -**Uso:** - -```ts -import { LingoDotDevEngine } from "lingo.dev/sdk"; - -const lingoDotDev = new LingoDotDevEngine({ - apiKey: process.env.LINGODOTDEV_API_KEY, -}); - -// Translate objects (preserves structure) -const translated = await lingoDotDev.localizeObject( - { greeting: "Hello", farewell: "Goodbye" }, - { sourceLocale: "en", targetLocale: "es" }, -); -// { greeting: "Hola", farewell: "Adiós" } - -// Translate text -const text = await lingoDotDev.localizeText("Hello!", { - sourceLocale: "en", - targetLocale: "fr", -}); - -// Translate to multiple languages at once -const results = await lingoDotDev.batchLocalizeText("Hello!", { - sourceLocale: "en", - targetLocales: ["es", "fr", "de"], -}); - -// Translate chat (preserves speaker names) -const chat = await lingoDotDev.localizeChat( - [{ name: "Alice", text: "Hello!" }], - { sourceLocale: "en", targetLocale: "es" }, -); - -// Translate HTML (preserves markup) -const html = await lingoDotDev.localizeHtml("
- Lingo.dev — open-source i18n toolkit для локализации на базе LLM + Инструменты локализационной инженерии с открытым исходным кодом. + Подключайтесь к платформе локализационной инженерии Lingo.dev для стабильных + и качественных переводов.
- MCP •CLI • - CI/CD •SDK • - Compiler + Lingo API • + Lingo React MCP • + Lingo CLI • + Lingo GitHub Action • + + Lingo Compiler для React (Ранняя альфа-версия) +
@@ -71,51 +77,22 @@ ## Быстрый старт -| Инструмент | Сценарий использования | Быстрая команда | -| ---------------------------------- | -------------------------------------------------- | ---------------------------------- | -| [**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` | -| [**SDK**](#lingodev-sdk) | Перевод на лету для динамического контента | `npm install lingo.dev` | -| [**Compiler**](#lingodev-compiler) | Локализация React на этапе сборки без i18n-обёрток | `withLingo()` plugin | - ---- - -### Lingo.dev MCP - -Настроить i18n в React-приложениях — это всегда куча граблей, даже для опытных разработчиков. AI-ассистенты только усугубляют: придумывают несуществующие API, забывают про middleware, ломают роутинг или делают всё наполовину и теряются. Проблема в том, что настройка i18n требует чёткой последовательности изменений в разных файлах (роутинг, middleware, компоненты, конфиги), а LLM-ам сложно держать весь контекст. +| Инструмент | Что делает | Быстрая команда | +| -------------------------------------------------- | -------------------------------------------------- | ---------------------------------- | +| [**Lingo React MCP**](#lingodev-mcp) | Настройка i18n для React-приложений с помощью ИИ | Запрос: `Set up i18n` | +| [**Lingo CLI**](#lingodev-cli) | Локализация JSON, YAML, markdown, CSV, PO-файлов | `npx lingo.dev@latest run` | +| [**Lingo GitHub Action**](#lingodev-cicd) | Непрерывная локализация в GitHub Actions | `uses: lingodotdev/lingo.dev@main` | +| [**Lingo Compiler для React**](#lingodev-compiler) | Локализация React на этапе сборки без i18n-обёрток | Плагин `withLingo()` | -Lingo.dev MCP решает это, давая AI-ассистентам структурированный доступ к знаниям по i18n для конкретных фреймворков. Вместо догадок ассистент использует проверенные схемы для Next.js, React Router и TanStack Start. +### Движки локализации -**Поддерживаемые IDE:** +Эти инструменты подключаются к [движкам локализации](https://lingo.dev) – API перевода с сохранением состояния, которые вы создаёте на платформе локализационной инженерии Lingo.dev. Каждый движок сохраняет глоссарии, голос бренда и инструкции для каждой локали при каждом запросе, [сокращая терминологические ошибки на 16,6–44,6%](https://lingo.dev/research/retrieval-augmented-localization). Или [используйте собственную LLM](#lingodev-cli). -- Claude Code -- Cursor -- GitHub Copilot Agents -- Codex (OpenAI) - -**Поддерживаемые фреймворки:** - -- Next.js (App Router и Pages Router v13-16) -- TanStack Start (v1) -- React Router (v7) - -**Использование:** - -После настройки MCP-сервера в своей IDE ([см. быстрый старт](https://lingo.dev/en/mcp)), просто попросите ассистента: - -``` -Set up i18n with the following locales: en, es, and pt-BR. The default locale is 'en'. -``` - -Ассистент сделает следующее: +--- -1. Настроить роутинг по локалям (например, `/en`, `/es`, `/pt-BR`) -2. Добавить компоненты для переключения языка -3. Реализовать автоматическое определение локали -4. Сгенерировать необходимые конфигурационные файлы +### Lingo.dev MCP -**Важно:** Генерация кода с помощью AI непредсказуема. Проверьте код перед коммитом. +Настройка i18n в React-приложениях — процесс, подверженный ошибкам: даже ИИ-ассистенты генерируют несуществующие API и ломают маршрутизацию. Lingo.dev MCP предоставляет ИИ-ассистентам структурированный доступ к специфическим для фреймворков знаниям по i18n для Next.js, React Router и TanStack Start. Работает с Claude Code, Cursor, GitHub Copilot Agents и Codex. [Читать документацию →](https://lingo.dev/en/mcp) @@ -123,115 +100,20 @@ Set up i18n with the following locales: en, es, and pt-BR. The default locale is ### Lingo.dev CLI -Держать переводы в актуальном состоянии — это боль. Добавил новую строку, забыл перевести — и вот уже сломанный интерфейс для пользователей из других стран. Или отправил JSON-файлы переводчикам, ждал несколько дней, потом вручную сливал их работу. А если языков больше 10, то это уже сотни файлов, которые постоянно расходятся. - -Lingo.dev CLI всё автоматизирует. Просто укажи папку с переводами, запусти одну команду — и все локали обновятся. Lockfile отслеживает, что уже переведено, так что платишь только за новое или изменённое. Поддерживаются JSON, YAML, CSV, PO и markdown-файлы. - -**Установка:** +Локализуйте JSON, YAML, markdown, CSV и PO-файлы одной командой. Файл блокировки отслеживает уже локализованный контент — обрабатывается только новое или изменённое содержимое. По умолчанию использует ваш движок локализации на Lingo.dev, либо подключите собственную LLM (OpenAI, Anthropic, Google, Mistral, OpenRouter, Ollama). ```bash -# Initialize project npx lingo.dev@latest init - -# Run translations npx lingo.dev@latest run ``` -**Как это работает:** - -1. Извлекает переводимый контент из настроенных файлов -2. Отправляет его провайдеру LLM для перевода -3. Записывает переведённый контент обратно в файловую систему -4. Создаёт файл `i18n.lock` для отслеживания завершённых переводов (предотвращает избыточную обработку) - -**Конфигурация:** - -Команда `init` генерирует файл `i18n.json`. Настройте локали и бакеты: - -```json -{ - "$schema": "https://lingo.dev/schema/i18n.json", - "version": "1.10", - "locale": { - "source": "en", - "targets": ["es", "fr", "de"] - }, - "buckets": { - "json": { - "include": ["locales/[locale].json"] - } - } -} -``` - -Поле `provider` необязательно (по умолчанию — Lingo.dev Engine). Для индивидуальных LLM-провайдеров: - -```json -{ - "provider": { - "id": "openai", - "model": "gpt-4o-mini", - "prompt": "Translate from {source} to {target}" - } -} -``` - -**Поддерживаемые LLM-провайдеры:** - -- Lingo.dev Engine (рекомендуется) -- OpenAI -- Anthropic -- Google -- Mistral -- OpenRouter -- Ollama - -[Читать документацию →](https://lingo.dev/en/cli) +[Читать документацию →](https://lingo.dev/en/docs/cli) --- ### Lingo.dev CI/CD -Переводы — это фича, которая всегда "почти готова". Разработчики сливают код, не обновляя локали. QA находит пропущенные переводы на стейджинге — или, что хуже, пользователи ловят их в проде. Корень проблемы: перевод — ручной этап, который легко пропустить под дедлайном. - -Lingo.dev CI/CD автоматизирует переводы. Каждый пуш запускает перевод. Пропущенные строки заполняются до попадания кода в прод. Не нужно напрягаться — пайплайн всё сделает. - -**Поддерживаемые платформы:** - -- GitHub Actions -- GitLab CI/CD -- Bitbucket Pipelines - -**Настройка GitHub Actions:** - -Создайте `.github/workflows/translate.yml`: - -```yaml -name: Translate -on: - push: - branches: [main] -permissions: - contents: write -jobs: - translate: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Lingo.dev - uses: lingodotdev/lingo.dev@main - with: - api-key: ${{ secrets.LINGODOTDEV_API_KEY }} -``` - -**Требования к установке:** - -1. Добавьте `LINGODOTDEV_API_KEY` в секреты репозитория (Settings > Secrets and variables > Actions) -2. Для PR-воркфлоу: включите "Allow GitHub Actions to create and approve pull requests" в Settings > Actions > General - -**Опции воркфлоу:** - -Коммитить переводы напрямую: +Непрерывная локализация в вашем конвейере. Каждый пуш запускает локализацию – недостающие строки заполняются до того, как код попадёт в продакшн. Поддерживает GitHub Actions, GitLab CI/CD и Bitbucket Pipelines. ```yaml uses: lingodotdev/lingo.dev@main @@ -239,254 +121,48 @@ with: api-key: ${{ secrets.LINGODOTDEV_API_KEY }} ``` -Создавайте pull request'ы с переводами: - -```yaml -uses: lingodotdev/lingo.dev@main -with: - api-key: ${{ secrets.LINGODOTDEV_API_KEY }} - pull-request: true -env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} -``` - -**Доступные параметры:** - -| Параметр | По умолчанию | Описание | -| -------------------- | ---------------------------------------------- | ----------------------------------- | -| `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) +[Читать документацию →](https://lingo.dev/en/docs/integrations) --- -### Lingo.dev SDK - -Статические файлы переводов подходят для UI-меток, но что делать с пользовательским контентом? Чаты, описания товаров, обращения в поддержку — всё это появляется уже после сборки и не может быть переведено заранее. В итоге вы показываете текст без перевода или строите свою сложную систему локализации. - -Lingo.dev SDK переводит контент на лету. Передайте любой текст, объект или HTML — и получите локализованную версию. Работает для чатов в реальном времени, динамических уведомлений и любого контента, который появляется после деплоя. Доступно для JavaScript, PHP, Python и Ruby. - -**Установка:** - -```bash -npm install lingo.dev -``` - -**Использование:** - -```ts -import { LingoDotDevEngine } from "lingo.dev/sdk"; - -const lingoDotDev = new LingoDotDevEngine({ - apiKey: process.env.LINGODOTDEV_API_KEY, -}); - -// Translate objects (preserves structure) -const translated = await lingoDotDev.localizeObject( - { greeting: "Hello", farewell: "Goodbye" }, - { sourceLocale: "en", targetLocale: "es" }, -); -// { greeting: "Hola", farewell: "Adiós" } - -// Translate text -const text = await lingoDotDev.localizeText("Hello!", { - sourceLocale: "en", - targetLocale: "fr", -}); - -// Translate to multiple languages at once -const results = await lingoDotDev.batchLocalizeText("Hello!", { - sourceLocale: "en", - targetLocales: ["es", "fr", "de"], -}); - -// Translate chat (preserves speaker names) -const chat = await lingoDotDev.localizeChat( - [{ name: "Alice", text: "Hello!" }], - { sourceLocale: "en", targetLocale: "es" }, -); - -// Translate HTML (preserves markup) -const html = await lingoDotDev.localizeHtml("
- Lingo.dev - LLM බලගන්වන ප්රාදේශීයකරණය සඳහා විවෘත මූලාශ්ර i18n මෙවලම් - කට්ටලය + විවෘත-මූලාශ්ර ප්රාදේශීයකරණ ඉංජිනේරු මෙවලම්. ස්ථාවර, ගුණාත්මක පරිවර්තන සඳහා + Lingo.dev ප්රාදේශීයකරණ ඉංජිනේරු වේදිකාවට සම්බන්ධ වන්න.
- MCP •CLI • - CI/CD •SDK • - Compiler + Lingo API • + Lingo React MCP • + Lingo CLI • + Lingo GitHub Action • + React සඳහා Lingo Compiler (මූලික ඇල්ෆා)
@@ -72,51 +74,22 @@ ## ඉක්මන් ආරම්භය -| මෙවලම | භාවිත අවස්ථාව | ඉක්මන් විධානය | -| ---------------------------------- | ----------------------------------------------------- | ---------------------------------- | -| [**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 | +| මෙවලම | එය කරන දේ | ඉක්මන් විධානය | +| -------------------------------------------------- | ------------------------------------------------------- | ---------------------------------- | +| [**Lingo React MCP**](#lingodev-mcp) | React යෙදුම් සඳහා AI-සහාය i18n පිහිටුවීම | විමසුම: `Set up i18n` | +| [**Lingo CLI**](#lingodev-cli) | JSON, YAML, markdown, CSV, PO ගොනු ප්රාදේශීයකරණය කරන්න | `npx lingo.dev@latest run` | +| [**Lingo GitHub Action**](#lingodev-cicd) | GitHub Actions හි අඛණ්ඩ ප්රාදේශීයකරණය | `uses: lingodotdev/lingo.dev@main` | +| [**Lingo Compiler for React**](#lingodev-compiler) | i18n එතීම් රහිතව සාදන-කාල React ප්රාදේශීයකරණය | `withLingo()` plugin | ---- - -### Lingo.dev MCP - -React යෙදුම් වල i18n පිහිටුවීම දන්නා ලෙස දෝෂ සහිත වේ - පළපුරුදු සංවර්ධකයින්ට පවා. AI කේතන සහායකයින් එය වඩාත් නරක කරයි: ඔවුන් නොපවතින API මායාවන් නිර්මාණය කරයි, middleware වින්යාසයන් අමතක කරයි, routing බිඳ දමයි, හෝ අතරමං වීමට පෙර අර්ධ විසඳුමක් ක්රියාත්මක කරයි. ගැටලුව නම් i18n පිහිටුවීම සඳහා බහු ගොනු හරහා (routing, middleware, components, configuration) සම්බන්ධීකරණය කළ වෙනස්කම් වල නිශ්චිත අනුපිළිවෙලක් අවශ්ය වන අතර, LLM එම සන්දර්භය පවත්වා ගැනීමට අරගල කරයි. - -Lingo.dev MCP මෙය විසඳන්නේ AI සහායකයින්ට framework-විශේෂිත i18n දැනුම වෙත ව්යුහගත ප්රවේශය ලබා දීමෙනි. අනුමාන කිරීම වෙනුවට, ඔබේ සහායක Next.js, React Router සහ TanStack Start සඳහා සත්යාපිත ක්රියාත්මක රටා අනුගමනය කරයි. - -**සහාය දක්වන IDE:** +### ප්රාදේශීයකරණ එන්ජින් -- Claude Code -- Cursor -- GitHub Copilot Agents -- Codex (OpenAI) +මෙම මෙවලම් [ප්රාදේශීයකරණ එන්ජින්](https://lingo.dev) වෙත සම්බන්ධ වේ – ඔබ Lingo.dev ප්රාදේශීයකරණ ඉංජිනේරු වේදිකාවේ නිර්මාණය කරන ස්ථාවර පරිවර්තන API. සෑම එන්ජිමක්ම සෑම ඉල්ලීමක්ම හරහා වාක්ය මාලා, සන්නාම හඬ සහ ප්රාදේශිකයට අනුව උපදෙස් රඳවා තබයි, [පාරිභාෂික දෝෂ 16.6–44.6% අඩු කරයි](https://lingo.dev/research/retrieval-augmented-localization). හෝ [ඔබේම LLM ගෙන එන්න](#lingodev-cli). -**සහාය දක්වන frameworks:** - -- Next.js (App Router සහ Pages Router v13-16) -- TanStack Start (v1) -- React Router (v7) - -**භාවිතය:** - -ඔබේ IDE හි MCP server වින්යාස කිරීමෙන් පසු ([quickstart මාර්ගෝපදේශ බලන්න](https://lingo.dev/en/mcp)), ඔබේ සහායකට prompt කරන්න: - -``` -Set up i18n with the following locales: en, es, and pt-BR. The default locale is 'en'. -``` - -සහායක: +--- -1. Locale-පාදක routing වින්යාස කරයි (උදා., `/en`, `/es`, `/pt-BR`) -2. භාෂා මාරු components පිහිටුවයි -3. ස්වයංක්රීය locale හඳුනාගැනීම ක්රියාත්මක කරයි -4. අවශ්ය වින්යාස ගොනු ජනනය කරයි +### Lingo.dev MCP -**සටහන:** AI-සහාය කේත ජනනය අ-නිර්ණායක වේ. commit කිරීමට පෙර ජනනය කළ කේතය සමාලෝචනය කරන්න. +React යෙදුම්වල i18n පිහිටුවීම දෝෂ සහිත ය – AI කේතීකරණ සහායකයින් පවා නොපවතින API මායාවන් දකිති සහ මාර්ගගත කිරීම කඩයි. Lingo.dev MCP මඟින් AI සහායකයන්ට Next.js, React Router, සහ TanStack Start සඳහා රාමු-විශේෂිත i18n දැනුමට ව්යුහගත ප්රවේශය ලබා දෙයි. Claude Code, Cursor, GitHub Copilot Agents, සහ Codex සමඟ ක්රියා කරයි. [ලේඛන කියවන්න →](https://lingo.dev/en/mcp) @@ -124,115 +97,20 @@ Set up i18n with the following locales: en, es, and pt-BR. The default locale is ### Lingo.dev CLI -පරිවර්තන සමමුහුර්තව තබා ගැනීම කම්මැලි කාර්යයකි. ඔබ නව string එකක් එකතු කරයි, එය පරිවර්තනය කිරීමට අමතක කරයි, ජාත්යන්තර පරිශීලකයින්ට බිඳුණු UI ship කරයි. නැතහොත් ඔබ පරිවර්තකයින්ට JSON ගොනු යවයි, දින ගණනක් බලා සිටියි, පසුව ඔවුන්ගේ වැඩ අතින් නැවත ඒකාබද්ධ කරයි. භාෂා 10+ දක්වා පරිමාණය කිරීම යනු නිරන්තරයෙන් සමමුහුර්තයෙන් ඉවත් වන ගොනු සිය ගණනක් කළමනාකරණය කිරීමයි. - -Lingo.dev CLI මෙය ස්වයංක්රීය කරයි. ඔබේ පරිවර්තන ගොනු වෙත එය යොමු කරන්න, එක් විධානයක් ධාවනය කරන්න, සහ සෑම locale එකක්ම යාවත්කාලීන වේ. Lockfile එකක් දැනටමත් පරිවර්තනය කර ඇති දේ ලුහුබඳී, එබැවින් ඔබ නව හෝ වෙනස් කළ අන්තර්ගතය සඳහා පමණක් ගෙවයි. JSON, YAML, CSV, PO ගොනු සහ markdown සඳහා සහාය දක්වයි. - -**ස්ථාපනය:** +එක් විධානයකින් JSON, YAML, markdown, CSV, සහ PO ගොනු ප්රාදේශීයකරණය කරන්න. අගුළු ගොනුවක් දැනටමත් ප්රාදේශීයකරණය කළ දේ නිරීක්ෂණය කරයි – නව හෝ වෙනස් කළ අන්තර්ගතය පමණක් සැකසෙයි. Lingo.dev හි ඔබේ ප්රාදේශීයකරණ එන්ජිමට පෙරනිමියෙන් පවතී, නැතහොත් ඔබේම LLM ගෙන එන්න (OpenAI, Anthropic, Google, Mistral, OpenRouter, Ollama). ```bash -# Initialize project npx lingo.dev@latest init - -# Run translations npx lingo.dev@latest run ``` -**එය ක්රියා කරන ආකාරය:** - -1. වින්යාසගත ගොනු වලින් පරිවර්තනය කළ හැකි අන්තර්ගතය උකහා ගනී -2. පරිවර්තනය සඳහා අන්තර්ගතය LLM සපයන්නා වෙත යවයි -3. පරිවර්තනය කළ අන්තර්ගතය ගොනු පද්ධතියට නැවත ලියයි -4. සම්පූර්ණ කළ පරිවර්තන නිරීක්ෂණය කිරීමට `i18n.lock` ගොනුව නිර්මාණය කරයි (අතිරික්ත සැකසීම වළක්වයි) - -**වින්යාසය:** - -`init` විධානය `i18n.json` ගොනුවක් ජනනය කරයි. locales සහ buckets වින්යාස කරන්න: - -```json -{ - "$schema": "https://lingo.dev/schema/i18n.json", - "version": "1.10", - "locale": { - "source": "en", - "targets": ["es", "fr", "de"] - }, - "buckets": { - "json": { - "include": ["locales/[locale].json"] - } - } -} -``` - -`provider` ක්ෂේත්රය විකල්ප වේ (පෙරනිමියෙන් Lingo.dev Engine වෙත). අභිරුචි LLM සපයන්නන් සඳහා: - -```json -{ - "provider": { - "id": "openai", - "model": "gpt-4o-mini", - "prompt": "Translate from {source} to {target}" - } -} -``` - -**සහාය දක්වන LLM සපයන්නන්:** - -- Lingo.dev Engine (නිර්දේශිතයි) -- OpenAI -- Anthropic -- Google -- Mistral -- OpenRouter -- Ollama - -[ලේඛන කියවන්න →](https://lingo.dev/en/cli) +[ලේඛන කියවන්න →](https://lingo.dev/en/docs/cli) --- ### Lingo.dev CI/CD -පරිවර්තන යනු සැමවිටම "පාහේ සම්පූර්ණ" වූ විශේෂාංගයයි. ඉංජිනේරුවන් locales යාවත්කාලීන නොකර කේතය ඒකාබද්ධ කරයි. QA විසින් staging හි අතුරුදහන් පරිවර්තන හඳුනාගනී - නැතහොත් වඩාත් නරකයි, පරිශීලකයින් production හි ඒවා හඳුනාගනී. මූල හේතුව: පරිවර්තනය යනු කාල සීමා පීඩනය යටතේ මඟ හැරීමට පහසු අතින් සිදු කරන පියවරකි. - -Lingo.dev CI/CD පරිවර්තන ස්වයංක්රීය කරයි. සෑම push එකකම පරිවර්තනය ක්රියාත්මක වේ. අතුරුදහන් strings කේතය production වෙත ළඟා වීමට පෙර පුරවනු ලැබේ. විනය අවශ්ය නැත - pipeline එය හසුරුවයි. - -**සහාය දක්වන වේදිකා:** - -- GitHub Actions -- GitLab CI/CD -- Bitbucket Pipelines - -**GitHub Actions ස්ථාපනය:** - -`.github/workflows/translate.yml` නිර්මාණය කරන්න: - -```yaml -name: Translate -on: - push: - branches: [main] -permissions: - contents: write -jobs: - translate: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Lingo.dev - uses: lingodotdev/lingo.dev@main - with: - api-key: ${{ secrets.LINGODOTDEV_API_KEY }} -``` - -**ස්ථාපන අවශ්යතා:** - -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" සබල කරන්න - -**Workflow විකල්ප:** - -පරිවර්තන සෘජුවම commit කරන්න: +ඔබේ pipeline එකේ අඛණ්ඩ ස්ථානීයකරණය. සෑම push එකකම ස්ථානීයකරණය ක්රියාත්මක වේ – අතුරුදහන් වූ strings කේතය නිෂ්පාදනයට ළඟා වීමට පෙර පුරවනු ලැබේ. GitHub Actions, GitLab CI/CD සහ Bitbucket Pipelines සඳහා සහාය දක්වයි. ```yaml uses: lingodotdev/lingo.dev@main @@ -240,242 +118,36 @@ with: api-key: ${{ secrets.LINGODOTDEV_API_KEY }} ``` -පරිවර්තන සමඟ pull requests සාදන්න: - -```yaml -uses: lingodotdev/lingo.dev@main -with: - api-key: ${{ secrets.LINGODOTDEV_API_KEY }} - pull-request: true -env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} -``` - -**ලබා ගත හැකි 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` | සමාන්තර සැකසීම සක්රීය කරන්න | - -[ලේඛන කියවන්න →](https://lingo.dev/en/ci/github) +[ලේඛන කියවන්න →](https://lingo.dev/en/docs/integrations) --- -### Lingo.dev SDK +### Lingo.dev API -UI labels සඳහා ස්ථිතික පරිවර්තන ගොනු ක්රියා කරයි, නමුත් පරිශීලක-ජනනය කළ අන්තර්ගතය ගැන කුමක් කිව හැකිද? චැට් පණිවිඩ, නිෂ්පාදන විස්තර, සහාය ටිකට් - build time එකේදී නොපවතින අන්තර්ගතය පෙර-පරිවර්තනය කළ නොහැක. ඔබට පරිවර්තනය නොකළ පෙළ පෙන්වීමට හෝ අභිරුචි පරිවර්තන pipeline එකක් ගොඩනැගීමට සිදුවේ. +backend කේතයෙන් සෘජුවම ඔබේ ස්ථානීයකරණ engine එක ඇමතුම් කරන්න. webhook බෙදාහැරීම සමඟ සමමුහූර්ත සහ අසමමුහූර්ත ස්ථානීයකරණය, locale එකකට වෙන්ව අසාර්ථකත්ව හුදකලා කිරීම සහ WebSocket හරහා තත්ය කාලීන ප්රගතිය. -Lingo.dev SDK runtime එකේදී අන්තර්ගතය පරිවර්තනය කරයි. ඕනෑම පෙළක්, වස්තුවක් හෝ HTML එකක් යවන්න සහ දේශීයකරණය කළ අනුවාදයක් ආපසු ලබා ගන්න. තත්ය-කාලීන චැට්, ගතික දැනුම්දීම් හෝ deployment එකෙන් පසු පැමිණෙන ඕනෑම අන්තර්ගතයක් සඳහා ක්රියා කරයි. JavaScript, PHP, Python සහ Ruby සඳහා ලබා ගත හැක. - -**ස්ථාපනය:** - -```bash -npm install lingo.dev -``` - -**භාවිතය:** - -```ts -import { LingoDotDevEngine } from "lingo.dev/sdk"; - -const lingoDotDev = new LingoDotDevEngine({ - apiKey: process.env.LINGODOTDEV_API_KEY, -}); - -// Translate objects (preserves structure) -const translated = await lingoDotDev.localizeObject( - { greeting: "Hello", farewell: "Goodbye" }, - { sourceLocale: "en", targetLocale: "es" }, -); -// { greeting: "Hola", farewell: "Adiós" } - -// Translate text -const text = await lingoDotDev.localizeText("Hello!", { - sourceLocale: "en", - targetLocale: "fr", -}); - -// Translate to multiple languages at once -const results = await lingoDotDev.batchLocalizeText("Hello!", { - sourceLocale: "en", - targetLocales: ["es", "fr", "de"], -}); - -// Translate chat (preserves speaker names) -const chat = await lingoDotDev.localizeChat( - [{ name: "Alice", text: "Hello!" }], - { sourceLocale: "en", targetLocale: "es" }, -); - -// Translate HTML (preserves markup) -const html = await lingoDotDev.localizeHtml("
- Lingo.dev - LLM-இயக்கப்படும் உள்ளூர்மயமாக்கலுக்கான திறந்த மூல i18n - கருவித்தொகுப்பு + திறந்த மூல உள்ளூர்மயமாக்கல் பொறியியல் கருவிகள். நிலையான, தரமான + மொழிபெயர்ப்புகளுக்காக Lingo.dev உள்ளூர்மயமாக்கல் பொறியியல் தளத்துடன் + இணைக்கவும்.
- MCP •CLI • - CI/CD •SDK • - Compiler + Lingo API • + Lingo React MCP • + Lingo CLI • + Lingo GitHub Action • + React-க்கான Lingo Compiler (ஆரம்ப ஆல்ஃபா)
@@ -72,51 +75,22 @@ ## விரைவு தொடக்கம் -| கருவி | பயன்பாட்டு நிகழ்வு | விரைவு கட்டளை | -| ---------------------------------- | -------------------------------------------------------- | ---------------------------------- | -| [**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 | +| கருவி | இது என்ன செய்கிறது | விரைவு கட்டளை | +| -------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------- | +| [**Lingo React MCP**](#lingodev-mcp) | React பயன்பாடுகளுக்கான AI உதவியுடன் கூடிய i18n அமைவு | Prompt: `Set up i18n` | +| [**Lingo CLI**](#lingodev-cli) | JSON, YAML, markdown, CSV, PO கோப்புகளை உள்ளூர்மயமாக்கவும் | `npx lingo.dev@latest run` | +| [**Lingo GitHub Action**](#lingodev-cicd) | GitHub Actions இல் தொடர்ச்சியான உள்ளூர்மயமாக்கல் | `uses: lingodotdev/lingo.dev@main` | +| [**Lingo Compiler for React**](#lingodev-compiler) | i18n wrappers இல்லாமல் build-time React உள்ளூர்மயமாக்கல் | `withLingo()` plugin | ---- - -### Lingo.dev MCP - -React பயன்பாடுகளில் i18n-ஐ அமைப்பது பிழைகள் ஏற்படக்கூடியது என்பது நன்கு அறியப்பட்டது - அனுபவம் வாய்ந்த developers-க்கு கூட. AI coding உதவியாளர்கள் இதை மோசமாக்குகின்றன: அவை இல்லாத API-களை கற்பனை செய்கின்றன, middleware கட்டமைப்புகளை மறக்கின்றன, routing-ஐ உடைக்கின்றன, அல்லது தொலைந்து போவதற்கு முன் பாதி தீர்வை செயல்படுத்துகின்றன. பிரச்சனை என்னவென்றால், i18n அமைப்புக்கு பல கோப்புகளில் (routing, middleware, components, configuration) துல்லியமான வரிசைப்படுத்தப்பட்ட மாற்றங்கள் தேவைப்படுகின்றன, மேலும் LLM-கள் அந்த சூழலை பராமரிக்க சிரமப்படுகின்றன. - -Lingo.dev MCP இதை தீர்க்கிறது, AI உதவியாளர்களுக்கு framework-சார்ந்த i18n அறிவுக்கான கட்டமைக்கப்பட்ட அணுகலை வழங்குவதன் மூலம். யூகிப்பதற்கு பதிலாக, உங்கள் உதவியாளர் Next.js, React Router மற்றும் TanStack Start-க்கான சரிபார்க்கப்பட்ட செயல்படுத்தல் முறைகளை பின்பற்றுகிறது. - -**ஆதரிக்கப்படும் IDE-கள்:** +### உள்ளூர்மயமாக்கல் இயந்திரங்கள் -- Claude Code -- Cursor -- GitHub Copilot Agents -- Codex (OpenAI) +இந்தக் கருவிகள் [உள்ளூர்மயமாக்கல் இயந்திரங்களுடன்](https://lingo.dev) இணைகின்றன – Lingo.dev உள்ளூர்மயமாக்கல் பொறியியல் தளத்தில் நீங்கள் உருவாக்கும் நிலையான மொழிபெயர்ப்பு APIகள். ஒவ்வொரு இயந்திரமும் சொற்களஞ்சியங்கள், பிராண்ட் குரல், மற்றும் ஒவ்வொரு கோரிக்கையிலும் மொழி வாரியான வழிமுறைகளைத் தக்கவைத்துக்கொள்கிறது, [சொற்பிழைகளை 16.6–44.6% குறைக்கிறது](https://lingo.dev/research/retrieval-augmented-localization). அல்லது [உங்கள் சொந்த LLM ஐக் கொண்டுவாருங்கள்](#lingodev-cli). -**ஆதரிக்கப்படும் frameworks:** - -- Next.js (App Router & Pages Router v13-16) -- TanStack Start (v1) -- React Router (v7) - -**பயன்பாடு:** - -உங்கள் IDE-யில் MCP server-ஐ கட்டமைத்த பிறகு ([quickstart வழிகாட்டிகளைப் பார்க்கவும்](https://lingo.dev/en/mcp)), உங்கள் உதவியாளரிடம் கேளுங்கள்: - -``` -Set up i18n with the following locales: en, es, and pt-BR. The default locale is 'en'. -``` - -உதவியாளர் செய்யும்: +--- -1. Locale-அடிப்படையிலான routing-ஐ கட்டமைக்கும் (எ.கா., `/en`, `/es`, `/pt-BR`) -2. மொழி மாற்றும் components-ஐ அமைக்கும் -3. தானியங்கு locale கண்டறிதலை செயல்படுத்தும் -4. தேவையான கட்டமைப்பு கோப்புகளை உருவாக்கும் +### Lingo.dev MCP -**குறிப்பு:** AI-உதவி code உருவாக்கம் non-deterministic ஆகும். commit செய்வதற்கு முன் உருவாக்கப்பட்ட code-ஐ மதிப்பாய்வு செய்யவும். +React பயன்பாடுகளில் i18n ஐ அமைப்பது பிழைகளுக்கு இடமளிக்கும் – AI coding உதவியாளர்கள் கூட இல்லாத APIகளை கற்பனை செய்து routing ஐ உடைக்கின்றன. Lingo.dev MCP, Next.js, React Router, மற்றும் TanStack Start ஆகியவற்றிற்கான framework-சார்ந்த i18n அறிவுக்கான கட்டமைக்கப்பட்ட அணுகலை AI உதவியாளர்களுக்கு வழங்குகிறது. Claude Code, Cursor, GitHub Copilot Agents, மற்றும் Codex உடன் செயல்படுகிறது. [ஆவணங்களைப் படிக்கவும் →](https://lingo.dev/en/mcp) @@ -124,115 +98,20 @@ Set up i18n with the following locales: en, es, and pt-BR. The default locale is ### Lingo.dev CLI -மொழிபெயர்ப்புகளை ஒத்திசைவில் வைத்திருப்பது சலிப்பானது. நீங்கள் புதிய string-ஐ சேர்க்கிறீர்கள், அதை மொழிபெயர்க்க மறக்கிறீர்கள், சர்வதேச பயனர்களுக்கு உடைந்த UI-ஐ அனுப்புகிறீர்கள். அல்லது நீங்கள் மொழிபெயர்ப்பாளர்களுக்கு JSON கோப்புகளை அனுப்புகிறீர்கள், நாட்கள் காத்திருக்கிறீர்கள், பின்னர் அவர்களின் வேலையை கைமுறையாக மீண்டும் இணைக்கிறீர்கள். 10+ மொழிகளுக்கு அளவிடுவது என்பது தொடர்ந்து ஒத்திசைவிலிருந்து விலகும் நூற்றுக்கணக்கான கோப்புகளை நிர்வகிப்பதாகும். - -Lingo.dev CLI இதை தானியங்குபடுத்துகிறது. உங்கள் மொழிபெயர்ப்பு கோப்புகளை சுட்டிக்காட்டி, ஒரு கட்டளையை இயக்கவும், ஒவ்வொரு locale-ம் புதுப்பிக்கப்படும். ஏற்கனவே மொழிபெயர்க்கப்பட்டதை lockfile கண்காணிக்கிறது, எனவே நீங்கள் புதிய அல்லது மாற்றப்பட்ட content-க்கு மட்டுமே பணம் செலுத்துகிறீர்கள். JSON, YAML, CSV, PO கோப்புகள் மற்றும் markdown-ஐ ஆதரிக்கிறது. - -**அமைப்பு:** +JSON, YAML, markdown, CSV, மற்றும் PO கோப்புகளை ஒரே கட்டளையில் உள்ளூர்மயமாக்கவும். lockfile ஏற்கனவே உள்ளூர்மயமாக்கப்பட்டதைக் கண்காணிக்கிறது – புதிய அல்லது மாற்றப்பட்ட உள்ளடக்கம் மட்டுமே செயலாக்கப்படுகிறது. Lingo.dev இல் உங்கள் உள்ளூர்மயமாக்கல் இயந்திரம் இயல்பாக அமைக்கப்பட்டுள்ளது, அல்லது உங்கள் சொந்த LLM ஐக் கொண்டுவாருங்கள் (OpenAI, Anthropic, Google, Mistral, OpenRouter, Ollama). ```bash -# Initialize project npx lingo.dev@latest init - -# Run translations npx lingo.dev@latest run ``` -**இது எவ்வாறு செயல்படுகிறது:** - -1. கட்டமைக்கப்பட்ட கோப்புகளிலிருந்து மொழிபெயர்க்கக்கூடிய உள்ளடக்கத்தை பிரித்தெடுக்கிறது -2. மொழிபெயர்ப்புக்காக உள்ளடக்கத்தை LLM provider-க்கு அனுப்புகிறது -3. மொழிபெயர்க்கப்பட்ட உள்ளடக்கத்தை filesystem-க்கு மீண்டும் எழுதுகிறது -4. முடிக்கப்பட்ட மொழிபெயர்ப்புகளை கண்காணிக்க `i18n.lock` கோப்பை உருவாக்குகிறது (தேவையற்ற செயலாக்கத்தைத் தவிர்கிறது) - -**கட்டமைப்பு:** - -`init` கட்டளை ஒரு `i18n.json` கோப்பை உருவாக்குகிறது. locales மற்றும் buckets-ஐ கட்டமைக்கவும்: - -```json -{ - "$schema": "https://lingo.dev/schema/i18n.json", - "version": "1.10", - "locale": { - "source": "en", - "targets": ["es", "fr", "de"] - }, - "buckets": { - "json": { - "include": ["locales/[locale].json"] - } - } -} -``` - -`provider` புலம் விருப்பமானது (இயல்புநிலையாக Lingo.dev Engine). தனிப்பயன் LLM providers-க்கு: - -```json -{ - "provider": { - "id": "openai", - "model": "gpt-4o-mini", - "prompt": "Translate from {source} to {target}" - } -} -``` - -**ஆதரிக்கப்படும் LLM providers:** - -- Lingo.dev Engine (பரிந்துரைக்கப்படுகிறது) -- OpenAI -- Anthropic -- Google -- Mistral -- OpenRouter -- Ollama - -[ஆவணங்களைப் படிக்கவும் →](https://lingo.dev/en/cli) +[ஆவணங்களைப் படிக்கவும் →](https://lingo.dev/en/docs/cli) --- ### Lingo.dev CI/CD -மொழிபெயர்ப்புகள் எப்போதும் "கிட்டத்தட்ட முடிந்துவிட்ட" அம்சமாகும். பொறியாளர்கள் locales-ஐ புதுப்பிக்காமல் code-ஐ merge செய்கிறார்கள். QA staging-இல் காணாமல் போன மொழிபெயர்ப்புகளைக் கண்டறிகிறது - அல்லது மோசமாக, பயனர்கள் production-இல் அவற்றைக் கண்டறிகிறார்கள். மூல காரணம்: மொழிபெயர்ப்பு என்பது deadline அழுத்தத்தின் கீழ் தவிர்க்க எளிதான ஒரு கைமுறை படியாகும். - -Lingo.dev CI/CD மொழிபெயர்ப்புகளை தானியங்குபடுத்துகிறது. ஒவ்வொரு push-ம் மொழிபெயர்ப்பைத் தூண்டுகிறது. காணாமல் போன strings code production-ஐ அடையும் முன் நிரப்பப்படுகின்றன. ஒழுக்கம் தேவையில்லை - pipeline அதைக் கையாளுகிறது. - -**ஆதரிக்கப்படும் platforms:** - -- GitHub Actions -- GitLab CI/CD -- Bitbucket Pipelines - -**GitHub Actions அமைப்பு:** - -`.github/workflows/translate.yml` உருவாக்கவும்: - -```yaml -name: Translate -on: - push: - branches: [main] -permissions: - contents: write -jobs: - translate: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Lingo.dev - uses: lingodotdev/lingo.dev@main - with: - api-key: ${{ secrets.LINGODOTDEV_API_KEY }} -``` - -**அமைப்பு தேவைகள்:** - -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" இயக்கவும் - -**Workflow விருப்பங்கள்:** - -மொழிபெயர்ப்புகளை நேரடியாக commit செய்யவும்: +உங்கள் பைப்லைனில் தொடர்ச்சியான உள்ளூர்மயமாக்கல். ஒவ்வொரு புஷும் உள்ளூர்மயமாக்கலைத் தூண்டுகிறது – குறியீடு உற்பத்தியை அடையும் முன் காணாமல் போன சரங்கள் நிரப்பப்படுகின்றன. GitHub Actions, GitLab CI/CD மற்றும் Bitbucket Pipelines ஆகியவற்றை ஆதரிக்கிறது. ```yaml uses: lingodotdev/lingo.dev@main @@ -240,229 +119,23 @@ with: api-key: ${{ secrets.LINGODOTDEV_API_KEY }} ``` -மொழிபெயர்ப்புகளுடன் pull requests உருவாக்கவும்: - -```yaml -uses: lingodotdev/lingo.dev@main -with: - api-key: ${{ secrets.LINGODOTDEV_API_KEY }} - pull-request: true -env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} -``` - -**கிடைக்கும் 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` | இணையான செயலாக்கத்தை இயக்கவும் | - -[ஆவணங்களைப் படிக்கவும் →](https://lingo.dev/en/ci/github) +[ஆவணங்களைப் படிக்கவும் →](https://lingo.dev/en/docs/integrations) --- -### Lingo.dev SDK +### Lingo.dev API -UI labels-க்கு static மொழிபெயர்ப்பு கோப்புகள் வேலை செய்கின்றன, ஆனால் பயனர் உருவாக்கிய content-ஐப் பற்றி என்ன? Chat செய்திகள், தயாரிப்பு விளக்கங்கள், support tickets - build time-இல் இல்லாத content-ஐ முன்கூட்டியே மொழிபெயர்க்க முடியாது. மொழிபெயர்க்கப்படாத உரையைக் காட்டுவதில் அல்லது தனிப்பயன் மொழிபெயர்ப்பு pipeline உருவாக்குவதில் நீங்கள் சிக்கிக்கொள்கிறீர்கள். +பேக்எண்ட் குறியீட்டிலிருந்து நேரடியாக உங்கள் உள்ளூர்மயமாக்கல் இயந்திரத்தை அழைக்கவும். webhook விநியோகம், மொழிவாரி தோல்வி தனிமைப்படுத்தல் மற்றும் WebSocket வழியாக நேரடி முன்னேற்றம் ஆகியவற்றுடன் ஒத்திசைவான மற்றும் async உள்ளூர்மயமாக்கல். -Lingo.dev SDK runtime-இல் content-ஐ மொழிபெயர்க்கிறது. எந்த உரை, object அல்லது HTML-ஐயும் அனுப்பி, localized version-ஐப் பெறுங்கள். real-time chat, dynamic அறிவிப்புகள் அல்லது deployment-க்குப் பிறகு வரும் எந்த content-க்கும் வேலை செய்கிறது. JavaScript, PHP, Python மற்றும் Ruby-க்குக் கிடைக்கிறது. - -**நிறுவல்:** - -```bash -npm install lingo.dev -``` - -**பயன்பாடு:** - -```ts -import { LingoDotDevEngine } from "lingo.dev/sdk"; - -const lingoDotDev = new LingoDotDevEngine({ - apiKey: process.env.LINGODOTDEV_API_KEY, -}); - -// Translate objects (preserves structure) -const translated = await lingoDotDev.localizeObject( - { greeting: "Hello", farewell: "Goodbye" }, - { sourceLocale: "en", targetLocale: "es" }, -); -// { greeting: "Hola", farewell: "Adiós" } - -// Translate text -const text = await lingoDotDev.localizeText("Hello!", { - sourceLocale: "en", - targetLocale: "fr", -}); - -// Translate to multiple languages at once -const results = await lingoDotDev.batchLocalizeText("Hello!", { - sourceLocale: "en", - targetLocales: ["es", "fr", "de"], -}); - -// Translate chat (preserves speaker names) -const chat = await lingoDotDev.localizeChat( - [{ name: "Alice", text: "Hello!" }], - { sourceLocale: "en", targetLocale: "es" }, -); - -// Translate HTML (preserves markup) -const html = await lingoDotDev.localizeHtml("
- Lingo.dev - LLM-ఆధారిత స్థానికీకరణ కోసం ఓపెన్-సోర్స్ i18n టూల్కిట్ + ఓపెన్-సోర్స్ స్థానికీకరణ ఇంజనీరింగ్ టూల్స్. నాణ్యమైన, స్థిరమైన అనువాదాల కోసం + Lingo.dev స్థానికీకరణ ఇంజనీరింగ్ ప్లాట్ఫారమ్కు కనెక్ట్ అవ్వండి.
- MCP •CLI • - CI/CD •SDK • - Compiler + Lingo API • + Lingo React MCP • + Lingo CLI • + Lingo GitHub Action • + Lingo Compiler for React (ప్రారంభ ఆల్ఫా)
@@ -71,51 +74,22 @@ ## త్వరిత ప్రారంభం -| టూల్ | వినియోగ సందర్భం | త్వరిత కమాండ్ | -| ---------------------------------- | -------------------------------------------------- | ---------------------------------- | -| [**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()` ప్లగిన్ | +| టూల్ | ఇది ఏం చేస్తుంది | శీఘ్ర కమాండ్ | +| -------------------------------------------------- | ------------------------------------------------------ | ---------------------------------- | +| [**Lingo React MCP**](#lingodev-mcp) | React యాప్ల కోసం AI-సహాయిత i18n సెటప్ | ప్రాంప్ట్: `Set up i18n` | +| [**Lingo CLI**](#lingodev-cli) | JSON, YAML, markdown, CSV, PO ఫైళ్లను స్థానికీకరించండి | `npx lingo.dev@latest run` | +| [**Lingo GitHub Action**](#lingodev-cicd) | GitHub Actions లో నిరంతర స్థానికీకరణ | `uses: lingodotdev/lingo.dev@main` | +| [**Lingo Compiler for React**](#lingodev-compiler) | i18n రాపర్లు లేకుండా బిల్డ్-టైమ్ React స్థానికీకరణ | `withLingo()` ప్లగిన్ | ---- - -### Lingo.dev MCP - -React యాప్లలో i18n సెటప్ చేయడం అనుభవజ్ఞులైన డెవలపర్లకు కూడా లోపాలకు గురయ్యే పనిగా ఉంటుంది. AI కోడింగ్ అసిస్టెంట్లు దీన్ని మరింత దిగజార్చుతాయి: అవి ఉనికిలో లేని APIలను హాలూసినేట్ చేస్తాయి, మిడిల్వేర్ కాన్ఫిగరేషన్లను మర్చిపోతాయి, రూటింగ్ను విచ్ఛిన్నం చేస్తాయి, లేదా కాంటెక్స్ట్ కోల్పోయే ముందు సగం సొల్యూషన్ను ఇంప్లిమెంట్ చేస్తాయి. సమస్య ఏమిటంటే, i18n సెటప్కు బహుళ ఫైల్స్ (రూటింగ్, మిడిల్వేర్, కాంపోనెంట్లు, కాన్ఫిగరేషన్) అంతటా సమన్వయ మార్పుల యొక్క ఖచ్చితమైన క్రమం అవసరం, మరియు LLMలు ఆ కాంటెక్స్ట్ను నిర్వహించడంలో ఇబ్బంది పడతాయి. - -Lingo.dev MCP AI అసిస్టెంట్లకు ఫ్రేమ్వర్క్-స్పెసిఫిక్ i18n నాలెడ్జ్కు స్ట్రక్చర్డ్ యాక్సెస్ ఇవ్వడం ద్వారా దీన్ని పరిష్కరిస్తుంది. అంచనా వేయడానికి బదులుగా, మీ అసిస్టెంట్ Next.js, React Router మరియు TanStack Start కోసం వెరిఫైడ్ ఇంప్లిమెంటేషన్ ప్యాటర్న్లను అనుసరిస్తుంది. - -**సపోర్ట్ చేయబడిన IDEలు:** +### స్థానికీకరణ ఇంజన్లు -- Claude Code -- Cursor -- GitHub Copilot Agents -- Codex (OpenAI) +ఈ టూల్స్ [స్థానికీకరణ ఇంజన్లు](https://lingo.dev)కు కనెక్ట్ అవుతాయి – మీరు Lingo.dev స్థానికీకరణ ఇంజనీరింగ్ ప్లాట్ఫారమ్లో సృష్టించే స్టేట్ఫుల్ అనువాద APIలు. ప్రతి ఇంజన్ గ్లాసరీలు, బ్రాండ్ వాయిస్, మరియు లొకేల్-స్పెసిఫిక్ సూచనలను ప్రతి రిక్వెస్ట్లో నిలుపుకుంటుంది, [పారిభాషిక దోషాలను 16.6–44.6% తగ్గిస్తుంది](https://lingo.dev/research/retrieval-augmented-localization). లేదా [మీ స్వంత LLMని తీసుకురండి](#lingodev-cli). -**సపోర్ట్ చేయబడిన ఫ్రేమ్వర్క్లు:** - -- Next.js (App Router & Pages Router v13-16) -- TanStack Start (v1) -- React Router (v7) - -**వినియోగం:** - -మీ IDEలో MCP సర్వర్ను కాన్ఫిగర్ చేసిన తర్వాత ([క్విక్స్టార్ట్ గైడ్లు చూడండి](https://lingo.dev/en/mcp)), మీ అసిస్టెంట్ను ప్రాంప్ట్ చేయండి: - -``` -Set up i18n with the following locales: en, es, and pt-BR. The default locale is 'en'. -``` - -అసిస్టెంట్ ఇలా చేస్తుంది: +--- -1. లొకేల్-బేస్డ్ రూటింగ్ను కాన్ఫిగర్ చేస్తుంది (ఉదా., `/en`, `/es`, `/pt-BR`) -2. లాంగ్వేజ్ స్విచింగ్ కాంపోనెంట్లను సెటప్ చేస్తుంది -3. ఆటోమేటిక్ లొకేల్ డిటెక్షన్ను ఇంప్లిమెంట్ చేస్తుంది -4. అవసరమైన కాన్ఫిగరేషన్ ఫైల్స్ను జనరేట్ చేస్తుంది +### Lingo.dev MCP -**గమనిక:** AI-అసిస్టెడ్ కోడ్ జనరేషన్ నాన్-డిటర్మినిస్టిక్. కమిట్ చేయడానికి ముందు జనరేట్ చేసిన కోడ్ను రివ్యూ చేయండి. +React యాప్లలో i18n సెటప్ చేయడం దోష-ప్రవణమైనది – AI కోడింగ్ అసిస్టెంట్లు కూడా ఉనికిలో లేని APIలను ఊహించి, రౌటింగ్ను భగ్నం చేస్తాయి. Lingo.dev MCP, Next.js, React Router, మరియు TanStack Start కోసం ఫ్రేమ్వర్క్-స్పెసిఫిక్ i18n జ్ఞానానికి AI అసిస్టెంట్లకు నిర్మాణాత్మక యాక్సెస్ అందిస్తుంది. Claude Code, Cursor, GitHub Copilot Agents, మరియు Codex తో పనిచేస్తుంది. [డాక్స్ చదవండి →](https://lingo.dev/en/mcp) @@ -123,115 +97,20 @@ Set up i18n with the following locales: en, es, and pt-BR. The default locale is ### Lingo.dev CLI -అనువాదాలను సింక్లో ఉంచడం శ్రమతో కూడుకున్నది. మీరు కొత్త స్ట్రింగ్ జోడిస్తారు, దాన్ని అనువదించడం మర్చిపోతారు, అంతర్జాతీయ వినియోగదారులకు విచ్ఛిన్నమైన UIని షిప్ చేస్తారు. లేదా మీరు అనువాదకులకు JSON ఫైల్స్ పంపుతారు, రోజుల పాటు వేచి ఉంటారు, తర్వాత వారి పనిని మాన్యువల్గా తిరిగి మెర్జ్ చేస్తారు. 10+ భాషలకు స్కేల్ చేయడం అంటే నిరంతరం సింక్ నుండి డ్రిఫ్ట్ అయ్యే వందలాది ఫైల్స్ను నిర్వహించడం. - -Lingo.dev CLI దీన్ని ఆటోమేట్ చేస్తుంది. మీ అనువాద ఫైల్స్ వైపు పాయింట్ చేయండి, ఒక కమాండ్ రన్ చేయండి, మరియు ప్రతి లొకేల్ అప్డేట్ అవుతుంది. లాక్ఫైల్ ఇప్పటికే అనువదించబడిన వాటిని ట్రాక్ చేస్తుంది, కాబట్టి మీరు కొత్త లేదా మార్చబడిన కంటెంట్ కోసం మాత్రమే చెల్లిస్తారు. JSON, YAML, CSV, PO ఫైల్స్ మరియు markdown సపోర్ట్ చేస్తుంది. - -**సెటప్:** +JSON, YAML, markdown, CSV, మరియు PO ఫైళ్లను ఒకే కమాండ్లో స్థానికీకరించండి. ఇప్పటికే స్థానికీకరించబడినవి ట్రాక్ చేసే లాక్ఫైల్ – కొత్త లేదా మార్చబడిన కంటెంట్ మాత్రమే ప్రాసెస్ అవుతుంది. Lingo.dev లోని మీ స్థానికీకరణ ఇంజన్కు డిఫాల్ట్గా ఉంటుంది, లేదా మీ స్వంత LLMని తీసుకురండి (OpenAI, Anthropic, Google, Mistral, OpenRouter, Ollama). ```bash -# Initialize project npx lingo.dev@latest init - -# Run translations npx lingo.dev@latest run ``` -**ఇది ఎలా పనిచేస్తుంది:** - -1. కాన్ఫిగర్ చేసిన ఫైల్స్ నుండి అనువదించదగిన కంటెంట్ను సేకరిస్తుంది -2. అనువాదం కోసం కంటెంట్ను LLM ప్రొవైడర్కు పంపుతుంది -3. అనువదించిన కంటెంట్ను తిరిగి ఫైల్ సిస్టమ్కి వ్రాస్తుంది -4. పూర్తయిన అనువాదాలను ట్రాక్ చేయడానికి `i18n.lock` ఫైల్ను సృష్టిస్తుంది (అనవసర ప్రాసెసింగ్ నివారిస్తుంది) - -**కాన్ఫిగరేషన్:** - -`init` కమాండ్ `i18n.json` ఫైల్ను జనరేట్ చేస్తుంది. లొకేల్లు మరియు బకెట్లను కాన్ఫిగర్ చేయండి: - -```json -{ - "$schema": "https://lingo.dev/schema/i18n.json", - "version": "1.10", - "locale": { - "source": "en", - "targets": ["es", "fr", "de"] - }, - "buckets": { - "json": { - "include": ["locales/[locale].json"] - } - } -} -``` - -`provider` ఫీల్డ్ ఐచ్ఛికం (డిఫాల్ట్గా Lingo.dev Engine). కస్టమ్ LLM ప్రొవైడర్ల కోసం: - -```json -{ - "provider": { - "id": "openai", - "model": "gpt-4o-mini", - "prompt": "Translate from {source} to {target}" - } -} -``` - -**సపోర్ట్ చేయబడిన LLM ప్రొవైడర్లు:** - -- Lingo.dev Engine (సిఫార్సు చేయబడింది) -- OpenAI -- Anthropic -- Google -- Mistral -- OpenRouter -- Ollama - -[డాక్స్ చదవండి →](https://lingo.dev/en/cli) +[డాక్స్ చదవండి →](https://lingo.dev/en/docs/cli) --- ### Lingo.dev CI/CD -అనువాదాలు ఎల్లప్పుడూ "దాదాపు పూర్తయింది" అనే ఫీచర్. ఇంజనీర్లు లొకేల్స్ను అప్డేట్ చేయకుండా కోడ్ను మెర్జ్ చేస్తారు. QA స్టేజింగ్లో తప్పిపోయిన అనువాదాలను గుర్తిస్తుంది - లేదా అధ్వాన్నంగా, యూజర్లు వాటిని ప్రొడక్షన్లో గుర్తిస్తారు. మూల కారణం: అనువాదం అనేది డెడ్లైన్ ప్రెజర్లో స్కిప్ చేయడం సులభమైన మాన్యువల్ స్టెప్. - -Lingo.dev CI/CD అనువాదాలను ఆటోమేటిక్గా చేస్తుంది. ప్రతి పుష్ అనువాదాన్ని ట్రిగ్గర్ చేస్తుంది. తప్పిపోయిన స్ట్రింగ్స్ కోడ్ ప్రొడక్షన్కు చేరుకునే ముందే పూరించబడతాయి. క్రమశిక్షణ అవసరం లేదు - పైప్లైన్ దానిని నిర్వహిస్తుంది. - -**సపోర్ట్ చేయబడిన ప్లాట్ఫారమ్లు:** - -- GitHub Actions -- GitLab CI/CD -- Bitbucket Pipelines - -**GitHub Actions సెటప్:** - -`.github/workflows/translate.yml` ని సృష్టించండి: - -```yaml -name: Translate -on: - push: - branches: [main] -permissions: - contents: write -jobs: - translate: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Lingo.dev - uses: lingodotdev/lingo.dev@main - with: - api-key: ${{ secrets.LINGODOTDEV_API_KEY }} -``` - -**సెటప్ అవసరాలు:** - -1. రిపోజిటరీ సీక్రెట్స్ (Settings > Secrets and variables > Actions) లో `LINGODOTDEV_API_KEY` ని జోడించండి -2. PR వర్క్ఫ్లో కోసం: Settings > Actions > General లో “Allow GitHub Actions to create and approve pull requests” ని ఎనేబుల్ చేయండి - -**వర్క్ఫ్లో ఆప్షన్స్:** - -అనువాదాలను నేరుగా కమిట్ చేయండి: +మీ పైప్లైన్లో నిరంతర స్థానికీకరణ. ప్రతి పుష్ స్థానికీకరణను ప్రేరేపిస్తుంది – కోడ్ ప్రొడక్షన్కు చేరే ముందు తప్పిపోయిన స్ట్రింగ్లు పూరించబడతాయి. GitHub Actions, GitLab CI/CD మరియు Bitbucket Pipelines కి మద్దతు ఇస్తుంది. ```yaml uses: lingodotdev/lingo.dev@main @@ -239,254 +118,48 @@ with: api-key: ${{ secrets.LINGODOTDEV_API_KEY }} ``` -అనువాదాలతో పుల్ రిక్వెస్ట్లను క్రియేట్ చేయండి: - -```yaml -uses: lingodotdev/lingo.dev@main -with: - api-key: ${{ secrets.LINGODOTDEV_API_KEY }} - pull-request: true -env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} -``` - -**అందుబాటులో ఉన్న ఇన్పుట్లు:** - -| ఇన్పుట్ | డిఫాల్ట్ | వివరణ | -| -------------------- | ---------------------------------------------- | ---------------------------------------- | -| `api-key` | (అవసరం) | Lingo.dev API కీ | -| `pull-request` | `false` | నేరుగా కమిట్కు బదులు 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) +[డాక్స్ చదవండి →](https://lingo.dev/en/docs/integrations) --- -### Lingo.dev SDK +### Lingo.dev API -UI లేబుల్స్ కోసం స్టాటిక్ అనువాద ఫైల్స్ పని చేస్తాయి, కానీ యూజర్-జనరేటెడ్ కంటెంట్ గురించి ఏమిటి? చాట్ మెసేజ్లు, ప్రొడక్ట్ వివరణలు, సపోర్ట్ టికెట్లు - బిల్డ్ టైమ్లో ఉనికిలో లేని కంటెంట్ను ప్రీ-ట్రాన్స్లేట్ చేయలేము. మీరు అనువదించని టెక్స్ట్ను చూపించడం లేదా కస్టమ్ అనువాద పైప్లైన్ను నిర్మించడంలో చిక్కుకుపోతారు. +బ్యాకెండ్ కోడ్ నుండి నేరుగా మీ స్థానికీకరణ ఇంజిన్ను కాల్ చేయండి. వెబ్హుక్ డెలివరీ, లొకేల్కు వైఫల్యం ఐసొలేషన్ మరియు WebSocket ద్వారా రియల్-టైం ప్రోగ్రెస్తో సింక్రోనస్ మరియు అసింక్ స్థానికీకరణ. -Lingo.dev SDK రన్టైమ్లో కంటెంట్ను అనువదిస్తుంది. ఏదైనా టెక్స్ట్, ఆబ్జెక్ట్ లేదా HTMLను పాస్ చేయండి మరియు లోకలైజ్డ్ వెర్షన్ను తిరిగి పొందండి. రియల్-టైమ్ చాట్, డైనమిక్ నోటిఫికేషన్లు లేదా డిప్లాయ్మెంట్ తర్వాత వచ్చే ఏదైనా కంటెంట్ కోసం పని చేస్తుంది. JavaScript, PHP, Python మరియు Ruby కోసం అందుబాటులో ఉంది. - -**ఇన్స్టాలేషన్:** - -```bash -npm install lingo.dev -``` - -**ఉపయోగం:** - -```ts -import { LingoDotDevEngine } from "lingo.dev/sdk"; - -const lingoDotDev = new LingoDotDevEngine({ - apiKey: process.env.LINGODOTDEV_API_KEY, -}); - -// Translate objects (preserves structure) -const translated = await lingoDotDev.localizeObject( - { greeting: "Hello", farewell: "Goodbye" }, - { sourceLocale: "en", targetLocale: "es" }, -); -// { greeting: "Hola", farewell: "Adiós" } - -// Translate text -const text = await lingoDotDev.localizeText("Hello!", { - sourceLocale: "en", - targetLocale: "fr", -}); - -// Translate to multiple languages at once -const results = await lingoDotDev.batchLocalizeText("Hello!", { - sourceLocale: "en", - targetLocales: ["es", "fr", "de"], -}); - -// Translate chat (preserves speaker names) -const chat = await lingoDotDev.localizeChat( - [{ name: "Alice", text: "Hello!" }], - { sourceLocale: "en", targetLocale: "es" }, -); - -// Translate HTML (preserves markup) -const html = await lingoDotDev.localizeHtml("
- Lingo.dev - LLM destekli yerelleştirme için açık kaynaklı i18n araç seti + Açık kaynaklı yerelleştirme mühendisliği araçları. Tutarlı, kaliteli + çeviriler için Lingo.dev yerelleştirme mühendisliği platformuna bağlanın.
- MCP •CLI • - CI/CD •SDK • - Compiler + Lingo API • + Lingo React MCP • + Lingo CLI • + Lingo GitHub Action • + React için Lingo Compiler (Erken alfa)
@@ -71,167 +74,43 @@ ## Hızlı başlangıç -| 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` | -| [**CI/CD**](#lingodev-cicd) | GitHub Actions'ta otomatik çeviri hattı | `uses: lingodotdev/lingo.dev@main` | -| [**SDK**](#lingodev-sdk) | Dinamik içerik için çalışma zamanı çevirisi | `npm install lingo.dev` | -| [**Compiler**](#lingodev-compiler) | i18n wrapper'ları olmadan derleme zamanı React yerelleştirmesi | `withLingo()` eklentisi | +| Araç | Ne yapar | Hızlı Komut | +| -------------------------------------------------- | ----------------------------------------------------------------- | ---------------------------------- | +| [**Lingo React MCP**](#lingodev-mcp) | React uygulamaları için AI destekli i18n kurulumu | Komut: `Set up i18n` | +| [**Lingo CLI**](#lingodev-cli) | JSON, YAML, markdown, CSV, PO dosyalarını yerelleştir | `npx lingo.dev@latest run` | +| [**Lingo GitHub Action**](#lingodev-cicd) | GitHub Actions'ta sürekli yerelleştirme | `uses: lingodotdev/lingo.dev@main` | +| [**Lingo Compiler for React**](#lingodev-compiler) | i18n sarmalayıcıları olmadan derleme zamanı React yerelleştirmesi | `withLingo()` eklentisi | ---- - -### Lingo.dev MCP - -React uygulamalarında i18n kurulumu, deneyimli geliştiriciler için bile hata yapmaya oldukça müsaittir. AI kodlama asistanları durumu daha da kötüleştirir: var olmayan API'ler hayal ederler, middleware yapılandırmalarını unuturlar, yönlendirmeyi bozarlar veya kaybolmadan önce yarım bir çözüm uygularlar. Sorun şu ki, i18n kurulumu birden fazla dosyada (yönlendirme, middleware, bileşenler, yapılandırma) koordineli değişikliklerin kesin bir sırasını gerektirir ve LLM'ler bu bağlamı korumakta zorlanır. - -Lingo.dev MCP, AI asistanlarına framework'e özgü i18n bilgisine yapılandırılmış erişim sağlayarak bu sorunu çözer. Asistanınız tahmin yürütmek yerine Next.js, React Router ve TanStack Start için doğrulanmış uygulama kalıplarını takip eder. - -**Desteklenen IDE'ler:** +### Yerelleştirme motorları -- Claude Code -- Cursor -- GitHub Copilot Agents -- Codex (OpenAI) +Bu araçlar [yerelleştirme motorlarına](https://lingo.dev) bağlanır – Lingo.dev yerelleştirme mühendisliği platformunda oluşturduğunuz durum bilgili çeviri API'leri. Her motor, sözlükleri, marka sesini ve yerel ayar başına talimatları her istekte kalıcı hale getirerek [terminoloji hatalarını %16,6–44,6 oranında azaltır](https://lingo.dev/research/retrieval-augmented-localization). Ya da [kendi LLM'nizi getirin](#lingodev-cli). -**Desteklenen framework'ler:** - -- Next.js (App Router & Pages Router v13-16) -- TanStack Start (v1) -- React Router (v7) - -**Kullanım:** - -MCP sunucusunu IDE'nizde yapılandırdıktan sonra ([hızlı başlangıç kılavuzlarına bakın](https://lingo.dev/en/mcp)), asistanınıza şu şekilde komut verin: - -``` -Set up i18n with the following locales: en, es, and pt-BR. The default locale is 'en'. -``` - -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 tespiti uygular -4. Gerekli yapılandırma dosyalarını üretir +### Lingo.dev MCP -**Not:** AI destekli kod üretimi deterministik değildir. Commit etmeden önce oluşturulan kodu gözden geçirin. +React uygulamalarında i18n kurmak hataya açıktır – AI kodlama asistanları bile var olmayan API'leri hayal eder ve yönlendirmeyi bozar. Lingo.dev MCP, AI asistanlarına Next.js, React Router ve TanStack Start için çerçeveye özel i18n bilgisine yapılandırılmış erişim sağlar. Claude Code, Cursor, GitHub Copilot Agents ve Codex ile çalışır. -[Dokümantasyonu okuyun →](https://lingo.dev/en/mcp) +[Dokümantasyonu oku →](https://lingo.dev/en/mcp) --- ### Lingo.dev CLI -Çevirileri senkronize tutmak zahmetlidir. Yeni bir string eklersiniz, çevirmeyi unutursunuz, uluslararası kullanıcılara bozuk UI gönderirsiniz. Ya da JSON dosyalarını çevirmenlere gönderirsiniz, günlerce beklersiniz, sonra onların çalışmalarını manuel olarak geri birleştirirsiniz. 10+ dile ölçeklenmek, sürekli senkronizasyondan çıkan yüzlerce dosyayı yönetmek anlamına gelir. - -Lingo.dev CLI bunu otomatikleştirir. Çeviri dosyalarınıza yönlendirin, bir komut çalıştırın ve her yerel ayar güncellenir. Bir lockfile neyin zaten çevrildiğini takip eder, böylece yalnızca yeni veya değiştirilmiş içerik için ödeme yaparsınız. JSON, YAML, CSV, PO dosyalarını ve markdown'ı destekler. - -**Kurulum:** +JSON, YAML, markdown, CSV ve PO dosyalarını tek komutla yerelleştirin. Bir kilit dosyası neyin zaten yerelleştirildiğini takip eder – yalnızca yeni veya değiştirilmiş içerik işlenir. Varsayılan olarak Lingo.dev'deki yerelleştirme motorunuzu kullanır veya kendi LLM'nizi getirin (OpenAI, Anthropic, Google, Mistral, OpenRouter, Ollama). ```bash -# Initialize project npx lingo.dev@latest init - -# Run translations npx lingo.dev@latest run ``` -**Nasıl çalışır:** - -1. Yapılandırılmış dosyalardan çevrilebilir içerik çıkarır -2. İçeriği çeviri için LLM sağlayıcısına gönderir -3. Çevrilen içeriği dosya sistemine geri yazar -4. Tamamlanan çevirileri izlemek için `i18n.lock` dosyası oluşturur (gereksiz işlemleri önler) - -**Yapılandırma:** - -`init` komutu bir `i18n.json` dosyası oluşturur. Yerel ayarları ve bucket'ları yapılandırın: - -```json -{ - "$schema": "https://lingo.dev/schema/i18n.json", - "version": "1.10", - "locale": { - "source": "en", - "targets": ["es", "fr", "de"] - }, - "buckets": { - "json": { - "include": ["locales/[locale].json"] - } - } -} -``` - -`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: - -```json -{ - "provider": { - "id": "openai", - "model": "gpt-4o-mini", - "prompt": "Translate from {source} to {target}" - } -} -``` - -**Desteklenen LLM sağlayıcıları:** - -- Lingo.dev Engine (önerilir) -- OpenAI -- Anthropic -- Google -- Mistral -- OpenRouter -- Ollama - -[Dokümantasyonu okuyun →](https://lingo.dev/en/cli) +[Dokümantasyonu okuyun →](https://lingo.dev/en/docs/cli) --- ### Lingo.dev CI/CD -Çeviriler her zaman "neredeyse bitti" durumunda olan özelliktir. Mühendisler yerel ayarları güncellemeden kodu birleştirir. QA, eksik çevirileri staging ortamında yakalar - ya da daha kötüsü, kullanıcılar production ortamında yakalar. Temel neden: çeviri, son teslim tarihi baskısı altında atlanması kolay olan manuel bir adımdır. - -Lingo.dev CI/CD çevirileri otomatik hale getirir. Her push çeviriyi tetikler. Eksik string'ler kod production ortamına ulaşmadan doldurulur. Disiplin gerekmez - pipeline bunu halleder. - -**Desteklenen platformlar:** - -- GitHub Actions -- GitLab CI/CD -- Bitbucket Pipelines - -**GitHub Actions kurulumu:** - -`.github/workflows/translate.yml` dosyasını oluşturun: - -```yaml -name: Translate -on: - push: - branches: [main] -permissions: - contents: write -jobs: - translate: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Lingo.dev - uses: lingodotdev/lingo.dev@main - with: - api-key: ${{ secrets.LINGODOTDEV_API_KEY }} -``` - -**Kurulum gereksinimleri:** - -1. `LINGODOTDEV_API_KEY` değerini repository secret'larına ekleyin (Settings > Secrets and variables > Actions) -2. PR workflow'ları için: Settings > Actions > General kısmında "Allow GitHub Actions to create and approve pull requests"'i etkinleştirin - -**Workflow seçenekleri:** - -Çevirileri doğrudan commit edin: +Pipeline'ınızda sürekli yerelleştirme. Her push yerelleştirmeyi tetikler – eksik metinler kod üretime ulaşmadan doldurulur. GitHub Actions, GitLab CI/CD ve Bitbucket Pipelines desteklenir. ```yaml uses: lingodotdev/lingo.dev@main @@ -239,239 +118,33 @@ with: api-key: ${{ secrets.LINGODOTDEV_API_KEY }} ``` -Çevirilerle pull request oluşturun: - -```yaml -uses: lingodotdev/lingo.dev@main -with: - api-key: ${{ secrets.LINGODOTDEV_API_KEY }} - pull-request: true -env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} -``` - -**Kullanılabilir girdiler:** - -| Girdi | Varsayılan | Açıklama | -| -------------------- | ---------------------------------------------- | --------------------------------- | -| `api-key` | (gerekli) | Lingo.dev API anahtarı | -| `pull-request` | `false` | Doğrudan commit yerine PR oluştur | -| `commit-message` | `"feat: update translations via @LingoDotDev"` | Özel commit mesajı | -| `pull-request-title` | `"feat: update translations via @LingoDotDev"` | Özel PR başlığı | -| `working-directory` | `"."` | Çalışma dizini | -| `parallel` | `false` | Paralel işlemeyi etkinleştir | - -[Dokümantasyonu okuyun →](https://lingo.dev/en/ci/github) +[Dokümantasyonu okuyun →](https://lingo.dev/en/docs/integrations) --- -### Lingo.dev SDK +### Lingo.dev API -Statik çeviri dosyaları UI etiketleri için işe yarar, ancak kullanıcı tarafından oluşturulan içerik ne olacak? Sohbet mesajları, ürün açıklamaları, destek talepleri - derleme zamanında mevcut olmayan içerik önceden çevrilemez. Çevrilmemiş metin göstermek veya özel bir çeviri pipeline'ı oluşturmak zorunda kalırsınız. +Yerelleştirme motorunuzu doğrudan backend kodundan çağırın. Webhook teslimi ile senkron ve asenkron yerelleştirme, yerel ayar başına hata izolasyonu ve WebSocket üzerinden gerçek zamanlı ilerleme. -Lingo.dev SDK içeriği çalışma zamanında çevirir. Herhangi bir metin, nesne veya HTML gönderin ve yerelleştirilmiş bir sürüm alın. Gerçek zamanlı sohbet, dinamik bildirimler veya dağıtımdan sonra gelen herhangi bir içerik için çalışır. JavaScript, PHP, Python ve Ruby için kullanılabilir. - -**Kurulum:** - -```bash -npm install lingo.dev -``` - -**Kullanım:** - -```ts -import { LingoDotDevEngine } from "lingo.dev/sdk"; - -const lingoDotDev = new LingoDotDevEngine({ - apiKey: process.env.LINGODOTDEV_API_KEY, -}); - -// Translate objects (preserves structure) -const translated = await lingoDotDev.localizeObject( - { greeting: "Hello", farewell: "Goodbye" }, - { sourceLocale: "en", targetLocale: "es" }, -); -// { greeting: "Hola", farewell: "Adiós" } - -// Translate text -const text = await lingoDotDev.localizeText("Hello!", { - sourceLocale: "en", - targetLocale: "fr", -}); - -// Translate to multiple languages at once -const results = await lingoDotDev.batchLocalizeText("Hello!", { - sourceLocale: "en", - targetLocales: ["es", "fr", "de"], -}); - -// Translate chat (preserves speaker names) -const chat = await lingoDotDev.localizeChat( - [{ name: "Alice", text: "Hello!" }], - { sourceLocale: "en", targetLocale: "es" }, -); - -// Translate HTML (preserves markup) -const html = await lingoDotDev.localizeHtml("
- Lingo.dev - інструментарій i18n з відкритим кодом для локалізації на основі - LLM + Інструменти інженерії локалізації з відкритим кодом. Підключайтеся до + платформи Lingo.dev для послідовних і якісних перекладів.
- MCP •CLI • - CI/CD •SDK • - Compiler + Lingo API • + Lingo React MCP • + Lingo CLI • + Lingo GitHub Action • + Lingo Compiler для React (Рання альфа)
@@ -72,51 +74,22 @@ ## Швидкий старт -| Інструмент | Випадок використання | Швидка команда | -| ---------------------------------- | ---------------------------------------------------- | ---------------------------------- | -| [**MCP**](#lingodev-mcp) | Налаштування i18n з AI-підтримкою для 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) | Переклад у runtime для динамічного контенту | `npm install lingo.dev` | -| [**Compiler**](#lingodev-compiler) | Локалізація React під час збірки без i18n-обгорток | `withLingo()` plugin | +| Інструмент | Що він робить | Швидка команда | +| -------------------------------------------------- | -------------------------------------------------- | ---------------------------------- | +| [**Lingo React MCP**](#lingodev-mcp) | Налаштування i18n для React-застосунків з AI | Запит: `Set up i18n` | +| [**Lingo CLI**](#lingodev-cli) | Локалізація JSON, YAML, markdown, CSV, PO файлів | `npx lingo.dev@latest run` | +| [**Lingo GitHub Action**](#lingodev-cicd) | Безперервна локалізація в GitHub Actions | `uses: lingodotdev/lingo.dev@main` | +| [**Lingo Compiler для React**](#lingodev-compiler) | Локалізація React під час збірки без i18n-обгорток | Плагін `withLingo()` | ---- - -### Lingo.dev MCP - -Налаштування i18n у React-застосунках відомо своєю схильністю до помилок — навіть для досвідчених розробників. AI-асистенти для кодування роблять це ще гіршим: вони галюцинують неіснуючі API, забувають конфігурації middleware, ламають маршрутизацію або реалізують половину рішення, перш ніж загубитися. Проблема в тому, що налаштування i18n вимагає точної послідовності скоординованих змін у кількох файлах (маршрутизація, middleware, компоненти, конфігурація), і LLM важко підтримувати цей контекст. - -Lingo.dev MCP вирішує це, надаючи AI-асистентам структурований доступ до знань про i18n для конкретних фреймворків. Замість здогадок ваш асистент дотримується перевірених шаблонів реалізації для Next.js, React Router та TanStack Start. - -**Підтримувані IDE:** +### Рушії локалізації -- Claude Code -- Cursor -- GitHub Copilot Agents -- Codex (OpenAI) +Ці інструменти підключаються до [рушіїв локалізації](https://lingo.dev) – API перекладу зі збереженням стану, які ви створюєте на платформі Lingo.dev. Кожен рушій зберігає глосарії, тон бренду та інструкції для кожної локалі в усіх запитах, [зменшуючи термінологічні помилки на 16,6–44,6%](https://lingo.dev/research/retrieval-augmented-localization). Або [використовуйте власну LLM](#lingodev-cli). -**Підтримувані фреймворки:** - -- Next.js (App Router і Pages Router v13-16) -- TanStack Start (v1) -- React Router (v7) - -**Використання:** - -Після налаштування MCP-сервера у вашому IDE ([див. посібники швидкого старту](https://lingo.dev/en/mcp)), запитайте свого асистента: - -``` -Set up i18n with the following locales: en, es, and pt-BR. The default locale is 'en'. -``` - -Асистент: +--- -1. Налаштувати маршрутизацію на основі локалі (наприклад, `/en`, `/es`, `/pt-BR`) -2. Налаштувати компоненти перемикання мови -3. Реалізувати автоматичне визначення локалі -4. Згенерувати необхідні конфігураційні файли +### Lingo.dev MCP -**Примітка:** генерація коду за допомогою AI є недетермінованою. Перевіряйте згенерований код перед комітом. +Налаштування i18n у React-застосунках часто призводить до помилок – навіть AI-асистенти генерують неіснуючі API та ламають маршрутизацію. Lingo.dev MCP надає AI-асистентам структурований доступ до знань про i18n для Next.js, React Router і TanStack Start. Працює з Claude Code, Cursor, GitHub Copilot Agents і Codex. [Читати документацію →](https://lingo.dev/en/mcp) @@ -124,115 +97,20 @@ Set up i18n with the following locales: en, es, and pt-BR. The default locale is ### Lingo.dev CLI -Підтримувати переклади синхронізованими — нудно. Ви додаєте новий рядок, забуваєте його перекласти, випускаєте зламаний UI для міжнародних користувачів. Або ви надсилаєте JSON-файли перекладачам, чекаєте днями, а потім вручну об'єднуєте їхню роботу назад. Масштабування до 10+ мов означає управління сотнями файлів, які постійно розсинхронізуються. - -Lingo.dev CLI автоматизує це. Вкажіть на ваші файли перекладів, виконайте одну команду, і кожна локаль оновиться. Lockfile відстежує, що вже перекладено, тому ви платите лише за новий або змінений контент. Підтримує JSON, YAML, CSV, PO-файли та markdown. - -**Налаштування:** +Локалізуйте JSON, YAML, markdown, CSV і PO файли однією командою. Lockfile відстежує вже локалізований контент – обробляються лише нові або змінені дані. За замовчуванням використовується ваш рушій локалізації на Lingo.dev, або підключіть власну LLM (OpenAI, Anthropic, Google, Mistral, OpenRouter, Ollama). ```bash -# Initialize project npx lingo.dev@latest init - -# Run translations npx lingo.dev@latest run ``` -**Як це працює:** - -1. Витягує контент для перекладу з налаштованих файлів -2. Надсилає контент провайдеру LLM для перекладу -3. Записує перекладений контент назад у файлову систему -4. Створює файл `i18n.lock` для відстеження завершених перекладів (уникаючи зайвої обробки) - -**Конфігурація:** - -Команда `init` генерує файл `i18n.json`. Налаштуйте локалі та групи: - -```json -{ - "$schema": "https://lingo.dev/schema/i18n.json", - "version": "1.10", - "locale": { - "source": "en", - "targets": ["es", "fr", "de"] - }, - "buckets": { - "json": { - "include": ["locales/[locale].json"] - } - } -} -``` - -Поле `provider` є необов'язковим (типово використовується Lingo.dev Engine). Для власних LLM-провайдерів: - -```json -{ - "provider": { - "id": "openai", - "model": "gpt-4o-mini", - "prompt": "Translate from {source} to {target}" - } -} -``` - -**Підтримувані провайдери LLM:** - -- Lingo.dev Engine (рекомендовано) -- OpenAI -- Anthropic -- Google -- Mistral -- OpenRouter -- Ollama - -[Читати документацію →](https://lingo.dev/en/cli) +[Читати документацію →](https://lingo.dev/en/docs/cli) --- ### Lingo.dev CI/CD -Переклади — це функція, яка завжди «майже готова». Інженери зливають код без оновлення локалей. QA виявляє відсутні переклади на етапі тестування — або ще гірше, користувачі виявляють їх у продакшені. Основна причина: переклад — це ручний крок, який легко пропустити під тиском дедлайнів. - -Lingo.dev CI/CD робить переклади автоматичними. Кожен push запускає переклад. Відсутні рядки заповнюються до того, як код потрапить у продакшен. Не потрібна дисципліна — pipeline все обробляє. - -**Підтримувані платформи:** - -- GitHub Actions -- GitLab CI/CD -- Bitbucket Pipelines - -**Налаштування GitHub Actions:** - -Створіть `.github/workflows/translate.yml`: - -```yaml -name: Translate -on: - push: - branches: [main] -permissions: - contents: write -jobs: - translate: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Lingo.dev - uses: lingodotdev/lingo.dev@main - with: - api-key: ${{ secrets.LINGODOTDEV_API_KEY }} -``` - -**Вимоги до налаштування:** - -1. Додайте `LINGODOTDEV_API_KEY` до секретів репозиторію (Settings > Secrets and variables > Actions) -2. Для PR-воркфлоу: Увімкніть "Allow GitHub Actions to create and approve pull requests" у Settings > Actions > General - -**Опції робочого процесу:** - -Закомітити переклади безпосередньо: +Безперервна локалізація у вашому конвеєрі. Кожен push запускає локалізацію — відсутні рядки заповнюються до того, як код потрапить у продакшн. Підтримує GitHub Actions, GitLab CI/CD та Bitbucket Pipelines. ```yaml uses: lingodotdev/lingo.dev@main @@ -240,250 +118,44 @@ with: api-key: ${{ secrets.LINGODOTDEV_API_KEY }} ``` -Створюйте pull request з перекладами: - -```yaml -uses: lingodotdev/lingo.dev@main -with: - api-key: ${{ secrets.LINGODOTDEV_API_KEY }} - pull-request: true -env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} -``` - -**Доступні параметри:** - -| Параметр | Значення за замовчуванням | Опис | -| -------------------- | ---------------------------------------------- | ---------------------------------- | -| `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) +[Читати документацію →](https://lingo.dev/en/docs/integrations) --- -### Lingo.dev SDK +### Lingo.dev API -Статичні файли перекладів підходять для міток інтерфейсу, але що робити з контентом, створеним користувачами? Повідомлення в чаті, описи продуктів, тікети підтримки — контент, який не існує під час збірки, неможливо попередньо перекласти. Ви змушені показувати неперекладений текст або будувати власний конвеєр перекладу. +Викликайте свій механізм локалізації безпосередньо з бекенд-коду. Синхронна та асинхронна локалізація з доставкою через вебхуки, ізоляцією помилок для кожної локалі та моніторингом прогресу в реальному часі через WebSocket. -Lingo.dev SDK перекладає контент під час виконання. Передайте будь-який текст, об'єкт або HTML і отримайте локалізовану версію. Працює для чату в реальному часі, динамічних сповіщень або будь-якого контенту, що надходить після розгортання. Доступний для JavaScript, PHP, Python та Ruby. - -**Встановлення:** - -```bash -npm install lingo.dev -``` - -**Використання:** - -```ts -import { LingoDotDevEngine } from "lingo.dev/sdk"; - -const lingoDotDev = new LingoDotDevEngine({ - apiKey: process.env.LINGODOTDEV_API_KEY, -}); - -// Translate objects (preserves structure) -const translated = await lingoDotDev.localizeObject( - { greeting: "Hello", farewell: "Goodbye" }, - { sourceLocale: "en", targetLocale: "es" }, -); -// { greeting: "Hola", farewell: "Adiós" } - -// Translate text -const text = await lingoDotDev.localizeText("Hello!", { - sourceLocale: "en", - targetLocale: "fr", -}); - -// Translate to multiple languages at once -const results = await lingoDotDev.batchLocalizeText("Hello!", { - sourceLocale: "en", - targetLocales: ["es", "fr", "de"], -}); - -// Translate chat (preserves speaker names) -const chat = await lingoDotDev.localizeChat( - [{ name: "Alice", text: "Hello!" }], - { sourceLocale: "en", targetLocale: "es" }, -); - -// Translate HTML (preserves markup) -const html = await lingoDotDev.localizeHtml("
- Lingo.dev - LLM سے چلنے والے لوکلائزیشن کے لیے اوپن سورس i18n ٹول کٹ + اوپن سورس لوکلائزیشن انجینئرنگ ٹولز۔ مستقل، معیاری تراجم کے لیے Lingo.dev + لوکلائزیشن انجینئرنگ پلیٹ فارم سے منسلک ہوں۔
- MCP •CLI • - CI/CD •SDK • - Compiler + Lingo API • + Lingo React MCP • + Lingo CLI • + Lingo GitHub Action • + Lingo Compiler for React (ابتدائی الفا)
@@ -71,51 +74,22 @@ ## فوری آغاز -| ٹول | استعمال کا معاملہ | فوری کمانڈ | -| ---------------------------------- | ----------------------------------------------- | ---------------------------------- | -| [**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 | +| ٹول | یہ کیا کرتا ہے | فوری کمانڈ | +| -------------------------------------------------- | ---------------------------------------------------- | ---------------------------------- | +| [**Lingo React MCP**](#lingodev-mcp) | React ایپس کے لیے AI کی مدد سے i18n سیٹ اپ | پرامپٹ: `Set up i18n` | +| [**Lingo CLI**](#lingodev-cli) | JSON، YAML، markdown، CSV، PO فائلوں کو لوکلائز کریں | `npx lingo.dev@latest run` | +| [**Lingo GitHub Action**](#lingodev-cicd) | GitHub Actions میں مسلسل لوکلائزیشن | `uses: lingodotdev/lingo.dev@main` | +| [**Lingo Compiler for React**](#lingodev-compiler) | i18n ریپرز کے بغیر بلڈ ٹائم React لوکلائزیشن | `withLingo()` پلگ ان | ---- - -### Lingo.dev MCP - -React apps میں i18n سیٹ اپ کرنا بدنام زمانہ طور پر خطا کا شکار ہے - یہاں تک کہ تجربہ کار ڈیولپرز کے لیے بھی۔ AI کوڈنگ اسسٹنٹس اسے مزید خراب کر دیتے ہیں: وہ غیر موجود APIs کے بارے میں فرضی باتیں کرتے ہیں، middleware configurations بھول جاتے ہیں، routing توڑ دیتے ہیں، یا گم ہونے سے پہلے آدھا حل implement کر دیتے ہیں۔ مسئلہ یہ ہے کہ i18n سیٹ اپ کے لیے متعدد فائلوں (routing، middleware، components، configuration) میں مربوط تبدیلیوں کی ایک درست ترتیب درکار ہوتی ہے، اور LLMs اس context کو برقرار رکھنے میں مشکل کا سامنا کرتے ہیں۔ - -Lingo.dev MCP اس مسئلے کو AI assistants کو framework-specific i18n علم تک structured رسائی فراہم کر کے حل کرتا ہے۔ اندازہ لگانے کی بجائے، آپ کا assistant Next.js، React Router، اور TanStack Start کے لیے تصدیق شدہ implementation patterns کی پیروی کرتا ہے۔ - -**تعاون یافتہ IDEs:** +### لوکلائزیشن انجنز -- Claude Code -- Cursor -- GitHub Copilot Agents -- Codex (OpenAI) +یہ ٹولز [لوکلائزیشن انجنز](https://lingo.dev) سے منسلک ہوتے ہیں – اسٹیٹ فل ترجمہ APIs جو آپ Lingo.dev لوکلائزیشن انجینئرنگ پلیٹ فارم پر بناتے ہیں۔ ہر انجن ہر درخواست میں لغات، برانڈ وائس، اور فی لوکیل ہدایات کو محفوظ رکھتا ہے، [اصطلاحات کی غلطیوں کو 16.6–44.6% تک کم کرتا ہے](https://lingo.dev/research/retrieval-augmented-localization)۔ یا [اپنا LLM لائیں](#lingodev-cli)۔ -**تعاون یافتہ frameworks:** - -- Next.js (App Router & Pages Router v13-16) -- TanStack Start (v1) -- React Router (v7) - -**استعمال:** - -اپنے IDE میں MCP server کو configure کرنے کے بعد ([quickstart guides دیکھیں](https://lingo.dev/en/mcp))، اپنے assistant کو prompt کریں: - -``` -Set up i18n with the following locales: en, es, and pt-BR. The default locale is 'en'. -``` - -Assistant یہ کام کرے گا: +--- -1. Locale-based routing configure کرے گا (مثلاً `/en`، `/es`، `/pt-BR`) -2. Language switching components سیٹ اپ کرے گا -3. Automatic locale detection implement کرے گا -4. ضروری configuration files generate کرے گا +### Lingo.dev MCP -**نوٹ:** AI-assisted code generation non-deterministic ہے۔ commit کرنے سے پہلے generated code کا جائزہ لیں۔ +React ایپس میں i18n سیٹ اپ کرنا غلطیوں کا شکار ہے – یہاں تک کہ AI کوڈنگ اسسٹنٹس بھی غیر موجود APIs کا خیالی تصور کرتے ہیں اور روٹنگ کو توڑ دیتے ہیں۔ Lingo.dev MCP، AI اسسٹنٹس کو Next.js، React Router، اور TanStack Start کے لیے فریم ورک کے مطابق i18n علم تک منظم رسائی فراہم کرتا ہے۔ Claude Code، Cursor، GitHub Copilot Agents، اور Codex کے ساتھ کام کرتا ہے۔ [دستاویزات پڑھیں →](https://lingo.dev/en/mcp) @@ -123,115 +97,20 @@ Assistant یہ کام کرے گا: ### Lingo.dev CLI -تراجم کو synchronized رکھنا تھکا دینے والا ہے۔ آپ ایک نئی string شامل کرتے ہیں، اسے translate کرنا بھول جاتے ہیں، بین الاقوامی صارفین کو ٹوٹا ہوا UI بھیج دیتے ہیں۔ یا آپ مترجمین کو JSON فائلیں بھیجتے ہیں، دنوں انتظار کرتے ہیں، پھر ان کے کام کو دستی طور پر واپس merge کرتے ہیں۔ 10+ زبانوں تک scale کرنے کا مطلب سینکڑوں فائلوں کا انتظام ہے جو مسلسل sync سے باہر ہو جاتی ہیں۔ - -Lingo.dev CLI اسے خودکار بناتا ہے۔ اسے اپنی translation فائلوں کی طرف point کریں، ایک command چلائیں، اور ہر locale update ہو جاتا ہے۔ ایک lockfile track کرتی ہے کہ کیا پہلے سے translate ہو چکا ہے، تاکہ آپ صرف نئے یا تبدیل شدہ content کے لیے ادائیگی کریں۔ JSON، YAML، CSV، PO فائلوں، اور markdown کو support کرتا ہے۔ - -**سیٹ اپ:** +ایک کمانڈ میں JSON، YAML، markdown، CSV، اور PO فائلوں کو لوکلائز کریں۔ ایک لاک فائل ٹریک کرتی ہے کہ پہلے سے کیا لوکلائز ہو چکا ہے – صرف نئے یا تبدیل شدہ مواد پر کارروائی ہوتی ہے۔ Lingo.dev پر آپ کے لوکلائزیشن انجن کو ڈیفالٹ کرتا ہے، یا اپنا LLM لائیں (OpenAI، Anthropic، Google، Mistral، OpenRouter، Ollama)۔ ```bash -# Initialize project npx lingo.dev@latest init - -# Run translations npx lingo.dev@latest run ``` -**یہ کیسے کام کرتا ہے:** - -1. کنفیگر شدہ فائلوں سے قابل ترجمہ مواد نکالتا ہے -2. ترجمے کے لیے مواد LLM فراہم کنندہ کو بھیجتا ہے -3. ترجمہ شدہ مواد واپس filesystem میں لکھتا ہے -4. مکمل شدہ تراجم کو ٹریک کرنے کے لیے `i18n.lock` فائل بناتا ہے (غیر ضروری پروسیسنگ سے بچتا ہے) - -**کنفیگریشن:** - -`init` کمانڈ ایک `i18n.json` فائل بناتی ہے۔ locales اور buckets کنفیگر کریں: - -```json -{ - "$schema": "https://lingo.dev/schema/i18n.json", - "version": "1.10", - "locale": { - "source": "en", - "targets": ["es", "fr", "de"] - }, - "buckets": { - "json": { - "include": ["locales/[locale].json"] - } - } -} -``` - -`provider` فیلڈ اختیاری ہے (ڈیفالٹ Lingo.dev Engine ہے)۔ حسب ضرورت LLM فراہم کنندگان کے لیے: - -```json -{ - "provider": { - "id": "openai", - "model": "gpt-4o-mini", - "prompt": "Translate from {source} to {target}" - } -} -``` - -**معاون LLM فراہم کنندگان:** - -- Lingo.dev Engine (تجویز کردہ) -- OpenAI -- Anthropic -- Google -- Mistral -- OpenRouter -- Ollama - -[دستاویزات پڑھیں →](https://lingo.dev/en/cli) +[دستاویزات پڑھیں ←](https://lingo.dev/en/docs/cli) --- ### Lingo.dev CI/CD -تراجم وہ فیچر ہیں جو ہمیشہ "تقریباً مکمل" ہوتے ہیں۔ انجینئرز locales کو اپ ڈیٹ کیے بغیر کوڈ merge کر دیتے ہیں۔ QA staging میں غائب تراجم پکڑتا ہے - یا بدتر، صارفین انہیں production میں پکڑتے ہیں۔ بنیادی وجہ: ترجمہ ایک دستی مرحلہ ہے جسے ڈیڈ لائن کے دباؤ میں چھوڑنا آسان ہے۔ - -Lingo.dev CI/CD تراجم کو خودکار بناتا ہے۔ ہر push ترجمہ شروع کرتا ہے۔ غائب strings کوڈ کے production تک پہنچنے سے پہلے بھر جاتی ہیں۔ کسی نظم و ضبط کی ضرورت نہیں - pipeline اسے سنبھالتا ہے۔ - -**معاون پلیٹ فارمز:** - -- GitHub Actions -- GitLab CI/CD -- Bitbucket Pipelines - -**GitHub Actions سیٹ اپ:** - -`.github/workflows/translate.yml` بنائیں: - -```yaml -name: Translate -on: - push: - branches: [main] -permissions: - contents: write -jobs: - translate: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Lingo.dev - uses: lingodotdev/lingo.dev@main - with: - api-key: ${{ secrets.LINGODOTDEV_API_KEY }} -``` - -**سیٹ اپ کی ضروریات:** - -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" فعال کریں - -**Workflow کے اختیارات:** - -تراجم براہ راست commit کریں: +آپ کی پائپ لائن میں مسلسل لوکلائزیشن۔ ہر push لوکلائزیشن کو متحرک کرتا ہے – کوڈ کے پروڈکشن تک پہنچنے سے پہلے غائب strings بھر دی جاتی ہیں۔ GitHub Actions، GitLab CI/CD، اور Bitbucket Pipelines کو سپورٹ کرتا ہے۔ ```yaml uses: lingodotdev/lingo.dev@main @@ -239,250 +118,44 @@ with: api-key: ${{ secrets.LINGODOTDEV_API_KEY }} ``` -تراجم کے ساتھ pull requests بنائیں: - -```yaml -uses: lingodotdev/lingo.dev@main -with: - api-key: ${{ secrets.LINGODOTDEV_API_KEY }} - pull-request: true -env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} -``` - -**دستیاب 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` | متوازی پروسیسنگ فعال کریں | - -[دستاویزات پڑھیں →](https://lingo.dev/en/ci/github) +[دستاویزات پڑھیں ←](https://lingo.dev/en/docs/integrations) --- -### Lingo.dev SDK +### Lingo.dev API -Static ترجمہ فائلیں UI labels کے لیے کام کرتی ہیں، لیکن صارف کے تیار کردہ مواد کا کیا؟ چیٹ پیغامات، پروڈکٹ کی تفصیلات، سپورٹ ٹکٹس - وہ مواد جو build time پر موجود نہیں ہوتا اس کا پہلے سے ترجمہ نہیں کیا جا سکتا۔ آپ غیر ترجمہ شدہ متن دکھانے یا حسب ضرورت ترجمہ pipeline بنانے پر مجبور ہیں۔ +اپنے لوکلائزیشن انجن کو براہ راست backend کوڈ سے کال کریں۔ webhook ڈیلیوری کے ساتھ Synchronous اور async لوکلائزیشن، ہر locale کے لیے failure isolation، اور WebSocket کے ذریعے real-time پیشرفت۔ -Lingo.dev SDK runtime پر مواد کا ترجمہ کرتا ہے۔ کوئی بھی متن، object، یا HTML پاس کریں اور مقامی ورژن واپس حاصل کریں۔ real-time چیٹ، dynamic notifications، یا کسی بھی مواد کے لیے کام کرتا ہے جو deployment کے بعد آتا ہے۔ JavaScript، PHP، Python، اور Ruby کے لیے دستیاب ہے۔ - -**انسٹالیشن:** - -```bash -npm install lingo.dev -``` - -**استعمال:** - -```ts -import { LingoDotDevEngine } from "lingo.dev/sdk"; - -const lingoDotDev = new LingoDotDevEngine({ - apiKey: process.env.LINGODOTDEV_API_KEY, -}); - -// Translate objects (preserves structure) -const translated = await lingoDotDev.localizeObject( - { greeting: "Hello", farewell: "Goodbye" }, - { sourceLocale: "en", targetLocale: "es" }, -); -// { greeting: "Hola", farewell: "Adiós" } - -// Translate text -const text = await lingoDotDev.localizeText("Hello!", { - sourceLocale: "en", - targetLocale: "fr", -}); - -// Translate to multiple languages at once -const results = await lingoDotDev.batchLocalizeText("Hello!", { - sourceLocale: "en", - targetLocales: ["es", "fr", "de"], -}); - -// Translate chat (preserves speaker names) -const chat = await lingoDotDev.localizeChat( - [{ name: "Alice", text: "Hello!" }], - { sourceLocale: "en", targetLocale: "es" }, -); - -// Translate HTML (preserves markup) -const html = await lingoDotDev.localizeHtml("
- Lingo.dev - 基于 LLM 的开源本地化 i18n 工具包 + + 开源本地化工程工具。连接 Lingo.dev 本地化工程平台,获得一致、优质的翻译。 +
- MCP •CLI • - CI/CD •SDK • - Compiler + Lingo API • + Lingo React MCP • + Lingo CLI • + Lingo GitHub Action • + Lingo Compiler for React(早期 Alpha 版)
@@ -69,51 +73,22 @@ ## 快速开始 -| 工具 | 使用场景 | 快速命令 | -| ---------------------------------- | --------------------------------------- | ---------------------------------- | -| [**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) | 构建时 React 本地化,无需 i18n 包装器 | `withLingo()` plugin | +| 工具 | 功能 | 快速命令 | +| -------------------------------------------------- | ----------------------------------------- | ---------------------------------- | +| [**Lingo React MCP**](#lingodev-mcp) | AI 辅助的 React 应用 i18n 配置 | 提示:`Set up i18n` | +| [**Lingo CLI**](#lingodev-cli) | 本地化 JSON、YAML、Markdown、CSV、PO 文件 | `npx lingo.dev@latest run` | +| [**Lingo GitHub Action**](#lingodev-cicd) | 在 GitHub Actions 中持续本地化 | `uses: lingodotdev/lingo.dev@main` | +| [**Lingo Compiler for React**](#lingodev-compiler) | 构建时 React 本地化,无需 i18n 包装器 | `withLingo()` 插件 | ---- - -### Lingo.dev MCP - -在 React 应用中配置 i18n 一直以高出错率著称——即使是经验丰富的开发者也难以避免。AI 编码助手反而可能让情况更糟:它们会凭空编造不存在的 API,遗漏中间件配置,破坏路由,或者只实现一半方案后陷入混乱。问题在于,i18n 配置需要在多个文件(路由、中间件、组件、配置)间精确协同变更,而大模型难以持续保持全局上下文。 - -Lingo.dev MCP 通过为 AI 助手提供结构化、框架专属的 i18n 知识解决了这一难题。你的助手无需猜测,而是遵循 Next.js、React Router 和 TanStack Start 的经过验证的实现模式。 - -**支持的 IDE:** - -- Claude Code -- Cursor -- GitHub Copilot Agents -- Codex(OpenAI) +### 本地化引擎 -**支持的框架:** - -- Next.js(App Router & Pages Router v13-16) -- TanStack Start(v1) -- React Router(v7) - -**用法:** - -在 IDE 中配置 MCP 服务器后([查看快速入门指南](https://lingo.dev/en/mcp)),提示你的助手: - -``` -Set up i18n with the following locales: en, es, and pt-BR. The default locale is 'en'. -``` +这些工具连接到[本地化引擎](https://lingo.dev)——您在 Lingo.dev 本地化工程平台上创建的有状态翻译 API。每个引擎在所有请求中持久化术语表、品牌语调和特定语言的指令,[将术语错误减少 16.6–44.6%](https://lingo.dev/research/retrieval-augmented-localization)。或者[使用您自己的 LLM](#lingodev-cli)。 -助手将会: +--- -1. 配置基于语言的路由(如 `/en`、`/es`、`/pt-BR`) -2. 设置语言切换组件 -3. 实现自动语言检测 -4. 生成所需配置文件 +### Lingo.dev MCP -**注意:** AI 辅助代码生成具有不确定性。请在提交前仔细审核生成的代码。 +在 React 应用中配置 i18n 容易出错——即使是 AI 编码助手也会幻想出不存在的 API 并破坏路由。Lingo.dev MCP 为 AI 助手提供对 Next.js、React Router 和 TanStack Start 框架特定 i18n 知识的结构化访问。适用于 Claude Code、Cursor、GitHub Copilot Agents 和 Codex。 [阅读文档 →](https://lingo.dev/en/mcp) @@ -121,115 +96,20 @@ Set up i18n with the following locales: en, es, and pt-BR. The default locale is ### Lingo.dev CLI -保持翻译内容同步非常繁琐。你新增了一条字符串,忘记翻译,导致国际用户看到损坏的界面。或者你把 JSON 文件发给译者,等几天再手动合并他们的成果。支持 10 多种语言时,你要管理数百个经常不同步的文件。 - -Lingo.dev CLI 实现了自动化。只需指定翻译文件,运行一条命令,所有语言版本自动更新。锁定文件会追踪已翻译内容,你只需为新增或变更内容付费。支持 JSON、YAML、CSV、PO 文件和 markdown。 - -**设置:** +一条命令本地化 JSON、YAML、Markdown、CSV 和 PO 文件。锁定文件跟踪已本地化的内容——仅处理新增或更改的内容。默认使用 Lingo.dev 上的本地化引擎,或使用您自己的 LLM(OpenAI、Anthropic、Google、Mistral、OpenRouter、Ollama)。 ```bash -# Initialize project npx lingo.dev@latest init - -# Run translations npx lingo.dev@latest run ``` -**工作原理:** - -1. 从配置的文件中提取可翻译内容 -2. 发送内容到 LLM 提供商进行翻译 -3. 将翻译结果写回文件系统 -4. 创建 `i18n.lock` 文件以追踪已翻译内容(避免重复处理) - -**配置:** - -`init` 命令会生成 `i18n.json` 文件。请配置 locales 和 buckets: - -```json -{ - "$schema": "https://lingo.dev/schema/i18n.json", - "version": "1.10", - "locale": { - "source": "en", - "targets": ["es", "fr", "de"] - }, - "buckets": { - "json": { - "include": ["locales/[locale].json"] - } - } -} -``` - -`provider` 字段为可选(默认为 Lingo.dev Engine)。如需自定义 LLM 提供商: - -```json -{ - "provider": { - "id": "openai", - "model": "gpt-4o-mini", - "prompt": "Translate from {source} to {target}" - } -} -``` - -**支持的 LLM 提供商:** - -- Lingo.dev Engine(推荐) -- OpenAI -- Anthropic -- Google -- Mistral -- OpenRouter -- Ollama - -[阅读文档 →](https://lingo.dev/en/cli) +[查看文档 →](https://lingo.dev/en/docs/cli) --- ### Lingo.dev CI/CD -翻译总是“快完成了”的功能。工程师合并代码时未及时更新本地化内容。QA 在预发布环境发现缺失的翻译——更糟的是,用户在生产环境中发现。根本原因:翻译是一个容易在截止压力下被跳过的手动步骤。 - -Lingo.dev CI/CD 让翻译自动化。每次推送都会触发翻译。缺失的字符串在代码进入生产前就会被补全。无需额外流程——流水线全自动处理。 - -**支持的平台:** - -- GitHub Actions -- GitLab CI/CD -- Bitbucket Pipelines - -**GitHub Actions 设置:** - -创建 `.github/workflows/translate.yml`: - -```yaml -name: Translate -on: - push: - branches: [main] -permissions: - contents: write -jobs: - translate: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Lingo.dev - uses: lingodotdev/lingo.dev@main - with: - api-key: ${{ secrets.LINGODOTDEV_API_KEY }} -``` - -**设置要求:** - -1. 将 `LINGODOTDEV_API_KEY` 添加到仓库机密(设置 > Secrets and variables > Actions) -2. 针对 PR 工作流:在设置 > Actions > General 中启用“允许 GitHub Actions 创建和批准拉取请求” - -**工作流选项:** - -直接提交翻译: +在您的流水线中实现持续本地化。每次推送都会触发本地化——缺失的字符串会在代码发布到生产环境之前自动填充。支持 GitHub Actions、GitLab CI/CD 和 Bitbucket Pipelines。 ```yaml uses: lingodotdev/lingo.dev@main @@ -237,308 +117,48 @@ with: api-key: ${{ secrets.LINGODOTDEV_API_KEY }} ``` -创建包含翻译内容的拉取请求: - -```yaml -uses: lingodotdev/lingo.dev@main -with: - api-key: ${{ secrets.LINGODOTDEV_API_KEY }} - pull-request: true -env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} -``` - -**可用输入:** - -| 输入 | 默认值 | 描述 | -| -------------------- | ---------------------------------------------- | -------------------- | -| `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) +[查看文档 →](https://lingo.dev/en/docs/integrations) --- -### Lingo.dev SDK - -静态翻译文件适用于 UI 标签,但用户生成内容怎么办?聊天消息、产品描述、支持工单——这些在构建时不存在的内容无法预先翻译。你只能显示未翻译文本,或自行构建翻译管道。 - -Lingo.dev SDK 支持运行时内容翻译。传入任意文本、对象或 HTML,即可获得本地化版本。适用于实时聊天、动态通知或任何部署后才出现的内容。支持 JavaScript、PHP、Python 和 Ruby。 - -**安装:** - -```bash -npm install lingo.dev -``` - -**用法:** - -```ts -import { LingoDotDevEngine } from "lingo.dev/sdk"; - -const lingoDotDev = new LingoDotDevEngine({ - apiKey: process.env.LINGODOTDEV_API_KEY, -}); - -// Translate objects (preserves structure) -const translated = await lingoDotDev.localizeObject( - { greeting: "Hello", farewell: "Goodbye" }, - { sourceLocale: "en", targetLocale: "es" }, -); -// { greeting: "Hola", farewell: "Adiós" } - -// Translate text -const text = await lingoDotDev.localizeText("Hello!", { - sourceLocale: "en", - targetLocale: "fr", -}); - -// Translate to multiple languages at once -const results = await lingoDotDev.batchLocalizeText("Hello!", { - sourceLocale: "en", - targetLocales: ["es", "fr", "de"], -}); - -// Translate chat (preserves speaker names) -const chat = await lingoDotDev.localizeChat( - [{ name: "Alice", text: "Hello!" }], - { sourceLocale: "en", targetLocale: "es" }, -); - -// Translate HTML (preserves markup) -const html = await lingoDotDev.localizeHtml("