我的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。
答案 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"/>
答案 1 :(得分:0)
经过多次尝试,包括target="head"
一次,我找到了类似Primefaces Locales问题的正确答案:将Javascript代码放在face </h:body>
标记之前的facelet文件的末尾。
我正在使用PrimeFaces 4.0和JSF 2.1。