Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Un archivo INF debe tener al menos una sección Strings para definir cada %strkey% token especificado en otra parte de ese INF.
[Strings] |
[Strings.LanguageID] ...
strkey1 = ["]some string["]
strkey2 = " string-with-leading-or-trailing-whitespace " |
"very-long-multiline-string" |
"string-with-semicolon" |
"string-ending-in-backslash" |
""double-quoted-string-value""
...
Entradas
strkey1, strkey2, ...
Cada clave de cadena de un archivo INF debe especificar un nombre único que consta de letras, dígitos u otros caracteres visibles explícitamente. Un carácter de % dentro de un token de strkey de este tipo debe expresarse como %%.
alguna cadena | "alguna cadena"
Especifica una cadena, opcionalmente delimitada por el uso de caracteres de comillas dobles ("), que contiene letras, dígitos, puntuación y, posiblemente, incluso ciertos caracteres visibles implícitamente, en particular, caracteres de espacio interno o tabulación. Sin embargo, una cadena sin comillas no puede contener comillas dobles internas ("), punto y coma (;), salto de línea, retorno o caracteres de control invisibles, y no puede tener una barra diagonal inversa () como carácter final.
"* string-with-leading-or-trailing-whitespace* " |
"cadena muy larga y multilínea" |
"string-ending-in-backslash" |
""double-quoted-string-value""
El valor especificado para un token de %strkey% debe incluirse entre comillas dobles (") si cumple alguno de los siguientes criterios:
Si una cadena especificada tiene espacios en blanco iniciales o finales que se deben conservar como parte de su valor, esa cadena debe incluirse entre comillas dobles para evitar que el analizador INF descarte sus espacios en blanco iniciales o finales.
Si una cadena larga puede contener caracteres internos de avance de línea o retorno debido al ajuste de líneas en el editor de texto, también debe incluirse entre comillas dobles para evitar el truncamiento de la cadena en el salto de línea interno inicial o el carácter devuelto.
Si dicha cadena contiene un punto y coma, debe incluirse entre comillas dobles para evitar que la cadena se trunquen en punto y coma. (Como ya se mencionó en Reglas de sintaxis general para archivos INF, el carácter de punto y coma comienza cada comentario en los archivos INF).
Si dicha cadena termina en una barra diagonal inversa, debe incluirse entre comillas dobles para evitar que la cadena se concatene con la siguiente entrada. (Como ya se mencionó en Reglas de sintaxis general para archivos INF, el carácter de barra diagonal inversa () se usa como continuor de línea en los archivos INF).
Al igual que una especificación de cadena sin comillas, este tipo de "cadena entre comillas" no puede contener caracteres de comillas dobles internas. Sin embargo, se puede especificar como un valor de cadena entre comillas dobles explícitamente mediante uno o varios pares adicionales de caracteres de comillas dobles (por ejemplo, ""some string"").
El analizador INF no solo descarta el par más externo de comillas dobles envolventes para cualquier "cadena entre comillas" en esta sección, sino que también condensa cada par secuencial posterior de comillas dobles en un carácter de comillas dobles simples.
Por ejemplo, ""some string""" también se convierte en "some string" cuando se analiza.
En resumen, cualquier cadena debe incluirse en un par de caracteres de comillas dobles (") si alguno de los siguientes valores es true:
- La cadena contiene espacios en blanco iniciales o finales.
- La cadena es tan larga que la línea se ajusta.
- La cadena contiene un punto y coma o un carácter final de barra diagonal inversa.
- La propia cadena es una cadena entre comillas.
El analizador INF del sistema descarta el par de comillas dobles más externa que delimita dicha cadena, junto con los caracteres de espacio en blanco iniciales o finales fuera de los delimitadores de cadena de comillas dobles.
Remarks
Dado que el analizador INF del sistema extrae el par más externo de comillas dobles envolventes de cualquier "cadena entrecomillada" que define un token de %strkey%, muchos de los archivos INF del sistema definen todos los tokens de %strkey% como "cadenas entrecomilladas" para evitar la pérdida no deseada de espacios en blanco iniciales y finales durante el análisis de INF. El uso de "cadena entre comillas" también garantiza que no se puedan truncar los valores de cadena especialmente largos que encapsulan entre líneas y que las cadenas con barras diagonales inversas finales no se puedan concatenar a la siguiente línea del archivo INF.
Para crear un único archivo INF internacional, un INF puede tener un conjunto de cadenas específicas de la configuración regional .Secciones languageID , como se muestra en la instrucción de sintaxis formal. La extensión LanguageID es un valor hexadecimal de 4 dígitos (sin un "0x" inicial) que se define de la siguiente manera:
- Los 10 bits inferiores contienen el identificador de idioma principal y los 6 bits siguientes contienen el identificador de sublanguaje, tal como se especifica en la macro MAKELANGID definida en Winnt.h.
- Los identificadores de idioma y sublanguage deben coincidir con los valores definidos por el sistema de las constantes Win32 LANG_XXX y SUBLANG_XXX definidas en Winnt.h.
Por ejemplo, un valor languageID de 0407 representa un identificador de idioma principal de LANG_GERMAN (07) con un identificador de sublanguage de SUBLANG_GERMAN (01), como en el ejemplo siguiente:
[Strings] ; No language ID implies English
DiskName="My Excellent Software"
LocaleSubDir="English"
[Strings.0407] ; 0407 is the language ID for German
DiskName="Meine ausgezeichnete Software"
LocaleSubDir="German"
Un archivo INF solo puede contener una sección Strings , junto con una cadena.Sección LanguageID para cada valor de LanguageID .
Windows selecciona una sola sección Strings que se usa para traducir todos los tokens de %strkey% para la instalación. Según la configuración regional actual de un equipo determinado, Windows selecciona una sección Cadenas de la siguiente manera:
Windows primero busca . Valores de LanguageID en el INF que coinciden con la configuración regional actual asignada al equipo. Si se encuentra una coincidencia exacta, Windows usa esa cadena.LanguageID Sección INF para traducir todos los tokens de %strkey% definidos dentro del INF.
Debe duplicar todos los tokens de cadena en todas las cadenas.* secciones, incluso constantes numéricas o fijas que no necesitan localizarse.
De lo contrario, Windows busca una coincidencia con el valor LANG_XXX con el valor de SUBLANG_NEUTRAL como SUBLANG_XXX. Si se encuentra dicha coincidencia, Windows usa esa sección INF para traducir todos los tokens de %strkey% definidos dentro del INF.
De lo contrario, Windows busca una coincidencia con el valor LANG_XXX y cualquier SUBLANG_XXX válido para la misma familia LANG_XXX. Si se encuentra una coincidencia parcial, use esa cadena.LanguageID Sección INF para traducir todos los tokens de %strkey% definidos dentro del INF.
De lo contrario, Windows usa la sección Cadenas sin codificar para traducir todos los tokens de% strkey %que se definen dentro del INF.
Por convención, y para mayor comodidad al crear un conjunto de archivos INF para el mercado internacional, las secciones Strings son las últimas dentro de todos los archivos INF del sistema. El uso de %strkey% tokens para todos los valores de cadena visibles para el usuario dentro de un INF y colocarlos en secciones Strings por configuración regional, simplifica la traducción de estas cadenas. Para obtener más información sobre los archivos INF específicos de la configuración regional, vea Creating International INF Files.
Aunque las secciones Strings son las últimas secciones de cada archivo INF, cualquier %strkey especificada% token definido en una sección Strings se puede usar repetidamente en otra parte del INF, en particular, donde se requiera el valor traducido de ese token. Las funciones setupAPI expanden cada %token de% strkey a la cadena especificada y, a continuación, usan ese valor expandido para el procesamiento inf adicional.
El uso de %strkey% tokens dentro de los archivos INF no está restringido a los valores de cadena visibles por el usuario. Estos tokens se pueden usar de cualquier manera conveniente para el escritor INF, siempre y cuando cada token se defina dentro de una sección Strings . Por ejemplo, cuando se escribe un archivo INF que requiere la especificación de varios GUID, puede ser conveniente crear un token de %strkey% para cada GUID, usando un nombre descriptivo como sustituto de cada valor GUID.
Especificar un conjunto de valores de %strkey% = "{GUID}" en la sección Cadenas del archivo INF requiere que escriba cada valor GUID explícito solo una vez. Esto puede ayudar a proporcionar documentación de INF interna más legible que mediante el uso de valores GUID explícitos en todo el archivo INF.
Todos los tokens de% %strkey deben definirse dentro del archivo INF en el que se hace referencia. Por lo tanto, para cualquier archivo INF que tenga entradas Include y Needs , un INF incluido debe tener su propia sección Strings para definir todas las %strkey% tokens a los que se hace referencia en ese INF.
En una sección Cadenas INF, la longitud máxima, en caracteres, de una cadena de sustitución, incluido un carácter NULL de terminación, es 4096 (Windows Vista y versiones posteriores de Windows) y 512 (Windows Server 2003, Windows XP y Windows 2000). Después de la sustitución de cadenas, la longitud máxima, en caracteres, de una cadena de archivo INF es 4096, incluido un carácter NULL de terminación.
Examples
En el ejemplo siguiente se muestra un fragmento de una sección Strings de un dvd.inf específico de la configuración regional proporcionado por el sistema para instalaciones en países o regiones de habla inglesa.
[Strings]
Msft="Microsoft"
MfgToshiba="Toshiba"
Tosh404.DeviceDesc="Toshiba DVD decoder card"
; ...
En el ejemplo siguiente se muestra la concatenación de cadenas.
[OEM Windows System Component Verification]
OID = 1.3.6.1.4.1.311.10.3.7 ; WHQL OEM OID
Notice = "%A% %B% %C% %D% %E%"
[Strings]
A = "This certificate is used to sign untested drivers that have not passed the Windows Hardware Quality Labs (WHQL) testing process."
B = "This certificate and drivers signed with this certificate are intended for use in test environments only, and are not intended for use in any other context."
C = "Vendors who distribute this certificate or drivers signed with this certificate outside a test environment may be in violation of their driver signing agreement."
D = "Vendors who have their drivers signed with this certificate do so at their own risk."
E = "In particular, Microsoft assumes no liability for any damages that may result from the distribution of this certificate or drivers signed with this certificate outside the test environment described in a vendor's driver signing agreement."