【问题标题】:Is it possible to have different stylesheets for the different locales that my site is translated (localized) to?对于我的网站被翻译(本地化)到的不同语言环境,是否可以有不同的样式表?
【发布时间】:2016-02-09 15:03:42
【问题描述】:

我正在从我的项目视图中提取字符串。当我这样做时,我正在测试不同语言的外观。

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

但是,我很确定(不确定,因为我不会说中文)我不想包装中文。理想情况下,我什至希望以从右到左的阅读顺序显示中文。

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

【问题讨论】:

    标签: ruby-on-rails localization yaml haml


    【解决方案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 并且en.css 文件存在于app/assets/stylesheets 中,则加载en.css

    【讨论】:

    • 谢谢!这很有帮助。
    • 我今天下午试试
    • 我没有时间对此进行测试,但我会将其标记为已回答。当我测试它时,我会回来分享。谢谢!!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多