Sdílet prostřednictvím


Nástroje pro prostředky

Toto téma popisuje dva nástroje používané k vytváření aplikací MUI. I když MUIRCT je nástroj specifický pro MUI, MUI také využívá standardní nástroj Windows RC Compiler. Pokyny pro použití těchto nástrojů jsou uvedeny v lokalizace prostředků a sestavení aplikace.

Nástroj MUIRCT

MUIRCT (Muirct.exe) je nástroj příkazového řádku pro rozdělení standardního spustitelného souboru na soubor LN a soubory prostředků specifické pro jazyk (tj. lokalizovatelné). Každý z výsledných souborů obsahuje konfigurační data prostředků pro přidružení souborů. MUIRCT je součástí sady Microsoft Windows SDK pro Windows Vista.

Poznámka

Počínaje systémem Windows Vista se zavaděč prostředků Win32 aktualizuje tak, aby načítá prostředky ze souborů specifických pro jazyk a také ze souborů LN.

 

MUIRCT Usages

  1. Rozdělte binární soubor na hlavní binární soubor a soubor mui na základě rc_config souboru.

    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. Extrahujte kontrolní součet z checksum_file a vložte ho do output_file.

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

  3. Vypočítá kontrolní součet na základě checksum_file a vloží ho do output_file.

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

  4. Výpis obsahu konfiguračních dat prostředků z input_file

    Muirct -d input_file

Syntaxe MUIRCT

MUIRCT může převzít směr z přepínačů příkazového řádku nebo z konfiguračního souboru prostředku zadaného pomocí přepínače -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]

přepínače a argumenty

Možnost Účel
-h nebo -? Zobrazuje obrazovku nápovědy.
-c Určuje vstupní checksum_file, ze kterých se má extrahovat nebo vypočítat kontrolní součet zdroje. Checksum_file musí být binární soubor Win32 obsahující lokalizovatelné prostředky. Pokud checksum_file obsahuje prostředky pro více než jeden jazyk, musí být přepínač -b použit k určení, které z nich se má použít, jinak muIRCT selže.
-b Určuje jazyk, který se má použít, když checksum_file zadané pomocí -c obsahuje prostředky ve více jazycích. Tento přepínač lze použít pouze ve spojení s přepínačem -c. Identifikátor jazyka může být v desítkovém nebo šestnáctkovém formátu. Funkce MUIRCT selže, pokud checksum_file obsahuje prostředky ve více jazycích a -b není zadán nebo pokud jazyk zadaný přepínačem -b nebyl v checksum_file nalezen.
-g Určuje ID jazyka, které se má zahrnout jako konečný záložní jazyk v části konfiguračních dat prostředků souboru LN. Pokud zavaděč prostředků nenačte požadovaný soubor .mui z upřednostňovaných jazyků uživatelského rozhraní vlákna, použije jako poslední pokus konečný záložní jazyk. Hodnotu LangID lze zadat v desítkovém nebo šestnáctkovém formátu. Například angličtinu (Spojené státy) lze zadat pomocí -g 0x409 nebo -g 1033.
-q Určuje, že source_file se má rozdělit do output_LN_file a output_MUI_file podle rozložení souboru rc_config. Rc_config soubor je soubor ve formátu XML, který určuje, které prostředky budou extrahovány do souboru .mui a které zůstanou v souboru LN. Rc_config může určit distribuci typů prostředků a jednotlivých pojmenovaných položek mezi output_LN_file a output_MUI_file. Source_file musí být binární soubor Win32, který obsahuje prostředky v jednom jazyce, jinak MUIRCT selže. MUIRCT nerozdělí soubor, pokud je jazyk neutrální, který je označen pouze hodnotou ID jazyka 0 v souboru. Output_LN_file a output_mui_file jsou názvy souboru neutrálního jazyka a .mui, do kterého je source_file rozdělen. Tyto názvy souborů jsou volitelné. Pokud nejsou zadány, MUIRCT připojí přípony .ln a .mui k source_file. Před nasazením souboru byste obvykle měli odebrat příponu .ln. MUIRCT přidruží output_LN_file a output_MUI_file výpočtem kontrolního součtu na základě source_file názvu a verze souboru a vložení výsledku do oddílu konfigurace prostředků každého výstupního souboru. Při použití ve spojení s přepínačem -c má přednost přepínač -q. Pokud soubor rc_config zadaný s přepínačem -q obsahuje kontrolní součet MUIRCT ignoruje přepínač -c a vloží hodnotu kontrolního součtu z hodnoty, rc_config soubor do souborů LN and.mui. Pokud se v rc_config nenajde žádná hodnota kontrolního součtu, funkce MUIRCT vypočítá kontrolní součet prostředků na základě chování přepínače -c.
-v Určuje úroveň podrobného protokolování. Zadáním 1 zobrazíte všechny základní chybové zprávy a výsledky operací. Zadejte 2, aby zahrnoval také informace o prostředku (typ, název, identifikátor jazyka) obsažené v souboru .mui a souboru LN. Výchozí hodnota je -v 1.
-x Určuje ID jazyka, pomocí kterého MUIRCT označí všechny typy prostředků přidané do oddílu prostředku souboru .mui. Hodnotu LangID lze zadat v desítkovém nebo šestnáctkovém formátu. Například angličtinu (Spojené státy) lze zadat pomocí -x 0x409 nebo -x 1033.
-e Extrahuje kontrolní součet prostředků obsažený v checksum_file poskytnutém přepínačem -c a vloží ho do zadaného output_file. Pokud je zadán -e, funkce MUIRCT ignoruje všechny přepínače kromě přepínače -c. V tomto případě musí být checksum_file binárním souborem Win32, který obsahuje oddíl konfiguračních dat prostředků s hodnotou kontrolního součtu. Output_file musí být existující soubor LN nebo soubor .mui.
-z Vypočítá a vloží data kontrolního součtu prostředků do zadaného výstupního souboru. FUNKCE MUIRCT zakládá výpočet kontrolního součtu na vstupu poskytnutém přepínačem -c a volitelném přepínači -b. Pokud zadáte výstupní soubor pro přepínač -z, který neexistuje, MUIRCT se ukončí se selháním.
Příklad: Vypočítá kontrolní součet na základě lokalizovatelných prostředků v Notepad.exe a vloží kontrolní součet do výstupního souboru Notepad2.exe.
muirct -c notepad.exe -q myprog.rcconfig -z notepad2.exe
-f Umožňuje vytvořit soubor .mui s prostředkem verze, který je jediným lokalizovatelným prostředkem. Ve výchozím nastavení muIRCT tuto možnost nepovoluje.
-d Vyhledá a zobrazí vložená konfigurační data prostředků ve zdrojovém souboru. Když zadáte tento přepínač, MUIRCT ignoruje všechny ostatní možnosti příkazového řádku.
-m Určuje číslo verze, které se má použít při výpočtu kontrolního součtu pro přidružení output_LN_file a output_MUI_file.
source_filename Název lokalizovaného binárního zdrojového souboru; Zástupné cardy nelze použít. Tento soubor může obsahovat pouze prostředky v jednom jazyce. Pokud soubor obsahuje více jazyků, funkce MUIRCT selže, pokud se nepoužije přepínač -b. Pokud soubor obsahuje prostředky s identifikátory jazyka, které mají pouze hodnotu 0, MUIRCT soubor nerozdělí, protože identifikátor jazyka 0 označuje neutrální jazyk.
Pro přepínač -d je source_filename souborem LN nebo souborem prostředků specifický pro jazyk, pro který má MUIRCT zobrazit konfigurační data prostředků.
language_neutral_filename Volitelný. Název souboru LN. Pokud nezadáte název tohoto souboru, připojí MUIRCT k názvu zdrojového souboru druhou příponu ".ln", která se použije jako název souboru neutrálního jazyka. Před nasazením souboru byste obvykle měli odebrat příponu .ln. Poznámka: soubor LN by neměl obsahovat řetězce ani nabídky. Měli byste je odebrat ručně.
mui_filename Volitelný. Název souboru prostředků specifického pro jazyk. Pokud nezadáte název, muIRCT připojí k názvu zdrojového souboru druhou příponu ".mui", která se použije jako název souboru. Za normálních okolností MUIRCT vytvoří soubor prostředků specifický pro jazyk. Pokud však existují některé z následujících podmínek, nevytvoří soubor prostředků:
  • V původním binárním souboru nejsou žádné lokalizovatelné prostředky.
  • Jediný jazyk prostředků nalezený v původním binárním souboru je neutrální jazyk.
  • Původní binární soubor obsahuje prostředky pro více než jeden jazyk, nepočítá neutrální jazyk. Pokud binární soubor obsahuje prostředky pro dva jazyky a jeden z nich je neutrální jazyk, nástroj považuje soubor za monolinguální a vytvoří soubor prostředků specifický pro jazyk, pokud existují lokalizovatelné prostředky.

 

Výstup jazyka MUIRCT

MUIRCT zvolí hodnotu atributu UltimateFallbackLanguage, která se má vložit do konfiguračních dat prostředků souboru LN na základě následujícího pořadí, od nejvyšší priority po nejnižší:

  1. Atribut UltimateFallbackLanguage v konfiguračním souboru zdrojového prostředku, pokud se předá jako vstup.
  2. Jazyk zadaný přepínačem -g.
  3. Jazyk vstupního souboru

MUIRCT vybere hodnotu atributu "language" pro vložení do konfiguračních dat prostředků souboru .mui na základě následujícího pořadí:

  1. Atribut language v konfiguračním souboru zdrojového prostředku, pokud se předá jako vstup.
  2. Jazyk určený přepínačem -x (vynucení jazyka).
  3. Jazyk vstupního souboru

MuIRCT – zpracování kontrolního součtu

Operační systém obvykle vypočítá kontrolní součet pro prostředky specifické pro jazyk v souboru, pokud nezadáte kontrolní součet prostřednictvím konfiguračního souboru prostředků. Pokud je kontrolní součet stejný pro soubor LN a všechny přidružené soubory prostředků specifické pro jazyk a atribut jazyka v konfiguraci prostředků v LN a závislém jazyce, může zavaděč prostředků úspěšně načíst prostředky.

MUIRCT podporuje několik metod pro umístění příslušných kontrolních součtů do konfiguračních dat prostředků:

  1. Vytvořte spustitelný soubor pro každý jazyk, který obsahuje kód i prostředky. Potom pomocí MUIRCT rozdělte každý z těchto souborů do souboru LN a soubor prostředků specifický pro jazyk. MUIRCT běží vícekrát, jednou pro vygenerování souboru prostředků pro každý jazyk. Sestavení můžete provést následujícími způsoby:
    1. Pomocí přepínače -q zadejte hodnotu kontrolního součtu v konfiguračním souboru prostředku. MUIRCT tuto hodnotu umístí do všech souborů LN a souborů prostředků specifických pro jazyk vytvořených. Musíte přijmout strategii pro volbu této hodnoty, jak je popsáno dále v tomto tématu.
    2. Pomocí přepínače -c (a volitelně přepínačem -b) zvolte jeden jazyk, ze kterého muIRCT extrahuje kontrolní součet.
    3. Pomocí přepínače -z zvolte jeden jazyk s prostředky, ze kterých MUIRCT vždy extrahuje kontrolní součet. Tento kontrolní součet použijte po sestavení souborů pomocí jiných metod.
  2. Vytvořte spustitelný soubor obsahující kód i prostředky pro jeden jazyk. Potom pomocí MUIRCT rozdělte prostředky mezi soubor LN a soubor prostředků specifický pro jazyk. Nakonec pomocí nástroje pro binární lokalizaci upravte výsledný soubor prostředků pro každý jazyk.

Nejběžnější konvencí pro zpracování kontrolních součtů je založit kontrolní součet na anglických prostředcích (SPOJENÉ STÁTY). Můžete přijmout jinou konvenci, pokud je konzistentní pro každý soubor LN. Je například naprosto přijatelné, aby podnik pro vývoj softwaru založil kontrolní součty v softwaru, který staví na prostředcích francouzštiny (Francie), a ne na prostředcích angličtiny (Spojené státy), pokud všechny aplikace mají francouzské (Francie), na kterých se mají založit kontrolní součty. Je také přijatelné použít konfigurační soubor prostředků k přiřazení libovolné šestnáctkové hodnoty až 16 šestnáctkových číslic jako kontrolního součtu. Tato poslední strategie zabraňuje účinnému použití přepínačů -z, -c a -b muIRCT. K vygenerování hodnot kontrolního součtu vyžaduje přijetí metody pomocí GuidGen nebo jiného nástroje. Tato strategie také vyžaduje, abyste nastavili zásadu pro určení, kdy upravit hodnotu při přidávání nových lokalizovatelných prostředků.

Chcete-li použít kontrolní součet v angličtině (Spojené státy) pro všechny soubory, můžete použít některou z metod zpracování kontrolních součtů popsaných výše. Můžete například vygenerovat soubor LN a soubor prostředků specifický pro jazyk pro angličtinu (Spojené státy), pak pomocí přepínače MUIRCT -d získat výsledný kontrolní součet. Tento kontrolní součet můžete zkopírovat do konfiguračního souboru prostředku a použít přepínač -q s MUIRCT k použití kontrolního součtu u všech ostatních souborů.

Použití konfiguračního souboru prostředku s MUIRCT

Při použití MUIRCT můžete zadat konfigurační data prostředků. Bez ohledu na to, jestli explicitně zadáte konfigurační soubor prostředku, každý soubor prostředků specifický pro jazyk má konfigurační data prostředků, stejně jako jakýkoli soubor LN s přidruženým souborem prostředků. Například:

  • Pokud použijete přepínač -q k určení konfiguračního souboru prostředku, ale ve vstupním zdrojovém souboru nejsou žádné lokalizovatelné prostředky, nevygeneruje se žádný soubor prostředků specifický pro jazyk a výsledný soubor LN neobsahuje konfigurační data prostředků. Pokud má vstupní zdrojový soubor vícejazyčné prostředky, muIRCT soubor rozdělí.

Poznámka

V současné době chování MUIRCT je nekonzistentní, když neutralResources elementu prostředku konfigurační soubor neobsahuje žádné elementy resourceType a element localizedResources obsahuje například řetězce a nabídky. V takovém případě MUIRCT rozdělí prostředky následujícím způsobem:

  • Všechny prostředky v původním binárním souboru (včetně řetězců a nabídek) a prostředky MUI jsou umístěny do souboru LN.
  • Řetězce, nabídky a prostředky MUI se umístí do příslušného souboru prostředků specifického pro jazyk.

 

Příklady použití MUIRCT

příklady standardního využití

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

muirct -d myprog.exe.mui

příklad výstupu souboru LN pomocí přepínače -d

Tady je příklad výstupu konfiguračních dat prostředků ze souboru LN Shell32.dllpomocí přepínače -d s 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

příklad výstupu souboru prostředků Language-Specific pomocí přepínače -d

Tady je příklad výstupu konfiguračních dat prostředků ze souboru .mui Shell32.dll.mui pomocí přepínače -d pro 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

Nástroj kompilátoru RC

RC Compiler (Rc.exe) je nástroj příkazového řádku pro kompilaci souboru skriptu definice prostředku (přípona .rc) do souborů prostředků (přípona .res). Kompilátor RC je součástí sady Windows SDK. Tento dokument vysvětluje použití kompilátoru RC pouze s funkcemi souvisejícími s MUI zavaděče prostředků. Úplné informace o kompilátoru najdete v tématu O souborech prostředků.

Kompilátor RC umožňuje sestavovat z jedné sady zdrojů, souboru LN a samostatného souboru prostředků specifického pro jazyk. Pokud jde o MUIRCT, soubory jsou přidružené konfiguračními daty prostředků.

Syntaxe kompilátoru RC použitá pro prostředky MUI

Přepínače kompilátoru RC jsou podrobně definovány v Using RC. Tato část definuje pouze přepínače používané k sestavení prostředků MUI. Mějte na paměti, že každý přepínač nerozlišuje malá a velká písmena. U typů prostředků se předpokládá, že jsou jazykově neutrální, pokud není uvedeno jinak.

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

přepínače a argumenty

Možnost Funkce
-h nebo -? Zobrazuje obrazovku nápovědy.
-Fm Používá zadaný soubor prostředků pro prostředky specifické pro jazyk. Kompilátor prostředků obvykle vytvoří soubor prostředků specifický pro jazyk. Pokud však existují některé z následujících podmínek, soubor se nevytvoří:
  • V souboru .rc nejsou k dispozici žádné lokalizovatelné prostředky.
  • Jediný jazyk prostředků nalezený v souboru .rc je neutrální jazyk.
  • Soubor .rc obsahuje prostředky pro více než jeden jazyk, nepočítá neutrální jazyk. Pokud soubor .rc obsahuje prostředky pro dva jazyky a jeden z nich je neutrální jazyk, kompilátor považuje soubor za monolinguální. Pokud existují nějaké lokalizovatelné prostředky, kompilátor vytvoří soubor prostředků specifický pro jazyk.
-q Pomocí zadaného konfiguračního souboru prostředku získá typy prostředků, které se umístí do souboru prostředků specifického pro jazyk a do souboru LN. Další informace naleznete v tématu Příprava konfiguračního souboru prostředku. Jako alternativu k tomuto přepínači můžete použít -j a -k přepínače, ale preferuje se použití konfiguračního souboru prostředku.
Pomocí přepínače -q s konfiguračním souborem prostředků můžete implementovat rozdělení založené na položkách a poskytnout atributy, které skončí s konfigurací binárních prostředků v souboru prostředků LN a pro konkrétní jazyk. Toto rozdělení není možné pomocí přepínačů -j a -k. Poznámka: proces rozdělení kompilátoru RC nefunguje správně, pokud ukládáte prostředky a informace o verzi v různých konfiguračních souborech prostředků. V tomto případě kompilátor RC nerozdělí informace o verzi. Proto při propojování souboru prostředků specifického pro jazyk dojde k chybě linkeru, protože soubor nemá prostředky verze.
-g Určuje konečný náhradní jazyk identifikátor v šestnáctkové soustavě.
-g1 Vytvoří soubor MUI .res, i když je prostředek VERSION jediným lokalizovatelným obsahem. Kompilátor RC ve výchozím nastavení nevygeneruje soubor .res, pokud je verze jediným lokalizovatelným prostředkem.
-g2 Určuje vlastní číslo verze, které se má použít při výpočtu kontrolního součtu.
mui_res_name Soubor prostředků pro prostředky specifické pro jazyk
rc_config_file_name Konfigurační soubor prostředků.
langid Identifikátor jazyka.
verze Vlastní číslo verze ve formátu 6.2.0.0.

 

Příklad použití kompilátoru RC k sestavení prostředků MUI

Pokud chcete ilustrovat operaci kompilátoru RC s prostředky MUI, pojďme se podívat na následující příkazový řádek pro soubor prostředků Myfile.rc:

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

Tento příkazový řádek způsobí, že kompilátor RC provede následující akce:

  • Vytvořte soubor prostředků specifický pro jazyk Myfile_res.res a soubor prostředků neutrální pro jazyk, který se ve výchozím nastavení nastaví na soubor Myfile.res na základě názvu souboru .rc.
  • Přidejte 2 (položka 5 6 7 8 9 10 11 12), 4, 5, 6, 9, 11, 16, 23, 240, 1024 MY_TYPE typy prostředků do souboru .res specifického pro jazyk, pokud jsou v souboru .rc.
  • Přidejte typ prostředku 16 spolu s dalšími typy prostředků popsanými v souboru prostředku do souboru .res s neutrálním jazykem a do souboru .res specifického jazyka. Všimněte si, že v tomto příkladu se typ prostředku 16 přidává na dvou místech.
  • Zvolte hodnotu atributu UltimateFallbackLanguage, která se má vložit do konfiguračních dat prostředků souboru LN na základě následujících kritérií seřazených od nejvyšší priority po nejnižší:
    • Atribut UltimateFallbackLanguage v konfiguračním souboru prostředku, pokud se předá jako vstup.
    • Hodnota atributu jazyka, která se mají vložit do konfiguračních dat prostředků na základě pořadí jazyka kompilátoru RC (jazykově neutrální a jazykově specifický jazyk souboru prostředků). Mezi důležité informace patří jazyk v souboru .rc, hodnota jazyka přepínače -gl a identifikátor 0x0409 pro angličtinu (Spojené státy).

Poznámky

Pokud do elementu neutralResources zahrnete libovolný typ prostředku ICON(3), DIALOG(5), STRING(6) nebo VERSION(16), musíte tuto položku duplikovat v elementu localizedResources v konfiguračním souboru prostředku.

referenční vícejazyčného uživatelského rozhraní

správy prostředků MUI

lokalizace prostředků a sestavení aplikace