İzlenecek yol: Karma Uygulamayı Yerelleştirme
bu izlenecek yol, Windows Forms tabanlı bir karma uygulamada WPF öğelerinin nasıl yerelleştirileceğini gösterir.
Bu izlenecek yolda gösterilen görevler şunlardır:
Windows Forms konak projesi oluşturuluyor.
Yerelleştirilebilir içerik ekleme.
Yerelleştirme etkinleştiriliyor.
Kaynak tanımlayıcıları atanıyor.
Bir uydu derlemesi üretmek için LocBaml aracını kullanma.
Bu kılavuzda gösterilen görevlerin tüm kod listesi için bkz. karma uygulama örneğini yerelleştirme.
İşiniz bittiğinde, yerelleştirilmiş bir karma uygulamanız olur.
Önkoşullar
Bu izlenecek yolu tamamlamak için aşağıdaki bileşenlere ihtiyacınız vardır:
- Visual Studio 2017
Windows Forms konak Project oluşturuluyor
ilk adım Windows Forms uygulama projesinin oluşturulması ve yerelleştirilecek içeriğe sahip bir WPF öğesi eklemektir.
Konak projesini oluşturmak için
Adlı bir WPF uygulaması projesi oluşturun . (DosyaYeniVisual C# veya Visual Basicklasik masaüstüWPF uygulamasıProject).
UserControlProjeye adlı BIR WPF öğesi ekleyin
SimpleControl.ElementHostForm üzerinde bir öğe yerleştirmek için denetimi kullanın
SimpleControl. daha fazla bilgi için bkz. izlenecek yol: 3b WPF bileşik denetimini barındırma Windows Forms.
Yerelleştirilebilir Içerik ekleme
daha sonra, bir Windows Forms label denetimi ekleyeceksiniz ve WPF öğesinin içeriğini yerelleştirilebilir bir dizeye ayarlayacaksınız.
Yerelleştirilebilir İçerik eklemek için
Çözüm Gezgini, WPF Tasarımcısında açmak Için SimpleControl. xaml ' ye çift tıklayın.
ButtonAşağıdaki kodu kullanarak denetimin içeriğini ayarlayın.
<UserControl x:Class="LocalizingWpfInWf.SimpleControl" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" > <Canvas> <Button Content="Hello"/> </Canvas> </UserControl>Çözüm Gezgini, Windows Form Tasarımcısı açmak için Form1 ' e çift tıklayın.
Forma bir etiket denetimi eklemek için araç kutusunu açın ve etiket ' e çift tıklayın. TextÖzelliğinin değerini olarak ayarlayın
"Hello".Uygulamayı derlemek ve çalıştırmak için F5 tuşuna basın.
Hem
SimpleControlöğe hem de etiket denetimiSimpleControlmetnini görüntüler.
Yerelleştirme etkinleştiriliyor
Windows Form Tasarımcısı bir uydu derlemesinde yerelleştirmeyi etkinleştirmeye yönelik ayarları sağlar.
Yerelleştirmeyi etkinleştirmek için
Çözüm Gezgini' de, Form1. cs ' ye çift tıklayarak Windows Form Tasarımcısı açın.
Özellikler penceresinde, formun yerelleştirilebilir özelliğinin değerini olarak ayarlayın .
Özellikler penceresinde, Language özelliğinin değerini İspanyolca (İspanya)olarak ayarlayın.
Windows Form Tasarımcısı etiket denetimini seçin.
Özellikler penceresinde, özelliğinin değerini olarak ayarlayın
"Hola".Projeye Form1.es-ES. resx adlı yeni bir kaynak dosyası eklenir.
Çözüm Gezgini, Form1. cs öğesine sağ tıklayın ve kodu görüntüle ' ye tıklayarak kodu düzenleyici 'de açın.
Çağrısından önce aşağıdaki kodu oluşturucuya kopyalayın
Form1InitializeComponent.public Form1() { System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("es-ES"); InitializeComponent(); }Çözüm Gezgini, localizingwpfinwf öğesine sağ tıklayın ve Project kaldır' a tıklayın.
Proje adı etiketlendi (kullanılamıyor).
Localizingwpfinwföğesine sağ tıklayın ve localizingwpfinwf. csproj öğesini Düzenle' ye tıklayın.
Proje dosyası kod düzenleyicisinde açılır.
Aşağıdaki satırı proje dosyasında ilk öğesine kopyalayın
PropertyGroup.<UICulture>en-US</UICulture>Proje dosyasını kaydedin ve kapatın.
Çözüm Gezgini, localizingwpfinwf öğesine sağ tıklayın ve Project yeniden yükle' ye tıklayın.
Kaynak tanımlayıcıları atama
Kaynak tanımlayıcılarını kullanarak, yerelleştirilebilir içeriğinizi kaynak Derlemeleriyle eşleyebilirsiniz. MsBuild.exe uygulaması, seçeneğini belirttiğinizde kaynak tanımlayıcılarını otomatik olarak atar updateuid .
Kaynak tanımlayıcılarını atamak için
Başlat menüsünde, Visual Studio için Geliştirici Komut İstemi açın.
Kaynak tanımlayıcılarını yerelleştirilebilir içeriğinize atamak için aşağıdaki komutu kullanın.
msbuild -t:updateuid LocalizingWpfInWf.csprojÇözüm Gezgini, kod düzenleyicisinde açmak Için SimpleControl. xaml ' ye çift tıklayın.
msbuildKomutunUidözniteliği tüm öğelerine eklediğini görürsünüz. Bu, kaynak tanımlayıcılarının atanması yoluyla yerelleştirmeyi kolaylaştırır.<UserControl x:Uid="UserControl_1" x:Class="LocalizingWpfInWf.SimpleControl" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" > <Canvas x:Uid="Canvas_1"> <Button x:Uid="Button_1" Content="Hello"/> </Canvas> </UserControl>Çözümü derlemek için F6 tuşuna basın.
Bir uydu derlemesi oluşturmak için LocBaml Kullanma
Yerelleştirilmiş içeriğiniz yalnızca kaynak bir uydu derlemesindedepolanır. WPF içeriğiniz için yerelleştirilmiş bir derleme oluşturmak üzere LocBaml.exe komut satırı aracını kullanın.
Uydu derlemesi oluşturmak için
LocBaml.exe projenizin obj\Debug klasörüne kopyalayın. Daha fazla bilgi için bkz. uygulamayı yerelleştirin.
Komut Istemi penceresinde, kaynak dizelerini geçici bir dosyaya ayıklamak için aşağıdaki komutu kullanın.
LocBaml /parse LocalizingWpfInWf.g.en-US.resources /out:temp.csvtemp.csv dosyasını Visual Studio veya başka bir metin düzenleyicisiyle açın. Dizeyi,
"Hello"İspanyolca çevirisi ile değiştirin"Hola".temp.csv dosyasını kaydedin.
Yerelleştirilmiş kaynak dosyasını oluşturmak için aşağıdaki komutu kullanın.
LocBaml /generate /trans:temp.csv LocalizingWpfInWf.g.en-US.resources /out:. /cul:es-ESLocalizingWpfInWf.g.es-ES. resources dosyası obj\Debug klasöründe oluşturulur.
Yerelleştirilmiş uydu derlemesini derlemek için aşağıdaki komutu kullanın.
Al.exe /out:LocalizingWpfInWf.resources.dll /culture:es-ES /embed:LocalizingWpfInWf.Form1.es-ES.resources /embed:LocalizingWpfInWf.g.es-ES.resourcesLocalizingWpfInWf.resources.dll dosyası obj\Debug klasöründe oluşturulur.
LocalizingWpfInWf.resources.dll dosyasını projenin bin\Debug\es-ES klasörüne kopyalayın. Varolan dosyayı değiştirin.
Projenizin bin\Debug klasöründe bulunan LocalizingWpfInWf.exe çalıştırın. Uygulamayı yeniden oluşturma veya uydu derlemesinin üzerine yazılacak.
Uygulama, Ingilizce dizeler yerine yerelleştirilmiş dizeleri gösterir.