Обслуживание пользователя, который создаёт заявку на другом языке, тормозит работу: специалист выделяет текст, вставляет его во внешний переводчик, возвращается в GLPI, отвечает — и повторяет всё это с каждым новым комментарием. Модуль Translate от NexTool убирает эти переходы туда и обратно, переводя описание и комментарии прямо в хронологии заявки, по запросу, на язык сессии того, кто ведёт обращение.
Проблема
Тем, кто управляет службой поддержки для клиентов или филиалов на нескольких языках, знакома картина: заявка приходит на английском, французском или испанском, специалист выделяет текст, открывает вкладку переводчика, вставляет, читает, возвращается в GLPI и пишет ответ. С каждым комментарием инициатора цикл начинается заново. Помимо медлительности, процесс вырывает текст из контекста заявки — история становится разорванной, а перевод исчезает, как только вкладка браузера закрыта.
Обычный выход — просить самого инициатора писать на языке поддержки — перекладывает неудобство на клиента и ухудшает впечатление как раз при первом контакте. Для команды, обслуживающей международных клиентов, язык не должен становиться операционным препятствием в каждом сообщении.
Как это работает
Translate воспроизводит в архитектуре модулей NexTool поведение плагина перевода от Teclib — с той разницей, что не привязывает вас к одному сервису. Он работает внутри хронологии заявки:
- Перевод по элементам, по запросу: у каждого элемента хронологии (описание, комментарий, задача, согласование или решение) есть собственный переключатель перевода, который чередует оригинальный и переведённый текст. Ничего не переводится массово — специалист переводит только то, что ему нужно прочитать.
- Язык сессии: перевод выполняется на язык интерфейса вошедшего пользователя. Многоязычная команда работает с одной и той же заявкой, и каждый специалист читает на своём языке, ничего не перенастраивая.
- Три провайдера на ваш выбор: DeepL, Google Cloud Translation или ИИ (LLM от OpenAI, Google Gemini или Anthropic Claude). Выбирается провайдер — целевым языком остаётся язык сессии.
- Кэш переводов: результат сохраняется и используется повторно. Один и тот же текст не переводится — и не оплачивается — дважды. Кэш учитывает версию содержимого: отредактированный комментарий переводится заново, неизменённый берётся из кэша.
- Зашифрованные ключи API: ключ провайдера хранится в зашифрованном виде (через GLPIKey в GLPI), а не открытым текстом в настройках.
- Область действия по организациям и журналы: модуль можно ограничить определёнными организациями (с наследованием для дочерних) и записывать, кто переводил, когда, через какого провайдера, на какой язык и сколько символов было отправлено, с настраиваемым уровнем журналирования (переводы попадают в журнал начиная с уровня info).
- Встроенная проверка подключения: прежде чем открыть доступ команде, кнопка проверяет настроенные ключ и провайдера.
DeepL, Google или ИИ: выбор, который имеет значение
Все три провайдера хорошо переводят одноязычный текст. Разница проявляется — и мы обнаружили это на сопровождении — в заявках, многоязычных в пределах одного документа, а это реальный случай для тех, кто получает лиды и формы обратной связи.
DeepL и Google Translate в REST API с автоматическим определением исходного языка выбирают один язык на весь документ. В заявке-лиде, описание которой в основном на португальском (метки шаблона: «Nome:», «Empresa:», «Mensagem:»), а сообщение клиента — на французском, провайдер определяет португальский как преобладающий язык, назначает целевым португальский и возвращает почти идентичный текст — фрагмент на французском остаётся нетронутым. Мы подтвердили это на реальной тестовой заявке: весь документ определялся как PT (no-op для французского), тогда как тот же французский фрагмент отдельно определялся как FR и переводился правильно. Столбец исходного языка в кэше модуля не оставляет сомнений.
# Descrição de um chamado de lead (rótulos em PT + mensagem em FR)
Nome: ...cliente...
Empresa: ...empresa francesa...
Mensagem: Bonjour, je souhaite un devis... Merci.
# DeepL / Google (source=auto) - detecção de UM idioma por documento
detected_source_language = "PT" -> alvo pt_BR -> trecho FR NÃO traduzido (no-op)
# O mesmo trecho FR, isolado:
detected_source_language = "FR" -> traduz certo ("Olá... Obrigado")
# Provedor IA (OpenAI / Gemini / Claude) - documento inteiro como contexto
-> traduz qualquer trecho fora do idioma-alvo, sem detecção única
Вывод с точки зрения эксплуатации: для международных клиентов и многоязычного содержимого в одном документе правильный провайдер — ИИ, который семантически переводит любой фрагмент не на целевом языке, используя весь документ как контекст. DeepL и Google остаются отличными — и более дешёвыми — для заявок, написанных целиком на одном языке. Поэтому модуль оставляет выбор провайдера за вами и не навязывает какой-то один.
| Провайдер | Лучше всего подходит для | Многоязычный документ (метки + сообщение) | Типичная стоимость |
|---|---|---|---|
| DeepL | Качество для европейских языков, одноязычный текст | Определяет 1 преобладающий язык — второстепенный фрагмент может остаться без перевода | За символ |
| Google Cloud Translation | Широкий охват языков, высокая доступность | То же ограничение единого определения языка | За символ |
| ИИ (OpenAI / Gemini / Claude) | Контекст, естественный тон и многоязычное содержимое | Переводит любой фрагмент не на целевом языке | За токен |
Как включить
- В GLPI откройте плагин NexTool и перейдите в каталог модулей.
- Найдите Translate (Ticket Translator) и нажмите «Включить».
- Откройте настройки модуля, перейдите на вкладку Интеграции, выберите провайдера (DeepL, Google или ИИ) и вставьте соответствующий ключ API — он сохраняется в зашифрованном виде.
- На той же вкладке Интеграции запустите проверку подключения, чтобы проверить ключ, прежде чем открыть доступ команде.
- При желании настройте область действия по организациям, срок хранения кэша и журналов и уровень журналирования. После этого переключатель перевода появится у элементов хронологии заявок.
Ежедневная процедура очистки (автоматическое действие GLPI, выполняемое системным cron) удаляет старые журналы и кэш согласно настроенному сроку хранения, чтобы модуль не накапливал данные бесконечно.
Кому это подходит
Translate имеет смысл для служб поддержки, обслуживающих клиентов, филиалы или поставщиков на нескольких языках, — и особенно для тех, кто получает лиды и формы с международных сайтов, где в одной заявке смешиваются языки. Он также помогает распределённым командам, где каждый специалист предпочитает читать на своём языке.
Когда это не оправдано: если вся работа и все клиенты используют один язык, модуль ничего не добавит — и вы избежите расходов на API перевода. Если политика обработки данных запрещает отправлять содержимое заявок во внешние сервисы, тщательно оцените провайдера, потому что перевод по своей природе отправляет текст выбранному провайдеру; в этом случае ограничьте область действия по организациям и рассматривайте выбор провайдера как решение в области конфиденциальности.
Совместимость
- GLPI: 11.x, поверх базового плагина NexTool.
- План: бесплатный — Translate распространяется без платы за лицензию через каталог модулей NexTool.
- Внешнее требование: ключ API выбранного провайдера (DeepL, Google Cloud Translation или LLM от OpenAI/Gemini/Claude), оплачиваемый по факту использования самому провайдеру.
Следующий шаг
Translate входит в NexTool. Если ваша команда теряет время, переключаясь между GLPI и внешними переводчиками с каждым сообщением, свяжитесь с командой, и мы поможем выбрать подходящего провайдера для вашего сценария.
Проверено командой NexTool Solutions.