是否可以为我的网站翻译(本地化)的不同区域设置提供不同的样式表?

时间:2015-11-09 01:25:55

标签: ruby-on-rails localization yaml haml

我正在从项目的视图中抽象出字符串。正如我所做的那样,我正在测试不同语言的外观。

在以拉丁风格字母表呈现的语言中,我希望有一种防止孤儿的样式(包装字符串最后一行的单个单词)。在某些地方,我想触发包装,以便事物始终出现在两行或一行上。

然而,我非常肯定(因为我不会说中文而不能肯定)我不想用中文包装。理想情况下,我甚至希望以从右到左的阅读顺序显示中文。

是否可以为不同语言(区域设置)提供不同的显示代码?

1 个答案:

答案 0 :(得分:1)

您可以使用:lang pseudo selector定位每种语言的元素,还有一个实验:dir选择器,但支持有限。

在Rails中,您可以加载其他特定于语言环境的样式表,如下所示:

# app/helpers/style_helper.rb
module StyleHelper
  def locale_stylesheet_link_tag(locale = I18n.locale)
     path = Rails.root.join('app', 'assets', 'stylesheets')
     if Dir.glob(path + "#{locale}.{css, scss, sass, less}").any?
       stylesheet_link_tag(locale.to_s)
     end
  end
end
# app/layouts/application.html.erb

<head>
  ...
  <%= locale_stylesheet_link_tag %>
</head>

如果区域设置为en.cssen中存在en.css文件,则此操作会加载app/assets/stylesheets