1 class Locale < I18n::Locale::Tag::Rfc4646
 
   6       super(tags.map { |tag| Locale.tag(tag) }).compact!
 
   9     def candidates(preferred)
 
  10       preferred.expand & self
 
  13     def preferred(preferred, options = { :default => Locale.default })
 
  14       candidates(preferred).first || options[:default]
 
  18       List.new(reverse.each_with_object([]) do |locale, expanded|
 
  19                  locale.candidates.uniq.reverse_each do |candidate|
 
  20                    expanded << candidate if candidate == locale || expanded.exclude?(candidate)
 
  27     List.new(tags.flatten)
 
  31     tag(I18n.default_locale)
 
  35     @available ||= List.new(I18n.available_locales).reject!(&:invalid?)
 
  39     I18n.t("activerecord.models.acl", :locale => self, :fallback => false, :raise => true).nil?
 
  40   rescue I18n::MissingTranslationData
 
  45     List.new([self.class.new(language, script, region, variant),
 
  46               self.class.new(language, script, region),
 
  47               self.class.new(language, script, nil, variant),
 
  48               self.class.new(language, script),
 
  49               self.class.new(language, nil, region, variant),
 
  50               self.class.new(language, nil, region),
 
  51               self.class.new(language, nil, nil, variant),
 
  52               self.class.new(language)])