【问题标题】:can't figure out how to do i18n on Devise不知道如何在 Devise 上做 i18n
【发布时间】:2011-01-20 11:30:33
【问题描述】:

在我的 rails3 应用程序中,我使用 devise 进行身份验证

现在我正在尝试做 i18n。为此,我在config/locales 中看到了devise.en.yml,并认为我要做的就是制作一个devise.ro.yml 以将其翻译成我的其他语言。但是如果devise.ro.yml 存在,那么无论我使用什么语言,一切都在 ro 中

为了更改语言,我在网址中使用了语言环境参数。为此,我在应用程序控制器中设置如下:

before_filter :set_locale

def set_locale
  I18n.locale=params[:locale]
end

def default_url_options(options={})
   { :locale => I18n.locale }
end

我的应用程序中的所有内容都可以翻译,除了设计部分

我错过了什么吗?

【问题讨论】:

  • 你能把 devise.ro.yml 放上去吗?
  • devise.ro.yml 与 devise.en.yml 的形式完全相同,只是所有的字符串都被翻译了,文件顶部有一个ro 而不是en
  • 我修好了。似乎我在 devise.ro.yml 文件中的某个地方有错字..

标签: ruby-on-rails ruby-on-rails-3 internationalization devise


【解决方案1】:

我可以假设你在 devise.ro.yml ro 而不是 en 上做?

【讨论】:

    【解决方案2】:

    首先,您需要使用 rails generate devise:views 生成设计视图,然后您可以翻译每个视图以满足您的语言环境需求。

    devise.en.yml 仅用于 Flash 消息。

    【讨论】:

    • 我已经这样做了,但是有些东西,比如闪光灯和其他可能的元素,没有翻译。我的意思是这就是devise.en.yml 存在的原因,对吧?
    • 你是对的......你把原来的 devise.en.yml 留在原处了吗?三重检查您的 I18n.locale 是否更改为 :ro.
    【解决方案3】:

    Devise 视图默认不使用 i18n,从现在开始您可以使用https://github.com/mcasimir/devise-i18n-views 为 Devise 视图和邮件添加 I18n 支持。 (见https://github.com/plataformatec/devise/pull/1989

    【讨论】:

      【解决方案4】:

      devise.ro.yml 应该可以工作。

      作为旁注:

      我遇到了类似的问题,并使用这个技巧来调试/找出 Rails 试图查找翻译的位置/内容:

      http://unixgods.org/~tilo/Rails/which_l10n_strings_is_rails_trying_to_lookup.html

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-11-25
        • 2012-07-25
        • 2016-12-17
        • 2022-01-01
        • 2013-10-12
        • 1970-01-01
        • 2022-01-23
        • 2023-03-28
        相关资源
        最近更新 更多