Sdílet prostřednictvím


Místní zdroje v aplikacích MFC: Satelitní knihovny DLL

MFC verze 7.0 a novější poskytuje rozšířenou podporu satelitních knihoven DLL, což je funkce, která pomáhá při vytváření aplikací lokalizovaných pro více jazyků. Satelitní knihovna DLL je knihovna DLL určená pouze pro prostředky prostředků aplikace lokalizované pro konkrétní jazyk. Při spuštění aplikace mfc automaticky načte lokalizovaný prostředek, který je nejvhodnější pro prostředí. Můžete mít například aplikaci s prostředky anglického jazyka se dvěma satelitními knihovnami DLL, jedna obsahující francouzský překlad vašich prostředků a druhá obsahující německý překlad. Když je aplikace spuštěna v anglickém jazykovém systému, používá anglické prostředky. Pokud běží ve francouzském systému, používá francouzské prostředky; pokud běží v německém systému, používá německé prostředky.

Aby bylo podporováno lokalizované prostředky v aplikaci MFC, mfc se pokusí načíst satelitní knihovnu DLL obsahující prostředky lokalizované do konkrétního jazyka. Satelitní knihovny DLL mají název ApplicationNameXXX.dll, kde ApplicationName je název souboru .exe nebo .dll pomocí knihovny MFC a XXX je třípísmenný kód pro jazyk prostředků (například ENU nebo DEU).

MFC se pokusí načíst knihovnu DLL prostředků pro každý z následujících jazyků v pořadí a zastaví se, když ji najde:

  1. Výchozí jazyk uživatelského rozhraní aktuálního uživatele vrácený z rozhraní API Win32 GetUserDefaultUILanguage().

  2. Výchozí jazyk uživatelského rozhraní aktuálního uživatele bez konkrétního podlanguage (to znamená, že ENC [Kanadská angličtina] se stává ENU [USA angličtina]).

  3. Výchozí jazyk uživatelského rozhraní systému vrácený z rozhraní GetSystemDefaultUILanguage() API. Na jiných platformách se jedná o jazyk samotného operačního systému.

  4. Výchozí jazyk uživatelského rozhraní systému bez konkrétního podlanguage.

  5. Falešný jazyk s kódem 3 písmen LOC.

Pokud MFC nenajde žádné satelitní knihovny DLL, použije jakékoli prostředky obsažené v samotné aplikaci.

Předpokládejme například, že aplikace LangExample.exe používá MFC a běží na více uživatelských rozhraních systému; systémový jazyk uživatelského rozhraní je ENU [Angličtina USA] a jazyk uživatelského rozhraní aktuálního uživatele je nastaven na FRC [Kanadská francouzština]. MFC hledá následující knihovny DLL v následujícím pořadí:

  1. LangExampleFRC.dll (jazyk uživatelského rozhraní uživatele).

  2. LangExampleFRA.dll (jazyk uživatelského rozhraní uživatele bez podlanguage, v tomto příkladu francouzština (Francie).

  3. LangExampleENU.dll (jazyk uživatelského rozhraní systému).

  4. LangExampleLOC.dll.

Pokud nejsou nalezeny žádné z těchto knihoven DLL, mfc používá prostředky v LangExample.exe.

Viz také

Vytváření knihoven DLL jazyka C/C++ v sadě Visual Studio
TN057: Lokalizace komponent MFC