Служебные программы ресурсов
В этом разделе описаны две служебные программы, используемые для создания приложений MUI. Хотя MUIRCT является инструментом, зависящим от MUI, MUI также использует стандартную программу компилятора RC Windows. Инструкции по использованию этих служебных программ предоставляются в локализации ресурсов и создании приложения.
Программа MUIRCT
MUIRCT (Muirct.exe) — это служебная программа командной строки для разделения стандартного исполняемого файла на LN-файл и файлы ресурсов, зависящие от языка (то есть локализуемые). Каждый из полученных файлов содержит данные конфигурации ресурсов для сопоставления файлов. MUIRCT входит в пакет SDK Для Microsoft Windows для Windows Vista.
Заметка
Начиная с Windows Vista, загрузчик ресурсов Win32 обновляется для загрузки ресурсов из файлов, относящихся к языку, а также из файлов LN.
Использование MUIRCT
Разделение двоичного файла на основной двоичный и мьюи-файл на основе rc_config файла.
Muirct -q rc_config [-c checksum_file [-b LangID]] [-x LangID] [-g LangId] [-f] [-m] [-v level] source_file [output_LN_file] [output_MUI_file]
Извлеките контрольную сумму из checksum_file и вставьте ее в output_file.
Muirct -c checksum_file [-b LangID] -e output_file
Вычислите контрольную сумму на основе checksum_file и вставьте ее в output_file.
Muirct -c checksum_file [-b LangID] -q rc_config -z output_file
Содержимое данных конфигурации ресурсов дампа из input_file.
Muirct -d input_file
Синтаксис MUIRCT
MUIRCT может принимать направление от коммутаторов командной строки и (или) из файла конфигурации ресурсов, указанного с помощью коммутатора -q.
muirct [-h|-?] [ -c checksum_file] [-b langid] ]
[-g langid] [-q resource configuration file<RCF>] [-v level] [-x langid]
[-e output_file] [-z output_file] [-f] [-d MUI'ized file] [-m file_version]
source_filename [language_neutral_filename] [mui_filename]
переключатели и аргументы
Выбор | Цель |
---|---|
-h или -? | Отображает экран справки. |
-c | Указывает входные checksum_file, из которых необходимо извлечь или вычислить контрольную сумму ресурсов. Checksum_file должен быть двоичным файлом Win32, содержащим локализованные ресурсы. Если checksum_file содержит ресурсы для нескольких языков, параметр -b должен использоваться для указания того, какие из них следует использовать в противном случае сбоем MUIRCT. |
-b | Указывает язык, используемый, когда checksum_file, указанный с -c, содержит ресурсы на нескольких языках. Этот параметр можно использовать только в сочетании с параметром -c. Идентификатор языка может находиться в десятичном или шестнадцатеричном формате. Сбой MUIRCT, если checksum_file содержит ресурсы на нескольких языках, а -b не указан или если язык, указанный параметром -b, не найден в checksum_file. |
-g | Указывает идентификатор языка, который будет включен в качестве конечного резервного языка в разделе данных конфигурации ресурсов файла LN. Если загрузчик ресурсов не может загрузить запрошенный MUI-файл из предпочитаемых языков пользовательского интерфейса потока, он использует конечный резервный язык в качестве последней попытки. Значение LangID можно указать в десятичном или шестнадцатеричном формате. Например, английский (США) можно указать -g 0x409 или -g 1033. |
-q | Указывает, что source_file необходимо разделить на output_LN_file и output_MUI_file в соответствии с макетом файла rc_config. Файл rc_config — это XML-форматированный файл, указывающий, какие ресурсы будут извлечены в MUI-файл, и который будет оставлен в LN-файле. Rc_config может указать распределение типов ресурсов и отдельных именованных элементов между output_LN_file и output_MUI_file. Source_file должен быть двоичным файлом Win32, который содержит ресурсы на одном языке в противном случае сбой MUIRCT. MUIRCT не разделяет файл, если он является нейтральным языком, который указывается только значением идентификатора языка 0 в файле. Output_LN_file и output_mui_file — это имена нейтрального языка и MUI-файла, в который разделены source_file. Эти имена файлов являются необязательными. Если они не указаны, MUIRCT добавляет расширения Ln и MUI в source_file. Как правило, перед развертыванием файла следует удалить расширение .ln. MUIRCT связывает output_LN_file и output_MUI_file путем вычисления контрольной суммы на основе имени source_file и версии файла и вставки результата в раздел конфигурации ресурсов каждого выходного файла. При использовании в сочетании с параметром -c параметр -q имеет приоритет. Если файл rc_config, предоставленный параметром -q, содержит контрольную сумму MUIRCT, игнорирует параметр -c и вставляет значение контрольной суммы из значения, rc_config файл в файлы LN и MUI. Если значение контрольной суммы не найдено в rc_config, MUIRCT вычисляет контрольную сумму ресурсов на основе поведения коммутатора -c. |
-v | Задает уровень детализации для ведения журнала. Укажите 1, чтобы распечатать все основные сообщения об ошибках и результаты операций. Укажите 2, чтобы также включить сведения о ресурсе (тип, имя, идентификатор языка), включенные в файл MUI и LN-файл. Значение по умолчанию — -v 1 |
-x | Указывает идентификатор языка, с помощью которого MUIRCT помечает все типы ресурсов, добавленные в раздел ресурса файла MUI. Значение LangID можно указать в десятичном или шестнадцатеричном формате. Например, английский (США) можно указать -x 0x409 или -x 1033. |
-e | Извлекает контрольную сумму ресурсов, содержащуюся в checksum_file, предоставленной параметром -c, и вставляет его в указанный output_file. При указании -e MUIRCT игнорирует все коммутаторы, отличные от коммутатора -c. В этом случае checksum_file должен быть двоичным файлом Win32, который содержит раздел данных конфигурации ресурсов со значением контрольной суммы. Output_file должен быть существующим файлом LN или MUI-файлом. |
-z | Вычисляет и вставляет данные контрольной суммы ресурсов в указанный выходной файл. Вычисление контрольной суммы на основе контрольной суммы для входных данных, предоставленных параметром -c, и необязательным параметром -b. Если указать выходной файл для параметра -z, который не существует, MUIRCT завершает работу с ошибкой. Пример. Вычисляет контрольную сумму на основе локализованных ресурсов в Notepad.exe и вставляет контрольную сумму в выходной файл Notepad2.exe. muirct -c notepad.exe -q myprog.rcconfig -z notepad2.exe |
-f | Позволяет создать MUI-файл с ресурсом версии, который является единственным локализуемым ресурсом. По умолчанию MUIRCT не допускает это. |
-d | Находит и отображает внедренные данные конфигурации ресурсов в исходном файле. При указании этого параметра MUIRCT игнорирует все другие параметры командной строки. |
-m | Указывает номер версии, используемый при вычислении контрольной суммы для связывания output_LN_file и output_MUI_file. |
source_filename | Имя локализованного двоичного исходного файла; Подстановочные знаки нельзя использовать. Этот файл может содержать только ресурсы на одном языке. Если в файле есть ресурсы на нескольких языках, MUIRCT завершается ошибкой, если не используется параметр -b. Если файл содержит ресурсы с идентификаторами языка, имеющим только значение 0, MUIRCT не разделяет файл, так как идентификатор языка 0 указывает нейтральный язык. Для параметра -d source_filename — это LN-файл или файл ресурса, для которого MUIRCT предназначен для отображения данных конфигурации ресурсов. |
language_neutral_filename | Необязательный. Имя LN-файла. Если имя этого файла не указано, MUIRCT добавляет в исходное имя файла второй расширение .ln, чтобы использовать его в качестве имени файла, нейтрального на языке. Как правило, перед развертыванием файла следует удалить расширение .ln.
Примечание. LN-файл не должен содержать строки или меню. Их следует удалить вручную. |
mui_filename | Необязательный. Имя файла ресурсов для конкретного языка. Если имя не указано, MUIRCT добавляет в исходное имя файла в качестве имени файла второе расширение .mui. Как правило, MUIRCT создает файл ресурсов для конкретного языка. Однако он не создает файл ресурсов, если существуют какие-либо из следующих условий:
|
Выходные данные языка MUIRCT
MUIRCT выбирает значение атрибута UltimateFallbackLanguage для вставки в данные конфигурации ресурса LN в соответствии со следующим порядком, от самого высокого приоритета до самого низкого:
- Атрибут UltimateFallbackLanguage в файле конфигурации исходного ресурса, если он передается в качестве входных данных.
- Язык, указанный с параметром -g.
- Язык входных файлов.
MUIRCT выбирает значение атрибута language для вставки в данные конфигурации ресурса MUI в соответствии со следующим порядком:
- Атрибут language в файле конфигурации исходного ресурса, если он передается в качестве входных данных.
- Язык, указанный параметром -x (принудительный язык).
- Язык входных файлов.
Обработка контрольных сумм MUIRCT
Операционная система обычно вычисляет контрольную сумму для ресурсов, относящихся к языку, в файле, если не указать контрольную сумму с помощью файла конфигурации ресурса. Если контрольная сумма совпадает с файлом LN и всеми связанными файлами ресурсов для конкретного языка, а атрибут языка в конфигурации ресурсов в зависимом от LN и языка совпадает, загрузчик ресурсов может успешно загрузить ресурсы.
MUIRCT поддерживает несколько методов размещения соответствующих контрольных сумм в данных конфигурации ресурсов:
- Создайте исполняемый файл для каждого языка, содержащего как код, так и ресурсы. После этого используйте MUIRCT, чтобы разделить каждый из этих файлов на LN-файл и файл ресурсов для конкретного языка. MUIRCT выполняется несколько раз, чтобы создать файл ресурсов для каждого языка. Вы можете выполнить сборку следующими способами:
- Используйте параметр -q, чтобы указать значение контрольной суммы в файле конфигурации ресурса. MUIRCT помещает это значение во все файлы LN и файлы ресурсов, созданные на языке. Необходимо принять стратегию выбора этого значения, как описано далее в этом разделе.
- Используйте параметр -c (и, при необходимости, параметр -b) для выбора одного языка с ресурсами, из которых MUIRCT извлекает контрольную сумму.
- Используйте параметр -z, чтобы выбрать один язык с ресурсами, из которых MUIRCT всегда извлекает контрольную сумму. Примените эту контрольную сумму после создания файлов с помощью других методов.
- Создайте исполняемый файл, содержащий код и ресурсы для одного языка. После этого используйте MUIRCT, чтобы разделить ресурсы между файлом LN и файлом ресурсов для конкретного языка. Наконец, используйте двоичное средство локализации для изменения итогового файла ресурсов для каждого языка.
Наиболее распространенное соглашение об обработке контрольной суммы заключается в том, чтобы базировать контрольную сумму на английских (СОЕДИНЕННЫх Штатах) ресурсах. Вы можете принять другое соглашение, если оно согласовано для каждого LN-файла. Например, это совершенно приемлемо для предприятия разработки программного обеспечения, чтобы базировать свои контрольные суммы в программном обеспечении, которое он строит на французских (Франция) ресурсах вместо английских (Соединенных Штатов), если все приложения имеют французские (Франция) ресурсы, на которых базировать контрольные суммы. Также можно использовать файл конфигурации ресурсов для назначения произвольного шестнадцатеричного значения до 16 шестнадцатеричных цифр в качестве контрольной суммы. Эта последняя стратегия препятствует эффективному использованию коммутаторов MUIRCT -z, -c и -b. Для этого требуется внедрение метода с помощью GuidGen или другого средства для создания значений контрольной суммы. Эта стратегия также требует настройки политики для определения времени изменения значения при добавлении новых локализуемых ресурсов.
Чтобы применить контрольную сумму английского языка (США) ко всем файлам, можно использовать любой из методов обработки контрольной суммы, описанных выше. Например, можно создать файл LN и файл ресурсов на языке для английского языка (США), а затем использовать параметр MUIRCT -d для получения результирующей контрольной суммы. Эту контрольную сумму можно скопировать в файл конфигурации ресурсов и использовать параметр -q с ПОМОЩЬЮ MUIRCT, чтобы применить контрольную сумму ко всем остальным файлам.
Использование файла конфигурации ресурсов с MUIRCT
При использовании MUIRCT можно указать данные конфигурации ресурсов. Независимо от того, предоставляется ли файл конфигурации ресурсов явным образом, каждый файл ресурсов для конкретного языка содержит данные конфигурации ресурсов, как и любой LN-файл с соответствующим файлом ресурсов. Например:
- Если вы используете параметр -q для указания файла конфигурации ресурсов, но в входном исходном файле нет локализуемых ресурсов, файл ресурсов для конкретного языка не создается, а результирующий LN-файл не содержит данных конфигурации ресурсов. Кроме того, если входной исходный файл содержит многоязычные ресурсы, MUIRCT не разбиет файл.
Заметка
В настоящее время поведение MUIRCT несогласовано, если нейтральный элемент Файла конфигурации ресурса не содержит элементов resourceType, а локализованный элементResources содержит строки и меню, например. В таком случае MUIRCT разделяет ресурсы следующим образом:
- Все ресурсы в исходном двоичном файле (включая строки и меню), а также ресурсы MUI помещаются в LN-файл.
- Строки, меню и ресурсы MUI помещаются в соответствующий файл ресурсов для конкретного языка.
Примеры использования MUIRCT
примеры стандартного использования
muirct -q mui.MMF bar.exe barnew.exe barnew.exe.mui
muirct -d myprog.exe.mui
пример выходных данных файла LN с помощью -d коммутатора
Ниже приведен пример выходных данных конфигурации ресурсов из LN-файла Shell32.dllс помощью коммутатора -d с MUIRCT:
Signature - fecdfecd
Length - 148
RC Config Version - 10000
FileType - 11
SystemAttributes - 100
UltimateFallback location - external
Service Checksum - 14f44a8d86bef14af26d9a885964c935
Checksum - f5b3b7ab330439d6fcc07582c3afb613
MainNameTypes - AVI FTR ORDERSTREAM TYPELIB UIFILE XML MUI
MainIDTypes - 1 2 3 12 14 16 24
MuiNameTypes - MUI
MuiIDTypes - 2 3 4 5 6 9 14 16
UltimateFallbackLanguage - en-US
пример вывода файла ресурсов Language-Specific -d с помощью коммутатора -d
Ниже приведен пример выходных данных конфигурации ресурсов из MUI-файла Shell32.dll.mui, используя параметр -d для MUIRCT:
Signature - fecdfecd
Length - c8
RC Config Version - 10000
FileType - 12
SystemAttributes - 100
Service Checksum - 14f44a8d86bef14af26d9a885964c935
Checksum - f5b3b7ab330439d6fcc07582c3afb613
MainNameTypes - MUI
MainIDTypes - 2 3 4 5 6 9 14 16
Language - en-US
Программа компилятора RC
Компилятор RC (Rc.exe) — это программа командной строки для компиляции файла скрипта определения ресурса (расширение RC) в файлы ресурсов (расширение RES). Компилятор RC включается в пакет SDK для Windows. В этом документе объясняется только использование компилятора RC с возможностями, связанными с модулями ресурса. Полные сведения о компиляторе см. в о файлах ресурсов.
Компилятор RC позволяет создавать из одного набора источников, LN-файла и отдельного файла ресурсов для конкретного языка. Что касается MUIRCT, файлы связаны данными конфигурации ресурсов.
Синтаксис компилятора RC, используемый для ресурсов MUI
Коммутаторы компилятора RC подробно определены в using RC. В этом разделе определяются только коммутаторы, используемые для сборки ресурсов MUI. Помните, что каждый параметр не учитывает регистр. Типы ресурсов считаются нейтральными на языке, если иное не указано.
rc [-h|-?] -fm mui_res_name [-q rc_config_file_name] [-g langid] [-g1 ] [-g2 version]
переключатели и аргументы
Выбор | Функция |
---|---|
-h или -? | Отображает экран справки. |
-частотная модуляция | Использует указанный файл ресурсов для ресурсов, относящихся к языку. Обычно компилятор ресурсов создает файл ресурсов для конкретного языка. Однако он не создает файл, если существуют какие-либо из следующих условий:
|
-q | Использует указанный файл конфигурации ресурсов, чтобы получить типы ресурсов для размещения в файле ресурсов для конкретного языка и LN-файле. Дополнительные сведения см. в подготовке файла конфигурации ресурсов. В качестве альтернативы этому коммутатору можно использовать -j и -k коммутаторы, но предпочтительнее использовать файл конфигурации ресурсов. Используя параметр -q с файлом конфигурации ресурсов, вы можете реализовать разделение на основе элементов и предоставить атрибуты, которые в конечном итоге будут содержать конфигурацию двоичного ресурса в файле ресурсов LN и на языке. Это разделение невозможно использовать -j и -k коммутаторов. Примечание. процесс разделения компилятора-кандидатов не работает должным образом, если ресурсы и сведения о версии хранятся в разных файлах конфигурации ресурсов. В этом случае компилятор RC не разделяет сведения о версии. Поэтому ошибка компоновщика возникает во время связывания файла ресурсов для конкретного языка, так как файл не имеет ресурсов версии. |
-g | Задает конечный резервный язык идентификатор в шестнадцатеричном формате. |
-g1 | Создает RES-файл MUI, даже если ресурс VERSION является единственным локализуемым содержимым. По умолчанию компилятор RC не создает RES-файл, если VERSION является единственным локализуемым ресурсом. |
-g2 | Указывает пользовательский номер версии, используемый при вычислении контрольной суммы. |
mui_res_name | Файл ресурсов для ресурсов, относящихся к языку. |
rc_config_file_name | Файл конфигурации ресурсов. |
langid | Идентификатор языка. |
Версия | Номер пользовательской версии в формате, например "6.2.0.0". |
Пример использования компилятора RC для создания ресурсов MUI
Чтобы проиллюстрировать операцию компилятора RC с ресурсами MUI, давайте рассмотрим следующую командную строку для файла ресурсов Myfile.rc:
rc -fm myfile_res.res -q myfile.rcconfig myfile.rc
Эта командная строка приводит к тому, что компилятор RC выполняет следующие действия:
- Создайте файл ресурсов, зависящий от языка, Myfile_res.res и файл ресурсов, нейтральный от языка, который по умолчанию использует myfile.res в зависимости от имени RC-файла.
- Добавьте 2 (элемент 5 6 7 8 9 10 11 12), 4, 5, 6, 9, 11, 16, 23, 240, 1024 MY_TYPE типы ресурсов для конкретного языка, если они находятся в RC-файле.
- Добавьте тип ресурса 16, а также любые другие типы ресурсов, описанные в файле ресурсов, в файл RES на языке, нейтральный язык, и в файл RES для конкретного языка. Обратите внимание, что в этом примере тип ресурса 16 добавляется в двух местах.
- Выберите значение атрибута UltimateFallbackLanguage, чтобы вставить данные конфигурации ресурса LN в соответствии со следующими критериями, упорядоченными от самого приоритета до наименьшего:
- Атрибут UltimateFallbackLanguage в файле конфигурации ресурсов, если он передается в качестве входных данных.
- Значение атрибута языка для вставки в данные конфигурации ресурсов на основе порядка языка компилятора RC (языка и языка, относящееся к файлу ресурсов). Рекомендации включают язык в RC-файле, значение языка коммутатора -gl и идентификатор 0x0409 для английского языка (США).
Замечания
Если вы включаете любой тип ресурса ICON(3), DIALOG(5), STRING(6) или VERSION(16) в нейтральный элементResources, необходимо дублировать эту запись в локализованном элементеResources в файле конфигурации ресурса.
Связанные разделы
-
справочник по многоязычным пользовательским интерфейсам