Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez a témakör olyan problémákat mutat be, amelyekkel tisztában kell lennie a Windows Presentation Foundation (WPF) alkalmazások globális piacra történő írásakor. A globalizációs programozási elemek a .NET-ben vannak definiálva a System.Globalization névtérben.
XAML-globalizáció
Az Extensible Application Markup Language (XAML) xml-alapú, és kihasználja az XML-specifikációban meghatározott globalizációs támogatást. Az alábbi szakaszok ismertetik azokat az XAML-funkciókat, amelyekkel tisztában kell lennie.
Karakterhivatkozások
A karakterhivatkozások a megadott Unicode-karakter UTF16 kódegységét adják meg decimális vagy hexadecimális értékben. Az alábbi példa a KOPT NAGYBETŰ HORI 'Ϩ' tizedes karakterhivatkozását mutatja be.
Ϩ
Az alábbi példa egy hexadecimális karakterhivatkozást mutat be. Figyelje meg, hogy egy x van a hexadecimális szám előtt.
Ϩ
Kódolás
Az XAML által támogatott kódolás az ASCII, a Unicode UTF-16 és az UTF-8. A kódolási utasítás az XAML-dokumentum elején található. Ha nincs kódolási attribútum, és nincs bájtsorrend, az elemző alapértelmezés szerint UTF-8. Az UTF-8 és az UTF-16 az előnyben részesített kódolás. Az UTF-7 nem támogatott. Az alábbi példa bemutatja, hogyan adhat meg UTF-8 kódolást egy XAML-fájlban.
?xml encoding="UTF-8"?
Nyelvi attribútum
Az XAML xml:lang használ egy elem nyelvi attribútumának megjelenítéséhez. A CultureInfo osztály előnyeinek kihasználásához a nyelvi attribútum értékének az CultureInfoáltal előre definiált kulturális nevek egyikének kell lennie. xml:lang örökölhető az elemfában (XML-szabályok szerint, nem feltétlenül függőségi tulajdonságöröklés miatt), és alapértelmezett értéke üres sztring, ha nincs explicit módon hozzárendelve.
A nyelvi attribútum nagyon hasznos a regionális nyelvek megadásához. Franciaországban, Québecben, Belgiumban és Svájcban például a francia nyelv helyesírása, szókincse és kiejtése eltérő. A Unicode-ban kínai, japán és koreai megosztási kódpontok is vannak, de az ideografikus alakzatok eltérőek, és teljesen különböző betűtípusokat használnak.
Az alábbi XAML(Extensible Application Markup Language) példa a fr-CA nyelvi attribútumot használja a kanadai francia nyelv megadásához.
<TextBlock xml:lang="fr-CA">Découvrir la France</TextBlock>
Unicode
Az XAML minden Unicode-funkciót támogat, beleértve a helyetteseket is. Mindaddig, amíg a karakterkészlet Unicode-ra van leképezve, támogatott. A GB18030 például olyan karaktereket mutat be, amelyek a kínai, japán és koreai (CJK) A és B kiterjesztésre, valamint helyettesítő párokra vannak leképezve, ezért teljes mértékben támogatott. A WPF-alkalmazás használhatja a StringInfo-t a karakterláncok manipulálására anélkül, hogy tisztában lenne azzal, hogy tartalmaznak-e helyettesítő párokat vagy kombináló karaktereket.
Nemzetközi felhasználói felület tervezése XAML használatával
Ez a szakasz az alkalmazások írásakor figyelembe veendő felhasználói felületi (UI-) funkciókat ismerteti.
Nemzetközi szöveg
A WPF beépített feldolgozást tartalmaz az összes Microsoft .NET-keretrendszer által támogatott írási rendszerhez.
Jelenleg a következő szkriptek támogatottak:
Arab nyelv
Bengáli
Devanagari
Cirill ábécé
Görög
Gudzsarát
Gurmukhi
Héber nyelv
Ideografikus szkriptek
Kannada
Lao
Latin
Malajálam
Mongol
Odiya
Szír nyelv
Tamil
Telugu
Thaana
Thai*
Tibeti
*Ebben a kiadásban a thai szöveg megjelenítése és szerkesztése támogatott; szótörés nem.
A következő szkriptek jelenleg nem támogatottak:
Khmer
Koreai régi Hangul
Mianmar
Sinhala
Minden írási rendszermotor támogatja az OpenType betűtípusokat. Az OpenType betűtípusok olyan OpenType-elrendezési táblázatokat is tartalmazhatnak, amelyek lehetővé teszik, hogy a betűtípus-készítők jobb nemzetközi és csúcskategóriás tipográfiai betűtípusokat tervezhessenek. Az OpenType betűtípuselrendezési táblázatai információt tartalmaznak a karakterjelek helyettesítéséről, a karakterjelek elhelyezéséről, az indoklásról és az alapkonfiguráció elhelyezéséről, lehetővé téve a szövegfeldolgozó alkalmazások számára a szövegelrendezés javítását.
Az OpenType betűtípusok lehetővé teszik a nagy karakterkészletek Kezelését Unicode kódolással. Az ilyen kódolás széles körű nemzetközi támogatást tesz lehetővé, valamint tipográfiai gliph-variációkhoz.
A WPF-szövegmegjelenítést a Microsoft ClearType al-pixeles technológiája működteti, amely támogatja a felbontás-függetlenséget. Ez jelentősen javítja az olvashatóságot, és lehetővé teszi a kiváló minőségű magazinstílusú dokumentumok támogatását az összes szkripthez.
Nemzetközi elrendezés
A WPF nagyon kényelmes módot kínál a vízszintes, kétirányú és függőleges elrendezések támogatásához. A bemutató keretrendszerben a FlowDirection tulajdonság használható az elrendezés meghatározására. A folyamatirány-minták a következők:
LeftToRight – vízszintes elrendezés a latin, a kelet-ázsiai stb. nyelvekhez.
RightToLeft - kétirányú arab, héber és így tovább.
Honosítható alkalmazások fejlesztése
Amikor globális felhasználású alkalmazást ír, ne feledje, hogy az alkalmazásnak honosíthatónak kell lennie. Az alábbi témakörök rámutatnak a megfontolandó dolgokra.
Többnyelvű felhasználói felület
A többnyelvű felhasználói felületek (MUI) a Microsoft által támogatott felhasználói felületek egyik nyelvről a másikra való váltásához. A WPF-alkalmazások a szerelvénymodell használatával támogatják a MUI-t. Az egyik alkalmazás nyelvsemleges szerelvényeket és nyelvfüggő műholdas erőforrás-szerelvényeket tartalmaz. A belépési pont egy olyan .EXE fájl a fő összeszerelésben, amelyet felügyel egy kezelőrendszer. A WPF-erőforrásbetöltő a keretrendszer erőforrás-kezelőjének előnyeit használja az erőforrás-keresés és -visszavétel támogatásához. Többnyelvű szatellit-gyűjtemények ugyanazt a törzs-összeállítást használják. A betöltött erőforrás-köteg az aktuális szál CurrentUICulture-jának függvénye.
Honosítható felhasználói felület
A WPF-alkalmazások az XAML használatával határozzák meg a felhasználói felületüket. Az XAML lehetővé teszi a fejlesztők számára, hogy tulajdonságokat és logikát tartalmazó objektumhierarchiát adjanak meg. Az XAML elsődleges használata WPF-alkalmazások fejlesztése, de bármely közös nyelvi futtatókörnyezeti objektum (CLR) hierarchiájának megadására használható. A fejlesztők többsége az XAML használatával adja meg az alkalmazás felhasználói felületét, és egy olyan programozási nyelvet használ, mint a C# a felhasználói interakciókra való reagáláshoz.
Erőforrás szempontjából a felhasználói felület erőforráselem, ezért végső terjesztési formátumának honosíthatónak kell lennie a nemzetközi nyelvek támogatásához. Mivel az XAML nem tudja kezelni az eseményeket, sok XAML-alkalmazás kódblokkokat tartalmaz ehhez. További információkért lásd a XAML a WPF-ben. A kód le lesz bontva, és különböző bináris fájlokba lesz lefordítva, amikor egy XAML-fájl tokenizálva van az XAML BAML-formájában. Az XAML-fájlok, képek és más típusú felügyelt erőforrás-objektumok BAML-formája a műholdas erőforrás-szerelvénybe van beágyazva, amely más nyelvekre honosítható, vagy a fő szerelvénybe, ha nincs szükség honosításra.
Megjegyzés:
A WPF-alkalmazások támogatják az összes FrameworkCLR-erőforrást, beleértve a sztringtáblákat, képeket és így tovább.
Honosítható alkalmazások létrehozása
A honosítás azt jelenti, hogy a felhasználói felületet különböző kultúrákhoz igazítjuk. A WPF-alkalmazások honosíthatóvá tétele érdekében a fejlesztőknek az összes honosítható erőforrást erőforrás-szerelvénybe kell építenie. Az erőforrás-szerelvény különböző nyelvekre van honosítva, a mögöttes kód pedig az erőforrás-kezelési API-t használja a betöltéshez. A WPF-alkalmazásokhoz szükséges fájlok egyike egy projektfájl (.proj). Az alkalmazásban használt összes erőforrásnak szerepelnie kell a projektfájlban. A .csproj-fájlból származó alábbi példa bemutatja, hogyan teheti ezt meg.
<Resource Include="data\picture1.jpg"/>
<EmbeddedResource Include="data\stringtable.en-US.restext"/>
Ha erőforrást szeretne használni az alkalmazásban, példányosítson egy ResourceManager-t, és töltse be a használni kívánt erőforrást. Az alábbi példa bemutatja, hogyan teheti ezt meg.
void OnClick(object sender, RoutedEventArgs e)
{
ResourceManager rm = new ResourceManager ("MySampleApp.data.stringtable",
Assembly.GetExecutingAssembly());
Text1.Text = rm.GetString("Message");
}
ClickOnce használata lokalizált alkalmazásokkal
A ClickOnce egy új Windows Forms üzembehelyezési technológia, amely a Visual Studio 2005-et fogja szállítni. Lehetővé teszi a webalkalmazások telepítését és frissítését. Ha egy ClickOnce segítségével üzembe helyezett alkalmazás lokalizálva van, akkor csak a lokalizált kultúrában tekinthető meg. Ha például egy telepített alkalmazás japánra van honosítva, az csak japán Microsoft Windows rendszeren tekinthető meg, angol Windows rendszeren nem. Ez problémát jelent, mert a japán felhasználók gyakran futtatják a Windows angol verzióját.
A probléma megoldása a semleges nyelv tartalék attribútumának beállítása. Az alkalmazásfejlesztők opcionálisan eltávolíthatják az erőforrásokat a fő szerelvényből, és megadhatja, hogy az erőforrások egy adott kultúrának megfelelő műholdas szerelvényben találhatók-e. A folyamat szabályozásához használja a NeutralResourcesLanguageAttribute. A NeutralResourcesLanguageAttribute osztály konstruktora kétféle változattal rendelkezik, amelyből az egyik egy UltimateResourceFallbackLocation paramétert vesz igénybe annak a helynek a megadásához, ahol a ResourceManager-nek ki kell nyernie a tartalék erőforrásokat: a fő összeszerelésből vagy a műholdas összeszerelésből. Az alábbi példa az attribútum használatát mutatja be. Végső tartalék helyszínként a kód utasítja a ResourceManager-t, hogy keresse meg az erőforrásokat az aktuálisan futó modul könyvtárának "de" alkönyvtárában.
[assembly: NeutralResourcesLanguageAttribute(
"de" , UltimateResourceFallbackLocation.Satellite)]
Lásd még
.NET Desktop feedback