Merged r24077, r24079, r24081, r24082 and r24093 from trunk to 6.1-stable (#43379).

git-svn-id: https://svn.redmine.org/redmine/branches/6.1-stable@24101 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Marius Balteanu
2025-11-01 09:32:10 +00:00
parent f04e64f398
commit 5e3f394df3
3 changed files with 78 additions and 0 deletions

View File

@@ -1171,6 +1171,11 @@ en:
label_oauth_admin_access: Administration
label_oauth_application_plural: Applications
label_oauth_authorized_application_plural: Authorized applications
label_alert_note: Note
label_alert_tip: Tip
label_alert_warning: Warning
label_alert_caution: Caution
label_alert_important: Important
button_login: Login
button_submit: Submit

View File

@@ -48,6 +48,12 @@ module Redmine
icon_name = ALERT_TYPE_TO_ICON_NAME[alert_type]
next unless icon_name # Skip if no specific icon is defined for this alert type
# Translate the alert title only if it matches a known alert type
# (i.e., the title has not been overridden)
if ALERT_TYPE_TO_ICON_NAME.key?(node.content.downcase)
node.content = ::I18n.t("label_alert_#{alert_type}", default: node.content)
end
icon_html = ApplicationController.helpers.sprite_icon(icon_name, node.text)
if icon_html

View File

@@ -0,0 +1,67 @@
# frozen_string_literal: true
# Redmine - project management software
# Copyright (C) 2006- Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
require_relative '../../../../../test_helper'
if Object.const_defined?(:Commonmarker)
require 'redmine/wiki_formatting/common_mark/alerts_icons_filter'
class Redmine::WikiFormatting::CommonMark::AlertsIconsFilterTest < ActiveSupport::TestCase
include Redmine::I18n
def format(markdown)
Redmine::WikiFormatting::CommonMark::MarkdownFilter.to_html(markdown, Redmine::WikiFormatting::CommonMark::PIPELINE_CONFIG)
end
def filter(html)
Redmine::WikiFormatting::CommonMark::AlertsIconsFilter.to_html(html, @options)
end
def setup
@options = { }
end
def teardown
set_language_if_valid 'en'
end
def test_should_render_alert_blocks_with_localized_labels
set_language_if_valid 'de'
text = <<~MD
> [!note]
> This is a note.
MD
html = filter(format(text))
expected = %r{<span class="icon-label">#{I18n.t('label_alert_note')}</span>}
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{<span class="icon-label">Custom Note Title</span>}, html
end
end
end