LLM API и интеграция

Локализация сайта нейросетью: как не сломать вёрстку

Локализация сайта нейросетью: как не сломать вёрстку

Перевод интерфейса — это не перевод текста, и подход отсюда другой. Статью можно перевести и вычитать; строку кнопки нужно перевести так, чтобы она поместилась, сохранила плейсхолдер и правильно склонялась во множественном числе целевого языка. Модель справляется с этим хорошо, если ей объяснить правила, и ломает вёрстку молча, если не объяснить: переведённая переменная, изменённое имя плейсхолдера, кнопка в полтора раза длиннее исходной. Разбираем, что задать в задании, что проверять программно и во что обходится тысяча строк.

Чем интерфейс отличается от текста

Четыре различия, определяющие подход.

Длина имеет значение. Кнопка, ярлык, пункт меню живут в ограниченном пространстве. Немецкий и русский обычно длиннее английского, и вёрстка ломается.

Внутри строк есть код. Плейсхолдеры для подстановки значений, теги разметки, символы форматирования. Их нельзя ни переводить, ни переименовывать.

Множественное число работает по-разному. В английском две формы, в русском три. Строка «1 файл / 2 файла / 5 файлов» не переводится одной фразой.

Контекста в строке нет. Слово «Save» может быть кнопкой, заголовком и глаголом в подсказке. Без контекста перевод угадывается.

Последнее — главная причина плохих локализаций, и решается оно тем, что вы передаёте модели вместе со строкой.

Что подавать на вход

Пять элементов задания.

Ключ строки. button.save говорит модели больше, чем само слово: это кнопка, а не заголовок.

Комментарий разработчика. Где строка появляется и что делает. Одна фраза меняет перевод.

Предел длины в символах. Явно, числом. И явное разрешение сокращать при необходимости.

Список неприкосновенного. Плейсхолдеры, теги, названия продуктов — перечислить и запретить трогать.

Глоссарий. Термины интерфейса, которые должны переводиться одинаково во всех строках, — почему это ключевой элемент.

Плюс приём, который заметно улучшает результат: давайте соседние строки как контекст. Пункты одного меню, переведённые по отдельности, часто оказываются в разном стиле; переведённые вместе — согласованы.

Что проверять программно

Пять проверок, каждая на десяток строк кода. Без них локализация ломается тихо.

Плейсхолдеры на месте. Тот же набор, те же имена, то же количество. Самая важная проверка из всех.

Разметка сохранена. Теги открыты и закрыты, вложенность не изменилась.

Длина в пределах. Строка длиннее лимита возвращается на повторный перевод с указанием, насколько сократить.

Формы множественного числа заполнены. Для целевого языка их может быть больше, чем в исходном.

Пустых строк нет. Модель иногда возвращает пустоту вместо перевода, и в интерфейсе появляется дыра.

Механику строгого ответа, по которому такие проверки удобно делать, разбирали отдельно — как получить строгий формат.

Сколько это стоит

Считаем, потому что цифры приятные и их недооценивают в обратную сторону.

Строки интерфейса короткие. Тысяча строк со всеми комментариями и контекстом — это десятки тысяч токенов, то есть единицы рублей при ставках за миллион. Локализация интерфейса — одна из самых дешёвых задач вообще.

Дорожает другое: перевод контента сайта. Каталог, статьи, описания, справка — там объём на порядки больше, и работает обычная арифметика: объём удваивается, потому что исходник идёт на вход, а перевод на выход, а кириллица расходует больше токенов, чем латиница — как считать.

Практический приём для живого сайта: переводить только изменившееся. Сравнение версий своим кодом и перевод разницы сокращает регулярный расход в разы.

В каталоге на 7 сентября 2026 года платные текстовые позиции идут от 1 ₽ за миллион. Для интерфейса достаточно недорогой модели; проверяется полусотней своих строк — методика.

Где нужен человек

Три категории.

Всё, что видит клиент и что нельзя быстро исправить. Тексты писем, юридические разделы, названия тарифов.

Маркетинговые формулировки. Дословный перевод слогана обычно не работает.

Языки, которых нет в команде. Если проверить некому, вы не узнаете о проблеме, пока не напишет пользователь.

Рабочая схема: модель переводит, носитель языка вычитывает выборочно — сначала сплошь, потом по мере доверия только новые строки и то, что тронуло вёрстку.

Порядок запуска

Шесть шагов.

  1. Выгрузите строки с ключами и комментариями. Если комментариев нет — это первая задача, и она полезна сама по себе.
  2. Соберите глоссарий. Из уже переведённых материалов, если они есть.
  3. Переведите пятьдесят строк и посмотрите глазами.
  4. Прогоните проверки и посчитайте долю строк, требующих правки.
  5. Переведите остальное пакетами по двадцать-тридцать строк с соседним контекстом.
  6. Проверьте в собранном интерфейсе, а не в файле. Вёрстка ломается там, а не в таблице.

Шестой шаг пропускают чаще всего, а он и показывает реальную проблему с длиной.

Что делать с обновлениями

Отдельно, потому что здесь копится основной расход и основной беспорядок.

Переводите только новые и изменившиеся строки. Сравнение делает ваш код.

Не перегенерируйте существующие переводы. Они вычитаны; повторный прогон испортит согласованность.

Держите глоссарий в одном месте. При росте числа языков он и есть то, что удерживает терминологию.

Логируйте, что и когда переведено. Через полгода это единственный способ понять, какие строки вычитаны, а какие нет.

Частые ошибки в задании

Пять формулировок, из-за которых результат приходится переделывать.

«Переведи эти строки». Без ключей, комментариев и пределов длины. Получите литературный перевод, который не поместится в интерфейс.

«Переводи дословно». Для интерфейса вредно: короткие английские ярлыки в дословном переводе становятся неестественными. Просить надо не дословность, а естественность при ограничении длины.

Отсутствие запрета на плейсхолдеры. Не запретили явно — модель воспримет их как текст. Это самая частая поломка.

Перевод строк по одной. Каждая переводится изолированно, и меню получается в разном стиле. Пакет из соседних строк решает это почти бесплатно.

Отсутствие правил множественного числа. Если в целевом языке форм больше, модель либо заполнит их одинаково, либо придумает.

Отдельно про тон: укажите его явно — обращение на «вы» или на «ты», формальность, допустимость сокращений. Для интерфейса это не стилистика, а согласованность: половина строк на «вы» и половина на «ты» выглядит как небрежность, и заметит это пользователь, а не тестировщик.

И приём, экономящий больше всего времени: соберите двадцать самых заметных строк — кнопки первого экрана, названия разделов, тексты ошибок — и вычитайте их вручную независимо от объёма остального. Именно их видят все.

Чего мы не утверждаем

Не сравниваем модели по качеству перевода. Своих замеров мы не делали; проверять надо на своей языковой паре.

Не рекомендуем конкретные системы локализации. Их много, выбор зависит от стека.

Не обещаем, что вычитка не понадобится. Для интерфейса, который видит клиент, она остаётся.

Цифры каталога — на дату. Состояние на 7 сентября 2026 года.

Что нужно, чтобы попробовать

Ключ заводится за минуту на keydealer.ru/login — почта и пароль, без документов и без зарубежной карты. Оплата российской картой в рублях, один ключ на весь каталог.

Платные текстовые модели доступны сразу на приветственном бонусе: перевести полсотни своих строк с ключами и комментариями и прогнать проверки можно без пополнения. Этого хватает, чтобы увидеть и качество, и долю строк, ломающих длину.

И про порядок работ: комментарии к строкам стоит завести до перевода, а не после. Они полезны и разработчикам, и переводчику-человеку, и модели — а их отсутствие одинаково портит результат во всех трёх случаях.

Что держать в голове

Интерфейс переводится по правилам, а не по смыслу: длина, плейсхолдеры, формы множественного числа. Задайте их явно — и модель их соблюдёт; не задайте — сломает молча.

И проверяйте результат программно, а не глазами: плейсхолдеры и длина ловятся кодом за секунды, а в собранном интерфейсе обнаруживаются пользователем. Начать разумно с одного языка и одного экрана: так видно и качество перевода, и то, как оно ложится в вёрстку, — а масштабировать проверенную схему потом уже механически.

Отдельно проверьте тексты ошибок: их пишут в последнюю очередь, читают в самый неудачный момент, и плохой перевод там стоит дороже, чем в любом другом месте интерфейса.

Как мы проверяем факты и что храним из запросов — на странице о проекте и в llms.txt. Перевести полсотни строк на пробу: keydealer.ru/login.

Частые вопросы

Можно ли перевести сайт нейросетью?

Можно, но интерфейс переводится иначе, чем статьи: важны длина строки, сохранность плейсхолдеров и правила множественного числа целевого языка.

Что чаще всего ломается?

Плейсхолдеры и разметка. Модель может перевести содержимое переменной или изменить её имя, и строка перестанет работать.

Как быть с длиной?

Задавать предел в символах и проверять его программно. Немецкий и русский обычно длиннее английского, и кнопки перестают помещаться.

Нужен ли редактор?

Для интерфейса, который видит клиент, — да. Модель даёт черновик, вычитка носителем языка остаётся.

Сколько стоит перевод интерфейса?

Строки интерфейса короткие, поэтому объём небольшой: тысяча строк — единицы рублей. Основной расход появляется при переводе всего контента сайта.

Источники