Sha256: ba84a60d175533fdbb8083715d0b66ba3c8be566ae4d810659546c10c5d9ca43
Contents?: true
Size: 1.85 KB
Versions: 2
Compression:
Stored size: 1.85 KB
Contents
module Locomotive module Extensions module Site module Locales extend ActiveSupport::Concern included do ## fields ## field :locales, :type => 'RawArray', :default => [] ## callbacks ## after_validation :add_default_locale end # Returns the fullpath of a page in the context of the current locale (I18n.locale) # or the one passed in parameter. It also depends on the default site locale. # # Ex: # For a site with its default site locale to 'en' # # context 1: i18n.locale is 'en' # contact_us.fullpath <= 'contact_us' # # # context 2: i18n.locale is 'fr' # contact_us.fullpath <= 'fr/nous_contacter' # # @params [ Page ] page The page we want the localized fullpath # @params [ String ] locale The optional locale in place of the current one # # @returns [ String ] The localized fullpath according to the current locale # def localized_page_fullpath(page, locale = nil) return nil if page.fullpath_translations.blank? locale = (locale || I18n.locale).to_s fullpath = page.fullpath_translations[locale] || page.fullpath_translations[self.default_locale] locale == self.default_locale ? fullpath : File.join(locale, fullpath) end def locales=(array) array = [] if array.blank?; super(array) end def default_locale self.locales.first || Locomotive.config.site_locales.first end def locale_fallbacks(locale) [locale.to_s] + (locales - [locale.to_s]) end protected def add_default_locale self.locales = [Locomotive.config.site_locales.first] if self.locales.blank? end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
locomotive_cms-2.0.0.rc4 | app/models/locomotive/extensions/site/locales.rb |
locomotive_cms-2.0.0.rc2 | app/models/locomotive/extensions/site/locales.rb |