【问题标题】:rails check if page is translatedrails 检查页面是否已翻译
【发布时间】:2010-08-09 09:54:27
【问题描述】:

我正在为我们的应用程序编写一个助手,如果页面不是英文的,它将返回。起初这是我的支票:

!params[:lang].nil? || !cookies[:lang].nil? || !session[:lang].nil? || !session[:locale] || !params[:locale]

(我查看了参数、cookie 和会话)如果其中任何一个不为零,那么我会立即得出结论,用户点击了我们的翻译链接(它引入了 params[:lang] 并将其添加到会话和 cookie。

我忘记的一件事是,如果用户切换回“en”,那么它仍然是 !nil。是否有一种快速简便的方法/调用来检查页面是否不是英文的?还是我坚持为每个参数、cookie 和会话做很多 ifs 来检查它们是否存在以及它们是否是英文的?

【问题讨论】:

  • 生成的代码不再复杂,只需返回 !(params[:lang] == "en" && ... && params[:local] == "en")跨度>
  • 好吧,我只是想如果有一个 Rails 方法,我可以用更少的 ifs 来做。

标签: ruby-on-rails internationalization translation


【解决方案1】:

这是我所做的一些代码 sn-ps 和 refactormycode 中的一些代码:

http://refactormycode.com/codes/1387-too-many-ifs-and-ands

def is_english?
  [params, cookies, session].each do |store|
    return (store[:lang].andand.to_s == "en" || store[:locale].andand.to_s == "eng")
  end

  false
end

希望对大家有所帮助!

【讨论】:

    猜你喜欢
    • 2012-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-25
    • 2018-01-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多