如何在PrimeFaces的日历组件中启用简体中文语言环境?

时间:2013-12-17 08:42:10

标签: jsf primefaces calendar locale

我的JSF facelet看起来像这样:

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0  Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://xmlns.jcp.org/jsf/html"
      xmlns:p="http://primefaces.org/ui">
    <h:head>
        <title>Facelet Title</title>
    </h:head>
    <h:body>      
     <p:calendar mode="inline" 
                 locale="zh_CN" 
                 showButtonPanel="true" 
                 navigator="true" />
   </h:body> 
</html>

当我运行它时,渲染日历的语言是英语,而我希望语言更改为简体中文。我怎样才能做到这一点?

我的Primefaces版本是4.0,JSF版本是2.2。

2 个答案:

答案 0 :(得分:1)

PrimeFaces仅提供英文翻译,将javascript文件中的相应区域设置添加到您的应用程序,以支持可以本地化的组件的更多区域设置,例如日历。

PrimeFaces.locales['zh_CN'] = {
   closeText: '关闭',
   prevText: '上个月',
   nextText: '下个月',
   currentText: '今天',
   monthNames: ['一月','二月','三月','四月','五月','六月','七月','八月','九月','十月','十一月','十二月'],
   monthNamesShort: ['一月','二月','三月','四月','五月','六月','七月','八月','九月','十月','十一月','十二月'],
   dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'],
   dayNamesShort: ['日','一','二','三','四','五','六'],
   dayNamesMin: ['日','一','二','三','四','五','六'],
   weekHeader: '周',
   firstDay: 1,
   isRTL: false,
   showMonthAfterYear: true,
   yearSuffix: '', // 年
   timeOnlyTitle: '仅时间',
   timeText: '时间',
   hourText: '时',
   minuteText: '分',
   secondText: '秒',
   ampm: false,
   month: '月',
   week: '周',
   day: '日',
   allDayText : '全天' };

将上述内容包含在文件中,我们称之为calendarLabels_zh_CN.js

然后

<h:outputScript name="js/calendarLabels_zh_CN.js"/>

More information

答案 1 :(得分:0)

经过多次尝试,包括target="head"一次,我找到了类似Primefaces Locales问题的正确答案:将Javascript代码放在face </h:body>标记之前的facelet文件的末尾。

我正在使用PrimeFaces 4.0和JSF 2.1。