【问题标题】:HTML5 correctly detecting languageHTML5 正确检测语言
【发布时间】:2013-12-28 12:30:20
【问题描述】:

我已经阅读了大约 200 个关于 javascript 中浏览器语言检测的链接,除了默认的 html5 输入类型之外,似乎没有什么能很好地满足我的要求。

例如:

  • 我将系统设置为 en-GB 并且我的输入类型日期显示为 dd/mm/yyyy
  • 我将系统设置为 en-US 并且我的输入类型日期显示为 mm/dd/yyyy

使用上述任一设置:

  • 当我查询 navigator.language 时,它​​总是说 en-US
  • 当我使用标题检查时,它总是显示 en-GB
  • 我似乎没有 navigator.globalisation,所以这些东西都不起作用。
  • 我的用户代理没有语言组件

在 ios safari、ios chrome、ie11、mac chrome、windows chrome、android chrome 中唯一一致的是日期输入始终正确显示系统格式。

HTML5 是如何做到的,我该如何利用它?或者这是你在 HTML5 中不能做的另一件事,比如触发内置验证器?

【问题讨论】:

    标签: javascript html browser internationalization


    【解决方案1】:

    HTML5 是如何做到的

    这是建议的实现方式:

    鼓励浏览器根据输入元素的语言或用户首选的区域设置的约定使用显示日期、时间和数字的用户界面。使用页面的区域设置将确保与页面提供的数据保持一致。

    这意味着使用了输入元素的lang 属性或浏览器设置。

    我该如何利用它?

    可以使用一组 CSS 类、lang 属性、LESS/SASS 扩展和相关的 JavaScript 事件来重新设置 input 元素的样式,使其与超链接相似并表现得像超链接。

    未来的选择是 Web 组件:

    Can Web Components be used to create custom input elements?

    参考文献

    【讨论】:

      猜你喜欢
      • 2019-06-02
      • 1970-01-01
      • 2013-10-18
      • 1970-01-01
      • 2011-12-30
      • 1970-01-01
      • 2013-06-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多