2025-04-18 10:04:06 +03:00
export interface Locale {
id : string ;
name : string ;
/** `true` if the language is a right-to-left one, or `false` if it's left-to-right. */
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 ;
/** 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. */
2025-08-08 08:35:02 +03:00
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" ;
2025-04-28 10:56:20 +03:00
}
2025-08-08 08:35:02 +03:00
const UNSORTED_LOCALES : Locale [ ] = [
2025-04-28 10:56:20 +03:00
{
id : "en" ,
name : "English" ,
2025-06-15 19:57:37 +03:00
electronLocale : "en"
2025-04-28 10:56:20 +03:00
} ,
{
id : "de" ,
name : "Deutsch" ,
electronLocale : "de"
} ,
{
id : "es" ,
name : "Español" ,
electronLocale : "es"
} ,
{
id : "fr" ,
name : "Français" ,
electronLocale : "fr"
} ,
{
id : "cn" ,
name : "简体中文" ,
electronLocale : "zh_CN"
} ,
{
id : "tw" ,
name : "繁體中文" ,
electronLocale : "zh_TW"
} ,
{
id : "ro" ,
name : "Română" ,
electronLocale : "ro"
} ,
2025-08-07 23:44:11 +03:00
{
id : "ru" ,
name : "Русский" ,
electronLocale : "ru"
} ,
2025-08-24 10:53:21 +03:00
{
id : "uk" ,
name : "Українська" ,
electronLocale : "uk"
} ,
2025-08-14 14:51:53 +03:00
{
id : "ja" ,
name : "日本語" ,
electronLocale : "ja"
} ,
2025-04-28 10:56:20 +03:00
/ *
* Right to left languages
*
* Currently they are only for setting the language of text notes .
* /
{ // Arabic
id : "ar" ,
name : "اَلْعَرَبِيَّةُ" ,
rtl : true ,
contentOnly : true
} ,
{ // Hebrew
id : "he" ,
name : "עברית" ,
rtl : true ,
contentOnly : true
} ,
{ // Kurdish
id : "ku" ,
name : "کوردی" ,
rtl : true ,
contentOnly : true
} ,
{ // Persian
id : "fa" ,
name : "فارسی" ,
rtl : true ,
contentOnly : true
}
2025-05-25 14:09:51 +03:00
] as const ;
export const LOCALES : Locale [ ] = Array . from ( UNSORTED_LOCALES )
. sort ( ( a , b ) = > a . name . localeCompare ( b . name ) ) ;
export type LOCALE_IDS = typeof UNSORTED_LOCALES [ number ] [ "id" ] ;