如何使用Rails中的Mobility gem以一种形式实现所有翻译? [关闭]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用Rails中的Mobility gem以一种形式实现所有翻译? [关闭]相关的知识,希望对你有一定的参考价值。

在我的Rails应用程序中,我使用Mobility gem进行翻译

如何构建包含所有翻译的表单,例如:

  • 姓名[en]:_______
  • 名称[for]:________
  • 那么 [的]: _______
  • ...

什么是最好的方法?

答案

目前还没有关于此的任何文档,但使用Mobility创建类似的表单并不困难。

这是一个例子,假设你有一个带有翻译属性@post的对象title

<%= form_for @post do |f| %>
  <% I18n.available_locales.each do |locale| %>
    <div>
      <% attr_name = "title_#{Mobility.normalize_locale(locale)}" %>
      <%= f.label attr_name %>
      <%= f.text_field attr_name %>
    </div>
  <% end %>

  <%= f.submit %>
<% end %>

在您的控制器中,您还必须使用permit本地化的属性名称,例如:

def update
  # ...
  @post.update(permitted_params)
  # ...
end

# ...

private

def permitted_params
  params.require(:post).permit(I18n.available_locales.map { |l|
    :"title_#{Mobility.normalize_locale(l)}"
  })
end

以上是关于如何使用Rails中的Mobility gem以一种形式实现所有翻译? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何将导入的gem中的vue组件加载到rails中的lib目录?

如何安全地更新 Rails 应用程序中的所有 gem

Rails 5:不推荐使用 `Gem.paths=` 参数中的数组值

如何将 Rails 视图助手提取到 gem 中?

rails:如何覆盖 cocoon gem 辅助方法并调用原始方法

如何专门使用“Elasticsearch”gem 将 elasticsearch 与 rails 应用程序集成