/ / Change l'attribut html lang lorsque les paramètres régionaux changent - html, symfony, internationalisation, symfony-2.1, lang

Changer l'attribut html lang lorsque les paramètres régionaux changent - html, symfony, internationalisation, symfony-2.1, lang

J'ai un site Web multilingue utilisant PHP / Symfony2.

Je voudrais changer l'attribut html lang lorsque l'utilisateur change de langue (= change de lieu).

Quel est le meilleur moyen d'y parvenir?

PS: mon objectif ultime est de pouvoir changer de police de police pour différentes langues (le chinois a l'air trop dommage avec la police que j'ai choisie pour l'anglais). Je pense utiliser le pseudo sélecteur CSS: lang (): html:lang(zh)

Réponses:

6 pour la réponse № 1

En supposant que vous utilisez html5 et twig comme moteur de template:

<!doctype html>

<html lang="{{ app.request.locale }}">

...

1 pour la réponse № 2

La méthode recommandée pour stocker les paramètres régionaux est le code de pays, le code de pays souligné, par exemple. en_GB.

Le terme locale fait référence à l'utilisateur "slangue et pays. Il peut être n'importe quelle chaîne utilisée par votre application pour gérer les traductions et autres différences de format (par exemple, le format monétaire). L'ISO 639-1 code de langue, un trait de soulignement (_), puis le pays ISO 3166-1 alpha-2 Le code (par exemple, fr_FR pour Français / France) est recommandé. http://symfony.com/doc/current/book/translation.html

Par conséquent, un moyen sûr d’utiliser les paramètres régionaux dans l’attribut lang serait:

<html lang="{{ app.request.locale|split("_")[0] }}">

Cela fonctionne avec un en_GB locale et un en lieu.