Estou criando um site multilíngue, onde gostaria de basear alguns dos meus estilos no idioma ativo.
Pense algo como isto:
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"}
Alguém sabe de uma extensão capaz de fazer isso (por exemplo, adicionar uma classe à tag, dependendo do idioma ativo)?
extensions
smz
fonte
fonte
Respostas:
Na verdade, existe uma solução mais fácil para o seu problema. Qualquer modelo sensato (incluindo todos os modelos que acompanham o Joomla CMS) definirá o
lang
atributo no elemento HTML. Isso permite que você use o:lang()
pseudo-seletor de CSS .Seu exemplo seria assim:
Isso tem algumas vantagens. Para iniciantes, ele funcionará independentemente do modelo ou mesmo com outras soluções além do Joomla, como é feito no navegador.
Também funcionará bem com partes incorporadas em outros idiomas, desde que o
lang
atributo esteja definido corretamente. Por exemplo:Por fim, o Joomla não apenas produz o idioma, mas o local. Portanto, seu site pode usar en-GB, outro en-US e o modelo refletirá isso. O uso
:lang(en)
também corresponderá, mas você também pode usar:lang(en-US)
para segmentar apenas o inglês americano.fonte
Gostaria apenas de modificar o arquivo index.php de modelos e adicionar a classe diretamente lá.
Atribuiria o idioma atual como classe à tag body.
fonte
Uma pequena coisa a acrescentar em relação ao método de Rouven; o suporte ao navegador é melhor para seletores de atributos do que para o pseudo-seletor de idioma; portanto, você pode considerar usar algo parecido com isto para direcionar seus estilos:
fonte
No index.php do seu modelo, você pode substituir a
<body>
tag atual pelo seguinte:Isso produzirá o seguinte como exemplo:
fonte