feat: Consolidate language alias handling (#1947)

This commit is contained in:
Kroese
2026-07-24 18:46:46 +02:00
committed by GitHub
parent c739e41e7e
commit 6bfe2ff106
+87 -95
View File
@@ -202,44 +202,54 @@ getSuggestedVersion() {
getLanguage() { getLanguage() {
local id="$1" local source="$1"
local input="${1,,}"
local ret="$2" local ret="$2"
local id="$source"
local lang="" local lang=""
local desc="" local desc=""
local short="" local short=""
local culture="" local culture=""
case "${id,,}" in case "$input" in
"ar" | "ar-"* ) "ar" | "ar-"* | "arabic" | "arab" )
[[ "$input" == "arabic" || "$input" == "arab" ]] && id="ar"
short="ar" short="ar"
lang="Arabic" lang="Arabic"
culture="ar-SA" ;; culture="ar-SA" ;;
"bg" | "bg-"* ) "bg" | "bg-"* | "bulgarian" | "bu" )
[[ "$input" == "bulgarian" || "$input" == "bu" ]] && id="bg"
short="bg" short="bg"
lang="Bulgarian" lang="Bulgarian"
culture="bg-BG" ;; culture="bg-BG" ;;
"cs" | "cs-"* | "cz" | "cz-"* ) "cs" | "cs-"* | "cz" | "cz-"* | "czech" | "cesky" )
[[ "$input" == "cz" || "$input" == "czech" || "$input" == "cesky" ]] && id="cs"
short="cs" short="cs"
lang="Czech" lang="Czech"
culture="cs-CZ" ;; culture="cs-CZ" ;;
"da" | "da-"* | "dk" | "dk-"* ) "da" | "da-"* | "dk" | "dk-"* | "danish" | "danske" )
[[ "$input" == "dk" || "$input" == "danish" || "$input" == "danske" ]] && id="da"
short="da" short="da"
lang="Danish" lang="Danish"
culture="da-DK" ;; culture="da-DK" ;;
"de" | "de-"* ) "de" | "de-"* | "german" | "deutsch" )
[[ "$input" == "german" || "$input" == "deutsch" ]] && id="de"
short="de" short="de"
lang="German" lang="German"
culture="de-DE" ;; culture="de-DE" ;;
"el" | "el-"* | "gr" | "gr-"* ) "el" | "el-"* | "gr" | "gr-"* | "greek" )
[[ "$input" == "gr" || "$input" == "greek" ]] && id="el"
short="el" short="el"
lang="Greek" lang="Greek"
culture="el-GR" ;; culture="el-GR" ;;
"gb" | "en-gb" ) "gb" | "en-gb" | "british" )
[[ "$input" == "gb" || "$input" == "british" ]] && id="en-gb"
short="en-gb" short="en-gb"
lang="English International" lang="English International"
desc="English" desc="English"
culture="en-GB" ;; culture="en-GB" ;;
"en" | "en-"* ) "en" | "en-"* | "english" )
[[ "$input" == "english" ]] && id="en"
short="en" short="en"
lang="English" lang="English"
culture="en-US" ;; culture="en-US" ;;
@@ -248,15 +258,18 @@ getLanguage() {
lang="Spanish (Mexico)" lang="Spanish (Mexico)"
desc="Spanish" desc="Spanish"
culture="es-MX" ;; culture="es-MX" ;;
"es" | "es-"* ) "es" | "es-"* | "spanish" | "espanol" | "español" )
[[ "$input" == "spanish" || "$input" == "espanol" || "$input" == "español" ]] && id="es"
short="es" short="es"
lang="Spanish" lang="Spanish"
culture="es-ES" ;; culture="es-ES" ;;
"et" | "et-"* ) "et" | "et-"* | "estonian" | "eesti" )
[[ "$input" == "estonian" || "$input" == "eesti" ]] && id="et"
short="et" short="et"
lang="Estonian" lang="Estonian"
culture="et-EE" ;; culture="et-EE" ;;
"fi" | "fi-"* ) "fi" | "fi-"* | "finnish" | "suomi" )
[[ "$input" == "finnish" || "$input" == "suomi" ]] && id="fi"
short="fi" short="fi"
lang="Finnish" lang="Finnish"
culture="fi-FI" ;; culture="fi-FI" ;;
@@ -265,97 +278,119 @@ getLanguage() {
lang="French Canadian" lang="French Canadian"
desc="French" desc="French"
culture="fr-CA" ;; culture="fr-CA" ;;
"fr" | "fr-"* ) "fr" | "fr-"* | "french" | "français" | "francais" )
[[ "$input" == "french" || "$input" == "français" || "$input" == "francais" ]] && id="fr"
short="fr" short="fr"
lang="French" lang="French"
culture="fr-FR" ;; culture="fr-FR" ;;
"he" | "he-"* | "il" | "il-"* ) "he" | "he-"* | "il" | "il-"* | "hebrew" )
[[ "$input" == "il" || "$input" == "hebrew" ]] && id="he"
short="he" short="he"
lang="Hebrew" lang="Hebrew"
culture="he-IL" ;; culture="he-IL" ;;
"hr" | "hr-"* | "cr" | "cr-"* ) "hr" | "hr-"* | "cr" | "cr-"* | "croatian" | "hrvatski" )
[[ "$input" == "cr" || "$input" == "croatian" || "$input" == "hrvatski" ]] && id="hr"
short="hr" short="hr"
lang="Croatian" lang="Croatian"
culture="hr-HR" ;; culture="hr-HR" ;;
"hu" | "hu-"* ) "hu" | "hu-"* | "hungarian" | "magyar" )
[[ "$input" == "hungarian" || "$input" == "magyar" ]] && id="hu"
short="hu" short="hu"
lang="Hungarian" lang="Hungarian"
culture="hu-HU" ;; culture="hu-HU" ;;
"it" | "it-"* ) "it" | "it-"* | "italian" | "italiano" )
[[ "$input" == "italian" || "$input" == "italiano" ]] && id="it"
short="it" short="it"
lang="Italian" lang="Italian"
culture="it-IT" ;; culture="it-IT" ;;
"ja" | "ja-"* | "jp" | "jp-"* ) "ja" | "ja-"* | "jp" | "jp-"* | "japanese" )
[[ "$input" == "jp" || "$input" == "japanese" ]] && id="ja"
short="ja" short="ja"
lang="Japanese" lang="Japanese"
culture="ja-JP" ;; culture="ja-JP" ;;
"ko" | "ko-"* | "kr" | "kr-"* ) "ko" | "ko-"* | "kr" | "kr-"* | "korean" )
[[ "$input" == "kr" || "$input" == "korean" ]] && id="ko"
short="ko" short="ko"
lang="Korean" lang="Korean"
culture="ko-KR" ;; culture="ko-KR" ;;
"lt" | "lt-"* ) "lt" | "lt-"* | "lithuanian" | "lietuvos" )
[[ "$input" == "lithuanian" || "$input" == "lietuvos" ]] && id="lt"
short="lt" short="lt"
lang="Lithuanian" lang="Lithuanian"
culture="lt-LT" ;; culture="lt-LT" ;;
"lv" | "lv-"* ) "lv" | "lv-"* | "latvian" | "latvijas" )
[[ "$input" == "latvian" || "$input" == "latvijas" ]] && id="lv"
short="lv" short="lv"
lang="Latvian" lang="Latvian"
culture="lv-LV" ;; culture="lv-LV" ;;
"nb" | "nb-"* | "nn" | "nn-"* | "no" | "no-"* ) "nb" | "nb-"* | "nn" | "nn-"* | "no" | "no-"* | "norwegian" | "norsk" )
[[ "$input" == "nb" || "$input" == "no" || "$input" == "norwegian" || "$input" == "norsk" ]] && id="nn"
short="no" short="no"
lang="Norwegian" lang="Norwegian"
culture="nb-NO" ;; culture="nb-NO" ;;
"nl" | "nl-"* ) "nl" | "nl-"* | "dutch" | "nederlands" )
[[ "$input" == "dutch" || "$input" == "nederlands" ]] && id="nl"
short="nl" short="nl"
lang="Dutch" lang="Dutch"
culture="nl-NL" ;; culture="nl-NL" ;;
"pl" | "pl-"* ) "pl" | "pl-"* | "polish" | "polski" )
[[ "$input" == "polish" || "$input" == "polski" ]] && id="pl"
short="pl" short="pl"
lang="Polish" lang="Polish"
culture="pl-PL" ;; culture="pl-PL" ;;
"br" | "pt-br" ) "br" | "pt" | "pt-br" | "portuguese" | "português" | "portugues" )
[[ "$input" != "pt-br" ]] && id="pt-br"
short="pt" short="pt"
lang="Brazilian Portuguese" lang="Brazilian Portuguese"
desc="Portuguese" desc="Portuguese"
culture="pt-BR" ;; culture="pt-BR" ;;
"pt" | "pt-"* ) "pt-"* )
short="pp" short="pp"
lang="Portuguese" lang="Portuguese"
culture="pt-BR" ;; culture="pt-BR" ;;
"ro" | "ro-"* ) "ro" | "ro-"* | "romanian" | "română" | "romana" )
[[ "$input" == "romanian" || "$input" == "română" || "$input" == "romana" ]] && id="ro"
short="ro" short="ro"
lang="Romanian" lang="Romanian"
culture="ro-RO" ;; culture="ro-RO" ;;
"ru" | "ru-"* ) "ru" | "ru-"* | "russian" | "ruski" )
[[ "$input" == "russian" || "$input" == "ruski" ]] && id="ru"
short="ru" short="ru"
lang="Russian" lang="Russian"
culture="ru-RU" ;; culture="ru-RU" ;;
"sk" | "sk-"* ) "sk" | "sk-"* | "slovak" | "slovenský" | "slovensky" )
[[ "$input" == "slovak" || "$input" == "slovenský" || "$input" == "slovensky" ]] && id="sk"
short="sk" short="sk"
lang="Slovak" lang="Slovak"
culture="sk-SK" ;; culture="sk-SK" ;;
"sl" | "sl-"* | "si" | "si-"* ) "sl" | "sl-"* | "si" | "si-"* | "slovenian" | "slovenski" )
[[ "$input" == "si" || "$input" == "slovenian" || "$input" == "slovenski" ]] && id="sl"
short="sl" short="sl"
lang="Slovenian" lang="Slovenian"
culture="sl-SI" ;; culture="sl-SI" ;;
"sr" | "sr-"* ) "sr" | "sr-"* | "serbian" | "serbian latin" )
[[ "$input" == "serbian" || "$input" == "serbian latin" ]] && id="sr"
short="sr" short="sr"
lang="Serbian Latin" lang="Serbian Latin"
desc="Serbian" desc="Serbian"
culture="sr-Latn-RS" ;; culture="sr-Latn-RS" ;;
"sv" | "sv-"* | "se" | "se-"* ) "sv" | "sv-"* | "se" | "se-"* | "swedish" | "svenska" )
[[ "$input" == "se" || "$input" == "swedish" || "$input" == "svenska" ]] && id="sv"
short="sv" short="sv"
lang="Swedish" lang="Swedish"
culture="sv-SE" ;; culture="sv-SE" ;;
"th" | "th-"* ) "th" | "th-"* | "thai" )
[[ "$input" == "thai" ]] && id="th"
short="th" short="th"
lang="Thai" lang="Thai"
culture="th-TH" ;; culture="th-TH" ;;
"tr" | "tr-"* ) "tr" | "tr-"* | "turkish" | "türk" | "turk" )
[[ "$input" == "turkish" || "$input" == "türk" || "$input" == "turk" ]] && id="tr"
short="tr" short="tr"
lang="Turkish" lang="Turkish"
culture="tr-TR" ;; culture="tr-TR" ;;
"ua" | "ua-"* | "uk" | "uk-"* ) "ua" | "ua-"* | "uk" | "uk-"* | "ukrainian" )
[[ "$input" == "ua" || "$input" == "ukrainian" ]] && id="uk"
short="uk" short="uk"
lang="Ukrainian" lang="Ukrainian"
culture="uk-UA" ;; culture="uk-UA" ;;
@@ -369,21 +404,24 @@ getLanguage() {
lang="Chinese (Traditional)" lang="Chinese (Traditional)"
desc="Chinese TW" desc="Chinese TW"
culture="zh-TW" ;; culture="zh-TW" ;;
"zh" | "zh-"* | "cn" | "cn-"* ) "zh" | "zh-"* | "cn" | "cn-"* | "chinese" )
[[ "$input" == "cn" || "$input" == "chinese" ]] && id="zh"
short="cn" short="cn"
lang="Chinese (Simplified)" lang="Chinese (Simplified)"
desc="Chinese" desc="Chinese"
culture="zh-CN" ;; culture="zh-CN" ;;
esac esac
[ -z "$lang" ] && return 0
[ -z "$desc" ] && desc="$lang" [ -z "$desc" ] && desc="$lang"
case "${ret,,}" in case "${ret,,}" in
"id" ) echo "$id" ;;
"desc" ) echo "$desc" ;; "desc" ) echo "$desc" ;;
"name" ) echo "$lang" ;; "name" ) echo "$lang" ;;
"code" ) echo "$short" ;; "code" ) echo "$short" ;;
"culture" ) echo "$culture" ;; "culture" ) echo "$culture" ;;
*) echo "$desc";; * ) echo "$desc";;
esac esac
return 0 return 0
@@ -397,50 +435,16 @@ parseLanguage() {
[ -z "$LANGUAGE" ] && LANGUAGE="en" [ -z "$LANGUAGE" ] && LANGUAGE="en"
case "${LANGUAGE,,}" in local id
"arabic" | "arab" ) LANGUAGE="ar" ;; id=$(getLanguage "$LANGUAGE" "id")
"bulgarian" | "bu" ) LANGUAGE="bg" ;;
"chinese" | "cn" ) LANGUAGE="zh" ;;
"croatian" | "cr" | "hrvatski" ) LANGUAGE="hr" ;;
"czech" | "cz" | "cesky" ) LANGUAGE="cs" ;;
"danish" | "dk" | "danske" ) LANGUAGE="da" ;;
"dutch" | "nederlands" ) LANGUAGE="nl" ;;
"english" ) LANGUAGE="en" ;;
"british" | "gb" ) LANGUAGE="en-gb" ;;
"estonian" | "eesti" ) LANGUAGE="et" ;;
"finnish" | "suomi" ) LANGUAGE="fi" ;;
"french" | "français" | "francais" ) LANGUAGE="fr" ;;
"german" | "deutsch" ) LANGUAGE="de" ;;
"greek" | "gr" ) LANGUAGE="el" ;;
"hebrew" | "il" ) LANGUAGE="he" ;;
"hungarian" | "magyar" ) LANGUAGE="hu" ;;
"italian" | "italiano" ) LANGUAGE="it" ;;
"japanese" | "jp" ) LANGUAGE="ja" ;;
"korean" | "kr" ) LANGUAGE="ko" ;;
"latvian" | "latvijas" ) LANGUAGE="lv" ;;
"lithuanian" | "lietuvos" ) LANGUAGE="lt" ;;
"norwegian" | "no" | "nb" | "norsk" ) LANGUAGE="nn" ;;
"polish" | "polski" ) LANGUAGE="pl" ;;
"portuguese" | "pt" | "br" ) LANGUAGE="pt-br" ;;
"português" | "portugues" ) LANGUAGE="pt-br" ;;
"romanian" | "română" | "romana" ) LANGUAGE="ro" ;;
"russian" | "ruski" ) LANGUAGE="ru" ;;
"serbian" | "serbian latin" ) LANGUAGE="sr" ;;
"slovak" | "slovenský" | "slovensky" ) LANGUAGE="sk" ;;
"slovenian" | "si" | "slovenski" ) LANGUAGE="sl" ;;
"spanish" | "espanol" | "español" ) LANGUAGE="es" ;;
"swedish" | "se" | "svenska" ) LANGUAGE="sv" ;;
"turkish" | "türk" | "turk" ) LANGUAGE="tr" ;;
"thai" ) LANGUAGE="th" ;;
"ukrainian" | "ua" ) LANGUAGE="uk" ;;
esac
local culture if [ -z "$id" ]; then
culture=$(getLanguage "$LANGUAGE" "culture") error "Invalid LANGUAGE specified, value \"$LANGUAGE\" is not recognized!"
[ -n "$culture" ] && return 0 return 1
fi
error "Invalid LANGUAGE specified, value \"$LANGUAGE\" is not recognized!" LANGUAGE="$id"
return 1 return 0
} }
printVersion() { printVersion() {
@@ -1527,29 +1531,17 @@ getValue() {
getLink() { getLink() {
local url getValue "$1" "$2" "$3" ""
url=$(getValue "$1" "$2" "$3" "")
echo "$url"
return 0
} }
getHash() { getHash() {
local sum getValue "$1" "$2" "$3" "sum"
sum=$(getValue "$1" "$2" "$3" "sum")
echo "$sum"
return 0
} }
getSize() { getSize() {
local size getValue "$1" "$2" "$3" "size"
size=$(getValue "$1" "$2" "$3" "size")
echo "$size"
return 0
} }
isMido() { isMido() {