X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/bf22c69286f97f72625c79d64e7c1a5cb6e95710..8dc5de1a0f4092dfc7343d3475f00b8a023bea7c:/lib/locale.rb?ds=sidebyside

diff --git a/lib/locale.rb b/lib/locale.rb
index b0ad20fc7..5931301b5 100644
--- a/lib/locale.rb
+++ b/lib/locale.rb
@@ -10,16 +10,16 @@ class Locale < I18n::Locale::Tag::Rfc4646
       preferred.expand & self
     end
 
-    def preferred(preferred)
-      candidates(preferred).first
+    def preferred(preferred, options = { :default => Locale.default })
+      candidates(preferred).first || options[:default]
     end
 
     def expand
       List.new(reverse.each_with_object([]) do |locale, expanded|
                  locale.candidates.uniq.reverse_each do |candidate|
-                   expanded << candidate if candidate == locale || !expanded.include?(candidate)
+                   expanded << candidate if candidate == locale || expanded.exclude?(candidate)
                  end
-               end.reverse.uniq << Locale.default)
+               end.reverse.uniq)
     end
   end