8
votes

Rails i18n de fichier CSS

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.

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?


0 commentaires

3 Réponses :


3
votes

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.


0 commentaires

12
votes

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.

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.

mise à jour de OP:

Voici ce que j'ai configuré pour avoir ce travail:

  • J'ai créé un Directory sous App / Actifs / styles-fêtes
  • Je mets des feuilles de style spécifiques locales à l'intérieur, telles que fr.sass
  • i Configurez la condition dans les mises en page Application.html.erb pour référencer les fichiers CSS: <% si i18n.locale! =: EN%> <% = stylesheet_link_tag "local /" + i18n.locale.to_s%> <% fin%%>
  • i Configurez les règles de pré-compilation dans config / application.rb

    config.assets.precompile + = 'local / *. CSS'

    Notez que je suis blanche à la liste des actifs que je veux compiler dans Application.css , de sorte que les styles spécifiques aux paramètres régionaux ne seront pas dans le Application.css.CSS . < / p>


0 commentaires

6
votes

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;
     }
}


0 commentaires