From: Tom Hughes Date: Thu, 6 Aug 2020 13:21:30 +0000 (+0100) Subject: Don't fall back to name:en if it's not in the user's language list X-Git-Tag: live~2068 X-Git-Url: https://git.openstreetmap.org/rails.git/commitdiff_plain/4d2ea315168b8cdbb6b00e0c9bf3d9da30566f5f Don't fall back to name:en if it's not in the user's language list Fix to #2755 --- diff --git a/app/helpers/browse_helper.rb b/app/helpers/browse_helper.rb index cf2bc6474..4519567d2 100644 --- a/app/helpers/browse_helper.rb +++ b/app/helpers/browse_helper.rb @@ -13,7 +13,7 @@ module BrowseHelper unless object.redacted? available_locales = Locale.list(name_locales(object)) - locale = available_locales.preferred(preferred_languages) + locale = available_locales.preferred(preferred_languages, :default => nil) if object.tags.include? "name:#{locale}" name = t "printable_name.with_name_html", :name => tag.bdi(object.tags["name:#{locale}"].to_s), :id => tag.bdi(name) diff --git a/lib/locale.rb b/lib/locale.rb index b0ad20fc7..56d398576 100644 --- a/lib/locale.rb +++ b/lib/locale.rb @@ -10,8 +10,8 @@ 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 @@ -19,7 +19,7 @@ class Locale < I18n::Locale::Tag::Rfc4646 locale.candidates.uniq.reverse_each do |candidate| expanded << candidate if candidate == locale || !expanded.include?(candidate) end - end.reverse.uniq << Locale.default) + end.reverse.uniq) end end