v1 · Бенчмарк · CIS · MENA

Локализация интерфейса — одной командой git push

Тетива переводит JSON, ARB, .strings и XML на казахский, узбекский, турецкий, арабский и ещё двенадцать языков. CI блокирует мерж, если плейсхолдер сломан или не хватает plural-формы.

~/projects/checkout
$ tetiva push --source ./locales/en.json --targets kk,uz,tr,ar
→ Парсинг en.json (i18next)... ok
→ Дельта: 47 новых ключей, 3 изменено
→ Маршрутизация → Qwen (kk,uz,tr,ar)
→ Translation memory... 12 совпадений
01 / 04
tetiva push
Pull request opened #247
tetiva-bot wants to merge 1 commit into main from tetiva/a8f3b21
i18n: add kk, uz, tr, ar translations for checkout
5 files changed · 47 new keys · 188 translations · 0 conflicts
▸ locales/kk.json
▸ locales/uz.json
▸ locales/tr.json
▸ locales/ar.json
02 / 04
PR opens
locales/kk.json
{
"cart.items": "{count} items in cart",
"cart.items": {
"one": "{count} зат себетте",
"other": "{count} зат себетте"
},
"checkout.discount": "Save {percent}%",
"checkout.discount": "{percent}% үнемдеңіз",
"auth.welcome": "Welcome back, {name}!",
"auth.welcome": "Қайта оралуыңызбен, {name}!"
}
03 / 04
diff: kk.json
All checks have passed
Все плейсхолдеры на месте (3/3)
Plural-формы соответствуют CLDR
ICU MessageFormat валиден
HTML-теги сбалансированы
Длина строк в бюджете UI
tetiva/structural-eval · 4.2s
04 / 04
CI green
$ npm install -g @tetiva/cli

Также доступно для Python, Go, Rust. См. документацию →

Контекст

Между фронтенд-инженером и переводчиком — слишком много шагов

Типичный поток локализации в российской продуктовой команде: продакт пишет английскую копию в гугл-доке, дизайнер вставляет её в Figma, фронтендер выносит в JSON-файл, кто-то заводит фрилансера на Profi.ru или Kwork, скидывает ему JSON, через неделю получает обратно тоже JSON — где плейсхолдер {count} теперь называется {количество}, где для русского три plural-формы свернулись в одну, и где казахский локаль вообще не вернулся.

Тетива — это другой поток. Ты добавляешь ключ в исходный файл, делаешь tetiva push, получаешь pull request со всеми целевыми локалями. Плейсхолдеры на месте, plural-формы соответствуют CLDR, ICU MessageFormat валиден. CI ловит ошибки до мержа, не пользователь — после релиза.

Было · 6 шагов copy в Google Doc Figma JSON в репо фрилансер правки в Excel обратно в репо с поломанными плейсхолдерами Стало · 2 шага через CLI и PR-review tetiva push из терминала · одна команда PR с переводами все локали, валидация, мерж CLI + LLM + валидаторы
Три ключевых обещания

Что Тетива делает иначе

01 · Языки

Языки, на которых остальные ломаются

Google Translate путает узбекскую кириллицу и латиницу. DeepL не поддерживает казахский. YandexGPT хорош на русском, но проседает на турецком техническом тексте.

Тетива маршрутизирует каждую языковую пару в LLM, который тренировался на этих данных — Qwen для тюркских, Claude и GPT для EN↔RU, GigaChat и YandexGPT для residency-чувствительных задач.

Смотреть бенчмарк
02 · Валидация

Plural-формы и плейсхолдеры — без ручной проверки

В русском три формы множественного числа. В арабском — шесть. Тетива видит, что в исходной строке нужны plural-формы, и добавляет все категории, которые требует целевая локаль.

CI проверяет каждый плейсхолдер: {name}, </strong>, ICU-конструкции, HTML-теги. Поломанная форма не доезжает до релиза.

Как устроена валидация
03 · Compliance

Данные клиентов — в России

Глоссарии, translation memory, метаданные проекта живут в Yandex Cloud или VK Cloud — на серверах в РФ. Это требование 152-ФЗ и базовое условие для тендеров с критической инфраструктурой.

Для enterprise — self-hosted appliance на твоей инфре с Qwen или DeepSeek внутри.

On-prem и compliance
Реальный PR

Реальный diff из реального PR

// locales/kk.json { ... "cart.items": "{count} items in cart", "cart.items": { "one": "{count} зат себетте", "other": "{count} зат себетте" }, "checkout.discount": "Save {percent}%", "checkout.discount": "{percent}% үнемдеңіз", "auth.welcome": "Welcome back, {name}!", "auth.welcome": "Қайта оралуыңызбен, {name}!" }
Все плейсхолдеры на месте (3/3)
Plural-формы соответствуют CLDR (kk: one, other)
ICU MessageFormat валиден
HTML-теги сбалансированы
Длина строк не превышает бюджет UI

Это не пример из документации — это типичный pull request, который Тетива открывает после tetiva push --target kk,tr,uz,ar. Один коммит, несколько локалей, все валидации зелёные. Ты ревьюишь или мержишь — на твой выбор.

Аудитория

Если ты узнаёшь себя — Тетива для тебя

Сценарий 01 · Выход на новые рынки

У команды есть продукт, который уже работает на русском, и есть три рынка, на которые надо выйти в течение полугода: Казахстан, Узбекистан, Турция. Найм переводчиков на эти языки — отдельный проект. Можно начать с LLM-перевода, добавить редактуру носителем там, где важна копия.

Сценарий 02 · Долг локализации

У команды семь активных локалей, и каждый релиз кто-то ругается, что строки не переведены, плейсхолдер сломан, или в немецком вылез английский фрагмент. Раз в три месяца локализационный долг разгребается вручную. Хочется, чтобы это не повторялось.

Сценарий 03 · Тендер с residency

Команда продаёт в России, и в тендере появилось требование «обработка персональных данных и инфраструктура — на территории РФ». Текущий TMS этого не даёт. Нужен инструмент с понятной residency-моделью и опцией on-premise.

Trust signals

Кто за продуктом

Юридическое лицоООО «Русское облако», ИНН 6732079480
ПлатежиYooKassa, ruble-биллинг, фискальные чеки 54-ФЗ
ДанныеНа серверах в РФ, 152-ФЗ
РеестрЗаявка подана — статус актуализируется

Полный текст compliance-документов — на странице /legal.

Тарифы

В рублях, без скрытой математики

ТирЦенаДля кого
Free0 ₽До 500 ключей. Чтобы попробовать на своём проекте без карточки.
Solo990 ₽/месСоло-разработчик или микрокоманда. 5 000 ключей.
Team4 990 ₽/месКомандам до 10 человек. 25 000 ключей, GitHub Action, ревью-флоу.
Businessот 19 990 ₽/месПродуктовым командам. 100 000 ключей, on-prem опционально, SLA.

Enterprise и Реестр-track — по запросу. Подробности на /pricing →

FAQ

Три вопроса, которые задают чаще всего

Тетива заменяет переводчика-человека?

Нет. Тетива закрывает первый круг — машинный перевод с проверкой плейсхолдеров, plural-форм и терминологии по глоссарию. Для critical-копии (маркетинговые лендинги, юридические тексты, продуктовые сообщения с эмоциональной нагрузкой) добавь редактуру носителем поверх — Тетива даёт API для приёма правок обратно в TM проекта.

Какая LLM используется?

Зависит от языковой пары и тира. Для EN↔RU и большинства европейских — Claude или GPT. Для RU↔KZ/UZ/TR/AR/FA/ZH — Qwen как primary, Claude и GPT в fallback. Для residency-чувствительных задач — YandexGPT или GigaChat. На Business-тире можно подключить свой ключ OpenAI или Anthropic. Полная маршрутизация — на странице /models →

Что если мы хотим хостить у себя?

В тире Business доступна опция on-premise: Docker Compose или Helm-чарт, встроенная Qwen или DeepSeek для дефолтной маршрутизации, bring-your-own-LLM-key для остального. Глоссарии, TM, метаданные не покидают твой периметр. Подробности — на /on-premise →

Установить и попробовать

Free-тир: 500 ключей, без карточки, без триал-периода.

$ npm install -g @tetiva/cli $ tetiva init $ tetiva push

Поддерживаются JSON (i18next, ICU), .strings, .stringsdict, Android XML, Flutter ARB, .properties. POT/PO и XLIFF — в ближайшем релизе.