Skip to content

Support more languages in "Hide translation" settings #2843

Open

Description

Currently, "Hide translation" settings support 30 languages: https://main.elk.zone/settings/language

But Mastodon listed 202 possible "Posting language" used in the post: https://m.webtoo.ls/settings/preferences/other

It seems that this "Posting language" is not necessarily a superset of the supported "Interface language". For example, there is only one English variation (en) in "Posting language" but there are five Chinese variants (zh, zh-CN, zh-HK, zh-TW, zh-YUE). So we'll need to handle "Posting language" and "Interface language" differently.

We can support the remaining 172 languages list for "Hide translation" even if we don't have the corresponding interface languages yet.

For reference, here's the language list created from the Mastodon UI:

[
  {
    "code": "aa",
    "name": "Afaraf"
  },
  {
    "code": "ab",
    "name": "аҧсуа бызшәа"
  },
  {
    "code": "ae",
    "name": "avesta"
  },
  {
    "code": "af",
    "name": "Afrikaans"
  },
  {
    "code": "ak",
    "name": "Akan"
  },
  {
    "code": "am",
    "name": "አማርኛ"
  },
  {
    "code": "an",
    "name": "aragonés"
  },
  {
    "code": "ar",
    "name": "اللغة العربية"
  },
  {
    "code": "as",
    "name": "অসমীয়া"
  },
  {
    "code": "av",
    "name": "авар мацӀ"
  },
  {
    "code": "ay",
    "name": "aymar aru"
  },
  {
    "code": "az",
    "name": "azərbaycan dili"
  },
  {
    "code": "ba",
    "name": "башҡорт теле"
  },
  {
    "code": "be",
    "name": "беларуская мова"
  },
  {
    "code": "bg",
    "name": "български език"
  },
  {
    "code": "bh",
    "name": "भोजपुरी"
  },
  {
    "code": "bi",
    "name": "Bislama"
  },
  {
    "code": "bm",
    "name": "bamanankan"
  },
  {
    "code": "bn",
    "name": "বাংলা"
  },
  {
    "code": "bo",
    "name": "བོད་ཡིག"
  },
  {
    "code": "br",
    "name": "brezhoneg"
  },
  {
    "code": "bs",
    "name": "bosanski jezik"
  },
  {
    "code": "ca",
    "name": "Català"
  },
  {
    "code": "ce",
    "name": "нохчийн мотт"
  },
  {
    "code": "ch",
    "name": "Chamoru"
  },
  {
    "code": "co",
    "name": "corsu"
  },
  {
    "code": "cr",
    "name": "ᓀᐦᐃᔭᐍᐏᐣ"
  },
  {
    "code": "cs",
    "name": "čeština"
  },
  {
    "code": "cu",
    "name": "ѩзыкъ словѣньскъ"
  },
  {
    "code": "cv",
    "name": "чӑваш чӗлхи"
  },
  {
    "code": "cy",
    "name": "Cymraeg"
  },
  {
    "code": "da",
    "name": "dansk"
  },
  {
    "code": "de",
    "name": "Deutsch"
  },
  {
    "code": "dv",
    "name": "Dhivehi"
  },
  {
    "code": "dz",
    "name": "རྫོང་ཁ"
  },
  {
    "code": "ee",
    "name": "Eʋegbe"
  },
  {
    "code": "el",
    "name": "Ελληνικά"
  },
  {
    "code": "en",
    "name": "English"
  },
  {
    "code": "eo",
    "name": "Esperanto"
  },
  {
    "code": "es",
    "name": "Español"
  },
  {
    "code": "et",
    "name": "eesti"
  },
  {
    "code": "eu",
    "name": "euskara"
  },
  {
    "code": "fa",
    "name": "فارسی"
  },
  {
    "code": "ff",
    "name": "Fulfulde"
  },
  {
    "code": "fi",
    "name": "suomi"
  },
  {
    "code": "fj",
    "name": "Vakaviti"
  },
  {
    "code": "fo",
    "name": "føroyskt"
  },
  {
    "code": "fr",
    "name": "Français"
  },
  {
    "code": "fy",
    "name": "Frysk"
  },
  {
    "code": "ga",
    "name": "Gaeilge"
  },
  {
    "code": "gd",
    "name": "Gàidhlig"
  },
  {
    "code": "gl",
    "name": "galego"
  },
  {
    "code": "gu",
    "name": "ગુજરાતી"
  },
  {
    "code": "gv",
    "name": "Gaelg"
  },
  {
    "code": "ha",
    "name": "هَوُسَ"
  },
  {
    "code": "he",
    "name": "עברית"
  },
  {
    "code": "hi",
    "name": "हिन्दी"
  },
  {
    "code": "ho",
    "name": "Hiri Motu"
  },
  {
    "code": "hr",
    "name": "Hrvatski"
  },
  {
    "code": "ht",
    "name": "Kreyòl ayisyen"
  },
  {
    "code": "hu",
    "name": "magyar"
  },
  {
    "code": "hy",
    "name": "Հայերեն"
  },
  {
    "code": "hz",
    "name": "Otjiherero"
  },
  {
    "code": "ia",
    "name": "Interlingua"
  },
  {
    "code": "id",
    "name": "Bahasa Indonesia"
  },
  {
    "code": "ie",
    "name": "Interlingue"
  },
  {
    "code": "ig",
    "name": "Asụsụ Igbo"
  },
  {
    "code": "ii",
    "name": "ꆈꌠ꒿ Nuosuhxop"
  },
  {
    "code": "ik",
    "name": "Iñupiaq"
  },
  {
    "code": "io",
    "name": "Ido"
  },
  {
    "code": "is",
    "name": "Íslenska"
  },
  {
    "code": "it",
    "name": "Italiano"
  },
  {
    "code": "iu",
    "name": "ᐃᓄᒃᑎᑐᑦ"
  },
  {
    "code": "ja",
    "name": "日本語"
  },
  {
    "code": "jv",
    "name": "basa Jawa"
  },
  {
    "code": "ka",
    "name": "ქართული"
  },
  {
    "code": "kg",
    "name": "Kikongo"
  },
  {
    "code": "ki",
    "name": "Gĩkũyũ"
  },
  {
    "code": "kj",
    "name": "Kuanyama"
  },
  {
    "code": "kk",
    "name": "қазақ тілі"
  },
  {
    "code": "kl",
    "name": "kalaallisut"
  },
  {
    "code": "km",
    "name": "ខេមរភាសា"
  },
  {
    "code": "kn",
    "name": "ಕನ್ನಡ"
  },
  {
    "code": "ko",
    "name": "한국어"
  },
  {
    "code": "kr",
    "name": "Kanuri"
  },
  {
    "code": "ks",
    "name": "कश्मीरी"
  },
  {
    "code": "ku",
    "name": "Kurmancî"
  },
  {
    "code": "kv",
    "name": "коми кыв"
  },
  {
    "code": "kw",
    "name": "Kernewek"
  },
  {
    "code": "ky",
    "name": "Кыргызча"
  },
  {
    "code": "la",
    "name": "latine"
  },
  {
    "code": "lb",
    "name": "Lëtzebuergesch"
  },
  {
    "code": "lg",
    "name": "Luganda"
  },
  {
    "code": "li",
    "name": "Limburgs"
  },
  {
    "code": "ln",
    "name": "Lingála"
  },
  {
    "code": "lo",
    "name": "ລາວ"
  },
  {
    "code": "lt",
    "name": "lietuvių kalba"
  },
  {
    "code": "lu",
    "name": "Tshiluba"
  },
  {
    "code": "lv",
    "name": "latviešu valoda"
  },
  {
    "code": "mg",
    "name": "fiteny malagasy"
  },
  {
    "code": "mh",
    "name": "Kajin M̧ajeļ"
  },
  {
    "code": "mi",
    "name": "te reo Māori"
  },
  {
    "code": "mk",
    "name": "македонски јазик"
  },
  {
    "code": "ml",
    "name": "മലയാളം"
  },
  {
    "code": "mn",
    "name": "Монгол хэл"
  },
  {
    "code": "mr",
    "name": "मराठी"
  },
  {
    "code": "ms",
    "name": "Bahasa Melayu"
  },
  {
    "code": "mt",
    "name": "Malti"
  },
  {
    "code": "my",
    "name": "ဗမာစာ"
  },
  {
    "code": "na",
    "name": "Ekakairũ Naoero"
  },
  {
    "code": "nb",
    "name": "Norsk bokmål"
  },
  {
    "code": "nd",
    "name": "isiNdebele"
  },
  {
    "code": "ne",
    "name": "नेपाली"
  },
  {
    "code": "ng",
    "name": "Owambo"
  },
  {
    "code": "nl",
    "name": "Nederlands"
  },
  {
    "code": "nn",
    "name": "Norsk Nynorsk"
  },
  {
    "code": "no",
    "name": "Norsk"
  },
  {
    "code": "nr",
    "name": "isiNdebele"
  },
  {
    "code": "nv",
    "name": "Diné bizaad"
  },
  {
    "code": "ny",
    "name": "chiCheŵa"
  },
  {
    "code": "oc",
    "name": "occitan"
  },
  {
    "code": "oj",
    "name": "ᐊᓂᔑᓈᐯᒧᐎᓐ"
  },
  {
    "code": "om",
    "name": "Afaan Oromoo"
  },
  {
    "code": "or",
    "name": "ଓଡ଼ିଆ"
  },
  {
    "code": "os",
    "name": "ирон æвзаг"
  },
  {
    "code": "pa",
    "name": "ਪੰਜਾਬੀ"
  },
  {
    "code": "pi",
    "name": "पाऴि"
  },
  {
    "code": "pl",
    "name": "Polski"
  },
  {
    "code": "ps",
    "name": "پښتو"
  },
  {
    "code": "pt",
    "name": "Português"
  },
  {
    "code": "qu",
    "name": "Runa Simi"
  },
  {
    "code": "rm",
    "name": "rumantsch grischun"
  },
  {
    "code": "rn",
    "name": "Ikirundi"
  },
  {
    "code": "ro",
    "name": "Română"
  },
  {
    "code": "ru",
    "name": "Русский"
  },
  {
    "code": "rw",
    "name": "Ikinyarwanda"
  },
  {
    "code": "sa",
    "name": "संस्कृतम्"
  },
  {
    "code": "sc",
    "name": "sardu"
  },
  {
    "code": "sd",
    "name": "सिन्धी"
  },
  {
    "code": "se",
    "name": "Davvisámegiella"
  },
  {
    "code": "sg",
    "name": "yângâ tî sängö"
  },
  {
    "code": "si",
    "name": "සිංහල"
  },
  {
    "code": "sk",
    "name": "slovenčina"
  },
  {
    "code": "sl",
    "name": "slovenščina"
  },
  {
    "code": "sn",
    "name": "chiShona"
  },
  {
    "code": "so",
    "name": "Soomaaliga"
  },
  {
    "code": "sq",
    "name": "Shqip"
  },
  {
    "code": "sr",
    "name": "српски језик"
  },
  {
    "code": "ss",
    "name": "SiSwati"
  },
  {
    "code": "st",
    "name": "Sesotho"
  },
  {
    "code": "su",
    "name": "Basa Sunda"
  },
  {
    "code": "sv",
    "name": "Svenska"
  },
  {
    "code": "sw",
    "name": "Kiswahili"
  },
  {
    "code": "ta",
    "name": "தமிழ்"
  },
  {
    "code": "te",
    "name": "తెలుగు"
  },
  {
    "code": "tg",
    "name": "тоҷикӣ"
  },
  {
    "code": "th",
    "name": "ไทย"
  },
  {
    "code": "ti",
    "name": "ትግርኛ"
  },
  {
    "code": "tk",
    "name": "Türkmen"
  },
  {
    "code": "tl",
    "name": "Wikang Tagalog"
  },
  {
    "code": "tn",
    "name": "Setswana"
  },
  {
    "code": "to",
    "name": "faka Tonga"
  },
  {
    "code": "tr",
    "name": "Türkçe"
  },
  {
    "code": "ts",
    "name": "Xitsonga"
  },
  {
    "code": "tt",
    "name": "татар теле"
  },
  {
    "code": "tw",
    "name": "Twi"
  },
  {
    "code": "ty",
    "name": "Reo Tahiti"
  },
  {
    "code": "ug",
    "name": "ئۇيغۇرچە‎"
  },
  {
    "code": "uk",
    "name": "Українська"
  },
  {
    "code": "ur",
    "name": "اردو"
  },
  {
    "code": "uz",
    "name": "Ўзбек"
  },
  {
    "code": "ve",
    "name": "Tshivenḓa"
  },
  {
    "code": "vi",
    "name": "Tiếng Việt"
  },
  {
    "code": "vo",
    "name": "Volapük"
  },
  {
    "code": "wa",
    "name": "walon"
  },
  {
    "code": "wo",
    "name": "Wollof"
  },
  {
    "code": "xh",
    "name": "isiXhosa"
  },
  {
    "code": "yi",
    "name": "ייִדיש"
  },
  {
    "code": "yo",
    "name": "Yorùbá"
  },
  {
    "code": "za",
    "name": "Saɯ cueŋƅ"
  },
  {
    "code": "zh",
    "name": "中文"
  },
  {
    "code": "zu",
    "name": "isiZulu"
  },
  {
    "code": "zh-CN",
    "name": "简体中文"
  },
  {
    "code": "zh-HK",
    "name": "繁體中文(香港)"
  },
  {
    "code": "zh-TW",
    "name": "繁體中文(臺灣)"
  },
  {
    "code": "zh-YUE",
    "name": "廣東話"
  },
  {
    "code": "ast",
    "name": "Asturianu"
  },
  {
    "code": "chr",
    "name": "ᏣᎳᎩ ᎦᏬᏂᎯᏍᏗ"
  },
  {
    "code": "ckb",
    "name": "سۆرانی"
  },
  {
    "code": "cnr",
    "name": "crnogorski"
  },
  {
    "code": "jbo",
    "name": "la .lojban."
  },
  {
    "code": "kab",
    "name": "Taqbaylit"
  },
  {
    "code": "ldn",
    "name": "Láadan"
  },
  {
    "code": "lfn",
    "name": "lingua franca nova"
  },
  {
    "code": "sco",
    "name": "Scots"
  },
  {
    "code": "sma",
    "name": "Åarjelsaemien Gïele"
  },
  {
    "code": "smj",
    "name": "Julevsámegiella"
  },
  {
    "code": "szl",
    "name": "ślůnsko godka"
  },
  {
    "code": "tok",
    "name": "toki pona"
  },
  {
    "code": "xal",
    "name": "Хальмг келн"
  },
  {
    "code": "zba",
    "name": "باليبلن"
  },
  {
    "code": "zgh",
    "name": "ⵜⴰⵎⴰⵣⵉⵖⵜ"
  }
]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

No one assigned

    Labels

    c: featureRequest for new featureRequest for new featurec: i18nEnhance i18nEnhance i18n

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions