İ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

  1. Adlı bir WPF uygulaması projesi oluşturun . (DosyaYeniVisual C# veya Visual Basicklasik masaüstüWPF uygulamasıProject).

  2. UserControlProjeye adlı BIR WPF öğesi ekleyin SimpleControl .

  3. 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

  1. Çözüm Gezgini, WPF Tasarımcısında açmak Için SimpleControl. xaml ' ye çift tıklayın.

  2. 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>
    
  3. Çözüm Gezgini, Windows Form Tasarımcısı açmak için Form1 ' e çift tıklayın.

  4. 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" .

  5. Uygulamayı derlemek ve çalıştırmak için F5 tuşuna basın.

    Hem SimpleControl öğe hem de etiket denetimi SimpleControlmetnini 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

  1. Çözüm Gezgini' de, Form1. cs ' ye çift tıklayarak Windows Form Tasarımcısı açın.

  2. Özellikler penceresinde, formun yerelleştirilebilir özelliğinin değerini olarak ayarlayın .

  3. Özellikler penceresinde, Language özelliğinin değerini İspanyolca (İspanya)olarak ayarlayın.

  4. Windows Form Tasarımcısı etiket denetimini seçin.

  5. Özellikler penceresinde, özelliğinin değerini olarak ayarlayın "Hola" .

    Projeye Form1.es-ES. resx adlı yeni bir kaynak dosyası eklenir.

  6. Çö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.

  7. Ç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();
    }
    
  8. Çözüm Gezgini, localizingwpfinwf öğesine sağ tıklayın ve Project kaldır' a tıklayın.

    Proje adı etiketlendi (kullanılamıyor).

  9. Localizingwpfinwföğesine sağ tıklayın ve localizingwpfinwf. csproj öğesini Düzenle' ye tıklayın.

    Proje dosyası kod düzenleyicisinde açılır.

  10. Aşağıdaki satırı proje dosyasında ilk öğesine kopyalayın PropertyGroup .

    <UICulture>en-US</UICulture>
    
  11. Proje dosyasını kaydedin ve kapatın.

  12. Çö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

  1. Başlat menüsünde, Visual Studio için Geliştirici Komut İstemi açın.

  2. 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
    
  3. Çözüm Gezgini, kod düzenleyicisinde açmak Için SimpleControl. xaml ' ye çift tıklayın. msbuildKomutun Uid ö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>
    
  4. Çö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

  1. LocBaml.exe projenizin obj\Debug klasörüne kopyalayın. Daha fazla bilgi için bkz. uygulamayı yerelleştirin.

  2. 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.csv
    
  3. temp.csv dosyasını Visual Studio veya başka bir metin düzenleyicisiyle açın. Dizeyi, "Hello" İspanyolca çevirisi ile değiştirin "Hola" .

  4. temp.csv dosyasını kaydedin.

  5. 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-ES
    

    LocalizingWpfInWf.g.es-ES. resources dosyası obj\Debug klasöründe oluşturulur.

  6. 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.resources
    

    LocalizingWpfInWf.resources.dll dosyası obj\Debug klasöründe oluşturulur.

  7. LocalizingWpfInWf.resources.dll dosyasını projenin bin\Debug\es-ES klasörüne kopyalayın. Varolan dosyayı değiştirin.

  8. 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.

Ayrıca bkz.