我正在使用PrimeFaces Calendar组件并希望设置Locale,我使用的是Primefaces 5.2,JSF 2.2我的代码是:
principal.xhtml
<h:head>
<link rel="shortcut icon" type="image/x-icon" href="/resources/images/logoconsorcio.ico"/>
<f:facet name="first">
<h:outputStylesheet name="css/default.css"/>
<h:outputScript name="js/scripts.js" />
<h:outputScript library="js" name="calendar_es.js" />
<title>Consorcio JM</title>
</f:facet>
</h:head>
<h:body>
<p:layout fullPage="true">
</p:layout>
....
</h:body>
calendar_es.js在web根目录的资源文件夹中设置
PrimeFaces.locales['es'] = {
closeText: 'Cerrar',
prevText: 'Anterior',
nextText: 'Siguiente',
monthNames: ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'],
monthNamesShort: ['Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago', 'Sep', 'Oct', 'Nov', 'Dic'],
dayNames: ['Domingo', 'Lunes', 'Martes', 'Miércoles', 'Jueves', 'Viernes', 'Sábado'],
dayNamesShort: ['Dom', 'Lun', 'Mar', 'Mie', 'Jue', 'Vie', 'Sab'],
dayNamesMin: ['D', 'L', 'M', 'Mi', 'J', 'V', 'S'],
weekHeader: 'Semana',
firstDay: 1,
isRTL: false,
showMonthAfterYear: false,
yearSuffix: '',
timeOnlyTitle: 'Sólo hora',
timeText: 'Tiempo',
hourText: 'Hora',
minuteText: 'Minuto',
secondText: 'Segundo',
currentText: 'Fecha actual',
ampm: false,
month: 'Mes',
week: 'Semana',
day: 'Día',
allDayText: 'Todo el día'
};
我的日历片段是:
<p:calendar showOn="button" pattern="dd/MM/yyyy" value="#{comprobanteBean.cpVista.fecha}"
styleClass="dateTimeFieldRP" required="true" mask="true" locale="es"/>
但它不起作用,因此日历是英文的。
谢谢大家。
答案 0 :(得分:1)
这是一个古老的问题,但是最近我遇到了同样的问题。
就我而言,JavaScript PrimeFaces.locales['es'] = {...}
位于JQuery ready
事件内部。
我必须将其移出此事件,因为它是在组件初始化后进行处理的。