WPF Genelleştirmesi ve Yerelleştirmesine Genel Bakış
Ürününüzün kullanılabilirliğini yalnızca bir dille sınırladığınızda, potansiyel müşteri tabanınızı dünyamızın 7,5 milyar popülasyonunun bir bölümüyle sınırlandırabilirsiniz. Uygulamalarınızın küresel bir hedef kitleye ulaşmasını istiyorsanız, ürününüzün uygun maliyetli yerelleştirilmesi, daha fazla müşteriye ulaşmanın en iyi ve en ekonomik yollarından biridir.
Bu genel bakış, Windows Presentation Foundation'da (WPF) genelleştirmeyi ve yerelleştirmeyi tanıtır. Genelleştirme, birden çok konumda performans gösteren uygulamaların tasarımı ve geliştirilmesidir. Örneğin genelleştirme, farklı kültürlerdeki kullanıcılar için yerelleştirilmiş kullanıcı arabirimlerini ve bölgesel verileri destekler. WPF, otomatik düzen, uydu derlemeleri ve yerelleştirilmiş öznitelikler ve açıklama ekleme gibi genelleştirilmiş tasarım özellikleri sağlar.
Yerelleştirme, uygulamanın desteklediği belirli kültürler için uygulama kaynaklarının yerelleştirilmiş sürümlere çevrilmesidir. WPF'de yerelleştirdiğinizde, ad alanında API'leri System.Windows.Markup.Localizer kullanırsınız. Bu API'ler LocBaml Aracı Örnek komut satırı aracını destekler. LocBaml oluşturma ve kullanma hakkında bilgi için bkz . Uygulamayı Yerelleştirme.
Uyarı
LocBaml aracı yalnızca .NET Framework projeleri için WPF ile çalışır, .NET için WPF ile çalışmaz.
WPF'de Genelleştirme ve Yerelleştirme için En İyi Yöntemler
Bu bölümün sağladığı kullanıcı arabirimi tasarımını ve yerelleştirmeyle ilgili ipuçlarını izleyerek WPF'de yerleşik olan genelleştirme ve yerelleştirme işlevselliğinden en iyi şekilde yararlanın.
WPF Kullanıcı Arabirimi Tasarımı için En İyi Yöntemler
WPF tabanlı bir kullanıcı arabirimi tasarlarken şu en iyi yöntemleri uygulamayı göz önünde bulundurun:
Kullanıcı arabiriminizi XAML'de yazın; kodda kullanıcı arabirimi oluşturmaktan kaçının. Kullanıcı arabiriminizi XAML kullanarak oluşturduğunuzda yerleşik yerelleştirme API'leri aracılığıyla kullanıma sunarsınız.
İçeriğin yerleşimi için mutlak konumları ve sabit boyutları kullanmaktan kaçının; bunun yerine göreli veya otomatik boyutlandırmayı kullanın.
Genişlikleri ve yükseklikleri olarak
Auto
ayarlayın ve kullanınSizeToContent.URI'leri ayarlamak için kullanmaktan Canvas kaçının.
ve boyut paylaşımı özelliğini kullanın Grid .
Yerelleştirilmiş metin genellikle daha fazla alan gerektirdiği için kenar boşluklarında fazladan alan sağlayın. Fazladan alan, olası fazla kullanma karakterlerine olanak tanır.
Kırpmayı önlemek için açık TextBlock seçeneğini etkinleştirinTextWrapping.
özniteliğini
xml:lang
ayarlayın. Bu öznitelik, belirli bir öğenin ve alt öğelerinin kültürünü açıklar. Bu özelliğin değeri WPF'deki çeşitli özelliklerin davranışını değiştirir. Örneğin, heceleme, yazım denetimi, sayı değiştirme, karmaşık betik şekillendirme ve yazı tipi geri dönüş davranışını değiştirir. XAML'de xml:lang İşlemesini ayarlama hakkında daha fazla bilgi için bkz. WPF için Genelleştirme.Farklı diller için kullanılan yazı tiplerini daha iyi denetlemek için özelleştirilmiş bir bileşik yazı tipi oluşturun. Varsayılan olarak WPF, Windows\Fonts dizininizde GlobalUserInterface.composite yazı tipini kullanır.
Metni sağdan sola biçiminde sunan bir kültürde yerelleştirilebilen gezinti uygulamaları oluşturduğunuzda, sayfanın öğesinden NavigationWindowdevralmadığından FlowDirection emin olmak için her sayfanın değerini açıkça ayarlayınFlowDirection.
Tarayıcı dışında barındırılan tek başına gezinti uygulamaları oluşturduğunuzda, ilk uygulamanızın öğesini sayfa yerine olarak NavigationWindow ayarlayın StartupUri (örneğin,
<Application StartupUri="NavigationWindow.xaml">
). Bu tasarım, Pencere ve gezinti çubuğunu değiştirmenizi FlowDirection sağlar. Daha fazla bilgi ve örnek için bkz . Genelleştirme Giriş Sayfası Örneği.
WPF Yerelleştirme için En İyi Yöntemler
WPF tabanlı uygulamaları yerelleştirirken şu en iyi yöntemleri uygulamayı göz önünde bulundurun:
Yerelleştiriciler için ek bağlam sağlamak için yerelleştirme açıklamalarını kullanın.
Öğelerdeki özellikleri seçmeli olarak Uid atlama yerine yerelleştirmeyi denetlemek için yerelleştirme özniteliklerini kullanın. Daha fazla bilgi için bkz . Yerelleştirme Öznitelikleri ve Açıklamaları .
XAML'nizde özellik eklemek ve denetlemek Uid için ve
-t:checkuid
kullanınmsbuild -t:updateuid
. Geliştirme ve yerelleştirme arasındaki değişiklikleri izlemek için özellikleri kullanın Uid . Uid özellikleri, yeni geliştirme değişikliklerini yerelleştirmenize yardımcı olur. Kullanıcı arabirimine el ile özellik eklerseniz Uid , görev genellikle yorucu ve daha az doğru olur.Yerelleştirmeye başladıktan sonra özellikleri düzenlemeyin veya değiştirmeyin Uid .
Yinelenen Uid özellikleri kullanmayın (kopyala ve yapıştır komutunu kullanırken bu ipucunu unutmayın).
UltimateResourceFallback
Geri dönüş için uygun dili belirtmek için AssemblyInfo.* içindeki konumu ayarlayın (örneğin,[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
).Proje dosyanızdaki etiketi atlayarak
<UICulture>
kaynak dilinizi ana derlemeye dahil etmeye karar verirseniz konumu uydu yerine ana derleme olarak ayarlayınUltimateResourceFallback
(örneğin,[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.MainAssembly)]
).
WPF Uygulamasını Yerelleştirme
Bir WPF uygulamasını yerelleştirdiğinizde, çeşitli seçenekleriniz vardır. Örneğin, uygulamanızdaki yerelleştirilebilir kaynakları bir XML dosyasına bağlayabilir, resx tablolarında yerelleştirilebilir metin depolayabilir veya yerelleştiricinizin XAML dosyalarını kullanmasını sağlayabilirsiniz. Bu bölümde, çeşitli avantajlar sağlayan XAML'nin BAML biçimini kullanan bir yerelleştirme iş akışı açıklanmaktadır:
Derledikten sonra yerelleştirebilirsiniz.
XAML'nin BAML formunun daha eski bir sürümünden yerelleştirmelerle XAML'nin BAML formunun daha yeni bir sürümüne güncelleştirebilirsiniz, böylece geliştirdiğiniz aynı anda yerelleştirebilirsiniz.
XAML'nin BAML biçimi XAML'nin derlenmiş biçimi olduğundan, derleme zamanında özgün kaynak öğeleri ve semantiği doğrulayabilirsiniz.
Yerelleştirme Derleme İşlemi
Bir WPF uygulaması geliştirirken, yerelleştirme için derleme işlemi aşağıdaki gibidir:
Geliştirici WPF uygulamasını oluşturur ve genelleştirir. Proje dosyasında geliştirici, uygulama derlendiğinde dilden bağımsız bir ana derleme oluşturulabilmesi için ayarlar
<UICulture>en-US</UICulture>
. Bu derlemede tüm yerelleştirilebilir kaynakları içeren bir uydu .resources.dll dosyası var. İsteğe bağlı olarak, yerelleştirme API'lerimiz ana derlemeden ayıklamayı desteklediğinden kaynak dili ana derlemede tutabilirsiniz.Dosya derlemeye derlendiğinde XAML, XAML'nin BAML biçimine dönüştürülür. Kültürel açıdan tarafsız
MyDialog.exe
ve kültürel açıdan bağımlı (İngilizce)MyDialog.resources.dll
dosyalar İngilizce konuşan müşteriye sunulur.
Yerelleştirme İş Akışı
Yerelleştirme işlemi, konumlanmamış MyDialog.resources.dll
dosya oluşturulduktan sonra başlar. Özgün XAML'nizdeki ui öğeleri ve özellikleri, altındaki System.Windows.Markup.LocalizerAPI'ler kullanılarak XAML'nin BAML biçiminden anahtar-değer çiftlerine ayıklanır. Yerelleştiriciler, uygulamayı yerelleştirmek için anahtar-değer çiftlerini kullanır. Yerelleştirme tamamlandıktan sonra yeni değerlerden yeni bir .resource.dll oluşturabilirsiniz.
Anahtar-değer çiftlerinin anahtarları, geliştirici tarafından özgün XAML'ye yerleştirilen değerlerdir x:Uid
. Bu x:Uid
değerler API'nin yerelleştirme sırasında geliştirici ile yerelleştirici arasında gerçekleşen değişiklikleri izlemesini ve birleştirmesini sağlar. Örneğin, yerelleştirici yerelleştirmeye başladıktan sonra geliştirici kullanıcı arabirimini değiştirirse, geliştirme değişikliğini zaten tamamlanmış yerelleştirme çalışmasıyla birleştirerek en az çeviri çalışmasının kaybolmasına neden olabilirsiniz.
Aşağıdaki grafik, XAML'nin BAML biçimini temel alan tipik bir yerelleştirme iş akışını gösterir. Bu diyagramda geliştiricinin uygulamayı İngilizce yazdığı varsayılır. Geliştirici WPF uygulamasını oluşturur ve genelleştirir. Geliştiricinin oluşturduğu <UICulture>en-US</UICulture>
proje dosyasında, derleme sırasında tüm yerelleştirilebilir kaynakları içeren bir uydu .resources.dll ile bir dil nötr ana derlemesi oluşturulur. Alternatif olarak, WPF yerelleştirme API'leri ana derlemeden ayıklamayı desteklediğinden kaynak dili ana derlemede tutabilir. Derleme işleminden sonra XAML, BAML'de derlenmiş olur. Kültürel açıdan tarafsız MyDialog.exe.resources.dll, İngilizce konuşan müşteriye gönderilir.
WPF Yerelleştirme Örnekleri
Bu bölüm, WPF uygulamalarını derlemeyi ve yerelleştirmeyi anlamanıza yardımcı olmak için yerelleştirilmiş uygulamaların örneklerini içerir.
Çalıştır İletişim Kutusu Örneği
Aşağıdaki grafiklerde Çalıştır iletişim kutusu örneğinin çıktısı gösterilmektedir.
İngilizce:
Almanca:
Genel Çalıştırma İletişim Kutusu Tasarlama
Bu örnek WPF ve XAML kullanarak bir Çalıştır iletişim kutusu oluşturur. Bu iletişim kutusu, Microsoft Windows Başlat menüsü'da bulunan Çalıştır iletişim kutusuyla eşdeğerdir.
Genel iletişim kutuları oluşturmak için bazı önemli noktalar şunlardır:
Otomatik Düzen
Window1.xaml içinde:
<Window SizeToContent="WidthAndHeight">
Önceki Window özelliği, içeriği boyutuna göre pencereyi otomatik olarak yeniden boyutlandırıyor. Bu özellik, pencerenin yerelleştirmeden sonra boyutu artan içeriği kesmesini engeller; ayrıca, yerelleştirmeden sonra içerik boyutu azaldığında gereksiz alanı kaldırır.
<Grid x:Uid="Grid_1">
Uid özellikleri WPF yerelleştirme API'lerinin düzgün çalışması için gereklidir.
Wpf yerelleştirme API'leri tarafından kullanıcı arabiriminin (UI) geliştirilmesi ve yerelleştirilmesi arasındaki değişiklikleri izlemek için kullanılır. Uid özellikleri, kullanıcı arabiriminin daha yeni bir sürümünü kullanıcı arabiriminin daha eski bir yerelleştirmesiyle birleştirmenizi sağlar. Komut kabuğunda çalıştırarak msbuild -t:updateuid RunDialog.csproj
bir özellik eklersinizUid. Özellikleri el ile eklemek genellikle zaman alan ve daha az doğru olduğundan, bu özellik eklemenin Uid önerilen yöntemidir. komutunu çalıştırarak msbuild -t:checkuid RunDialog.csproj
özelliklerin doğru ayarlandığını Uid de kontrol edebilirsiniz.
Kullanıcı arabirimi, WPF'deki otomatik düzenden yararlanmak için kullanışlı bir denetim olan denetimi kullanılarak Grid yapılandırılır. İletişim kutusunun üç satıra ve beş sütuna ayrıldığını unutmayın. Satır ve sütun tanımlarından birinin boyutu sabit değildir; bu nedenle, her hücrede konumlandırılan kullanıcı arabirimi öğeleri, yerelleştirme sırasında boyut artışlarına ve azalmalarına uyarlanabilir.
<Grid.ColumnDefinitions>
<ColumnDefinition x:Uid="ColumnDefinition_1" />
<ColumnDefinition x:Uid="ColumnDefinition_2" />
Open: etiketinin yerleştirildiği ComboBox ilk iki sütun, kullanıcı arabirimi toplam genişliğinin yüzde 10'unu kullanır.
<ColumnDefinition x:Uid="ColumnDefinition_3" SharedSizeGroup="Buttons" />
<ColumnDefinition x:Uid="ColumnDefinition_4" SharedSizeGroup="Buttons" />
<ColumnDefinition x:Uid="ColumnDefinition_5" SharedSizeGroup="Buttons" />
</Grid.ColumnDefinitions>
Örnekte paylaşılan boyutlandırma özelliğinin kullanıldığına Griddikkat edin. Son üç sütun, kendilerini aynı SharedSizeGroupiçine yerleştirerek bundan yararlanır. Özelliğin adından bekleyebileceğiniz gibi bu, sütunların aynı boyutu paylaşmasına olanak tanır. Bu nedenle, "Gözat..." "Durchsuchen..." uzun dizesinde yerelleştirilir, tüm düğmeler küçük bir "Tamam" düğmesi ve orantısız büyük bir "Durchsuchen..." yerine genişler. Düğme.
xml:lang
xml:lang="en-US"
Kullanıcı arabiriminin kök öğesine yerleştirilen XAML'de xml:lang İşleme'ye dikkat edin. Bu özellik, belirli bir öğenin ve alt öğelerinin kültürünü açıklar. Bu değer WPF'deki çeşitli özellikler tarafından kullanılır ve yerelleştirme sırasında uygun şekilde değiştirilmelidir. Bu değer, sözcükleri heceleme ve yazım denetimi yapmak için hangi dil sözlüğünün kullanılacağını değiştirir. Ayrıca basamakların görüntülenmesini ve yazı tipi geri dönüş sisteminin hangi yazı tipinin kullanılacağını seçme şeklini de etkiler. Son olarak, özelliği sayıların görüntülenme şeklini ve karmaşık betiklerde yazılan metinlerin şekillenme şeklini etkiler. Varsayılan değer "en-US" değeridir.
Uydu Kaynak Derlemesi Oluşturma
.csproj içinde:
.csproj
Dosyayı düzenleyin ve aşağıdaki etiketi koşulsuz <PropertyGroup>
bir etikete ekleyin:
<UICulture>en-US</UICulture>
Değer UICulture
eklemeye dikkat edin. Bu, en-US gibi geçerli CultureInfo bir değere ayarlandığında, projenin oluşturulması içinde tüm yerelleştirilebilir kaynaklara sahip bir uydu derlemesi oluşturur.
<Resource Include="RunIcon.JPG">
<Localizable>False</Localizable>
</Resource>
RunIcon.JPG
tüm kültürler için aynı şekilde görünmesi gerektiğinden yerelleştirilmesi gerekmez. Localizable
olarak ayarlanır false
, böylece uydu derlemesi yerine dilde nötr ana derlemede kalır. Tüm derlenemeyen kaynakların Localizable
varsayılan değeri olarak true
ayarlanır.
Çalıştır İletişim Kutusunu Yerelleştirme
Parse
Uygulamayı derledikten sonra yerelleştirmenin ilk adımı yerelleştirilebilir kaynakları uydu derlemesinin dışına ayrıştırmadır. Bu konunun amaçları doğrultusunda, LocBaml Araç Örneği'nde bulunabilecek örnek LocBaml aracını kullanın. LocBaml'in yalnızca yerelleştirme sürecinize uygun bir yerelleştirme aracı oluşturmaya başlamanıza yardımcı olacak örnek bir araç olduğunu unutmayın. LocBaml kullanarak aşağıdakileri çalıştırarak ayrıştırın: LocBaml /parse RunDialog.resources.dll /out: bir "RunDialog.resources.dll.CSV" dosyası oluşturmak için.
Uyarı
LocBaml aracı yalnızca .NET Framework projeleri için WPF ile çalışır, .NET için WPF ile çalışmaz.
Yerelleştirmek
Bu dosyayı düzenlemek için Unicode destekleyen sık kullandığınız CSV düzenleyicisini kullanın. "Yok" yerelleştirme kategorisine sahip tüm girişleri filtreleyin. Aşağıdaki girdileri görmeniz gerekir:
Kaynak Anahtarı | Yerelleştirme Kategorisi | Değer |
---|---|---|
Button_1:System.Windows.Controls.Button.$Content | Düğme | Tamam |
Button_2:System.Windows.Controls.Button.$Content | Düğme | İptal Et |
Button_3:System.Windows.Controls.Button.$Content | Düğme | Gözat... |
ComboBox_1:System.Windows.Controls.ComboBox.$Content | ComboBox | |
TextBlock_1:System.Windows.Controls.TextBlock.$Content | Metin | Bir programın, klasörün, belgenin veya İnternet kaynağının adını yazdığınızda Windows bunu sizin için açar. |
TextBlock_2:System.Windows.Controls.TextBlock.$Content | Metin | Aç: |
Window_1:System.Windows.Window.Title | Başlık | Çalıştır |
Uygulamayı Almanca olarak yerelleştirmek için aşağıdaki çeviriler gerekir:
Kaynak Anahtarı | Yerelleştirme Kategorisi | Değer |
---|---|---|
Button_1:System.Windows.Controls.Button.$Content | Düğme | Tamam |
Button_2:System.Windows.Controls.Button.$Content | Düğme | Abbrechen |
Button_3:System.Windows.Controls.Button.$Content | Düğme | Durchsuchen... |
ComboBox_1:System.Windows.Controls.ComboBox.$Content | ComboBox | |
TextBlock_1:System.Windows.Controls.TextBlock.$Content | Metin | Geben Sie den Namen eines Programms, Ordners, Dokuments oder einer Internetresource a. |
TextBlock_2:System.Windows.Controls.TextBlock.$Content | Metin | Öffnen: |
Window_1:System.Windows.Window.Title | Başlık | Çalıştır |
Oluşturmak
Yerelleştirmenin son adımı, yeni yerelleştirilmiş uydu derlemesini oluşturmayı içerir. Bu, aşağıdaki LocBaml komutuyla gerçekleştirilebilir:
LocBaml.exe /generate RunDialog.resources.dll /trans:RunDialog.resources.dll.CSV /out: . /cul:de-DE
Almanca Windows'da, bu resources.dll ana derlemenin yanındaki de-DE klasörüne yerleştirilirse, bu kaynak en-US klasöründeki klasör yerine otomatik olarak yüklenir. Bunu test etmek için Windows'un Almanca sürümüne sahip değilseniz, kültürü kullandığınız Windows kültürüne ayarlayın (örneğin, en-US
) ve özgün kaynaklar DLL'sini değiştirin.
Uydu Kaynağı Yükleme
MyDialog.exe | en-US\MyDialog.resources.dll | de-DE\MyDialog.resources.dll |
---|---|---|
Kod | Orijinal İngilizce BAML | Yerelleştirilmiş BAML |
Kültürel açıdan tarafsız kaynaklar | İngilizce diğer kaynaklar | Almancaya yerelleştirilmiş diğer kaynaklar |
.NET, uygulamanın Thread.CurrentUICultureöğesine göre yüklenecek uydu kaynakları derlemesini otomatik olarak seçer. Bu varsayılan olarak Windows işletim sisteminizin kültürüne sahiptir. Almanca Windows kullanıyorsanız de-DE \MyDialog.resources.dll dosyası yüklenir. İngilizce Windows kullanıyorsanız en-US \MyDialog.resources.dll dosyası yüklenir. Projenizin AssemblyInfo dosyasında özniteliğini belirterek NeutralResourcesLanguage
uygulamanız için son geri dönüş kaynağını ayarlayabilirsiniz. Örneğin, şunu belirtirseniz:
[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
ardından en-US\MyDialog.resources.dll dosyası, şu dosyalardan hiçbiri kullanılabilir değilse Almanca Windows ile birlikte kullanılır: de-DE\MyDialog.resources.dll veya de\MyDialog.resources.dll.
Microsoft Suudi Arabistan Giriş Sayfası
Aşağıdaki grafiklerde İngilizce ve Arapça giriş sayfası gösterilmektedir. Bu grafikleri oluşturan tam örnek için bkz. Genelleştirme Giriş Sayfası Örneği.
İngilizce:
Arapça:
Genel Microsoft giriş sayfası tasarlama
Microsoft Suudi Arabistan web sitesinin bu sahte örneği, RightToLeft dilleri için sağlanan küreselleştirme özelliklerini göstermektedir. İbranice ve Arapça gibi dillerin sağdan sola okuma sırası vardır, bu nedenle kullanıcı arabirimi düzeni genellikle İngilizce gibi soldan sağa dillerde olduğundan oldukça farklı bir şekilde yerleştirilmelidir. Soldan sağa bir dilden sağdan sola veya tam tersi bir dilde yerelleştirmek oldukça zor olabilir. WPF, bu tür yerelleştirmeleri çok daha kolay hale getirmek için tasarlanmıştır.
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">
üzerindeki Pageözelliğine FlowDirection dikkat edin. Bu özellik olarak RightToLeft değiştirildiğinde, bu kullanıcı arabiriminin Page düzeni Arap bir kullanıcının beklediği gibi sağdan sola olacak şekilde çevrilecek şekilde ve alt öğelerini değiştirirFlowDirection. Herhangi bir öğede açık FlowDirection belirterek devralma davranışını geçersiz kılabilir. FlowDirection özelliği, herhangi bir FrameworkElement veya belgeyle ilgili öğede kullanılabilir ve örtük değerine LeftToRightsahiptir.
Kök FlowDirection değiştirildiğinde arka plan gradyan fırçalarının bile doğru çevrildiğini gözlemleyin:
FlowDirection="LeftToRight"
FlowDirection="RightToLeft"
Paneller ve Denetimler için Sabit Boyutlar Kullanmaktan Kaçının
Homepage.xaml'e göz atın, üstteki DockPaneltüm kullanıcı arabirimi için belirtilen sabit genişlik ve yükseklik dışında başka sabit boyut olmadığına dikkat edin. Kaynak metinden daha uzun olabilecek yerelleştirilmiş metnin kırpılmasını önlemek için sabit boyutlar kullanmaktan kaçının. WPF panelleri ve denetimleri, içerdikleri içeriğe göre otomatik olarak yeniden boyutlandırılır. Denetimlerin çoğu, daha fazla denetim için ayarlayabileceğiniz minimum ve maksimum boyutlara da sahiptir (örneğin, MinWidth="20"). ile Grid, '*' (örneğin, Width="0.25*"
) kullanarak göreli genişlikleri ve yükseklikleri ayarlayabilir veya hücre boyutu paylaşım özelliğini kullanabilirsiniz.
Yerelleştirme Açıklamaları
İçeriğin belirsiz ve çevrilmesi zor olabilecek birçok durum vardır. Geliştirici veya tasarımcı, yerelleştirme açıklamaları aracılığıyla yerelleştiricilere ek bağlam ve açıklamalar sağlama özelliğine sahiptir. Örneğin, aşağıdaki Localization.Comments , '|' karakterinin kullanımını açıklar.
<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>
Bu açıklama TextBlock_1 içeriğiyle ilişkilendirildi ve LocBaml Aracı söz konusu olduğunda ( bkz . Uygulamayı Yerelleştirme), çıktı .csv dosyasındaki TextBlock_1 satırının 6. sütununda görülebilir:
Kaynak Anahtarı | Kategori | Okuna -bilir | Değiştirilebilir | Açıklama | Değer |
---|---|---|---|---|---|
TextBlock_1:System.Windows.Controls.TextBlock.$Content | Metin | DOĞRU | DOĞRU | Bu karakter dekoratif bir kural olarak kullanılır. | | |
Açıklamalar, aşağıdaki söz dizimi kullanılarak herhangi bir öğenin içeriğine veya özelliğine yerleştirilebilir:
<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>
Yerelleştirme Öznitelikleri
Genellikle geliştirici veya yerelleştirme yöneticisinin hangi yerelleştiricilerin okuyup değiştirebileceğini denetlemesi gerekir. Örneğin, yerelleştiricinin şirketinizin adını veya yasal ifadeyi çevirmesini istemeyebilirsiniz. WPF, yerelleştirme aracınızın öğeleri kilitlemek, gizlemek veya sıralamak için kullanabileceği öğenin içeriğinin veya özelliğinin okunabilirliğini, değiştirilebilirliğini ve kategorisini ayarlamanıza olanak tanıyan öznitelikler sağlar. Daha fazla bilgi için bkz. Attributes. Bu örneğin amaçları doğrultusunda, LocBaml Aracı yalnızca bu özniteliklerin değerlerini verir. WPF denetimlerinin tümü bu öznitelikler için varsayılan değerlere sahiptir, ancak bunları geçersiz kılabilirsiniz. Örneğin, aşağıdaki örnek için TextBlock_1
varsayılan yerelleştirme özniteliklerini geçersiz kılar ve içeriği okunabilir ancak yerelleştiriciler için değiştirilemez olacak şekilde ayarlar.
<TextBlock
x:Uid="TextBlock_1"
Localization.Attributes=
"$Content(Readable Unmodifiable)">
Microsoft Corporation
</TextBlock>
Okunabilirlik ve değiştirilebilirlik özniteliklerine ek olarak WPF, yerelleştiricilere daha fazla bağlam sağlamak için kullanılabilecek ortak ui kategorilerinin (LocalizationCategory) bir numaralandırmasını sağlar. Platform denetimleri için WPF varsayılan kategorileri de XAML'de geçersiz kılınabilir:
<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>
WPF'nin sağladığı varsayılan yerelleştirme öznitelikleri de kod aracılığıyla geçersiz kılınabilir, böylece özel denetimler için doğru varsayılan değerleri doğru şekilde ayarlayabilirsiniz. Örnek:
[Localizability(Readability = Readability.Readable, Modifiability=Modifiability.Unmodifiable, LocalizationCategory.None)]
public class CorporateLogo : TextBlock
{
// ...
}
XAML'de ayarlanan örnek başına öznitelikler, özel denetimlerde kodda ayarlanan değerlerden önceliklidir. Öznitelikler ve açıklamalar hakkında daha fazla bilgi için bkz . Yerelleştirme Öznitelikleri ve Açıklamaları.
Yazı Tipi Geri Dönüş ve Bileşik Yazı Tipleri
Belirli bir kod noktası aralığını desteklemeyen bir yazı tipi belirtirseniz WPF, Windows\Fonts dizininizde bulunan Genel Kullanıcı Arabirimi.compositefont'unu kullanarak bunu yapacak bir yazı tipine otomatik olarak geri dönüş yapar. Bileşik yazı tipleri diğer tüm yazı tiplerinde olduğu gibi çalışır ve bir öğenin FontFamily
(örneğin, FontFamily="Global User Interface"
) ayarıyla açıkça kullanılabilir. Kendi bileşik yazı tipinizi oluşturup belirli kod noktası aralıkları ve dilleri için hangi yazı tipinin kullanılacağını belirterek kendi yazı tipi geri dönüş tercihinizi belirtebilirsiniz.
Bileşik yazı tipleri hakkında daha fazla bilgi için bkz. FontFamily.
Microsoft Giriş Sayfasını Yerelleştirme
Bu uygulamayı yerelleştirmek için İletişim Kutusunu Çalıştır örneğiyle aynı adımları izleyebilirsiniz. Arapça için yerelleştirilmiş .csv dosyası, Genelleştirme Giriş Sayfası Örneği'nde sizin için kullanılabilir.
.NET Desktop feedback