From 1f5cbb9a44e7f263cba29ba8742c65a3982b80e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Guitaut?= Date: Tue, 30 Jul 2024 03:56:46 +0200 Subject: [PATCH] DEV: Refactor translation overrides a bit (#28125) This is a small followup of https://github.com/discourse/discourse/pull/28037. --- app/models/translation_override.rb | 8 +++----- lib/i18n/i18n_interpolation_keys_finder.rb | 2 +- spec/lib/js_locale_helper_spec.rb | 10 +++++++--- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/app/models/translation_override.rb b/app/models/translation_override.rb index e2d74796429..3ded31ce20d 100644 --- a/app/models/translation_override.rb +++ b/app/models/translation_override.rb @@ -50,13 +50,11 @@ class TranslationOverride < ActiveRecord::Base enum status: { up_to_date: 0, outdated: 1, invalid_interpolation_keys: 2, deprecated: 3 } scope :mf_locales, - ->(locale) do - where(locale: locale).where.not(status: "deprecated").where("translation_key LIKE '%_MF'") - end + ->(locale) { not_deprecated.where(locale: locale).where("translation_key LIKE '%_MF'") } scope :client_locales, ->(locale) do - where(locale: locale) - .where.not(status: "deprecated") + not_deprecated + .where(locale: locale) .where("translation_key LIKE 'js.%' OR translation_key LIKE 'admin_js.%'") .where.not("translation_key LIKE '%_MF'") end diff --git a/lib/i18n/i18n_interpolation_keys_finder.rb b/lib/i18n/i18n_interpolation_keys_finder.rb index 325df214950..fbcad88a15e 100644 --- a/lib/i18n/i18n_interpolation_keys_finder.rb +++ b/lib/i18n/i18n_interpolation_keys_finder.rb @@ -2,7 +2,7 @@ class I18nInterpolationKeysFinder def self.find(text) - return [] unless text.is_a? String + return [] unless text.is_a?(String) pattern = Regexp.union([*I18n.config.interpolation_patterns, /\{\{(\w+)\}\}/]) keys = text.scan(pattern) keys.flatten! diff --git a/spec/lib/js_locale_helper_spec.rb b/spec/lib/js_locale_helper_spec.rb index 7a4a22f6808..7ba797febc9 100644 --- a/spec/lib/js_locale_helper_spec.rb +++ b/spec/lib/js_locale_helper_spec.rb @@ -262,7 +262,9 @@ RSpec.describe JsLocaleHelper do end describe ".output_client_overrides" do - it "should not output deprecated translation overrides" do + subject(:client_overrides) { described_class.output_client_overrides("en") } + + before do Fabricate( :translation_override, locale: "en", @@ -276,9 +278,11 @@ RSpec.describe JsLocaleHelper do value: "SHOULD_NOT_SHOW", status: "deprecated", ) + end - expect(described_class.output_client_overrides("en").include? "SHOULD_SHOW").to eq(true) - expect(described_class.output_client_overrides("en").include? "SHOULD_NOT_SHOW").to eq(false) + it "does not output deprecated translation overrides" do + expect(client_overrides).to include("SHOULD_SHOW") + expect(client_overrides).not_to include("SHOULD_NOT_SHOW") end end end