WPF için Genelleştirme
Bu konu, küresel pazar için uygulama yazarken dikkat Windows Presentation Foundation (WPF) ediyor olması gereken sorunları sunar. Genelleştirme programlama öğeleri ad alanı içinde .NET'te System.Globalization tanımlanır.
XAML Genelleştirme
Extensible Application Markup Language (XAML), XML'yi temel alır ve XML belirtimsinde tanımlanan genelleştirme desteğinin avantajını alır. Aşağıdaki bölümlerde, farkında XAML olması gereken bazı özellikler açıklanmaktadır.
Karakter Başvuruları
Karakter başvurusu, temsil ettiği belirli Unicode karakterinin UTF16 kod birimini ondalık veya onaltılık olarak verir. Aşağıdaki örnekte, OLUKLU BÜYÜK HARF HORI veya 'büyük harf' için ondalık karakter başvurusu Ϩ:
Ϩ
Aşağıdaki örnek onaltılık karakter başvurularını gösterir. Onaltılık sayın önünde bir x olduğunu fark etmez.
Ϩ
Encoding
tarafından desteklenen kodlama XAML ASCII, Unicode UTF-16 ve UTF-8'tir. Kodlama deyimi belgenin XAML başındadır. Kodlama özniteliği yoksa ve byte sırası yoksa ayrıştırıcı varsayılan olarak UTF-8'i kullanır. Tercih edilen kodlamalar UTF-8 ve UTF-16'dır. UTF-7 desteklenmiyor. Aşağıdaki örnek, bir dosyada UTF-8 kodlamasını belirtmeyi XAML gösteriyor.
?xml encoding="UTF-8"?
Dil Özniteliği
XAML bir öğenin dil özniteliğini temsil etmek için xml:lang kullanır. sınıfından yararlanmak için dil özniteliği değerinin tarafından önceden tanımlanmış kültür CultureInfo adlarından biri olması CultureInfo gerekir. xml:lang, öğe ağacında devralınabilir (XML kurallarına göre, bağımlılık özelliği devralma nedeniyle olması gerekmez) ve açıkça atanmamışsa varsayılan değeri boş bir dizedir.
Dil özniteliği, diyalekti belirtmek için çok kullanışlıdır. Örneğin Fransızca, Fransa, Quebec, İsviçre ve İsviçre'de farklı yazım, sözlük ve söylenişlere sahip. Ayrıca Çince, Japonca ve Korece, Kod noktalarını Unicode olarak paylaşır, ancak ideografik şekiller farklıdır ve tamamen farklı yazı tipleri kullanır.
Aşağıdaki örnek Extensible Application Markup Language (XAML) Kanada fr-CA Fransızcası belirtmek için dil özniteliğini kullanır.
<TextBlock xml:lang="fr-CA">Découvrir la France</TextBlock>
Unicode
XAML vekiller de dahil olmak üzere tüm Unicode özelliklerini destekler. Karakter kümesi Unicode ile eşlen sürece destekleniyordur. Örneğin, GB18030 Çince, Japonca ve Korece (CFK) uzantısı A ve B ve vekil çiftleri ile eşlenen bazı karakterler içerir, bu nedenle tam olarak de destekleniyordur. Bir WPF uygulama, vekil çiftleri veya birleştirme karakterleri olup olmadığını StringInfo anlamadan dizeleri işlemek için kullanabilir.
XAML ile uluslararası Kullanıcı Arabirimi tasarımı
Bu bölümde, kullanıcı arabirimi (UI) bir uygulama yazarken göz önünde bulundurarak göz önünde bulundurarak göz önünde bulundurabilirsiniz.
Uluslararası Metin
WPFdesteklenen tüm Microsoft yönetim sistemleri için .NET Framework işleme içerir.
Şu anda aşağıdaki betikler de destektedir:
Arapça
Bengali
Devanagari
Kiril
Yunanca
Gucerat dili
Farmukhi
İbranice
Ideographic betikleri
Kannada dili
Lao
Latin
Malayalam dili
Moğolca
Okur
Süryani
Tamil dili
Telugu dili
Thaana
Tayca*
Tibet
*Bu sürümde Tay metinlerinin görüntüsü ve düzenlenmesi de destekleniyor; sözcük bozma değil.
Aşağıdaki betikler şu anda desteklenmiyor:
Khmer
Korece Eski Hangul
Myanmar
Seylanca
Tüm yazma sistemi altyapıları OpenType yazı tiplerini destekler. OpenType yazı tipleri, yazı tipi oluşturucularının daha iyi uluslararası ve üst düzey tipografik yazı tipleri tasarlamalarına olanak sağlayan OpenType düzen tablolarını içerebilir. OpenType yazı tipi düzeni tabloları karakter değiştirme, karakter konumlandırma, gerekçe ve temel konumlandırma hakkında bilgi içerir ve metin düzenini geliştirmek için metin işleme uygulamalarını sağlar.
OpenType yazı tipleri, Unicode kodlama kullanarak büyük karakter kümelerinin işlenmesine olanak sağlar. Bu tür kodlamalar, yazım hatası karakter çeşitlemeleri için geniş uluslararası desteğin yanı sıra sağlar.
WPF metin işleme, çözümleme bağımsızlığını destekleyen Microsoft ClearType alt piksel teknolojisiyle güçlendirilmiştir. Bu, okunaklılığı önemli ölçüde artırır ve tüm betikler için yüksek kaliteli maganda stili belgeleri destekleme olanağı sağlar.
Uluslararası Düzen
WPF yatay, çift yönlü ve dikey düzenleri desteklemek için çok kullanışlı bir yol sağlar. Sunu çerçevesinde düzeni FlowDirection tanımlamak için özelliği kullanılabilir. Akış yönü desenleri:
LeftToRight: Latin, Doğu Asya vb. için yatay düzen.
RightToLeft: Arapça, İbranice vb. için çift yönlü.
Yerelleştirilebilir Uygulamalar Geliştirme
Genel tüketim için bir uygulama yazarken, uygulamanın yerelleştirilebilir olması gerektiğini unutmayın. Aşağıdaki konular dikkate gerekenleri işaret ediyor.
Çok Dilde Kullanıcı Arabirimi
Çok Dilde Kullanıcı Arabirimleri (MUI), bir dilden diğerine kullanıcı arabirimini değiştirmek için bir Microsoft desteğidir. Uygulama, WPF MUI'yi desteklemek için derleme modelini kullanır. Bir uygulama, dilden bağımsız derlemelerin yanı sıra dile bağımlı uydu kaynak derlemeleri içerir. Giriş noktası, ana derlemede .EXE bir yönetilen giriş noktasıdır. WPF kaynak yükleyicisi kaynak arama ve geri dönüş desteği için Framework'un kaynak yöneticisinin avantajını alır. Birden çok dil uydu derlemesi aynı ana derlemeyle çalışır. Yüklenen kaynak derlemesi, geçerli iş CurrentUICulture parçacığının türüne bağlıdır.
Yerelleştirilebilir Kullanıcı Arabirimi
WPF uygulamaları, tanımlamak XAML için Kullanıcı arabirimi kullanır. XAML geliştiricilerin bir dizi özellik ve mantık ile bir nesne hiyerarşisi belirtmesini sağlar. birincil kullanımı uygulama geliştirmektir, ancak herhangi bir ortak dil çalışma zamanı XAML WPF (CLR) nesnelerinin hiyerarşisini belirtmek için kullanılabilir. Geliştiricilerin çoğu uygulamalarını belirtmek için kullanır ve kullanıcı etkileşimine tepki olarak XAML Kullanıcı arabirimi C# gibi bir programlama dili kullanır.
Kaynak açısından bakarak, dile bağımlı bir öğeyi tanımlamak için tasarlanmış bir dosya bir kaynak öğesidir ve bu nedenle uluslararası dilleri desteklemek için son dağıtım biçimi XAML Kullanıcı arabirimi yerelleştirilebilir olmalıdır. Birçok XAML uygulama, olayları XAML işleyeyene kadar bunu yapmak için kod blokları içerir. Daha fazla bilgi için bkz. WPF'de XAML. Bir dosya XAML'nin BAML biçimine belirteç haline geldiğinde kod çıkarılmış ve farklı XAML ikili dosyalarda derlenmiş olur. XAML dosyalarının, görüntülerin ve diğer yönetilen kaynak nesnelerinin BAML biçimi, uydu kaynak derlemesine katıştırıldı. Bu, başka dillere veya yerelleştirme gerekli değilken ana derlemeye yerelleştirilmiş olabilir.
Not
WPF uygulamaları dize tabloları, görüntüler vb. dahil olmak üzere tüm FrameworkCLR kaynaklarını destekler.
Yerelleştirilebilir Uygulamalar Bina
Yerelleştirme, farklı kültürlere uyarlamanız anlamına gelir Kullanıcı arabirimi . Bir uygulamayı yerelleştirilebilir hale getirmek için WPF geliştiricilerin tüm yerelleştirilebilir kaynakları bir kaynak derlemesinde oluşturması gerekir. Kaynak derlemesi farklı dillere yereldir ve arka plan kodu, yüklemek için kaynak yönetimi API kullanır. Bir uygulama için gerekli dosyalardan biri WPF bir proje dosyasıdır (. proj). Uygulamanızda kullandığınız tüm kaynaklar proje dosyasına eklenmelidir. Bir. csproj dosyasından aşağıdaki örnek bunun nasıl yapılacağını gösterir.
<Resource Include="data\picture1.jpg"/>
<EmbeddedResource Include="data\stringtable.en-US.restext"/>
Uygulamanızdaki bir kaynağı kullanmak için bir oluşturun ResourceManager ve kullanmak istediğiniz kaynağı yükleyin. Aşağıdaki örnek bunun nasıl yapılacağını göstermektedir.
void OnClick(object sender, RoutedEventArgs e)
{
ResourceManager rm = new ResourceManager ("MySampleApp.data.stringtable",
Assembly.GetExecutingAssembly());
Text1.Text = rm.GetString("Message");
}
yerelleştirilmiş uygulamalarla ClickOnce kullanma
ClickOnce, Visual Studio 2005 ile birlikte gönderilecek yeni bir Windows Forms dağıtım teknolojisidir. Web uygulamalarının uygulama yükleme ve yükseltme yapmasına izin vermez. ClickOnce ile dağıtılan bir uygulama yerelleştirildiği zaman, yalnızca yerelleştirilmiş kültür üzerinde görüntülenebilir. Örneğin, dağıtılmış bir uygulama Japonca için yerelleştirilmiş ise, yalnızca Ingilizce Windows olmayan Japonca Microsoft Windows görüntülenebilir. Bu, Japonca kullanıcıların Windows Ingilizce sürümünü çalıştırmasına yönelik yaygın bir senaryo olduğundan bir sorun oluşturur.
Bu soruna yönelik çözüm, Nötr dil geri dönüş özniteliğini ayarlamadır. Uygulama geliştiricisi, isteğe bağlı olarak ana derlemeden kaynakları kaldırabilir ve belirli bir kültüre karşılık gelen bir uydu derlemesinde kaynakların bulunmamasını belirtebilir. Bu işlemi denetlemek için öğesini kullanın NeutralResourcesLanguageAttribute . Sınıfının Oluşturucusu, NeutralResourcesLanguageAttribute UltimateResourceFallbackLocation geri dönüş kaynaklarını Ayıklanacak konumu belirtmek için bir parametre alan iki imzaya sahiptir ResourceManager : ana derleme veya uydu bütünleştirilmiş kodu. Aşağıdaki örnek, özniteliğini nasıl kullanacağınızı gösterir. Son geri dönüş konumu için, kod, ResourceManager Şu anda yürütülmekte olan derlemenin dizininin "de" alt dizinindeki kaynakları aramaya neden olur.
[assembly: NeutralResourcesLanguageAttribute(
"de" , UltimateResourceFallbackLocation.Satellite)]