【问题标题】:Angular Timepicker doesn't choose AM/PM or 24h clock based on localeAngular Timepicker 不会根据语言环境选择 AM/PM 或 24 小时制
【发布时间】:2014-11-25 15:44:18
【问题描述】:

我的浏览器设置为英语,但我希望我的应用程序尊重我在那里选择的任何语言设置,如果它们不同,则忽略浏览器设置。它大部分时间都有效,但我无法让它完全适用于 Angular UI Bootstrap 工具集中的 timepicker 指令。我的页面上有一个,声明如下:

<timepicker ng-model="myThing.date" /> <!-- yes, really like this. no other attrs -->

这样显示:

显然它选择了语言环境,因为它确实将“AM”翻译成“fm”(瑞典语中“förmiddag”的缩写,我目前在应用程序中选择的语言)。但是,在瑞典,我们不使用子午线时间格式——我想要一个 24 小时制的时钟。我可以通过在指令上设置show-meridian="false" 来获得它,但是当用户将语言设置为英语时,我将没有 AM/PM 时钟。

我已经加载了i18n/angular-locale_sv-se.js(在加载 Angular UI Bootstrap 库之前)并在我的 ng 应用程序配置中运行 $translateProvider.preferredLanguage('sv');,以在角度翻译中设置语言环境,但似乎都无法正常工作。

如何告诉时间选择器根据我选择的区域设置正确使用 AM/PM 或 24 小时制?

【问题讨论】:

  • 我认为你能做到的唯一方法是拥有一个需要 AM/PM 的语言环境数组,并且如果当前语言环境在该数组中,则 show-meridian 为真。
  • @camden_kid: 唉...如果是这样的话,自然的后续问题当然是“是否有一个 timepicker 小部件可以本机处理这个问题”?
  • 我还没有遇到过。谷歌搜索“使用 am pm 的国家”有一些有趣的信息,但令人叹息。

标签: angularjs twitter-bootstrap internationalization


【解决方案1】:

我在 timepicker 上有类似的问题,我想保留 AM/PM,即使我在浏览器中选择日语区域设置,但将其转换为所有其他语言。

我发现的选项是 angular-locale_{lang_code}.js 文件中的硬编码 AM/PM 但这是第 3 方 angular 库,将来可能会被修改,所以我们需要跟踪这个变化

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多