1. Penamaan file sumber daya
Format penamaan file sumber daya internasional adalah sebagai berikut:
Basename_language_country.properties Basename_language.properties Basename.properties
Di mana nama dasar adalah nama dasar dari file sumber daya, bahasa dan negara harus menjadi bahasa dan negara yang didukung oleh Java. Kode bahasa dan negara yang mendapatkan dukungan Java adalah sebagai berikut:
Locale [] locales = locale.getavailablelocales (); untuk (lokale lokal: lokal) {System.out.println ("negara:" + locale.getCountry () + ", bahasa:" + locale.getLanguage ()); }2. Konfigurasi dan akuisisi file sumber daya
Buat file sumber daya baru. Dalam lingkungan Cina, nilai nilai dalam file sumber daya perlu dikonversi ASCII. Anda dapat memasuki Native2ASCII setelah berlari. Selain itu, artikel ini menggunakan plug-in file atribut Eclipse, sehingga ditampilkan langsung dalam bahasa Cina. File properti dikonfigurasi sebagai berikut:
info_en_us.properties
nama pengguna = zhangsaninfo_zh_cn.propertiesusername = zhangsaninfo_zh.propertiesusername = li si password = lisiinfo.propertiesusername = wangwu kata sandi = wangwuemail = mailbox = mailbox = mailbox = mailbox
Selain itu, jika Anda perlu membaca nilai dalam file Properties, Anda perlu mengkonfigurasi konstanta dalam file struts-config.xml.
<!-Gunakan nama file sumber daya, di mana nilai nilai mewakili nama dasar file sumber daya-> <name konstan = "struts.custom.i18n.Resources" value = "info"> </constant>
Cara mendapatkan file sumber daya pada halaman adalah dengan menggunakan tag struts <s: text/>, seperti yang ditunjukkan di bawah ini:
<!-File sumber daya mendapatkan nilai kunci-> <s: nama teks = "nama pengguna"/> <s: nama teks = "kata sandi"/> <s: nama teks = "email"/>
Selain itu, jika Anda mendapatkan nilai kunci dalam bentuk formulir, metode ini adalah sebagai berikut:
<!- Di mana nilai kunci adalah nilai kunci dalam file sumber daya, dan fungsinya adalah menambahkan nama label ke kotak input, yang sama dengan nilai atribut label. Namun, secara konstan, nilai kunci tidak dapat diperoleh dari file atribut. -> <S: TextField Name = "Login.UserName" Key = "UserName"> </s: TextField>
Perhatikan juga bahwa ketika konstanta <konstanta nama = "struts.ui.theme" value = "Simple"/> digunakan, nilai kunci dalam <s: textfield/> tidak dapat memperoleh nilai yang sesuai dari file atribut.
Halaman terakhir menunjukkan hasilnya sebagai berikut:
Dari file konfigurasi di atas, kita dapat melihat sumber nilai dari ketiga nilai ini. Dari ini, kita dapat melihat bahwa urutan pencarian file sumber daya adalah sebagai berikut:
Pertama, cari nilai kunci yang relevan dari Basename_Language_Country.properties. Jika tidak, cari nilai kunci yang relevan di Basename_Language.Properties. Jika tidak, cari nilai kunci yang relevan di Basename.Properties. Jika tidak, cari nilai kunci yang relevan. Jika tidak, itu akan ditampilkan sebagai nama.
3. Penggunaan placeholder dalam file atribut
Konten konfigurasi file properti adalah sebagai berikut:
UserName = Zhang San, {0}, {1}
Gunakan tag <s: param> nilai </s: param> untuk meneruskan parameter di jsp.
<S: nama teks = "nama pengguna"> <s: param> halo </s: param> <s: param> selamat datang! </s: param> </s: teks>
4. File sumber daya aplikasi beraksi
Untuk menggunakan file sumber daya yang beraksi, Anda perlu mewarisi kelas ActionsUpport. Kelas Actionsupport mengimplementasikan kedua antarmuka: TextProvider dan Localeprovider. TextProvider menyediakan metode untuk mendapatkan metode Nilai File Sumber Daya GetText (), sedangkan antarmuka LocalEprovider hanya memiliki satu metode getLocale () untuk mendapatkan lokal.
Ubah file konfigurasi info_zh_cn.properties:
username = zhang san, {0}, {1} usernameeRror = Nama pengguna tidak bisa kosong! Mohon konfirmasi!Beraksi, metode mendapatkan file properti adalah sebagai berikut:
this.getText ("usernameerror");Gunakan Placeholders dalam Tindakan untuk beroperasi, Kode ini adalah sebagai berikut:
this.getText ("username", string baru [] {"hello", "welcome"});5. File Sumber Daya Paket
Tindakan di bawah paket ini dan subpackage dapat mengakses file sumber daya. Penempatan berada di bawah paket tertentu, dan format penamaan adalah: package_language_country.properties. Dimana paket adalah format tetap. Paket file konfigurasi_zh_cn.properties adalah sebagai berikut:
nama pengguna = nama pengguna di bawah lingkup paket
Dalam tindakan di bawah paket, Anda dapat menggunakan gettext ("nama pengguna") untuk mendapatkannya.
6. File Sumber Daya dalam Lingkup Tindakan
Anda dapat menentukan file properti untuk tindakan terpisah, dan menempatkannya di direktori tingkat yang sama dengan suatu tindakan. Format namanya adalah
ActionName_language_country.properties
.
Konfigurasikan file properti dari ruang lingkup tindakan:
Nama pengguna = Nama pengguna dalam rentang aksi
Metode gettext ("username") juga digunakan dalam tindakan untuk mendapatkan nilainya.
7. Urutan pemuatan file sumber daya
Untuk penggunaan nilai getText (kunci) untuk tindakan, ketika ada kedua file properti dalam ruang lingkup tindakan, file properti dalam lingkup paket dan file properti global, pesanan pemuatan adalah sebagai berikut:
Pertama, apakah nilai kunci ada dalam file atribut dalam tindakan yang ditentukan. Jika ada, nilainya akan diambil. Jika tidak ada, maka cari apakah file atribut rentang paket dengan nilai kunci yang ditentukan ada di paket tingkat atas dari tindakan saat ini. Jika tidak ada, terus cari di paket level sebelumnya. Jika belum ditemukan, maka cari apakah nilai kunci yang ditentukan ada dalam file atribut global. Jika nilai kunci yang ditentukan ada, nilai yang sesuai dengan nilai kunci diambil. Jika tidak ada, standarnya adalah nilai kunci.
Selain itu, ketika ada beberapa file sumber daya dalam file atribut global, Anda perlu mencari di urutan Basename_Language_Country, Basename_Language, dan Basename.
8. Dapatkan file sumber daya di halaman
(1) Gunakan <s: i18n/> untuk mengakses file sumber daya.
Kodenya adalah sebagai berikut:
<!-Gunakan tag i18n untuk mendapatkan file atribut-> <!-Dapatkan file sumber daya dalam lingkup paket-> <s: i18n name = "com/struts/package"> <s: nama teks = "nama pengguna"> </s: Teks> </s: i18n> <!-Dapatkan file sumber daya dalam aksi-Teks> </s: i18n> <!-Dapatkan file sumber daya dalam aksi-Teks> </s: i18n> <!-Dapatkan file sumber daya dalam aksi-Text> </s: i18n> <! <S: nama teks = "nama pengguna"> </s: teks> </s: i18n>
(2) Penggunaan <fmt/>
JSTL mencakup tag internasionalisasi dan pemformatan. Menggunakan tag internasionalisasi memungkinkan halaman JSP untuk output ekspresi halaman dalam berbagai bahasa sesuai dengan area tempat pengunjung berada. Di sini Anda perlu menggunakan Maven untuk menambahkan paket toples ketergantungan. File konfigurasi adalah sebagai berikut:
<!-Memperkenalkan pustaka tag JSTL-> <dependency> <GroupId> jstl </proupid> <ArTifactId> JSTL </artifactid> <version> 1.2 </version> </dependency>
Gunakan tag FMT pada halaman JSP, dan kode aplikasi adalah sebagai berikut:
<!-Menggunakan tag jstl fmt-> <!-Mengatur lokasi akan menimpa keluhan yang disahkan oleh klien-> <fmt: setLocale value = "zh_cn" scope = "request"/> <!-Muat set sumber daya dan simpan dalam variabel elektronik. Basename adalah nama dasar. Jika ada dalam ruang lingkup paket, itu adalah com.struts.package, dan di bawah ruang lingkup aksi, itu adalah com.struts.service.loginservice-> <fmt: setBundle Basename = "info" scope = "request" var = "Basename"/> <fmt: pesan kunci = "nama username" sundle = "$" $ "$"/<fmt: pesan KUNCI = "username" sundle = "$" $ "$"/<fmt: pesan KUNCI = "Username" sundle = "$" $ "$"/BASEN "<fmt: pesan KUNCI =" USERNAME nama "Username =" $ "$" $ "$" <fmt: param value = "hello"/> <fmt: param value = "welcome"/> </fmt: message> <br/> <!-fmt: bundle set sumber daya yang hanya dapat diakses di tag body-> <!-file sumber daya dalam paket-> <fmt: bundel bowle baseName = "com.strakpack." </fmt: bundle> <!-File sumber daya di ruang lingkup aksi-> <fmt: bundle basename = "com.struts.service.loginservice"> <fmt: kunci pesan = "nama pengguna"/> </fmt: bundle>