Локализация больших кодовых баз с помощью LLM: Рабочий процесс разработчика для 4500 UI-ключей

Разработчик задокументировал свой процесс локализации крупного игрового проекта с примерно 4500 ключами интерфейса, хранящимися в файле en-US.json размером 500 КБ. Он использовал многоэтапный рабочий процесс с LLM для обработки извлечения, перевода и улучшения качества.
Первоначальные попытки извлечения и перевода
Сначала он использовал Claude для сканирования кодовой базы, извлечения жёстко заданных строк интерфейса и их миграции в стандарты i18n, создав файл локали. Для перевода на итальянский он изначально попробовал Claude и Gemini Pro (через Gemini CLI и Antigravity). Обе облачные модели выдавали переводы неприемлемого качества. Gemini Pro также столкнулась с ошибками из-за большого файла, потребовав его разделения на 10 меньших частей.
Переход на локальные модели и ключевое прозрение
Затем он попробовал TranslateGemma локально через LM Studio, переводя ключ за ключом. Хотя качество было немного лучше, оно всё ещё оставалось неприемлемым. Ключевым прозрением стало то, что слова в интерфейсе часто неоднозначны, и для перевода требуется устранение неоднозначности и контекст использования.
Чтобы решить эту проблему, он вернулся к Claude для создания второго файла. Для каждого из 4500 ключей Claude анализировал использование в коде, чтобы предоставить контекст: где появляется строка, её функция (метка кнопки, описание, подсказка для ввода) и её влияние на игровой процесс.
Финальный конвейер перевода
Он построил автоматизированный конвейер перевода со следующими шагами:
- Группировка ключей вместе с их сгенерированным контекстом.
- Использование промпта, сфокусированного на функциональном (а не буквальном) переводе.
- Обеспечение сохранения заполнителей и тегов.
- Отправка запросов локальной модели через LM Studio.
TranslateGemma не справилась с форматом промпта, насыщенного контекстом, поэтому он сменил модели. Тестирование проводилось на Mac Mini M1 с 16 ГБ унифицированной памяти.
Производительность моделей и результаты
Qwen 3 4B показала хорошие результаты, но Qwen 3 8B оказалась оптимальной, допуская меньше грамматических ошибок и предлагая лучшие формулировки, оставаясь при этом управляемой для локального запуска. Финальный конвейер может перевести более 4500 ключей на несколько языков, занимая примерно 8 часов на одну локаль на его машине. Он использует квантованную модель, чтобы можно было продолжать работу, пока она выполняется в фоновом режиме.
Разработчик отмечает, что этот подход дал качество, достаточное для выпуска, и показался ему лучше, чем многие автоматически переведённые проекты, которые он видел.
📖 Read the full source: r/LocalLLaMA
👀 Смотрите также

Развертывание AI-ресепшионистов для локального бизнеса с помощью OpenClaw и Retell AI
Разработчик внедрил AI-ресепшионистов с использованием OpenClaw и Retell AI для обработки звонков в местных сервисных компаниях, за первую неделю записав 7 встреч из 23 звонков при затратах в $4.12.

Разработчик делится подходом SALT к созданию системных промптов для более совместного взаимодействия с ИИ.
Разработчик с более чем 80 сессиями работы с Claude обнаружил, что отношение к ИИ как к участнику, а не как к инструменту, улучшает качество результатов. Получившаяся система промптов SALT доступна на GitHub.

Разработчик восстановил расширение для Chrome за 7 дней с помощью Claude после того, как миграция на Google MV3 "убила" оригинал.
Разработчик перестроил расширение Chrome, его API, веб-сайт и агента контроля качества за 7 дней с помощью Claude после того, как миграция Google с Manifest V2 на V3 уничтожила оригинальную версию. Расширение находит реальные скидки на Amazon в 21 домене и получило 4000 установок за первую неделю.

Использование Claude Haiku в качестве фильтра для снижения затрат на API Sonnet на 80%
Разработчик создал двухэтапный конвейер, используя Claude Haiku для фильтрации 85% неструктурированного текста перед отправкой только релевантного контента в Claude Sonnet, что сократило затраты на API примерно на 80% при обработке тысяч комментариев.