@DragonZH смастерил русификатор текста для популярного космического рогалика Void War.
@DragonZH смастерил русификатор текста для популярного космического рогалика Void War.
Корень проблемы заключается в различиях между средами выполнения пользовательских скриптов в Tampermonkey (и аналогичных расширениях) и в AdGuard. В вашем логе ошибок ключевой момент - ReferenceError: unsafeWindow is not defined.
Объект unsafeWindow - это специфический API, предоставляемый большинством специализированных менеджеров пользовательских скриптов. Он дает скрипту привилегированный доступ к глобальному объекту window страницы и его переменным. Это необходимо для корректного взаимодействия с функциями и данными, которые использует сам Steam.
Судя по всему, среда выполнения скриптов в AdGuard не предоставляет этот специфический объект unsafeWindow, что и приводит к ошибке. Поскольку скрипт разрабатывался и тестировался в окружении Tampermonkey, где этот API гарантированно есть, возникает данная ошибка совместимости.
В предыдущих версиях скрипта (например, 1.9.5) большинство модулей работало через прямые API-запросы к серверам Steam (с помощью GM_xmlhttpRequest). Для этого не требовался доступ к контексту самой веб-страницы, и стандартного объекта window было достаточно.
В процессе разработки версии 2.0.0 были добавлены новые, более сложные функции, в частности “Помощник подарков в списке желаемого” (wishlistGiftHelper). Его задача - работать с уже загруженным на странице списком игр. Steam помещает эти данные в глобальную JavaScript-переменную g_rgWishlistData, которая является свойством объекта window самой страницы.
Здесь и возникает ключевая техническая проблема: из-за политики безопасности браузеров пользовательские скрипты выполняются в изолированной среде (песочнице). Простое обращение к window из скрипта дает доступ к window этой песочницы, а не страницы. Поэтому window.g_rgWishlistData возвращало undefined.
Решением этой проблемы стало unsafeWindow. После чего я решил стандартизировать его использование во всех частях скрипта.
В теории этот полифил должен сработать для части модулей. Он проверяет наличие unsafeWindow и, если его нет, создает локальную переменную с таким же именем, присваивая ей стандартный объект window.
Но есть нюанс. Простое приравнивание unsafeWindow к window не всегда является полноценной заменой. Как уже упоминалось, некоторые модули, типа “Доступность подарков (список желаемого)”, зависят от unsafeWindow для доступа к данным, которые Steam загружает динамически (к глобальному массиву с играми g_rgWishlistData). Из-за изоляции контекстов скриптов, стандартный window может не дать доступа к этим данным. В связи с этим, у меня есть вопрос: После использования того костыля, корректно ли работает функционал помощника подарков на странице списка желаемого? Загружаются ли игры после нажатия “Собрать данные”?
Во первых - МегаТеном.
Во вторых — дилогия про Козуноху еще на PS2 была.
----------------------------------
Ах да. Я собственно зашел спросить — “а для Свич версии игры перевод планируется”?
Куда вход на сайт убрали и ЗАЧЕМ? Хотел файл скачать, там только медленная загрузка и “зарегистрируйтесь”. Все. Пришлось вручную страницу входа прописывать.
Добрый вечер.
Подскажите пожалуйста, у вас не осталось случайно исходников для фикса на широкоформатные мониторы для игры Vampire The Masquerade Redemption?
Если да, то не могли бы вы ими поделиться, а если нет, то прошу прощенья что побеспокоил.
Заранее спасибо.
Здраствуйте! Извините, а можно попросить ссылку на место где можно взять перевод (патч или образ игры с переводом) El Shaddai: Ascension of the Metatron для ps3, пожалуйста? А то в теме к этой игре у меня не получилось найти работающие ссылки… Первая ведет в группу в которой удалены большинство постов, а пост с этой игрой ведет на сайт https://psnext.ru который сейчас не имеет отношения к видеоиграм.