【问题标题】:PrimeFaces locale not workingPrimeFaces 语言环境不起作用
【发布时间】:2014-01-17 11:53:27
【问题描述】:

我正在使用 PrimeFaces 日历组件。但是我想用土耳其语显示时间和月份。我写过这样的代码;

< p:calendar effect="slideDown" navigator="true"  locale="tr"
                        yearRange="1975" pattern="dd/mm/yyyy HH:mm"/>

但是又显示英文了,是什么问题?

【问题讨论】:

  • 你试过locale="tr_TR"吗?
  • 是的,我试过但没用。

标签: jsf-2 primefaces


【解决方案1】:

Primefaces 本身只为calendar 等可本地化组件提供英文翻译。如果您需要其他翻译,您必须通过 JavaScript 手动将它们包含到您的 JSF 中。

将以下 JavaScript 添加到您的 JSF 视图中:

<script type="text/javascript">  
    PrimeFaces.locales['tr'] = {
    closeText: 'kapat',
    prevText: 'geri',
    nextText: 'ileri',
    currentText: 'bugün',
    monthNames: ['Ocak','Şubat','Mart','Nisan','Mayıs','Haziran','Temmuz','Ağustos','Eylül','Ekim','Kasım','Aralık'],
    monthNamesShort: ['Oca','Şub','Mar','Nis','May','Haz', 'Tem','Ağu','Eyl','Eki','Kas','Ara'],
    dayNames: ['Pazar','Pazartesi','Salı','Çarşamba','Perşembe','Cuma','Cumartesi'],
    dayNamesShort: ['Pz','Pt','Sa','Ça','Pe','Cu','Ct'],
    dayNamesMin: ['Pz','Pt','Sa','Ça','Pe','Cu','Ct'],
    weekHeader: 'Hf',
    firstDay: 1,
    isRTL: false,
    showMonthAfterYear: false,
    yearSuffix: '',
    timeOnlyTitle: 'Zaman Seçiniz',
    timeText: 'Zaman',
    hourText: 'Saat',
    minuteText: 'Dakika',
    secondText: 'Saniye',
    ampm: false,
    month: 'Ay',
    week: 'Hafta',
    day: 'Gün',
    allDayText : 'Tüm Gün'
};
</script>  

另请参阅: http://code.google.com/p/primefaces/wiki/PrimeFacesLocales

编辑:
PrimeFaces 已移至 github,因此这里是新 URL(尽管旧 URL 到现在仍然可用):
https://github.com/primefaces/primefaces/wiki/Locales

【讨论】:

    【解决方案2】:
    1. 在您的resources/js 文件夹中创建一个文件primefaces_i18n.js
    2. 复制此gist 并将其粘贴到其中。
    3. 然后你可以像这样在你的页面中导入它:

      <h:outputScript library="js" name="primefaces_i18n.js" />
      
    4. 定期检查 PrimeFacesLocales 以获取翻译更新

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-08
      • 2018-09-22
      相关资源
      最近更新 更多