discourse/lib/i18n/i18n_interpolation_keys_finder.rb
锦心 319075e4dd
FIX: Ensure JsLocaleHelper to not output deprecated translations (#28037)
* FIX: Ensure JsLocaleHelper to obly outputs up-to-date translations

The old implementation forgot to filter out deprecated
translations, causing these translations to incorrectly override the new
locale in the frontend.

This commit fills in the forgotten where clause, filtering only the
up-to-date part.

Related meta topic: https://meta.discourse.org/t/outdated-translation-replacement-causing-missing-translation/314352
2024-07-29 15:21:25 +08:00

14 lines
309 B
Ruby

# frozen_string_literal: true
class I18nInterpolationKeysFinder
def self.find(text)
return [] unless text.is_a? String
pattern = Regexp.union([*I18n.config.interpolation_patterns, /\{\{(\w+)\}\}/])
keys = text.scan(pattern)
keys.flatten!
keys.compact!
keys.uniq!
keys
end
end