otwarchive-symphonyarchive/app/models/locale.rb

29 lines
966 B
Ruby
Raw Normal View History

2026-03-11 22:22:11 +00:00
class Locale < ApplicationRecord
belongs_to :language
validates_presence_of :iso
validates :iso, uniqueness: true
validates_presence_of :name
scope :default_order, -> { order(:iso) }
def to_param
iso
end
def self.default
language = Language.default
Locale.set_base_locale(iso: ArchiveConfig.DEFAULT_LOCALE_ISO, name: ArchiveConfig.DEFAULT_LOCALE_NAME, language_id: language.id)
end
def self.set_base_locale(locale={iso: "en", name: "English"})
language = Language.find_by(short: ArchiveConfig.DEFAULT_LANGUAGE_SHORT)
Locale.find_by(iso: locale[:iso].to_s) || language.locales.create(iso: locale[:iso].to_s, name: locale[:name].to_s, main: 1)
end
after_update :update_translations, if: :saved_change_to_iso?
def update_translations
ArchiveFaq::Translation.where(locale: iso_before_last_save).update_all(locale: iso)
Question::Translation.where(locale: iso_before_last_save).update_all(locale: iso)
end
end