[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-lingodotdev--lingo.dev":3,"tool-lingodotdev--lingo.dev":64},[4,17,27,35,43,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,3,"2026-04-05T11:01:52",[13,14,15],"开发框架","图像","Agent","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",138956,2,"2026-04-05T11:33:21",[13,15,26],"语言模型",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":23,"last_commit_at":33,"category_tags":34,"status":16},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[13,14,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":23,"last_commit_at":41,"category_tags":42,"status":16},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[13,26],{"id":44,"name":45,"github_repo":46,"description_zh":47,"stars":48,"difficulty_score":23,"last_commit_at":49,"category_tags":50,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[14,51,52,53,15,54,26,13,55],"数据工具","视频","插件","其他","音频",{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":10,"last_commit_at":62,"category_tags":63,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[15,14,13,26,54],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":70,"readme_en":71,"readme_zh":72,"quickstart_zh":73,"use_case_zh":74,"hero_image_url":75,"owner_login":76,"owner_name":77,"owner_avatar_url":78,"owner_bio":79,"owner_company":80,"owner_location":80,"owner_email":81,"owner_twitter":76,"owner_website":82,"owner_url":83,"languages":84,"stars":123,"forks":124,"last_commit_at":125,"license":126,"difficulty_score":23,"env_os":127,"env_gpu":127,"env_ram":127,"env_deps":128,"category_tags":131,"github_topics":132,"view_count":10,"oss_zip_url":80,"oss_zip_packed_at":80,"status":16,"created_at":138,"updated_at":139,"faqs":140,"releases":166},917,"lingodotdev\u002Flingo.dev","lingo.dev","⚡ Lingo.dev - open-source, AI-powered i18n toolkit for instant localization with LLMs. Bring your own LLM or use Lingo.dev Localization Engine. Join discord:","Lingo.dev 是一款开源的 AI 驱动国际化（i18n）工具包，旨在帮助开发者快速、准确地实现应用的多语言本地化。它利用大语言模型（LLM）的能力，可以自动翻译 JSON、YAML、Markdown 等多种格式的文本内容，并提供了从开发到部署的全套工具链。\n\n它主要解决了传统本地化流程中手动翻译效率低下、容易出错，以及在不同框架中配置 i18n 复杂且容易遗漏的问题。特别是对于 React 生态（如 Next.js、React Router）的应用，设置 i18n 通常需要跨多个文件进行一系列协调更改，而 AI 助手常常会“幻觉”出错误的 API 或配置。Lingo.dev 通过其 MCP（模型上下文协议）服务器，为 Claude、Cursor 等 AI 编程助手提供了结构化的、经过验证的框架知识，让 AI 能可靠地一键完成完整的 i18n 初始化设置。\n\n这个工具非常适合需要为产品添加多语言支持的开发者和团队使用。无论是前端开发者想要在 React 应用中集成本地化，还是 DevOps 工程师希望在 CI\u002FCD 流水线中自动化翻译流程，都能通过它的 CLI、SDK、CI\u002FCD ","Lingo.dev 是一款开源的 AI 驱动国际化（i18n）工具包，旨在帮助开发者快速、准确地实现应用的多语言本地化。它利用大语言模型（LLM）的能力，可以自动翻译 JSON、YAML、Markdown 等多种格式的文本内容，并提供了从开发到部署的全套工具链。\n\n它主要解决了传统本地化流程中手动翻译效率低下、容易出错，以及在不同框架中配置 i18n 复杂且容易遗漏的问题。特别是对于 React 生态（如 Next.js、React Router）的应用，设置 i18n 通常需要跨多个文件进行一系列协调更改，而 AI 助手常常会“幻觉”出错误的 API 或配置。Lingo.dev 通过其 MCP（模型上下文协议）服务器，为 Claude、Cursor 等 AI 编程助手提供了结构化的、经过验证的框架知识，让 AI 能可靠地一键完成完整的 i18n 初始化设置。\n\n这个工具非常适合需要为产品添加多语言支持的开发者和团队使用。无论是前端开发者想要在 React 应用中集成本地化，还是 DevOps 工程师希望在 CI\u002FCD 流水线中自动化翻译流程，都能通过它的 CLI、SDK、CI\u002FCD 集成和编译器找到对应的解决方案。\n\n其独特的技术亮点在于“AI 原生”的设计思路：你可以使用 Lingo.dev 自带的本地化引擎，也可以轻松接入自己的 LLM（如 OpenAI、Anthropic 的模型）。此外，它的编译器允许在构建时完成 React 应用的本地化，无需在运行时引入额外的 i18n 包装器，有助于提升应用性能。","\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Flingo.dev\">\n    \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flingodotdev_lingo.dev_readme_5773e3a86979.png\" width=\"100%\" alt=\"Lingo.dev\" \u002F>\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cstrong>Lingo.dev - Open-source i18n toolkit for LLM-powered localization\u003C\u002Fstrong>\n\u003C\u002Fp>\n\n\u003Cbr \u002F>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"#lingodev-mcp\">MCP\u003C\u002Fa> •\n  \u003Ca href=\"#lingodev-cli\">CLI\u003C\u002Fa> •\n  \u003Ca href=\"#lingodev-cicd\">CI\u002FCD\u003C\u002Fa> •\n  \u003Ca href=\"#lingodev-sdk\">SDK\u003C\u002Fa> •\n  \u003Ca href=\"#lingodev-compiler\">Compiler\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev\u002Factions\u002Fworkflows\u002Frelease.yml\">\n    \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev\u002Factions\u002Fworkflows\u002Frelease.yml\u002Fbadge.svg\" alt=\"Release\" \u002F>\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev\u002Fblob\u002Fmain\u002FLICENSE.md\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Flingodotdev\u002Flingo.dev\" alt=\"License\" \u002F>\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev\u002Fcommits\u002Fmain\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flast-commit\u002Flingodotdev\u002Flingo.dev\" alt=\"Last Commit\" \u002F>\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Flingo.dev\u002Fen\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FProduct%20Hunt-%231%20DevTool%20of%20the%20Month-orange?logo=producthunt&style=flat-square\" alt=\"Product Hunt #1 DevTool of the Month\" \u002F>\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Flingo.dev\u002Fen\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FProduct%20Hunt-%231%20Product%20of%20the%20Week-orange?logo=producthunt&style=flat-square\" alt=\"Product Hunt #1 DevTool of the Week\" \u002F>\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Flingo.dev\u002Fen\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FProduct%20Hunt-%232%20Product%20of%20the%20Day-orange?logo=producthunt&style=flat-square\" alt=\"Product Hunt #2 Product of the Day\" \u002F>\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Flingo.dev\u002Fen\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FGitHub-Trending-blue?logo=github&style=flat-square\" alt=\"Github trending\" \u002F>\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\n---\n\n## Quick Start\n\n| Tool                               | Use Case                                            | Quick Command                      |\n| ---------------------------------- | --------------------------------------------------- | ---------------------------------- |\n| [**MCP**](#lingodev-mcp)           | AI-assisted i18n setup for React apps               | Prompt: `Set up i18n`              |\n| [**CLI**](#lingodev-cli)           | Translate JSON, YAML, markdown, CSV, PO files       | `npx lingo.dev@latest run`         |\n| [**CI\u002FCD**](#lingodev-cicd)        | Automated translation pipeline in GitHub Actions    | `uses: lingodotdev\u002Flingo.dev@main` |\n| [**SDK**](#lingodev-sdk)           | Runtime translation for dynamic content             | `npm install lingo.dev`            |\n| [**Compiler**](#lingodev-compiler) | Build-time React localization without i18n wrappers | `withLingo()` plugin               |\n\n---\n\n### Lingo.dev MCP\n\nSetting up i18n in React apps is notoriously error-prone - even for experienced developers. AI coding assistants make it worse: they hallucinate non-existent APIs, forget middleware configurations, break routing, or implement half a solution before getting lost. The problem is that i18n setup requires a precise sequence of coordinated changes across multiple files (routing, middleware, components, configuration), and LLMs struggle to maintain that context.\n\nLingo.dev MCP solves this by giving AI assistants structured access to framework-specific i18n knowledge. Instead of guessing, your assistant follows verified implementation patterns for Next.js, React Router, and TanStack Start.\n\n**Supported IDEs:**\n\n- Claude Code\n- Cursor\n- GitHub Copilot Agents\n- Codex (OpenAI)\n\n**Supported frameworks:**\n\n- Next.js (App Router & Pages Router v13-16)\n- TanStack Start (v1)\n- React Router (v7)\n\n**Usage:**\n\nAfter configuring the MCP server in your IDE ([see quickstart guides](https:\u002F\u002Flingo.dev\u002Fen\u002Fmcp)), prompt your assistant:\n\n```\nSet up i18n with the following locales: en, es, and pt-BR. The default locale is 'en'.\n```\n\nThe assistant will:\n\n1. Configure locale-based routing (e.g., `\u002Fen`, `\u002Fes`, `\u002Fpt-BR`)\n2. Set up language switching components\n3. Implement automatic locale detection\n4. Generate necessary configuration files\n\n**Note:** AI-assisted code generation is non-deterministic. Review generated code before committing.\n\n[Read the docs →](https:\u002F\u002Flingo.dev\u002Fen\u002Fmcp)\n\n---\n\n### Lingo.dev CLI\n\nKeeping translations in sync is tedious. You add a new string, forget to translate it, ship broken UI to international users. Or you send JSON files to translators, wait days, then manually merge their work back. Scaling to 10+ languages means managing hundreds of files that constantly drift out of sync.\n\nLingo.dev CLI automates this. Point it at your translation files, run one command, and every locale updates. A lockfile tracks what's already translated, so you only pay for new or changed content. Supports JSON, YAML, CSV, PO files, and markdown.\n\n**Setup:**\n\n```bash\n# Initialize project\nnpx lingo.dev@latest init\n\n# Run translations\nnpx lingo.dev@latest run\n```\n\n**How it works:**\n\n1. Extracts translatable content from configured files\n2. Sends content to LLM provider for translation\n3. Writes translated content back to filesystem\n4. Creates `i18n.lock` file to track completed translations (avoids redundant processing)\n\n**Configuration:**\n\nThe `init` command generates an `i18n.json` file. Configure locales and buckets:\n\n```json\n{\n  \"$schema\": \"https:\u002F\u002Flingo.dev\u002Fschema\u002Fi18n.json\",\n  \"version\": \"1.10\",\n  \"locale\": {\n    \"source\": \"en\",\n    \"targets\": [\"es\", \"fr\", \"de\"]\n  },\n  \"buckets\": {\n    \"json\": {\n      \"include\": [\"locales\u002F[locale].json\"]\n    }\n  }\n}\n```\n\nThe `provider` field is optional (defaults to Lingo.dev Engine). For custom LLM providers:\n\n```json\n{\n  \"provider\": {\n    \"id\": \"openai\",\n    \"model\": \"gpt-4o-mini\",\n    \"prompt\": \"Translate from {source} to {target}\"\n  }\n}\n```\n\n**Supported LLM providers:**\n\n- Lingo.dev Engine (recommended)\n- OpenAI\n- Anthropic\n- Google\n- Mistral\n- OpenRouter\n- Ollama\n\n[Read the docs →](https:\u002F\u002Flingo.dev\u002Fen\u002Fcli)\n\n---\n\n### Lingo.dev CI\u002FCD\n\nTranslations are the feature that's always \"almost done.\" Engineers merge code without updating locales. QA catches missing translations in staging - or worse, users catch them in production. The root cause: translation is a manual step that's easy to skip under deadline pressure.\n\nLingo.dev CI\u002FCD makes translations automatic. Every push triggers translation. Missing strings get filled before code reaches production. No discipline required - the pipeline handles it.\n\n**Supported platforms:**\n\n- GitHub Actions\n- GitLab CI\u002FCD\n- Bitbucket Pipelines\n\n**GitHub Actions setup:**\n\nCreate `.github\u002Fworkflows\u002Ftranslate.yml`:\n\n```yaml\nname: Translate\non:\n  push:\n    branches: [main]\npermissions:\n  contents: write\njobs:\n  translate:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions\u002Fcheckout@v4\n      - name: Lingo.dev\n        uses: lingodotdev\u002Flingo.dev@main\n        with:\n          api-key: ${{ secrets.LINGODOTDEV_API_KEY }}\n```\n\n**Setup requirements:**\n\n1. Add `LINGODOTDEV_API_KEY` to repository secrets (Settings > Secrets and variables > Actions)\n2. For PR workflows: Enable \"Allow GitHub Actions to create and approve pull requests\" in Settings > Actions > General\n\n**Workflow options:**\n\nCommit translations directly:\n\n```yaml\nuses: lingodotdev\u002Flingo.dev@main\nwith:\n  api-key: ${{ secrets.LINGODOTDEV_API_KEY }}\n```\n\nCreate pull requests with translations:\n\n```yaml\nuses: lingodotdev\u002Flingo.dev@main\nwith:\n  api-key: ${{ secrets.LINGODOTDEV_API_KEY }}\n  pull-request: true\nenv:\n  GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n```\n\n**Available inputs:**\n\n| Input                | Default                                        | Description                              |\n| -------------------- | ---------------------------------------------- | ---------------------------------------- |\n| `api-key`            | (required)                                     | Lingo.dev API key                        |\n| `pull-request`       | `false`                                        | Create PR instead of committing directly |\n| `commit-message`     | `\"feat: update translations via @LingoDotDev\"` | Custom commit message                    |\n| `pull-request-title` | `\"feat: update translations via @LingoDotDev\"` | Custom PR title                          |\n| `working-directory`  | `\".\"`                                          | Directory to run in                      |\n| `parallel`           | `false`                                        | Enable parallel processing               |\n\n[Read the docs →](https:\u002F\u002Flingo.dev\u002Fen\u002Fci\u002Fgithub)\n\n---\n\n### Lingo.dev SDK\n\nStatic translation files work for UI labels, but what about user-generated content? Chat messages, product descriptions, support tickets - content that doesn't exist at build time can't be pre-translated. You're stuck showing untranslated text or building a custom translation pipeline.\n\nLingo.dev SDK translates content at runtime. Pass any text, object, or HTML and get back a localized version. Works for real-time chat, dynamic notifications, or any content that arrives after deployment. Available for JavaScript, PHP, Python, and Ruby.\n\n**Installation:**\n\n```bash\nnpm install lingo.dev\n```\n\n**Usage:**\n\n```ts\nimport { LingoDotDevEngine } from \"lingo.dev\u002Fsdk\";\n\nconst lingoDotDev = new LingoDotDevEngine({\n  apiKey: process.env.LINGODOTDEV_API_KEY,\n});\n\n\u002F\u002F Translate objects (preserves structure)\nconst translated = await lingoDotDev.localizeObject(\n  { greeting: \"Hello\", farewell: \"Goodbye\" },\n  { sourceLocale: \"en\", targetLocale: \"es\" },\n);\n\u002F\u002F { greeting: \"Hola\", farewell: \"Adiós\" }\n\n\u002F\u002F Translate text\nconst text = await lingoDotDev.localizeText(\"Hello!\", {\n  sourceLocale: \"en\",\n  targetLocale: \"fr\",\n});\n\n\u002F\u002F Translate to multiple languages at once\nconst results = await lingoDotDev.batchLocalizeText(\"Hello!\", {\n  sourceLocale: \"en\",\n  targetLocales: [\"es\", \"fr\", \"de\"],\n});\n\n\u002F\u002F Translate chat (preserves speaker names)\nconst chat = await lingoDotDev.localizeChat(\n  [{ name: \"Alice\", text: \"Hello!\" }],\n  { sourceLocale: \"en\", targetLocale: \"es\" },\n);\n\n\u002F\u002F Translate HTML (preserves markup)\nconst html = await lingoDotDev.localizeHtml(\"\u003Ch1>Welcome\u003C\u002Fh1>\", {\n  sourceLocale: \"en\",\n  targetLocale: \"de\",\n});\n\n\u002F\u002F Detect language\nconst locale = await lingoDotDev.recognizeLocale(\"Bonjour le monde\");\n\u002F\u002F \"fr\"\n```\n\n**Available SDKs:**\n\n- [JavaScript SDK](https:\u002F\u002Flingo.dev\u002Fen\u002Fsdk\u002Fjavascript) - Web apps, Node.js\n- [PHP SDK](https:\u002F\u002Flingo.dev\u002Fen\u002Fsdk\u002Fphp) - PHP, Laravel\n- [Python SDK](https:\u002F\u002Flingo.dev\u002Fen\u002Fsdk\u002Fpython) - Django, Flask\n- [Ruby SDK](https:\u002F\u002Flingo.dev\u002Fen\u002Fsdk\u002Fruby) - Rails\n\n[Read the docs →](https:\u002F\u002Flingo.dev\u002Fen\u002Fsdk)\n\n---\n\n### Lingo.dev Compiler\n\nTraditional i18n is invasive. You wrap every string in `t()` functions, invent translation keys (`home.hero.title.v2`), maintain parallel JSON files, and watch your components bloat with localization boilerplate. It's so tedious that teams delay internationalization until it becomes a massive refactor.\n\nLingo.dev Compiler eliminates the ceremony. Write React components with plain English text. The compiler detects translatable strings at build time and generates localized variants automatically. No keys, no JSON files, no wrapper functions - just React code that happens to work in multiple languages.\n\n**Installation:**\n\n```bash\npnpm install @lingo.dev\u002Fcompiler\n```\n\n**Authentication:**\n\n```bash\n# Recommended: Sign up at lingo.dev and login\nnpx lingo.dev@latest login\n\n# Alternative: Add API key to .env\nLINGODOTDEV_API_KEY=your_key_here\n\n# Or use direct LLM providers (Groq, OpenAI, Anthropic, Google)\nGROQ_API_KEY=your_key\n```\n\n**Configuration (Next.js):**\n\n```ts\n\u002F\u002F next.config.ts\nimport type { NextConfig } from \"next\";\nimport { withLingo } from \"@lingo.dev\u002Fcompiler\u002Fnext\";\n\nconst nextConfig: NextConfig = {};\n\nexport default async function (): Promise\u003CNextConfig> {\n  return await withLingo(nextConfig, {\n    sourceRoot: \".\u002Fapp\",\n    sourceLocale: \"en\",\n    targetLocales: [\"es\", \"fr\", \"de\"],\n    models: \"lingo.dev\",\n    dev: { usePseudotranslator: true },\n  });\n}\n```\n\n**Configuration (Vite):**\n\n```ts\n\u002F\u002F vite.config.ts\nimport { lingoCompilerPlugin } from \"@lingo.dev\u002Fcompiler\u002Fvite\";\n\nexport default defineConfig({\n  plugins: [\n    lingoCompilerPlugin({\n      sourceRoot: \"src\",\n      sourceLocale: \"en\",\n      targetLocales: [\"es\", \"fr\", \"de\"],\n      models: \"lingo.dev\",\n      dev: { usePseudotranslator: true },\n    }),\n    react(),\n  ],\n});\n```\n\n**Provider setup:**\n\n```tsx\n\u002F\u002F app\u002Flayout.tsx (Next.js)\nimport { LingoProvider } from \"@lingo.dev\u002Fcompiler\u002Freact\";\n\nexport default function RootLayout({ children }) {\n  return (\n    \u003CLingoProvider>\n      \u003Chtml>\n        \u003Cbody>{children}\u003C\u002Fbody>\n      \u003C\u002Fhtml>\n    \u003C\u002FLingoProvider>\n  );\n}\n```\n\n**Language switcher:**\n\n```tsx\nimport { useLocale, setLocale } from \"@lingo.dev\u002Fcompiler\u002Freact\";\n\nexport function LanguageSwitcher() {\n  const locale = useLocale();\n  return (\n    \u003Cselect value={locale} onChange={(e) => setLocale(e.target.value)}>\n      \u003Coption value=\"en\">English\u003C\u002Foption>\n      \u003Coption value=\"es\">Español\u003C\u002Foption>\n    \u003C\u002Fselect>\n  );\n}\n```\n\n**Development:** `npm run dev` (uses pseudotranslator, no API calls)\n\n**Production:** Set `usePseudotranslator: false`, then `next build`\n\nCommit the `.lingo\u002F` directory to version control.\n\n**Key features:**\n\n- Zero runtime performance cost\n- No translation keys or JSON files\n- No `t()` functions or `\u003CT>` wrapper components\n- Automatic detection of translatable text in JSX\n- TypeScript support\n- ICU MessageFormat for plurals\n- Manual overrides via `data-lingo-override` attribute\n- Built-in translation editor widget\n\n**Build modes:**\n\n- `pseudotranslator`: Development mode with placeholder translations (no API costs)\n- `real`: Generate actual translations using LLMs\n- `cache-only`: Production mode using pre-generated translations from CI (no API calls)\n\n**Supported frameworks:**\n\n- Next.js (App Router with React Server Components)\n- Vite + React (SPA and SSR)\n\nAdditional framework support planned.\n\n[Read the docs →](https:\u002F\u002Flingo.dev\u002Fen\u002Fcompiler)\n\n---\n\n## Contributing\n\nContributions welcome. Please follow these guidelines:\n\n1. **Issues:** [Report bugs or request features](https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev\u002Fissues)\n2. **Pull Requests:** [Submit changes](https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev\u002Fpulls)\n   - Every PR requires a changeset: `pnpm new` (or `pnpm new:empty` for non-release changes)\n   - Ensure tests pass before submitting\n3. **Development:** This is a pnpm + turborepo monorepo\n   - Install dependencies: `pnpm install`\n   - Run tests: `pnpm test`\n   - Build: `pnpm build`\n\n**Support:** [Discord community](https:\u002F\u002Flingo.dev\u002Fgo\u002Fdiscord)\n\n## Star History\n\nIf you find Lingo.dev useful, give us a star and help us reach 10,000 stars!\n\n[![Star History Chart](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flingodotdev_lingo.dev_readme_349c71efdf2f.png)](https:\u002F\u002Fwww.star-history.com\u002F#lingodotdev\u002Flingo.dev&Date)\n\n## Localized Documentation\n\n**Available translations:**\n\n[English](https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev) • [中文](\u002Freadme\u002Fzh-Hans.md) • [日本語](\u002Freadme\u002Fja.md) • [한국어](\u002Freadme\u002Fko.md) • [Español](\u002Freadme\u002Fes.md) • [Français](\u002Freadme\u002Ffr.md) • [Русский](\u002Freadme\u002Fru.md) • [Українська](\u002Freadme\u002Fuk-UA.md) • [Deutsch](\u002Freadme\u002Fde.md) • [Italiano](\u002Freadme\u002Fit.md) • [العربية](\u002Freadme\u002Far.md) • [עברית](\u002Freadme\u002Fhe.md) • [हिन्दी](\u002Freadme\u002Fhi.md) • [Português (Brasil)](\u002Freadme\u002Fpt-BR.md) • [বাংলা](\u002Freadme\u002Fbn.md) • [فارسی](\u002Freadme\u002Ffa.md) • [Polski](\u002Freadme\u002Fpl.md) • [Türkçe](\u002Freadme\u002Ftr.md) • [اردو](\u002Freadme\u002Fur.md) • [भोजपुरी](\u002Freadme\u002Fbho.md) • [অসমীয়া](\u002Freadme\u002Fas-IN.md) • [ગુજરાતી](\u002Freadme\u002Fgu-IN.md) • [मराठी](\u002Freadme\u002Fmr-IN.md) • [ଓଡ଼ିଆ](\u002Freadme\u002For-IN.md) • [ਪੰਜਾਬੀ](\u002Freadme\u002Fpa-IN.md) • [සිංහල](\u002Freadme\u002Fsi-LK.md) • [தமிழ்](\u002Freadme\u002Fta-IN.md) • [తెలుగు](\u002Freadme\u002Fte-IN.md)\n\n**Adding a new language:**\n\n1. Add locale code to [`i18n.json`](.\u002Fi18n.json) using [BCP-47 format](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FJavaScript\u002FReference\u002FGlobal_Objects\u002FIntl\u002FLocale)\n2. Submit a pull request\n\n**BCP-47 locale format:** `language[-Script][-REGION]`\n\n- `language`: ISO 639-1\u002F2\u002F3 (lowercase): `en`, `zh`, `bho`\n- `Script`: ISO 15924 (title case): `Hans`, `Hant`, `Latn`\n- `REGION`: ISO 3166-1 alpha-2 (uppercase): `US`, `CN`, `IN`\n- Examples: `en`, `pt-BR`, `zh-Hans`, `sr-Cyrl-RS`\n","\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Flingo.dev\">\n    \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flingodotdev_lingo.dev_readme_5773e3a86979.png\" width=\"100%\" alt=\"Lingo.dev\" \u002F>\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cstrong>Lingo.dev - 面向 LLM 驱动的本地化的开源 i18n 工具包\u003C\u002Fstrong>\n\u003C\u002Fp>\n\n\u003Cbr \u002F>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"#lingodev-mcp\">MCP\u003C\u002Fa> •\n  \u003Ca href=\"#lingodev-cli\">CLI\u003C\u002Fa> •\n  \u003Ca href=\"#lingodev-cicd\">CI\u002FCD\u003C\u002Fa> •\n  \u003Ca href=\"#lingodev-sdk\">SDK\u003C\u002Fa> •\n  \u003Ca href=\"#lingodev-compiler\">编译器\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev\u002Factions\u002Fworkflows\u002Frelease.yml\">\n    \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev\u002Factions\u002Fworkflows\u002Frelease.yml\u002Fbadge.svg\" alt=\"Release\" \u002F>\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev\u002Fblob\u002Fmain\u002FLICENSE.md\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Flingodotdev\u002Flingo.dev\" alt=\"License\" \u002F>\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev\u002Fcommits\u002Fmain\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flast-commit\u002Flingodotdev\u002Flingo.dev\" alt=\"Last Commit\" \u002F>\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Flingo.dev\u002Fen\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FProduct%20Hunt-%231%20DevTool%20of%20the%20Month-orange?logo=producthunt&style=flat-square\" alt=\"Product Hunt #1 DevTool of the Month\" \u002F>\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Flingo.dev\u002Fen\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FProduct%20Hunt-%231%20Product%20of%20the%20Week-orange?logo=producthunt&style=flat-square\" alt=\"Product Hunt #1 Product of the Week\" \u002F>\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Flingo.dev\u002Fen\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FProduct%20Hunt-%232%20Product%20of%20the%20Day-orange?logo=producthunt&style=flat-square\" alt=\"Product Hunt #2 Product of the Day\" \u002F>\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Flingo.dev\u002Fen\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FGitHub-Trending-blue?logo=github&style=flat-square\" alt=\"Github trending\" \u002F>\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\n---\n\n## 快速开始\n\n| 工具                               | 使用场景                                            | 快速命令                      |\n| ---------------------------------- | --------------------------------------------------- | ---------------------------------- |\n| [**MCP**](#lingodev-mcp)           | React 应用的 AI 辅助 i18n 设置               | 提示词: `Set up i18n`              |\n| [**CLI**](#lingodev-cli)           | 翻译 JSON、YAML、markdown、CSV、PO 文件       | `npx lingo.dev@latest run`         |\n| [**CI\u002FCD**](#lingodev-cicd)        | GitHub Actions 中的自动化翻译管道    | `uses: lingodotdev\u002Flingo.dev@main` |\n| [**SDK**](#lingodev-sdk)           | 动态内容的运行时翻译             | `npm install lingo.dev`            |\n| [**编译器**](#lingodev-compiler) | 无需 i18n 包装器的构建时 React 本地化 | `withLingo()` 插件               |\n\n---\n\n### Lingo.dev MCP\n\n在 React 应用中设置 i18n 是出了名的容易出错——即使对于经验丰富的开发者也是如此。AI 编码助手让情况变得更糟：它们会幻想出不存在的 API、忘记中间件配置、破坏路由，或者在迷失方向之前只实现了一半的解决方案。问题在于 i18n 设置需要在多个文件（路由、中间件、组件、配置）中进行一系列精确协调的更改，而 LLM 难以维持这种上下文。\n\nLingo.dev MCP 通过为 AI 助手提供对特定框架 i18n 知识的结构化访问来解决这个问题。您的助手无需猜测，而是遵循针对 Next.js、React Router 和 TanStack Start 的经过验证的实现模式。\n\n**支持的 IDE:**\n\n- Claude Code\n- Cursor\n- GitHub Copilot Agents\n- Codex (OpenAI)\n\n**支持的框架:**\n\n- Next.js (App Router & Pages Router v13-16)\n- TanStack Start (v1)\n- React Router (v7)\n\n**用法:**\n\n在您的 IDE 中配置好 MCP 服务器后（[查看快速入门指南](https:\u002F\u002Flingo.dev\u002Fen\u002Fmcp)），向您的助手发出提示：\n\n```\nSet up i18n with the following locales: en, es, and pt-BR. The default locale is 'en'.\n```\n\n助手将：\n\n1.  配置基于区域设置的路由（例如，`\u002Fen`、`\u002Fes`、`\u002Fpt-BR`）\n2.  设置语言切换组件\n3.  实现自动区域设置检测\n4.  生成必要的配置文件\n\n**注意：** AI 辅助的代码生成具有不确定性。提交前请审查生成的代码。\n\n[阅读文档 →](https:\u002F\u002Flingo.dev\u002Fen\u002Fmcp)\n\n---\n\n### Lingo.dev CLI\n\n保持翻译同步是件繁琐的事。您添加了一个新字符串，忘记翻译它，然后将损坏的 UI 交付给国际用户。或者您将 JSON 文件发送给翻译人员，等待数天，然后手动合并他们的工作。扩展到 10 多种语言意味着管理数百个不断失去同步的文件。\n\nLingo.dev CLI 自动化了此过程。将其指向您的翻译文件，运行一个命令，每个区域设置都会更新。一个锁文件跟踪已翻译的内容，因此您只需为新内容或更改的内容付费。支持 JSON、YAML、CSV、PO 文件和 markdown。\n\n**设置:**\n\n```bash\n# 初始化项目\nnpx lingo.dev@latest init\n\n# 运行翻译\nnpx lingo.dev@latest run\n```\n\n**工作原理:**\n\n1.  从配置的文件中提取可翻译内容\n2.  将内容发送给 LLM 提供商进行翻译\n3.  将翻译后的内容写回文件系统\n4.  创建 `i18n.lock` 文件以跟踪已完成的翻译（避免冗余处理）\n\n**配置:**\n\n`init` 命令会生成一个 `i18n.json` 文件。配置区域设置和存储桶：\n\n```json\n{\n  \"$schema\": \"https:\u002F\u002Flingo.dev\u002Fschema\u002Fi18n.json\",\n  \"version\": \"1.10\",\n  \"locale\": {\n    \"source\": \"en\",\n    \"targets\": [\"es\", \"fr\", \"de\"]\n  },\n  \"buckets\": {\n    \"json\": {\n      \"include\": [\"locales\u002F[locale].json\"]\n    }\n  }\n}\n```\n\n`provider` 字段是可选的（默认为 Lingo.dev Engine）。对于自定义 LLM 提供商：\n\n```json\n{\n  \"provider\": {\n    \"id\": \"openai\",\n    \"model\": \"gpt-4o-mini\",\n    \"prompt\": \"Translate from {source} to {target}\"\n  }\n}\n```\n\n**支持的 LLM 提供商:**\n\n- Lingo.dev Engine (推荐)\n- OpenAI\n- Anthropic\n- Google\n- Mistral\n- OpenRouter\n- Ollama\n\n[阅读文档 →](https:\u002F\u002Flingo.dev\u002Fen\u002Fcli)\n\n---\n\n### Lingo.dev CI\u002FCD\n\n翻译功能总是处于“即将完成”的状态。工程师合并代码时常常忘记更新本地化文件。质量保证（Quality Assurance，简称 QA）在预发布环境发现缺失的翻译——更糟的是，用户在生产环境中发现了它们。根本原因在于：翻译是一个手动步骤，在截止日期的压力下很容易被跳过。\n\nLingo.dev CI\u002FCD 让翻译自动化。每次推送代码都会触发翻译。缺失的字符串在代码进入生产环境之前就会被填充。无需强制纪律——流水线会处理一切。\n\n**支持的平台：**\n\n- GitHub Actions\n- GitLab CI\u002FCD\n- Bitbucket Pipelines\n\n**GitHub Actions 设置：**\n\n创建 `.github\u002Fworkflows\u002Ftranslate.yml` 文件：\n\n```yaml\nname: Translate\non:\n  push:\n    branches: [main]\npermissions:\n  contents: write\njobs:\n  translate:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions\u002Fcheckout@v4\n      - name: Lingo.dev\n        uses: lingodotdev\u002Flingo.dev@main\n        with:\n          api-key: ${{ secrets.LINGODOTDEV_API_KEY }}\n```\n\n**设置要求：**\n\n1.  将 `LINGODOTDEV_API_KEY` 添加到仓库的 Secrets 中（设置 > Secrets and variables > Actions）\n2.  对于 PR 工作流：在 设置 > Actions > General 中启用 \"Allow GitHub Actions to create and approve pull requests\"\n\n**工作流选项：**\n\n直接提交翻译：\n\n```yaml\nuses: lingodotdev\u002Flingo.dev@main\nwith:\n  api-key: ${{ secrets.LINGODOTDEV_API_KEY }}\n```\n\n创建包含翻译的拉取请求（Pull Request，简称 PR）：\n\n```yaml\nuses: lingodotdev\u002Flingo.dev@main\nwith:\n  api-key: ${{ secrets.LINGODOTDEV_API_KEY }}\n  pull-request: true\nenv:\n  GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n```\n\n**可用输入参数：**\n\n| 输入参数               | 默认值                                         | 描述                                 |\n| ---------------------- | ---------------------------------------------- | ------------------------------------ |\n| `api-key`              | (必填)                                         | Lingo.dev API 密钥                   |\n| `pull-request`         | `false`                                        | 创建 PR 而非直接提交                 |\n| `commit-message`       | `\"feat: update translations via @LingoDotDev\"` | 自定义提交信息                       |\n| `pull-request-title`   | `\"feat: update translations via @LingoDotDev\"` | 自定义 PR 标题                       |\n| `working-directory`    | `\".\"`                                          | 运行目录                             |\n| `parallel`             | `false`                                        | 启用并行处理                         |\n\n[阅读文档 →](https:\u002F\u002Flingo.dev\u002Fen\u002Fci\u002Fgithub)\n\n---\n\n### Lingo.dev SDK\n\n静态翻译文件适用于 UI 标签，但用户生成的内容呢？聊天消息、产品描述、支持工单——这些在构建时不存在的内容无法预先翻译。你只能显示未翻译的文本，或者构建一个自定义的翻译管道。\n\nLingo.dev SDK 在运行时翻译内容。传入任何文本、对象或 HTML，即可获得本地化版本。适用于实时聊天、动态通知或任何在部署后到达的内容。支持 JavaScript、PHP、Python 和 Ruby。\n\n**安装：**\n\n```bash\nnpm install lingo.dev\n```\n\n**用法：**\n\n```ts\nimport { LingoDotDevEngine } from \"lingo.dev\u002Fsdk\";\n\nconst lingoDotDev = new LingoDotDevEngine({\n  apiKey: process.env.LINGODOTDEV_API_KEY,\n});\n\n\u002F\u002F 翻译对象（保留结构）\nconst translated = await lingoDotDev.localizeObject(\n  { greeting: \"Hello\", farewell: \"Goodbye\" },\n  { sourceLocale: \"en\", targetLocale: \"es\" },\n);\n\u002F\u002F { greeting: \"Hola\", farewell: \"Adiós\" }\n\n\u002F\u002F 翻译文本\nconst text = await lingoDotDev.localizeText(\"Hello!\", {\n  sourceLocale: \"en\",\n  targetLocale: \"fr\",\n});\n\n\u002F\u002F 同时翻译成多种语言\nconst results = await lingoDotDev.batchLocalizeText(\"Hello!\", {\n  sourceLocale: \"en\",\n  targetLocales: [\"es\", \"fr\", \"de\"],\n});\n\n\u002F\u002F 翻译聊天记录（保留说话者姓名）\nconst chat = await lingoDotDev.localizeChat(\n  [{ name: \"Alice\", text: \"Hello!\" }],\n  { sourceLocale: \"en\", targetLocale: \"es\" },\n);\n\n\u002F\u002F 翻译 HTML（保留标记）\nconst html = await lingoDotDev.localizeHtml(\"\u003Ch1>Welcome\u003C\u002Fh1>\", {\n  sourceLocale: \"en\",\n  targetLocale: \"de\",\n});\n\n\u002F\u002F 检测语言\nconst locale = await lingoDotDev.recognizeLocale(\"Bonjour le monde\");\n\u002F\u002F \"fr\"\n```\n\n**可用的 SDK：**\n\n-   [JavaScript SDK](https:\u002F\u002Flingo.dev\u002Fen\u002Fsdk\u002Fjavascript) - Web 应用，Node.js\n-   [PHP SDK](https:\u002F\u002Flingo.dev\u002Fen\u002Fsdk\u002Fphp) - PHP, Laravel\n-   [Python SDK](https:\u002F\u002Flingo.dev\u002Fen\u002Fsdk\u002Fpython) - Django, Flask\n-   [Ruby SDK](https:\u002F\u002Flingo.dev\u002Fen\u002Fsdk\u002Fruby) - Rails\n\n[阅读文档 →](https:\u002F\u002Flingo.dev\u002Fen\u002Fsdk)\n\n---\n\n### Lingo.dev 编译器\n\n传统的国际化（i18n）方案侵入性强。你需要用 `t()` 函数包装每个字符串，发明翻译键（如 `home.hero.title.v2`），维护并行的 JSON 文件，并看着你的组件因本地化样板代码而膨胀。这非常繁琐，以至于团队常常将国际化工作推迟，直到它变成一次大规模重构。\n\nLingo.dev 编译器消除了这些繁文缛节。用纯英文文本编写 React 组件。编译器在构建时检测可翻译的字符串，并自动生成本地化变体。无需翻译键，无需 JSON 文件，无需包装函数——只需编写恰好能支持多语言的 React 代码。\n\n**安装：**\n\n```bash\npnpm install @lingo.dev\u002Fcompiler\n```\n\n**认证：**\n\n```bash\n# 推荐：在 lingo.dev 注册并登录\nnpx lingo.dev@latest login\n\n# 备选：将 API 密钥添加到 .env 文件\nLINGODOTDEV_API_KEY=your_key_here\n```\n\n# Lingo.dev\n\n[![npm version](https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fv\u002F@lingo.dev\u002Fcompiler?label=%40lingo.dev%2Fcompiler)](https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F@lingo.dev\u002Fcompiler)\n[![Discord](https:\u002F\u002Fimg.shields.io\u002Fdiscord\u002F1280214197273497640?logo=discord&label=Discord)](https:\u002F\u002Flingo.dev\u002Fgo\u002Fdiscord)\n\nLingo 是一个编译器，可将你的 React 应用自动翻译成多种语言。它直接在构建时处理翻译，因此你的应用在运行时无需承担任何翻译开销。\n\n## 工作原理\n\n1. **检测**：Lingo 在构建时扫描你的代码，自动识别 JSX 中的所有可翻译文本\n2. **翻译**：使用大型语言模型（LLM）将文本翻译成目标语言\n3. **编译**：为每种语言生成独立的、完全本地化的构建版本\n\n## 快速开始\n\n**安装：**\n\n```bash\nnpm install @lingo.dev\u002Fcompiler\n```\n\n**环境变量：**\n\n```bash\n# 使用 Lingo.dev 托管的模型（推荐）\nLINGO_API_KEY=your_key\n\n# 或使用直接的 LLM 提供商（Groq、OpenAI、Anthropic、Google）\nGROQ_API_KEY=your_key\n```\n\n**配置（Next.js）：**\n\n```ts\n\u002F\u002F next.config.ts\nimport type { NextConfig } from \"next\";\nimport { withLingo } from \"@lingo.dev\u002Fcompiler\u002Fnext\";\n\nconst nextConfig: NextConfig = {};\n\nexport default async function (): Promise\u003CNextConfig> {\n  return await withLingo(nextConfig, {\n    sourceRoot: \".\u002Fapp\",\n    sourceLocale: \"en\",\n    targetLocales: [\"es\", \"fr\", \"de\"],\n    models: \"lingo.dev\",\n    dev: { usePseudotranslator: true },\n  });\n}\n```\n\n**配置（Vite）：**\n\n```ts\n\u002F\u002F vite.config.ts\nimport { lingoCompilerPlugin } from \"@lingo.dev\u002Fcompiler\u002Fvite\";\n\nexport default defineConfig({\n  plugins: [\n    lingoCompilerPlugin({\n      sourceRoot: \"src\",\n      sourceLocale: \"en\",\n      targetLocales: [\"es\", \"fr\", \"de\"],\n      models: \"lingo.dev\",\n      dev: { usePseudotranslator: true },\n    }),\n    react(),\n  ],\n});\n```\n\n**Provider 设置：**\n\n```tsx\n\u002F\u002F app\u002Flayout.tsx (Next.js)\nimport { LingoProvider } from \"@lingo.dev\u002Fcompiler\u002Freact\";\n\nexport default function RootLayout({ children }) {\n  return (\n    \u003CLingoProvider>\n      \u003Chtml>\n        \u003Cbody>{children}\u003C\u002Fbody>\n      \u003C\u002Fhtml>\n    \u003C\u002FLingoProvider>\n  );\n}\n```\n\n**语言切换器：**\n\n```tsx\nimport { useLocale, setLocale } from \"@lingo.dev\u002Fcompiler\u002Freact\";\n\nexport function LanguageSwitcher() {\n  const locale = useLocale();\n  return (\n    \u003Cselect value={locale} onChange={(e) => setLocale(e.target.value)}>\n      \u003Coption value=\"en\">English\u003C\u002Foption>\n      \u003Coption value=\"es\">Español\u003C\u002Foption>\n    \u003C\u002Fselect>\n  );\n}\n```\n\n**开发：** `npm run dev`（使用伪翻译器，无 API 调用）\n\n**生产：** 设置 `usePseudotranslator: false`，然后执行 `next build`\n\n将 `.lingo\u002F` 目录提交到版本控制。\n\n**主要特性：**\n\n- 零运行时性能开销\n- 无需翻译键或 JSON 文件\n- 无需 `t()` 函数或 `\u003CT>` 包装组件\n- 自动检测 JSX 中的可翻译文本\n- TypeScript 支持\n- 用于复数的 ICU MessageFormat\n- 通过 `data-lingo-override` 属性进行手动覆盖\n- 内置翻译编辑器小部件\n\n**构建模式：**\n\n- `pseudotranslator`：使用占位符翻译的开发模式（无 API 成本）\n- `real`：使用 LLM 生成实际翻译\n- `cache-only`：使用 CI 中预生成翻译的生产模式（无 API 调用）\n\n**支持的框架：**\n\n- Next.js（使用 React 服务器组件的 App Router）\n- Vite + React（SPA 和 SSR）\n\n计划支持更多框架。\n\n[阅读文档 →](https:\u002F\u002Flingo.dev\u002Fen\u002Fcompiler)\n\n---\n\n## 贡献\n\n欢迎贡献。请遵循以下指南：\n\n1. **问题：** [报告错误或请求功能](https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev\u002Fissues)\n2. **拉取请求：** [提交更改](https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev\u002Fpulls)\n   - 每个 PR 都需要一个变更集：`pnpm new`（或对于非发布更改使用 `pnpm new:empty`）\n   - 提交前确保测试通过\n3. **开发：** 这是一个 pnpm + turborepo 单体仓库\n   - 安装依赖：`pnpm install`\n   - 运行测试：`pnpm test`\n   - 构建：`pnpm build`\n\n**支持：** [Discord 社区](https:\u002F\u002Flingo.dev\u002Fgo\u002Fdiscord)\n\n## Star 历史\n\n如果你觉得 Lingo.dev 有用，请给我们一个 star，帮助我们达到 10,000 个 star！\n\n[![Star History Chart](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flingodotdev_lingo.dev_readme_349c71efdf2f.png)](https:\u002F\u002Fwww.star-history.com\u002F#lingodotdev\u002Flingo.dev&Date)\n\n## 本地化文档\n\n**可用翻译：**\n\n[English](https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev) • [中文](\u002Freadme\u002Fzh-Hans.md) • [日本語](\u002Freadme\u002Fja.md) • [한국어](\u002Freadme\u002Fko.md) • [Español](\u002Freadme\u002Fes.md) • [Français](\u002Freadme\u002Ffr.md) • [Русский](\u002Freadme\u002Fru.md) • [Українська](\u002Freadme\u002Fuk-UA.md) • [Deutsch](\u002Freadme\u002Fde.md) • [Italiano](\u002Freadme\u002Fit.md) • [العربية](\u002Freadme\u002Far.md) • [עברית](\u002Freadme\u002Fhe.md) • [हिन्दी](\u002Freadme\u002Fhi.md) • [Português (Brasil)](\u002Freadme\u002Fpt-BR.md) • [বাংলা](\u002Freadme\u002Fbn.md) • [فارسی](\u002Freadme\u002Ffa.md) • [Polski](\u002Freadme\u002Fpl.md) • [Türkçe](\u002Freadme\u002Ftr.md) • [اردو](\u002Freadme\u002Fur.md) • [भोजपुरी](\u002Freadme\u002Fbho.md) • [অসমীয়া](\u002Freadme\u002Fas-IN.md) • [ગુજરાતી](\u002Freadme\u002Fgu-IN.md) • [मराठी](\u002Freadme\u002Fmr-IN.md) • [ଓଡ଼ିଆ](\u002Freadme\u002For-IN.md) • [ਪੰਜਾਬੀ](\u002Freadme\u002Fpa-IN.md) • [සිංහල](\u002Freadme\u002Fsi-LK.md) • [தமிழ்](\u002Freadme\u002Fta-IN.md) • [తెలుగు](\u002Freadme\u002Fte-IN.md)\n\n**添加新语言：**\n\n1. 使用 [BCP-47 格式](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FJavaScript\u002FReference\u002FGlobal_Objects\u002FIntl\u002FLocale)将语言环境代码添加到 [`i18n.json`](.\u002Fi18n.json)\n2. 提交拉取请求\n\n**BCP-47 语言环境格式：** `语言[-脚本][-区域]`\n\n- `语言`：ISO 639-1\u002F2\u002F3（小写）：`en`、`zh`、`bho`\n- `脚本`：ISO 15924（首字母大写）：`Hans`、`Hant`、`Latn`\n- `区域`：ISO 3166-1 alpha-2（大写）：`US`、`CN`、`IN`\n- 示例：`en`、`pt-BR`、`zh-Hans`、`sr-Cyrl-RS`","# Lingo.dev 快速上手指南\n\nLingo.dev 是一个开源的 AI 驱动国际化（i18n）工具包，提供 MCP、CLI、CI\u002FCD、SDK 和编译器等多种工具，帮助开发者高效实现多语言本地化。\n\n## 环境准备\n\n### 系统要求\n- **Node.js**: 版本 18 或更高\n- **包管理器**: npm、yarn、pnpm 或 bun\n- **Git**: 用于版本控制\n- **IDE**: 支持 Claude Code、Cursor、GitHub Copilot Agents 或 Codex（如需使用 MCP 功能）\n\n### 前置依赖\n- 一个可用的 LLM 服务 API 密钥（可选，可使用 Lingo.dev 默认引擎）\n- 对于 CI\u002FCD 使用：需要 GitHub、GitLab 或 Bitbucket 账户\n\n## 安装步骤\n\n### 方式一：CLI 工具（推荐）\n```bash\n# 全局安装 CLI\nnpm install -g lingo.dev@latest\n\n# 或使用 npx 直接运行\nnpx lingo.dev@latest init\n```\n\n### 方式二：SDK（用于运行时翻译）\n```bash\n# 在项目中安装 SDK\nnpm install lingo.dev\n```\n\n### 方式三：编译器（用于 React 应用）\n```bash\n# 安装编译器\npnpm install @lingo.dev\u002Fcompiler\n```\n\n### 方式四：CI\u002FCD（GitHub Actions）\n在 `.github\u002Fworkflows\u002Ftranslate.yml` 中添加：\n```yaml\n- name: Lingo.dev\n  uses: lingodotdev\u002Flingo.dev@main\n```\n\n## 基本使用\n\n### 1. CLI 快速开始\n```bash\n# 1. 初始化项目配置\nnpx lingo.dev@latest init\n\n# 2. 编辑生成的 i18n.json 文件\n# 配置源语言和目标语言\n\n# 3. 运行翻译\nnpx lingo.dev@latest run\n```\n\n**配置示例** (`i18n.json`)：\n```json\n{\n  \"$schema\": \"https:\u002F\u002Flingo.dev\u002Fschema\u002Fi18n.json\",\n  \"version\": \"1.10\",\n  \"locale\": {\n    \"source\": \"zh-CN\",\n    \"targets\": [\"en\", \"ja\", \"ko\"]\n  },\n  \"buckets\": {\n    \"json\": {\n      \"include\": [\"locales\u002F[locale].json\"]\n    }\n  }\n}\n```\n\n### 2. MCP 使用（AI 辅助）\n在支持的 IDE 中配置 MCP 服务器后，直接向 AI 助手输入：\n```\n为我的 React 应用设置国际化，支持以下语言：zh-CN, en, ja。默认语言是 'zh-CN'。\n```\n\nAI 助手将自动：\n- 配置基于语言的路由\n- 设置语言切换组件\n- 实现自动语言检测\n- 生成必要的配置文件\n\n### 3. SDK 基本示例\n```javascript\nimport { LingoDotDevEngine } from \"lingo.dev\u002Fsdk\";\n\nconst lingoDotDev = new LingoDotDevEngine({\n  apiKey: process.env.LINGODOTDEV_API_KEY,\n});\n\n\u002F\u002F 翻译文本\nconst translated = await lingoDotDev.localizeText(\"你好，世界！\", {\n  sourceLocale: \"zh-CN\",\n  targetLocale: \"en\",\n});\n\u002F\u002F 输出: \"Hello, world!\"\n```\n\n### 4. 编译器集成（Next.js）\n```typescript\n\u002F\u002F next.config.ts\nimport type { NextConfig } from \"next\";\nimport { withLingo } from \"@lingo.dev\u002Fcompiler\u002Fnext\";\n\nconst nextConfig: NextConfig = {};\n\nexport default async function (): Promise\u003CNextConfig> {\n  return await withLingo(nextConfig, {\n    sourceRoot: \".\u002Fapp\",\n    sourceLocale: \"zh-CN\",\n    targetLocales: [\"en\", \"ja\"],\n  });\n}\n```\n\n### 5. CI\u002FCD 自动化\n创建 GitHub Actions 工作流文件 `.github\u002Fworkflows\u002Ftranslate.yml`：\n```yaml\nname: Translate\non:\n  push:\n    branches: [main]\npermissions:\n  contents: write\njobs:\n  translate:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions\u002Fcheckout@v4\n      - name: Lingo.dev\n        uses: lingodotdev\u002Flingo.dev@main\n        with:\n          api-key: ${{ secrets.LINGODOTDEV_API_KEY }}\n```\n\n## 下一步\n- 访问 [官方文档](https:\u002F\u002Flingo.dev\u002Fen) 获取详细指南\n- 查看各工具的专属文档部分：\n  - [MCP 文档](https:\u002F\u002Flingo.dev\u002Fen\u002Fmcp)\n  - [CLI 文档](https:\u002F\u002Flingo.dev\u002Fen\u002Fcli)\n  - [CI\u002FCD 文档](https:\u002F\u002Flingo.dev\u002Fen\u002Fci\u002Fgithub)\n  - [SDK 文档](https:\u002F\u002Flingo.dev\u002Fen\u002Fsdk)\n  - [编译器文档](https:\u002F\u002Flingo.dev\u002Fen\u002Fcompiler)\n\n**提示**：首次使用建议从 CLI 开始，熟悉基本流程后再集成到开发工作流中。","**场景背景**：一个三人前端团队正在开发一款面向全球用户的电商 SaaS 平台，产品经理要求在两周内为仪表盘新增多语言支持，涵盖英语、西班牙语和日语。团队使用 Next.js App Router，但此前项目没有国际化（i18n）基础。\n\n### 没有 lingo.dev 时\n- **手动配置繁琐易错**：开发者需要手动研究并配置 `next-intl` 或 `react-i18next` 的中间件、路由结构、语言检测逻辑，一个步骤出错就可能导致页面白屏或路由混乱，耗费大量调试时间。\n- **翻译管理混乱**：团队成员在 JSON 文件中各自添加翻译键值，缺乏统一规范，经常出现键名冲突、漏翻译或格式不一致的问题，合并代码时冲突频发。\n- **AI 助手“幻觉”误导**：当尝试让 Claude 或 Copilot 协助编写 i18n 设置时，AI 经常推荐过时的 API 或虚构的配置项，开发者需要花费大量精力验证和修正，反而降低了效率。\n- **动态内容翻译无解**：对于从后端 API 实时获取的产品名称、促销文案等动态内容，团队没有成熟的运行时翻译方案，只能临时拼接字符串，导致用户体验割裂。\n\n### 使用 lingo.dev 后\n- **MCP 提供精准引导**：在 IDE 中直接提示“Set up i18n with locales: en, es, ja”，lingo.dev 的 MCP 服务器为 AI 助手提供了经过验证的 Next.js i18n 模式，自动生成正确的中间件、路由配置和组件包装代码，一次成功运行。\n- **CLI 统一翻译流程**：开发者通过 `npx lingo.dev run` 命令，即可用 LLM 批量翻译或校对项目中的所有 JSON、YAML 文件，确保术语一致，并将翻译文件自动归集到标准化目录，减少了人为失误。\n- **CI\u002FCD 自动化质量检查**：在 GitHub Actions 中集成 lingo.dev 工作流，每次提交代码时自动检查翻译覆盖率、键名一致性，并标记未翻译内容，使翻译状态对团队透明。\n- **SDK 处理动态内容**：在需要渲染后端数据的 React 组件中，引入 `lingo.dev` SDK，调用其 `translate` 函数即可实时翻译动态文本，并利用缓存机制保证性能，实现了静态与动态内容的统一国际化处理。\n\nlingo.dev 将原本需要数天、充满不确定性的国际化工程，转化为一个由自动化工具链保障的、可预测的高效流程。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flingodotdev_lingo.dev_0aa87c5e.png","lingodotdev","Lingo.dev","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Flingodotdev_59342658.png","AI localization toolkit for web & mobile.",null,"hi@lingo.dev","https:\u002F\u002Flingo.dev","https:\u002F\u002Fgithub.com\u002Flingodotdev",[85,89,93,97,101,105,108,112,116,119],{"name":86,"color":87,"percentage":88},"TypeScript","#3178c6",86.4,{"name":90,"color":91,"percentage":92},"JavaScript","#f1e05a",8.1,{"name":94,"color":95,"percentage":96},"HTML","#e34c26",2.8,{"name":98,"color":99,"percentage":100},"Vue","#41b883",0.9,{"name":102,"color":103,"percentage":104},"Python","#3572A5",0.5,{"name":106,"color":107,"percentage":104},"CSS","#663399",{"name":109,"color":110,"percentage":111},"Twig","#c1d026",0.4,{"name":113,"color":114,"percentage":115},"EJS","#a91e50",0.2,{"name":117,"color":118,"percentage":115},"PHP","#4F5D95",{"name":120,"color":121,"percentage":122},"MDX","#fcb32c",0.1,5412,845,"2026-04-04T14:49:38","Apache-2.0","未说明",{"notes":129,"python":127,"dependencies":130},"这是一个国际化工具包，主要包含MCP、CLI、CI\u002FCD、SDK和编译器组件，运行环境依赖具体使用场景和编程语言（JavaScript\u002FTypeScript、PHP、Python、Ruby等），而非特定的操作系统、GPU或Python版本。需要注册获取API密钥或配置LLM提供商密钥。",[127],[13,53],[133,134,135,136,137],"i18n","javascript","react","react-native","typescript","2026-03-27T02:49:30.150509","2026-04-06T05:15:17.573703",[141,146,151,156,161],{"id":142,"question_zh":143,"answer_zh":144,"source_url":145},4016,"在 Windows 11 上运行 `npx lingo.dev` 命令时，为何会打开脚本文件而不是执行命令？","这是一个特定于 Windows 环境的路径或执行问题。从版本 v127 开始，此问题已得到修复。现在，在 Windows 上，无论是 `lingo` 还是 `lingo.dev` 命令都应该可以正常工作。如果仍遇到问题，请确保你使用的是 lingo.dev@0.128.0 或更高版本。","https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev\u002Fissues\u002F1521",{"id":147,"question_zh":148,"answer_zh":149,"source_url":150},4017,"在 React Router 项目中遇到 `LingoProvider: dictionary is not provided.` 错误，如何解决？","此问题很可能已通过 PR #1054 修复。请尝试升级到较新版本的 lingo.dev（例如 0.109.2 或更高版本）并重新测试。如果问题仍然存在，请检查你的项目配置是否与官方 React Router 集成文档完全一致。","https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev\u002Fissues\u002F880",{"id":152,"question_zh":153,"answer_zh":154,"source_url":155},4018,"在 React Router v7 + Vite 项目中，Lingo.dev 编译器因 `TypeError: traverse is not a function` 而失败，怎么办？","这是一个已知的编译器错误。请首先尝试将你的 `@lingo.dev\u002Fcompiler` 包更新到最新版本。如果问题仍然存在，可以尝试在 `lingo.config.ts` 中设置 `fetchTranslationsOnServer: false` 作为一个临时解决方案。同时，请关注官方更新，该问题正在被积极修复中。","https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev\u002Fissues\u002F1636",{"id":157,"question_zh":158,"answer_zh":159,"source_url":160},4019,"如何参与 Lingo.dev 的社区贡献并获得奖励？","1. 加入我们的 [subreddit](https:\u002F\u002Fwww.reddit.com\u002Fr\u002Flingodotdev\u002F)。\n2. Fork Lingo.dev 仓库。\n3. 构建一个展示 Lingo.dev 特定功能或用例的演示应用程序。\n4. 提交一个 PR，将你的项目添加到 `\u002Fcommunity\u002F[your-app-name]` 目录中，并在 PR 标题中提及相关 Issue。\n5. 在你的演示文件夹中包含一个 README，解释应用功能、如何本地运行以及它突出了哪些 Lingo.dev 特性。\n**注意：** 在提交 PR 前，请确保你已被分配到相关的 Issue，否则 PR 可能会被自动关闭。高质量且在 Issue 发布后 24 小时内提交的作品将优先获得独家 Lingo.dev 周边奖励。","https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev\u002Fissues\u002F1761",{"id":162,"question_zh":163,"answer_zh":164,"source_url":165},4020,"提交贡献时有哪些需要注意的规则？","为了避免低质量或不当的贡献，请务必仔细阅读并遵守 [贡献者指南](https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev\u002Fblob\u002Fmain\u002FCONTRIBUTING.md)。主要规则包括：\n1. **不要**直接向一个已开放的 Issue 提交 PR，如果该 Issue 的创建者希望自己提交代码。\n2. 避免提交低质量、敷衍的 PR 仅仅为了刷贡献记录。\n3. 提交 PR 时，请使用规范的标题，提供详细的描述（包括截图或录屏），并添加 changeset。\n团队正在更新贡献指南和 PR 模板，以确保流程清晰、高效。","https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev\u002Fissues\u002F1495",[167,172,177,182,187,192,197,202,207,212,217,222,227,232,237,242,247,252,257,262],{"id":168,"version":169,"summary_zh":170,"released_at":171},103441,"@lingo.dev\u002F_sdk@0.16.2","### Patch Changes\n\n-   [#2062](https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev\u002Fpull\u002F2062) [`10e6364`](https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev\u002Fcommit\u002F10e636479046da5d53d059e539497195191a99fc) Thanks [@AndreyHirsa](https:\u002F\u002Fgithub.com\u002FAndreyHirsa)! - Migrate PostHog tracking identity from email to database user ID\n","2026-03-31T14:14:30",{"id":173,"version":174,"summary_zh":175,"released_at":176},103442,"@lingo.dev\u002F_compiler@0.12.2","### Patch Changes\n\n-   Updated dependencies \\[[`10e6364`](https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev\u002Fcommit\u002F10e636479046da5d53d059e539497195191a99fc)]:\n    -   @lingo.dev\u002F\\_sdk@0.16.2\n","2026-03-31T14:14:33",{"id":178,"version":179,"summary_zh":180,"released_at":181},103443,"lingo.dev@0.133.7","### Patch Changes\n\n-   [#2059](https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev\u002Fpull\u002F2059) [`4344399`](https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev\u002Fcommit\u002F43443996d4e6b6e4d4979bbe2aa7d5039b672d41) Thanks [@AndreyHirsa](https:\u002F\u002Fgithub.com\u002FAndreyHirsa)! - Skip undefined cues during VTT incremental batch push\n","2026-03-26T14:49:45",{"id":183,"version":184,"summary_zh":185,"released_at":186},103444,"lingo.dev@0.133.6","### Patch Changes\n\n-   [#2057](https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev\u002Fpull\u002F2057) [`abe3d2f`](https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev\u002Fcommit\u002Fabe3d2fb8b0f3356dc63f8f9d4b861de66be0da6) Thanks [@AndreyHirsa](https:\u002F\u002Fgithub.com\u002FAndreyHirsa)! - Fix VTT parser crash on files with STYLE\u002FREGION blocks\n","2026-03-26T11:02:24",{"id":188,"version":189,"summary_zh":190,"released_at":191},103445,"lingo.dev@0.133.5","### Patch Changes\n\n-   [#2049](https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev\u002Fpull\u002F2049) [`2aa4145`](https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev\u002Fcommit\u002F2aa414565c802db71367ce00b1d062dc0488ef2f) Thanks [@AndreyHirsa](https:\u002F\u002Fgithub.com\u002FAndreyHirsa)! - Fixed a bug where the CI pull request flow would ignore the existing translation branch and start from scratch, which could produce duplicate PRs when the original was merged during a concurrent run.\n","2026-03-24T09:59:43",{"id":193,"version":194,"summary_zh":195,"released_at":196},103446,"lingo.dev@0.133.4","### Patch Changes\n\n-   [#2051](https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev\u002Fpull\u002F2051) [`9991515`](https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev\u002Fcommit\u002F9991515adad3773d40791b18f2e6105235145609) Thanks [@AndreyHirsa](https:\u002F\u002Fgithub.com\u002FAndreyHirsa)! - SDK: Improved API error messages by parsing server JSON responses instead of using HTTP status text. Removed try\u002Fcatch from whoami so network errors propagate instead of being silently treated as \"not authenticated\". Deduplicated error handling into shared helpers. Removed unused workflowId parameter.\n\n    CLI: Auth failures now show specific error messages (e.g., \"Invalid API key\" vs generic \"Authentication failed\").\n\n-   Updated dependencies \\[[`9991515`](https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev\u002Fcommit\u002F9991515adad3773d40791b18f2e6105235145609)]:\n    -   @lingo.dev\u002F\\_sdk@0.16.1\n    -   @lingo.dev\u002F\\_compiler@0.12.1\n","2026-03-20T13:29:03",{"id":198,"version":199,"summary_zh":200,"released_at":201},103447,"@lingo.dev\u002F_sdk@0.16.1","### Patch Changes\n\n-   [#2051](https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev\u002Fpull\u002F2051) [`9991515`](https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev\u002Fcommit\u002F9991515adad3773d40791b18f2e6105235145609) Thanks [@AndreyHirsa](https:\u002F\u002Fgithub.com\u002FAndreyHirsa)! - SDK: Improved API error messages by parsing server JSON responses instead of using HTTP status text. Removed try\u002Fcatch from whoami so network errors propagate instead of being silently treated as \"not authenticated\". Deduplicated error handling into shared helpers. Removed unused workflowId parameter.\n\n    CLI: Auth failures now show specific error messages (e.g., \"Invalid API key\" vs generic \"Authentication failed\").\n","2026-03-20T13:28:57",{"id":203,"version":204,"summary_zh":205,"released_at":206},103448,"@lingo.dev\u002F_compiler@0.12.1","### Patch Changes\n\n-   Updated dependencies \\[[`9991515`](https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev\u002Fcommit\u002F9991515adad3773d40791b18f2e6105235145609)]:\n    -   @lingo.dev\u002F\\_sdk@0.16.1\n","2026-03-20T13:29:00",{"id":208,"version":209,"summary_zh":210,"released_at":211},103449,"lingo.dev@0.133.3","### Patch Changes\n\n-   [#2042](https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev\u002Fpull\u002F2042) [`a759e16`](https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev\u002Fcommit\u002Fa759e1653ac3adfd93af16302c0bc79138f3aaa3) Thanks [@gmpaliwal07](https:\u002F\u002Fgithub.com\u002Fgmpaliwal07)! - fix(cli): preserve terminal scrollback buffer during run command\n","2026-03-16T20:16:14",{"id":213,"version":214,"summary_zh":215,"released_at":216},103450,"lingo.dev@0.133.2","### Patch Changes\n\n-   [#2043](https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev\u002Fpull\u002F2043) [`06f4823`](https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev\u002Fcommit\u002F06f4823463496ea04e70bfa8aa7c6e076ad739b2) Thanks [@vrcprl](https:\u002F\u002Fgithub.com\u002Fvrcprl)! - fix posthog\n","2026-03-12T01:58:18",{"id":218,"version":219,"summary_zh":220,"released_at":221},103451,"lingo.dev@0.133.1","### Patch Changes\n\n-   [#2036](https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev\u002Fpull\u002F2036) [`a73abec`](https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev\u002Fcommit\u002Fa73abec7040fcc9146907861360c63bbb3223547) Thanks [@tjazsilovsek](https:\u002F\u002Fgithub.com\u002Ftjazsilovsek)! - Bump @biomejs\u002Fjs-api and @biomejs\u002Fwasm-nodejs to latest versions\n","2026-03-08T18:40:45",{"id":223,"version":224,"summary_zh":225,"released_at":226},103452,"lingo.dev@0.133.0","### Minor Changes\n\n-   [#2035](https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev\u002Fpull\u002F2035) [`73a8c73`](https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev\u002Fcommit\u002F73a8c731f5af03db9c165000e87ee5e5a1086a48) Thanks [@AndreyHirsa](https:\u002F\u002Fgithub.com\u002FAndreyHirsa)! - Migrate SDK and CLI to unified API endpoints. All requests now use `api.lingo.dev` with `X-API-Key` auth. Added `engineId` config option (auto-migrated from `vNext`)\n\n### Patch Changes\n\n-   Updated dependencies \\[[`73a8c73`](https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev\u002Fcommit\u002F73a8c731f5af03db9c165000e87ee5e5a1086a48)]:\n    -   @lingo.dev\u002F\\_compiler@0.12.0\n    -   @lingo.dev\u002F\\_spec@0.49.0\n    -   @lingo.dev\u002F\\_sdk@0.16.0\n","2026-03-07T12:02:11",{"id":228,"version":229,"summary_zh":230,"released_at":231},103453,"@lingo.dev\u002Fcompiler@0.4.0","### Minor Changes\n\n-   [#2035](https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev\u002Fpull\u002F2035) [`73a8c73`](https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev\u002Fcommit\u002F73a8c731f5af03db9c165000e87ee5e5a1086a48) Thanks [@AndreyHirsa](https:\u002F\u002Fgithub.com\u002FAndreyHirsa)! - Migrate SDK and CLI to unified API endpoints. All requests now use `api.lingo.dev` with `X-API-Key` auth. Added `engineId` config option (auto-migrated from `vNext`)\n\n### Patch Changes\n\n-   Updated dependencies \\[[`73a8c73`](https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev\u002Fcommit\u002F73a8c731f5af03db9c165000e87ee5e5a1086a48)]:\n    -   lingo.dev@0.133.0\n","2026-03-07T12:01:59",{"id":233,"version":234,"summary_zh":235,"released_at":236},103454,"@lingo.dev\u002F_spec@0.49.0","### Minor Changes\n\n-   [#2035](https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev\u002Fpull\u002F2035) [`73a8c73`](https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev\u002Fcommit\u002F73a8c731f5af03db9c165000e87ee5e5a1086a48) Thanks [@AndreyHirsa](https:\u002F\u002Fgithub.com\u002FAndreyHirsa)! - Migrate SDK and CLI to unified API endpoints. All requests now use `api.lingo.dev` with `X-API-Key` auth. Added `engineId` config option (auto-migrated from `vNext`)\n","2026-03-07T12:02:05",{"id":238,"version":239,"summary_zh":240,"released_at":241},103455,"@lingo.dev\u002F_sdk@0.16.0","### Minor Changes\n\n-   [#2035](https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev\u002Fpull\u002F2035) [`73a8c73`](https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev\u002Fcommit\u002F73a8c731f5af03db9c165000e87ee5e5a1086a48) Thanks [@AndreyHirsa](https:\u002F\u002Fgithub.com\u002FAndreyHirsa)! - Migrate SDK and CLI to unified API endpoints. All requests now use `api.lingo.dev` with `X-API-Key` auth. Added `engineId` config option (auto-migrated from `vNext`)\n\n### Patch Changes\n\n-   Updated dependencies \\[[`73a8c73`](https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev\u002Fcommit\u002F73a8c731f5af03db9c165000e87ee5e5a1086a48)]:\n    -   @lingo.dev\u002F\\_spec@0.49.0\n","2026-03-07T12:02:08",{"id":243,"version":244,"summary_zh":245,"released_at":246},103456,"@lingo.dev\u002F_compiler@0.12.0","### Minor Changes\n\n-   [#2035](https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev\u002Fpull\u002F2035) [`73a8c73`](https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev\u002Fcommit\u002F73a8c731f5af03db9c165000e87ee5e5a1086a48) Thanks [@AndreyHirsa](https:\u002F\u002Fgithub.com\u002FAndreyHirsa)! - Migrate SDK and CLI to unified API endpoints. All requests now use `api.lingo.dev` with `X-API-Key` auth. Added `engineId` config option (auto-migrated from `vNext`)\n\n### Patch Changes\n\n-   Updated dependencies \\[[`73a8c73`](https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev\u002Fcommit\u002F73a8c731f5af03db9c165000e87ee5e5a1086a48)]:\n    -   @lingo.dev\u002F\\_spec@0.49.0\n    -   @lingo.dev\u002F\\_sdk@0.16.0\n","2026-03-07T12:02:02",{"id":248,"version":249,"summary_zh":250,"released_at":251},103457,"lingo.dev@0.132.9","### Patch Changes\n\n-   [#2027](https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev\u002Fpull\u002F2027) [`bb3ec79`](https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev\u002Fcommit\u002Fbb3ec797ad0379d99f84f20731f37ab03f759b00) Thanks [@AndreyHirsa](https:\u002F\u002Fgithub.com\u002FAndreyHirsa)! - Add vNext API support to LingoDotDevEngine. When engineId is provided, the engine routes requests to the vNext API. Refactor vNext localizer to use LingoDotDevEngine from SDK instead of custom inline implementation\n\n-   [#2026](https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev\u002Fpull\u002F2026) [`a6aa9f2`](https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev\u002Fcommit\u002Fa6aa9f2df134de2de706246847dcbeef83b13eec) Thanks [@cherkanovart](https:\u002F\u002Fgithub.com\u002Fcherkanovart)! - Exit with non-zero code when localization tasks fail, so CI\u002FCD pipelines correctly detect partial errors\n\n-   Updated dependencies \\[[`bb3ec79`](https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev\u002Fcommit\u002Fbb3ec797ad0379d99f84f20731f37ab03f759b00)]:\n    -   @lingo.dev\u002F\\_sdk@0.15.2\n    -   @lingo.dev\u002F\\_compiler@0.11.6\n","2026-03-04T07:29:11",{"id":253,"version":254,"summary_zh":255,"released_at":256},103439,"lingo.dev@0.133.9","### Patch Changes\n\n-   [#2064](https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev\u002Fpull\u002F2064) [`3140f2a`](https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev\u002Fcommit\u002F3140f2ab62bab9b33334d98fd5550f6881a28431) Thanks [@AndreyHirsa](https:\u002F\u002Fgithub.com\u002FAndreyHirsa)! - fix PO loader push performance, multi-entry section handling, and pseudo mode crash\n","2026-04-02T14:36:11",{"id":258,"version":259,"summary_zh":260,"released_at":261},103440,"lingo.dev@0.133.8","### Patch Changes\n\n-   [#2062](https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev\u002Fpull\u002F2062) [`10e6364`](https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev\u002Fcommit\u002F10e636479046da5d53d059e539497195191a99fc) Thanks [@AndreyHirsa](https:\u002F\u002Fgithub.com\u002FAndreyHirsa)! - Migrate PostHog tracking identity from email to database user ID\n\n-   Updated dependencies \\[[`10e6364`](https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev\u002Fcommit\u002F10e636479046da5d53d059e539497195191a99fc)]:\n    -   @lingo.dev\u002F\\_sdk@0.16.2\n    -   @lingo.dev\u002F\\_compiler@0.12.2\n","2026-03-31T14:14:27",{"id":263,"version":264,"summary_zh":265,"released_at":266},103458,"lingo.dev@0.132.10","### Patch Changes\n\n-   Updated dependencies \\[[`1cfcf73`](https:\u002F\u002Fgithub.com\u002Flingodotdev\u002Flingo.dev\u002Fcommit\u002F1cfcf736b0c6494bf66aa2478b2e7c194bdd5b92)]:\n    -   @lingo.dev\u002F\\_sdk@0.15.3\n    -   @lingo.dev\u002F\\_compiler@0.11.7\n","2026-03-04T09:19:34"]