mirror of
https://github.com/SpotX-Official/SpotX.git
synced 2026-06-18 21:30:05 +10:00
Update for installer languages
- added Chinese Traditional, Serbian, Latvian translation https://github.com/SpotX-CLI/SpotX-Win/issues/250 https://github.com/SpotX-CLI/SpotX-Win/issues/238 https://github.com/SpotX-CLI/SpotX-Win/issues/237 - added ability to embed similar languages - fixed some minor bugs in the installer language management code
This commit is contained in:
+113
-207
@@ -117,107 +117,119 @@ function Format-LanguageCode {
|
||||
[string]$LanguageCode
|
||||
)
|
||||
|
||||
begin {
|
||||
$supportLanguages = @(
|
||||
'en', 'ru', 'it', 'tr', 'ka', 'pl', 'es', 'fr', 'hi', 'pt', 'id', 'vi', 'ro', 'de', 'hu', 'zh', 'ko', 'ua', 'fa'
|
||||
)
|
||||
}
|
||||
|
||||
process {
|
||||
# Trim the language code down to two letter code.
|
||||
switch -Regex ($LanguageCode) {
|
||||
'^en' {
|
||||
$returnCode = 'en'
|
||||
break
|
||||
}
|
||||
'^(ru|py)' {
|
||||
$returnCode = 'ru'
|
||||
break
|
||||
}
|
||||
'^it' {
|
||||
$returnCode = 'it'
|
||||
break
|
||||
}
|
||||
'^tr' {
|
||||
$returnCode = 'tr'
|
||||
break
|
||||
}
|
||||
'^ka' {
|
||||
$returnCode = 'ka'
|
||||
break
|
||||
}
|
||||
'^pl' {
|
||||
$returnCode = 'pl'
|
||||
break
|
||||
}
|
||||
'^es' {
|
||||
$returnCode = 'es'
|
||||
break
|
||||
}
|
||||
'^fr' {
|
||||
$returnCode = 'fr'
|
||||
break
|
||||
}
|
||||
'^hi' {
|
||||
$returnCode = 'hi'
|
||||
break
|
||||
}
|
||||
'^pt' {
|
||||
$returnCode = 'pt'
|
||||
break
|
||||
}
|
||||
'^id' {
|
||||
$returnCode = 'id'
|
||||
break
|
||||
}
|
||||
'^vi' {
|
||||
$returnCode = 'vi'
|
||||
break
|
||||
}
|
||||
'^ro' {
|
||||
$returnCode = 'ro'
|
||||
break
|
||||
}
|
||||
'^de' {
|
||||
$returnCode = 'de'
|
||||
break
|
||||
}
|
||||
'^hu' {
|
||||
$returnCode = 'hu'
|
||||
break
|
||||
}
|
||||
'^zh' {
|
||||
$returnCode = 'zh'
|
||||
break
|
||||
}
|
||||
'^ko' {
|
||||
$returnCode = 'ko'
|
||||
break
|
||||
}
|
||||
'^ua' {
|
||||
$returnCode = 'ua'
|
||||
break
|
||||
}
|
||||
'^fa' {
|
||||
$returnCode = 'fa'
|
||||
break
|
||||
}
|
||||
Default {
|
||||
$returnCode = $PSUICulture.Remove(2)
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
# Confirm that the language code is supported by this script.
|
||||
if ($returnCode -NotIn $supportLanguages) {
|
||||
# If the language code is not supported default to English.
|
||||
$supportLanguages = @(
|
||||
'en', 'ru', 'it', 'tr', 'ka', 'pl', 'es', 'fr', 'hi', 'pt', 'id', 'vi', 'ro', 'de', 'hu', 'zh-CN', 'zh-TW', 'ko', 'ua', 'fa', 'sr', 'lv'
|
||||
)
|
||||
|
||||
|
||||
# Trim the language code down to two letter code.
|
||||
switch -Regex ($LanguageCode) {
|
||||
'^en' {
|
||||
$returnCode = 'en'
|
||||
break
|
||||
}
|
||||
'^(ru|py)' {
|
||||
$returnCode = 'ru'
|
||||
break
|
||||
}
|
||||
'^it' {
|
||||
$returnCode = 'it'
|
||||
break
|
||||
}
|
||||
'^tr' {
|
||||
$returnCode = 'tr'
|
||||
break
|
||||
}
|
||||
'^ka' {
|
||||
$returnCode = 'ka'
|
||||
break
|
||||
}
|
||||
'^pl' {
|
||||
$returnCode = 'pl'
|
||||
break
|
||||
}
|
||||
'^es' {
|
||||
$returnCode = 'es'
|
||||
break
|
||||
}
|
||||
'^fr' {
|
||||
$returnCode = 'fr'
|
||||
break
|
||||
}
|
||||
'^hi' {
|
||||
$returnCode = 'hi'
|
||||
break
|
||||
}
|
||||
'^pt' {
|
||||
$returnCode = 'pt'
|
||||
break
|
||||
}
|
||||
'^id' {
|
||||
$returnCode = 'id'
|
||||
break
|
||||
}
|
||||
'^vi' {
|
||||
$returnCode = 'vi'
|
||||
break
|
||||
}
|
||||
'^ro' {
|
||||
$returnCode = 'ro'
|
||||
break
|
||||
}
|
||||
'^de' {
|
||||
$returnCode = 'de'
|
||||
break
|
||||
}
|
||||
'^hu' {
|
||||
$returnCode = 'hu'
|
||||
break
|
||||
}
|
||||
'^(zh|zh-CN)$' {
|
||||
$returnCode = 'zh'
|
||||
break
|
||||
}
|
||||
'^zh-TW' {
|
||||
$returnCode = 'zh-TW'
|
||||
break
|
||||
}
|
||||
'^ko' {
|
||||
$returnCode = 'ko'
|
||||
break
|
||||
}
|
||||
'^ua' {
|
||||
$returnCode = 'ua'
|
||||
break
|
||||
}
|
||||
'^fa' {
|
||||
$returnCode = 'fa'
|
||||
break
|
||||
}
|
||||
'^sr' {
|
||||
$returnCode = 'sr'
|
||||
break
|
||||
}
|
||||
'^lv' {
|
||||
$returnCode = 'lv'
|
||||
break
|
||||
}
|
||||
Default {
|
||||
$returnCode = $PSUICulture
|
||||
$long_code = $true
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
end {
|
||||
return $returnCode
|
||||
|
||||
# Checking the long language code
|
||||
if ($long_code -and $returnCode -NotIn $supportLanguages) {
|
||||
$returnCode = $PSUICulture.Remove(2)
|
||||
}
|
||||
# Checking the short language code
|
||||
if ($returnCode -NotIn $supportLanguages) {
|
||||
# If the language code is not supported default to English.
|
||||
$returnCode = 'en'
|
||||
}
|
||||
return $returnCode
|
||||
}
|
||||
|
||||
function CallLang($clg) {
|
||||
@@ -231,107 +243,17 @@ function CallLang($clg) {
|
||||
}
|
||||
catch {
|
||||
Write-Host "Error loading $clg language"
|
||||
Pause
|
||||
Exit
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function Set-ScriptLanguageStrings($LanguageCode) {
|
||||
|
||||
#Sets the language strings to be used.
|
||||
|
||||
switch ($LanguageCode) {
|
||||
'en' {
|
||||
$langStrings = CallLang -clg "en"
|
||||
break
|
||||
}
|
||||
'ru' {
|
||||
$langStrings = CallLang -clg "ru"
|
||||
break
|
||||
}
|
||||
'it' {
|
||||
$langStrings = CallLang -clg "it"
|
||||
break
|
||||
}
|
||||
'tr' {
|
||||
$langStrings = CallLang -clg "tr"
|
||||
break
|
||||
}
|
||||
'ka' {
|
||||
$langStrings = CallLang -clg "ka"
|
||||
break
|
||||
}
|
||||
'pl' {
|
||||
$langStrings = CallLang -clg "pl"
|
||||
break
|
||||
}
|
||||
'es' {
|
||||
$langStrings = CallLang -clg "es"
|
||||
break
|
||||
}
|
||||
'fr' {
|
||||
$langStrings = CallLang -clg "fr"
|
||||
break
|
||||
}
|
||||
'hi' {
|
||||
$langStrings = CallLang -clg "hi"
|
||||
break
|
||||
}
|
||||
'pt' {
|
||||
$langStrings = CallLang -clg "pt"
|
||||
break
|
||||
}
|
||||
'id' {
|
||||
$langStrings = CallLang -clg "id"
|
||||
break
|
||||
}
|
||||
'vi' {
|
||||
$langStrings = CallLang -clg "vi"
|
||||
break
|
||||
}
|
||||
'ro' {
|
||||
$langStrings = CallLang -clg "ro"
|
||||
break
|
||||
}
|
||||
'de' {
|
||||
$langStrings = CallLang -clg "de"
|
||||
break
|
||||
}
|
||||
'hu' {
|
||||
$langStrings = CallLang -clg "hu"
|
||||
break
|
||||
}
|
||||
'zh' {
|
||||
$langStrings = CallLang -clg "zh"
|
||||
break
|
||||
}
|
||||
'ko' {
|
||||
$langStrings = CallLang -clg "ko"
|
||||
break
|
||||
}
|
||||
'ua' {
|
||||
$langStrings = CallLang -clg "ua"
|
||||
break
|
||||
}
|
||||
'fa' {
|
||||
$langStrings = CallLang -clg "fa"
|
||||
break
|
||||
}
|
||||
Default {
|
||||
# Default to English if unable to find a match.
|
||||
$langStrings = CallLang -clg "en"
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return $langStrings
|
||||
}
|
||||
|
||||
# Set language code for script.
|
||||
$langCode = Format-LanguageCode -LanguageCode $Language
|
||||
|
||||
# Set script language strings.
|
||||
$lang = Set-ScriptLanguageStrings -LanguageCode $langCode
|
||||
$lang = CallLang -clg $langCode
|
||||
|
||||
# Set variable 'ru'.
|
||||
if ($langCode -eq 'ru') {
|
||||
@@ -339,25 +261,9 @@ if ($langCode -eq 'ru') {
|
||||
$urlru = "https://raw.githubusercontent.com/SpotX-CLI/SpotX-commons/main/Augmented%20translation/ru.json"
|
||||
$webjsonru = (Invoke-WebRequest -UseBasicParsing -Uri $urlru).Content | ConvertFrom-Json
|
||||
}
|
||||
# Set variable 'add translation line'.
|
||||
if ($langCode -match '^(it|tr|ka|pl|es|fr|hi|pt|id|vi|ro|de|hu|zh|ko|ua|fa)') { $line = $true }
|
||||
|
||||
# Automatic length of stars
|
||||
$au = ($lang).Author.Length + ($lang).Author2.Length
|
||||
$by = ($lang).TranslationBy.Length + ($lang).TranslationBy2.Length
|
||||
if ($au -gt $by ) { $long = $au + 1 } else { $long = $by + 1 }
|
||||
$st = ""
|
||||
$star = $st.PadLeft($long, '*')
|
||||
|
||||
Write-Host $star
|
||||
Write-Host ($lang).Author"" -NoNewline
|
||||
Write-Host ($lang).Author2 -ForegroundColor DarkYellow
|
||||
if (!($line)) { Write-Host $star`n }
|
||||
if ($line) {
|
||||
Write-Host ($lang).TranslationBy"" -NoNewline
|
||||
Write-Host ($lang).TranslationBy2 -ForegroundColor DarkYellow
|
||||
Write-Host $star`n
|
||||
}
|
||||
Write-Host ($lang).Welcom
|
||||
Write-Host ""
|
||||
|
||||
# Sending a statistical web query to cutt.ly
|
||||
$ErrorActionPreference = 'SilentlyContinue'
|
||||
|
||||
Reference in New Issue
Block a user