mirror of
https://github.com/dockur/windows.git
synced 2026-08-03 12:37:20 +01:00
feat: Fallback to English ISO when localized downloads fail (#1910)
This commit is contained in:
+38
-3
@@ -919,6 +919,31 @@ tryDownload() {
|
|||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fallbackEnglish() {
|
||||||
|
|
||||||
|
local iso="$1"
|
||||||
|
local version="$2"
|
||||||
|
local lang="$3"
|
||||||
|
local desc="$4"
|
||||||
|
local culture msg
|
||||||
|
|
||||||
|
msg="No working download method was found for $desc, falling back to English..."
|
||||||
|
info "$msg" && html "$msg"
|
||||||
|
|
||||||
|
# Preserve the requested regional format and keyboard layout.
|
||||||
|
culture=$(getLanguage "$lang" "culture")
|
||||||
|
[ -z "$REGION" ] && REGION="$culture"
|
||||||
|
[ -z "$KEYBOARD" ] && KEYBOARD="$culture"
|
||||||
|
|
||||||
|
# Keep the original language-specific ISO filename so that restarts
|
||||||
|
# still locate the same image, but use English installation media.
|
||||||
|
LANGUAGE="en"
|
||||||
|
|
||||||
|
rm -f "$iso"
|
||||||
|
|
||||||
|
downloadImage "$iso" "$version" "$LANGUAGE"
|
||||||
|
}
|
||||||
|
|
||||||
downloadImage() {
|
downloadImage() {
|
||||||
|
|
||||||
local iso="$1"
|
local iso="$1"
|
||||||
@@ -946,12 +971,17 @@ downloadImage() {
|
|||||||
desc=$(printVersion "$version" "")
|
desc=$(printVersion "$version" "")
|
||||||
|
|
||||||
if [[ "${lang,,}" != "en" && "${lang,,}" != "en-"* ]]; then
|
if [[ "${lang,,}" != "en" && "${lang,,}" != "en-"* ]]; then
|
||||||
|
|
||||||
language=$(getLanguage "$lang" "desc")
|
language=$(getLanguage "$lang" "desc")
|
||||||
|
|
||||||
if ! validVersion "$version" "$lang"; then
|
if ! validVersion "$version" "$lang"; then
|
||||||
desc=$(printEdition "$version" "$desc")
|
desc=$(printEdition "$version" "$desc")
|
||||||
error "The $language language version of $desc is not available, please switch to English."
|
desc+=" in $language"
|
||||||
|
|
||||||
|
fallbackEnglish "$iso" "$version" "$lang" "$desc" && return 0
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
desc+=" in $language"
|
desc+=" in $language"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -1004,6 +1034,7 @@ downloadImage() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "$success" == "y" ]]; then
|
if [[ "$success" == "y" ]]; then
|
||||||
|
|
||||||
ISO="${ISO%.*}.esd"
|
ISO="${ISO%.*}.esd"
|
||||||
|
|
||||||
if tryDownload "$ISO" "$ESD" "$ESD_SUM" "$ESD_SIZE" "$lang" "$desc" "$seconds"; then
|
if tryDownload "$ISO" "$ESD" "$ESD_SUM" "$ESD_SIZE" "$lang" "$desc" "$seconds"; then
|
||||||
@@ -1011,9 +1042,9 @@ downloadImage() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
ISO="$iso"
|
ISO="$iso"
|
||||||
fi
|
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
for ((i=1;i<=MIRRORS;i++)); do
|
for ((i=1;i<=MIRRORS;i++)); do
|
||||||
|
|
||||||
@@ -1030,10 +1061,14 @@ downloadImage() {
|
|||||||
sum=$(getHash "$i" "$version" "$lang")
|
sum=$(getHash "$i" "$version" "$lang")
|
||||||
|
|
||||||
tryDownload "$iso" "$url" "$sum" "$size" "$lang" "$desc" "$seconds" && return 0
|
tryDownload "$iso" "$url" "$sum" "$size" "$lang" "$desc" "$seconds" && return 0
|
||||||
fi
|
|
||||||
|
|
||||||
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
if [[ "${lang,,}" != "en" && "${lang,,}" != "en-"* ]]; then
|
||||||
|
fallbackEnglish "$iso" "$version" "$lang" "$desc" && return 0
|
||||||
|
fi
|
||||||
|
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user