Globalisasi masalah di ASP dan ASP.NET

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 893663 - Melihat produk di mana artikel ini berlaku.
ASP.net dukungan suara kolom
Untuk menyesuaikan kolom ini untuk kebutuhan Anda, kami mengundang Anda untuk mengirimkan ide-ide Anda tentang topik yang menarik minat Anda dan isu-isu yang ingin Anda lihat dibahas di masa depan artikel Pangkalan Pengetahuan dan dukungan suara kolom. Anda bisa mengirimkan ide-ide dan umpan balik Anda dengan menggunakan Meminta itu bentuk. Ada juga link ke formulir di bagian bawah kolom ini.
Perbesar semua | Perkecil semua

Pada Halaman ini

Pengenalan

Selamat datang! Ini adalah Sukesh Khare dengan Microsoft ASP.NET tim support pengembang. Ini adalah pertama kalinya saya telah menulis sebuah dukungan suara kolom. Saya berharap untuk authoring lebih seperti kolom dalam bulan ke depan.

Untuk kolom bulan ini, saya akan membahas globalisasi isu-isu dalam Active Server Pages (ASP) dan ASP.NET, isu-isu yang kita hadapi dalam ASP, bagaimana hal telah berubah di ASP.NET 1 x dan what's up dengan ASP.NET 2.0 pada front globalisasi.

Catatan Jika Anda menemukan Anda tidak mengerti istilah, lihat Glosari di bagian bawah kolom ini.

Globalisasi masalah di ASP

Sebelum ASP.NET, ada tidak ada dukungan terstruktur untuk pengembangan aplikasi untuk pengguna global. Selama pengembangan awal ASP, pengembang seperti diriku ditemukan hanya tersebar dukungan untuk globalisasi dalam sistem operasi, browser, ASP dan back-end sistem. Namun, kita jarang mengamati setiap otomatis konektivitas di aplikasi ini. Untungnya, kami Apakah memahami konsep-konsep seperti rangkaian karakter, kode halaman, bahasa browser, dan font yang kita dapat memanfaatkan untuk pengembangan aplikasi untuk pengguna global.

Ini akan menjadi terlalu sulit untuk memisahkan dalam kategori semua globalisasi isu bahwa orang-orang dari kita dalam ASP.NET telah melihat. Sebaliknya, Saya akan daftar serangkaian konsep-konsep yang berhubungan dengan berbagai isu-isu tersebut.

tataan karakter dan codepage

Kita semua tahu bahwa karakter pada layar komputer kita hanya serangkaian byte. Seri byte dapat dibuat dan ditafsirkan dalam berbagai cara. Jika interpretasi menggunakan encoding yang berbeda pengkodean bahwa byte array dibuat dengan, penafsiran akan menampilkan sebagai sampah. Rangkaian karakter (charsets) adalah pengkodean format yang biasanya digunakan oleh browser. Codepage properti, yang lebih berlaku untuk sisi server konversi, adalah hanya sebuah Daftar Tabel konversi yang menentukan bagaimana karakter yang dikodekan.

Browser menyandikan data post bentuk menurut saat ini tataan karakter. Jika tataan karakter saat ini adalah "windows-1256", maka byte transmisi ke server juga dikodekan sebagai "windows-1256."

Ketika ASP dapat diinterpretasikan, bentuk dan Querystring koleksi tidak dibangun sampai mereka disebutkan dalam kode. Kapan mereka sedang dibangun, string data berubah untuk Unicode menurut codepage saat ini. (Secara default, ASP dan ASP.NET proses konten oleh menggunakan Unicode format). Sangat penting bahwa Anda mengatur codepage benar sebelum referensi koleksi; Jika tidak, perwakilan Unicode di kehabisan memori tidak akan benar.

Untuk mengatur codepage, menggunakan Session.Codepage atau Response.Codepage. Response.Codepage ini hanya tersedia dalam Microsoft Internet Information Services (IIS) versi 5.1 atau nanti. Untuk informasi tentang nilai bilangan bulat (yang sesuai dengan set karakter) bahwa kami akan mengatur properti ini untuk mengunjungi Web site Microsoft berikut:
tataan karakter pengakuan
http://msdn2.Microsoft.com/en-us/library/Aa752010.aspx
Sebagai contoh, untuk mengatur codepage untuk bahasa Arab, menggunakan kode berikut:
Session.Codepage = 1256
Response.codepage hanya akan mempengaruhi tanggapan saat ini. Namun, Session.Codepage akan mempengaruhi semua tanggapan yang dibuat oleh pengguna saat ini. Ketika codepage diatur dengan menggunakan salah satu sifat-sifat ini dan koleksi bentuk dan Querystring dibangun, perubahan ini dalam penyebab codepage saat ini Response.Write metode untuk mengubah Unicode pada kehabisan memori untuk saat ini codepage. Untuk informasi lebih lanjut tentang topik ini, kunjungi Website MSDN berikut situs:
Pengaturan halaman kode untuk String konversi (ASP)http://msdn2.Microsoft.com/en-us/library/ms525789.aspx
Bottom-line ketika datang ke masalah-masalah yang berkaitan dengan charsets codepage adalah bahwa charset klien dan server codepage harus sesuai.

Menerima bahasa

Jika pengembang ASP ingin tahu mana bahasa pengguna telah menetapkan pada browser, pengembang dapat menggunakan variabel Request.ServerVariables ("HTTP_ACCEPT_LANGUAGE") untuk menemukan daftar bahasa yang pengguna ingin untuk membaca tanggapan di, (seperti bahasa Perserikatan Kerajaan, Jerman, atau India) dan urutan menurun preferensi pengguna ingin melihat bahasa-bahasa ini di. Pada ASP.NET, informasi yang sama terdapat di properti Request.UserLanguages sebagai array. Untuk informasi lebih lanjut tentang bagaimana menggunakan informasi ini di ASP kode, klik sejumlah artikel berikut untuk melihat artikel di dalam Pangkalan Pengetahuan Microsoft:
229690Cara menetapkan ASP ID lokal per pengaturan bahasa browser

Menampilkan multi-byte karakter set di Internet Explorer

Satu-satunya format encoding yang dapat menampilkan set multi-byte karakter adalah Unicode (UTF-8). Dengan UTF-8, kita dapat menampilkan Sirilik, India, dan Jepang semua pada halaman yang sama. Jika kita tidak menggunakan UTF-8, kita hanya dapat menunjukkan salah satu dari ini bahasa pada satu waktu. Untuk mengatur charset browser, menggunakan properti Response.CharSet .

Statis multi-byte karakter pada halaman

Untuk menampilkan multi-byte karakter disimpan secara langsung di halaman, kami harus menyimpan dahulu halaman dengan pengkodean tertentu. UTF-8 akan menjadi yang terbaik, tapi codepage tertentu (cocok untuk codepage karakter) akan bekerja sebagai baik.

Menyimpan file ASP dengan menggunakan Microsoft Visual InterDev tidak membantu di sini, sejak Visual InterDev dapat hanya Simpan di Perserikatan Kerajaan ANSI atau Unicode. Setiap ASP Halaman yang disimpan sebagai Unicode tidak didukung oleh ASP.

Di Microsoft Visual Studio .net, Anda dapat menyimpan file dalam setiap pengkodean. Ada dua cara untuk melakukan ini. Default adalah cara untuk menyimpan berkas dengan menggunakan codepage saat ini untuk pengguna. Cara tambahan untuk menyimpan berkas dengan pengkodean adalah sebagai berikut:
Pada The File menu, klik Simpan berkas sebagai. Dalam Simpan berkas sebagai kotak dialog, klik tanda panah drop-down Simpan tombol tekan. Ketika Anda mengklik panah, opsi yang Simpan dan Simpan dengan pengkodean. Ketika Anda mengklik Simpan dengan pengkodean, the Advanced menyimpan pilihankotak dialog akan muncul di mana Anda dapat memilih jenis pengkodean yang ingin Anda berlaku dari daftar codepage yang diinstal di komputer.

Catatan Hal ini akan mengubah encoding untuk menyimpan operasi, tapi adalah untuk satu waktu saja. Berikutnya Simpan akan diatur kembali ke default.

Untuk mengubah default codepage, klik Advanced menyimpan pilihan pada File menu. Dalam Advanced menyimpan pilihankotak dialog, Anda dapat menetapkan standar pengkodean untuk menyimpan operasi untuk codepage pilihan Anda.

Metode ini berkaitan dengan bagaimana file adalah disimpan di disk. Namun, untuk mengontrol output untuk ASP, seperti yang telah dibahas, kami perlu untuk menetapkan Session.CodePage dan Response.CharSet properti. Dengan IIS 5.1 dan versi yang lebih baru, kami juga dapat menggunakan properti Response.CodePage .

Default CODEPAGE pada server

lokasi asali dan codepage standar untuk halaman tergantung pada pengaturan registri.Pengguna DEFAULT. Kita dapat menemukan bukti kunci internasional pada kumpulan registri
HKEY_USERS\.DEFAULT\Control Panel\International
. Kita juga dapat mengubah perilaku lokasi yang dipilih oleh IIS. Untuk informasi lebih lanjut, lihat bagian "IIS 5.0" dalam artikel Pangkalan Pengetahuan berikut:
306044 Perilaku tanggal/waktu format berbeda ketika diakses dari Active Server Pages
Jika login user lokal sama ditetapkan sebagai di atas bukti kunci atau sistem default, pengguna pengaturan yang diperlukan didahulukan.

Contoh: Default lokal telah tanggal ditetapkan sebagai 11.1.2004, format Sementara login user (dengan set yang sama lokal) memiliki format tanggal sebagai 11/1/2004. 11/1/2004 Pengaturan akan berlaku untuk ASP.

(Untuk ASP.net, ini dapat bervariasi. Dalam beberapa instalasi, pengguna ASPNET akan memiliki yang Profil sendiri yang akan muncul di bawah HKEY_USERS ketika penuh. Pada orang lain, itu akan menggunakan.Profil DEFAULT. Kami juga dapat menggunakan atribut codepage di < % @ %> deklarasi. Ini harus digunakan ketika berkas disimpan dengan berbeda pengkodean kemudian default, seperti codepage 932 (Jepang)).

Codepage masalah versus masalah font konversi: mana adalah yang mana?

Kadang-kadang, Anda mungkin melihat tanda tanya (?) karakter atau kotak di mana karakter yang seharusnya muncul.
Masalah konversi codepage
Ketika tokoh digantikan oleh karakter tanda tanya (?), ini merupakan indikasi bahwa masalah konversi codepage, telah terjadi. The tanda tanya (?) adalah tokoh default untuk konversi codepage dan pada dasarnya berarti bahwa sistem operasi tidak tahu bagaimana menangani karakter nilai dan mengubahnya. Menggantikan nilai karakter dengan pertanyaan Mark (?). Ini bisa berarti bahwa karakter memiliki nilai tidak sah untuk codepage atau codepage yang diperlukan untuk konversi yang tidak diinstal.
Masalah font konversi
Tokoh digantikan oleh sebuah kotak, ini merupakan indikasi bahwa masalah font konversi telah terjadi. Hal ini terjadi pada sisi klien ketika klien tidak memiliki font benar diinstal untuk menampilkan karakter ini dengan benar. Sebagai contoh, ketika karakter adalah dari charset Jepang, dan klien tidak memiliki font Jepang yang diinstal, karakter Jepang ditampilkan sebagai sebuah kotak.

Selanjutnya, saya akan berbicara tentang bagaimana hal-hal berubah dalam ASP.net 1.x, dan bagaimana perubahan tersebut mempengaruhi globalisasi masalah dalam konteks ASP.net.

Globalisasi masalah dalam ASP.NET 1.x:

Dengan ASP.NET, tiga hal-hal besar diperkenalkan:
  • <globalization>Tag di berkas Web.config</globalization>
    <globalization>Tag membawa kita jauh dari konsep-konsep tidak koheren codepage dan charsets dan memungkinkan kita mengendalikan sebagian besar varian dalam ASP.NET.</globalization>
  • System.Globalization namespace
    Globalisasi namespace menyediakan kami dengan program kekuatan penanganan globalisasi.
  • Konsep berkas sumber daya telah sangat ditingkatkan.
    Kita tidak berurusan dengan berkas sumber daya dalam cara yang kita digunakan untuk di ASP. Sekarang, berkas sumber daya yang dalam bentuk file XML ketika kita merancang dan mengembangkan mereka, dan mereka yang ada sebagai merakit pada saat runtime.
Globalisasi konfigurasi tag:

Dua pengaturan yang penting dalam tag adalah sebagai berikut:
<globalization 
            requestEncoding="utf-8" 
            responseEncoding="utf-8"  />
Daerah lain mungkin pengaturan berikut:
Perkecil tabel iniPerbesar tabel ini
fileEncodingMenentukan standar pengkodean untuk .aspx, .asmx, dan .asax file parsing. Unicode dan UTF-8 file disimpan dengan tanda perintah byte awalan (dengan tanda tangan) akan secara otomatis diakui, terlepas dari nilai fileEncoding.
BudayaMenentukan standar budaya untuk memproses Web masuk permintaan (berlaku pada metode kelas dari System.Globalization namespace).
uiCultureMenentukan standar budaya untuk pengolahan sumber daya lokal bergantung pada pencarian (satelit Majelis).
Untuk informasi lebih lanjut tentang budaya string (nilai-nilai budaya dan uiculture), kunjungi Web site Microsoft berikut:
System.Globalization.CultureInfoClass
.aspx http://msdn2.Microsoft.com/en-us/library/System.Globalization.CultureInfo (vs.71)
Pengaturan ini diterapkan oleh ASP.NET setelah tanggapan lengkap, dan sebelum permintaan adalah menyerahkan aplikasi Anda. Untuk responseEncoding, buffer yang dibuat untuk menyimpan output diatur untuk ini pengkodean. Segala sesuatu yang masuk ke buffer ini akan dikodekan menurut pengaturan seperti itu dimasukkan ke dalam buffer.

Untuk requestEncoding, runtime akan membaca permintaan dan menafsirkan sesuai dengan pengaturan di bagian ini. Ini adalah pengaturan yang dapat menyebabkan masalah, namun. Daftar Tabel di bawah ini menunjukkan letak sedikit berlaku UTF-8 byte urutan menurun.

Jika nilai karakter jatuh 7 ASCII sedikit standar, byte nilai tidak diubah. Jika nilai di atas 127, itu harus Ikuti Aturan di bawah ini. Set terkemuka bit menunjukkan berapa banyak karakter secara berurutan. Setiap byte setelah yang pertama harus mulai dengan bit pertama ditetapkan untuk 1.

Tata letak UTF-8 byte:
Perkecil tabel iniPerbesar tabel ini
Byte bitrepresentasi
1 7 0vvvvvvv
211110vvvvv 10vvvvvv
3161110vvvv 10vvvvvv 10vvvvvv
4 2111110vvv 10vvvvvv 10vvvvvv 10vvvvvv
Ini adalah di mana masalahnya datang. Jika browser encode permintaan menurut satu byte encoding (seperti iso-8859-1), nilai-nilai di atas 127 tidak akan berlaku menurut tata letak di atas. Ketika mereka membaca ke penyangga UTF-8, karakter yang tidak sah hanya menjatuhkan dari output.

Runtime encoding perubahan

Dalam Application_BeginRequest , kita dapat mengubah nilai requestEncoding dan memilikinya berlaku sebelum permintaan diproses. Untuk respon, acara Page_PreRender adalah kesempatan terakhir untuk mengubah encoding output. Juga perhatikan bahwa Response.Write akan menempatkan karakter ke buffer ini segera setelah kami menyebutnya, jadi Pastikan untuk memiliki hak pengkodean ditetapkan sebelum menggunakan Response.Write.

Data asli adalah non Unicode: bagaimana masih membuat Internet Explorer menafsirkan multi-byte charsets?

Kami juga dapat membuat ASP.NET berperilaku seperti ASP jika kita perlu. Untuk membuat Hal ini terjadi, kita perlu untuk menetapkan responseEncoding dan requestEncoding untuk windows-1252 (lebih lengkap pengkodean dari iso-8859-1), dan menggunakan properti Response.Charset untuk menampilkan teks dengan benar. Ini bekerja karena Windows-1252 skema pengkodean satu byte, dan tidak mengubah setiap byte yang ditambahkan ke buffer. Dengan demikian, ganda-byte karakter dikirim sebagai rangkaian satu byte. Kita kemudian dapat memberitahu Internet Explorer bagaimana menafsirkan byte dengan menggunakan properti Response.Charset . Skenario ini mungkin diperlukan jika data asli tidak disimpan sebagai Unicode atau UTF-8, seperti nilai kembali dari obyek COM, atau jika data yang disimpan dalam Microsoft SQL Server dalam bidang non N (seperti varchar).

SQL Server dan ASP.NET globalisasi masalah

Unicode input data ke SQL Server
Cara terbaik untuk menyimpan data dalam SQL Server adalah untuk memanfaatkan Unicode. Setiap kali kita menggunakan INSERT, UPDATE, dll, jika bahkan ada kesempatan paling Unicode data, kita perlu menambahkan n sebelum nilai. Ini memberitahu database yang nilai Unicode. Sebuah contoh yang baik ini adalah objek ADO. Mereka melakukan hal ini secara otomatis Jika kita menggunakan objek Recordset menambahkan catatan baru.

Berikut ini adalah contoh:
INSERT INTO MusicAlbum (Album_ID, [Year], Name, Artist_ID, Company_ID) VALUES (12345, 2005, N'Abida', 4653, 403)
Or:
Dim t As String = "INSERT INTO MusicAlbum(Album_ID, [Year], Name, Artist_ID, Company_ID) VALUES (12345, 2005, N'" & TextBox1.Text & "', 4653, 403)"
Tanggal input ke SQL Server
Biasanya kami memiliki pengetahuan tentang budaya dan lokal tanggal/waktu dapat diinterpretasikan dalam ASP.NET aplikasi kita. Namun, sementara mendorong dan menarik tanggal/waktu data ke dan dari sumber eksternal, kami menjalankan risiko salah mengartikan tanggal/waktu format. Hal ini karena kita tidak bisa selalu menjamin budaya dan lokal dari sumber eksternal untuk menjadi sama seperti dalam aplikasi kita. Dalam SQL Server ini dapat diselesaikan dengan menggunakan ' bahasa' atribut dalam connectionstring dari hubungan yang dibuat ke SQL database. Kita dapat menyediakan pengaturan bahasa yang sama di connectionstring sebagai budaya di aplikasi kita. Ini melindungi kita dari risiko salah tafsir, karena SQL Server selalu menerima dan mengirim tanggal/waktu data dalam persetujuan dengan pengaturan yang disebutkan di atas.

System.Globalization namespace

Namespace ini adalah inti dari globalisasi dan localization di Forum .NET Framework. Kelas utama yang digunakan dalam namespace ini adalah kelas CultureInfo . Ini memegang informasi budaya tertentu, seperti tanggal/waktu format, format nomor, informasi pembanding, dan informasi teks. Untuk informasi lebih lanjut tentang kelas CultureInfo , kunjungi Website MSDN berikut:
.aspxCultureInfo http://msdn2.Microsoft.com/en-us/library/System.Globalization.CultureInfo (vs.71)

Budaya netral vs budaya tertentu

Budaya netral adalah budaya yang berhubungan dengan bahasa, tapi tidak spesifik negara atau wilayah. Budaya tertentu terkait kedua dengan bahasa dan negara tertentu.

Contoh: "DE" (netral budaya) untuk bahasa Jerman, tapi "de-AT" (budaya tertentu) untuk Bahasa Jerman seperti dituturkan di Austria. Budaya netral tidak dapat digunakan untuk format.

Saat ini kesadaran benang dan budaya kelas .NET Framework

Semua kelas dan metode di perpustakaan .NET Framework di mana kita harapkan output harus bergantung pada budaya memiliki dua built-in perilaku:
  • Mereka membiarkan kita menentukan kode budaya sementara memasok argumen sehingga output didasarkan pada budaya yang ditentukan. Ini adalah opsional.
  • Jika ini adalah kehilangan (biasanya lebih), kelas yang cukup cerdas untuk tetap memeriksa Thread.CurrentThread.CurrentCulture properti dan bekerja sesuai dengan itu.
Kita dapat mengubah nilai properti ini dengan kode yang sama dengan Berikut ini:
    Dim ci As CultureInfo
        ci = New CultureInfo("de-AT")
        Thread.CurrentThread.CurrentCulture = ci
Dalam contoh kode ini, "de" mewakili bahasa Jerman, dan "AT" mewakili Austria. Jadi, dalam contoh ini, DateTime.Now().ToString metode akan kembali tanggal dan waktu dalam format yang sesuai cara tanggal dan waktu dinyatakan dalam bahasa Jerman Austria.

Kerangka kerja (sebagai berikut) memastikan bahwa properti CurrentCulture selalu diinisialisasi:
  1. Apa pun sudah diatur pemrograman.
  2. Dalam kasus tidak secara eksplisit menetapkan oleh programmer, properti diambil dari file konfigurasi (<globalization> Tag).</globalization>
  3. Jika properti hilang, itu ada budaya di yang server Web berjalan. Hal ini biasanya netral budaya yang sesuai dengan bahasa sistem operasi.

berkas sumber daya

Semua .resx, .resource file dan file yang memiliki atribut Membangun tindakan yang ditetapkan untuk Tertanam sumber daya yang ditambahkan ke sebuah proyek ASP.NET pada Visual Studio .net secara otomatis mengumpulkan dan tertanam aplikasi Majelis sebagai bagian dari yang mewujudkan. Ini bahkan dapat dilakukan secara manual dengan menggunakan sumber daya File Generator Utilitas (RESGEN) melalui Visual Studio .net command prompt. Untuk informasi lebih lanjut, Kunjungi situs Website MSDN berikut:
.aspx http://msdn2.Microsoft.com/en-us/library/ccec7sz1 (vs.71)
Ini adalah konsep umum yang dapat diterapkan setiap kali kita perlu mengelola aplikasi sumber daya yang tidak terkait dengan globalisasi. Namun, ketika Kami menerapkan globalisasi, kita harus menggunakan satelit Majelis.

Satelit Majelis

Satelit Majelis dapat digunakan dalam ASP.NET proyek ketika Anda Pastikan berikut ini benar:
  1. Semua elemen antarmuka pengguna di file aspx semua perlu dilengkapi dengan id dan runat = server atribut.
  2. Kami membuat file .resx terpisah. Masing-masing harus sesuai dengan setiap budaya kami ingin aplikasi kita untuk mendukung.
  3. Kita harus memutuskan nama pertama yang umum untuk semua file-file ini untuk Keluaran 'String'.
  4. Nama berkas terpisah .resx dengan penamaan berikut Konvensi commonfirstname. languagecode-regioncode.ResX (misalnya: Strings.de-AT.resx, Strings.en-GB.ResX).
  5. Kita harus memiliki berkas sumber dayacommonfirstname.ResX (Strings.resx) yang memiliki semua string yang kita inginkan ditampilkan dalam kasus default.
  6. Menulis kode untuk mendeteksi pengguna budaya dan menetapkan properti Thread.CurrentThread.CurrentUICulture untuk mencocokkan dengan itu.
  7. Menulis kode untuk memuat sumber daya dengan menggunakan ResourceManager kelas.
  8. Menulis kode untuk mengekstrak string dari objek dimuat, dan menetapkan mereka untuk elemen antarmuka pengguna.
Ketika Anda telah melakukan langkah-langkah ini, Visual Studio.NET akan kompilasi Strings.resx dan embed ke Majelis aplikasi (MyGlobalizationTestProjectName.dll). Namun, untuk semua file .resx lain, itu akan menghasilkan file terpisah dll yang tidak memiliki kode executable tetapi hanya data sumber. Ini benar-benar disebut satelit Majelis. Juga, Visual Studio .net tempat ini dalam struktur folder mirip dengan berikut ini:
MyGlobalizationTestProjectName
        |------- bin
                |------en-US
                        MyGlobalizationTestProjectName.resources.dll
                |------ja-JP
                        MyGlobalizationTestProjectName.resources.dll
                |------de-AT
                        MyGlobalizationTestProjectName.resources.dll

Perbedaan antara CurrentCulture dan CurrentUICulture

Sementara metode kelas dalam System.Globalization namespace tergantung pada Thread.CurrentThread.CurrentCulture properti untuk memberikan mereka output, ResourceManager kelas yang memuat Majelis sumber daya tergantung pada properti Thread.CurrentThread.CurrentUICulture untuk memuat Majelis sesuai satelit. The Berikut adalah contoh dari C# kode:
using System.Globalization;
using System.Threading;
using System.Resources;

//Load resources. 
protected ResourceManager gStrings = new ResourceManager("MyGlobalizationTestProjectName.strings", typeof(MyTestWebFormName).Assembly);	

// Get the user's preferred language.
string sLang = Request.UserLanguages[0];
// Set the thread's culture for formatting, comparisons, etc.   
Thread.CurrentThread.CurrentCulture =  CultureInfo.CreateSpecificCulture(sLang);
// Set the thread's UICulture to load resources
// from satellite assembly.
Thread.CurrentThread.CurrentUICulture = new CultureInfo(sLang);

private void Page_Load(object sender, System.EventArgs e) 

{ 

 if (!IsPostBack)  
 
 {      
// Get strings from resource file and assign to UI elements.
head1.InnerHtml = gStrings.GetString("satellite.head1");
p1.InnerHtml = gStrings.GetString("satellite.p1");
sp1.InnerHtml = gStrings.GetString("satellite.sp1");
sp2.InnerHtml = gStrings.GetString("satellite.sp2");
butOK.Text = gStrings.GetString("satellite.butOK");
butCancel.Value = gStrings.GetString("satellite.butCancel");
   }

 }

urutan menurun di mana ASP.NET memilih satelit Majelis:

Ketika Anda telah menetapkan thread CurrentUICulture, ASP.NET secara otomatis memilih sumber daya yang sesuai, dalam urutan menurun berikut:
  • Jika Majelis satelit ditemukan dengan budaya yang cocok, sumber daya dari Majelis itu digunakan.
  • Jika Majelis satelit ditemukan dengan budaya netral yang cocok dengan CurrentUICulture, sumber daya dari Majelis itu digunakan.
  • Jika pertandingan tidak ditemukan untuk CurrentUICulture, sumber daya mundur yang disimpan di Majelis dapat dijalankan yang digunakan.
Catatan Hal ini didasarkan pada proses mundur sumber daya lebih umum. Untuk informasi lebih lanjut, kunjungi Website MSDN berikut:
.aspx http://msdn2.Microsoft.com/en-us/library/sb6a8618 (vs.71)

Secara manual membuat satelit Majelis:

Penggunaan satelit Majelis adalah di mana Visual Studio .net menciptakan Majelis itu sendiri. Visual Studio .net tidak kuat nama satelit Majelis secara asali, namun. Jika Anda ingin mengubah pilihan ini, Anda akan perlu untuk membuat Majelis satelit secara manual. Untuk informasi lebih lanjut, kunjungi situs Website MSDN berikut:
.aspx http://msdn2.Microsoft.com/en-us/library/21a15yht (vs.71)
.

What's up dengan ASP.NET 2.0 di depan globalisasi?

Penggunaan luas ASP.NET dan jenis masalah yang kita akan melihat sehubungan dengan globalisasi fitur di ASP.NET 2.0 masih beberapa jarak ke depan. Namun, itu akan baik untuk melihat singkat pada apa arah globalisasi metodologi menuju ke web aplikasi.

Globalisasi dukungan di ASP.NET 2.0 telah mengalami perubahan radikal dan Web Developer telah diberikan kemampuan untuk membuat lokalisasi aplikasi web semudah itu adalah untuk berbasis Windows aplikasi. Berikut ini adalah daftar fitur yang merupakan dasar dari globalisasi metodologi dalam ASP.NET 2.0:

Sumber daya bertipe kuat Inti dari .NET Framework 2.0 rilis adalah dukungan untuk sumber daya bertipe kuat yang memberikan pengembang dengan Intellisense dan menyederhanakan kode yang diperlukan untuk mengakses sumber pada saat runtime.

Berhasil Editor sumber daya Visual Studio .net 2.0 termasuk editor sumber daya baru dengan lebih baik dukungan untuk menciptakan dan mengelola sumber daya entri termasuk string, Gambar, file eksternal, dan jenis kompleks.

Generasi sumber daya untuk formulir Web Windows Forms pengembang sudah menikmati manfaat otomatis internasionalisasi. Visual Studio .net 2005 sekarang mendukung cepat internasionalisasi dengan secara otomatis menghasilkan sumber daya untuk formulir Web, pengguna kontrol, dan master halaman.

Peningkatan dukungan runtime ResourceManager contoh dikelola oleh runtime dan mudah dapat diakses untuk kode server melalui program lebih mudah diakses antarmuka.

Localization ekspresi Ekspresi deklaratif modern untuk halaman web yang mendukung pemetaan sumber daya entri untuk kontrol properti, properti HTML, atau konten statis daerah. Ungkapan-ungkapan ini juga extensible, menyediakan cara tambahan untuk kontrol proses melampirkan konten lokal ke HTML output.

Seleksi otomatis budaya Mengelola budaya seleksi untuk setiap permintaan Web dapat secara otomatis terhubung ke preferensi browser.

Model penyedia Resource Model penyedia sumber daya baru memungkinkan pengembang untuk host sumber daya dalam sumber-sumber data alternatif seperti flat file dan Daftar Tabel database, sementara model pemrograman untuk mengakses sumber daya tersebut tetap konsisten.

Untuk informasi lebih lanjut tentang globalisasi metodologi dalam ASP.net 2.0, kunjungi Website MSDN site:
ASP.net 2.0 Localization fitur: pendekatan segar untuk melokalisasi aplikasi web
.aspx http://msdn2.Microsoft.com/en-us/library/ms379546 (VS.80)

Kesimpulan

That's all sekarang tentang isu-isu globalisasi di ASP dan ASP.NET. Saya harap artikel ini akan membantu beberapa pelanggan memecahkan mereka globalisasi isu-isu di ASP dan ASP.NET sebelum mereka memilih untuk menghubungi dukungan Microsoft. Pasti berakhir dengan pikiran berikut:

"Dimanapun dan kapanpun Anda adalah mengembangkan, berpikir tentang jutaan orang-orang yang Anda dapat memberdayakan sekitar dunia. Membuat Anda solusi dunia-siap! Microsoft membuat alat dan teknologi internasionalisasi mudah."

Kita akan mengejar ketinggalan lagi bulan depan dengan topik menarik lainnya.

Terima kasih untuk waktu Anda.
Untuk informasi lebih lanjut tentang isu-isu globalisasi di ASP dan ASP.net, lihat Website Microsoft berikut:
SetLocale dan GetLocale di vbscript
http://msdn2.Microsoft.com/en-us/library/5xf99h19.aspx
Globalisasi langkah demi langkah
http://MSDN.Microsoft.com/en-US/goglobal/bb688110
Pergi Global: Melokalisasi dinamis Web Apps dengan IIS 5.0 dan SQL Server
http://MSDN.Microsoft.com/msdnmag/Issues/01/05/global/default.aspx
Pergi Global: Merancang situs web berbasis ASP dukungan globalisasi
http://MSDN.Microsoft.com/msdnmag/Issues/0700/localize/default.aspx
315616 Cara untuk mendeteksi bahasa klien dalam Active Server Pages halaman di IIS
http://support.Microsoft.com/?id=315616
Lokal ID(LCID) bagan
http://msdn2.Microsoft.com/en-us/library/0h88fahh.aspx
System.Globalization Namespace
.aspx http://msdn2.Microsoft.com/en-us/library/System.Globalization (vs.71)
Sumber daya dan lokalisasi menggunakan .NET Framework SDK
.aspx http://msdn2.Microsoft.com/en-us/library/aa309421 (VS.71)
Sumber daya dalam ASP.NET aplikasi
.aspx http://msdn2.Microsoft.com/en-us/library/1ztca10y (vs.71)
ASP.net <globalization>elemen konfigurasi
</globalization>.aspx http://msdn2.Microsoft.com/en-us/library/hy4kkhe0 (vs.71)
Desain dan implementasi pedoman untuk Web klien - globalisasi dan Localization
http://msdn2.Microsoft.com/en-us/library/ms978628.aspx
Situs Microsoft resmi-Global Development dan komputasi Portal
http://MSDN.Microsoft.com/en-US/goglobal/bb688096
Mengembangkan aplikasi dunia-siap
.aspx http://msdn2.Microsoft.com/en-us/library/h6270d0z (vs.71)
Globalisasi arsitektur untuk ASP.NET
http://msdn2.Microsoft.com/en-us/library/aa478974.aspx
Enterprise Localization Toolkit - untuk mengembangkan lokal Microsoft ASP.NET aplikasi
http://msdn2.Microsoft.com/en-us/library/aa479334.aspx
Microsoft tipografi
http://www.Microsoft.com/Typography/default.mspx
839861 Pengecualian System.Resources.MissingManifestResourceException terjadi saat Anda mencoba untuk mengakses sumber lokal

Daftar istilah

ANSI Singkatan dari American National Standards Institute. Dalam hal ini konteks, yang mewakili codepage tertentu untuk bahasa/karakter tertentu set. Paling sering merujuk kepada codepage Perserikatan Kerajaan (windows-1252).

ASCII Skema pengkodean yang 1 byte (atau 7 bit). Hanya karakter di kisaran 0-127 standar. Kisaran 128-255 adalah ekstensi ke ASCII dan tidak bagian dari standar. Contoh ini adalah perbedaan antara bagian atas berbagai OEM ASCII diagram dan elemen bagan VB ASCII.

CharSet Pengaturan digunakan sebagian besar untuk Internet Explorer dan browser yang memberitahu browser bagaimana untuk menafsirkan data karakter. Contoh: Response.charSet = "iso-8859-1."

Codepage Daftar Tabel konversi yang menentukan bagaimana karakter dikodekan (biasanya digunakan untuk server).

Globalisasi Globalisasi adalah proses merancang dan membuat aplikasi sehingga kebutuhan unik budaya, daerah atau nasional dan kebutuhan dapat bertemu. Dengan kata lain merancang aplikasi di cara bahwa itu dapat dilokalisasi kemudian adalah globalisasi.

Lokal/budaya Bahasa dan wilayah format/preferensi khusus termasuk, tanggal dan format kalender, waktu format, format mata uang, casing, menyortir dan perbandingan string, alamat penyuratan format, telepon, nomor format, ukuran kertas, unit mengukur, menulis arah, dll.

LocaleID (LCID) Nilai DWORD yang menentukan bahasa pengenal dan menyortir ID. dapat digunakan untuk menentukan format wilayah tertentu untuk mantan tanggal/waktu dll harus diformat sesuai.

Localizability Kemampuan aplikasi untuk menyajikan konten untuk menuntut bahasa/lokal.

Localization Lokalisasi adalah proses menerjemahkan antarmuka pengguna ke bahasa tertentu dan/atau lokal.

Multibyte karakter tataan karakter di mana karakter terdiri dari dua atau lebih byte, seperti Jepang. UTF-8 juga jatuh di bawah kategori ini. (Unicode secara teknis dalam kategori ini, tetapi dalam Windows, memiliki sendiri Kategori.)

Unicode Skema pengkodean 2-byte. Windows menggunakan Unicode internal. Setiap Api khusus untuk Unicode ditandakan oleh "W" pada akhir fungsi Nama. Juga dikenal sebagai lebar char; tidak dapat digunakan langsung dari web aplikasi.

UTF-8 Pengkodean karakter di mana karakter dapat diwakili oleh 1-6 byte. Di Windows, kisaran adalah 1-3 byte. Tidak didukung di bawah NT4 untuk web aplikasi. Untuk lebih informasi, klik nomor artikel berikut ini untuk melihat artikel di Pangkalan Pengetahuan Microsoft:
175392Utf8 dukungan

tataan karakter lebar Alias untuk Unicode. Juga dikenal sebagai DBCS (byte ganda karakter ditetapkan), UCS-2, UTF-16.
Seperti biasa, merasa bebas untuk menyerahkan ide-ide tentang topik yang Anda inginkan ditangani di masa depan kolom atau di dalam Pangkalan Pengetahuan dengan menggunakan Meminta itu bentuk.

Properti

ID Artikel: 893663 - Kajian Terakhir: 19 Juli 2012 - Revisi: 2.0
Berlaku bagi:
  • Microsoft Active Server Pages 4.0
  • Microsoft ASP.NET 1.0
  • Microsoft ASP.NET 1.1
  • Microsoft ASP.NET 2.0
Kata kunci: 
kbaspnet kbhowto kbasp kbmt KB893663 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini: 893663

Berikan Masukan

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com