...

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

Тема в разделе "Скрипты и разработка", создана пользователем 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
  15. zaycev_a

    zaycev_a Участник

    Да, что-то не работает. Вроде бы сначала попереводил. Потом натолкнулся на ошибку - был красный значок и потом отказался работать.
    Ошибка вышла, как только наткнулся не непонятное ему слово типа сокращения "ЦК".
    Попробовал на SaaS. Из за неудачи на онпрем разворачивать не стал.