Использование пользовательских объектов в документах HTML - PullRequest
15 голосов
/ 06 сентября 2011

ТЛ; др

Я хотел бы понять, возможно ли (и в случае насколько хорошо поддерживается) использование пользовательских объектов в документах 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, и в случае, насколько хорошо браузеры (и сканеры) справятся.

1 Ответ

8 голосов
/ 06 сентября 2011

Теоретически это возможно.HTML 4.x (и несколько предыдущих версий) являются приложениями SGML, так что вы можете расширить DTD новыми сущностями.

На практике каждый основной браузер реализует специфический для HTML теговый суппорт вместо супертного анализатора SGML, так что выне могу этого сделать.Вот почему HTML 4 имеет список функций SGML, чтобы избежать , и почему HTML 5 не является приложением SGML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...