locales的配置

config --> locales --> 下面有 en.yml, zh-CN.yml


默认中文,config --> application.rb 配置如下

config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '*.{rb, yml}').to_s]

config.i18n.default_locale = :"zh-CN"

config.i18n.available_locales = ['en', 'zh-CN']

config.i18n.fallbacks = true

config.encoding = 'utf-8'


views

<li class="dropdown1" id="language" >
                <a id="dropdown-toggle1" href="#">
                  <% if cookies[:user_locale] == 'zh-CN' %>
                    <%= image_tag 'language/zh-CN.png',class:'lang-icon' %><b class="caret"></b>
                  <% elsif cookies[:user_locale] == 'en' %>
                    <%= image_tag 'language/us-min.png',class:'lang-icon' %><b class="caret"></b>
                  <% elsif cookies[:user_locale] == 'hk-CN' %>
                    <%= image_tag 'language/hk-CN.png',class:'lang-icon' %><b class="caret"></b>
                  <% end %>
                </a>
                <ul class="dropdown-menu1" id='homeland'>
                  <li><a href="/language/?locale=zh-CN" id='cn'><%#= image_tag 'language/zh-CN.png',class:'lang-icon' %></a></li>
                  <li><a href="/language/?locale=hk-CN" id='cn'><%= image_tag 'language/hk-CN.png',class:'lang-icon' %></a></li>
                  <li><a href="/language/?locale=en" id='us'><%= image_tag 'language/us-min.png',class:'lang-icon' %></a></li>
                </ul>
              </li>


控制器application_controller.rb


before_action :set_locale


def set_locale

cookies[:user_locale] = 'zh-CN' if cookies[:user_locale].blank?

if cookies[:user_locale] && I18n.available_locales.include?(cookies[:user_locale].to_sym)

@locale = cookies[:user_locale].to_sym

else

@locale = http_accept_language.compatible_language_from(I18n.available_locales)

cookies.permanent[:user_locale] =@locale

end

I18n.locale =@locale || I18n.locale

end


控制器home_controller.rb

def language

@locale = params[:locale].to_s.strip.to_sym

@locale = I18n.default_locale unless I18n.available_locales.include?(@locale)

cookies.permanent[:user_locale] = @locale

if request.env["HTTP_REFERER"].PRESENT?

redirect_to '/'

else

redirect_to '/'

end

end









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值