diff --git a/plugin.rb b/plugin.rb index b2d9de0a..7191efe8 100644 --- a/plugin.rb +++ b/plugin.rb @@ -73,20 +73,25 @@ module ::DiscourseTranslator register_modifier(:topic_serializer_fancy_title) do |fancy_title, serializer| if !SiteSetting.experimental_topic_translation || serializer.scope.request.params["show"] == "original" || - serializer.object.detected_locale == I18n.locale.to_s.gsub("_", "-") + serializer.object.locale_matches?(I18n.locale) fancy_title else - serializer.object.translation_for(I18n.locale).presence + serializer.object.translation_for(I18n.locale).presence&.then { |t| Topic.fancy_title(t) } end end register_modifier(:topic_view_serializer_fancy_title) do |fancy_title, serializer| if !SiteSetting.experimental_topic_translation || serializer.scope.request.params["show"] == "original" || - serializer.object.topic.detected_locale == I18n.locale.to_s.gsub("_", "-") + serializer.object.topic.locale_matches?(I18n.locale) fancy_title else - serializer.object.topic.translation_for(I18n.locale).presence + serializer + .object + .topic + .translation_for(I18n.locale) + .presence + &.then { |t| Topic.fancy_title(t) } end end end diff --git a/spec/serializers/basic_topic_serializer_spec.rb b/spec/serializers/basic_topic_serializer_spec.rb index a880e3d6..312686ed 100644 --- a/spec/serializers/basic_topic_serializer_spec.rb +++ b/spec/serializers/basic_topic_serializer_spec.rb @@ -13,8 +13,8 @@ describe "#fancy_title" do let!(:guardian) { Guardian.new(user) } - let!(:original_title) { "FUS ROH DAAHHH" } - let!(:jap_title) { "フス・ロ・ダ・ア" } + let!(:original_title) { "

FUS ROH DAAHHH

" } + let!(:jap_title) { "

フス・ロ・ダ・ア

" } before do topic.title = original_title @@ -55,7 +55,7 @@ def serialize_topic(guardian_user: user, params: {}) it "returns translated title in fancy_title when translation exists for current locale" do topic.set_translation("ja", jap_title) - expect(serialize_topic.fancy_title).to eq(jap_title) + expect(serialize_topic.fancy_title).to eq("<h1>フス・ロ・ダ・ア</h1>") end end end diff --git a/spec/serializers/topic_view_serializer_spec.rb b/spec/serializers/topic_view_serializer_spec.rb index c60f0407..62f7659c 100644 --- a/spec/serializers/topic_view_serializer_spec.rb +++ b/spec/serializers/topic_view_serializer_spec.rb @@ -36,8 +36,8 @@ fab!(:topic) let!(:guardian) { Guardian.new(user) } - let!(:original_title) { "FUS ROH DAAHHH" } - let!(:jap_title) { "フス・ロ・ダ・ア" } + let!(:original_title) { "

FUS ROH DAAHHH

" } + let!(:jap_title) { "

フス・ロ・ダ・ア

" } before do topic.title = original_title @@ -78,7 +78,7 @@ def serialize_topic(guardian_user: user, params: {}) it "returns translated title in fancy_title when translation exists for current locale" do topic.set_translation("ja", jap_title) - expect(serialize_topic.fancy_title).to eq(jap_title) + expect(serialize_topic.fancy_title).to eq("<h1>フス・ロ・ダ・ア</h1>") end end end