Ruby on rails 使用Rails应用程序准备YML文件的多语言

Ruby on rails 使用Rails应用程序准备YML文件的多语言,ruby-on-rails,internationalization,globalize,Ruby On Rails,Internationalization,Globalize,我正在用Ruby on Rails构建一个租车应用程序,目前我一直在用英语编写代码。基本上我有一个用户和汽车模型,用户可以登录,登录,注销和列出他们的汽车 我想实现另一种语言,允许用户从下拉列表中选择英语或西班牙语。我有来自控制器操作的默认错误消息返回,如“不能为空,已使用”等。我还有自定义JS消息,如如果用户成功添加汽车,jQuery返回“您的汽车已发布”。最后,我还有闪光信息。但我不知道如何根据用户的语言选择处理YML文件中的错误、自定义JS和Flash消息。这实际上取决于YAML文件的结构

我正在用Ruby on Rails构建一个租车应用程序,目前我一直在用英语编写代码。基本上我有一个用户和汽车模型,用户可以登录,登录,注销和列出他们的汽车


我想实现另一种语言,允许用户从下拉列表中选择英语或西班牙语。我有来自控制器操作的默认错误消息返回,如“不能为空,已使用”等。我还有自定义JS消息,如如果用户成功添加汽车,jQuery返回“您的汽车已发布”。最后,我还有闪光信息。但我不知道如何根据用户的语言选择处理YML文件中的错误、自定义JS和Flash消息。

这实际上取决于YAML文件的结构,例如,对于
ActiveRecord
错误消息:

it:
  errors:
    format: "%{attribute} %{message}"

    messages: &errors_messages
      empty: "non può essere vuoto"
      blank: "non può essere lasciato in bianco"
如果要在视图之外访问I18n(也称国际化),可以使用
I18n.t(您的密钥)
,它实际上是您在视图中可以访问的帮助器。例如,如果您希望在控制器中翻译通知,您可以执行以下操作:

def your_action
  redirect_to other_path, notice: I18n.t("notices.successful_action")
end
然后在YAML中有相应的结构:

en:
  notices:
    successful_action: "You did it!"

希望这有帮助

它实际上取决于YAML文件的结构,例如,对于
ActiveRecord
错误消息:

it:
  errors:
    format: "%{attribute} %{message}"

    messages: &errors_messages
      empty: "non può essere vuoto"
      blank: "non può essere lasciato in bianco"
如果要在视图之外访问I18n(也称国际化),可以使用
I18n.t(您的密钥)
,它实际上是您在视图中可以访问的帮助器。例如,如果您希望在控制器中翻译通知,您可以执行以下操作:

def your_action
  redirect_to other_path, notice: I18n.t("notices.successful_action")
end
然后在YAML中有相应的结构:

en:
  notices:
    successful_action: "You did it!"
希望这有帮助

我不知道如何根据用户的语言选择处理yml文件中的错误、自定义js和flash消息

  • 对于Rails应用程序相关的一般翻译,包括错误消息,您已经介绍了。你可以看到翻译成了什么语言
  • 有关重写错误消息或创建新消息的详细信息,请参阅和上的Rails指南部分,以查看YAML文件中应该放置翻译的键
  • 对于flash消息,请查看如何在控制器中使用惰性查找(例如
    t('.notice')
  • 要想以与Ruby相同的方式在Javascript文件中使用翻译(例如
    I18n.t(“my_translation”)
    ,并能够在YAML文件中管理这些翻译以及Rails的其他翻译,请查看自述文件中的安装说明
我不知道如何根据用户的语言选择处理yml文件中的错误、自定义js和flash消息

  • 对于Rails应用程序相关的一般翻译,包括错误消息,您已经介绍了。您可以查看翻译的语言
  • 有关重写错误消息或创建新消息的详细信息,请参阅和上的Rails指南部分,以查看YAML文件中应该放置翻译的键
  • 对于flash消息,请查看如何在控制器中使用惰性查找(例如
    t('.notice')
  • 要想以与Ruby相同的方式在Javascript文件中使用翻译(例如
    I18n.t(“my_translation”)
    ,并能够在YAML文件中管理这些翻译以及Rails的其他翻译,请查看自述文件中的安装说明