diff --git a/app/helpers/globalize_helper.rb b/app/helpers/globalize_helper.rb index 92d02b63e..f6780eb7a 100644 --- a/app/helpers/globalize_helper.rb +++ b/app/helpers/globalize_helper.rb @@ -4,9 +4,59 @@ module GlobalizeHelper options_for_select(locale_options, nil) end - def locale_options - I18n.available_locales.map do |locale| - [name_for_locale(locale), locale] + def available_locales(resource) + I18n.available_locales.select{ |locale| enabled_locale?(resource, locale) }.map do |locale| + [name_for_locale(locale), locale , { data: { locale: locale } }] + end + end + + def enabled_locale?(resource, locale) + return site_customization_enable_translation?(locale) if resource.blank? + + if resource.translations.empty? + locale == I18n.locale + else + resource.locales_not_marked_for_destruction.include?(locale) + end + end + + def first_available_locale(resource) + return first_i18n_content_translation_locale if resource.blank? + + if translations_for_locale?(resource, I18n.locale) + I18n.locale + elsif resource.translations.any? + resource.translations.first.locale + else + I18n.locale + end + end + + def first_i18n_content_translation_locale + if I18nContentTranslation.existing_languages.count == 0 || + I18nContentTranslation.existing_languages.include?(I18n.locale) + I18n.locale + else + I18nContentTranslation.existing_languages.first + end + end + + def translations_for_locale?(resource, locale) + resource.present? && resource.translations.any? && + resource.locales_not_marked_for_destruction.include?(locale) + end + + def selected_languages_description(resource) + t("shared.translations.languages_in_use_html", count: active_languages_count(resource)) + end + + def active_languages_count(resource) + if resource.blank? + languages_count + elsif resource.locales_not_marked_for_destruction.size > 0 + resource.locales_not_marked_for_destruction.size + else + 1 end end diff --git a/app/views/shared/_common_globalize_locales.html.erb b/app/views/shared/_common_globalize_locales.html.erb index 3b6362bb2..c114135c3 100644 --- a/app/views/shared/_common_globalize_locales.html.erb +++ b/app/views/shared/_common_globalize_locales.html.erb @@ -1,15 +1,13 @@