Не удалось загрузить файлы локализованного ресурса

Обновлено: 06.07.2024

Выполните действия, приведенные в этой статье, для устранения ошибок, возникающих при работе с облачными документами.

Ошибка загрузки или файл не найден: эта ошибка возникает, когда вы нажимаете некэшированный облачный документ, чтобы загрузить и открыть его из раздела Недавние на главном экране или выбрать облачный документ из меню Файл> Открыть недавние .

Выберите команду Файл > Открыть и найдите облачные документы.

networkError - Система облачных документов обнаружила, что ваш компьютер либо не подключен к сети, либо соединение прерывается. Обычно это приводит к тому, что облачные документы переходят в автономный режим.

noInternetConnection - Система облачных документов обнаружила, что ваш компьютер либо не подключен к сети, либо соединение прерывается. Обычно это приводит к тому, что облачные документы переходят в автономный режим. В этом случае приложение думает, что вы пытаетесь работать с документом, предназначенным только для работы в интерактивном режиме.

Автономный режим

Устройство не в сети

operatingOnOnlineOnlyAssetWhileDeviceIsOffline - Система облачных документов обнаружила, что ваш компьютер либо не подключен к сети, либо соединение прерывается. Обычно это приводит к тому, что облачные документы переходят в автономный режим. В этом случае приложение думает, что вы пытаетесь редактировать документ, предназначенный только для работы в интерактивном режиме.

Невозможно просмотреть фотографии в облаке.

Проверьте наличие подключения к Интернету. Если вы считаете, что с подключением к Интернету все в порядке, но все еще видите эту ошибку, закройте Photoshop Elements, а затем остановите процесс CoreSync (либо с помощью Activity Monitor в macOS, либо в диспетчере задач в Windows).

После остановки процесса CoreSync запустите Photoshop Elements и проверьте, возникает ли ошибка. Если ее не удалось устранить, обратитесь в Службу поддержки клиентов Adobe.

Невозможно просмотреть фотографии

Невозможно просмотреть фотографии в облаке

syncingFailed - Приложение пытается синхронизировать изменения, внесенные локально, и заменить их на настройки в облаке или синхронизовать изменения, заданные в облаке, и заменить их на изменения на локальном компьютере. Не удалось синхронизировать изменения из-за неработающего или отключенного соединения с Интернетом.

Проверьте подключение к Интернету, выполнив действия, описанные в разделе: Устранение ошибок подключения

Если вы считаете, что с подключением к Интернету все в порядке, но все еще видите эту ошибку, закройте Photoshop Elements, а затем остановите процесс CoreSync (либо с помощью Activity Monitor в macOS, либо в диспетчере задач в Windows).

После остановки процесса CoreSync запустите Photoshop Elements и проверьте, возникает ли ошибка. Если ее не удалось устранить, обратитесь в службу поддержки клиентов Adobe.

Ошибка синхронизации

Ошибка синхронизации

requestTimedOut - Система облачных документов либо не подключена к сети, либо соединение прерывается.

Повторите операцию, сбой которой произошел. Иногда запрос не выполняется из-за медленного соединения с Интернетом. Вторая попытка часто оказывается успешной.

Проверьте подключение к Интернету, выполнив действия, описанные в разделе: Устранение ошибок подключения.

Если вы считаете, что с подключением к Интернету все в порядке, но все еще видите эту ошибку, закройте Photoshop Elements, а затем остановите процесс CoreSync (либо с помощью Activity Monitor в macOS, либо в диспетчере задач в Windows).

После остановки процесса CoreSync запустите Photoshop Elements и проверьте, возникает ли ошибка. Если ее не удалось устранить, обратитесь в службу поддержки клиентов Adobe

Локализация программ

Готовые решения, просьбы о переводе см. Работы участников 4PDA

Последнее время ко мне в личку как к местному толмачу начали поступать вопросы от начинающих авторов, касающиеся проблем перевода приложений 4 pda. В чем-то я могу помочь разобраться, что-то сам не знаю.
Я задумал эту тему для обмена опытом по локализации программ, в которой, я надеюсь, примут участие как опытные переводчики, так и начинающие.

По мере накопления полезной информации будет развиваться и шапка темы, где я планирую формировать ссылки на посты наших авторов по различной тематике.

Итак, начнем? :yes2:

Прикрепленное изображение

4pda совместно с компанией Radialix Software проводит специальную акцию - Профессиональный инструмент для локализации приложений Radialix 2 - бесплатно.

Сначала отвечу на вопросы:

И скажите плиз на будущее (или где прочитать) какой алгоритм перевода?
1) Нужно ли перед редактированием снимать цифровую подпись?
2) Нужно ли после редактирования ставить подпись обратно?
3) Нужно ли переведенный mui переименовывать в *0419 или оставлять как есть *0409?

Почитать, увы, не знаю где. Все своим опытом.
1. и 2. В зависимости от инструмента. Вообще-то не нужно.
3. Да. Именно по номеру кодовой страницы программа и определяет какой язык использовать. Механизм MUI работает следующим образом: Программа определяет какой язык установлен в системе (через регистр) и выбирает соответствующий файл mui, если таковой отсутствует используется язык, на котором реализовано приложение.

Поскольку Самсунга у меня нет, проверить Ваши ошибки я не могу. Однако, посмотрев Ваши файлы могу сказать следующее:
Файлы ShortcutPicker.exe, TodayContainer.dll и TodaySelector.dll переводить не нужно. Для перевода в данном случае служат mui. Если сильно хочется иметь перевод TodaySelector.dll можно попытаться создать TodaySelector.dll.0419.mui

Слово ShortcutSamsungToday как мне кажется переводить не следует, т.к. оно является переменной для разных модулей программы. Возможно есть и другие переменные, которые не следует переводить - определяется методом проб и ошибок.

В архиве Вы найдете мой перевод MUI для этой программы.
SamsungToday_0419.mui.zip ( 3.08 КБ )

Я также добавил их в оригинальный САВ, чтобы можно было сразу установить. Попробуйте.
samsungntoday_ru.cab ( 1.99 МБ )

Замечания: 1). Я не перевел название Touch Player - м.б. есть уже устоявшийся перевод?
2). В русских ROM Today принято называть Сегодня. Я омставил оригинальное название, но можно заменить.

Создание локализованных приложений

Многие разработчики мечтают о всемирной популярности своих приложений, но почти никто не создает локализованных версий своих приложений, ошибочно полагая, что программа должна сначала завоевать популярность. Локализованные версии – это первый шаг к завоеванию мирового господства!

В этой статье я расскажу о создании локализованных версий приложений и, подробнее, о локализации следующих ресурсов:

Кроме того, в качестве бонуса, я покажу, как работать с локализованными значками и курсорами! Но сначала…

Несколько замечаний по локализации приложений

  • Если вы хотите создать действительно многоязычное приложение, то нужно использовать Unicode-версии функций Win32 API. Для этого при сборке проекта необходимо определить символ UNICODE (и _UNICODE, если вы используете CRT). Кстати, для работы со строками в Unicode не рекомендуется использовать функции CRT. Используйте их аналоги из Win32 API.
  • Но помните, что собранное таким образом приложение будет работать только на Windows NT/2K/XP.
  • Для диалоговых окон используйте только шрифт “MS Shell Dlg”. Это фиктивный шрифт, который соответствует реальному, установленному в системе шрифту и способному отображать слова на выбранном пользователем, в настройках Windows, языке. В Resource Editor выбрать этот шрифт нельзя. Меняйте прямо в .rc файле, на работоспособности редактора ресурсов это не отразится.
  • Если в ресурсах будут использоваться символы национальных алфавитов (например, умляуты для немецкого языка), то сначала нужно перекодировать .rc файл проекта из Windows-кодировки в Unicode. В Windows 2000 для этого можно использовать блокнот. Нужно открыть файл, выбрать «Сохранить как», кодировка – Unicode. Именно так и сделано в демонстрационном приложении. Правда, после этого он перестанет открываться в Resource Editor.

Во многих примерах из этой статьи будет использоваться функция LoadResourceLang. Вот ее исходный текст:

Как видите, ничего сложного. Она просто загружает ресурс указанного типа с указанным идентификатором. При этом загружается ресурс на основном языке, который пользователь выбрал в настройках Windows (Панель управления > Языки и стандарты). Если такой ресурс загрузить не удается, функция пытается загрузить ресурс на английском языке.

Диалоговые окна

Для создания локализованного диалогового окна нужно указать в его свойствах требуемый язык и набрать все строки в этом диалоговом окне на выбранном языке. Для загрузки диалогового окна с нужным языком необходимо написать следующий код:

Сначала мы находим ресурс диалога на нужном нам языке, затем загружаем его и передаем функции DialogBoxIndirect(Param) как указатель на структуру DLGTEMPLATE. Хитрость состоит в том, что ресурсы диалоговых окон лежат внутри файла в виде корректно сформированных структур DLGTEMPLATE, поэтому не нужно прикладывать никаких дополнительных усилий для создания диалога из указателя на ресурс.

Если вы используете MFC, то в классе, производном от CDialog необходимо перегрузить метод DoModal и написать в нём следующий код (всё остальное оставьте без изменений):

Работа с меню на разных языках во многом аналогична работе с диалоговыми окнами. Вот пример кода, загружающего локализованное меню:

Как вы, наверное, уже догадались, ресурс меню представляет собой корректную структуру MENUTEMPLATE. Поэтому работа с локализованными меню также не должна вызвать затруднений.

Информация о версии

Поскольку приложению редко приходится работать со своей «информацией о версии» (обычно это делают специальные утилиты), я не буду описывать её получение. Скажу лишь, что Win32 API предоставляет набор функций, которые позволяют сделать это без особых ухищрений.

Для добавления в приложение локализованной «информации о версии» вам следует добавить не новый ресурс Version Info, а в уже существующий добавить новый Version Info Block и выбрать для него требуемый язык.

На что именно будет заменена та или иная комбинация символов, вы можете указать, написав такую последовательность символов: %n!x!, где x – один из форматных символов функции printf. Например, если вы хотите, чтобы на место первой специальной комбинации символов было подставлено беззнаковое число, напишите следующее: %1!u!. По умолчанию считается, что на место всех спецпоследовательностей будут подставляться строки.

Исходный файл таблицы строк обрабатывается компилятором mc (Message Compiler), который в результате своей работы создает:

  • .h-файл с идентификаторами строк для включения в проект;
  • .rc-файл для включения в .rc-файл вашего проекта;
  • несколько .bin-файлов (точнее столько, на скольких языках имеются строки в исходном файле).

Формат исходного файла для компилятора mc я описывать не буду, так как он очень прост. Подробнее вы можете ознакомиться с ним здесь.

Такой хитрый способ передачи значений используется потому, что паскалевская конвенция вызова (__stdcall), которая используется в Win32 API, не позволяет передавать переменное число аргументов.

Таблицы строк

Вот мы и подошли к самому неприятному моменту. Дело в том, что Win32 API принципиально не поддерживает работу с таблицами строк на нескольких языках, поэтому нам придется собственноручно написать аналог функции LoadString:

Поясню принцип работы этой функции: строки хранятся в ресурсах (в кодировке Unicode) группами по 16 штук, и минимальная загружаемая единица – это группа строк. Каждая группа имеет свой идентификатор, который равен идентификатору первой строки в группе плюс 1. После того, как мы загрузили нужную группу строк, мы ищем (последовательным перебором) нужную строку в группе. Строки внутри группы хранятся следующим образом:

Длина строкиТекст строкиДлина строкиТекст строки
2 байта(длина строки)*2 байт2 байта(длина строки)*2 байт

Тем, кто знаком с COM, это напомнит строки BSTR. При переборе мы просто прибавляем к текущему значению указателя длину строки плюс 1. Обратите внимание, что завершающий нулевой символ у строк отсутствует! Такое поведение компилятора ресурсов можно изменить, указав при компиляции ключ /n.

Любая группа строк всегда заполнена полностью. На местах отсутствующих строк находятся слова, хранящие длину строки, в которые записаны нули. Например:

13Просто строка5Текст000

Вот, собственно, и все. Теперь, при необходимости, нужно перевести строку из Unicode в ANSI и скопировать в предоставленный пользователем буфер.

Обратите внимание, что наша реализация имеет полезную особенность, отсутствующую у LoadString. Если передать ей при вызове в качестве длины буфера 0, то она вернет размер загружаемой строки, не считая завершающего нуля.

Значки и курсоры

А теперь обещанный бонус – локализованные значки и курсоры! Это непростая задача, но ее решение стоит того. Представьте, как было бы удобно использовать эту возможность, например, в индикаторах клавиатуры! Итак, приступим:

Вы наверняка знаете, что один ресурс значка (или ico-файл) может содержать значки разного размера и с разной глубиной цвета. Один такой «сложный» значок (называемый Icon Directory) и определяется идентификатором, который вы видите в редакторе ресурсов. Каждый «простой» значок имеет свой уникальный идентификатор, который, в общем случае, не равен идентификатору каталога. С помощью функции LookupIconIdFromDirectory можно получить идентификатор значка из группы, указатель на которую передан ей в качестве одного из параметров. Функция возвращает идентификатор значка, который, по ее мнению, лучше всего подходит к текущим параметрам экрана.

Затем необходимо загрузить значок с полученным идентификатором и передать указатель на него функции CreateIconFromResource. Функция по данным, определяемым этим указателем, и другой переданной информации создаст значок и вернет его дескриптор.

Для того чтобы загрузить не значок, а курсор, нужно передать нашей функции LoadIconLang в качестве последнего параметра false.

Вот, собственно, и все, что я хотел рассказать про создание локализованных приложений. Приложение - пример к статье умеет полностью изменять язык интерфейса на тот, который вы выберете в настройках Windows. Приложение поддерживает следующие языки:

  • Русский
  • Английский
  • Немецкий
  • Украинский

Помните, что видеть на экране слова на родном языке значительно приятней, чем на чужом!

Некоторые Windows сталкиваются с ошибкой «Не удалось загрузить файл локализации оверлея» всякий раз, когда они пытаются запустить Steam обычным способом. Сообщается, что эта проблема возникает в Windows 7, Windows 8.1 и Windows 10.


Способ 1. Удаление файла clientregistry.blob из папки Steam

Если вы используете старую сборку Steam для определенных действий (например, для запуска модифицированных версий игры), может появиться ошибка «Не удалось загрузить файл локализации оверлея» из-за поврежденных данных, хранящихся в файле clientregistry.blob.

Примечание: имейте в виду, что если вы используете более новую версию Steam, ваша установка Steam больше не будет содержать файл clientregistry.blob.

Однако, если вы используете более старую версию Steam, вы можете удалить этот файл, чтобы заставить клиент Steam обновить большинство временных файлов, которые могут вызвать эту проблему.

Если вы не знаете, как это сделать, следуйте приведенным ниже инструкциям:

    Откройте утилиту File Explorer и перейдите в корневой каталог, в который вы установили Steam. По умолчанию это расположение: C: Program Files Steam.

Примечание. Если вы установили Steam в произвольном месте, перейдите туда.

Если та же проблема все еще возникает, перейдите к следующему потенциальному исправлению ниже.

Метод 2: откройте Steam от имени администратора

Несколько затронутых пользователей, которые столкнулись с той же проблемой, подтвердили, что им, наконец, удалось решить проблему, заставив Steam открыться с правами администратора.

Для этого просто щелкните правой кнопкой мыши основной исполняемый файл Steam или ярлык на рабочем столе и выберите «Запуск от имени администратора» во вновь появившемся контекстном меню.


Запуск Steam от имени администратора

Если это позволяет вам открыть Steam, не столкнувшись с той же ошибкой «не удалось загрузить файл локализации оверлея», вам следует сделать это поведение по умолчанию, чтобы избежать появления такой же проблемы в будущем. Вот краткое руководство, которое проведет вас через процесс:

  1. Начните с того, что убедитесь, что Steam полностью закрыт и фоновые процессы не выполняются.
  2. Затем откройте «Мой компьютер» или «Проводник» и перейдите в место, где вы установили Steam. По умолчанию вы найдете свою установку Steam здесь: C: Program Files (x86) Steam
  3. Как только вы окажетесь в нужном месте, щелкните правой кнопкой мыши Steam.exe и выберите «Свойства» в появившемся контекстном меню.Доступ к экрану свойств Steam
  4. После того, как вы окажетесь на экране «Свойства», перейдите на вкладку «Совместимость» из меню ленты вверху, затем перейдите в меню «Настройки» и установите флажок «Запускать эту программу от имени администратора».
    Настройка исполняемого файла игры с правами администратора.
  5. Наконец, нажмите кнопку «Применить», чтобы сделать изменения постоянными и запустить Steam в обычном режиме.

Если принудительный доступ администратора в Steam не помог вам, перейдите к следующему потенциальному исправлению ниже.

Метод 3: внесение Steam в белый список брандмауэра Windows (если применимо)

По словам некоторых затронутых пользователей, вы также можете ожидать увидеть ошибку «не удалось загрузить файл локализации оверлея» из-за некоторых настроек безопасности, установленных вашим Брандмауэр Windows. В определенных обстоятельствах вы можете заметить, что ваш встроенный пакет безопасности иногда решает поместить в карантин допустимые исполняемые файлы игры и заблокировать Steam от связи с главным сервером.

Примечание. Та же проблема может возникнуть с некоторыми эквивалентами брандмауэра сторонних производителей.

Однако в этом руководстве мы сосредоточимся на тех случаях, когда брандмауэр Windows вызывает ошибку из-за ложного срабатывания. Если вы попали в этот сценарий, следуйте приведенным ниже инструкциям, чтобы установить правило белого списка для вашего брандмауэра Windows, чтобы гарантировать, что Steam не будет препятствовать взаимодействию с основным сервером.

Вот что вам нужно сделать, чтобы внести в белый список исполняемый файл Steam, папку загрузки и порты, используемые при загрузке и установке обновлений:

Если та же проблема все еще возникает, перейдите к следующему потенциальному исправлению ниже.

Метод 4: переустановка Steam


    Нажмите клавишу Windows + R, чтобы открыть диалоговое окно «Выполнить». Затем введите «appwiz.cpl» в текстовое поле и нажмите Enter, чтобы открыть окно «Приложения и функции».Введите appwiz.cpl и нажмите Enter, чтобы открыть страницу установленных программ.

Примечание. Если вам будет предложено UAC (Контроль учетных записей пользователей), нажмите Да, чтобы предоставить доступ администратора.

Примечание. Если вы установили автономные режимы или другие приложения, зависящие от Steam, также удалите их.

Читайте также: