संदर्भ: बाइक किराए पर लेने के लिए पटरियों पर एक रूबी ऐप के लिए, मैं :description
विभिन्न भाषाओं में इनपुट से निपटने के लिए रत्न वैश्वीकरण का उपयोग कर रहा हूं ।
क्यूरेंट स्टेट: वैश्वीकरण कार्यान्वयन ने काम किया, मेरे लोकेल के आधार पर मैं description
एक विशिष्ट भाषा में स्टोर करने में सक्षम हूं । :description
संपूर्ण वेबपृष्ठ के स्थान के आधार पर इनपुट से निपटा जाता है।
इसका मतलब यह है कि इस पृष्ठ पर सब कुछ :description
सही भाषा में संग्रहीत करने के लिए भाषा में बदलना है ।
वैकल्पिक रूप से, मैं सभी उपलब्ध स्थानों को दिखाने और description
उनमें से प्रत्येक के लिए दिखाने में सक्षम हूं। (नीचे टिप्पणी कोड भी देखें)।
प्रश्न: मैं एक ऐसा तरीका खोज रहा हूँ जिससे उपयोगकर्ता :description
केवल एक भाषा का चयन कर सके और फिर :description
पूरे वेबपेज की भाषा को बदले बिना सही भाषा में सहेज सके ।
कोड
प्रपत्र
<div class="row">
<%# I18n.available_locales.each do |locale| %>
<!-- <h1><%#= locale %></h1> -->
<%= f.globalize_fields_for locale do |ff| %>
<div class="col-10">
<div class="form-group">
<label class="form-control-label text required" for="accommodation_category_description">Description</label>
<div><%= ff.text_area :description, :rows =>"5", :cols =>"30", class:"form-control is-valid text required" %></div>
</div>
</div>
<% end %>
<%# end %>
</div>
</div>
initializers / globalization.rb
module ActionView
module Helpers
class FormBuilder
#
# Helper that renders translations fields
# on a per-locale basis, so you can use them separately
# in the same form and still saving them all at once
# in the same request.
def globalize_fields_for(locale, *args, &proc)
raise ArgumentError, "Missing block" unless block_given?
@index = @index ? @index + 1 : 1
object_name = "#{@object_name}[translations_attributes][#{@index}]"
object = @object.translations.find_by_locale locale.to_s
@template.concat @template.hidden_field_tag("#{object_name}[id]", object ? object.id : "")
@template.concat @template.hidden_field_tag("#{object_name}[locale]", locale)
@template.fields_for(object_name, object, *args, &proc)
end
end
end
end