Compartir a través de


Utilidades de recursos

En este tema se describen dos utilidades que se usan para compilar aplicaciones MUI. Aunque MUIRCT es una herramienta específica de MUI, MUI también usa la utilidad estándar del compilador de Windows RC. Las instrucciones para usar estas utilidades se proporcionan en Localizar recursos y Compilar la aplicación.

Utilidad MUIRCT

MUIRCT (Muirct.exe) es una utilidad de línea de comandos para dividir un archivo ejecutable estándar en un archivo LN y archivos de recursos específicos del idioma (es decir, localizables). Cada uno de los archivos resultantes contiene datos de configuración de recursos para la asociación de archivos. MUIRCT se incluye en el Microsoft Windows SDK para Windows Vista.

Nota:

A partir de Windows Vista, el cargador de recursos win32 se actualiza para cargar recursos desde archivos específicos del idioma, así como desde archivos LN.

 

Usos de MUIRCT

  1. Divida binario en archivo binario principal y mui basado en rc_config archivo.

    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]

  2. Extraiga la suma de comprobación de checksum_file e insértela en output_file.

    Muirct -c checksum_file [-b LangID] -e output_file

  3. Calcule la suma de comprobación en función de checksum_file e insértela en output_file.

    Muirct -c checksum_file [-b LangID] -q rc_config -z output_file

  4. Volcar el contenido de los datos de configuración de recursos de input_file.

    Muirct -d input_file

Sintaxis de MUIRCT

MUIRCT puede tomar la dirección de los modificadores de línea de comandos o de un archivo de configuración de recursos, especificado mediante el modificador -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]

Modificadores y argumentos

Opción Propósito
-h o -? Muestra la pantalla de ayuda.
-c Especifica el checksum_file de entrada del que se va a extraer o calcular la suma de comprobación de recursos. Checksum_file debe ser un archivo binario win32 que contenga recursos localizables. Si checksum_file contiene recursos para más de un idioma, se debe usar el modificador -b para especificar cuál de estos se debe usar de otro modo si se produce un error en MUIRCT.
-b Especifica el idioma que se usará cuando el checksum_file especificado con -c contiene recursos en varios idiomas. Este modificador solo se puede usar junto con el modificador -c. El identificador de idioma puede estar en formato decimal o hexadecimal. MUIRCT produce un error si el checksum_file contiene recursos en varios idiomas y no se especifica -b o si no se encuentra el idioma especificado por el modificador -b en el checksum_file.
-g Especifica el identificador de idioma que se va a incluir como el idioma de reserva final en la sección de datos de configuración de recursos del archivo LN. Si el cargador de recursos no puede cargar un archivo .mui solicitado desde los idiomas preferidos de la interfaz de usuario del subproceso, usa el idioma de reserva final como último intento. El valor LangID se puede especificar en formato decimal o hexadecimal. Por ejemplo, inglés (Estados Unidos) se puede especificar mediante -g 0x409 o -g 1033.
-q Especifica que el source_file se va a dividir en el output_LN_file y el output_MUI_file según el diseño del archivo rc_config. El archivo rc_config es un archivo con formato XML que especifica qué recursos se extraerán en el archivo .mui y que se quedarán en el archivo LN. El rc_config puede especificar la distribución de tipos de recursos y elementos con nombre individuales entre el output_LN_file y el output_MUI_file. El source_file debe ser un binario win32 que contenga recursos en un solo idioma; de lo contrario, se produce un error en MUIRCT. MUIRCT no divide el archivo si es el idioma neutro que se indica al tener solo el valor de identificador de idioma 0 en el archivo. Los output_LN_file y output_mui_file son los nombres del archivo .mui y neutro del idioma en el que se divide el source_file. Estos nombres de archivo son opcionales. Si no se especifican, MUIRCT anexa las extensiones .ln y .mui a source_file. Normalmente, debe quitar la extensión ".ln" antes de implementar el archivo. MUIRCT asocia el output_LN_file y output_MUI_file calculando una suma de comprobación basada en el nombre de source_file y la versión del archivo e insertando el resultado en la sección de configuración de recursos de cada archivo de salida. Cuando se usa junto con el modificador -c, el modificador -q tiene prioridad. Si el archivo de rc_config proporcionado con el modificador -q contiene una MUIRCT de suma de comprobación omite el modificador -c e inserta el valor de suma de comprobación del valor, rc_config archivo en los archivos LN y.mui. Si no se encuentra ningún valor de suma de comprobación en el rc_config, MUIRCT calcula la suma de comprobación de recursos en función del comportamiento del modificador -c.
-v Especifica el nivel de detalle para el registro. Especifique 1 para imprimir todos los mensajes de error básicos y los resultados de la operación. Especifique 2 para incluir también la información del recurso (tipo, nombre, identificador de idioma) incluida en el archivo .mui y el archivo LN. El valor predeterminado es -v 1.
-X Especifica el identificador de idioma con el que MUIRCT marca todos los tipos de recursos agregados a la sección de recursos del archivo .mui. El valor LangID se puede especificar en formato decimal o hexadecimal. Por ejemplo, inglés (Estados Unidos) se puede especificar mediante -x 0x409 o -x 1033.
-E Extrae la suma de comprobación de recursos contenida en la checksum_file proporcionada con el modificador -c e la inserta en el output_file especificado. Cuando se especifica -e, MUIRCT omite todos los modificadores distintos del modificador -c. En este caso, el checksum_file debe ser un archivo binario win32 que contenga una sección de datos de configuración de recursos con un valor de suma de comprobación. El output_file debe ser un archivo LN o .mui existente.
-Z Calcula e inserta datos de suma de comprobación de recursos en el archivo de salida especificado. MUIRCT basa el cálculo de suma de comprobación en la entrada proporcionada con el modificador -c y el modificador -b opcional. Si especifica un archivo de salida para el modificador -z que no existe, MUIRCT se cierra con un error.
Ejemplo: calcula la suma de comprobación basada en recursos localizables en Notepad.exe e inserta la suma de comprobación en el archivo de salida Notepad2.exe.
muirct -c notepad.exe -q myprog.rcconfig -z notepad2.exe
-f Habilita la creación de un archivo .mui con el recurso de versión que es el único recurso localizable. De forma predeterminada, MUIRCT no permite esto.
-d Busca y muestra los datos de configuración de recursos incrustados en el archivo de origen. Al especificar este modificador, MUIRCT omite todas las demás opciones de línea de comandos.
-M Especifica el número de versión que se va a usar al calcular la suma de comprobación para asociar el output_LN_file y output_MUI_file.
source_filename Nombre del archivo de origen binario localizado; No se pueden usar caracteres comodín. Este archivo solo puede contener recursos en un idioma. Si hay recursos en varios idiomas en el archivo, MUIRCT produce un error, a menos que se use el modificador -b. Si el archivo contiene recursos con identificadores de idioma que solo tienen el valor 0, MUIRCT no divide el archivo porque un identificador de idioma de 0 indica un idioma neutro.
Para el modificador -d, source_filename es un archivo LN o un archivo de recursos específico del idioma para el que MUIRCT va a mostrar los datos de configuración de recursos.
language_neutral_filename Opcional. Nombre del archivo LN. Si no especifica el nombre de este archivo, MUIRCT anexa una segunda extensión ".ln" al nombre del archivo de origen que se usará como nombre de archivo neutro del idioma. Normalmente, debe quitar la extensión ".ln" antes de implementar el archivo. Nota: El archivo LN no debe contener cadenas ni menús. Debe quitarlos manualmente.
mui_filename Opcional. Nombre del archivo de recursos específico del idioma. Si no especifica un nombre, MUIRCT anexa una segunda extensión ".mui" al nombre de archivo de origen que se usará como nombre de archivo. Normalmente, MUIRCT crea un archivo de recursos específico del lenguaje. Sin embargo, no crea un archivo de recursos si existe alguna de las condiciones siguientes:
  • No hay recursos localizables en el archivo binario original.
  • El único idioma de recursos que se encuentra en el archivo binario original es el idioma neutro.
  • El archivo binario original tiene recursos para más de un idioma, sin contar el idioma neutro. Si el archivo binario contiene recursos para dos idiomas y uno de ellos es el idioma neutro, la utilidad considera que el archivo es monolingüe y crea un archivo de recursos específico del idioma si hay recursos localizables.

 

Salida del lenguaje MUIRCT

MUIRCT elige el valor del atributo "UltimateFallbackLanguage" para insertar en los datos de configuración de recursos del archivo LN en función del orden siguiente, de la prioridad más alta a la más baja:

  1. Atributo "UltimateFallbackLanguage" en el archivo de configuración de recursos de origen, si se pasa uno como entrada.
  2. Idioma especificado con el modificador -g.
  3. Idioma del archivo de entrada.

MUIRCT elige el valor del atributo "language" que se va a insertar en los datos de configuración de recursos del archivo .mui según el orden siguiente:

  1. Atributo "language" en el archivo de configuración de recursos de origen, si se pasa uno como entrada.
  2. Idioma especificado por el modificador -x (lenguaje forzado).
  3. Idioma del archivo de entrada.

Control de suma de comprobación de MUIRCT

Normalmente, el sistema operativo calcula la suma de comprobación sobre los recursos específicos del idioma de un archivo a menos que especifique la suma de comprobación a través de un archivo de configuración de recursos. Siempre que la suma de comprobación sea la misma para el archivo LN y todos los archivos de recursos específicos del idioma asociados, y el atributo de idioma de la configuración de recursos en el LN y la coincidencia dependiente del idioma, el cargador de recursos puede cargar correctamente los recursos.

MUIRCT admite varios métodos para colocar las sumas de comprobación adecuadas en los datos de configuración de recursos:

  1. Compile un archivo ejecutable para cada lenguaje que contenga código y recursos. Después de esto, use MUIRCT para dividir cada uno de estos archivos en un archivo LN y un archivo de recursos específico del idioma. MUIRCT se ejecuta varias veces, una vez para generar un archivo de recursos para cada idioma. Puede realizar la compilación de las siguientes maneras:
    1. Use el modificador -q para especificar un valor de suma de comprobación en el archivo de configuración de recursos. MUIRCT coloca este valor en todos los archivos LN y archivos de recursos específicos del idioma generados. Debe adoptar una estrategia para elegir este valor, como se describe más adelante en este tema.
    2. Use el modificador -c (y, opcionalmente, el modificador -b) para elegir un único idioma con recursos de los que MUIRCT extrae la suma de comprobación.
    3. Use el modificador -z para elegir un único idioma que tenga recursos de los que MUIRCT extrae siempre la suma de comprobación. Aplique esta suma de comprobación después de compilar los archivos con otros métodos.
  2. Compile un archivo ejecutable que contenga código y recursos para un único lenguaje. Después de esto, use MUIRCT para dividir los recursos entre el archivo LN y el archivo de recursos específico del idioma. Por último, use una herramienta de localización binaria para modificar el archivo de recursos resultante para cada idioma.

La convención más común para el control de suma de comprobación es basar la suma de comprobación en los recursos en inglés (Estados Unidos). Es libre de adoptar una convención diferente, siempre y cuando sea coherente para cada archivo LN. Por ejemplo, es perfectamente aceptable que una empresa de desarrollo de software base sus sumas de comprobación en el software que se basa en recursos franceses (Francia) en lugar de recursos en inglés (Estados Unidos), siempre y cuando todas las aplicaciones tengan recursos de francés (Francia) en los que basar las sumas de comprobación. También es aceptable usar el archivo de configuración de recursos para asignar un valor hexadecimal arbitrario de hasta 16 dígitos hexadecimales como suma de comprobación. Esta última estrategia impide el uso efectivo de los modificadores -z, -c y -b de MUIRCT. Requiere la adopción de un método mediante GuidGen u otra herramienta para generar valores de suma de comprobación. Esta estrategia también requiere que configure una directiva para determinar cuándo modificar el valor al agregar nuevos recursos localizables.

Para aplicar la suma de comprobación inglés (Estados Unidos) a todos los archivos, puede usar cualquiera de los métodos de control de suma de comprobación descritos anteriormente. Por ejemplo, puede generar el archivo LN y el archivo de recursos específico del idioma para inglés (Estados Unidos) y, a continuación, usar el modificador MUIRCT -d para obtener la suma de comprobación resultante. Puede copiar esta suma de comprobación en el archivo de configuración de recursos y usar el modificador -q con MUIRCT para aplicar la suma de comprobación a todos los demás archivos.

Uso de un archivo de configuración de recursos con MUIRCT

Puede especificar datos de configuración de recursos al usar MUIRCT. Tanto si proporciona explícitamente un archivo de configuración de recursos, cada archivo de recursos específico del lenguaje tiene datos de configuración de recursos, como cualquier archivo LN con un archivo de recursos asociado. Por ejemplo:

  • Si usa el modificador -q para especificar un archivo de configuración de recursos, pero no hay recursos localizables en el archivo de origen de entrada, no se genera ningún archivo de recursos específico del idioma y el archivo LN resultante no contiene datos de configuración de recursos. Además, si el archivo de origen de entrada tiene recursos multilingües, MUIRCT no dividirá el archivo.

Nota

Actualmente, el comportamiento de MUIRCT es incoherente cuando el elemento neutralResources del archivo de configuración de recursos no contiene ningún elemento resourceType y el elemento localizedResources contiene cadenas y menús, por ejemplo. En tal caso, MUIRCT divide los recursos de la siguiente manera:

  • Todos los recursos del binario original (incluidas cadenas y menús), además de los recursos MUI, se colocan en el archivo LN.
  • Las cadenas, los menús y los recursos MUI se colocan en el archivo de recursos específico del idioma adecuado.

 

Ejemplos de uso de MUIRCT

Ejemplos de uso estándar

muirct -q mui.MMF bar.exe barnew.exe barnew.exe.mui

muirct -d myprog.exe.mui

Ejemplo de salida de archivo LN mediante -d Switch

Este es un ejemplo de la salida de datos de configuración de recursos de un archivo LN, Shell32.dll, mediante el modificador -d con 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

Ejemplo de Language-Specific salida del archivo de recursos mediante -d Switch

Este es un ejemplo de la salida de datos de configuración de recursos de un archivo .mui, Shell32.dll.mui, mediante el modificador -d para 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

Utilidad del compilador de RC

Rc Compiler (Rc.exe) es una utilidad de línea de comandos para compilar un archivo de script de definición de recursos (extensión.rc) en archivos de recursos (extensión.res). El compilador rc se incluye en Windows SDK. En este documento solo se explica el uso del compilador de RC con funcionalidades relacionadas con MUI del cargador de recursos. Para obtener información completa sobre el compilador, consulte Acerca de los archivos de recursos.

El compilador de RC permite compilar, a partir de un único conjunto de orígenes, un archivo LN y un archivo de recursos específico del lenguaje independiente. En cuanto a MUIRCT, los archivos están asociados por los datos de configuración de recursos.

Sintaxis del compilador de RC como se usa para los recursos mui

Los modificadores del compilador de RC se definen en detalle en Uso de RC. En esta sección solo se definen los modificadores que se usan para compilar recursos MUI. Recuerde que cada modificador no distingue mayúsculas de minúsculas. Se supone que los tipos de recursos son neutros en el lenguaje, a menos que se indique lo contrario.

rc [-h|-?] -fm mui_res_name [-q rc_config_file_name] [-g langid] [-g1 ] [-g2 version]

Modificadores y argumentos

Opción Función
-h o -? Muestra la pantalla de ayuda.
-Fm Usa el archivo de recursos especificado para recursos específicos del lenguaje. Normalmente, el compilador de recursos crea un archivo de recursos específico del lenguaje. Sin embargo, no crea el archivo si existe alguna de las condiciones siguientes:
  • No hay recursos localizables en el archivo .rc.
  • El único idioma de recursos que se encuentra en el archivo .rc es el idioma neutro.
  • El archivo .rc tiene recursos para más de un idioma, sin contar el idioma neutro. Si el archivo .rc contiene recursos para dos lenguajes y uno de ellos es el lenguaje neutro, el compilador considera que el archivo es monolingüe. Si hay recursos localizables, el compilador crea un archivo de recursos específico del lenguaje.
-q Usa el archivo de configuración de recursos especificado para obtener los tipos de recursos que se colocarán en el archivo de recursos específico del lenguaje y en el archivo LN. Para obtener más información, consulte Preparación de un archivo de configuración de recursos. Como alternativa a este modificador, puede usar los modificadores -j y -k, pero es preferible usar un archivo de configuración de recursos.
Mediante el modificador -q con un archivo de configuración de recursos, puede implementar una división basada en elementos y proporcionar atributos que terminarán con la configuración de recursos binarios en el archivo de recursos LN y específico del idioma. Esta división no es posible mediante los modificadores -j y -k. Nota: El proceso de división del compilador de RC no funciona correctamente si almacena los recursos y la información de versión en diferentes archivos de configuración de recursos. En este caso, RC Compiler no divide la información de versión. Por lo tanto, se produce un error del enlazador durante la vinculación del archivo de recursos específico del idioma porque el archivo no tiene recursos de versión.
-g Especifica el identificador de idioma de reserva final en hexadecimal.
-g1 Crea un archivo .res mui incluso si el recurso VERSION es el único contenido localizable. De forma predeterminada, rc Compiler no genera un archivo .res si VERSION es el único recurso localizable.
-g2 Especifica el número de versión personalizado que se va a usar al calcular la suma de comprobación.
mui_res_name Archivo de recursos para recursos específicos del lenguaje.
rc_config_file_name Archivo de configuración de recursos.
langid Identificador de idioma.
version Número de versión personalizado, en un formato como "6.2.0.0".

 

Ejemplo de uso del compilador rc para compilar recursos MUI

Para ilustrar la operación del compilador rc con recursos MUI, vamos a examinar la siguiente línea de comandos para el archivo de recursos Myfile.rc:

rc -fm myfile_res.res -q myfile.rcconfig myfile.rc

Esta línea de comandos hace que el compilador de RC haga lo siguiente:

  • Cree el archivo de recursos específico del idioma Myfile_res.res y un archivo de recursos independiente del idioma que tenga como valor predeterminado Myfile.res, según el nombre del archivo .rc.
  • Agregue 2 (elemento 5 6 7 8 9 10 11 12), 4, 5, 6, 9, 11, 16, 23, 240, 1024 MY_TYPE tipos de recursos al archivo .res específico del idioma si están en el archivo .rc.
  • Agregue el tipo de recurso 16, junto con cualquier otro tipo de recurso descrito en el archivo de recursos al archivo .res independiente del idioma y al archivo .res específico del idioma. Tenga en cuenta que, en este ejemplo, se agrega el tipo de recurso 16 en dos lugares.
  • Elija el valor del atributo "UltimateFallbackLanguage" para insertar en los datos de configuración de recursos del archivo LN según los criterios siguientes, ordenados de la prioridad más alta a la más baja:
    • Atributo "UltimateFallbackLanguage" en el archivo de configuración de recursos si se pasa uno como entrada.
    • Valor del atributo de lenguaje que se va a insertar en los datos de configuración de recursos en función del orden del lenguaje del compilador RC (idioma neutro y idioma específico del lenguaje del archivo de recursos). Entre las consideraciones se incluyen el idioma en el archivo .rc, el valor de idioma del modificador -gl y el identificador 0x0409 para inglés (Estados Unidos).

Comentarios

Si incluye cualquier tipo de recurso ICON(3), DIALOG(5), STRING(6) o VERSION(16) en el elemento neutralResources, tendrá que duplicar esa entrada en el elemento localizedResources en el archivo de configuración de recursos.

Referencia de la interfaz de usuario multilingüe

Administración de recursos MUI

Localizar recursos y compilar la aplicación