More improvements to locale selection for the data browser
authorTom Hughes <tom@compton.nu>
Sun, 7 Jun 2020 18:10:48 +0000 (19:10 +0100)
committerTom Hughes <tom@compton.nu>
Sun, 7 Jun 2020 18:10:48 +0000 (19:10 +0100)
Use the browser language preferences for non-logged in users.

app/controllers/application_controller.rb
app/helpers/browse_helper.rb
test/helpers/browse_helper_test.rb

index 0099845942e80326ac8c0145d25986c551427e39..045e93eb7a1f4f073c280e79738f007a546910d8 100644 (file)
@@ -12,6 +12,7 @@ class ApplicationController < ActionController::Base
   attr_accessor :current_user
 
   helper_method :current_user
+  helper_method :preferred_langauges
 
   private
 
index 14b1f7cc22d1b04e92acdc52dd790bb6797602c0..2f61631b7d2c356f28b5948277dca98258424ae4 100644 (file)
@@ -11,21 +11,9 @@ module BrowseHelper
     # don't look at object tags if redacted, so as to avoid giving
     # away redacted version tag information.
     unless object.redacted?
-      available_locales = Locale::List.new(name_locales(object))
+      available_locales = Locale.list(name_locales(object))
 
-      Rails.logger.info "available_locales = #{available_locales.map(&:to_s)}"
-
-      preferred_locales = if current_user
-                            current_user.preferred_languages
-                          else
-                            Locale.new(I18n.locale).candidates
-                          end
-
-      Rails.logger.info "preferred_locales = #{preferred_locales.expand.map(&:to_s)}"
-
-      locale = available_locales.preferred(preferred_locales)
-
-      Rails.logger.info "locale = #{locale}"
+      locale = available_locales.preferred(preferred_languages)
 
       if object.tags.include? "name:#{locale}"
         name = t "printable_name.with_name_html", :name => content_tag(:bdi, object.tags["name:#{locale}"].to_s), :id => content_tag(:bdi, name)
index 7141cda6038747661a7eff929e71e54dd72a2168..8e46f6ff3ca28fbdf2c9b3a199fa864ab12672d4 100644 (file)
@@ -154,7 +154,7 @@ class BrowseHelperTest < ActionView::TestCase
 
   private
 
-  def current_user
-    nil
+  def preferred_languages
+    Locale.list(I18n.locale)
   end
 end