Sdílet prostřednictvím


Doporučené postupy pro vývoj aplikací připravených pro použití ve světě

Tento oddíl popisuje doporučené postupy při vývoji aplikací připravených pro použití ve světě.

Doporučené postupy pro globalizaci

  1. Používejte uvnitř aplikace kódování Unicode.

  2. Pro práci s daty a jejich formátování používejte třídy podporující jazykové verze poskytované oborem názvů System.Globalization.

    • Pro řazení používejte třídu SortKey a třídu CompareInfo.

    • Pro porovnávání řetězců používejte třídu CompareInfo.

    • Pro formátování data a času používejte třídu DateTimeFormatInfo.

    • Pro formátování čísel používejte třídu NumberFormatInfo.

    • Pro gregoriánský kalendář i kalendáře jiné než gregoriánské používejte třídu Calendar nebo některou z konkrétních implementací kalendáře.

  3. Ve vhodných situacích používejte nastavení vlastností jazykové verze poskytované třídou System.Globalization.CultureInfo. Pro úlohy jako je formátování data a času či formátování čísel používejte vlastnost CultureInfo.CurrentCulture. Pro načítání prostředků používejte vlastnost CultureInfo.CurrentUICulture. Všimněte si, že vlastnosti CurrentCulture a CurrentUICulture lze nastavit pro vlákno.

  4. Umožněte aplikaci číst a zapisovat data z a do různých kódování pomocí tříd kódování v oboru názvů System.Text. Nepředpokládejte vždy data ve standardu ASCII. Předpokládejte, že mezinárodní znaky mohou být vloženy kdekoliv, kde může uživatel zadat text. Aplikace by například měly přijímat mezinárodní znaky v názvech serverů, adresářů, souborů, uživatelských jménech a adresách URL.

  5. Při použití třídy UTF8Encoding z bezpečnostních důvodů používejte funkci rozpoznávání chyb nabízenou touto třídou. Pro zapnutí funkce rozpoznávání chyb aplikace vytvoří instanci třídy pomocí konstruktoru, který přijímá parametr throwOnInvalidBytes, a nastaví hodnotu tohoto parametru na true.

  6. Kdykoli je to možné, zpracovávejte řetězce jako celé řetězce namísto jednotlivých znaků. Toto je důležité zejména při řazení nebo vyhledání podřetězců. Tím zabráníte problémům spojených s analýzou kombinovaných znaků.

  7. Zobrazujte text pomocí tříd poskytovaných oborem názvů System.Drawing.

  8. Pro konzistenci mezi operačními systémy nedovolte uživatelskému nastavení přepsat CultureInfo. Používejte konstruktor CultureInfo, který přijímá parametr useUserOverride a nastavte jej na hodnotu false.

  9. Otestujte funkčnost aplikace na mezinárodních verzích operačního systému použitím mezinárodních dat.

  10. Pokud je na základě výsledků porovnání řetězců nebo změny velikosti písmen rozhodováno o zabezpečení, aplikace musí provádět operace nezávislé na jazykové verzi. Tento postup zajišťuje, že výsledek není ovlivněn hodnotou CultureInfo.CurrentCulture. Příklad, který ukazuje, jak může porovnání řetězců závislé na jazykové verzi vytvořit nekonzistentní výsledky, naleznete v tématu Custom Case Mappings and Sorting Rules

Doporučené postupy pro lokalizaci

  1. Přesuňte všechny lokalizovatelné prostředky do oddělených knihoven DLL určených pouze pro prostředky. Lokalizovatelné prostředky zahrnují prvky uživatelského rozhraní, jako jsou například řetězce, chybové zprávy, dialogová okna, nabídky a prostředky vložených objektů.

  2. Nevkládejte napevno do kódu řetězce nebo prostředky uživatelského rozhraní.

  3. Neumísťujte nelokalizovatelné prostředky do knihoven DLL určených pouze pro prostředky. Toto mate překladatele.

  4. Nepoužívejte složené řetězce, které jsou vytvářeny za běhu ze spojených frází. Složené řetězce se obtížně lokalizují, protože často předpokládají anglický gramatický slovosled, který se nevztahuje na všechny jazyky.

  5. Vyhněte se dvojznačným konstrukcím, jako například „Empty Folder“ („prázdná složka“, ale také „vyprázdnit složku“), kdy lze řetězce přeložit odlišně v závislosti na gramatických rolích součástí řetězce. Například „empty“ může být jak sloveso, tak přídavné jméno, což může vést k odlišnému překladu do jazyků jako je například italština nebo francouzština.

  6. Vyhněte se v aplikaci používání obrázků a ikon, které obsahují text. Je náročné je lokalizovat.

  7. V uživatelském rozhraní ponechte dostatek místa pro delší řetězce. V některých jazycích mohou věty vyžadovat o 50-75 procent více prostoru než v jiných jazycích.

  8. Pro načtení prostředků v závislosti na jazykové verzi používejte třídu System.Resources.ResourceManager.

  9. Pro vytváření dialogových oken modelu Windows Forms tak, aby mohly být lokalizovány pomocí nástroje Windows Forms Resource Editor (Winres.exe), použijte sadu Visual Studio 2010. Nevytvářejte kód dialogových oknech modelu Windows Forms ručně.

  10. Zajistěte profesionální lokalizaci (překlad).

  11. Úplný popis vytváření a lokalizace prostředků naleznete v tématu Prostředky v aplikacích.

Doporučené postupy pro globalizaci aplikací technologie ASP.NET

  1. Explicitně v aplikaci nastavte vlastnosti CurrentUICulture a CurrentCulture. Nespoléhejte se na výchozí hodnoty.

  2. Poznámka: aplikace technologie ASP.NET jsou spravované aplikace, a proto lze pro načítání, zobrazování a manipulaci s informacemi založenými na jazykové verzi použít stejné třídy jako v jiných spravovaných aplikacích.

  3. Uvědomte si, že v ASP.NET je možné zadat následující tři typy kódování:

    • requestEncoding určuje kódování přijímané z prohlížeče klienta.

    • responseEncoding určuje kódování odesílané do prohlížeče klienta. Ve většině případů by toto kódování mělo být stejné jako requestEncoding.

    • fileEncoding určuje výchozí kódování pro analýzu souborů ASPX, ASMX a ASAX.

  4. V aplikaci technologie ASP.NET zadejte hodnoty pro atributy requestEncoding, responseEncoding, fileEncoding, culture a uiCulture na následujících třech místech:

    • V oddíle globalizace v souboru Web.config. Tento soubor je externím souborem aplikace technologie ASP.NET. Další informace naleznete v tématu element <globalization>.

    • V direktivě stránky. Všimněte si, že když se aplikace nachází na stránce, soubor již byl přečten. Proto je příliš pozdě zadat fileEncoding a requestEncoding. V direktivě stránky lze zadat pouze uiCulture, Culture a responseEncoding.

    • Programově v kódu aplikace. Toto nastavení se může lišit na základě požadavku. Stejně jako u direktivy stránky, ve chvíli, kdy je dosaženo kódu aplikace, je příliš pozdě na zadání fileEncoding a requestEncoding. V kódu aplikace mohou být zadány pouze uiCulture, Culture a responseEncoding.

  5. Všimněte si, že hodnotu uiCulture lze nastavit na jazyk přijímaný prohlížečem. Další informace naleznete v tématu ASP.NET QuickStart Working With Resources sample.

Viz také

Koncepty

Prostředky v aplikacích

Další zdroje

Kódování a lokalizace