Skip to content

Commit 2266d9d

Browse files
committed
Extend to other serializers
1 parent 0cb4015 commit 2266d9d

File tree

3 files changed

+20
-2
lines changed

3 files changed

+20
-2
lines changed

plugin.rb

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,8 @@ module ::DiscourseTranslator
5555

5656
register_modifier(:topic_serializer_fancy_title) do |fancy_title, serializer|
5757
if !SiteSetting.experimental_topic_translation ||
58-
serializer.scope.request.params["show"] == "original"
58+
serializer.scope.request.params["show"] == "original" ||
59+
serializer.object.detected_locale == I18n.locale.to_s.gsub("_", "-")
5960
fancy_title
6061
else
6162
translation = serializer.object.translation_for(I18n.locale)
@@ -65,7 +66,8 @@ module ::DiscourseTranslator
6566

6667
register_modifier(:topic_view_serializer_fancy_title) do |fancy_title, serializer|
6768
if !SiteSetting.experimental_topic_translation ||
68-
serializer.scope.request.params["show"] == "original"
69+
serializer.scope.request.params["show"] == "original" ||
70+
serializer.object.topic.detected_locale == I18n.locale.to_s.gsub("_", "-")
6971
fancy_title
7072
else
7173
translation = serializer.object.topic.translation_for(I18n.locale)

spec/serializers/basic_topic_serializer_spec.rb

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,14 @@ def serialize_topic(guardian_user: user, params: {})
4545
expect(serialize_topic.fancy_title).to eq(topic.fancy_title)
4646
end
4747

48+
it "does not replace fancy_title when topic is already in correct locale" do
49+
I18n.locale = "ja"
50+
topic.set_detected_locale("ja")
51+
topic.set_translation("ja", jap_title)
52+
53+
expect(serialize_topic.fancy_title).to eq(topic.fancy_title)
54+
end
55+
4856
it "returns translated title in fancy_title when translation exists for current locale" do
4957
topic.set_translation("ja", jap_title)
5058
expect(serialize_topic.fancy_title).to eq(jap_title)

spec/serializers/topic_view_serializer_spec.rb

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,14 @@ def serialize_topic(guardian_user: user, params: {})
6868
expect(serialize_topic.fancy_title).to eq(topic.fancy_title)
6969
end
7070

71+
it "does not replace fancy_title when topic is already in correct locale" do
72+
I18n.locale = "ja"
73+
topic.set_detected_locale("ja")
74+
topic.set_translation("ja", jap_title)
75+
76+
expect(serialize_topic.fancy_title).to eq(topic.fancy_title)
77+
end
78+
7179
it "returns translated title in fancy_title when translation exists for current locale" do
7280
topic.set_translation("ja", jap_title)
7381
expect(serialize_topic.fancy_title).to eq(jap_title)

0 commit comments

Comments
 (0)