]> git.openstreetmap.org Git - rails.git/blobdiff - vendor/plugins/http_accept_language/lib/http_accept_language.rb
Switch to using http_accept_language as a gem
[rails.git] / vendor / plugins / http_accept_language / lib / http_accept_language.rb
diff --git a/vendor/plugins/http_accept_language/lib/http_accept_language.rb b/vendor/plugins/http_accept_language/lib/http_accept_language.rb
deleted file mode 100644 (file)
index f181c9f..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-module HttpAcceptLanguage
-
-  # Returns a sorted array based on user preference in HTTP_ACCEPT_LANGUAGE.
-  # Browsers send this HTTP header, so don't think this is holy.
-  #
-  # Example:
-  #
-  #   request.user_preferred_languages
-  #   # => [ 'nl-NL', 'nl-BE', 'nl', 'en-US', 'en' ]
-  #
-  def user_preferred_languages
-    @user_preferred_languages ||= env['HTTP_ACCEPT_LANGUAGE'].split(',').collect do |l|
-      l += ';q=1.0' unless l =~ /;q=\d+\.\d+$/
-      l.split(';q=')
-    end.sort do |x,y|
-      raise "Not correctly formatted" unless x.first =~ /^[a-z\-]+$/i
-      y.last.to_f <=> x.last.to_f
-    end.collect do |l|
-      l.first.downcase.gsub(/-[a-z]+$/i) { |x| x.upcase }
-    end
-  rescue # Just rescue anything if the browser messed up badly.
-    []
-  end
-
-  # Sets the user languages preference, overiding the browser
-  #
-  def user_preferred_languages=(languages)
-    @user_preferred_languages = languages.join(",")
-  end
-
-  # Finds the locale specifically requested by the browser.
-  #
-  # Example:
-  #
-  #   request.preferred_language_from I18n.available_locales
-  #   # => 'nl'
-  #
-  def preferred_language_from(array)
-    (user_preferred_languages & array.collect { |i| i.to_s }).first
-  end
-
-  # Returns the first of the user_preferred_languages that is compatible
-  # with the available locales. Ignores region.
-  #
-  # Example:
-  #
-  #   request.compatible_language_from I18n.available_locales
-  #
-  def compatible_language_from(array)
-    user_preferred_languages.map do |x|
-      x = x.to_s.split("-")[0]
-      array.find do |y|
-        y.to_s.split("-")[0] == x
-      end
-    end.compact.first
-  end
-
-end