微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在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应用程序.

原文地址:https://www.jb51.cc/html/231396.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐