diff --git a/lib/redmine/wiki_formatting/common_mark/alerts_icons_filter.rb b/lib/redmine/wiki_formatting/common_mark/alerts_icons_filter.rb index 73a09b15f..6814eb85e 100644 --- a/lib/redmine/wiki_formatting/common_mark/alerts_icons_filter.rb +++ b/lib/redmine/wiki_formatting/common_mark/alerts_icons_filter.rb @@ -49,7 +49,11 @@ module Redmine next unless icon_name # Skip if no specific icon is defined for this alert type # label alert translation - node.content = ::I18n.t("label_alert_#{alert_type}", default: node.content) + label_key = "label_alert_#{alert_type}" + # Only translate if the default title has not been overridden + if node.content == ::I18n.t(label_key, locale: :en) + node.content = ::I18n.t(label_key, default: node.content) + end icon_html = ApplicationController.helpers.sprite_icon(icon_name, node.text) diff --git a/test/unit/lib/redmine/wiki_formatting/common_mark/alerts_icons_filter_test.rb b/test/unit/lib/redmine/wiki_formatting/common_mark/alerts_icons_filter_test.rb index 099c7a486..73f818147 100644 --- a/test/unit/lib/redmine/wiki_formatting/common_mark/alerts_icons_filter_test.rb +++ b/test/unit/lib/redmine/wiki_formatting/common_mark/alerts_icons_filter_test.rb @@ -52,5 +52,16 @@ if Object.const_defined?(:Commonmarker) expected = %r{#{I18n.t('label_alert_note')}} assert_match expected, html end + + def test_should_not_translate_title_if_overridden + set_language_if_valid 'de' + text = <<~MD + > [!note] Custom Note Title + > This is a note. + MD + + html = filter(format(text)) + assert_match %r{Custom Note Title}, html + end end end