diff --git a/apps/client/src/widgets/type_widgets/options/i18n.tsx b/apps/client/src/widgets/type_widgets/options/i18n.tsx
index 309f164bb..d69e2a395 100644
--- a/apps/client/src/widgets/type_widgets/options/i18n.tsx
+++ b/apps/client/src/widgets/type_widgets/options/i18n.tsx
@@ -24,9 +24,13 @@ export default function InternationalizationOptions() {
function LocalizationOptions() {
const { uiLocales, formattingLocales: contentLocales } = useMemo(() => {
- const allLocales = getAvailableLocales();
+ const allLocales = getAvailableLocales();
return {
- uiLocales: allLocales.filter(locale => !locale.contentOnly),
+ uiLocales: allLocales.filter(locale => {
+ if (locale.contentOnly) return false;
+ if (locale.devOnly && !glob.isDev) return false;
+ return true;
+ }),
formattingLocales: allLocales.filter(locale => locale.electronLocale),
}
}, []);
@@ -53,7 +57,7 @@ function LocaleSelector({ id, locales, currentValue, onChange }: { id?: string;
return ;
}
@@ -74,7 +78,7 @@ function DateSettings() {
]}
currentValue={firstDayOfWeek} onChange={setFirstDayOfWeek}
/>
-
+
({ days: String(i + 1) }))} />
}
@@ -139,4 +143,4 @@ export function ContentLanguagesList() {
columnWidth="300px"
/>
);
-}
\ No newline at end of file
+}
diff --git a/packages/commons/src/lib/i18n.ts b/packages/commons/src/lib/i18n.ts
index a6679f542..4941c2db7 100644
--- a/packages/commons/src/lib/i18n.ts
+++ b/packages/commons/src/lib/i18n.ts
@@ -5,6 +5,8 @@ export interface Locale {
rtl?: boolean;
/** `true` if the language is not supported by the application as a display language, but it is selectable by the user for the content. */
contentOnly?: boolean;
+ /** `true` if the language should only be visible while in development mode, and not in production. */
+ devOnly?: boolean;
/** The value to pass to `--lang` for the Electron instance in order to set it as a locale. Not setting it will hide it from the list of supported locales. */
electronLocale?: "en" | "de" | "es" | "fr" | "zh_CN" | "zh_TW" | "ro" | "af" | "am" | "ar" | "bg" | "bn" | "ca" | "cs" | "da" | "el" | "en_GB" | "es_419" | "et" | "fa" | "fi" | "fil" | "gu" | "he" | "hi" | "hr" | "hu" | "id" | "it" | "ja" | "kn" | "ko" | "lt" | "lv" | "ml" | "mr" | "ms" | "nb" | "nl" | "pl" | "pt_BR" | "pt_PT" | "ru" | "sk" | "sl" | "sr" | "sv" | "sw" | "ta" | "te" | "th" | "tr" | "uk" | "ur" | "vi";
}
@@ -28,7 +30,13 @@ const UNSORTED_LOCALES: Locale[] = [
*
* These are only displayed while in dev mode, to test some language particularities (such as RTL) more easily.
*/
- { id: "en_rtl", name: "English (right-to-left) [dev]", electronLocale: "en", rtl: true },
+ {
+ id: "en_rtl",
+ name: "English (right-to-left) [dev]",
+ electronLocale: "en",
+ rtl: true,
+ devOnly: true
+ },
/*
* Right to left languages