Viết các portlet hỗ trợ đa ngôn ngữ

Bài viết trình bày thao tác cơ bản để viết các portlet đa ngôn ngữ trong Liferay Extension Environment

1 - Nguyên tắc cơ bản:

Không bao giờ viết các Key liên quan đến ngôn ngữ (title, message, label) một cách trực tiếp trong file jsp. Bạn hãy lưu tất cả các Key này trong file Language-ext.properties (đối với ngôn ngữ là English)

Đối với các ngôn ngữ khác bạn cũng lưu trong các file Language-ext_countrycode.properties (Lưu ý: dấu gạch dưới, underscore, chứ không phải dấu trừ, minus).
See also:ISO 3166 Codes (Countries)

Ví dụ cụ thể đối với một số ngôn ngữ thông dụng:

  • tiếng Việt: Language-ext_vn.properties
  • tiếng Đức: Language-ext_de.properties
Các file Language_ext.properties được lưu trữ trong thư mục: liferay\ext\ext-ejb\classes\content



2 - Format của file Language_ext.properties
Các file .properties có format vô cùng đơn giản như sau:
Key = value

Comment (ghi chú) bắt đầu bằng dấu thăng #

Ví dụ 1: File Language_ext.properties (English)
## This is the comment
## Portlet names
##

javax.portlet.title.EXT_1=Reports

## This is the comment
## Messages
##

view-reports=View Reports
product=Product


Ví dụ 2: File Language_ext_vn.properties (tiếng Việt)
## Đây là phần ghi chú
## Tên Portlet
##

javax.portlet.title.EXT_1=Báo cáo

## Đây là phần ghi chú
## Messages
##

view-reports=Xem báo cáo
product=Sản phẩm


Lưu ý: phần value không đặt trong dấu quote ("" hoặc '')



3 - Sử dụng (key,value) như thế nào trong file JSP:
Bây giờ chúng ta đã có danh sách các cặp (key,value) trong file .properties, mỗi lần cần lấy giá trị của Key trong file JSP, bạn sử dụng lệnh sau:

<%=LanguageUtil.get(pageContext, "Ở đây bạn đặt KEY")%>


Ví dụ 3: Tạo 1 Button View Report trong file JSP

<input class="portlet-form-button" type="submit"

value="<%=LanguageUtil.get(pageContext,"view-report")%>">

Chúc thành công !

Hiện có (3) phản hồi:

  • Nguyễn Quốc Anh [ lúc 21:02 6 tháng 7, 2009 ]  

    anh hướng dẫn giúp em 1 cách đầy đủ tạo 1 portlet đơn giản gọi được ra trong phần add application được không (ví dụ hello world chẳng hạn)

    và anh cho em hỏi khi muốn gọi ra database trong csdl (vidu thông tin của người sử dụng (trong mysql là "contact_" , "user_" )hiển thị ra portlet thì làm cách nào

    em có down được mấy tài liệu mà thấy họ hướng dẫn khó hiểu quá (Eng là chính)search trên mạng thì có mỗi trang này của anh là có vẻ đầy đủ nhất , khoảng 15 ngày nữa là có bài thuyết trinh mong anh giải đáp sớm được giúp em

  • Blackrose [ lúc 11:17 18 tháng 3, 2010 ]  

    Hi anh,
    Em đã thử với ngôn ngữ Tiếng Việt nhưng khi gõ trên Eclipse không save được và báo lỗi "Some characters cannot be mapped using "ISO-8859-1" character encoding." Vậy em làm sao để có thể hiển thị được tiếng Việt mà không bị lỗi font trên Liferay?
    Em phải cấu hình Eclipse và dùng bộ gõ nào ạ?

    Anh giúp em với vì em đang rất cần!

    Cảm ơn anh nhiều!

  • Nặc danh [ lúc 01:14 5 tháng 2, 2013 ]  

    I always emailed this web site post page to all my
    friends, for the reason that if like to read it next my links will too.
    My web-site ; comprar perfume