...

Переводчик имен контекстных переменных на английский

Тема в разделе "Примеры решений и дополнительных модулей", создана пользователем f.nikolaev, 16 фев 2022.

  1. f.nikolaev

    f.nikolaev Участник

    Текущая ситуация.

    Каждый раз когда мы создаем раздел, приложение, бизнес процесс или новую контекстную переменную, ELMA 365 преобразует их имена с помощью “транслита” в “кодовое имя”, которое будет использоваться в скриптах. При этом “транслит” по понятным причинам в компании не приветствуется.

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

    В связи с этим возникла идея создания переводчика, который бы взял эти функции на себя.

    Описание решения.

    Так как исходный код ELMA мы не изменяем, переводчик построен на виджете с расширением - Корневой компонент, который вешает глобальный слушатель на window.

    Каждые 2 секунды слушатель проверяет, существует ли на странице input с атрибутами name=”name” или formcontrolname=”name”, а также аналогичные поля со значением "code". Именно такие атрибуты имеют элементы input для ввода имен контекстных переменных и названий разделов, приложений и бизнес процессов.

    Если такие элементы input существуют, то на форме добавляется кнопка:
    [​IMG]

    У приложения два режима работы (указывается в настройках модуля):
    • автоматический, при этом кнопка не активна, перевод и заполнение “кодового имени” происходит по истечении 500 мс. после окончания ввода текста в input,
    • ручной, кнопка активна, перевод и заполнение происходят по нажатию на кнопку.
    В интернете в свободном доступе можно найти api для перевода текста. В данном приложение используется часть кода от сюда:
    https://github.com/dejurin/php-google-translate-for-free

    Заполняться переведенным текстом будет соответственно input с атрибутами name=”code” или formcontrolname=”code”. Заполнение происходит путем изменения значения input.value, а также через методы свойства __ngContext__ элемента ввода.

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

    Установка решения.

    Виджет с приложением располагается в модуле.
    Скачать модуль можно из вложения к статье.
    Посмотреть код можно здесь:
    https://gitint.elewise.com/public-projects/elma-context-translator

    Чтобы переводчик заработал, достаточно импортировать модуль к себе, включить и перезагрузить страницу.
    Если кнопка переводчика спустя какое-то время перестала появляться, попробуйте так же обновить страницу.

    В связи с изменениями реализации фронтенда EMLA365, произошедшими в сентябре 2022 года версия переводчика v1.03 перестала работать.
    Выложена измененная версия переводчика - v1.042.
    Версия имеет следующие изменения:
    - переводчик не подставляет полученный перевод в поле Code на форме,
    - после получения перевода он отображается в подсказке под полем для ввода имени переменной на форме,
    - полученный перевод копируется в буфер обмена автоматически,
    - для вставки перевода выделите текст в поле Code на форме и нажмите сочетание клавиш Ctrl+V.

    Вложения:

    Последнее редактирование: 17 фев 2023
  2. elma

    elma Участник

    Браво, спасибо!:):)
  3. pushkar

    pushkar Новичок

    Это гениально, спасибо.
  4. f.nikolaev

    f.nikolaev Участник

    Привет!
    Сделал несколько доработок:
    - теперь поддерживается стандартный режим настройки формы,
    - в момент запуска сценария по получения перевода иконка переводчика меняет цвет на зеленый,
    - добавлена обработка запрещенных символов.
    Если вы заметили, что иконка переводчика перестала появляться рядом с элементами форм, попробуйте перезагрузить страницу.
  5. kurbatov-la

    kurbatov-la Активный участник

    А где найти обновлённую версию?
  6. f.nikolaev

    f.nikolaev Участник

    Она обновлена в приложении к основному тексту статьи.
  7. sobenevskiyap

    sobenevskiyap Новичок

    Добрый день! Есть возможность реализовать под "православный" переводчик?
  8. f.nikolaev

    f.nikolaev Участник

    Здравствуйте! Реализовать можно под любой переводчик, если есть доступ к его АПИ. Яндекс Переводчик бесплатно услугу не предоставляет, нужен токен.
    Если у Вас есть токен для Яндекса, либо другого переводчика, я смогу доработать решение.
  9. nskobochkin

    nskobochkin Новичок

    Добрый день. Почти все время в консоли сыпет ошибками что слишком много запросов и не переводит.
    [​IMG]
  10. f.nikolaev

    f.nikolaev Участник

    Добрый день! Вероятно, связано с лимитами на количество переводов. Напишите мне в личку, пожалуйста, на какой площадке возникли такие проблемы (прод, стейдж, онперм).
  11. f.nikolaev

    f.nikolaev Участник

    В связи с изменениями реализации фронтенда EMLA365 текущая реализация переводчика перестала работать.
    К данному сообщению привязана измененная версия переводчика.
    Версия имеет следующие изменения:
    - переводчик не подставляет полученный перевод в поле Code на форме,
    - после получения перевода он отображается в подсказке под полем для ввода имени переменной на форме,
    - полученный перевод копируется в буфер обмена автоматически,
    - для вставки перевода выделите текст в поле Code на форме и нажмите сочетание клавиш Ctrl+V.

    Вложения:

    Последнее редактирование: 16 сен 2022
  12. v.sabirov

    v.sabirov Участник

    Не работает(, выдает такую ошибку в панели (первая строка) /api/disk/wopi/discovery:1 Failed to load resource: the server responded with a status of 500 ()
    Что может быть?
  13. f.nikolaev

    f.nikolaev Участник

    Уточните, какую версию переводчика используете, а также где: на облаке или онпреме? По возможности приложите скриншоты.
    Сейчас проверил на своих стендах - ошибок не получил.
  14. adc

    adc Новичок

    Подтверждаю, краснеет и работать не хочет, можем подебажить вместе
    OnPremise
    2023.1.20

    пятисотит с "Error: Error server script: Too Many Requests", , unknown

    сервер тестовый - один юзер, есть принудительный редирект на 443 через 301
    Последнее редактирование: 10 мар 2023