在我的多语言项目中,应用程序以两种语言查看:英语和法语。我有一个日期选择日历来插入日期。像:
<p:calendar id="doj" required="true" yearRange="c-100:c+100"
value="#{userdetailsController.currentlyLoggedUser.doj}"
styleClass="calendar" showOn="button" label="#{prop['tum.doj.label']}"
navigator="true" locale="#{localeController.locale}"
pattern="dd-MMM-yyyy">
</p:calendar>
选择区域设置en
时,<p:calendar>
正常工作。单击日历按钮可打开日期选择器日历。但是,当选择区域设置fr
时,<p:calendar>
按钮不起作用。但是,如果我删除模式或制作pattern="dd-MMMM-yyyy"
,那么它可以正常工作。但我希望以dd-MMM-yyyy
模式显示日期。
请建议! 提前致谢。 我在我的应用程序中使用primefaces3.5。
答案 0 :(得分:1)
我试图复制错误但没有成功。但是,我注意到,当从en更改为fr语言环境时,我有 08-janv.-2013 而不是 08-Jan-2013 。
以下是我使用的示例代码,也许它会对您有帮助。
ViewScoped bean的属性
private String locale = "en";
private Date date = new Date();
视图
<p:growl showDetail="true" autoUpdate="true" />
<h:form>
<p:selectOneMenu value="#{viewMBean.locale}">
<p:ajax update="doj" />
<f:selectItem itemLabel="FR" itemValue="fr" />
<f:selectItem itemLabel="EN" itemValue="en" />
</p:selectOneMenu>
<p:calendar id="doj" required="true" yearRange="c-100:c+100" value="#{viewMBean.date}"
styleClass="calendar" showOn="button" pattern="dd-MMM-yyyy"
navigator="true" locale="#{viewMBean.locale}" />
<p:commandButton value="Submit" />
</h:form>
<script>
PrimeFaces.locales ['fr'] = {
closeText: 'Fermer',
prevText: 'Précédent',
nextText: 'Suivant',
monthNames: ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre'],
monthNamesShort: ['Jan', 'Fév', 'Mar', 'Avr', 'Mai', 'Jun', 'Jul', 'Aoû', 'Sep', 'Oct', 'Nov', 'Déc'],
dayNames: ['Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi'],
dayNamesShort: ['Dim', 'Lun', 'Mar', 'Mer', 'Jeu', 'Ven', 'Sam'],
dayNamesMin: ['D', 'L', 'M', 'M', 'J', 'V', 'S'],
weekHeader: 'Semaine',
firstDay: 1,
isRTL: false,
showMonthAfterYear: false,
yearSuffix: '',
timeOnlyTitle: 'Choisir l\'heure',
timeText: 'Heure',
hourText: 'Heures',
minuteText: 'Minutes',
secondText: 'Secondes',
currentText: 'Maintenant',
ampm: false,
month: 'Mois',
week: 'Semaine',
day: 'Jour',
allDayText: 'Toute la journée'
};
</script>