Přehled globalizace a lokalizace WPF

Když omezíte dostupnost vašeho produktu jenom na jeden jazyk, omezíte potenciální zákaznickou základnu na zlomek 7,5 miliardy obyvatel našeho světa. Pokud chcete, aby vaše aplikace dosáhly globální cílové skupiny, nákladově efektivní lokalizace vašeho produktu je jedním z nejlepších a nejekonomičtějších způsobů, jak dosáhnout více zákazníků.

Tento přehled představuje globalizaci a lokalizaci ve Windows Presentation Foundation (WPF). Globalizace je návrh a vývoj aplikací, které se provádějí v několika umístěních. Globalizace například podporuje lokalizovaná uživatelská rozhraní a regionální data pro uživatele v různých jazykových verzích. WPF poskytuje globalizované funkce návrhu, včetně automatického rozložení, satelitních sestavení a lokalizovaných atributů a komentování.

Lokalizace je překlad prostředků aplikace do lokalizovaných verzí pro konkrétní jazykové verze, které aplikace podporuje. Při lokalizaci ve WPF použijete rozhraní API v System.Windows.Markup.Localizer oboru názvů. Tato rozhraní API power the LocBaml Tool Sample command-line tool. Informace o tom, jak sestavit a používat LocBaml, naleznete v tématu Lokalizace aplikace.

Upozorňující

Nástroj LocBaml funguje pouze s WPF pro projekty .NET Framework, nefunguje s WPF pro .NET.

Osvědčené postupy pro globalizaci a lokalizaci ve WPF

Pomocí tipů souvisejících s návrhem uživatelského rozhraní a lokalizací, které tato část obsahuje, můžete maximálně využít funkce globalizace a lokalizace integrované do WPF.

Osvědčené postupy pro návrh uživatelského rozhraní WPF

Při návrhu uživatelského rozhraní založeného na WPF zvažte implementaci těchto osvědčených postupů:

  • Psaní uživatelského rozhraní v XAML; vyhněte se vytváření uživatelského rozhraní v kódu. Při vytváření uživatelského rozhraní pomocí XAML ho zveřejníte prostřednictvím integrovaných lokalizačních rozhraní API.

  • Nepoužívejte absolutní pozice a pevné velikosti k rozložení obsahu; místo toho použijte relativní nebo automatickou velikost.

    • Používejte a udržujte SizeToContent šířky a výšky nastavené na Auto.

    • Canvas Nepoužívejte k rozložení uživatelských rozhraní.

    • Použijte Grid a její funkci sdílení velikosti.

  • Zajistěte nadbytečné místo na okrajích, protože lokalizovaný text často vyžaduje více místa. Nadbytečné místo umožňuje možné převislé znaky.

  • Povolte TextWrapping zapnutí TextBlock , abyste se vyhnuli výřezu.

  • xml:lang Nastavte atribut. Tento atribut popisuje jazykovou verzi konkrétního prvku a jeho podřízených prvků. Hodnota této vlastnosti změní chování několika funkcí wpf. Například změní chování dělení slov, kontroly pravopisu, nahrazení čísel, komplexní tvarování skriptu a náhradní písmo. Další informace o nastavení zpracování xml:lang v JAZYCE XAML najdete v tématu Globalizace pro WPF.

  • Vytvořte přizpůsobené složené písmo, abyste získali lepší kontrolu nad písmy používanými pro různé jazyky. WpF ve výchozím nastavení používá v adresáři Windows\Fonts písmo GlobalUserInterface.composite.

  • Při vytváření navigačních aplikací, které mohou být lokalizovány v jazykové verzi, která prezentuje text ve formátu zprava doleva, explicitně nastavit FlowDirection všechny stránky, aby se zajistilo, že stránka nedědí FlowDirection z NavigationWindow.

  • Při vytváření samostatných navigačních aplikací hostovaných mimo prohlížeč nastavte StartupUri počáteční aplikaci na místo NavigationWindow stránky (například <Application StartupUri="NavigationWindow.xaml">). Tento návrh umožňuje změnit FlowDirection okno a navigační panel. Další informace a příklad najdete v tématu Ukázka domovské stránky globalizace.

Osvědčené postupy pro lokalizaci WPF

Při lokalizaci aplikací založených na WPF zvažte implementaci těchto osvědčených postupů:

  • Pomocí komentářů k lokalizaci můžete poskytnout další kontext pro lokalizátory.

  • Pomocí atributů lokalizace můžete řídit lokalizaci místo selektivního vynechání Uid vlastností prvků. Další informace najdete v tématu Atributy lokalizace a komentáře .

  • -t:checkuid Umožňuje msbuild -t:updateuid přidat a zkontrolovat Uid vlastnosti v XAML. Pomocí Uid vlastností můžete sledovat změny mezi vývojem a lokalizací. Uid vlastnosti pomáhají lokalizovat nové změny vývoje. Pokud do uživatelského rozhraní ručně přidáte Uid vlastnosti, úloha je obvykle zdlouhavá a méně přesná.

    • Po zahájení lokalizace neměňte ani neupravujte Uid vlastnosti.

    • Nepoužívejte duplicitní Uid vlastnosti (pamatujte si tento tip při použití příkazu copy-and-paste).

    • UltimateResourceFallback Nastavte umístění v AssemblyInfo.* pro určení vhodného jazyka pro náhradní použití (například [assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]).

      Pokud se rozhodnete zahrnout zdrojový jazyk do hlavního sestavení vynecháním <UICulture> značky v souboru projektu, nastavte UltimateResourceFallback místo satelitního (například [assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.MainAssembly)]) umístění jako hlavní sestavení .

Lokalizace aplikace WPF

Při lokalizaci aplikace WPF máte několik možností. Můžete například svázat lokalizovatelné prostředky v aplikaci k souboru XML, uložit lokalizovatelný text do tabulek resx nebo použít lokalizátor soubory XAML. Tato část popisuje pracovní postup lokalizace, který používá formulář BAML XAML, který poskytuje několik výhod:

  • Po sestavení můžete lokalizovat.

  • Můžete aktualizovat na novější verzi formuláře BAML XAML s lokalizací ze starší verze formuláře BAML XAML, abyste mohli lokalizovat ve stejnou dobu, kterou vyvíjíte.

  • Původní zdrojové elementy a sémantika můžete ověřit v době kompilace, protože forma BAML XAML je kompilovaná forma XAML.

Proces sestavení lokalizace

Při vývoji aplikace WPF je proces sestavení pro lokalizaci následující:

  • Vývojář vytvoří a globalizuje aplikaci WPF. V souboru projektu se vývojáři nastaví <UICulture>en-US</UICulture> tak, aby se při kompilaci aplikace vygenerovalo hlavní sestavení neutrální jazyka. Toto sestavení má satelitní soubor .resources.dll, který obsahuje všechny lokalizovatelné prostředky. Volitelně můžete zachovat zdrojový jazyk v hlavním sestavení, protože naše lokalizační rozhraní API podporují extrakci z hlavního sestavení.

  • Při kompilaci souboru do sestavení se XAML převede na formát BAML XAML. Kulturní neutrální MyDialog.exe a kulturního závislé (anglické) MyDialog.resources.dll soubory jsou vydány anglicky mluvícímu zákazníkovi.

Pracovní postup lokalizace

Proces lokalizace začíná po sestavení nelokalizovaného MyDialog.resources.dll souboru. Prvky uživatelského rozhraní a vlastnosti v původním KÓDU XAML se extrahují z formátu BAML XAML do párů klíč-hodnota pomocí rozhraní API v části System.Windows.Markup.Localizer. Lokalizátory k lokalizaci aplikace používají páry klíč-hodnota. Po dokončení lokalizace můžete vygenerovat novou knihovnu .resource.dll z nových hodnot.

Klíče párů klíč-hodnota jsou x:Uid hodnoty, které umístí vývojář v původním kódu XAML. Tyto x:Uid hodnoty umožňují rozhraní API sledovat a slučovat změny, ke kterým dochází mezi vývojářem a lokalizátorem během lokalizace. Pokud například vývojář změní uživatelské rozhraní po zahájení lokalizace lokalizátoru, můžete sloučit změnu vývoje s již dokončenou lokalizační prací, aby se ztratila minimální práce překladu.

Následující obrázek znázorňuje typický pracovní postup lokalizace založený na formátu BAML XAML. Tento diagram předpokládá, že vývojář napíše aplikaci v angličtině. Vývojář vytvoří a globalizuje aplikaci WPF. V souboru projektu vývojář nastaví <UICulture>en-US</UICulture> tak, aby při sestavení, jazyk neutrální hlavní sestavení se vygeneruje se satelitní .resources.dll obsahující všechny lokalizovatelné prostředky. Případně můžete zachovat zdrojový jazyk v hlavním sestavení, protože lokalizační rozhraní API WPF podporují extrakci z hlavního sestavení. Po procesu sestavení se XAML zkompiluje do BAML. Kulturní neutrální MyDialog.exe.resources.dll se dodává anglicky mluvícímu zákazníkovi.

Diagram showing the Localization workflow.

Diagram showing the Unlocalized workflow.

Příklady lokalizace WPF

Tato část obsahuje příklady lokalizovaných aplikací, které vám pomůžou pochopit, jak se vytvářejí a lokalizují aplikace WPF.

Příklad dialogového okna Spustit

Následující grafika ukazuje výstup ukázky dialogového okna Spustit .

Angličtina:

Screenshot showing an English Run dialog box.

Němčina:

Screenshot showing a German Run dialog box.

Návrh dialogového okna Globální spuštění

Tento příklad vytvoří dialogové okno Spustit pomocí WPF a XAML. Toto dialogové okno je ekvivalentní dialogovému okně Spustit, které je k dispozici v systému Microsoft Windows nabídka Start.

Mezi nejdůležitější prvky pro vytváření globálních dialogových oken patří:

Automatické rozložení

V souboru Window1.xaml:

<Window SizeToContent="WidthAndHeight">

Předchozí vlastnost Window automaticky změní velikost okna podle velikosti obsahu. Tato vlastnost zabraňuje v okně odříznout obsah, který se zvyšuje po lokalizaci; Odebere také nepotřebné místo, když se obsah po lokalizaci zmenší.

<Grid x:Uid="Grid_1">

Uid k tomu, aby lokalizační rozhraní API WPF fungovala správně, jsou potřeba vlastnosti.

Používají je lokalizační rozhraní API WPF ke sledování změn mezi vývojem a lokalizací uživatelského rozhraní. Uid Vlastnosti umožňují sloučení novější verze uživatelského rozhraní se starší lokalizací uživatelského rozhraní. Vlastnost přidáte Uid spuštěním msbuild -t:updateuid RunDialog.csproj v příkazovém prostředí. Toto je doporučená metoda přidávání Uid vlastností, protože jejich ruční přidávání je obvykle časově náročné a méně přesné. Spuštěním příkazu můžete zkontrolovat, zda Uid jsou vlastnosti správně nastaveny msbuild -t:checkuid RunDialog.csproj.

Uživatelské rozhraní je strukturované pomocí Grid ovládacího prvku, což je užitečný ovládací prvek pro využívání automatického rozložení ve WPF. Všimněte si, že dialogové okno je rozděleno na tři řádky a pět sloupců. Jedna z definic řádků a sloupců nemá pevnou velikost; prvky uživatelského rozhraní, které jsou umístěny v každé buňce, se proto mohou přizpůsobit nárůstu a snížení velikosti během lokalizace.

<Grid.ColumnDefinitions>
  <ColumnDefinition x:Uid="ColumnDefinition_1" />
  <ColumnDefinition x:Uid="ColumnDefinition_2" />

První dva sloupce, ve kterých je otevřená: popisek a ComboBox jsou umístěny, používají 10 procent celkové šířky uživatelského rozhraní.

  <ColumnDefinition x:Uid="ColumnDefinition_3" SharedSizeGroup="Buttons" />
  <ColumnDefinition x:Uid="ColumnDefinition_4" SharedSizeGroup="Buttons" />
  <ColumnDefinition x:Uid="ColumnDefinition_5" SharedSizeGroup="Buttons" />
</Grid.ColumnDefinitions>

Všimněte si, že v příkladu se používá funkce Gridsdílené velikosti . Poslední tři sloupce tuto výhodu využívají tím, že se umístí do stejného SharedSizeGroup. Jak byste očekávali od názvu vlastnosti, umožníte sloupcům sdílet stejnou velikost. Takže když "Procházet..." se lokalizuje na delší řetězec "Durchsuchen...", všechna tlačítka rostou šířku, místo aby měla malé tlačítko OK a nepřiměřeně velký "Durchsuchen..." Tlačítko.

xml:lang

xml:lang="en-US"

Všimněte si zpracování xml:lang v XAML umístěném v kořenovém prvku uživatelského rozhraní. Tato vlastnost popisuje jazykovou verzi daného prvku a jejích podřízených prvků. Tuto hodnotu používá několik funkcí WPF a měla by se při lokalizaci odpovídajícím způsobem změnit. Tato hodnota změní, jaký slovník jazyka se používá k dělení slov a kontrole pravopisu. Ovlivňuje také zobrazení číslic a způsob, jakým záložní systém písma vybere písmo, které má použít. Nakonec vlastnost ovlivňuje způsob zobrazení čísel a způsob, jakým jsou texty napsané ve složitých skriptech tvarovány. Výchozí hodnota je en-US.

Sestavení satelitního sestavení prostředků

V souboru .csproj:

.csproj Upravte soubor a přidejte následující značku k nepodmíněnému<PropertyGroup>:

<UICulture>en-US</UICulture>

Všimněte si přidání UICulture hodnoty. Pokud je tato hodnota nastavena na platnou CultureInfo hodnotu, jako je en-US, sestavení projektu vygeneruje satelitní sestavení se všemi lokalizovatelnými zdroji v něm.

<Resource Include="RunIcon.JPG">

<Localizable>False</Localizable>

</Resource>

Nemusí RunIcon.JPG být lokalizován, protože by měl být stejný pro všechny jazykové verze. Localizable je nastavena tak false , aby zůstala v jazykovém neutrálním hlavním sestavení místo satelitního sestavení. Výchozí hodnota všech nekompatibilních prostředků je Localizable nastavena na truehodnotu .

Lokalizace dialogového okna Spustit

Parse (Parsování)

Po sestavení aplikace je prvním krokem při lokalizaci analyzovat lokalizovatelné prostředky ze satelitního sestavení. Pro účely tohoto tématu použijte ukázkový nástroj LocBaml, který najdete v ukázce nástroje LocBaml. Všimněte si, že LocBaml je pouze ukázkový nástroj, který vám pomůže začít vytvářet lokalizační nástroj, který zapadá do procesu lokalizace. Pomocí locBaml spusťte následující parsování: LocBaml /parse RunDialog.resources.dll /out: pro vygenerování souboru RunDialog.resources.dll.CSV.

Upozorňující

Nástroj LocBaml funguje pouze s WPF pro projekty .NET Framework, nefunguje s WPF pro .NET.

Lokalizovat

K úpravě tohoto souboru použijte oblíbený editor CSV, který podporuje Unicode. Vyfiltrujte všechny položky s kategorií lokalizace None (Žádný). Měly by se zobrazit následující položky:

Klíč prostředku Kategorie lokalizace Hodnota
Button_1:System.Windows.Controls.Button.$Content Tlačítko OK
Button_2:System.Windows.Controls.Button.$Content Tlačítko Storno
Button_3:System.Windows.Controls.Button.$Content Tlačítko Procházet...
ComboBox_1:System.Windows.Controls.ComboBox.$Content ComboBox
TextBlock_1:System.Windows.Controls.TextBlock.$Content Text Zadejte název programu, složky, dokumentu nebo internetového prostředku a Systém Windows ho otevře za vás.
TextBlock_2:System.Windows.Controls.TextBlock.$Content Text Otevřít:
Window_1:System.Windows.Window.Title Název Spustit

Lokalizace aplikace do němčiny by vyžadovala následující překlady:

Klíč prostředku Kategorie lokalizace Hodnota
Button_1:System.Windows.Controls.Button.$Content Tlačítko OK
Button_2:System.Windows.Controls.Button.$Content Tlačítko Abbrechen
Button_3:System.Windows.Controls.Button.$Content Tlačítko Durchsuchen...
ComboBox_1:System.Windows.Controls.ComboBox.$Content ComboBox
TextBlock_1:System.Windows.Controls.TextBlock.$Content Text Geben Sie den Namen eines Programms, Ordners, Dokuments oder einer Internetresource an.
TextBlock_2:System.Windows.Controls.TextBlock.$Content Text Öffnen:
Window_1:System.Windows.Window.Title Název Spustit

Generovat

Posledním krokem lokalizace je vytvoření nově lokalizovaného satelitního sestavení. Toho lze dosáhnout pomocí následujícího příkazu LocBaml:

LocBaml.exe /generate RunDialog.resources.dll /trans:RunDialog.resources.dll.CSV /out: . /cul:de-DE

Pokud je tato knihovna resources.dll v německém systému Windows umístěna ve složce de-DE vedle hlavního sestavení, tento prostředek se automaticky načte místo toho ve složce en-US. Pokud nemáte německou verzi Systému Windows k otestování, nastavte jazykovou verzi na libovolnou jazykovou verzi Systému Windows, en-USkterou používáte (například) a nahraďte původní knihovny DLL prostředků.

Načítání satelitních prostředků

MyDialog.exe en-US\MyDialog.resources.dll de-DE\MyDialog.resources.dll
Kód Původní angličtina BAML Lokalizované BAML
Kulturní neutrální zdroje Další zdroje informací v angličtině Další prostředky lokalizované do němčiny

.NET automaticky zvolí, které satelitní prostředky se mají načíst na základě aplikace Thread.CurrentUICulture. Výchozí hodnota je jazyková verze operačního systému Windows. Pokud používáte německou verzi Windows, načte se soubor de-DE\MyDialog.resources.dll . Pokud používáte anglickou verzi Windows, načte se soubor en-US\MyDialog.resources.dll . Konečný záložní prostředek pro vaši aplikaci můžete nastavit zadáním atributu NeutralResourcesLanguage v souboru AssemblyInfo projektu. Pokud například zadáte:

[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]

soubor en-US\MyDialog.resources.dll se používá s německým Systémem Windows, pokud není k dispozici žádný z následujících souborů: de-DE\MyDialog.resources.dll nebo de\MyDialog.resources.dll.

Domovská stránka Microsoft Saúdská Arábie

Následující grafika zobrazuje domovskou stránku v angličtině a arabštině. Kompletní ukázka, která vytváří tyto grafiky, naleznete v části Ukázka domovské stránky globalizace.

Angličtina:

Screenshot showing an English home page.

Arabština:

Screenshot showing an Arabic home page.

Návrh domovské stránky globálního Microsoftu

Tento napodobení webu Microsoft Saúdská Arábie znázorňuje funkce globalizace poskytované pro jazyky RightToLeft. Jazyky, jako je hebrejština a arabština, mají pořadí čtení zprava doleva, takže rozložení uživatelského rozhraní musí být často rozloženo úplně jinak než v jazycích se zápisem zleva doprava, jako je angličtina. Lokalizace z jazyka zleva doprava do jazyka zprava doleva nebo naopak může být poměrně náročná. WPF byla navržena tak, aby byla taková lokalizace mnohem jednodušší.

Flowdirection

Homepage.xaml:

<Page x:Uid="Page_1" x:Class="MicrosoftSaudiArabiaHomepage.Homepage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"   
    FlowDirection="LeftToRight" 
    Localization.Comments="FlowDirection(This FlowDirection controls the actual content of the homepage)"
    xml:lang="en-US">

FlowDirection Všimněte si vlastnosti .Page Změnou této vlastnosti RightToLeft změníte FlowDirection prvky podřízených Page prvků a prvků uživatelského rozhraní tak, aby se rozložení tohoto uživatelského rozhraní překlopilo tak, aby se zprava doleva změnilo, jak by očekával uživatel arabštiny. Chování dědičnosti lze přepsat zadáním explicitního FlowDirection prvku. Vlastnost FlowDirection je k dispozici pro jakýkoli FrameworkElement prvek související s dokumentem a má implicitní hodnotu LeftToRight.

Všimněte si, že i přechodové štětce pozadí se při změně kořene FlowDirection správně překlopí:

FlowDirection="LeftToRight"

Screenshot showing the gradient flow from left to right.

FlowDirection="RightToLeft"

Screenshot showing the gradient flow from right to left.

Nepoužívejte pevné rozměry pro panely a ovládací prvky.

Podívejte se na Homepage.xaml, všimněte si, že kromě pevné šířky a výšky určené pro celé uživatelské rozhraní nahoře DockPanelneexistují žádné jiné pevné rozměry. Nepoužívejte pevné rozměry, abyste zabránili oříznutí lokalizovaného textu, který může být delší než zdrojový text. Panely a ovládací prvky WPF se automaticky změní na základě obsahu, který obsahují. Většina ovládacích prvků má také minimální a maximální rozměry, které můžete nastavit pro větší kontrolu (například MinWidth="20"). Pomocí Gridfunkce sdílení velikosti buňky můžete také nastavit relativní šířky a výšky pomocí znaku *(například Width="0.25*") nebo pomocí funkce sdílení velikosti buňky.

Komentáře lokalizace

Existuje mnoho případů, kdy může být obsah nejednoznačný a obtížně přeložený. Vývojář nebo návrhář má možnost poskytnout lokalizačním komentářům další kontext a komentáře k lokalizačním komentářům. Například lokalizační.Komentáře níže upřesňují použití znaku |.

<TextBlock 
  x:Uid="TextBlock_2" 
  DockPanel.Dock="Right" 
  Foreground="White" 
  Margin="5,0,5,0"
  Localization.Comments="$Content(This character is used as a decorative rule.)">
  |
</TextBlock>

Tento komentář se přidružuje k obsahu TextBlock_1 a v případě nástroje LocBaml (viz lokalizace aplikace), je vidět ve 6. sloupci TextBlock_1 řádku ve výstupním souboru .csv:

Klíč prostředku Kategorie Čitelný Lze změnit Komentář Hodnota
TextBlock_1:System.Windows.Controls.TextBlock.$Content Text TRUE TRUE Tento znak se používá jako dekorativní pravidlo. |

Komentáře lze umístit do obsahu nebo vlastnosti libovolného prvku pomocí následující syntaxe:

<TextBlock 
  x:Uid="TextBlock_1" 
  DockPanel.Dock="Right" 
  Foreground="White" 
  Margin="5,0,5,0"
  Localization.Comments="$Content(This is a comment on the TextBlock's content.)
     Margin(This is a comment on the TextBlock's Margin property.)">
  |
 </TextBlock>

Atributy lokalizace

Vývojář nebo správce lokalizace často potřebuje mít kontrolu nad tím, co můžou lokalizátory číst a upravovat. Můžete například chtít, aby lokalizátor přeložil název vaší společnosti nebo právní formulace. WPF poskytuje atributy, které umožňují nastavit čitelnost, modifiability a kategorii obsahu nebo vlastnosti prvku, které nástroj pro lokalizaci může použít k uzamčení, skrytí nebo řazení prvků. Další informace najdete na webu Attributes. Pro účely této ukázky nástroj LocBaml pouze vypíše hodnoty těchto atributů. Ovládací prvky WPF mají pro tyto atributy výchozí hodnoty, ale můžete je přepsat. Následující příklad například přepíše výchozí atributy lokalizace a TextBlock_1 nastaví obsah tak, aby byl čitelný, ale neupravitelný pro lokalizátory.

<TextBlock
x:Uid="TextBlock_1"
Localization.Attributes=
"$Content(Readable Unmodifiable)">
  Microsoft Corporation
</TextBlock>

Kromě atributů čitelnosti a modifiability poskytuje WPF výčet běžných kategorií uživatelského rozhraní (LocalizationCategory), které lze použít k poskytnutí více kontextu lokalizátorů. Výchozí kategorie WPF pro ovládací prvky platformy je možné přepsat také v JAZYCE XAML:

<TextBlock x:Uid="TextBlock_2">
<TextBlock.ToolTip>
<TextBlock
x:Uid="TextBlock_3"
Localization.Attributes=
"$Content(ToolTip Readable Unmodifiable)">
Microsoft Corporation
</TextBlock>
</TextBlock.ToolTip>
Windows Vista
</TextBlock>

Výchozí atributy lokalizace, které WPF poskytuje, lze také přepsat prostřednictvím kódu, takže můžete správně nastavit správné výchozí hodnoty pro vlastní ovládací prvky. Příklad:

[Localizability(Readability = Readability.Readable, Modifiability=Modifiability.Unmodifiable, LocalizationCategory.None)]
public class CorporateLogo : TextBlock
{
    // ...
}

Atributy jednotlivých instancí nastavené v XAML budou mít přednost před hodnotami nastavenými v kódu ve vlastních ovládacích prvcích. Další informace o atributech a komentářích naleznete v tématu Atributy lokalizace a komentáře.

Záložní a složená písma písma

Pokud zadáte písmo, které nepodporuje daný rozsah kódu, WPF se automaticky vrátí k písmu, které provádí pomocí globálního uživatelského rozhraní.compositefont, který se nachází v adresáři Windows\Fonts. Složená písma fungují stejně jako jakékoli jiné písmo a lze je použít explicitně nastavením elementu FontFamily (například FontFamily="Global User Interface"). Vlastní předvolbu záložního písma můžete zadat tak, že vytvoříte vlastní složené písmo a určíte, jaké písmo se má použít pro konkrétní oblasti a jazyky s kódovými body.

Další informace o složených písmech naleznete v tématu FontFamily.

Lokalizace domovské stránky Microsoftu

K lokalizaci této aplikace můžete použít stejný postup jako v příkladu Spustit dialog. Lokalizovaný soubor CSV pro arabštinu je k dispozici v ukázce domovské stránky globalizace.