W3C 不再维护多语言标记?

W3C no longer maintains polyglot markup?

提问人:Johny P. 提问时间:4/19/2016 最后编辑:Johny P. 更新时间:2/25/2017 访问量:485

问:

W3C 已终止对多语言标记的支持。那么,我是否必须将我的网站转换为使用常规 HTML5 而不是 XHTML?他们放弃这个概念将如何影响现有站点?我想要一个完全有效的标记,如果该代码与标准冲突,我将不得不删除它。

HTML xhtml 多语言标记

评论

0赞 Alohci 4/19/2016
各个语法仍然有效。您可以根据需要使用 HTML5 的 HTML 或 XHTML 语法,将它们作为或分别提供。但是,鉴于所有现代浏览器都支持这两种媒体类型,因此描述如何将单个文档视为任何一种语法的规范实际上都没有用。text/htmlapplication/xhtml+xml
0赞 Mr Lister 4/19/2016
当前的官方 HTML 规范包括所有多语言功能(void 元素中的斜杠在 text/html 文档中是可选的,xmlns 属性等也是如此),因此有效地覆盖了多语言规范,因此没有必要为此维护单独的文档。顺便说一句,我不知道你为什么认为他们放弃了XHTML。W3C 验证器将继续支持 XHTML 等。
0赞 Mr Lister 4/19/2016
除非您的意思是您当前正在以 text/html 形式提供 XHTML 文件,在这种情况下,我只能扬眉吐气。
0赞 Johny P. 4/19/2016
实际上,是的,我确实为我的 XHTML 提供服务,因为 IE8 及以下版本根本不会显示它,如果它是......我可以使用 php 来检测 IE 并发送适当的 ,但浏览器字符串仍然可以更改为查看器想要的任何内容,因此我认为此解决方案不可行。text/htmlapplication/xhtml+xmlheader
1赞 Alohci 4/19/2016
在这种情况下,多语言规范与您完全无关。所以是的,你应该将你的网站转换为使用常规的HTML5而不是XHTML。提供“完全有效”的XHTML的问题在于浏览器将其视为无效的标签汤。text/html

答:

5赞 John 4/27/2016 #1

像往常一样,在评论中对XHTML进行更多的抨击,而没有任何真正理解它是什么。

  • XHTML 使用 XML 解析器。
  • HTML 使用 HTML 解析器。

  • XML解析器很严格,它是一个对错误的容忍度很低的应用程序。
  • HTML 解析器很轻松,不介意潜艇上的纱门是否打开。

您可以而且应该使用最严格的工具。在PHP的示例中,您应该始终检查变量。为什么?黑客将从表单中删除元素,提交表单,然后尝试查看服务器会发送哪些错误消息。但是,如果你降低PHP错误消息的严格性,你会认为一切都很好,很花花公子。issetinput

我看到一个人为为什么只有Safari无法正确渲染某种风格而感到压力了三天。如果他使用了XML解析器,页面将(在Firefox中)完全失败,他会得到一条错误消息,指出错误到底是什么,它在哪一行以及该行的哪一列(其他浏览器呈现到该行,因此默认使用Firefox进行测试)。他的错误?他缺少围绕他的一个属性的双引号;他的潜艇上的纱门大开。

这并不意味着你不能使用 HTML5,因为我们在这里谈论的是语法。理想情况下,您应该使用 XHTML5,HTML5 使用 XML 解析器。它不会捕获所有问题(示例中的重复属性值),尽管它需要您在更高级别上编码。id

是的,IE8 不支持 XHTML(它有点支持 XML),但甚至不值得考虑支持 IE8。坦率地说,它是唯一一个拥有任何“重要”市场份额的浏览器,不支持XHTML,尽管这并不意味着你不能进行内容协商:

<?php
if (stristr($_SERVER['HTTP_ACCEPT'],'application/xhtml+xml'))
{
 header('Content-Type: application/xhtml+xml');
 echo '<?xml version="1.0" encoding="UTF-8"?>'."\n";
}
?>

请记住,如果IE8看到XML声明,它将以怪癖模式呈现,尽管截至2016年,这是一个有争议的问题,因为它不再是一个值得支持的浏览器,除非你被支付为专门处理该浏览器的专家。

我的整个平台都使用 XHTML5,它大大提高了标准、开发时间和技能。总是质疑那些反对做需要更多技能的事情的人的诚信,一毛钱一打这句话的存在是有原因的。


如果您正在寻找一种快速的方法来调整 XML 解析器的使用,但是没有时间替换数十或数百个解析器,例如,我强烈建议您考虑使用高级查找和替换。选择一个目录、一种或几种文件类型(例如)和要查找的代码,然后选择要替换的内容。此外,它实际上运行得更快,通过 Linux 的原生命令 Wine 模拟,而且非常便宜。不过,要小心你如何进行大规模的查找和替换,你的代码的空白越严格,你就会越好,并且总是先备份它!<br>*.php;*.css;*.xmlgrep

评论

1赞 Johny P. 4/27/2016
实际上,如果它对我来说是一个网站,坦率地说,我根本不关心 IE5-9,而是像在 XHTML5 中一样为我的网站服务......但是我为一家大型酒店公司制作网站是有报酬的,我不能让他们失去客户。当然不是当涉及金钱时。application/xhtml+xml
0赞 Johny P. 4/27/2016
但是下次重新设计我的网站时,我会牢记您所说的。
0赞 John 4/27/2016
然后省略 IE8 及更低版本的 XML 声明。然后,不要使用任何CSS技巧,只需使用以下命令: jabcreations.com/web/css/ieccss,祝你好运!
0赞 John 4/28/2016
除了具有 HTML 和 XML 解析器之外,浏览器还可以以 Quirks 模式或标准模式呈现。IE8 及更早版本无法理解 XML(除了非常难以产生结果),因此 XML 声明将 IE8- 置于 quirks 模式。因此,当 PHP 也提供 age 作为 ;我将更新答案以反映这一点。application/xhtml+xml
1赞 BoltClock 4/28/2016
我在关于问题的评论中没有看到任何XHTML抨击o_O