From 4c2959c6be649f12cdadde23909547f6489d3bd6 Mon Sep 17 00:00:00 2001 From: sys Date: Wed, 30 Sep 2026 17:36:46 +0300 Subject: [PATCH 1/2] feat(i18n): add Russian (ru-RU) desktop localization Add a complete Russian locale catalog and wire it into the i18n runtime, system-language detection, settings picker, and README so Russian users can use the app in their language. Co-authored-by: Cursor --- .agents/skills/i18n/SKILL.md | 4 +- README-CN.md | 2 +- README-RU.md | 109 +++++ README.md | 2 +- apps/desktop/plugins/static-i18n-plugin.ts | 2 +- .../src/features/settings/SettingsPage.tsx | 9 +- apps/desktop/src/i18n/locales/ru-RU.json | 454 ++++++++++++++++++ apps/desktop/src/i18n/runtime.ts | 4 +- apps/desktop/src/i18n/store.ts | 3 +- 9 files changed, 582 insertions(+), 7 deletions(-) create mode 100644 README-RU.md create mode 100644 apps/desktop/src/i18n/locales/ru-RU.json diff --git a/.agents/skills/i18n/SKILL.md b/.agents/skills/i18n/SKILL.md index b7613fbb6..a06959995 100644 --- a/.agents/skills/i18n/SKILL.md +++ b/.agents/skills/i18n/SKILL.md @@ -17,7 +17,9 @@ apps/desktop/ ├── generated/catalog.json └── locales/ ├── zh-CN.json - └── en-US.json + ├── en-US.json + ├── pt-BR.json + └── ru-RU.json ``` ## Author messages diff --git a/README-CN.md b/README-CN.md index 716e04cd6..762e04937 100644 --- a/README-CN.md +++ b/README-CN.md @@ -4,7 +4,7 @@ cursor-byok 是一个运行在本机的 Cursor 模型网关,帮助你在 Cursor 中使用自己配置的模型服务。 -[English README](./README.md) · [使用指南](https://docs.leokun.cn) · [下载](https://github.com/leookun/cursor-byok/releases/latest) · [提交问题](https://github.com/leookun/cursor-byok/issues) +[English README](./README.md) · [Русская версия](./README-RU.md) · [使用指南](https://docs.leokun.cn) · [下载](https://github.com/leookun/cursor-byok/releases/latest) · [提交问题](https://github.com/leookun/cursor-byok/issues) [![Release](https://img.shields.io/github/v/release/leookun/cursor-byok?style=flat-square)](https://github.com/leookun/cursor-byok/releases/latest) [![Downloads](https://img.shields.io/github/downloads/leookun/cursor-byok/total?style=flat-square)](https://github.com/leookun/cursor-byok/releases) diff --git a/README-RU.md b/README-RU.md new file mode 100644 index 000000000..43b315c16 --- /dev/null +++ b/README-RU.md @@ -0,0 +1,109 @@ +
+ +# cursor-byok + +cursor-byok — локальная реализация бэкенда Cursor: шлюз моделей на вашем устройстве. + +
+
+leookun/cursor-byok | Trendshift + +[English README](./README.md) · [中文说明](./README-CN.md) · [Руководство](https://docs.leokun.cn) · [Скачать](https://github.com/leookun/cursor-byok/releases/latest) · [Сообщить об ошибке](https://github.com/leookun/cursor-byok/issues) + +[![Release](https://img.shields.io/github/v/release/leookun/cursor-byok?style=flat-square)](https://github.com/leookun/cursor-byok/releases/latest) +[![Downloads](https://img.shields.io/github/downloads/leookun/cursor-byok/total?style=flat-square)](https://github.com/leookun/cursor-byok/releases) +[![License](https://img.shields.io/github/license/leookun/cursor-byok?style=flat-square)](./LICENSE) +[![Platforms](https://img.shields.io/badge/platform-macOS%20%7C%20Windows%20%7C%20Linux-lightgrey?style=flat-square)](https://github.com/leookun/cursor-byok/releases/latest) + +
+ +![Подключение cursor-byok к различным API моделей](./images/en-brand-1.png) + +![Панель управления cursor-byok](./images/en-home-1.png) + +## О проекте + +cursor-byok — открытый локальный шлюз моделей для Cursor. Он запускает сервис на вашей машине, который связывает Cursor с настроенными вами API моделей, маршрутизирует запросы через ваши провайдеры и сохраняет возможности Cursor Agent: вызовы инструментов, Skills и MCP. + +Вы можете подключать сервисы, совместимые с OpenAI и Anthropic, настраивать endpoint, ID моделей, API-ключи и параметры запросов, а также использовать каналы моделей за пределами встроенных опций платформы. + +> [!IMPORTANT] +> cursor-byok бесплатен и с открытым исходным кодом, но API моделей, которые вы подключаете, могут тарифицироваться по использованию. Это независимый проект, не связанный с Cursor и его разработчиками и не одобренный ими. + +## Возможности + +- **Свои каналы моделей:** настройте endpoint, учётные данные и ID моделей. +- **Несколько протоколов API:** OpenAI- и Anthropic-совместимые API или свой endpoint. +- **Управление моделями:** добавление, дублирование, редактирование, сортировка и пакетная проверка конфигураций. +- **Тесты соединения:** время до первого токена, скорость генерации и сырые ответы провайдера. +- **Agent-сценарии:** вызовы инструментов, Skills, MCP и многоходовые диалоги. +- **Метрики сессий:** использование токенов, доля попаданий в кэш, ход диалога и оценочная стоимость. +- **Кроссплатформенность:** macOS, Windows и Linux. + +## Быстрый старт + +1. Скачайте сборку для вашей платформы с [GitHub Releases](https://github.com/leookun/cursor-byok/releases/latest). +2. Запустите cursor-byok, откройте **Настройки моделей** и укажите endpoint, API-ключ и ID модели. +3. Проверьте конфигурацию модели. После успешной проверки вернитесь на панель и запустите сервис. +4. После обновления Cursor или первой настройки модели полностью выйдите из Cursor и перезапустите его, затем начните новый диалог и выберите настроенную модель. + +Полные шаги установки, конфигурации системы и ответы на частые вопросы — в [руководстве пользователя](https://docs.leokun.cn). + +## Управление моделями + +Конфигурации моделей поддерживают протоколы OpenAI и Anthropic. Для каждого канала можно задать размер контекстного окна, максимум токенов вывода, уровень рассуждения, пользовательские заголовки и дополнительные параметры запроса. + +![Настройки моделей cursor-byok](./images/en-model-1.png) + +## Как это работает + +```text +Клиент Cursor + │ + │ Запросы Agent и результаты инструментов + ▼ +Локальный сервис cursor-byok + │ + │ Запросы, совместимые с OpenAI / Anthropic + ▼ +Ваш API модели +``` + +cursor-byok выполняет адаптацию протоколов, пересылку запросов к моделям, координацию вызовов инструментов и состояние диалога на вашей машине. API-ключи и настройки приложения хранятся локально; запросы по-прежнему уходят к выбранному вами провайдеру. + +## Зачем этот проект + +Многие Agent-продукты связывают инструменты с фиксированным набором моделей, подписок и тарифов, ограничивая пользователя каналами платформы. + +cursor-byok возвращает выбор моделей пользователю. Разработчики могут использовать уже имеющиеся API и кредиты, выбирать подходящие модели и провайдеров и при необходимости самостоятельно хостить связанные сервисы. + +## Язык интерфейса + +В приложении доступен русский язык интерфейса (`ru-RU`). В **Настройках → Язык** выберите **Русский** или оставьте **Язык системы** — при русской локали ОС интерфейс переключится автоматически. + +## Дорожная карта + +Проект продолжит улучшать совместимость моделей, инструменты Agent, стабильность локального runtime и опыт self-hosting, а также исследовать поддержку других IDE, чатов и Agent-сценариев. + +См. [дорожную карту релизов](https://github.com/leookun/cursor-byok/discussions/32). + +## Сообщество и поддержка + +- [Руководство пользователя](https://docs.leokun.cn) +- [GitHub Issues](https://github.com/leookun/cursor-byok/issues) +- [Telegram-сообщество](https://t.me/cursor_byok) +- QQ-группы: `1095916242`, `1094411438`, `1095918002`, `1094419321` + +## Разработка и вклад + +Issues и pull request приветствуются. См. [Contributing Guide](./CONTRIBUTING_EN.md) для требований, команд сборки, структуры проекта и правил вклада. + +## Участники + + + + + +## Лицензия + +Проект распространяется под [лицензией MIT](./LICENSE). diff --git a/README.md b/README.md index dcfb74fa6..3663b4361 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ cursor-byok is a local implementation of Cursor's backend.
leookun/cursor-byok | Trendshift -[User Guide](https://docs.leokun.cn) · [Download](https://github.com/leookun/cursor-byok/releases/latest) · [Report an Issue](https://github.com/leookun/cursor-byok/issues) · [中文版本说明](./README-CN.md) +[User Guide](https://docs.leokun.cn) · [Download](https://github.com/leookun/cursor-byok/releases/latest) · [Report an Issue](https://github.com/leookun/cursor-byok/issues) · [中文版本说明](./README-CN.md) · [Русская версия](./README-RU.md) [![Release](https://img.shields.io/github/v/release/leookun/cursor-byok?style=flat-square)](https://github.com/leookun/cursor-byok/releases/latest) [![Downloads](https://img.shields.io/github/downloads/leookun/cursor-byok/total?style=flat-square)](https://github.com/leookun/cursor-byok/releases) diff --git a/apps/desktop/plugins/static-i18n-plugin.ts b/apps/desktop/plugins/static-i18n-plugin.ts index 0fc23f3b2..2d43e4a0f 100644 --- a/apps/desktop/plugins/static-i18n-plugin.ts +++ b/apps/desktop/plugins/static-i18n-plugin.ts @@ -9,7 +9,7 @@ import { normalizePath, type Plugin } from "vite" const traverse = traverseModule.default ?? traverseModule const SOURCE_LOCALE = "zh-CN" -const SUPPORTED_LOCALES = ["zh-CN", "en-US", "pt-BR"] +const SUPPORTED_LOCALES = ["zh-CN", "en-US", "pt-BR", "ru-RU"] const CHINESE_SOURCE_PATTERN = /[\u3400-\u9fff]/u const PLACEHOLDER_PATTERN = /\{([A-Za-z_][A-Za-z0-9_]*)\}/g const AUTO_IMPORT_NAME = "__staticI18nT" diff --git a/apps/desktop/src/features/settings/SettingsPage.tsx b/apps/desktop/src/features/settings/SettingsPage.tsx index 20b0fd9ae..3583c769a 100644 --- a/apps/desktop/src/features/settings/SettingsPage.tsx +++ b/apps/desktop/src/features/settings/SettingsPage.tsx @@ -246,7 +246,13 @@ export function SettingsPage() {
{t("界面语言")} - {t("默认跟随操作系统;不支持的系统语言使用英文。当前:{language}", { language: locale === "zh-CN" ? "简体中文" : locale === "pt-BR" ? "Português (Brasil)" : "English" })} + {t("默认跟随操作系统;不支持的系统语言使用英文。当前:{language}", { + language: + locale === "zh-CN" ? "简体中文" + : locale === "pt-BR" ? "Português (Brasil)" + : locale === "ru-RU" ? "Русский" + : "English", + })}