Rav Translate - рантайм-перевод приложений Clarion ABC на лету

Программы на Clarion, шаблоны, библиотеки и пр.

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
gopstop2007
Полимат
Сообщения: 1894
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 33 раза
Поблагодарили: 15 раз

Rav Translate - рантайм-перевод приложений Clarion ABC на лету

Сообщение gopstop2007 »

Проблема, которую решает шаблон
Если приложению на Clarion (ABC-темплейты) нужна поддержка нескольких языков интерфейса — стандартных средств для этого по сути нет. Либо вручную городить свою систему переводов и обвешивать ей каждое окно, либо сидеть на ExtractText из ABUTIL, который не даёт ни редактора, ни переключения языка на лету, ни точечных переопределений перевода.

Rav Translate — самостоятельный ABC-шаблон, который добавляет полноценный рантайм-перевод в приложение практически без участия разработчика: не нужно вручную оборачивать каждый control или переписывать существующие окна.
Что делает
  • Автоматически переводит все окна приложения — подписи, кнопки, заголовки колонок списков/browse, включая главное MDI Frame-окно (меню) — без единой строчки кода в самих окнах.
  • Переключает язык интерфейса "на лету", без перезапуска — уже открытые окна перерисовываются сразу.
  • Даёт встроенный редактор переводов: поиск по тексту, фильтр "только это окно", выбор языка (можно добавлять/удалять языки прямо из редактора), кнопка "Переводы..." доступна на любом окне.
  • Поддерживает точечные переопределения — для конкретного окна и конкретного контрола можно задать свой перевод, который перекрывает общий (пример: "Наименование" переводится как "Name" везде, но в одной конкретной колонке — как "Nm.").
  • Переводит произвольные строки и MESSAGE() через явный вызов (Translator.TranslateString) — и заголовок, и тело сообщения.
  • Экспорт/импорт списка непереведённых строк в TSV (2 колонки: RecID + текст, сопоставление строго по RecID) — можно перевести самому спомощью переводчика (например: Google Переводчик) или прогнать через машинный перевод и вернуть обратно.
  • В комплекте — три готовых Python-скрипта пакетного автоперевода (Google Cloud Translate, DeepL, Yandex Translate) с одним общим CLI-интерфейсом: экспортировал из приложения → прогнал скриптом → импортировал обратно.
  • Горячая клавиша открытия редактора переводов, настраивается один раз глобально на всё приложение.
Язык по умолчанию

При первом запуске приложения (пока не создан RAVLANG.INI) язык интерфейса определяется настройкой шаблона, а не жёстко зашит в коде. Указывается в свойствах глобального расширения Rav Translate (Application Tree → Global Extensions → Rav Translate → global part):

Поле "Язык по умолчанию при первом запуске (пока нет RAVLANG.INI)" — впишите код языка (EN, RU или любой другой), который должен использоваться при самом первом запуске приложения у конечного пользователя.
По умолчанию (если поле не менять) стоит EN.
После первого запуска выбранный язык записывается в RAVLANG.INI, и дальше приложение всегда стартует именно с ним — эта настройка шаблона больше не используется, пока RAVLANG.INI не удалят вручную.
Вложения
scripts.zip
Скрипты для машинного перевода с помощью API
(17.27 КБ) 1 скачивание
School_Rav.zip
Демо
(226.34 КБ) 4 скачивания
Последний раз редактировалось gopstop2007 27 Июль 2026, 21:49, всего редактировалось 4 раза.
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 6098
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 25 раз
Поблагодарили: 90 раз

Rav Translate - рантайм-перевод приложений Clarion ABC на лету

Сообщение finsoftrz »

Сейчас все переводчики вроде через AI работают. Такой перевод на лету требует оплаты за подключение к сервису? Насколько замедляется открытие окон и как обрабатываются динамические изменения надписей из кода? Я так понял, что постоянный доступ к интернет не нужен, перевод сохраняется в промежуточных файлах для каждого языка?
Основная проблема с переводами это разная длина слов в разных языках. Из того, что видел, всегда не очень хороший результат был с обрезаниями, смещениями, наслоениями и т.п.
C6/C12, ШВС, tps/btrieve.
gopstop2007
Полимат
Сообщения: 1894
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 33 раза
Поблагодарили: 15 раз

Rav Translate - рантайм-перевод приложений Clarion ABC на лету

Сообщение gopstop2007 »

finsoftrz писал(а): 27 Июль 2026, 11:03 Сейчас все переводчики вроде через AI работают. Такой перевод на лету требует оплаты за подключение к сервису? Насколько замедляется открытие окон и как обрабатываются динамические изменения надписей из кода? Я так понял, что постоянный доступ к интернет не нужен, перевод сохраняется в промежуточных файлах для каждого языка?
Основная проблема с переводами это разная длина слов в разных языках. Из того, что видел, всегда не очень хороший результат был с обрезаниями, смещениями, наслоениями и т.п.
Можно все перевести самому не используя AI. Но если лень, то есть возвожность сделать перевод разовый, если есть необходимость, чтобы самому не переводить, показал как пример.
Кто мешает ограничить длину перевода своим редактированием?
Последний раз редактировалось gopstop2007 27 Июль 2026, 11:21, всего редактировалось 1 раз.
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 6098
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 25 раз
Поблагодарили: 90 раз

Rav Translate - рантайм-перевод приложений Clarion ABC на лету

Сообщение finsoftrz »

А по вопросам что? :D
C6/C12, ШВС, tps/btrieve.
gopstop2007
Полимат
Сообщения: 1894
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 33 раза
Поблагодарили: 15 раз

Rav Translate - рантайм-перевод приложений Clarion ABC на лету

Сообщение gopstop2007 »

Вот визуально
Вложения
tran1.png
trans2.png
trans3.png
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
gopstop2007
Полимат
Сообщения: 1894
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 33 раза
Поблагодарили: 15 раз

Rav Translate - рантайм-перевод приложений Clarion ABC на лету

Сообщение gopstop2007 »

finsoftrz писал(а): 27 Июль 2026, 11:16 А по вопросам что? :D
Не понял вопрос? )
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
gopstop2007
Полимат
Сообщения: 1894
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 33 раза
Поблагодарили: 15 раз

Rav Translate - рантайм-перевод приложений Clarion ABC на лету

Сообщение gopstop2007 »

Вот еще
Вложения
trans4.png
trans5.png
trans6.png
trans6.png (10.71 КБ) 100 просмотров
Последний раз редактировалось gopstop2007 27 Июль 2026, 11:32, всего редактировалось 1 раз.
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
gopstop2007
Полимат
Сообщения: 1894
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 33 раза
Поблагодарили: 15 раз

Rav Translate - рантайм-перевод приложений Clarion ABC на лету

Сообщение gopstop2007 »

Как надеюсь по фото можно понять, что можно перевести любой кусок теста в любом месте )
Вложения
trans7.png
trans8.png
trans9.png
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Ответить