Merge remote-tracking branch 'upstream/pull/4915'

This commit is contained in:
Tom Hughes 2024-06-25 17:35:26 +01:00
commit 4c6e9de1ad
2 changed files with 12 additions and 2 deletions

View file

@ -116,9 +116,11 @@ module BrowseTagsHelper
end
def wikimedia_commons_link(key, value)
if key == "wikimedia_commons" && value =~ /^(?:file|category):/i
if key == "wikimedia_commons" && value =~ /^(file|category):([^#]+)/i
namespace = Regexp.last_match(1)
title = Regexp.last_match(2)
return {
:url => "//commons.wikimedia.org/wiki/#{value}?uselang=#{I18n.locale}",
:url => "//commons.wikimedia.org/wiki/#{namespace}:#{u title}?uselang=#{I18n.locale}",
:title => value
}
end

View file

@ -245,6 +245,14 @@ class BrowseTagsHelperTest < ActionView::TestCase
assert_equal "//commons.wikimedia.org/wiki/Category:Test_Category?uselang=en", link[:url]
assert_equal "Category:Test_Category", link[:title]
link = wikimedia_commons_link("wikimedia_commons", "Category:What If? (Bonn)")
assert_equal "//commons.wikimedia.org/wiki/Category:What%20If%3F%20%28Bonn%29?uselang=en", link[:url]
assert_equal "Category:What If? (Bonn)", link[:title]
link = wikimedia_commons_link("wikimedia_commons", "File:Corsica-vizzavona-abri-southwell.jpg#mediaviewer/File:Corsica-vizzavona-abri-southwell.jpg")
assert_equal "//commons.wikimedia.org/wiki/File:Corsica-vizzavona-abri-southwell.jpg?uselang=en", link[:url]
assert_equal "File:Corsica-vizzavona-abri-southwell.jpg#mediaviewer/File:Corsica-vizzavona-abri-southwell.jpg", link[:title]
I18n.with_locale "pt-BR" do
link = wikimedia_commons_link("wikimedia_commons", "File:Test.jpg")
assert_equal "//commons.wikimedia.org/wiki/File:Test.jpg?uselang=pt-BR", link[:url]