I18nPemintas
Pemintas I18nInterceptor ialah komponen antarabangsa yang disediakan untuk aplikasi web Berikut ialah contoh yang digunakan dalam templat penanda percuma:
public void configInterceptor(Interceptorsa me. new I18nInterceptor());
}
// Kemudian anda boleh mendapatkan data antarabangsa melalui objek _res dalam freemarker
${_res.get("msg")}
Kod di atas dikonfigurasikan I18nInterceptor memintas permintaan tindakan , dan kemudian anda boleh mendapatkan data antarabangsa melalui objek bernama _res dalam fail templat penanda bebas Aliran kerja khusus I18nInterceptor adalah seperti berikut:
- l percubaan untuk lulus controller.getPara( "_locale") ke. dapatkan parameter locale, jika diperoleh, simpan ke cookie
- Jika controller.getPara("_locale") tidak mendapat nilai parameter, cuba hantar controller .getCookie("_locale") mendapat locale parameter
- Jika nilai parameter setempat masih tidak diperolehi dalam dua langkah di atas, gunakan nilai I18n.defaultLocale sebagai nilai lokale
- Gunakan tiga langkah sebelumnya Dapatkan nilai setempat, dapatkan objek Res melalui I18n.use(locale), dan hantar objek Res ke halaman untuk digunakan melalui controller.setAttr("_res", res)
- Jika I18nInterceptor.isSwitchView ialah nilai sebenar Ia juga akan mengubah nilai paparan render untuk mencapai penukaran keseluruhan fail templat Sila lihat kod sumber untuk butiran.
Dalam langkah di atas, nama pembolehubah "_locale" dan "_res" dalam I18nInterceptor boleh ditentukan apabila mencipta objek I18nInterceptor Jika tidak dinyatakan, nilai lalai akan digunakan. Anda juga boleh menyesuaikan fungsi yang lebih diperibadikan dengan mewarisi I18nInterceptor dan mengatasi getLocalPara, getResName dan getBaseName.
Dalam sesetengah sistem web, halaman memerlukan terlalu banyak teks antarabangsa, dan css dan html juga sangat berbeza disebabkan oleh pengantarabangsaan Untuk senario aplikasi ini, mula-mula buat terus beberapa set paparan antarabangsa dengan nama yang sama, dan kemudian paparan ini disimpan dalam subdirektori setempat Akhir sekali, pemintas I18nInterceptor digunakan untuk menukar pandangan secara dinamik mengikut tempat tempatan Daripada perlu menukar teks dalam paparan secara antarabangsa satu demi satu, anda hanya perlu menetapkan I18nInterceptor.isSwitchView kepada benar. menjimatkan masa.