Localizzazione delle stringhe di messaggio

Ogni stringa di messaggio specificata nel manifesto deve fare riferimento a una stringa nella sezione localizzazione del manifesto. La sezione localizzazione contiene una sezione di tabella di stringhe per ogni impostazione locale supportata.

Nell'esempio seguente viene illustrato come definire una tabella di stringhe. È necessario specificare gli attributi id e valore della stringa. Usare il valore dell'attributo id per fare riferimento alla stringa nel manifest. L'attributo valore contiene una stringa localizzata.

<instrumentationManifest
    xmlns="http://schemas.microsoft.com/win/2004/08/events" 
    xmlns:win="http://manifests.microsoft.com/win/2004/08/windows/events"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    >

    <instrumentation>
        <events>
            <provider name="Microsoft-Windows-SampleProvider" 
                guid="{1db28f2e-8f80-4027-8c5a-a11f7f10f62d}" 
                symbol="PROVIDER_GUID" 
                resourceFileName="<path to the exe or dll that contains the metadata resources>" 
                messageFileName="<path to the exe or dll that contains the string resources>"
                message="$(string.ProviderName)">

                . . .

            </provider>
        </events>
    </instrumentation>

    <localization>
        <resources culture="en-US">
            <stringTable>
                <string id="ProviderName" value="Sample Provider"/>
                <string id="PathNotFound" value="The path %1 was not found."/>
            </stringTable>
        </resources>
    </localization>

</instrumentationManifest>

Invece di aggiungere stringhe localizzate al manifesto, è necessario creare un file MUI (Multilingual User Interface) per ogni lingua supportata. Usare un file di testo dei messaggi per specificare le stringhe localizzate.

La procedura seguente descrive come creare un file MUI per l'inglese e il francese.

Per creare un file MUI per l'inglese e il francese

  1. Creare un file di testo del messaggio che crea le stringhe di messaggio in francese. Per informazioni dettagliate sulla creazione di un file di testo del messaggio, vedere file di testo del messaggio. Gli identificatori di messaggio specificati nel file di testo del messaggio devono corrispondere agli identificatori di risorsa generati dal compilatore di messaggi per le stesse stringhe nel manifesto. Per determinare gli identificatori di risorsa usati per le stringhe nel manifesto, vedere il file h generato dal compilatore di messaggi durante la compilazione del manifesto.

    LanguageNames=(French=0x40C:MSG0040C)
    
    ; // The following are message definitions.
    
    MessageId=0x00000065
    SymbolicName=MSG_ProviderName
    Language=French
    <FRENCH STRING GOES HERE>
    .
    
    
    MessageId=0x00000066
    SymbolicName=MSG_PathNotFound
    Language=French
    <FRENCH STRING GOES HERE>
    .
    
    
  2. Eseguire i comandi seguenti per creare la DLL della risorsa che contiene le stringhe localizzate. Il file messages.mc è il file di testo del messaggio creato nel passaggio 1.

    mc -u -U messages.mc
    
    rc -r messages.rc
    
    link -dll -noentry -out:messages.dll messages.res
    
  3. Nella cartella contenente il provider creare una sottocartella per ogni impostazione locale supportata. Il nome della sottocartella deve essere il nome della lingua per quel locale. Ad esempio, per 0x0409, usare en-US come nome della cartella.

  4. Creare un file rcconfig che indica allo strumento Muirct.exe che si desidera suddividere le risorse della stringa del messaggio dal file eseguibile e dalle DLL delle risorse. Di seguito è riportato un file rcconfig di esempio.

    <localization>
          <resources>
                <win32Resources fileType="Application">
                      <neutralResources>
                      </neutralResources>
                      <localizedResources>
                            <resourceType typeNameId="#11"/>
                      </localizedResources>
                </win32Resources>
          </resources>
    </localization>
    
  5. Eseguire i comandi di Muirct.exe seguenti per suddividere le stringhe in inglese dal file eseguibile del provider.

    muirct -q split.rcconfig -v 2 -x 0x0409 -g 0x0409 provider.exe provider.exe.ln en-US\provider.exe.mui
    
    muirct -c provider.exe.ln -e en-US\provider.exe.mui
    
  6. Esegui i seguenti comandi Muirct.exe per separare le stringhe in francese dalla DLL delle risorse. Rimuovere il file indipendente dalla lingua (fr-FR\messages.dll) dopo la creazione del file MUI.

    muirct -q split.rcconfig -v 2 -x 0x040C -g 0x0409 messages.dll fr-FR\messages.dll fr-FR\provider.exe.mui
    
    muirct -c provider.exe.ln -e fr-FR\provider.exe.mui
    
  7. Rinominare provider.exe.ln in provider.exe.