Rumah  >  Artikel  >  Java  >  Bagaimanakah Java Servlet menyokong pengantarabangsaan?

Bagaimanakah Java Servlet menyokong pengantarabangsaan?

PHPz
PHPzasal
2024-04-16 14:06:02529semak imbas

Dalam Java Servlet, pengantarabangsaan dicapai dengan menggunakan kumpulan sumber antarabangsa dan kelas Tempatan Langkah-langkah khusus adalah seperti berikut: Buat berkas sumber antarabangsa (.properties files) untuk menyimpan bahasa berbeza (_kod bahasa) dan negara (kod _negara). teks terjemahan. Gunakan kelas Tempatan untuk mendapatkan tetapan tempat semasa. Muatkan berkas sumber yang betul melalui ResourceBundle.getBundle. Gunakan bundle.getString untuk mendapatkan teks terjemahan untuk kunci yang sepadan. Tetapkan tempat lalai melalui Locale.setDefault. Gunakan request.getLocale untuk mendapatkan tempat yang diminta. Gunakan ungkapan EL untuk memaparkan teks terjemahan dalam paparan.

Java Servlet如何支持国际化?

Cara menyokong pengantarabangsaan dalam Java Servlets

Pengenalan

Pengantarabangsaan ialah proses membuat aplikasi menyokong pelbagai bahasa dan budaya. Dalam Java Servlets, pengantarabangsaan dilaksanakan menggunakan himpunan sumber antarabangsa dan kelas Locale. Locale 类来实现。

国际化资源束

国际化资源束是一组翻译好的字符串,用于不同语言的文本。它们以 .properties 文件的形式存储,文件名遵循以下格式:[基本文件名]_[语言代码]_[国家代码].properties。例如,一个包含英文文本的资源束可以命名为 messages_en_GB.properties

创建资源束

要创建一个资源束,请按照以下步骤操作:

  1. 创建一个 .properties 文件。
  2. 使用以下语法为每个字符串添加键值对:
KEY=VALUE
  1. 为不同的语言和国家创建额外的资源束,使用适当的文件名。

实例

下面是一个包含英语和西班牙语文本的资源束示例:

// messages_en_GB.properties
welcome=Welcome
username=Username

// messages_es_ES.properties
welcome=Bienvenido
username=Nombre de usuario

使用 Locale

Locale 类表示特定语言和国家的设置。它用于从资源束中获取正确翻译的字符串。

读取资源束

要读取资源束,请使用以下代码:

ResourceBundle bundle = ResourceBundle.getBundle("messages", Locale.getDefault());

这将加载与当前 Locale 匹配的资源束。

获取翻译的字符串

要获取翻译的字符串,请使用以下代码:

String welcomeText = bundle.getString("welcome");

这将检索与指定键对应的翻译的字符串。

实战案例

1. Servlet 初始化

在 Servlet 初始化方法中,我们可以设置默认 Locale

@Override
public void init() {
    Locale defaultLocale = Locale.getDefault();
    Locale.setDefault(defaultLocale);
}

2. 响应请求

在响应请求时,我们可以根据请求的 Locale

Ikatan sumber pengantarabangsaan

Ikatan sumber pengantarabangsaan ialah set rentetan terjemahan untuk teks dalam bahasa yang berbeza. Ia disimpan sebagai fail .properties dengan nama fail mengikut format: [nama fail asas]_[kod bahasa]_[kod negara].properties. Sebagai contoh, himpunan sumber yang mengandungi teks bahasa Inggeris boleh dinamakan messages_en_GB.properties.

Mencipta Himpunan Sumber

🎜🎜Untuk mencipta himpunan sumber, ikut langkah berikut: 🎜
  1. Buat fail .properties.
  2. Tambah pasangan nilai kunci untuk setiap rentetan menggunakan sintaks berikut:
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) {
    ResourceBundle bundle = ResourceBundle.getBundle("messages", request.getLocale());
    request.setAttribute("welcomeText", bundle.getString("welcome"));
}
  1. Buat sumber tambahan untuk bahasa dan negara yang berbeza Bundle, menggunakan nama fail yang sesuai.
🎜🎜Instances🎜🎜🎜Berikut ialah contoh himpunan sumber yang mengandungi teks Inggeris dan Sepanyol: 🎜
<h1>${welcomeText}</h1>
🎜🎜Menggunakan kelas Locale 🎜🎜🎜Locale Kelas mewakili tetapan khusus bahasa dan negara. Ia digunakan untuk mendapatkan rentetan diterjemahkan dengan betul daripada himpunan sumber. 🎜🎜🎜Read Resource Bundle🎜🎜🎜Untuk membaca resource bundle, gunakan kod berikut: 🎜rrreee🎜Ini akan memuatkan resource bundle yang sepadan dengan <code>Locale semasa. 🎜🎜🎜Dapatkan rentetan terjemahan🎜🎜🎜Untuk mendapatkan rentetan yang diterjemahkan, gunakan kod berikut: 🎜rrreee🎜Ini akan mendapatkan semula rentetan terjemahan yang sepadan dengan kunci yang ditentukan. 🎜🎜🎜 Praktikal Case🎜🎜🎜🎜1. menjawab permintaan , kita boleh mendapatkan rentetan yang diterjemahkan mengikut Locale yang diminta: 🎜rrreee🎜🎜3 Paparan paparan 🎜🎜🎜Dalam paparan JSP, kita boleh menggunakan ungkapan EL untuk memaparkan rentetan yang diterjemahkan. : 🎜rrreee 🎜Ini akan memaparkan teks "Selamat Datang" dalam bahasa yang berbeza. 🎜

Atas ialah kandungan terperinci Bagaimanakah Java Servlet menyokong pengantarabangsaan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn