http://vietjack.com/struts_2/index.jsp Copyright © vietjack.com Đa ngơn ngữ (i18n) Struts Internationalization (i18n) tiến trình triển khai sản phẩm dịch vụ để chúng thích nghi với locale culture cụ thể Internationalization viết tắt thành i18n từ bắt đầu với chữ i, kết thúc với chữ n có 18 chữ Struts hỗ trợ i18n thông qua resource bunble, interceptor tab library Giới thiệu i18n Interceptor i18n Interceptor cung cấp hỗ trợ đa ngôn ngữ cho ứng dụng bạn Nó tìm thấy defaultStack, bạn khơng cần xác định cách tường minh i18n Interceptor có tham số sau: Ten_tham_so: xác định tên tham số HTTP request Theo mặc định, thiết lập request_locale Ten_thuoc_tinh: xác định tên session key để lưu trữ locale Theo mặc định, WW_TRANS_I18N_LOCALE Giới thiệu global.properties file Để phát triển ứng dụng bạn nhiều ngôn ngữ, bạn cần phải trì nhiều property file tương ứng với language/locale định nghĩa nội dung theo cách cặp key/value Ví dụ, bạn muốn phát triển ứng dụng cho US (mặc định), Tây Ba Nha Pháp bạn phải tạo properties file Trong chương sử dụng global.properties, tất nhiên bạn sử dụng nhiều property file khác để tách riêng kiểu thông điệp khác global.properties: thiết lập mặc định cho US global_fr.properties: sử dụng cho Franch locale global_es.properties: sử dụng cho Spanish locale Truy cập Message Resource Có nhiều cách khác để truy cập Message Resource, bao gồm getText, text tag, thuộc tính key UI tags, i18n tag Sau giới thiệu ngắn gọn chúng: Để hiển thị i18n text, sử dụng lời gọi tới getText thẻ property, thẻ khác UI tags, sau: http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/struts_2/index.jsp Copyright © vietjack.com Thẻ text lấy thông điệp từ resource bundle mặc định: Thẻ i18n đẩy resource bundle lên Value Stack Các thẻ khác bên phạm vi thẻ i18n hiển thị thơng điệp từ resource bundle đó: Thuộc tính key hầu hết UI tags sử dụng để thu nhận thông điệp từ resource bundle Ví dụ i18n Struts Mục tiêu tạo trang index.jsp hiển thị nhiều ngơn ngữ Bây file viết sau: Employee Form ho tro Da ngon ngu en http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/struts_2/index.jsp Copyright © vietjack.com es fr English Spanish France Chúng ta tạo success.jsp mà triệu hồi action định nghĩa SUCCESS Success http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/struts_2/index.jsp Copyright © vietjack.com Tiếp theo cần tạo hai action sau Một action cho Locale hiển thị index.jsp file ngôn ngữ khác Một action khác để đệ trình form cho Cả hai action trả SUCCESS, nhận action khác dựa giá trị trả Action cho Locale: package com.vietjack.struts2; import com.opensymphony.xwork2.ActionSupport; public class Locale extends ActionSupport{ public String execute() { return SUCCESS; } } Action thứ hai để đệ trình form cho nó: package com.vietjack.struts2; import com.opensymphony.xwork2.ActionSupport; public class Employee extends ActionSupport{ private String name; private int age; public String execute() { return SUCCESS; } http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/struts_2/index.jsp Copyright © vietjack.com public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } } Bây tạo ba global.properties file đặt CLASSPATH: global.properties global.name = Name global.age = Age global.submit = Submit global.heading = Select Locale global.success = Successfully authenticated global_fr.properties global.name = Nom d'utilisateur global.age = l'âge global.submit = Soumettre des global.heading = Sé lectionnez Local global.success = Authentifi é avec succès global_es.properties global.name = Nombre de usuario global.age = Edad global.submit = Presentar global.heading = seleccionar la configuracion regional http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/struts_2/index.jsp Copyright © vietjack.com global.success = Autenticado correctamente Tiếp theo, tạo struts.xml với hai action sau: /index.jsp /success.jsp /index.jsp Và nội dung web.xml là: Struts 2 index.jsp struts2 org.apache.struts2.dispatcher.FilterDispatcher struts2 /* Cuối cùng, bạn chạy thử ứng dụng Theo mặc định hiển thị ngơn ngữ US, bạn lựa chọn ngơn ngữ khác với Spanish France, bạn lựa trọn số chúng ngơn ngữ tương ứng áp dụng cho ứng dụng http://vietjack.com/ Trang chia sẻ học online miễn phí Page ... "http:/ /struts. apache.org/dtds /struts- 2. 0.dtd"> index.jsp struts2 org.apache .struts2 .dispatcher.FilterDispatcher