Bagikan melalui


Globalisasi untuk WPF

Topik ini memperkenalkan masalah yang harus Anda ketahui saat menulis aplikasi Windows Presentation Foundation (WPF) untuk pasar global. Elemen pemrograman globalisasi didefinisikan dalam .NET di System.Globalization namespace layanan.

Globalisasi XAML

Extensible Application Markup Language (XAML) didasarkan pada XML dan memanfaatkan dukungan globalisasi yang ditentukan dalam spesifikasi XML. Bagian berikut menjelaskan beberapa fitur XAML yang harus Anda waspadai.

Referensi Karakter

Referensi karakter memberikan unit kode UTF16 dari karakter Unicode tertentu yang diwakilinya, baik dalam desimal atau heksadesimal. Contoh berikut menunjukkan referensi karakter desimal untuk COPTIC CAPITAL LETTER HORI, atau 'Ϩ':

Ϩ

Contoh berikut menunjukkan referensi karakter heksadesimal. Perhatikan bahwa ia memiliki x di depan angka heksadesimal.

Ϩ

Pengodean

Pengodean yang didukung oleh XAML adalah ASCII, Unicode UTF-16, dan UTF-8. Pernyataan pengodean berada di awal dokumen XAML. Jika tidak ada atribut pengodean dan tidak ada urutan byte, pengurai default ke UTF-8. UTF-8 dan UTF-16 adalah pengodean pilihan. UTF-7 tidak didukung. Contoh berikut menunjukkan cara menentukan pengodean UTF-8 dalam file XAML.

?xml encoding="UTF-8"?

Atribut Bahasa

XAML menggunakan xml:lang untuk mewakili atribut bahasa elemen. Untuk memanfaatkan CultureInfo kelas , nilai atribut bahasa perlu menjadi salah satu nama budaya yang telah ditentukan oleh CultureInfo. xml:lang dapat diwariskan di pohon elemen (menurut aturan XML, belum tentu karena pewarisan properti dependensi) dan nilai defaultnya adalah string kosong jika tidak ditetapkan secara eksplisit.

Atribut bahasa sangat berguna untuk menentukan bahasa regional. Misalnya, bahasa Prancis memiliki ejaan, kosakata, dan pengucapan yang berbeda di Prancis, Quebec, Belgia, dan Swiss. Juga titik kode berbagi Cina, Jepang, dan Korea di Unicode, tetapi bentuk ideografisnya berbeda dan menggunakan font yang sama sekali berbeda.

Contoh Extensible Application Markup Language (XAML) berikut menggunakan fr-CA atribut bahasa untuk menentukan Bahasa Prancis Kanada.

<TextBlock xml:lang="fr-CA">Découvrir la France</TextBlock>

Unicode

XAML mendukung semua fitur Unicode termasuk pengganti. Selama set karakter dapat dipetakan ke Unicode, set karakter didukung. Misalnya, GB18030 memperkenalkan beberapa karakter yang dipetakan ke ekstensi Cina, Jepang, dan Korea (CFK) A dan B dan pasangan pengganti, oleh karena itu didukung sepenuhnya. Aplikasi WPF dapat digunakan StringInfo untuk memanipulasi string tanpa memahami apakah mereka memiliki pasangan pengganti atau menggabungkan karakter.

Merancang Antarmuka Pengguna Internasional dengan XAML

Bagian ini menjelaskan fitur antarmuka pengguna (UI) yang harus Anda pertimbangkan saat menulis aplikasi.

Teks Internasional

WPF mencakup pemrosesan bawaan untuk semua sistem penulisan yang didukung Microsoft .NET Framework.

Skrip berikut saat ini didukung:

  • Arab

  • Bengali

  • Devanagari

  • Sirilik

  • Yunani

  • Gujarat

  • Gurmukhi

  • Ibrani

  • Skrip ideografis

  • Kannada

  • Laos

  • Latin

  • Malayalam

  • Mongolia

  • Odia

  • Suriah

  • Tamil

  • Telugu

  • Thaana

  • Thai*

  • Tibet

*Dalam rilis ini, tampilan dan pengeditan teks Thailand didukung; pemecahan kata tidak.

Skrip berikut saat ini tidak didukung:

  • Khmer

  • Hangul Tua Korea

  • Myanmar

  • Sinhala

Semua mesin sistem penulisan mendukung font OpenType. Font OpenType dapat menyertakan tabel tata letak OpenType yang memungkinkan pembuat font merancang font tipografi internasional dan kelas atas yang lebih baik. Tabel tata letak font OpenType berisi informasi tentang substitusi glyph, pemosisian glyph, pembenaran, dan penempatan garis besar, memungkinkan aplikasi pemrosesan teks untuk meningkatkan tata letak teks.

Font OpenType memungkinkan penanganan set glyph besar menggunakan pengodean Unicode. Pengodean tersebut memungkinkan dukungan internasional yang luas serta untuk varian glyph tipografik.

Penyajian teks WPF didukung oleh teknologi sub-piksel Microsoft ClearType yang mendukung kemandirian resolusi. Ini secara signifikan meningkatkan legibilitas dan menyediakan kemampuan untuk mendukung dokumen gaya majalah berkualitas tinggi untuk semua skrip.

Tata Letak Internasional

WPF menyediakan cara yang sangat nyaman untuk mendukung tata letak horizontal, dua arah, dan vertikal. Dalam kerangka kerja FlowDirection presentasi, properti dapat digunakan untuk menentukan tata letak. Pola arah alur adalah:

  • LeftToRight - tata letak horizontal untuk Latin, Asia Timur dan sebagainya.

  • RightToLeft - dua arah untuk Bahasa Arab, Ibrani, dan sebagainya.

Mengembangkan Aplikasi yang Dapat Dilokalkan

Ketika Anda menulis aplikasi untuk konsumsi global, Anda harus ingat bahwa aplikasi harus dapat dilokalkan. Topik berikut menunjukkan hal-hal yang perlu dipertimbangkan.

Antarmuka Pengguna Multibahasa

Antarmuka Pengguna Multibahasa s (MUI) adalah dukungan Microsoft untuk beralih UI dari satu bahasa ke bahasa lain. Aplikasi WPF menggunakan model perakitan untuk mendukung MUI. Satu aplikasi berisi rakitan bahasa netral serta rakitan sumber daya satelit yang bergantung pada bahasa. Titik masuk adalah .EXE terkelola di perakitan utama. Pemuat sumber daya WPF memanfaatkan resource manager Framework untuk mendukung pencarian dan fallback sumber daya. Beberapa rakitan satelit bahasa bekerja dengan rakitan utama yang sama. Rakitan sumber daya yang dimuat tergantung pada CurrentUICulture utas saat ini.

Antarmuka Pengguna yang Dapat Dilokalkan

Aplikasi WPF menggunakan XAML untuk menentukan UI mereka. XAML memungkinkan pengembang menentukan hierarki objek dengan sekumpulan properti dan logika. Penggunaan utama XAML adalah untuk mengembangkan aplikasi WPF tetapi dapat digunakan untuk menentukan hierarki objek runtime bahasa umum (CLR). Sebagian besar pengembang menggunakan XAML untuk menentukan UI aplikasi mereka dan menggunakan bahasa pemrograman seperti C# untuk bereaksi terhadap interaksi pengguna.

Dari sudut pandang sumber daya, UI adalah elemen sumber daya dan oleh karena itu format distribusi akhirnya harus dapat dilokalkan untuk mendukung bahasa internasional. Karena XAML tidak dapat menangani peristiwa banyak aplikasi XAML yang berisi blok kode untuk melakukan ini. Untuk informasi selengkapnya, lihat XAML di WPF. Kode dilucuti dan dikompilasi ke biner yang berbeda ketika file XAML ditokenisasi ke dalam bentuk BAML XAML. Bentuk BAML file XAML, gambar, dan jenis objek sumber daya terkelola lainnya disematkan dalam perakitan sumber daya satelit, yang dapat dilokalkan ke dalam bahasa lain, atau perakitan utama ketika pelokalan tidak diperlukan.

Catatan

Aplikasi WPF mendukung semua sumber daya FrameworkCLR termasuk tabel string, gambar, dan sebagainya.

Membangun Aplikasi yang Dapat Dilokalkan

Pelokalan berarti menyesuaikan UI dengan budaya yang berbeda. Untuk membuat aplikasi WPF dapat dilokalkan, pengembang perlu membangun semua sumber daya yang dapat dilokalkan ke dalam perakitan sumber daya. Rakitan sumber daya dilokalkan ke dalam bahasa yang berbeda, dan kode di belakang menggunakan API manajemen sumber daya untuk dimuat. Salah satu file yang diperlukan untuk aplikasi WPF adalah file proyek (.proj). Semua sumber daya yang Anda gunakan dalam aplikasi Anda harus disertakan dalam file proyek. Contoh berikut dari file .csproj menunjukkan cara melakukan ini.

<Resource Include="data\picture1.jpg"/>
<EmbeddedResource Include="data\stringtable.en-US.restext"/>

Untuk menggunakan sumber daya dalam aplikasi Anda, buat instans ResourceManager dan muat sumber daya yang ingin Anda gunakan. Contoh berikut menunjukkan cara melakukannya.

void OnClick(object sender, RoutedEventArgs e)
{
  ResourceManager rm = new ResourceManager ("MySampleApp.data.stringtable",
       Assembly.GetExecutingAssembly());
  Text1.Text = rm.GetString("Message");
}

Menggunakan ClickOnce dengan Aplikasi Yang Dilokalkan

ClickOnce adalah teknologi penyebaran Formulir Windows baru yang akan dikirim dengan Visual Studio 2005. Ini memungkinkan penginstalan aplikasi dan peningkatan aplikasi Web. Ketika aplikasi yang disebarkan dengan ClickOnce dilokalkan, aplikasi hanya dapat dilihat pada budaya yang dilokalkan. Misalnya, jika aplikasi yang disebarkan dilokalkan ke Bahasa Jepang, aplikasi tersebut hanya dapat dilihat di Microsoft Windows Jepang tidak di Windows Bahasa Inggris. Ini menyajikan masalah karena ini adalah skenario umum bagi pengguna Jepang untuk menjalankan versi bahasa Inggris Windows.

Solusi untuk masalah ini adalah mengatur atribut fallback bahasa netral. Pengembang aplikasi dapat secara opsional menghapus sumber daya dari perakitan utama dan menentukan bahwa sumber daya dapat ditemukan di rakitan satelit yang sesuai dengan budaya tertentu. Untuk mengontrol proses ini, gunakan NeutralResourcesLanguageAttribute. Konstruktor NeutralResourcesLanguageAttribute kelas memiliki dua tanda tangan, satu yang mengambil UltimateResourceFallbackLocation parameter untuk menentukan lokasi di mana ResourceManager harus mengekstrak sumber daya fallback: perakitan utama atau rakitan satelit. Contoh berikut menunjukkan cara menggunakan atribut . Untuk lokasi fallback utama, kode menyebabkan ResourceManager mencari sumber daya di subdirektori "de" direktori assembly yang sedang dijalankan.

[assembly: NeutralResourcesLanguageAttribute(
    "de" , UltimateResourceFallbackLocation.Satellite)]

Baca juga