Все статьи
Статья
23 июля 2026 г.6 мин

Перевод и локализация: какие модели сильны в русском

LLM переводит лучше классических движков, если правильно поставить задачу. Глоссарии, тон, сохранение разметки и выбор модели под русский.

Анна Величко


Перевод и локализация: какие модели сильны в русском

LLM обошли классические переводчики там, где важен контекст: они понимают, что «bank» в тексте про реку — это берег, и не переводят названия продуктов. Но чтобы это заработало, задачу надо ставить как переводчику-человеку, а не как кнопке «перевести».

Какие модели сильны в русском

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

  • DeepSeek, Qwen — пишут на русском чисто, без латиницы посреди фразы и без англицизмов там, где есть нормальное слово.
  • Gemini — сильна на локализации, чувствует регистр и стилистику.
  • Проверяйте на своём домене: юридический русский и разговорный — разные задачи, и модель может быть хороша в одном и слаба в другом.

Ставьте задачу как человеку

Плохо: «переведи на русский». Хорошо — с контекстом и требованиями:

system = """Ты профессиональный переводчик IT-документации EN→RU.
Правила:
- Термины из глоссария переводи строго по нему.
- Названия продуктов, API-методы, код — НЕ переводи.
- Тон — технический, на "вы", без канцелярита.
- Сохраняй Markdown-разметку и порядок абзацев."""

Глоссарий — обязательная часть

Без глоссария модель переведёт один термин тремя способами на трёх страницах. Подавайте его прямо в промпт:

glossary = {"deployment": "развёртывание", "rollback": "откат",
"endpoint": "эндпоинт", "rate limit": "лимит запросов"}
system += "\n\nГлоссарий:\n" + "\n".join(f"{k} → {v}" for k, v in glossary.items())

Сохранение разметки

Главная боль автоперевода — модель ломает разметку: съедает **, переводит текст внутри код-блоков, путает плейсхолдеры вроде {count}. Явно запрещайте это в промпте и проверяйте результат регуляркой на баланс тегов. Плейсхолдеры лучше защитить: перед переводом заменить на __PH_0__, после — вернуть.

Батчи и консистентность

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

resp = client.chat.completions.create(
model="deepseek-pro",
messages=[{"role": "system", "content": system},
{"role": "user", "content": json.dumps(strings, ensure_ascii=False)}],
temperature=0.2,
response_format={"type": "json_object"},
)

Низкая temperature для перевода критична: 0.1–0.3. Творчество тут враг.

Грабли

  • Слишком буквально или слишком вольно. Просите «естественный русский, а не подстрочник, но без отсебятины».
  • Форма обращения. Модель скачет между «ты» и «вы». Фиксируйте явно.
  • Единицы и форматы. Даты, валюты, десятичные разделители под локаль — либо просите адаптировать, либо оставляйте как есть, но решите заранее.

Для контроля качества прогоняйте обратный перевод на выборке: RU→EN и сравнивайте смысл с оригиналом. Это дешёвый способ поймать грубые искажения до релиза.