Локализация интерфейса — одной командой git push
Тетива переводит JSON, ARB, .strings и XML на казахский, узбекский, турецкий и английский. CI блокирует мерж, если плейсхолдер сломан или не хватает plural-формы. CLI — open-source, исходники на GitHub: посмотри сам, как устроено.
Поддержка Python, Go, Rust — после первых релизов CLI. См. документацию →
Между фронтенд-инженером и переводчиком — слишком много шагов
Типичный поток локализации в российской продуктовой команде: продакт пишет английскую копию в гугл-доке, дизайнер вставляет её в Figma, фронтендер выносит в JSON-файл, кто-то заводит фрилансера на Profi.ru или Kwork, скидывает ему JSON, через неделю получает обратно тоже JSON — где плейсхолдер {count} теперь называется {количество}, где для русского три plural-формы свернулись в одну, и где казахский локаль вообще не вернулся, потому что переводчик не нашёл носителя.
Тетива — это другой поток. Ты добавляешь ключ в исходный файл, делаешь tetiva push, получаешь pull request со всеми целевыми локалями. Плейсхолдеры на месте, plural-формы соответствуют CLDR, ICU MessageFormat валиден. CI ловит ошибки до мержа, не пользователь — после релиза.
Что Тетива делает иначе
Языки, на которых остальные ломаются
Google Translate путает узбекскую кириллицу и латиницу. DeepL не поддерживает казахский. YandexGPT хорош на русском, но проседает на турецком техническом тексте.
Тетива маршрутизирует каждую языковую пару в LLM, который тренировался на этих данных — Qwen для тюркских, Claude и GPT для нюансной UX-копии EN↔RU.
Plural-формы и плейсхолдеры — без ручной проверки
В русском три формы множественного числа. В казахском CLDR-граница one/other не совпадает с английской — 21 пользователь по правилам казахского попадает в one, и наивный i18next эту строку молча ломает.
Тетива видит, что в исходной строке нужны plural-формы, и добавляет все категории, которые требует целевая локаль. CI проверяет каждый плейсхолдер: открытые {name}, закрытые </strong>, ICU-конструкции, HTML-теги. Поломанная форма не доезжает до релиза.
Реальный diff из реального PR
CI · tetiva/structural-eval
Это не пример из документации — это типичный pull request, который Тетива открывает после tetiva push --target kk,tr,uz. Один коммит, несколько локалей, все валидации зелёные. Ты ревьюишь или мержишь — на твой выбор.
Если ты узнаёшь себя — Тетива для тебя
У команды есть продукт, который уже работает на русском, и три рынка на которые надо выйти в течение полугода: Казахстан, Узбекистан, Турция. Найм переводчиков на эти языки — отдельный проект. Можно начать с LLM-перевода, добавить редактуру носителем там, где важна копия.
У команды семь активных локалей, и каждый релиз кто-то ругается, что строки не переведены, плейсхолдер сломан, или в немецком вылез английский фрагмент. Раз в три месяца локализационный долг разгребается вручную. Хочется чтобы это не повторялось.
Команда продаёт в России, и платит ООО — нужны фискальные чеки по 54-ФЗ, договор на русском, оплата в рублях через YooKassa.
Кто за продуктом
| Юридическое лицо | ООО «Русское облако» ИНН 6732079480 · ОГРН 1146733018728 |
| Платежи | YooKassa · рубли · фискальные чеки 54-ФЗ |
| Данные | Серверы в РФ · 152-ФЗ |
| Открытый код | github.com/tetiva-dev/cli |
Подробности — на /legal.
В рублях, без скрытой математики
| Тир | Цена | Для кого |
|---|---|---|
| Free | 0 ₽ | До 500 ключей. Без карточки. |
| Solo | 990 ₽/мес | 5 000 ключей. |
| Team | 4 990 ₽/мес | До 10 человек, 25 000 ключей. |