From 184663a3ac7afcab7e10c301520614be855639c9 Mon Sep 17 00:00:00 2001
From: Paul <paulmakles@gmail.com>
Date: Wed, 4 Aug 2021 12:31:51 +0100
Subject: [PATCH] Categorise constructed languages.

---
 external/lang                          |  2 +-
 src/context/Locale.tsx                 | 24 +++++++++++++-----------
 src/pages/settings/panes/Languages.tsx | 11 +++++++++--
 3 files changed, 23 insertions(+), 14 deletions(-)

diff --git a/external/lang b/external/lang
index 0da16a5..da8e3f8 160000
--- a/external/lang
+++ b/external/lang
@@ -1 +1 @@
-Subproject commit 0da16a539dc35a0050119e1a239bd0b31eb7b962
+Subproject commit da8e3f8bb3cc01867e2f3fb731e2a5a26cdab0f5
diff --git a/src/context/Locale.tsx b/src/context/Locale.tsx
index c06b701..7572bd7 100644
--- a/src/context/Locale.tsx
+++ b/src/context/Locale.tsx
@@ -59,7 +59,7 @@ export interface LanguageEntry {
     i18n: string;
     dayjs?: string;
     rtl?: boolean;
-    alt?: boolean;
+    cat?: "const" | "alt";
 }
 
 export const Languages: { [key in Language]: LanguageEntry } = {
@@ -97,12 +97,6 @@ export const Languages: { [key in Language]: LanguageEntry } = {
     ru: { display: "Русский", emoji: "🇷🇺", i18n: "ru" },
     sr: { display: "Српски", emoji: "🇷🇸", i18n: "sr" },
     sv: { display: "Svenska", emoji: "🇸🇪", i18n: "sv" },
-    tokipona: {
-        display: "Toki Pona",
-        emoji: "🙂",
-        i18n: "tokipona",
-        dayjs: "en-gb",
-    },
     tr: { display: "Türkçe", emoji: "🇹🇷", i18n: "tr" },
     uk: { display: "Українська", emoji: "🇺🇦", i18n: "uk" },
     zh_Hans: {
@@ -112,33 +106,41 @@ export const Languages: { [key in Language]: LanguageEntry } = {
         dayjs: "zh",
     },
 
+    tokipona: {
+        display: "Toki Pona",
+        emoji: "🙂",
+        i18n: "tokipona",
+        dayjs: "en-gb",
+        cat: "const",
+    },
+
     owo: {
         display: "OwO",
         emoji: "🐱",
         i18n: "owo",
         dayjs: "en-gb",
-        alt: true,
+        cat: "alt",
     },
     pr: {
         display: "Pirate",
         emoji: "🏴‍☠️",
         i18n: "pr",
         dayjs: "en-gb",
-        alt: true,
+        cat: "alt",
     },
     bottom: {
         display: "Bottom",
         emoji: "🥺",
         i18n: "bottom",
         dayjs: "en-gb",
-        alt: true,
+        cat: "alt",
     },
     piglatin: {
         display: "Pig Latin",
         emoji: "🐖",
         i18n: "piglatin",
         dayjs: "en-gb",
-        alt: true,
+        cat: "alt",
     },
 };
 
diff --git a/src/pages/settings/panes/Languages.tsx b/src/pages/settings/panes/Languages.tsx
index 68726c4..b0329dc 100644
--- a/src/pages/settings/panes/Languages.tsx
+++ b/src/pages/settings/panes/Languages.tsx
@@ -55,7 +55,7 @@ export function Component(props: Props) {
             </h3>
             <div className={styles.list}>
                 {languages
-                    .filter(([, lang]) => !lang.alt)
+                    .filter(([, lang]) => !lang.cat)
                     .map(([x, lang]) => (
                         <Entry key={x} entry={[x, lang]} {...props} />
                     ))}
@@ -63,12 +63,19 @@ export function Component(props: Props) {
             <h3>
                 <Text id="app.settings.pages.language.const" />
             </h3>
+            <div className={styles.list}>
+                {languages
+                    .filter(([, lang]) => lang.cat === "const")
+                    .map(([x, lang]) => (
+                        <Entry key={x} entry={[x, lang]} {...props} />
+                    ))}
+            </div>
             <h3>
                 <Text id="app.settings.pages.language.other" />
             </h3>
             <div className={styles.list}>
                 {languages
-                    .filter(([, lang]) => lang.alt)
+                    .filter(([, lang]) => lang.cat === "alt")
                     .map(([x, lang]) => (
                         <Entry key={x} entry={[x, lang]} {...props} />
                     ))}
-- 
GitLab