diff --git a/lib/freedom_patches/translate_accelerator.rb b/lib/freedom_patches/translate_accelerator.rb index fe737f52578..d2ca7a30c31 100644 --- a/lib/freedom_patches/translate_accelerator.rb +++ b/lib/freedom_patches/translate_accelerator.rb @@ -68,7 +68,7 @@ module I18n target = opts[:backend] || backend results = opts[:overridden] ? {} : target.search(config.locale, query) - regexp = /#{query}/i + regexp = /#{Regexp.escape(query)}/i (overrides_by_locale(locale) || {}).each do |k, v| results.delete(k) results[k] = v if (k =~ regexp || v =~ regexp) diff --git a/spec/components/discourse_i18n_spec.rb b/spec/components/discourse_i18n_spec.rb index bf51e6e7251..77c287ed073 100644 --- a/spec/components/discourse_i18n_spec.rb +++ b/spec/components/discourse_i18n_spec.rb @@ -116,7 +116,9 @@ describe I18n::Backend::DiscourseI18n do TranslationOverride.upsert!('en', 'wat', 'Overwritten value') expect(I18n.search('wat', backend: backend)).to eq('wat' => 'Overwritten value') expect(I18n.search('Overwritten', backend: backend)).to eq('wat' => 'Overwritten value') - expect(I18n.search('Hello', backend: backend)).to eq({}) + + TranslationOverride.upsert!('en', 'wat', 'Overwritten with (parentheses)') + expect(I18n.search('Overwritten with (', backend: backend)).to eq('wat' => 'Overwritten with (parentheses)') end it 'supports disabling' do