Lina: инженер локализации
Роль
Lina — встроенный ИИ-сотрудник, зарегистрированный плагином локализации. Она специализируется на переводе локализации системы: переводит записи локализации на целевой язык, сохраняя переменные, заполнители, теги, форматирование и лаконичность формулировок интерфейса.

Lina — специализированный ИИ-сотрудник для сценариев локализации и не использует общие навыки и инструменты.
Сценарии
- Пакетный перевод записей системы и плагинов.
- Перевод локализованного контента коллекций, полей и меню.
- Быстрая генерация начального перевода для вновь включённого языка.
- Инкрементальный перевод уже существующих, но ещё не переведённых записей.
- Перевод только выбранных записей в таблице.
Предварительные требования
Перед использованием Lina выполните следующую настройку:
- Включите плагин Управление локализацией.
- Настройте доступную службу LLM и назначьте модель по умолчанию для Lina. См. Настройка моделей ИИ-сотрудников и Рекомендации по моделям.
- Включите целевой язык в настройках системы.
- Синхронизируйте з аписи для перевода на странице управления локализацией.
Lina создаёт задачи перевода для текущей языковой среды. Например, если текущая языковая среда интерфейса — тайский, задача сгенерирует переводы на тайский язык.
Настройка промпта
Откройте диалог редактирования Lina в разделе Настройки системы -> ИИ-сотрудники -> ИИ-сотрудники и настройте промпт в Настройка роли. Промпт обычно используется для определения информации о предметной области, правил терминологии и ограничений вывода. Он не должен быть слишком длинным, иначе может плохо работать со специализированными моделями перевода.

Пример промпта по умолчанию:
Эталонные переводы и текст для перевода не нужно записывать в промпт Lina. При создании задачи система автоматически добавляет их на основе содержимого записи, целевого языка и конфигурации эталонного языка в диалоге подтверждения.
Использование
На странице управления локализацией нажмите аватар Lina и выберите одну из областей задач ИИ-перевода.
Инкрементальный перевод
Переводятся только записи, для которых ещё нет перевода на текущий язык. Подходит для ежедневного сопровождения после добавления плагинов, полей или меню.
Для встроенных записей: если перевод уже существует в языковом пакете системы или плагина для целевого языка, запись считается уже переведённой, даже если соответствующая строка ещё не записана в таблицу переводов локализации, и не учитывается в инкрементальном переводе.
Перевод выбранного
Сначала выберите записи в таблице, затем выберите перевод выбранного. Подходит для повторного перевода небольшого набора записей или записей, требующих ручной правки.
Если ни одна запись не выбрана, система предложит сначала выбрать записи.
Полный перевод
Переводятся все подходящие записи для текущего языка. Подходит при создании первой версии для вновь включённого языка.
Полный перевод может перезаписать существующие переводы. Перед запуском подтвердите целевой язык, количество записей и службу модели.
Подтверждение задачи
Перед созданием задачи система показывает диалог подтверждения с:
- описанием задачи;
- количеством записей для перевода;
- используемым провайдером;
- используемой моделью;
- конфигурацией языка эталонного перевода.
Для полного и инкрементального перевода в диалоге подтверждения также можно выбрать область перевода:
- Все: обработать все записи, соответствующие условиям текущей задачи.
- Встроенные записи: записи системы и плагинов.
- Пользовательские записи: имена маршрутов, имена коллекций и полей, а также контент интерфейса.
Перевод выбранного обрабатывает только записи, уже выбранные в таблице, поэтому область перевода не отображается. Также показывается только одна общая конфигурация языка эталонного перевода, без разделения встроенных и пользовательских записей.
Если количество записей для перевода равно 0, система уведомляет пользователя и не создаёт фоновую задачу. После подтверждения система создаёт фоновую задачу. Ход выполнения можно просмотреть в асинхронных задачах. По завершении переводы записываются на соответствующий язык.

Эталонные переводы
Некоторые записи короткие, например имена полей, подписи кнопок и статусы. Lina по возможности использует существующие эталонные переводы для повышения согласованности.
- Для встроенных записей по умолчанию эталоном служит китайский перевод, запасным эталоном — японский.
- Для пользовательских записей по умолчанию эталоном служит язык системы по умолчанию, запасным эталоном — китайский.
- Пользователь может изменить язык по умолчанию и запасной язык в диалоге подтверждения задачи.
- Система сначала использует эталонный перевод на языке по умолчанию. Если его нет, пробует запасной язык.
Когда эталон доступен, Lina использует промпт со следующей семантикой:
Рекомендации по моделям
Перевод локализации обычно обрабатывает много записей в одной задаче. По возможности сначала используйте локально развёрнутую специализированную небольшую модель перевода, потому что у онлайн-моделей часто есть лимиты API, ограничения параллелизма или лимиты токенов в минуту. При переводе большого числа записей ограничение частоты может сильно замедлить задачи или привести к ожиданию или сбою части запросов.
Если локальное развёртывание невозможно, используйте специализированную модель перевода, а не общую чат-модель. Модели перевода обычно лучше подходят для коротких записей, текста интерфейса и пакетного перевода. Lina формирует из промпта сотрудника, эталонных переводов и текста для перевода запрос, отправляемый модели. Пользователь может настроить промпт Lina, чтобы управлять стилем и правилами перевода.
Можно настроить параллелизм запросов в соответствии с возможностями модели, чтобы лучше контролировать пропускную способность, время отклика и стоимость.
Полный практический пример с локально развёрнутой специализированной небольшой моделью перевода см. в Использование Lina и локального HY-MT1.5-1.8B для перевода записей локализации.
Параллелизм задач перевода локализации управляется переменной AI_LOCALIZATION_CONCURRENCY. Значение по умолчанию — 10, допустимый диапазон — от 1 до 20; значения вне диапазона заменяются значением по умолчанию.
Ход выполнения и обработка ошибок
Задачи перевода Lina выполняются как фоновые асинхронные задачи. Задача записывает результаты перевода по одной записи и обновляет прогресс.

Если перевод записи не удался, задача фиксирует сбой и останавливается, чтобы не продолжать запись неконтролируемых результатов при аномалиях вызова модели, вывода модели или конфигурации. Частые причины:
- плагин ИИ или плагин «Менеджер асинхронных задач» не включён;
- для Lina не настроена доступная модель;
- служба модели недоступна или превышено время ожидания;
- служба модели не поддерживает текущий формат запроса;
- модель вернула пустой контент.
Проверьте детали асинхронной задачи и серверные логи: провайдер, модель, целевой язык, ID записи с ошибкой и длительность вызова модели.
Проверка перед публикацией
После завершения ИИ-перевода проверьте результат перед публикацией:
- соответствуют ли короткие записи вроде меню, кнопок и имён полей контексту продукта;
- сохранены ли переменные, заполнители и HTML-теги;
- согласована ли бизнес-терминология;
- естественны ли формулировки на важных страницах и в пользовательском тексте;
- если переводы встроенных записей перезаписаны, вернитесь в управление локализацией и при синхронизации выберите
Reset system built-in entry translations, чтобы восстановить значения по умолчанию. Чтобы внести переводы по умолчанию для системы и официальных плагинов, см. Вклад в переводы. - опубликуйте переводы после проверки.

