5

私は自分のサイトを国際化しようとしています。一つのことは、さまざまな言語に異なるフォントサイズを使用することです。また、一部のテキストイメージも置き換える必要があります。Rails CSSファイルのI18n

これを行う唯一の方法は、ロケール固有のCSSファイルをパブリックフォルダに追加し、ロケールに基づいてロードすることです。これにより、アセットパイプラインが特定のCSSファイルをコンパイルするのを防ぎます。しかし、これを行うよりよい方法があるのだろうかと疑問に思いますか?

答えて

11

ローカライゼーションに固有のさまざまなスタイルシートを用意し、ロケールに基づいてどのスタイルシートをレンダリングするかをレイアウトに設定することをお勧めします。

ローカルの特定のスタイルを置くだけで、それについて考えると...フォントサイズを変更していると思うので、ロード時間がそれほど長くならないはずです。 OPから

UPDATE:ここ

が、私はこの作業を持つように構成したものである:

  • 私は、このようなfr.sass
  • など内部の特定のスタイルシートを、ロケール入れ app/assets/stylesheets
  • localesディレクトリを作成しました
  • layouts/application.html.erbの条件を設定して、CSSファイルを参照してください: <% if I18n.locale != :en %> <%= stylesheet_link_tag "locales/" + I18n.locale.to_s %> <% end %>
  • 私のセットアップ私はapplication.cssにコンパイルしたい資産をホワイトリストしていますconfig/application.rb

config.assets.precompile += 'locales/*.css'

ノートでルールをプリコンパイルし、そのロケール固有のスタイルがapplication.cssに得ることはありません。

+0

私。 – ericraio

2

htmlでロケール固有のクラス属性を使用することもできます。私はそれがあなたが望むものを達成するためのより良い/より簡単な方法だと思います。 cssを公開するのはあまりいいことではありません。

4

私はOnnoに同意します。私は非常に単純な変更を必要とするので、この答えで説明したように、私は、言語タグなどのロケールを追加しました: https://stackoverflow.com/a/11577356/1822977

HTML:

<html lang="<%= I18n.locale || 'en' %>"> 

サス:までなかなか良さそうです

body { 
    font-family:verdana,arial,helvetica,sans-serif; 
    html[lang="jp"] & { 
     font-family:"ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", sans-serif; 
    } 
} 
関連する問題