问题使用routing-filter beta版本0.4.0.pre

时间:2013-08-23 21:36:52

标签: ruby-on-rails localization internationalization ruby-on-rails-4 rails-routing

我在使用RubyGems中发布该版本的人的建议时,正在使用Rails 4的路由过滤器的0.4.0.pre版本。当您在RubyGems网站上进行搜索时,您将找不到此版本。当我在GitHub上发表对现有问题的评论时,我发现了这一点。

https://rubygems.org/gems/routing-filter/versions/0.4.0.pre

我发现这个版本与我目前在Rails 3应用程序中使用的版本之间存在差异。我相信它是0.3.1的最新版本。有了这个gem,当我按照预期运行localhost时,语言环境包含在我的URL和底部的调试信息中。但是,当我使用0.4.0.pre版本时,语言环境不会显示在URL或调试信息中。我在标题部分的顶部有链接,人们可以在其中选择他们的区域设置。单击其中一个链接时,区域设置将显示在URL中。当我单击另一个链接(文本或图标)时,语言环境消失,但语言环境设置在一个cookie中(假设不是否,但现在将保留它)。翻译对于所选的区域设置是正确的,但除非我在链接中做了一些特殊的操作,以便知道他们点击了哪一个,否则没有人会知道区域设置。这是一个问题,因为现在我正在设置语言环境文件,所有这些文件都将使用英语,直到我能够获得其他语言的翻译。

以下是我在application_controller.rb中的两个应用程序中的代码,其中我设置了区域设置并创建了一个cookie。

before_filter :set_locale

private
  def set_locale
    I18n.locale = (params[:locale] if params[:locale].present?) || cookies[:locale] || 'en'
    cookies[:locale] = I18n.locale if cookies[:locale] != I18n.locale.to_s
  end

这是我在config / routes.rb中的代码。

filter :locale

以下是我的Rails 4应用程序中标题中我的语言环境行的代码。我的Rails 3.2.13应用程序中有类似的代码。

<%= link_to_unless_current "English", locale: "en" %> <%= link_to_unless_current "Español", locale: "es" %> <%= link_to_unless_current "Français", locale: "fr" %>

我不确定问题是否与0.4.0.pre gem有关,或者我是否需要在我的Rails 4应用程序中进行额外的i18n更改。从阅读i18n文档,我没有看到任何我需要做的事情。没有关于0.4.0.pre的具体文档,所以我假设我应该能够使用Rails 3版本的路由过滤器来做我正在做的事情。

我已在GitHub中的gem的问题部分发布了这个。我已经完成了有关使用此版本的路由过滤器的在线搜索,但无法找到它们。我想它上个月发布了。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

看起来问题已经解决了区域设置没有出现在URL中的问题。但是我最终使用本机Rails代码进行路由,因为我已经在Rails 4中重写了两个正在生产的应用程序。