Buat folder bernama i18n di bawah sumber laluan kelas projek dan tulis fail pengantarabangsaan berbilang bahasa yang sepadan login.properties dan login_zh_CN dalam folder seperti yang diperlukan dan login_en_US.properties fail
login.properties
login.tip=Sila log masuk
log masuk.nama pengguna=nama pengguna
log masuk.kata laluan=kata laluan
log masuk.rememberme=Remember saya
login.button=Log Masuk
login_zh_CN.properties
login.tip=Sila log masuk
login.username=Nama Pengguna
log masuk .password=Password
login.rememberme=Ingat saya
login.button=Log masuk
login_en_US.properties
petua=Sila log masuk
login.username=Username
login.password=Kata Laluan
login.rememberme=Ingat saya
login.button=Login
login.properties Ia adalah bahasa lalai yang disesuaikan fail konfigurasi, login_zh_CN.properties ialah fail pengantarabangsaan Cina tersuai, login_en_US.properties ialah fail pengantarabangsaan Inggeris tersuai
Perlu diingat bahawa fail konfigurasi bahasa yang diiktiraf oleh Spring Boot secara lalai ialah mesej kelas.properties di bawah sumber laluan; nama fail pengantarabangsaan bahasa lain mesti dinamakan dengan ketat dalam bentuk "nama awalan fail kod bahasa kod negara.properties"
Dalam contoh ini, ia disesuaikan di bawah sumber laluan kelas projek An Pakej i18n dicipta untuk konfigurasi bersatu dan pengurusan fail konfigurasi berbilang bahasa, dan nama fail konfigurasi bahasa lalai projek disesuaikan sebagai login.properties Oleh itu, nama asas fail antarabangsa mesti dikonfigurasikan dalam fail konfigurasi global projek untuk dirujuk fail pengantarabangsaan tersuai
Buka fail konfigurasi global application.properties dan tambahkan tetapan nama asas fail antarabangsa dalam fail tersebut: Fail
# Konfigurasikan nama asas fail antarabangsa
spring.messages.basename=i18n.login
spring.messages.basename=i18n.login" menetapkan nama asas fail antarabangsa tersuai. Antaranya, i18n bermaksud bahawa fail antarabangsa adalah relatif Lokasi sumber laluan kelas projek, log masuk mewakili nama awalan fail berbilang bahasa Jika pembangun mengikuti sepenuhnya mekanisme pengenalan lalai Spring Boot dan menulis fail antarabangsa seperti mesej .properties di bawah sumber laluan kelas projek, nama asas fail antarabangsa boleh ditinggalkan Konfigurasi
Selepas melengkapkan penulisan dan konfigurasi berbilang bahasa. pengantarabangsaan dalam langkah sebelumnya, anda boleh secara rasmi menggabungkan atribut berkaitan templat Thymeleaf di halaman hujung hadapan untuk pengantarabangsaan Walau bagaimanapun, pelaksanaan ini menggunakan maklumat bahasa dalam pengepala permintaan (maklumat bahasa pelayar) untuk menukar bahasa secara lalai . Sesetengah projek juga menyediakan fungsi penukaran bahasa manual, yang memerlukan penghuraian serantau tersuai
Buat pakej bernama com.lagou.config dalam projek dan buat kelas konfigurasi tersuai MyLocalResovel
rreeeKelas konfigurasi penyelesai kawasan tersuai MyLocalResolver melaksanakan antara muka LocaleResolver dan menulis semula kaedah resolveLocale() untuk resolusi bahasa tersuai Akhirnya, anotasi @Bean digunakan untuk mendaftarkan kelas konfigurasi semasa sebagai LocaleResolver dalam bekas Spring Bean, supaya komponen LocaleResolver lalai boleh ditindih Dalam kaedah resolveLocale(), parameter permintaan l dan parameter pengepala permintaan diperoleh mengikut keperluan yang berbeza (penukaran manual maklumat bahasa. penukaran maklumat bahasa secara automatik mengikut tajuk permintaan pelayar). maklumat pengepala permintaan Perlu diambil perhatian bahawa, Apabila menukar bahasa parameter permintaan l secara manual, garis bawah "_" digunakan untuk memotong, yang ditentukan oleh format konfigurasi berbilang bahasa fail (seperti login_zh_CN.properties); semasa dalam bahasa parameter pengepala permintaan Accept-Language Apabila menukar pemasangan secara automatik, tanda sempang "-" digunakan untuk memotong, yang ditentukan oleh gaya maklumat pengepala permintaan yang dihantar oleh penyemak imbas ( contohnya, Accept-Language: en-US,en;q=0.9,zh-CN ;q=0.8,zh;q=0.7)4. Untuk pengantarabangsaan halaman, gunakan untuk membuka halaman log masuk pengguna login.html dalam folder templat templat projek, dan gabungkannya dengan enjin templat Thymeleaf untuk melaksanakan fungsi pengantarabangsaanpackage com.lagou.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.util.StringUtils; import org.springframework.web.servlet.LocaleResolver; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.Locale; @Configuration public class MyLocalResolver implements LocaleResolver { // 完成自定义 区域解析方式 @Override public Locale resolveLocale(HttpServletRequest request) { // 获取页面手动传递的语言参数值 : zh_CN en_US "" String l = request.getParameter("l"); Locale locale = null; if (!StringUtils.isEmpty(l)) { // 如果参数不为空,就根据参数值,进行手动语言切换 String[] s = l.split("_"); locale = new Locale(s[0], s[1]); } else { // Accept-Language: zh-CN,zh;q=0.9 String header = request.getHeader("Accept-Language"); String[] split = header.split(","); String[] split1 = split[0].split("-"); locale = new Locale(split1[0], split1[1]); } return locale; } @Override public void setLocale(HttpServletRequest request, HttpServletResponse response, Locale locale) { } // 将自定义的LocaleResolver重新注册成一个类型为LocaleResolver的Bean组件 @Bean public LocaleResolver localeResolver() { return new MyLocalResolver(); } }Gunakan # {} ungkapan mesej templat Thymeleaf Sediakan beberapa maklumat untuk paparan antarabangsa. Apabila menetapkan pengantarabangsaan rememberme, rememberme yang perlu diantarabangsakan berada di luar teg input, jadi ungkapan sebaris [[#login.rememberme}]] digunakan di sini untuk mendapatkan maklumat log masuk.rememberme secara dinamik dalam fail pengantarabangsaan. Selain itu, pautan berfungsi untuk penukaran bahasa manual antara bahasa Cina dan bahasa Inggeris disediakan pada penghujung borang Apabila pautan diklik, parameter bahasa kebangsaan akan dibawa untuk meminta lompatan ke laluan "/" dan bahasa manual. penukaran akan dilakukan melalui penghurai serantau tersuai di latar belakang. Nota: Pemprosesan lapisan kawalan pengawal ditinggalkan 5. Ujian kesan integrasi Selepas mengklik
Apabila mengklik pautan "Bahasa Inggeris" untuk menukar pengantarabangsaan bahasa, parameter "l=zh_CN" yang ditentukan dibawa Kaedah penghuraian dalam kelas konfigurasi parser wilayah tersuai MyLocalResovel akan berdasarkan pada Sesuaikan peraturan untuk penukaran bahasa, dengan itu mencapai kesan penukaran bahasa antarabangsa secara manual
Atas ialah kandungan terperinci Bagaimana untuk mengkonfigurasi halaman pengantarabangsaan dalam Spring boot Thymeleaf. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!