在HTML文档中使用自定义实体

前端之家收集整理的这篇文章主要介绍了在HTML文档中使用自定义实体前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
TL;博士

我想了解是否有可能(并且,如果支持得如何)在HTML文档中使用自定义实体进行本地化.

我想像的是做这样的事情:

<!DOCTYPE html "/locales/en-us.ent">
<html>
  <head>
    <title>&contactus.title;</title>
  </head>
  <body>
    <p>&contactus.youcanreach;<br>123,Example Road<br>12345 Example City</p>
    <ul id="menu">
      <li>&menu.home;</li>
      <li>&menu.products;</li>
      <li>&menu.contactus;</li>
    </ul>
  </body>
</html>

并且所有实体将被存储在包含在文档顶部的文件(一个针对上述示例中的每个语言,en-us.ent)中,例如.

<!ENTITY menu.home "Home">
<!ENTITY menu.products "Products">
<!ENTITY menu.contactus "Contact us">
...

最终这甚至可以被转载到HTML片段(不确定是否真的被允许),这在所有页面(例如头文件,菜单等等)上都是有用的;在上面的示例中,整个< ul>可以是这样的分段)

现在,我的理解是,这在理论上是可能的XHTML,但我想知道这是否也可以在HTML中完成,如果浏览器(和爬虫)应该如何.

解决方法

在理论上,这是可能的. HTML 4.x(和以前的几个版本)是SGML应用程序,因此您可以使用新实体扩展DTD.

实际上,每个主流浏览器都实现了一个HTML特定的标签,而不是一个真正的SGML解析器,所以你不能这样做.这就是为什么HTML 4有一个list of SGML features to avoid,为什么HTML 5不是一个SGML应用程序.

猜你在找的HTML相关文章