我正在使用Ruby on Rails构建一个汽车租赁应用程序,目前我一直使用英语编码。基本上我有一个用户和汽车模型,用户可以登录,登录,注销并列出他们的汽车。
我想实现另一种语言,允许用户从下拉列表中选择英语或西班牙语。我有控制器操作的默认错误消息返回,例如"不能为空,已经使用过"我还有自定义的JS消息,例如,如果用户成功添加汽车,jQuery返回"您的汽车已经发布"。最后,我也有Flash消息。但我不知道如何根据用户的语言选择处理YML文件中的错误,自定义JS和Flash消息。
答案 0 :(得分:0)
它实际上取决于您的YAML文件的结构,例如,ActiveRecord
错误消息:
it:
errors:
format: "%{attribute} %{message}"
messages: &errors_messages
empty: "non può essere vuoto"
blank: "non può essere lasciato in bianco"
如果您想在视图之外访问I18n(a.k.a国际化),您可以使用I18n.t(your_key)
,这实际上是您在视图中可以访问的帮助程序。因此,例如,如果您希望在控制器中翻译通知,您可能会执行以下操作:
def your_action
redirect_to other_path, notice: I18n.t("notices.successful_action")
end
然后在你的YAML中有相应的结构:
en:
notices:
successful_action: "You did it!"
希望这有帮助!
答案 1 :(得分:0)
我不知道如何根据用户的语言选择处理yml文件中的错误,自定义js和flash消息
t('.notice')
)。I18n.t("my_translation")
,并且能够使用其余的Rails翻译管理YAML文件中的翻译,请查看在i18n-js gem。安装说明在README文件中。