diff --git a/Library/Homebrew/cask/lib/hbc/auditor.rb b/Library/Homebrew/cask/lib/hbc/auditor.rb
index 6b0c1c47643732d5875197bd2de6c25f8d541516..7a6bb608fe9b339482e07c0c9ff5d9973e5fa923 100644
--- a/Library/Homebrew/cask/lib/hbc/auditor.rb
+++ b/Library/Homebrew/cask/lib/hbc/auditor.rb
@@ -1,6 +1,24 @@
 module Hbc
   class Auditor
     def self.audit(cask, audit_download: false, check_token_conflicts: false)
+      saved_languages = MacOS.instance_variable_get(:@languages)
+
+      if languages_blocks = cask.instance_variable_get(:@dsl).instance_variable_get(:@language_blocks)
+        languages_blocks.keys.map(&:first).each do |language|
+          ohai "Auditing language #{language.to_s}"
+          language = "en-US" if language == :default
+          MacOS.instance_variable_set(:@languages, [language])
+          audit_cask_instance(Hbc.load(cask.sourcefile_path), audit_download, check_token_conflicts)
+          CLI::Cleanup.run(cask.token) if audit_download
+        end
+      else
+        audit_cask_instance(cask, audit_download, check_token_conflicts)
+      end
+    ensure
+      MacOS.instance_variable_set(:@languages, saved_languages)
+    end
+
+    def self.audit_cask_instance(cask, audit_download, check_token_conflicts)
       download = audit_download && Download.new(cask)
       audit = Audit.new(cask, download:              download,
                               check_token_conflicts: check_token_conflicts)
diff --git a/Library/Homebrew/cask/lib/hbc/dsl.rb b/Library/Homebrew/cask/lib/hbc/dsl.rb
index bae395726f3ca7859a329cb7a3f8a2d6378cc93b..9970f839547663ca37ed085b9aa173f3d09564ec 100644
--- a/Library/Homebrew/cask/lib/hbc/dsl.rb
+++ b/Library/Homebrew/cask/lib/hbc/dsl.rb
@@ -122,8 +122,13 @@ module Hbc
             regexes_or_strings = regexes_or_strings - [:default] + [%r{^en}]
           end
 
-          case language
-          when *regexes_or_strings
+          regexes_or_strings.each do |regex_or_string|
+            if regex_or_string.class == language.class
+              next unless regex_or_string == language
+            else
+              next unless regex_or_string =~ language
+            end
+
             @language = block.call
             return
           end