Uygulamamı, varsayılan İngilizce'nin yanı sıra Japonca olarak yerelleştirmek için kullanmanın son derece basit bir yolunu arıyorum. Tek gereksinim, belirtilen bir dilde başlatabileceğimizdir. Tıknaz, karmaşık, hataya eğilimli olan LocBaml ürünlerini kullanıyorduk ve inşa sürecimizi son derece zorlaştırıyor. Ben kaynak dosyaları (Strings.resx, Strings.ja.resx) geri herşeyi hareketli ve bunun gibi, bağlayıcı statik yapıyor düşünüyorumWPF'yi yerelleştirmek için standart resx + statik bağlamayı KULLANMADAN herhangi bir neden var mı?
:
Sonra<TextBlock Text="{x:Static resx:MyWindow.MessageText}" />
fırlatma zamanında hangi dili bulmak onlar istiyoruz ve ondan iplerin kaynak anahtarlama:
public static void Main(string[] args)
{
if (args[0] == "-lang")
{
Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo(args[i + 1]);
}
App app = new App();
app.InitializeComponent();
app.Run();
}
Bu basit olduğunu ve tek gerçek dezavantajı görünüyor yapmamız hiç isteyeceksiniz şey değil çalışma zamanı en geçemezsiniz olmasıdır.
http://wpflocalization.codeplex.com/
http://www.wpftutorial.net/LocalizeMarkupExtension.html
Onlar temizleyici Xaml sağlamak ve tasarım sırasında biraz daha güzel görünmek, ama seni izin dışında herhangi işlevsel bir fark göremiyorum: Bunları gibi birkaç yerelleştirme uzantıları gördüm çalışma zamanında dilleri değiştirmek. Burada bir şeyi özlüyorum mu, yoksa kolay ve yerleşik bir rotaya mı gitmeliyiz? Toplamı toplam, yalnızca yerelleştirilmesi gereken ~ 100 dizgiye sahibiz. Özellikle en basit yolun, özellikle de uygulamamızın göreceli sadeliği göz önüne alındığında, buradaki en iyi yol olduğunu düşünüyorum.
Teşekkürler! İnan bana, tam bir proje üzerinde LocBaml'ı kullanmak zorunda kalmadığına çok sevinmelisin. Resimlerin resx ile lokalize edilip edilmediğini biliyor musunuz? Onları asla yerelleştirmemiz gerektiğini sanmıyorum, ama sadece ... – Stevoman
@Baconcheese - url'yi resx'e eklerim, sonra Uri nesnesini bu URL'yi kullanır, Uri'yi bir özellik olarak gösterir Bir ViewModel ve bir Görüntü ona bağla. –
Mükemmel, teşekkürler! – Stevoman