FIX: Looking up translation overrides by symbol failed when `count` is used (#12896)

FIX: Looking up translation overrides by symbol failed when count is used (#12896)

diff --git a/lib/i18n/backend/discourse_i18n.rb b/lib/i18n/backend/discourse_i18n.rb
index 52b387e..2fd498f 100644
--- a/lib/i18n/backend/discourse_i18n.rb
+++ b/lib/i18n/backend/discourse_i18n.rb
@@ -91,6 +91,7 @@ module I18n
         return existing_translations if scope.is_a?(Array) && scope.include?(:models)
 
         overrides = options.dig(:overrides, locale)
+        key = key.to_s
 
         if overrides
           if options[:count]
@@ -112,7 +113,7 @@ module I18n
               result = {}
 
               remapped_translations.merge(overrides).each do |k, v|
-                result[k.split('.').last.to_sym] = v if k != key && k.start_with?(key.to_s)
+                result[k.split('.').last.to_sym] = v if k != key && k.start_with?(key)
               end
               return result if result.size > 0
             end
diff --git a/spec/components/freedom_patches/translate_accelerator_spec.rb b/spec/components/freedom_patches/translate_accelerator_spec.rb
index effea35..cd52c79 100644
--- a/spec/components/freedom_patches/translate_accelerator_spec.rb
+++ b/spec/components/freedom_patches/translate_accelerator_spec.rb
@@ -179,6 +179,12 @@ describe "translate accelerator" do
       expect(I18n.t('items', count: 1)).to eq('one fish')
     end
 
+    it "works with strings and symbols for non-pluralized string when count is given" do
+      override_translation('en', 'fish', 'trout')
+      expect(I18n.t(:fish, count: 1)).to eq('trout')
+      expect(I18n.t('fish', count: 1)).to eq('trout')
+    end
+
     it "supports one and other with fallback locale" do
       override_translation('en_GB', 'items.one', 'one fish')
       override_translation('en_GB', 'items.other', '%{count} fishies')

GitHub sha: 4f36f604

This commit appears in #12896 which was approved by davidtaylorhq. It was merged by gschlager.