Знакомство с механизмом перевода.
Поскольку программа MultiPSK более похожа на комбайн с рычагами, чем на авто с рулем - это значительно затрудняет не только первое, но даже и третье знакомство с материальной частью ... Случайно узнав, что в программе поддерживается русский язык, я попытался найти русификацию, но это оказалось совсем непросто ... Чуть позже выяснилось, что русский язык используется в работе цифровыми видами связи на передачу, и то - с некоторыми оговорками ...
При этом, хоть автор и запретил явную модификацию и совместное использование программы в комплексе радиоаппаратуры, фактически - указал способ перевода программы на любой язык. Однако, по порядку ...
На сайте автора программы (французский радиолюбитель Patrick Lindecker, позывной F6CTE) есть страница файлы перевода MultiPSK, где уточняется, что этим делом занимаются переводчики-добровольцы. Для пользователей Ham (радиолюбителей) и SWL (радионаблюдателей), которые не читают по-английски или по-французски, можно использовать файл перевода, который позволяет перейти с французского или английского - на желаемый язык.
Особенности :
- Текст программы расположен в файлах-скелетах (Skeleton_....TXT), на английском и французском языке.
- Файл Skeleton представляет набор строк оригинального текста, чередующиеся пустыми строками; ниже (в пустой строке) - допускается подставлять перевод верхней строки. Если перевода нет, или он не нужен в этом месте - оставляется пустая строка, и тогда, для этой позиции - применяется оригинальная фраза, без перевода.
- Так как программа не привязывается к ПК - достаточно положить файлы трансляции языка в папку с программой.
- После редактирования, приставку Skeleton_ нужно удалить, иначе программа - не увидит и не загрузит файл перевода.
- Язык переключается после запуска окна конфигуратора программы, в главном меню.
- Для каждого модуля : Clock (радио часы), Multipsk (радио декодер) и OMMap (карта) - есть и нужен свой файл перевода.
- Файлы Skeleton_ нужны для первоначального перевода; при обновлении версии программы - используется утилита MULTIPSK CLOCK LANGUAGE FILES UPDATING.exe, которая используя уже имеющиеся файлы перевода - формирует из новой версии новые скелеты с именем New_, где нужно отредактировать новые пустые места, чтобы обновить содержимое. По готовности - также нужно удалить префикс New_, чтобы имя файла стало правильным и приемлимым для загрузки в программу ...
Ну вот, вроде бы и ничего сложного ... А почему бы и нет? Тем более, понимая назначение кнопок, можно будет их тыкать - более осознанно и цененаправленно ... Тем более, как вы помните, я ищу кнопку авто идентификатора протокола ... Как уже было упомянуто, кнопок и настроек - много, а непонятных слов и пунктов меню - ещё больше ...
Путь (план) - перевести все подстроки вручную - отвалился через некоторое короткое время знакомства с файлами перевода ...
- Clock : 355 строк.
- MultiPSK : 7420 строк.
- OMMap : 283 строки.
Для начала, пришла мысль промаркировать все строки, чтобы понимать, какая строка программы где находится на экране / в окне, и связать ее с файлом перевода. Для автоматизации ручной обработки были выбраны CMD и Python. Первая проблема : контроль за стандартами совместимости текстовых кодировок. Windows 10 работает в UTF-8, а MultiPSK в ANSI Windows-1252.
Подключение ИИ к работе над переводом.
Ну, вот, теперь стало намного понятнее и приятнее ориентироваться в сложных и запутанных взаимосвязях текстовых подсказок, изобилующих радиотехническими терминами. Кстати, для каждого файла перевода - требуется своя обработка, тройная работа, для каждого модуля - отдельно. Вторая мысль была предложить эту работу искуственному интеллекту. Зарегистрироваться в облачном сервисе, научиться работать с современными технологиями, подключить ИИ и выполнить задание. С другой стороны - компьютер тоже надо научить работать с ИИ, и проще всего опять же сделать это через Python и API. Управляющий скрипт, с ИИ под капотом, сделал эту работу за 4 часа времени ... Но к чему это привело?
Наличие подписей строк безусловно облегчило работу, но не ускорило её, попутно вскрыв некоторое количество дополнительных проблем. Крякозябры в тексте MultiPSK (и других старых Windows‑программах) обычно связаны с несовпадением кодовых страниц, с тем, как программа интерпретирует текстовые данные в конкретной локализованной системе. Старые программы
- использует ANSI‑кодировки;
- зашивают тексты прямо в ресурсы интерфейса;
- не поддерживают Unicode полноценно ...
- Когда система и шрифт не могут корректно сопоставить кодовую страницу, появляются нечитаемые крякозябры ...
И, что с этим делать ? Похоже, ничего с этим не сделать, кроме как,
- учить английский или французский;
- полностью переписывать программу;
- например, грубо локализовать её через Resource Hacker, в нарушение авторских прав;
- пользоваться легально полу / частично переведенной версией.
Созданный ИИ агентом текстовый файл потребовал ручной правки съехавших строк и неадекватных ответов, хотя конечно, большая часть материала - соответствовала ожиданиям. С другой стороны, сама программа MultiPSK не отразила перевод ожидаемо - длинные тексты не влезали в узкие фиксированные рамки оконного интерфейса, а переводы переливались французскими крякозяблами ... Попытка отследить непереводимые строки, занести номера в специальный отдельный файл, создать сложный управляющий алгоритм, какой текст переводить, а какой затем - транслитерировать на латино / английское написание для поддержки читаемости ... Подключение этого комбайна к ИИ, с обрезкой слов короче 15 символов, чтобы ускорить процесс и сделать обработку ИИ более экономичной - результат стал: в 2 раза быстрее, в 10 раз дороже, но не в 10 раз лучше ... Практически - то же самое ... Или, эта задача - слишком сложная для ИИ, или, нужна иная (более дорогостоящая) мультиагентая система ...
Кстати, вскрылась еще одна важная и неочевидная проблема ... Для достижения лучшего результата перевода, я исправил исходный базовый Skeleton_ файл, в котором обнаружелись странные артефакты:
- Русские буквы ...
- а = transmissions in the C band (3600 а 3629 MHz).
- в = On doit voir quadre tвches sйparйes.
- и = Load Paramиtres
- й = Connectй! Dйconnectй!
- ф = Cфte d'Ivoire
- ш = Replace "0" by "Ш" in the received text
- Sat_APT.Hint:=AFFICHAGE_TEXTE('NOAA satellites decoded by Multipsk // это похоже вообще кусок программной грыжи как то прокрался из кода прямо в этот файл ...
- Поэтому : если вы, по доброте душевной своей, решите исправить огрехи автора программы или переводчиков, то в лучшем случае - перевод будет работать неправильно, а в худшем - просто не загрузиться ... Перевод должен быть изготовлен строго по оригиналу шаблона скелета, даже если и сам скелетон - содержит встроенные ошибки ...
Важное примечание : некоторые формы окна программы загружаются из файла перевода - только в момент загрузки при запуске и не обновляются при нажатии кнопки переключения языка (пример строка 6261), это также нужно учитывать ))) ...
В поисках оптимального решения, некоторые символы и спецсимволы строк скелетона были заменены, но это все равно не явно повлияло на сдвиг нумерации строк выходного файла при ИИ обработке, что происходит и при работе с оригинальной версией. Для контроля съехавших строк (во время перевода) были созданы специальные двуоконные TXT / HTML Viewer(ы) для браузера, с синхронной построчной прокруткой текста в обоих окнах, для выявления разногласий в надписях.
После исправления якобы ошибок базовых строк скелетона - файл перевода перестал подключаться в программу, но при этом, сама программа работает так, как будто внутри неё самой - уже есть подобный файл (!). Так оно и есть, ведь после установки - не было никаких таких файлов в каталоге, но она - все равно запускалась и работала. С другой стороны, MultiPSK сравнивает не только имя файла, но и строки внутри, чтобы принять или отвергнуть перевод ... [Об этом явно указано в CHM справке.]
Итак, правильно : отдать машинное (перевод) - ИИ, а последующее ручное редактирование - делать локально (неизбежно) ...
- полностью обработать файл, перевести с помощью ИИ.
- вручную, би‑панельный HTML Viewer в браузере, чтобы привести строки в соответствие (устранить артефакты ответов ИИ).
- проанализировать полученный перевод на предмет возможных сокращений однотипных слов, фраз и нарушения перевода технических терминов (например ПСК вместо PSK).
- автоматизировано Python скриптом попытаться устранить артефакты перевода приведением к более читаемому виду.
- автоматизировано Python скриптом транслитерировать перевод (побуквенная замена) латиницей в английский упрощенный (Simple, не по GOST, хотя можно легко сделать и два перевода, на выбор).
- буквально весь программный код обработки (HTML / Python / API) был создан методом вайб-кодинга с помощью ИИ.
ВАЖНОЕ ПРИМЕЧАНИЕ! "Правильный" выбор ИИ - не имеет значния ... Это не сработает, пока вы не узнаете про "правило 29" ))) ...
Эту работу нельзя назвать полноценным переводом, это базис, который сообщество может поделить на / по 100 строк и перевести (причесать) сообща - за 1 день ))) ... Легко промаркировать основные пункты главного меню и форм (в большинстве поддерживают русский перевод), внести собственные имена пунктов меню (например : Макросы) и оставить большинство всплывающих подсказок - на транслите.
Пока я учился заниматься всем этим - вручную перевел на русский язык файл для модуля Clock (радио часы) и был впечатлен сложностью и многообразием выбора настроек и вариантов работы программы ... Не готов воспринимать некоторые устоявшиеся термины, в том числе, и из-за длины, и сути ...
- Последовательный порт = COM порт.
- Последовательность = Макрос.
- Return (Возврат) и Close (Закрыть) = если не Exit (Выход), то хотя бы Back (Обратно), смысл не меняется, а занимаемое место и время на чтение (осознание) значительно экономиться.
- Экран = окно, скорее.
- Ну и так, по мелочи. Например обязательные в английском the, a, of, an, to и прочие, при опускании в переводе незначительно снижают смысловое восприятие (на этом тоже можно сэкономить) ...
Чтобы быстро понимать возможность перевода фразы на русский, в отдельный файл перевода были включены префиксы "ру", которые сразу указывали на поддержку русского языка в этом месте программы. Но есть и обратная сторона медали : в одном месте / окне - одна и та же фраза - переводится, в другом - выглядит крякозяблой ... Второй трабл - номер строки уезжает влево, за границу видимости и умножает все усилия по переводу на 0 ))) ... Приходится открывать вторую копию софта, с отдельным файлом перевода, в котором только пустые нумерованные строки, и по номерам вычислять нехорошую строку ...
- если номер ру - переводите на здоровье; как правило это пункты главное меню;
- если номер до - ЭТО НЕ ПЕРЕВОДИТСЯ ... Это формы окна, где ру и до кодовые страницы отображаются вперемешку, нужен особый и явный контроль отображения ... Плюс очень плотный монтаж ...
- Именно поэтому, решение применить транслитерацию - стало одно из самых простых и навязанных практикой решений.
... Далее пропущены ещё несколько вариантов поиска оптимальных алгоритмов перевода ... Ничего интересного - обычная рутина ))) ...
- Конвентирование специальных символов UTF-8 в подходящие ANSI ...
- Контроль за сбоем оригинальных строк при обработке / конвертациях ...
- ИИ может вставить в перевод - любые UTF-8 символы, как ему заблагорассудится ))) ... Но искать / заменять их придется - вручную ... Исправляем возможное, но не убиваемся (с незначительной потерей символов) ...
- Проблема : короткое слово - длинный перевод - вообще не решается ...
- Как придерживаться единого стиля перевода ? ...
- Как обеспечить лучшую читаемость транслитерированных русских слов ? ...
Бодометр и Сдвигометр.
Разгребая эти и другие вопросы - наткнулся на кнопки авто анализа протоколов (это суть всей затеи изучения MultiPSK - найти кнопки автоматического определения скорости и сдвига протокола связи). И, действительно, такие кнопки есть ... Бодометр (baudmeter) и Сдвигометр (shiftmeter) ... Как интересно, baudmeter и shiftmeter работают и для FSK частотной манипуляции, а для PSK фазовой манипуляции также могут предложить наиболее вероятный режим, но только для BPSK ...
Анализатор сигнала (бодометр для полнодуплексной звуковой карты).
Для ARQ-E или ARQ-E3: бодометр, частотометр и сдвигометр.
Для BPSK бодометр (неточный) и предложение наиболее вероятного режима BPSK.
Для FSK (кроме ARQ-E и RTTY): бодометр, частотометр и сдвигометр.
Для FSK (AMTOR, PACKET, ARQ E и RTTY (с небольшой ошибкой)): бодометр, частотомер и сдвигометр. Необходимо дождаться стабилизации отображаемой частоты.
Для RTTY: бодометр (неточный), частотомер и сдвигомер.
Правило 29.
Во время работы над переводом программы MultiPSK было создано 45 скриптов Python автоматизированной обработки текста ... Впоследствии, большинство из них, оказались - не нужны ... Окончательный алгоритм русификации сформировался на основе следующих наблюдений и замечаний.
# Средняя длина строки в программе = 22 символа (включая стандартно известные слова интерфейса программ).
# Средняя длина внятного перевода ИИ = 35 символов.
# Правило 29 = 22 + 35 = 57 / 2 = 29 ...
# Все, что короче 30 символов - оставить как есть. Часть слов переводить бессмысленно. Перевод слишком длинный. ИИ плохо переводит фразы - обрывочные и вырванные из контекста. Много стандартных известных терминов взаимодействия с интерфейсом. Логично.
# Все, что длинее 29 символов - перевести. Длины, оригинал = перевод - выравниваются. ИИ хорошо переводит длинные осмысленные предложения. Длинные всплывающие подсказки в большинстве случаев отображают русские символы. Логично.
# Cимвол "^" в начале строки - отмечает строки главного меню.
# Cимвол "*" в начале строки - отмечает строки, исправленные вручную - к явно требуемому виду отображения.
Окончательный англо-русский перевод - полностью транслитерируется методом Simple (простой) - это хуже, чем русский, но понятней, чем английский ))) ...
Что дает этот алгоритм?
- по символу / метке сразу видно, что фраза уже модифицирована и не требует дополнительных действий.
- ручная правка и верификация - не может охватить все варианты поведения - проверены только основные и доступные окна.
- для RTL-SDR радио донгла: другое оборудование может открывать другие специфические окна, которые нельзя перевести заранее, не зная отображаемый язык текста (они уже переведены в транслите, и полностью совместимы с отображением латиницей).
- в любое время любая фраза (из доступных в файле перевода) может быть вручную модифицирована самим пользователем программы - без проблем ... Главное - не нарушать оригинальные строки скелетона.
Скачать русский перевод MultiPSK v4.49 русификация.
Архив ZIP перевода содержит подключаемые файлы русской локализации и файлы справки на русском.
Обратите внимание, файлы перевода на русский для версии v4.49 ...
Проверено только с RTL-SDR v3 (нет иного радио оборудования) ...
Файлы перевода для Clock, MultiPSK, OMMap ...
Важно : перед первым использованием нужно разблокировать файлы справки CHM, иначе справка - не будет работать ...
- правой кнопкой мыши на файле - свойства - разблокировать ...
- сборка CHM производилась под защитой антивируса DrWeb ...
Скачать русский перевод MultiPSK ZIP, 3,59 Mb (multipsk translate ru v4-49 2026 zip).
На этот проект я потратил почти месяц, и был приемлимо удовлетворён полученным результатом и новыми знаниями, однако, не был удовлетворён работой современного ИИ ))) ... Думаю, чтобы получить оптимально / идеальный перевод, потребуются серьёзные трудозатраты, месяцы кропотливой работы ... Перевод программы MultiPSK, это действительно сложная, многогранная и филигранная работа. Командный подход позволит ускорить процесс и улучшить результат, но не гарантирует большей экономии средств (разве что, если это не любительский коллективный проект). Сфера профессионального перевода, это принципиально иной уровень, нежели труд одиночки любителя.
0:11 21.01.2026
Связанные материалы.
FSK инфо декодирование - именно с этих размышлений начался очередной этап изучения работы радио протоколов, который неожиданно завершился проектом перевода программы MultiPSK на русский язык ...
Бинауральный эффект и радио - если вы не понимаете почему вы не понимаете как на слух различать фазовую манипуляцию PSK, то самое время ознакомиться с этим материалом ...
Радио модуляция - базовый обзор особенностей, общего и различий между AM, FM, PM, CW, SSB, FSK, PSK, RTTY ...
Обзор режимов MultiPSK от радиолюбителя F1ULT включая AMTOR, SITOR, BPSK, QPSK, CCW-OOK, CCW-FSK, CHIP, классическое CW, FSK (RTTY, ASCII, PACTOR, SYNOP), HF Fax, HELL, MFSK, THROB, DOMINO, MT63, AMTOR FEC NAVTEX, OLIVIA, PAX, PACKET APRS, PSK, DIGISSTV, SSTV ... Именно на этом материале я проводил первичное сравнение популярности применения FSK и PSK, и на основании большей упоминаемости PSK сделал неправильное заключение о смысле названия программы, именно как - MultiPSK (а не почему бы, например - MultiFSK) ... Только углубившись в перевод программы, в CHM справке я нашел правильное объяснение появления этого названия : просто автор программы сам является разработчиком радио протоколов PSK, PSKAM, PSKFEC, CCW-FSK, PAX, DIGISSTV, VOICE, LENTUS, и именно этим и можно объяснить перевес - не в сторону FSK ))) ...
Радио протоколы в 2025 году, возможно сохраняющие популярность в радио обмене информацией. Попытка собрать аудио- визуальные признаки идентификации наблюдаемых радио протоколов в одну таблицу, чтобы понять, как научиться идентифицировать радио сигналы на слух и по внешнему виду.
* Калькулятор идентификатор определения радиопротокола - пока всё еще остается не реализован, ввиду неоднозначности и объема входных данных. Прежняя попытка Идентификатор радиопротокола по программе Sorcerer - не является оптимальным вспомогательным решением ... И теперь я кажется понимаю, почему : свободные настройки протокола без ограничений - больше запутывают, чем помогают (но дают гораздо большую свободу осознанного выбора). Часть представленных в этом списке документов косвенно являются продолжением исследования темы аудио / визуальной идентификации радио протоколов. В частности, программа MultiPSK - более зажата стандартными рамками настроек параметров, а это предполагает более однозначные варианты выбора ...
Изучение вопросов технологий режимов модуляции плавно навело на мысли более детально исследовать программу MultiPSK, в которой решение автоматической идентификации радио протоколов уже могло быть частично реализовано. Русификация программы MultiPSK могла бы значительно помочь разобраться в деталях и тонкостях работы встроенных алгоритмов, но я не смог найти в интернете русский перевод этого софта.
Русификация CHM справки MultiPSK не было основной целью работы по переводу программы на русский язык, но в какой то момент это решение возникло спонтанно, как естественная и необходимая часть русскоязычной локализации ...
Звуковая карта в MultiPSK - какие требования, как идентифицировать оборудование и решать проблемы со звуком.
Примеры работы RTL SDR с программой декодером радио протоколов MultiPSK, а также декодирование станций, принятых через Web и Kiwi SDR онлайн программно-управляемое радио.