From 54bddc1ad76262a20f66cfb592d67fc593d589b2 Mon Sep 17 00:00:00 2001
From: Cam Saul <1455846+camsaul@users.noreply.github.com>
Date: Fri, 8 Dec 2023 17:23:53 -0800
Subject: [PATCH] Use `sorted-set` for `locales.clj` so order doesn't change
 every time we add a new language (#36617)

---
 bin/build/src/i18n/common.clj | 10 +++++----
 resources/locales.clj         | 42 ++++++++++++++++++++---------------
 2 files changed, 30 insertions(+), 22 deletions(-)

diff --git a/bin/build/src/i18n/common.clj b/bin/build/src/i18n/common.clj
index b4186c6cf8b..a86439b6c59 100644
--- a/bin/build/src/i18n/common.clj
+++ b/bin/build/src/i18n/common.clj
@@ -13,10 +13,12 @@
 
     (locales) ; -> #{\"nl\" \"pt\" \"zh\" \"tr\" \"it\" \"fa\" ...}"
   []
-  (set (for [^java.io.File file (.listFiles (io/file (u/filename u/project-root-directory "locales")))
-             :let               [file-name (.getName file)]
-             :when              (str/ends-with? file-name ".po")]
-         (str/replace file-name #"\.po$" ""))))
+  (into
+   (sorted-set)
+   (for [^java.io.File file (.listFiles (io/file (u/filename u/project-root-directory "locales")))
+         :let               [file-name (.getName file)]
+         :when              (str/ends-with? file-name ".po")]
+     (str/replace file-name #"\.po$" ""))))
 
 (defn locale-source-po-filename
   "E.g.
diff --git a/resources/locales.clj b/resources/locales.clj
index cd1d2a8a996..de3015b77bf 100644
--- a/resources/locales.clj
+++ b/resources/locales.clj
@@ -1,28 +1,34 @@
 {:locales
- #{"nl"
+ #{"ar"
+   "ar-SA"
+   "bg"
+   "ca"
+   "cs"
+   "de"
    "en"
-   "zh"
-   "sr"
-   "tr"
-   "it"
+   "es"
    "fa"
-   "vi"
-   "zh-TW"
+   "fr"
    "id"
-   "uk"
+   "it"
+   "ja"
+   "ko"
+   "lv"
+   "nb"
+   "nl"
    "pl"
-   "ca"
-   "sv"
-   "zh-HK"
-   "fr"
    "pt-BR"
-   "de"
-   "nb"
    "ru"
    "sk"
-   "es"
-   "ja"
-   "cs"
-   "bg"},
+   "sq"
+   "sr"
+   "sv"
+   "tr"
+   "uk"
+   "vi"
+   "zh"
+   "zh-CN"
+   "zh-HK"
+   "zh-TW"},
  :packages ["metabase"],
  :bundle "metabase.Messages"}
-- 
GitLab