Use standard locale names for Globalize
It turns out it is not necessary to downcase and underscore locale names to use the globalize-accessor gem. The gem will automatically underscore the locale name when defining and calling the accessor methods.
This commit is contained in:
@@ -6,12 +6,12 @@ module GlobalizeHelper
|
|||||||
|
|
||||||
def locale_options
|
def locale_options
|
||||||
I18n.available_locales.map do |locale|
|
I18n.available_locales.map do |locale|
|
||||||
[name_for_locale(locale), neutral_locale(locale)]
|
[name_for_locale(locale), locale]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def display_translation?(locale)
|
def display_translation?(locale)
|
||||||
same_locale?(neutral_locale(I18n.locale), neutral_locale(locale)) ? "" : "display: none;"
|
same_locale?(I18n.locale, locale) ? "" : "display: none;"
|
||||||
end
|
end
|
||||||
|
|
||||||
def translation_enabled_tag(locale, enabled)
|
def translation_enabled_tag(locale, enabled)
|
||||||
@@ -23,7 +23,7 @@ module GlobalizeHelper
|
|||||||
end
|
end
|
||||||
|
|
||||||
def enable_locale?(resource, locale)
|
def enable_locale?(resource, locale)
|
||||||
resource.translated_locales.include?(neutral_locale(locale)) || locale == I18n.locale
|
resource.translated_locales.include?(locale) || locale == I18n.locale
|
||||||
end
|
end
|
||||||
|
|
||||||
def highlight_current?(locale)
|
def highlight_current?(locale)
|
||||||
@@ -34,10 +34,6 @@ module GlobalizeHelper
|
|||||||
display_translation?(locale)
|
display_translation?(locale)
|
||||||
end
|
end
|
||||||
|
|
||||||
def neutral_locale(locale)
|
|
||||||
locale.to_s.downcase.underscore.to_sym
|
|
||||||
end
|
|
||||||
|
|
||||||
def globalize(locale, &block)
|
def globalize(locale, &block)
|
||||||
Globalize.with_locale(locale) do
|
Globalize.with_locale(locale) do
|
||||||
yield
|
yield
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
module SiteCustomizationHelper
|
module SiteCustomizationHelper
|
||||||
def site_customization_enable_translation?(locale)
|
def site_customization_enable_translation?(locale)
|
||||||
I18nContentTranslation.existing_languages.include?(neutral_locale(locale)) || locale == I18n.locale
|
I18nContentTranslation.existing_languages.include?(locale) || locale == I18n.locale
|
||||||
end
|
end
|
||||||
|
|
||||||
def site_customization_display_translation?(locale)
|
def site_customization_display_translation?(locale)
|
||||||
|
|||||||
@@ -41,10 +41,13 @@ module TranslatableFormHelper
|
|||||||
@template.capture do
|
@template.capture do
|
||||||
@object.globalize_locales.each do |locale|
|
@object.globalize_locales.each do |locale|
|
||||||
Globalize.with_locale(locale) do
|
Globalize.with_locale(locale) do
|
||||||
|
localized_attr_name = @object.localized_attr_name_for(method, locale)
|
||||||
|
|
||||||
label_without_locale = @object.class.human_attribute_name(method)
|
label_without_locale = @object.class.human_attribute_name(method)
|
||||||
final_options = @template.merge_translatable_field_options(options, locale)
|
final_options = @template.merge_translatable_field_options(options, locale)
|
||||||
.reverse_merge(label: label_without_locale)
|
.reverse_merge(label: label_without_locale)
|
||||||
@template.concat send(field_type, "#{method}_#{locale}", final_options)
|
|
||||||
|
@template.concat send(field_type, localized_attr_name, final_options)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ class Banner < ActiveRecord::Base
|
|||||||
|
|
||||||
translates :title, touch: true
|
translates :title, touch: true
|
||||||
translates :description, touch: true
|
translates :description, touch: true
|
||||||
globalize_accessors locales: I18n.available_locales.map { |l| l.to_s.underscore.to_sym }
|
globalize_accessors
|
||||||
|
|
||||||
validates :title, presence: true,
|
validates :title, presence: true,
|
||||||
length: { minimum: 2 }
|
length: { minimum: 2 }
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ class Budget
|
|||||||
accepted_content_types: [ "application/pdf" ]
|
accepted_content_types: [ "application/pdf" ]
|
||||||
|
|
||||||
translates :title, :description, touch: true
|
translates :title, :description, touch: true
|
||||||
globalize_accessors locales: I18n.available_locales.map { |l| l.to_s.underscore.to_sym }
|
globalize_accessors
|
||||||
|
|
||||||
belongs_to :investment
|
belongs_to :investment
|
||||||
belongs_to :status, class_name: 'Budget::Investment::Status'
|
belongs_to :status, class_name: 'Budget::Investment::Status'
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
<% I18n.available_locales.each do |locale| %>
|
<% I18n.available_locales.each do |locale| %>
|
||||||
<%= link_to t("admin.translations.remove_language"), "#",
|
<%= link_to t("admin.translations.remove_language"), "#",
|
||||||
id: "delete-#{neutral_locale(locale)}",
|
id: "delete-#{locale}",
|
||||||
style: show_delete?(locale),
|
style: show_delete?(locale),
|
||||||
class: 'float-right delete js-delete-language',
|
class: 'float-right delete js-delete-language',
|
||||||
data: { locale: neutral_locale(locale) } %>
|
data: { locale: locale } %>
|
||||||
|
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
@@ -13,7 +13,7 @@
|
|||||||
<%= link_to name_for_locale(locale), "#",
|
<%= link_to name_for_locale(locale), "#",
|
||||||
style: css_to_display_translation?(resource, locale),
|
style: css_to_display_translation?(resource, locale),
|
||||||
class: "js-globalize-locale-link #{highlight_current?(locale)}",
|
class: "js-globalize-locale-link #{highlight_current?(locale)}",
|
||||||
data: { locale: neutral_locale(locale) },
|
data: { locale: locale },
|
||||||
remote: true %>
|
remote: true %>
|
||||||
</li>
|
</li>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
<% I18n.available_locales.each do |locale| %>
|
<% I18n.available_locales.each do |locale| %>
|
||||||
<%= link_to t("admin.translations.remove_language"), "#",
|
<%= link_to t("admin.translations.remove_language"), "#",
|
||||||
id: "delete-#{neutral_locale(locale)}",
|
id: "delete-#{locale}",
|
||||||
style: show_delete?(locale),
|
style: show_delete?(locale),
|
||||||
class: 'float-right delete js-delete-language',
|
class: 'float-right delete js-delete-language',
|
||||||
data: { locale: neutral_locale(locale) } %>
|
data: { locale: locale } %>
|
||||||
|
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
@@ -13,7 +13,7 @@
|
|||||||
<%= link_to name_for_locale(locale), "#",
|
<%= link_to name_for_locale(locale), "#",
|
||||||
style: site_customization_display_translation?(locale),
|
style: site_customization_display_translation?(locale),
|
||||||
class: "js-globalize-locale-link #{highlight_current?(locale)}",
|
class: "js-globalize-locale-link #{highlight_current?(locale)}",
|
||||||
data: { locale: neutral_locale(locale) },
|
data: { locale: locale },
|
||||||
remote: true %>
|
remote: true %>
|
||||||
</li>
|
</li>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|||||||
@@ -24,11 +24,9 @@
|
|||||||
|
|
||||||
<%= image_tag(milestone.image_url(:large), { id: "image_#{milestone.id}", alt: milestone.image.title, class: "margin" }) if milestone.image.present? %>
|
<%= image_tag(milestone.image_url(:large), { id: "image_#{milestone.id}", alt: milestone.image.title, class: "margin" }) if milestone.image.present? %>
|
||||||
|
|
||||||
<% globalize(neutral_locale(locale)) do %>
|
|
||||||
<p>
|
<p>
|
||||||
<%= text_with_links milestone.description %>
|
<%= text_with_links milestone.description %>
|
||||||
</p>
|
</p>
|
||||||
<% end %>
|
|
||||||
|
|
||||||
<% if milestone.documents.present? %>
|
<% if milestone.documents.present? %>
|
||||||
<div class="document-link text-center">
|
<div class="document-link text-center">
|
||||||
|
|||||||
@@ -10,8 +10,7 @@ section "Creating banners" do
|
|||||||
post_ended_at: rand((Time.current - 1.day)..(Time.current + 1.week)),
|
post_ended_at: rand((Time.current - 1.day)..(Time.current + 1.week)),
|
||||||
created_at: rand((Time.current - 1.week)..Time.current))
|
created_at: rand((Time.current - 1.week)..Time.current))
|
||||||
I18n.available_locales.map do |locale|
|
I18n.available_locales.map do |locale|
|
||||||
neutral_locale = locale.to_s.downcase.underscore.to_sym
|
Globalize.with_locale(locale) do
|
||||||
Globalize.with_locale(neutral_locale) do
|
|
||||||
banner.description = "Description for locale #{locale}"
|
banner.description = "Description for locale #{locale}"
|
||||||
banner.title = "Title for locale #{locale}"
|
banner.title = "Title for locale #{locale}"
|
||||||
banner.save!
|
banner.save!
|
||||||
|
|||||||
@@ -143,8 +143,7 @@ section "Creating investment milestones" do
|
|||||||
Budget::Investment.all.each do |investment|
|
Budget::Investment.all.each do |investment|
|
||||||
milestone = Budget::Investment::Milestone.new(investment_id: investment.id, publication_date: Date.tomorrow)
|
milestone = Budget::Investment::Milestone.new(investment_id: investment.id, publication_date: Date.tomorrow)
|
||||||
I18n.available_locales.map do |locale|
|
I18n.available_locales.map do |locale|
|
||||||
neutral_locale = locale.to_s.downcase.underscore.to_sym
|
Globalize.with_locale(locale) do
|
||||||
Globalize.with_locale(neutral_locale) do
|
|
||||||
milestone.description = "Description for locale #{locale}"
|
milestone.description = "Description for locale #{locale}"
|
||||||
milestone.title = I18n.l(Time.current, format: :datetime)
|
milestone.title = I18n.l(Time.current, format: :datetime)
|
||||||
milestone.save!
|
milestone.save!
|
||||||
|
|||||||
Reference in New Issue
Block a user