実際には、問題に対するより簡単な解決策があります。適切なテンプレート(Joomla CMSに付属するすべてのテンプレートを含む)はlang
、HTML要素に属性を設定します。これにより、CSS :lang()
疑似セレクターを使用できるようになります。
あなたの例は次のようになります:
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は言語だけでなくロケールも出力します。したがって、1つのサイトでen-GBを使用し、別のサイトでen-USを使用すると、テンプレートはそれを反映します。を使用:lang(en)
するとどちらにも一致しますが、:lang(en-US)
アメリカ英語のみをターゲットにする場合にも使用できます。