Tạo ứng dụng web JSP hỗ trợ đa ngữ
Posted: 24/3/2011.
Một ứng dụng thể hiện được tính quốc tế hóa (Internationalization) là một trong những khả năng quan trọng để ứng dụng đó có thể được sử dụng rỗng rãi ở nhiều nơi.
Một ứng dụng thể hiện được tính quốc tế hóa (Internationalization) là một trong những khả năng quan trọng để ứng dụng đó có thể được sử dụng rỗng rãi ở nhiều nơi. Một trong những yếu tố của quốc tế hóa chính là tính đa ngữ cho một ứng dụng. Người sử dụng có khác nhau về ngôn ngữ, văn hóa nhưng vẫn có thể thao tác trên ứng dụng bằng ngôn ngữ của mình. Đặc biệt một ứng dụng được viết hoạt động trên mạng như web applications hay network based applications thì cần phải được cài đặt hỗ trợ đa ngữ.
Trong bài này sẽ giới thiệu cách sử dụng các class của java cung cấp sẵn trong java.util.* để cài đặt ứng dụng đa ngữ với các lớp: java.util.Locale; java.util.ResourceBundle;
File dữ liệu để chứa text của giao diện được đặt tên là: demoResource_en_US.properties, demoResource_vn_VN.properties.
Ứng dụng demo: Tạo trang đăng kí người dùng register_form.jsp (web application) có hỗ trợ thể hiện giao diện tiếng Anh và tiếng Việt.
Các bước triển khai như sau (sử dụng bộ công cụ Netbeans để phát triển):
- Bước 1: Tạo một dự án web application, sau đó chọn tomcat (web server khác cũng được) làm web server.
- Bước 2: Trong cửa sổ project, chọn thư mục source package rồi nhấn chuột phải chon new -> other thì sẽ hiện ra cửa sổ và chọn xuống dưới cùng để chọn mục other, phía bên phải của sổ chọn properties file.
Tiếp đó nhấn next và đặt tên file là demoResource_en_US. Một file mới được tạo, sau đó bạn nhập với nội dung sau vào:
- # File nay dung de chua cac key và giá trị của nó
- #phía bên phải là giá trị sẽ được load lên giao diện
- username=User Name
- Password=Password
- OK=Submit
- Cancel=Reset
- Phone=Phone
- Home_addr=Home Address
- Full_Name=Full Name
Làm bước tương tự và đặt file mới tên là demoResource_vn_VN. Sau đó nhập nội dung sau vào
- # File này chứa các key và tên hiển thị tiếng Việt
- # key phía trái phải trùng khớp với file trên. Giá trị bên phải # là phần dịch tiếng Việt
- username=Tài khoản
- Password=Mật khẩu
- OK=Đồng ý
- Cancel=Hủy bỏ
- Phone=Số ĐT
- Home_addr=Địa chỉ nhà
- Full_Name=Họ Tên
- Bước 3: Trong thư mục web pages của cửa sổ project. Chọn new rồi chọn jsp để tạo 1 trang jsp và đặt tên là register_form.jsp.
- Bước 4: mở file vừa tạo và nhập vào nội dung sau:
Mở đầu trang jsp nhập khai báo sau:
- <%@page Language="java" contentType="text/html" pageEncoding="UTF-8"%>
- <%@page import="java.util.*" %>
- "http://www.w3.org/TR/html4/loose.dtd">
Trong phần body nhập nội dung sau:
- <%
- Locale.setDefault(new Locale("vn","VN"));
- ResourceBundle resourcebundle = ResourceBundle.getBundle("demoResource_en_US");
- %>
- <form name="form1" action="/register_form.jsp">
- <table border="1">
- <tbody>
- <tr>
- <th><%= resourcebundle.getString("username") %></th>
- <th><input type="text" name="username"/> </th>
- </tr>
- <tr> <td><%= resourcebundle.getString("Password") %></td>
- <td><input type="password" name="password"/> </td>
- </tr>
- <tr>
- <td><%= resourcebundle.getString("Full_Name") %></td>
- <td><input type="text" name="Full Name"/> </td> </tr>
- <tr>
- <td><%= resourcebundle.getString("username") %></td>
- <td><input type="text" name="Email"/> </td>
- </tr>
- <tr>
- <td><%= resourcebundle.getString("Phone") %></td>
- <td><input type="text" name="Phone"/> </td>
- </tr>
- <tr>
- <td><%= resourcebundle.getString("Home_addr") %></td>
- <td><input type="text" name="Home_addr"/> </td>
- </tr>
- <tr>
- <td><input type="submit" value="<%= resourcebundle.getString("OK") %>"/> </td>
- <td><input type="reset" value="<%= resourcebundle.getString("Cancel") %>"/> </td>
- </tr>
- </tbody>
- </table>
- </form>
- </body>
- Giải thích:
1. Chú ý:
- <%
- Locale.setDefault(new Locale("vn","VN"));
- ResourceBundle resourcebundle =
- ResourceBundle.getBundle("demoResource_en_US ");
- %>
Dòng này chỉ ra locale là tiếng Việt, nước Việt Nam. Sử dụng ResourceBundle để nạp file properties đã tạo vào để tiến hành lấy các key và giá trị key hiển thị lên giao diện.
2. Chú ý:
- <th><%= resourcebundle.getString("username") %></th>
- <th><input type="text" name="username"/> </th>
Dòng này cho phép hiển thị giá trị của key có tên username trong file properties lên giao diện. Tương tự cho các dòng tiếp theo bên dưới.
3. Chú ý: Khi ta muốn đổi sang hiển thị tiếng Việt thì chỉ cần đổi lại ở dòng:
- ResourceBundle resourcebundle = ResourceBundle.getBundle("demoResource_vn_VN ");
Lúc này refresh lại trình duyệt thì ta sẽ load lại được giao diện tiếng Việt.
Sau đây là hình ảnh demo:
[Nghean-Aptech st]
Các tin mới:
Hướng dẫn tích hợp giao diện trang quản trị SB Admin 2 vào Laravel 5.8.
Hướng dẫn tích hợp Google ReCaptcha v2 vào Laravel bằng curl.
Học lập trình React JS trong vòng 5 phút.
Sử dụng trình soạn thảo CKeditor tích hợp CKFinder với Laravel.
Hướng dẫn cài đặt Apache, PHP, MySQL, PHPMyAdmin trên Windows 10 và cấu hình SendMail.
Các tin cũ hơn:
Tối ưu việc nạp ảnh với Lazyload.
Cách sử dụng thẻ Struts .
Phân đoạn bảng theo chiều dọc.
Tạo ActiveX và ứng dụng bằng VC++.
Tìm hiểu về cột IDENTITY.