Часто задаваемые вопросы
Всё, что вам нужно знать об i18n-keyless, прежде чем начать.
Мне нужно управлять файлами переводов?
Нет. Нет файлов JSON, нет этапа извлечения ключей и нет плагина времени сборки. Вы пишете свои предложения на исходном языке, SDK отправляет их в API при первом запросе, API переводит их с помощью ИИ, и каждый последующий запрос обслуживается из кэша. Ваш код — единственный источник истины.
Что происходит, когда я изменяю исходный текст?
Исходный текст — это ключ. Измените его, и вы получите новый ключ с новым переводом от ИИ. Старый ключ просто перестаёт запрашиваться, а панель управления удаляет его после 30 дней без использования. Исправление опечатки работает так же: исправьте её в коде, разверните и новый текст будет переведён при первом запросе.
Сколько это стоит?
Самостоятельно размещённый: полностью бесплатный, неограниченное количество проектов, без подписки и без ограничений по использованию — установите Docker-образ и используйте свой собственный AI-ключ. Вам нравится? Поддержите меня! Размещённый: фиксированная цена за проект в месяц, в зависимости от ежемесячно активных пользователей — 4 € до 1 000, 9 € до 5 000, 29 € до 50 000, 99 € до 500 000 — оплата ежемесячная, можно отменить в любой момент. В обоих случаях нет ценообразования по количеству мест, по словам или по строкам.
Могу ли я экспортировать свои переводы?
Да. На панели управления есть кнопка «Экспорт JSON», которая загружает все переводы в вашем проекте в виде одного файла JSON. Экспорт включает все строки, а не только те, которые использовались за последние 30 дней, поэтому это полная резервная копия. Нет блокировки: ваши данные всегда на расстоянии одного клика.
Какие фреймворки поддерживаются?
React, React Native, Vue, Svelte, Vanilla JS, Node.js, Ruby on Rails, Python, Go, Swift и Kotlin. Каждый SDK работает одинаково: оберните ваш текст в вызов перевода, и API вернет перевод для текущего языка. Серверные SDK потокобезопасны и кэшируют переводы в памяти.
Сколько языков поддерживается?
48 языков, включая региональные варианты, такие как zh-Hans / zh-Hant, en / en-GB, fr / fr-CA, pt / pt-BR и es / es-MX. Арабский, иврит и урду также есть в списке, поэтому языки, написанные справа налево, тоже работают. Добавление нового языка в ваш проект — это один клик в панели управления.
Это работает с серверным рендерингом?
Да. Node.js SDK использует AsyncLocalStorage, чтобы ваши загрузчики, функции head и серверные компоненты могли переводить без провайдера React. На стороне клиента провайдер React гидратирует из HTML, отрендеренного на сервере. В документации есть пошаговые руководства для Next.js, Nuxt и TanStack Start.
Это замедляет мое приложение?
В первый раз, когда запрашивается новая строка, API вызывает модель ИИ — около половины секунды для короткой строки интерфейса, дольше для абзаца. Все последующие запросы обслуживаются из базы данных, что является обычным попаданием в кэш. SDK также кэширует переводы локально, поэтому возвращающиеся пользователи не видят задержек в сети. Если десять пользователей одновременно запрашивают одну и ту же строку, выполняется только один вызов ИИ.
Что произойдет, если сервис выйдет из строя?
Каждый SDK кэширует переводы локально — в localStorage на веб-сайте, в AsyncStorage на мобильных устройствах и в памяти на сервере. Если API недоступен, SDK предоставляет кэшированные переводы. Ваши пользователи видят последний известный перевод, никогда не пустую строку. Когда API снова становится доступным, SDK тихо обновляется.
Какого поставщика ИИ оно использует?
Поддерживаются пять провайдеров: Mistral, OpenAI, Anthropic, Google и любой совместимый с OpenAI конечный пункт, например, Ollama, Groq или Together. Оператор выбирает провайдера и модель из панели управления или из окружения. По умолчанию на i18n-keyless.com используется Mistral. Пользователи с собственным хостингом могут запускать Ollama локально и ничего не отправлять третьей стороне.
Могу ли я переопределить перевод ИИ?
Да. Нажмите на любую ячейку в панели управления, введите правильный текст и сохраните. Исправление является постоянным: API никогда не перезаписывает значение, установленное вручную. Вы также можете переопределить переводы через API или через сервер MCP, чтобы ИИ-агент кодирования мог исправить перевод за вас.
Могу ли я мигрировать с i18next или другой библиотеки?
Да. В документации есть пошаговое руководство по миграции для i18next, react-intl и Lokalise. У API есть конечная точка миграции, которая импортирует ваши существующие переводы по одному, без вызовов ИИ и без начисления оплаты. На сервере MCP есть тот же инструмент, поэтому ИИ-агент может выполнить миграцию за вас.
Есть ли бесплатный план?
Самостоятельно размещённая версия полностью бесплатна с неограниченным количеством проектов — установите Docker-образ, используйте свой собственный AI-ключ и храните свои данные на своём собственном сервере. Нет ограничений по времени, нет ограничений функциональности. Хостинговый план начинается с 4 евро в месяц за проект, если вы предпочитаете не запускать сервер.
Доступен ли исходный код?
Сервер, панель управления и Docker-образ опубликованы на GitHub под лицензией Elastic 2.0. Вы можете читать каждую строку, запускать код и изменять его. SDK — React, Vue, Node, Rails и другие — лицензированы по MIT. Единственное ограничение: вы не можете предлагать программное обеспечение как hosted-сервис третьим лицам.
Один сопровождающий: что произойдет, если проект остановится?
SDK распространяются по лицензии MIT и остаются доступными на npm, PyPI, RubyGems и других реестрах. Сервер является публичным под лицензией Elastic 2.0, а протокол между ними задокументирован, поэтому любой может запустить его, сделать форк или написать сервер против него. Ваши переводы хранятся в одном JSON-экспорте в любой момент. Если размещенная услуга остановится: установленные приложения продолжат предоставлять свои кэшированные переводы, новый клиент вернется к исходному языку, а указание SDK на ваш собственный экземпляр с API_URL восстановит всё. То, что вы потеряете, — это ИИ-перевод новых строк на i18n-keyless.com — не ваши данные и не ваше приложение.
Прочитайте полный ответ с кодомРазве контекст — это не просто замаскированный ключ?
Нет. Для каждой строки требуется ключ, он должен быть уникальным и существует в глобальном пространстве имён, которое вы поддерживаете вручную. Контекст — необязательный элемент, привязанный к тем немногим строкам, значение которых неоднозначно — например, «Close» может означать «закрыть окно» или «закрыть» на расстоянии — и он описывает значение, а не называет саму строку. Большинство строк не имеют контекста. Исходный текст остаётся основой для поиска, с контекстом или без; две одинаковые строки с двумя контекстами — это просто две строки.
Прочитайте полный ответ с кодомМогу ли я проверить копию в запросе pull request?
Да. Исходная строка находится в коде, поэтому любое изменение формулировки — это разница, которую рецензент читает в пулл-реквесте на понятном языке, а не в виде названия ключа. То, чего нет в git, — это переводы на другие языки: они хранятся в базе данных, как и на любой другой платформе перевода, и вы просматриваете их в панели управления, где отметка "проверено" для каждой ячейки разделяет то, что проверил человек, от того, что написал ИИ, или в JSON-экспорте.
Прочитайте полный ответ с кодомПочему не Tolgee, который тоже с открытым исходным кодом?
Tolgee — это платформа для переводов на основе ключей под лицензией Apache 2.0, с редактированием в контексте, контекстом скриншотов и памятью переводов. Если вам нужны эти функции или переводчики в процессе, это хороший выбор. i18n-keyless не имеет ключей, нет файлов локализации, перевод с помощью ИИ включён по умолчанию с ручной перезаписью, которую ИИ никогда не переписывает, сервер под лицензией Elastic 2.0 с MIT SDK, а также само-развёртываемый образ, работающий на SQLite в одном контейнере. Для исправления в контексте сделайте скриншот и передайте его ИИ-агенту, подключённому к серверу MCP: он найдёт строку и перезапишет перевод. Страница сравнения в документации отображает цены рядом.
Прочитайте полный ответ с кодомСамостоятельный хостинг или подписка: какой?
Самостоятельный хостинг: тот же Docker-образ на вашем собственном сервере, полностью бесплатный с неограниченным количеством проектов, с вашим собственным AI-ключом и вашими данными дома. Вам нравится? Поддержите меня! Подписка: мы управляем этим, обновления автоматические, фиксированная цена от 4 € в месяц за проект. Выберите подписку, если не хотите запускать сервер.
Прочитайте полный ответ с кодомКак обрабатывать динамические значения, такие как имена или счётчики?
Используйте опцию замены. Напишите предложение с плейсхолдером — «Привет {name}, у вас {count} элементов» — и передайте значения при рендеринге с помощью replace: { "{name}": userName, "{count}": String(n) }. ИИ видит плейсхолдер и сохраняет его во всех переводах. SDK подменяет значение во время выполнения.
Как обрабатывать множественное число?
Напишите одну форму с {count}, где будет подставляться число, и передайте число как count. API хранит одно ICU-сообщение множественного числа для каждого языка с ровно теми формами, которые нужны языку — два во французском, четыре в русском, шесть в арабском — проверяется через Intl.PluralRules, и SDK выбирает правильное. Добавьте порядковые числительные для рангов (1st, 2nd). Вы никогда не пишете ветки самостоятельно.
Прочитайте полный ответ с кодомКак мне обращаться с гендерами?
Передайте значение в select — select={{ gender: "женский" }} — и модель пишет одну вариацию для каждого значения на каждом языке, учитывая языковые требования. Значения — это идентификаторы из закрытого набора, не более 10 на переменную и 2 переменные на предложение; можно комбинировать select и count. Открытые значения, такие как имя, остаются заменой.
Прочитайте полный ответ с кодомКак форматировать даты, числа и валюты?
SDK не форматирует их, это делает ваша среда выполнения. Используйте Intl.DateTimeFormat и Intl.NumberFormat с текущим языком из SDK, затем поместите результат в предложение с помощью replace. Одно предложение, один перевод, правильный формат на каждом языке.
Прочитайте полный ответ с кодомМогу ли я настроить подсказку для перевода?
Нет, и вам не нужно этого делать. Промпт считывает ваш контекст для каждого ключа: именно здесь определяются тон, аудитория и значение, и именно это делает так, что одно и то же слово переводится по-разному в двух местах. Любой перевод можно вручную переопределить в панели управления; API никогда не перезаписывает то, что написали вы.
Прочитайте полный ответ с кодомЕсть ли у него сервер MCP для агентов кодирования AI?
Да. API также является сервером MCP с аутентификацией OAuth 2.1. AI-агент может перечислять переводы, переводить строки, переопределять значения, импортировать существующие переводы и управлять участниками проекта — те же операции, которые выполняет человек в панели управления. Подключите его из Claude Code, Cursor, Windsurf или любого клиента, совместимого с MCP.
Могу ли я использовать это для строк бэкенда и писем?
Да. SDK Node.js, Ruby on Rails, Python и Go работают на сервере. Переведите тему письма, сообщение об ошибке или push-уведомление так же, как вы переводите строку интерфейса. Серверные SDK кэшируют переводы в памяти и обновляют их в фоновом режиме, поэтому они не добавляют задержки к вашему запросу.
Может ли вся моя команда работать над переводами?
Да. Добавьте участников команды в проект из панели управления или через API. Каждый участник может видеть все переводы, переопределять любые значения и добавлять языки. Администраторы создают проекты и управляют участниками. Нет цены за место: добавьте столько людей, сколько вам нужно.
Как исправить опечатку?
Исходный текст — это ключ. Исправив опечатку в исходном тексте, вы получите новый ключ с новым переводом; старый текст просто перестает запрашиваться, а панель управления автоматически очищает его после 30 дней без использования. Опечатка в переводе: отредактируйте ячейку в панели управления, и исправление будет постоянным.
Прочитайте полный ответ с кодом