Tutte le view marketing, legali, viewer, dashboard e admin usano t(); mailer utente-facing e flash localizzati; admin con LocaleResolver e selettore lingua. Co-authored-by: Cursor <cursoragent@cursor.com>
67 lines
2.3 KiB
Ruby
67 lines
2.3 KiB
Ruby
module ApplicationHelper
|
|
PLAN_ICONS = {
|
|
"free" => "fa-solid fa-seedling",
|
|
"premium_light" => "fa-solid fa-rocket",
|
|
"premium_full" => "fa-solid fa-crown"
|
|
}.freeze
|
|
|
|
def plan_icon_class(plan)
|
|
PLAN_ICONS[plan.slug] || "fa-solid fa-circle"
|
|
end
|
|
|
|
# Data/ora nel fuso dell'app (Europe/Rome) e nella lingua corrente.
|
|
def l_local(date_or_time, format: :long)
|
|
return nil if date_or_time.blank?
|
|
|
|
value = date_or_time.respond_to?(:in_time_zone) ? date_or_time.in_time_zone : date_or_time
|
|
I18n.l(value, format: format)
|
|
end
|
|
|
|
def og_locale_tag
|
|
{
|
|
it: "it_IT",
|
|
en: "en_US",
|
|
fr: "fr_FR",
|
|
de: "de_DE",
|
|
es: "es_ES"
|
|
}.fetch(I18n.locale.to_sym, "it_IT")
|
|
end
|
|
|
|
def html_lang
|
|
I18n.locale.to_s
|
|
end
|
|
|
|
def confirm_dialog_i18n_json
|
|
{
|
|
eyebrow: t("common.confirm_eyebrow"),
|
|
title: t("common.confirm_title"),
|
|
deleteTitle: t("common.delete_title"),
|
|
confirmOk: t("common.confirm_ok"),
|
|
deleteOk: t("common.delete_ok"),
|
|
cancel: t("common.cancel"),
|
|
multiDeleteTitle: t("common.multi_delete_title"),
|
|
multiDeleteMessage: t("common.multi_delete_message"),
|
|
deleteYoutubeTitle: t("common.delete_youtube_title"),
|
|
deleteYoutubeMessage: t("common.delete_youtube_message"),
|
|
deleteYoutubeOk: t("common.delete_youtube_ok"),
|
|
deleteSiteTitle: t("common.delete_site_title"),
|
|
deleteSiteMessageWithYoutube: t("common.delete_site_message_with_youtube"),
|
|
deleteSiteMessageOnly: t("common.delete_site_message_only"),
|
|
deleteSiteOk: t("common.delete_site_ok"),
|
|
choiceSiteLabel: t("common.choice_site_label"),
|
|
choiceSiteHintWithYoutube: t("common.choice_site_hint_with_youtube"),
|
|
choiceSiteHintOnly: t("common.choice_site_hint_only"),
|
|
choiceYoutubeLabel: t("common.choice_youtube_label"),
|
|
choiceYoutubeHintWithSite: t("common.choice_youtube_hint_with_site"),
|
|
choiceYoutubeHintOnly: t("common.choice_youtube_hint_only"),
|
|
choiceBothLabel: t("common.choice_both_label"),
|
|
choiceBothHint: t("common.choice_both_hint")
|
|
}.to_json
|
|
end
|
|
|
|
def sport_catalog_options(selected = nil)
|
|
options = Sports::Catalog.as_api_list.map { |entry| [entry[:label], entry[:key]] }
|
|
options_for_select(options, Sports::Catalog.normalize_key(selected))
|
|
end
|
|
end
|