На самом деле есть более простое решение вашей проблемы. Любой вменяемый шаблон (включая все шаблоны, поставляемые с CMS Joomla) будет устанавливать lang
атрибут для элемента HTML. Это позволяет вам использовать :lang()
псевдо-селектор CSS .
Ваш пример будет выглядеть так:
li.artist:lang(en):before {content:"Artist: "}
li.artist:lang(it):before {content:"Artista: "}
li.artist:lang(de):before {content:"Künstler"}
Это имеет пару преимуществ. Начнем с того, что он будет работать независимо от шаблона или даже с решениями, отличными от Joomla, поскольку все это делается в браузере.
Также он будет хорошо работать со встроенными частями на других языках, если lang
атрибут установлен правильно. Например:
<html lang="en">
<head>
<style>
blockquote:lang(de) { color: red; }
blockquote:lang(en) { color: red; }
</style>
</head>
<body>
<p>A famous German quote is:</p>
<blockquote lang="de">
<p>Den Wald vor lauter Bäumen nicht sehen</p>
</blockquote>
<p>A famous English quote is:</p>
<blockquote>
<p>Listen to many, speak to a few.</p>
</blockquote>
<body>
</html>
Наконец, Joomla выводит не только язык, но и локаль. Таким образом, один ваш сайт может использовать en-GB, другой en-US, и шаблон будет отражать это. Использование :lang(en)
будет соответствовать либо, но вы также можете использовать :lang(en-US)
для таргетинга только на американский английский.