Ich entwerfe eine mehrsprachige Site, auf der ich einige meiner Stile auf die aktive Sprache stützen möchte.
Denken Sie so etwas:
body.en-uk li.artist:before {content:"Artist: "}
body.it-it li.artist:before {content:"Artista: "}
body.de-de li.artist:before {content:"Künstler"}
Kennt jemand eine Erweiterung, die dazu in der Lage ist (dh je nach aktiver Sprache eine Klasse zum Tag hinzufügen)?
extensions
smz
quelle
quelle
Antworten:
Es gibt tatsächlich eine einfachere Lösung für Ihr Problem. Jede vernünftige Vorlage (einschließlich aller mit dem Joomla CMS gelieferten Vorlagen) legt das
lang
Attribut für das HTML-Element fest. Auf diese Weise können Sie den CSS-:lang()
Pseudo-Selektor verwenden.Ihr Beispiel würde so aussehen:
Dies hat einige Vorteile. Für den Anfang funktioniert es unabhängig von der Vorlage oder sogar mit anderen Lösungen als Joomla, da alles im Browser erledigt wird.
Es funktioniert auch gut mit eingebetteten Teilen in anderen Sprachen, solange das
lang
Attribut richtig eingestellt ist. Zum Beispiel:Schließlich gibt Joomla nicht nur die Sprache, sondern auch das Gebietsschema aus. Ihre eine Site verwendet möglicherweise en-GB, eine andere en-US und die Vorlage spiegelt dies wider. Die Verwendung entspricht
:lang(en)
entweder, aber Sie können auch:lang(en-US)
nur amerikanisches Englisch verwenden.quelle
Ich würde einfach die Vorlage index.php ändern und die Klasse direkt dort hinzufügen.
Würde dem Body-Tag die aktuelle Sprache als Klasse zuweisen.
quelle
Eine kleine Sache, die man in Bezug auf Rouvens Methode hinzufügen sollte; Die Browserunterstützung ist für Attributselektoren besser als für den Sprachpseudo-Selektor. Daher sollten Sie in Betracht ziehen, so etwas für Ihre Stile zu verwenden:
quelle
In der index.php Ihrer Vorlage können Sie das aktuelle
<body>
Tag durch Folgendes ersetzen :Dies gibt Folgendes als Beispiel aus:
quelle