J'essaie d'internationaliser mon site, et une chose est d'utiliser une forme de police différente pour différentes langues. De plus, certaines images textuelles doivent également être remplacées. P>
Je pense que le seul moyen de faire est de disposer de fichiers CSS spécifiques à des paramètres régionaux supplémentaires dans le dossier public et de les charger en fonction de la locale à mon avis. Cela évite les pipeline d'actifs de compiler ces fichiers CSS spécifiques. Mais je me demande s'il y a une meilleure façon de le faire? P>
3 Réponses :
Vous pouvez également utiliser des attributs de classe spécifiques à la locale dans HTML rendu. Je pense que c'est mieux / plus facile de réaliser ce que vous voulez. Mettre le CSS en public n'est pas si gentil. P>
Votre meilleur pari dans l'organisation consiste à avoir différentes feuilles de style spécifiques à la localisation, puis configurez une condition dans votre mise en page sur les feuilles de style pour rendant à base de la locale. P>
Il suffit de mettre un style spécifique local, et si vous y pensez ... Cela ne devrait pas affecter les temps de chargement dont je pense que vous ne changez que des tailles de police. P>
mise à jour de OP: p>
Voici ce que j'ai configuré pour avoir ce travail: p>
Directory code> sous App / Actifs / styles-fêtes CODE> LI>
- Je mets des feuilles de style spécifiques locales à l'intérieur, telles que
fr.sass code> li>
- i Configurez la condition dans les mises en page
Application.html.erb code> pour référencer les fichiers CSS:
<% si i18n.locale! =: EN%>
<% = stylesheet_link_tag "local /" + i18n.locale.to_s%>
<% fin%%>
code> li>
- i Configurez les règles de pré-compilation dans
config / application.rb code> li>
ul>
config.assets.precompile + = 'local / *. CSS' code> p>
Notez que je suis blanche à la liste des actifs que je veux compiler dans Application.css Code>, de sorte que les styles spécifiques aux paramètres régionaux ne seront pas dans le Application.css.CSS code>. < / p>
Je suis d'accord avec Onno. Je n'avais que des changements très simples, j'ai donc ajouté la locale comme étiquette de langue, comme décrit dans cette réponse: https://stackoverflow.com/a/11577356/1822977
HTML: P>
body { font-family:verdana,arial,helvetica,sans-serif; html[lang="jp"] & { font-family:"ãã©ã®ãè§ã´ Pro W3", "Hiragino Kaku Gothic Pro", sans-serif; } }