2010-06-03 92 views
35

我知道,在写这篇文章的时候只有Opera支持有没有办法本地化输入类型=“日期”,在HTML5

<input type="date" name="mydate"> 

,也许我尝试本地化此领域的浏览器的用户界面已经遇到了挫折感,因为像本地化这样的细微差别尚未包含在它们的实现中,但我甚至没有在HTML5规范中看到它的提及。应该指定本地化吗?我应该在父元素上执行lang =“fr”吗?

上有问题的网站实施的一些注意事项:

  • 本地化(语言),明确由用户挑选,因为他们是在管理多种语言的数据,这是不合理的期望,用户的浏览器Chrome浏览器正在查看的语言中,或者浏览器正在提供所需的语言请求标题。
  • 我想确定,如果页面以法语呈现,那么浏览器chrome提供的日期选择器将显示对法语有意义的选项。
  • 的计划是回落到jQueryUI的为不支持类型=“日期”浏览器,我将使用Dive into HTML 5

回答

13

提供的检测机制,据我所知,后面我们在做群众的思想Opera(完全公开:我为他们工作)是日期选择器几乎是Chrome浏览器本地控件的扩展。因此,它将根据浏览器的语言进行本地化,而不是正在查看的页面的语言。

+4

3问题:1.这是不和谐的用户具有切换语言(铬含量VS)为日期选择器。 2.数据将以语言环境呈现给页面,铬(英文模式)会理解法语,Juin意味着六月吗? 3.服务器端会希望以某种语言环境格式化数据并进行相应的解析,如果日期选择器格式化预期语言环境的日期,则服务器会误解它。 这些问题不限于日期。数字呢?法语使用逗号而不是小数。铬将如何处理? 该方法似乎目光短浅。 – lambacck 2010-06-04 17:19:47

+5

1它的行为就像所有浏览器中的文件类型输入一样......也根据浏览器语言环境而不是页面进行本地化。我可以看到赞成和反对这个论点。 2并不完全明白你的意思 - 假设这与3相关,无论如何显示日期选择器的UI,最终结果(然后传递给服务器)始终采用相同的ISO格式,无论用户界面显示的语言。没有尝试数字的事情(假设你的意思是输入类型=“数字”)...但在这里我可以看到,它确实会有潜在的问题。不知道这是目前本地化,寿。 – 2010-06-06 00:56:19

+0

我不认为ISO格式是渐进增强的合理回应。如果浏览器回退到一个普通的输入框,并且他们没有启用Javascript(是那些人存在),他们将不得不以ISO格式输入日期?如果用户不是技术人员,他们不太可能希望以ISO格式输入日期(甚至不知道如何)。 – lambacck 2010-10-05 16:33:39

11

我同意lambacck。目前,我正在编写Javascript代码,以便可以跨浏览器使用新的表单功能,使用jQuery UI。

我在卢森堡工作,这是一个很好的地方来更详细地说明本地化问题。

我们写的大多数网站都是多语言的| fr | en。根据我们的统计数据,我们可以看出,人们使用网站上的语言切换来显示他们的首选语言,但该选择很少与首选浏览器语言环境相匹配。

如果日历等领域的区域是由OS完成的,这让我们回到那个不幸的<输入 类型=文件>情况标签读取上传文件和按钮说:浏览器。你对这种语言组合无能为力,我总觉得这是一个主要的烦恼。

结论,我必须用jQuery覆盖默认的日历,以确保它能做到我想要的。

在我看来,一个可配置的API或至少一种在HTML级别上操作语言环境的方法会很棒。由于新的字段类型尚未被其他浏览器制造商广泛采用,我想这个问题仍然可以考虑。

感谢您阅读本文。

+0

“标签读取上传文件和按钮说Parcourir”:这只是意味着,您的应用程序不尊重用户浏览器语言... – feeela 2011-03-10 16:33:20

+6

@feeela:如果您的网站有一个语言选择器让用户覆盖默认(浏览器提供的)语言... – fretje 2011-05-14 20:23:41

3

对于手机,我们发现的最佳解决方案是使用文本输入进行日期输入,并在其旁边有一个日历图标,该图标在图标上有一个不可见的日期输入。

优点:

  • 适用于所有浏览器和设备
  • 可以使用Next按钮进入日期在iOS(如果有多个字段)
  • 用户可以键入日期(非常有用)
  • 避免iOS用户界面的bug(1.用空白日期编辑现有数据,下一个日期,日期值设置为今天 - arrrgh,2.键盘显示,下一个日期,弹出显示和键盘消失 - ouch)
  • 使用日期库在输入中显示日期作为用户账户(而非浏览器)的本地化设置,并且可以使用智能日期库(输入“明天”等)。
  • 点击日历图标,看看日期,浏览器本地化
  • 优美后备即使input type=date不是由设备/浏览器支持(例如,一些Android设备不支持日期或有严重的错误)。
  • 桌面(通过无触摸支持检测)我们显示我们自己的自定义日期下拉列表。

HTML是这样的:

<input type=text> 
<span style=position:relative> 
    <input type=date class=date-input tabIndex=-1> 
    <div class=date-input-icon>&#x25BC;</div> 
</span> 

CSS:

.date-input { 
    position: relative; 
    z-index: 1; 
    webkit-appearance: none; 
    display: inline-block; 
    opacity: 0; 
    width: 1em; 
} 

.date-input-icon { 
    position: absolute; 
    right: 0; 
    width: 1em; 
} 
+1

问题是关于本地化而不是与使用本机类型=日期小部件相关的其他问题。答案中没有提到本地化。 – lambacck 2015-03-26 02:06:41

+0

没关系,我看到使用javascript的本地化部分(这是接受的解决方案已经是)。 – lambacck 2015-03-26 02:07:50

+0

当按钮提供选择UI时,使用隐藏日期输入而不是仅使用type = text的优点是什么。 – lambacck 2015-03-27 14:09:21

相关问题