diff --git a/app/lib/search_query_transformer.rb b/app/lib/search_query_transformer.rb
index f1fc687e4734a64b59f8edd2b8d9175ac6c836ad..86e3f500058ec372603f785d47a369378944c346 100644
--- a/app/lib/search_query_transformer.rb
+++ b/app/lib/search_query_transformer.rb
@@ -98,7 +98,7 @@ class SearchQueryTransformer < Parslet::Transform
       when 'language'
         @filter = :language
         @type = :term
-        @term = term
+        @term = language_code_from_term(term)
       when 'from'
         @filter = :account_id
         @type = :term
@@ -137,6 +137,22 @@ class SearchQueryTransformer < Parslet::Transform
       # an ID that does not exist
       account&.id || -1
     end
+
+    def language_code_from_term(term)
+      language_code = term
+
+      return language_code if LanguagesHelper::SUPPORTED_LOCALES.key?(language_code.to_sym)
+
+      language_code = term.downcase
+
+      return language_code if LanguagesHelper::SUPPORTED_LOCALES.key?(language_code.to_sym)
+
+      language_code = term.split(/[_-]/).first.downcase
+
+      return language_code if LanguagesHelper::SUPPORTED_LOCALES.key?(language_code.to_sym)
+
+      term
+    end
   end
 
   rule(clause: subtree(:clause)) do