在ember.js中使用i18n在12小时和24小时之间转换

时间:2014-06-24 01:22:35

标签: ember.js internationalization ember-i18n

我想知道是否有办法使用i18n和ember.js在12小时和24小时之间进行转换?

I18n确实有DATE对象,下面描述了经络。但我不确定是否支持24小时和12小时之间的转换。

var DATE = { day_names: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], abbr_day_names: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], month_names: [null, "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], abbr_month_names: [null, "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], meridian: ["AM", "PM"] };

我已经将i18n用于我网站国际化的翻译部分。因此,有时候不需要额外的库会很好。

1 个答案:

答案 0 :(得分:0)

我最终使用单独的把手日期与I18n.l解决了在12到24小时之间选择的简化问题。然后我指定了这种格式,以便日期对象在translate.js

中以这种方式格式化

对于英语区域设置等,我使用12小时制

time: {
    formats: {
        short: '%-I:%M %p', // hh:mm tt
    },
}

对于挪威语,瑞典语等语言。我使用24小时制

time: {
    formats: {
         short: '%-H:%M', // hh:mm
    }
}

对于具有不同分隔符和经络的语言以及工作日的名称等。您还必须指定它们,而不是使用i18n.js文件中给出的默认DATE对象。

标准i18n-js中接受的格式为:

  • %a - 缩写的工作日名称(Sun)
  • %A - 完整的工作日名称 (星期日)%b - 缩写的月份名称(Jan)
  • %B - 完整月份名称(1月)
  • %c - 首选的本地日期和时间表示
  • %d - 月中的某一天(01..31)% - d - 月中的某一天(1..31)
  • %H - 一天中的小时,24小时制(00..23)
  • % - H - 一天中的小时,24小时制(0..23)
  • %I - 一天中的小时,12小时制(01..12)
  • % - I - 一天中的小时,12小时制(1..12)
  • %m - 一年中的某个月(01..12)
  • % - m - 一年中的一个月(1..12)
  • %M - 小时(00..59)
  • % - M - 小时(0..59)
  • %p - 经络指标(上午或下午)
  • %S - 秒钟(00..60)
  • % - S - 分秒(0..60)
  • %w - 星期几(星期日是0,0..6)
  • %y - 没有世纪的年份(00..99)
  • % - y - 没有世纪的年份(0..99)
  • %Y - 世纪年
  • %z - 时区偏移量(+0545)