Estoy diseñando un sitio multilingüe donde me gustaría basar algunos de mis estilos en el lenguaje activo.
Piensa algo como esto:
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"}
¿Alguien sabe de una extensión capaz de hacer esto (es decir, agregar una clase a la etiqueta dependiendo del idioma activo)?
extensions
smz
fuente
fuente
Respuestas:
En realidad, hay una solución más fácil para su problema. Cualquier plantilla sensata (incluidas todas las plantillas que vienen con Joomla CMS) establecerá el
lang
atributo en el elemento HTML. Esto le permite utilizar el:lang()
pseudo-selector CSS .Tu ejemplo se vería así:
Esto tiene un par de ventajas. Para empezar, funcionará independientemente de la Plantilla o incluso con soluciones distintas a Joomla, ya que todo se hace en el Navegador.
También funcionará bien con partes incrustadas en otros idiomas, siempre que el
lang
atributo esté configurado correctamente. Por ejemplo:Por último, Joomla no solo muestra el idioma sino también la configuración regional. Por lo tanto, un sitio puede usar en-GB, otro en-US y la plantilla reflejará eso. El uso
:lang(en)
coincidirá con cualquiera de los dos, pero también puede usarlo:lang(en-US)
para apuntar solo al inglés americano.fuente
Simplemente modificaría el archivo index.php de plantillas y agregaría la clase directamente allí.
Asignaría el idioma actual como clase a la etiqueta del cuerpo.
fuente
Una pequeña cosa para agregar con respecto al método de Rouven; La compatibilidad con el navegador es mejor para los selectores de atributos que para el pseudo selector de idioma, por lo que puede considerar usar algo como esto para orientar sus estilos:
fuente
En el index.php de su plantilla, puede reemplazar la
<body>
etiqueta actual con lo siguiente:Esto generará lo siguiente como ejemplo:
fuente