Primefaces日历设置区域设置

时间:2015-11-17 22:30:32

标签: jsf primefaces

我正在使用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"/>

但它不起作用,因此日历是英文的。

谢谢大家。

1 个答案:

答案 0 :(得分:1)

这是一个古老的问题,但是最近我遇到了同样的问题。 就我而言,JavaScript PrimeFaces.locales['es'] = {...}位于JQuery ready事件内部。

我必须将其移出此事件,因为它是在组件初始化后进行处理的。