Compartir a través de


Preparar un archivo de configuración de recursos

Tanto MUIRCT como las utilidades del compilador RC descritas en Utilidades de recursos proporcionan una opción de línea de comandos que permite especificar un archivo de configuración de recursos para los recursos del lenguaje base. El uso de este archivo XML público legible permite tener más control sobre la división de recursos de los que se pueden obtener mediante los modificadores de línea de comandos normales de las utilidades. Sin embargo, aunque no proporcione un archivo de configuración de recursos como entrada, los archivos de recursos LN y específicos del idioma contendrán datos de configuración de recursos.

Todos los archivos de configuración de recursos para aplicaciones Win32 comienzan y terminan de forma idéntica:

<?xml version="1.0" encoding="utf-8"?> 
<localization>

<resources>
        
        <!-- a single win32Resources element goes here -->

</resources>
</localization>

Este tema se centra en los aspectos del esquema XML que son útiles para compilar código no administrado en Windows Vista y versiones posteriores. En concreto, solo se preocupa por el comportamiento del elemento win32Resources.

Elemento win32Resources

El elemento win32Resources tiene los atributos descritos en la tabla siguiente.

Nombre del atributo Mandatory Descripción
fileType No Tipo de archivo. Siempre debe ser "Application".
suma de comprobación No Valor de suma de comprobación que aparece en los datos de configuración de recursos del archivo LN y los archivos de recursos específicos del idioma. Por ejemplo, este atributo permite copiar la suma de comprobación de un único archivo de recursos específico del idioma, por convención el de inglés (Estados Unidos) y colocar la suma de comprobación en un archivo de recursos específico del idioma diferente. La suma de comprobación se puede especificar como una cadena de número hexadecimal que no tenga más de 32 caracteres. El valor numérico debe contenerse en un número de 128 bits.
language No Etiqueta de idioma compatible con IETF BCP 47 (Windows Vista y versiones posteriores), por ejemplo, en-US para inglés (Estados Unidos).
ultimateFallbackLanguage No Idioma que se va a insertar en los datos de configuración de recursos del archivo LN, que representa el lenguaje de reserva final que se va a usar en una búsqueda de un archivo de recursos específico del idioma correspondiente. Si el cargador de recursos no puede cargar un archivo de recursos solicitado desde los idiomas preferidos de la interfaz de usuario del subproceso, usa un idioma de reserva final como último intento. La etiqueta de idioma compatible con IETF BCP 47 (Windows Vista y versiones posteriores), por ejemplo, en-US para inglés (Estados Unidos).
ultimateFallbackLocation No Ubicación de reserva. Especifique "internal" si los recursos de reserva finales se compilan en el archivo LN. Especifique "external" (valor predeterminado) si el archivo LN es hacer referencia a un archivo de recursos específico del lenguaje para sus recursos de reserva finales.

En el archivo de configuración de recursos, el elemento win32Resources tiene los subelementos descritos en la tabla siguiente.

Nombre del elemento Descripción
localizedResources Recursos que encapsulan información sobre los tipos de recursos y los recursos individuales contenidos en un archivo de recursos específico del lenguaje.
neutralResources Recursos que encapsulan información sobre los tipos de recursos contenidos en un archivo LN.

elemento localizedResources

Elemento de recursos localizados. De forma predeterminada, este elemento no tiene atributos y solo un tipo de sub-elemento. Es solo un contenedor para los elementos resourceType.

Nombre del atributo Descripción
resourceType Tipo de un recurso individual contenido en un archivo de recursos específico del lenguaje.

Elemento neutralResources

Elemento de recursos neutros. Este elemento es solo un contenedor para los elementos resourceType.

Nombre del atributo Descripción
resourceType Tipo de un único recurso contenido en un archivo LN.

Elemento resourceType

El elemento resourceType encapsula información sobre un único tipo de recurso o un recurso individual. Tiene los atributos que se enumeran a continuación.

Precaución

El compilador rc o MUIRCT detectan algunos defectos de configuración de recursos, según el archivo de recursos de entrada o el contenido del archivo binario. Los errores resourceType del archivo de configuración de recursos que no existen en el archivo de entrada no se detectan, lo que produce un comportamiento inesperado. Los usuarios pueden usar un archivo de configuración de recursos defectuoso y no saben hasta que introducen archivos binarios que usan las partes rotas del archivo de configuración de recursos, lo que crea la apariencia de que los saltos proceden de los archivos binarios actuales.

Nombre del atributo Mandatory Descripción
typeNameId Escriba el nombre o el identificador del recurso. Especifique un nombre de cadena o un número. Si usa un número, anteponga la cadena con un "#" para indicar que representa un número. Cada elemento resourceType debe tener solo un atributo typeNameId .
itemName No Cadena de nombre de elemento para el recurso que se va a colocar en el archivo de recursos específico del idioma. Puede especificar varios nombres, separados por espacios en blanco, por ejemplo, "MOFDATA HTML".
itemId No Identificador del elemento de recurso individual, que se va a colocar en el archivo de recursos específico del idioma. El elemento se puede especificar como un intervalo (por ejemplo, "1-12") o por identificadores individuales separados por espacios en blanco (por ejemplo, "1 3 4").
stringId No Identificador de cadena del elemento de recurso individual que se va a colocar en el archivo de recursos específico del idioma. La cadena se puede especificar como un intervalo (por ejemplo, "1-12") o por identificadores individuales separados por espacios en blanco (por ejemplo, "1 3 4"). Este atributo permite la especificación de entradas de tabla de cadenas localizables y no localizables. Debe usarse junto con el valor typeNameId de "6", lo que indica un tipo de recurso de entrada de tabla de cadena.
Las cadenas se almacenan en bloques de 16 en una tabla de cadenas. Por ejemplo, las cadenas de 0 a 15 se almacenan en un único bloque de elementos de recurso y se puede hacer referencia a ella en el archivo de configuración de recursos como itemId 1 o como stringId "0-15". Por ejemplo, si hay cinco cadenas localizables y tres cadenas no localizables, debe asignar identificadores de cadena 0-4 para las cadenas localizables y identificadores de cadena 16-18 para las cadenas no localizables. Si no organiza cadenas de esta manera, los bloques de cadenas afectados se colocan tanto en el archivo LN como en el archivo de recursos específico del idioma.

Si especifica los atributos itemName, itemId y/o stringId para un tipo de recurso determinado en el elemento localizedResource, solo estos elementos o cadenas especificados para el tipo de recurso designado se colocan en el archivo de recursos específico del idioma. Si se especifica un elemento resourceType sin ningún nombre de elemento explícito, identificador de elemento o identificador de cadena, todos los elementos del tipo de recurso especificado se colocan en el archivo de recursos específico del idioma. Los elementos o tipos que no aparecen en ningún elemento localizedResource se colocan en el archivo LN.

A continuación se muestran los tipos de recursos estándar y sus identificadores numéricos:

  • CURSOR(1)
  • BITMAP(2)
  • ICON(3)
  • MENU(4)
  • DIALOG(5)
  • STRING(6)
  • FONTDIR(7)
  • FONT(8)
  • ACCELERATORS(9)
  • RCDATA(10)
  • MESSAGETABLE(11)
  • GROUP_CURSOR(12)
  • GROUP_ICON(14)
  • VERSION(16)
  • HTML(23)

Ejemplo

<?xml version="1.0" encoding="utf-8"?> 
<localization>
  <resources>
    <win32Resources fileType="Application">
      <neutralResources>
        <resourceType
           typeNameId="#16"
        />
      </neutralResources>
      <localizedResources> 
         <resourceType
                typeNameId="#2"
                itemId="5 6 7 8 9 10 11 12"
                itemName="HTML PRI"
         />
         <resourceType
                typeNameId="#4"
         />
         <resourceType
                typeNameId="#5"
         />
         <resourceType
                typeNameId="#6"
         />
         <resourceType
                typeNameId="#9"
         />
         <resourceType
                typeNameId="#11"
         />
         <resourceType
                typeNameId="#16"
         />
         <resourceType
                typeNameId="HTML"
         />
         <resourceType
                typeNameId="#23"
         />
         <resourceType
                typeNameId="#240"
         />
         <resourceType
                typeNameId="#1024"
         />
         <resourceType
                typeNameId="MY_TYPE"
         />
      </localizedResources> 
    </win32Resources>
  </resources>
</localization>

Comentarios

Si incluye algún 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. Puede ver esto ilustrado en el ejemplo anterior, donde el tipo de recurso 16 aparece en las secciones de recursos neutros y localizados.

Preparación de recursos