Этот сайт создан как клуб русификаторщиков. Для нас существуют три основных правила.
1. Мы никому и ничего не должны!
2.Один пришедший на сайт толковый русификаторщик дороже всех пользователей.
3. Мы делаем русификаторы для своего сайта, но в оригинале ими могут пользоваться все в интернете.
Хотел локализовать небольшую программу, но столкнулся с трудностью. Radialix не находит в содержимом файла необходимых слов для перевода.
Берем инструмент анализа РЕ-файлов. Смотрим
Файл накрыт протектором Babel.NET. Ищем в Инете, чем его можно снять. Снимаем, проверяем программу в работе (инструментов по снятию протекторов много, но не все дают положительный результат).
Анализ файла программы со снятым протектором.
Файл чистый. Работает стабильно. Можно заняться локализацией.
Спасибо за подсказку, Leserg! Снятием протекторов я еще не занимался. Теперь задумался, где найти описание технологии этого: есть ли здесь на сайте такое описание, или искать в Справках к инструментам по снятию.
Итак, снял я протектор. Без него программа запускается абсолютно так же, как и с протектором. НО! Занялся локализацией. Стоило через Radialix написать в одной строке русский вариант (Добавить новую вкладку), как проверочная команда "Запускать локализованный (F9)" перестала работать. Вместо обычного запуска возникает уведомление "Прекращена работы программы QuickEditor". Файл скриншота загрузил; надеюсь, что пройдет.
Leserg, извините за дополнительный вопрос. Как решается такая проблема?
Сообщение отредактировал Смотрящий 6 октября 2023 - 12:46
Это был выбор поиска "Add new tab". Результат двоякий с двумя скриншотами. 1 То, о чем я писал, что файл загружен, начата одна строка и запущена проверка F9, но проект еще не сохранен, относится к ситуации Form1. 2 То же самое, но сначала проект сохранен, тогда тот же поиск по Add new tab нашел эти слова не в Form1, а в #US.
1
2
Сообщение отредактировал greg 7 октября 2023 - 10:49
Обычно на эти сообщения никто не обращает внимание. А что такое "Сериализация", знаете?
Коротко: ошибка говорит о том, что некий объект содержит неизменяемый набор данных. То есть эти данные нельзя изменять. Если их (данные) все же модифицировать, то программа или какая-то её часть перестанет работать.
Так как Radialix вытаскивает строки из кода, то в любом случае, на этапе создания локализованного файла, все найденные в коде программы объекты и их свойства собираются заново. В это в свою очередь приводит к изменению сериализованных данных, если таковые имеются. Чтобы этого не происходило, необходимо дать Radialix'у указание, чтобы он такие ресурсы оставил без изменений.
В данном случае этим объектом является компонент webClient1 со свойством QueryString в ресурсах Form1, о чем и говорит журнал сообщений Radialix.
Что нужно сделать, чтобы Radialix эти данные не обрабатывал? Правильно, установить для этого ресурса флаг "Только для чтения".
Так как в этой программе все строки находятся в коде, а не в ресурсах, то переводить их нужно в разделе #US.
Общее правило для всех программ на Dot.Net: если строки в коде, то переводим их в разделе #US, а на ресурсы форм, которые восстановил Radialix, ставим флаг "Только для чтения".
Предвижу вопрос: "А как тогда редактировать элементы на форме, делать растяжки, позиционировать?" Ответ: "Делать это напрямую в коде при помощи НЕX/.Net-редакторов. Вы все равно не сможете это сделать в дизайнере, так как программа станет не рабочей."
Есть вариант с полной декомпиляцией .Net программы в проект C# Microsoft Visual Studio, его редактирование и сборкой нового приложения. В этом варианте у вас появляется полная свобода действий: можно убрать не нужные функции, добавить собственные, полностью перестроить интерфейс, добавить языковую поддержку и т.д. и .т.п Но все ли из вас могут программировать на С#? К тому же это возможно только на простых приложения .Net.
А есть ещё один вариант, когда ни первый (Radialix), ни другой с приложением Net не справляется: декомпиляция в IL код. Это что-то листинга программы на ассемблере, но для платформы Net. Также можно перевести строки, отредактировать интерфейс, при необходимости изменить ресурсы и собрать обратно в исполняемый файл, но необходимо разбираться в командах опкодов.
И это еще не все варианты локализации программ Net. Пока же самый доступный для вас вариант - это Radialix. Дерзайте!
1 часть комментария. Сама программа, как я и писал, небольшая, и с подсказкой уважаемого Leserg удалось ее быстро локализовать, но хотелось бы немного подправить размещение надписей в Настройках этой программы. Чуть сдвинуть надписи вверх, влево, какую-то чуть удлинить. Места в диалоге хватает.
Сообщение отредактировал greg 10 октября 2023 - 21:12
Часть 2 комментария. Но в Справке из Radialix 3, как и в других учебно-справочных материалах не удалось найти точного описания этой темы. Возможно, из-за несоответствий сведений в этой Справке тому, что мы фактически имеем в Radialix 3. Например, упомянутые в Справке "Вид>Панели инструментов" или "Вид>Настроить" якобы со вкладкой "Панели инструментов" в Radialix отсутствуют. В другом нашедшемся диалоге Radialix "Настроить" тоже нет такой вкладки. Неясен переход от редактирования надписей в строках к редактированию геометрии, размещению, размеров этих строк.