私は自分のサイトを国際化しようとしています。一つのことは、さまざまな言語に異なるフォントサイズを使用することです。また、一部のテキストイメージも置き換える必要があります。Rails CSSファイルのI18n
これを行う唯一の方法は、ロケール固有のCSSファイルをパブリックフォルダに追加し、ロケールに基づいてロードすることです。これにより、アセットパイプラインが特定のCSSファイルをコンパイルするのを防ぎます。しかし、これを行うよりよい方法があるのだろうかと疑問に思いますか?
私は自分のサイトを国際化しようとしています。一つのことは、さまざまな言語に異なるフォントサイズを使用することです。また、一部のテキストイメージも置き換える必要があります。Rails CSSファイルのI18n
これを行う唯一の方法は、ロケール固有のCSSファイルをパブリックフォルダに追加し、ロケールに基づいてロードすることです。これにより、アセットパイプラインが特定のCSSファイルをコンパイルするのを防ぎます。しかし、これを行うよりよい方法があるのだろうかと疑問に思いますか?
ローカライゼーションに固有のさまざまなスタイルシートを用意し、ロケールに基づいてどのスタイルシートをレンダリングするかをレイアウトに設定することをお勧めします。
ローカルの特定のスタイルを置くだけで、それについて考えると...フォントサイズを変更していると思うので、ロード時間がそれほど長くならないはずです。 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
に得ることはありません。
htmlでロケール固有のクラス属性を使用することもできます。私はそれがあなたが望むものを達成するためのより良い/より簡単な方法だと思います。 cssを公開するのはあまりいいことではありません。
私は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;
}
}
私。 – ericraio