gpt4 book ai didi

ruby-on-rails - 如何使用 globalize 和 rails 4 以一种形式显示所有翻译字段

转载 作者:数据小太阳 更新时间:2023-10-29 07:10:24 28 4
gpt4 key购买 nike

在使用 rails 4 和 https://github.com/globalize/globalize 的情况下,我应该如何为我的模型编写表单?用于翻译。我想以一种形式显示所有翻译,如下例所示。我在这里找到了解决方案 https://github.com/rilla/batch_translations但我不知道如何实现它。这个“批量翻译”是一个 gem 还是什么?以及如何安装它。

<h1>Editing post</h1> 

<% form_for(@post) do |f| %>
<%= f.error_messages %>

<h2>English (default locale)</h2>
<p><%= f.text_field :title %></p>
<p><%= f.text_field :teaser %></p>
<p><%= f.text_field :body %></p>

<hr/>

<h2>Spanish translation</h2>
<% f.globalize_fields_for :es do |g| %>
<p><%= g.text_field :title %></p>
<p><%= g.text_field :teaser %></p>
<p><%= g.text_field :body %></p>
<% end %>

<hr/>

<h2>French translation</h2>
<% f.globalize_fields_for :fr do |g| %>
<p><%= g.text_field :title %></p>
<p><%= g.text_field :teaser %></p>
<p><%= g.text_field :body %></p>
<% end %>

<% end %>

最佳答案

批处理翻译 gem 很旧,我在使用较新版本的 Rails 时遇到了困难。我偶然发现了另一个名为 globalize-accessors 的 gem 它支持 Rails 4。很棒的是,它使您可以访问 title_enteaser_estitle_fr 等方法。

因此,例如,如果您有一个特征模型,其名称应该使用所有语言,您可以执行以下操作:

# => Feature Model (feature.rb)
class Feature < ActiveRecord::Base
translates :name
globalize_accessors :attributes => [:name]
end

使用 Feature.globalize_attribute_names 方法会给出一个 [:name_en, :name_es, :name_fr] 数组,可以在 form_for 助手中使用:

//New Feature (new.html.haml)
= form_for @feature do |f|
- Feature.globalize_attribute_names.each do |lang|
= f.text_field lang
= f.submit

关于ruby-on-rails - 如何使用 globalize 和 rails 4 以一种形式显示所有翻译字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19525667/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com