Try harder to find a name in the right language

This commit is contained in:
Tom Hughes 2014-05-24 12:52:09 +01:00
parent 945da7a06f
commit 85e61568da
2 changed files with 17 additions and 2 deletions

View file

@ -13,8 +13,14 @@ module BrowseHelper
# don't look at object tags if redacted, so as to avoid giving
# away redacted version tag information.
unless object.redacted?
if object.tags.include? "name:#{I18n.locale}"
name = t 'printable_name.with_name_html', :name => content_tag(:bdi, object.tags["name:#{I18n.locale}"].to_s ), :id => content_tag(:bdi, name)
locale = I18n.locale.to_s
while locale =~ /-[^-]+/ and not object.tags.include? "name:#{I18n.locale}"
locale = locale.sub(/-[^-]+/, "")
end
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)
elsif object.tags.include? 'name'
name = t 'printable_name.with_name_html', :name => content_tag(:bdi, object.tags['name'].to_s ), :id => content_tag(:bdi, name)
end

View file

@ -29,6 +29,15 @@ class BrowseHelperTest < ActionView::TestCase
assert_equal "<bdi>проверки узла</bdi> (<bdi>18, v2</bdi>)", printable_name(nodes(:node_with_name_current_version), true)
assert_equal "18, v1", printable_name(nodes(:node_with_name_redacted_version), true)
I18n.locale = "ru-RU"
assert_equal "17", printable_name(current_nodes(:redacted_node))
assert_equal "<bdi>проверки узла</bdi> (<bdi>18</bdi>)", printable_name(current_nodes(:node_with_name))
assert_equal "<bdi>проверки узла</bdi> (<bdi>18</bdi>)", printable_name(nodes(:node_with_name_current_version))
assert_equal "18", printable_name(nodes(:node_with_name_redacted_version))
assert_equal "<bdi>проверки узла</bdi> (<bdi>18, v2</bdi>)", printable_name(nodes(:node_with_name_current_version), true)
assert_equal "18, v1", printable_name(nodes(:node_with_name_redacted_version), true)
I18n.locale = "de"
assert_equal "17", printable_name(current_nodes(:redacted_node))