Rails I18n的CSS文件

我正在尝试将我的网站国际化,有一件事是为不同的语言使用不同的字体大小。 还需要替换一些文本图像。

我认为唯一的方法是在公共文件夹中添加其他特定于语言环境的CSS文件,并根据我视图中的语言环境加载它们。 这可以避免资产管道编译这些特定的CSS文件。 但是我想知道是否有更好的方法来做到这一点?

组织中最好的选择是具有特定于本地化的不同样式表,然后在布局中根据区域设置在要呈现的样式表上设置条件。

只是放置本地特定的样式,如果你考虑它…它不应该影响加载时间那么多,因为我相信你只是改变字体大小。

OP的更新:

以下是我配置的工作方式:

  • 我在app/assets/stylesheets下创建了一个locales目录
  • 我在里面放置了特定于语言环境的样式表,例如fr.sass
  • 我在layouts/application.html.erb设置条件来引用css文件: <% if I18n.locale != :en %> <%= stylesheet_link_tag "locales/" + I18n.locale.to_s %> <% end %>
  • 我在config/application.rb设置了预编译规则

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

请注意,我将要编译的资产列入application.css ,因此特定于语言环境的样式不会进入application.css

我同意Onno。 我只需要非常简单的更改,因此我将语言环境添加为语言标记,如本答案中所述: https : //stackoverflow.com/a/11577356/1822977

HTML:

  

萨斯:

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

您还可以在呈现的html中使用特定于语言环境的类属性。 我认为这是实现你想要的更好/更容易的方式。 把css放在公共场合并不是那么好。