Added a function to assign language strings.

Added a function to assign language strings to improve the organization of the script and increase future flexibility.

This should not cause any issues or require any other changes to the script.

Removed lines 69 to 201
Added lines 69 to 256
This commit is contained in:
Dustin Dembeck
2022-07-06 17:25:24 -07:00
committed by GitHub
parent d750a447ba
commit c16777beab

View File

@@ -66,139 +66,194 @@ param (
# Ignore errors from `Stop-Process`
$PSDefaultParameterValues['Stop-Process:ErrorAction'] = [System.Management.Automation.ActionPreference]::SilentlyContinue
function Set-ScriptLanguage
{
<#
.SYNOPSIS
Sets the language strings to be used.
function langRu() {
.DESCRIPTION
Returns an object with language strings. Use the 'LangCode' switch to specify a language, or use without parameters to detect the system language.
ConvertFrom-StringData -StringData @'
Author = Автор:
Incorrect = Ой, некорректное значение,
Incorrect2 = повторите ввод через
CuttError = Ошибка запроса в cutt
Download = Ошибка загрузки
Download2 = Повторный запрос через 5 секунд...
Download3 = Опять ошибка
Download4 = Попробуйте проверить подключение к интернету и снова запустить установку
Download5 = Загрузка Spotify
StopScrpit = Cкрипт остановлен
MsSpoti = Обнаружена версия Spotify из Microsoft Store, которая не поддерживается
MsSpoti2 = Хотите удалить Spotify Microsoft Store ? [Y/N]
MsSpoti3 = Автоматическое удаление Spotify MS...
MsSpoti4 = Удаление Spotify MS...
Prem = Модификация для премиум аккаунта...
DownBts = Загружаю последний патч BTS...
OldV = Найдена устаревшая версия Spotify
OldV2 = Ваша версия Spotify {0} устарела, рекомендуется обновиться до {1}
OldV3 = Обновить ? [Y/N]
AutoUpd = Автоматическое обновление до рекомендуемой версии
DelOrOver = Вы хотите удалить текущую версию {0} или установить поверх нее? Y [Удалить] / N [Поверх]
DelOld = Удаление устаревшего Spotify...
NewV = Найдена неподдерживаемая версия Spotify
NewV2 = Ваша версия Spotify {0} еще не тестировалась, стабильная версия сейчас {1}
NewV3 = Хотите продолжить с {0} (возможны ошибки) ? [Y/N]
Recom = Хотите установить рекомендуемую {0} версию ? [Y/N]
DelNew = Удаление неподдерживаемого Spotify...
DownSpoti = Загружаю и устанавливаю Spotify
DownSpoti2 = Пожалуйста подождите...
PodcatsOff = Подкасты отключены
PodcastsOn = Подкасты не отключены
PodcatsSelect = Хотите отключить подкасты ? [Y/N]
DowngradeNote = Рекомендуется заблокировать т.к. было понижение версии Spotify
UpdBlock = Обновления заблокированы
UpdUnblock = Обновления не заблокированы
UpdSelect = Хотите заблокировать обновления ? [Y/N]
CacheOn = Очистка кеша включена ({0})
CacheOff = Очистка кеша не включена
CacheSelect = Хотите установить автоматическую очистку кеша ? [Y/N]
CacheDays = Кэш старше: XX дней будет очищен
CacheDays2 = Пожалуйста, введите количество дней от 1 до 100
NoVariable = Не нашел переменную
NoVariable2 = в xpui.js
NoVariable3 = в licenses.html
NoVariable4 = в html
NoVariable5 = в ru.json
ModSpoti = Модифицирую Spotify...
Error = Ошибка
FileLocBroken = Расположение файлов Spotify нарушено, удалите клиент и снова запустите скрипт
Spicetify = Обнаружен Spicetify
NoRestore = SpotX уже был установлен, но файлы для восстановления xpui.js.bak и xpui.css.bak не найдены. `nУдалите клиент Spotify и снова запустите Install.bat
ExpOff = Экспереметальные функции отключены
NoRestore2 = SpotX уже был установлен, но файл для восстановления xpui.bak не найден. `nУдалите клиент Spotify и снова запустите Install.bat
UpdateBlocked = Обновления Spotify уже заблокированы
UpdateError = Не удалось заблокировать обновления
NoSpotifyExe = Spotify.exe не найден
InstallComplete = Установка завершена
'@
.PARAMETER LangCode
Specify the language to be used. Two letter language codes (ex: 'en' or 'ru') and four letter language culture codes accepted (ex: 'en-US' or 'ru-RU').
Default is to attempt to detect system language.
.EXAMPLE
PS C:\> Set-ScriptLanguage
.EXAMPLE
PS C:\> Set-ScriptLanguage -LangCode 'en'
#>
[CmdletBinding()]
[OutputType([object])]
param
(
[Parameter(HelpMessage = 'Two, three, or four letter language names accepted.')]
[ValidateScript({ $_ -match '^(en|ru|py)' })]
[string]$LangCode
)
BEGIN
{
# Define language strings.
$langStringsEN = [PSCustomObject]@{
Author = "Author:"
Incorrect = "Oops, an incorrect value,"
Incorrect2 = "enter again through "
CuttError = "Request error in cutt"
Download = "Error downloading"
Download2 = "Will re-request in 5 seconds..."
Download3 = "Error again"
Download4 = "Try to check your internet connection and run the installation again"
Download5 = "Downloading Spotify"
StopScrpit = "Script is stopped"
MsSpoti = "The Microsoft Store version of Spotify has been detected which is not supported"
MsSpoti2 = "Uninstall Spotify Windows Store edition [Y/N]"
MsSpoti3 = "Automatic uninstalling Spotify MS..."
MsSpoti4 = "Uninstalling Spotify MS..."
Prem = "Modification for premium account..."
DownBts = "Downloading latest patch BTS..."
OldV = "Found outdated version of Spotify"
OldV2 = "Your Spotify {0} version is outdated, it is recommended to upgrade to {1}"
OldV3 = "Want to update ? [Y/N]"
AutoUpd = "Automatic update to the recommended version"
DelOrOver = "Do you want to uninstall the current version of {0} or install over it? Y [Uninstall] / N [Install Over]"
DelOld = "Uninstalling old Spotify..."
NewV = "Unsupported version of Spotify found"
NewV2 = "Your Spotify {0} version hasn't been tested yet, currently it's a stable {1} version"
NewV3 = "Do you want to continue with {0} version (errors possible) ? [Y/N]"
Recom = "Do you want to install the recommended {0} version ? [Y/N]"
DelNew = "Uninstalling an untested Spotify..."
DownSpoti = "Downloading and installing Spotify"
DownSpoti2 = "Please wait..."
PodcatsOff = "Off Podcasts"
PodcastsOn = "On Podcasts"
PodcatsSelect = "Want to turn off podcasts ? [Y/N]"
DowngradeNote = "It is recommended to block because there was a downgrade of Spotify"
UpdBlock = "Updates blocked"
UpdUnblock = "Updates are not blocked"
UpdSelect = "Want to block updates ? [Y/N]"
CacheOn = "Clear cache enabled ({0})"
CacheOff = "Clearing the cache is not enabled"
CacheSelect = "Want to set up automatic cache cleanup? [Y/N]"
CacheDays = "Cache older: XX days to be cleared "
CacheDays2 = "Enter the number of days from 1 to 100"
NoVariable = "Didn't find variable"
NoVariable2 = "in xpui.js"
NoVariable3 = "in licenses.html"
NoVariable4 = "in html"
ModSpoti = "Patching Spotify..."
Error = "Error"
FileLocBroken = "Location of Spotify files is broken, uninstall the client and run the script again"
Spicetify = "Spicetify detected"
NoRestore = "SpotX has already been installed, xpui.js and xpui.css not found. `nPlease uninstall Spotify client and run Install.bat again"
ExpOff = "Experimental features disabled"
NoRestore2 = "SpotX has already been installed, xpui.bak not found. `nPlease uninstall Spotify client and run Install.bat again"
UpdateBlocked = "Spotify updates are already blocked"
UpdateError = "Failed to block updates"
NoSpotifyExe = "Could not find Spotify.exe"
InstallComplete = "installation completed"
}
$langStringsRU = [PSCustomObject]@{
Author = "Автор:"
Incorrect = "Ой, некорректное значение,"
Incorrect2 = "повторите ввод через"
CuttError = "Ошибка запроса в cutt"
Download = "Ошибка загрузки"
Download2 = "Повторный запрос через 5 секунд..."
Download3 = "Опять ошибка"
Download4 = "Попробуйте проверить подключение к интернету и снова запустить установку"
Download5 = "Загрузка Spotify"
StopScrpit = "рипт остановлен"
MsSpoti = "Обнаружена версия Spotify из Microsoft Store, которая не поддерживается"
MsSpoti2 = "Хотите удалить Spotify Microsoft Store ? [Y/N]"
MsSpoti3 = "Автоматическое удаление Spotify MS..."
MsSpoti4 = "Удаление Spotify MS..."
Prem = "Модификация для премиум аккаунта..."
DownBts = "Загружаю последний патч BTS..."
OldV = "Найдена устаревшая версия Spotify"
OldV2 = "Ваша версия Spotify {0} устарела, рекомендуется обновиться до {1}"
OldV3 = "Обновить ? [Y/N]"
AutoUpd = "Автоматическое обновление до рекомендуемой версии"
DelOrOver = "Вы хотите удалить текущую версию {0} или установить поверх нее? Y [Удалить] / N [Поверх]"
DelOld = "Удаление устаревшего Spotify..."
NewV = "Найдена неподдерживаемая версия Spotify"
NewV2 = "Ваша версия Spotify {0} еще не тестировалась, стабильная версия сейчас {1}"
NewV3 = "Хотите продолжить с {0} (возможны ошибки) ? [Y/N]"
Recom = "Хотите установить рекомендуемую {0} версию ? [Y/N]"
DelNew = "Удаление неподдерживаемого Spotify..."
DownSpoti = "Загружаю и устанавливаю Spotify"
DownSpoti2 = "Пожалуйста подождите..."
PodcatsOff = "Подкасты отключены"
PodcastsOn = "Подкасты не отключены"
PodcatsSelect = "Хотите отключить подкасты ? [Y/N]"
DowngradeNote = "Рекомендуется заблокировать т.к. было понижение версии Spotify"
UpdBlock = "Обновления заблокированы"
UpdUnblock = "Обновления не заблокированы"
UpdSelect = "Хотите заблокировать обновления ? [Y/N]"
CacheOn = "Очистка кеша включена ({0})"
CacheOff = "Очистка кеша не включена"
CacheSelect = "Хотите установить автоматическую очистку кеша ? [Y/N]"
CacheDays = "Кэш старше: XX дней будет очищен"
CacheDays2 = "Пожалуйста, введите количество дней от 1 до 100"
NoVariable = "Не нашел переменную"
NoVariable2 = "в xpui.js"
NoVariable3 = "в licenses.html"
NoVariable4 = "в html"
NoVariable5 = "в ru.json"
ModSpoti = "Модифицирую Spotify..."
Error = "Ошибка"
FileLocBroken = "Расположение файлов Spotify нарушено, удалите клиент и снова запустите скрипт"
Spicetify = "Обнаружен Spicetify"
NoRestore = "SpotX уже был установлен, но файлы для восстановления xpui.js.bak и xpui.css.bak не найдены. `nУдалите клиент Spotify и снова запустите Install.bat"
ExpOff = "Экспереметальные функции отключены"
NoRestore2 = "SpotX уже был установлен, но файл для восстановления xpui.bak не найден. `nУдалите клиент Spotify и снова запустите Install.bat"
UpdateBlocked = "Обновления Spotify уже заблокированы"
UpdateError = "Не удалось заблокировать обновления"
NoSpotifyExe = "Spotify.exe не найден"
InstallComplete = "Установка завершена"
}
}
process
{
# If a language code was not specified, detect system language.
if (-not $LangCode)
{
$LangCode = [CultureInfo]::InstalledUICulture.TwoLetterISOLanguageName
}
# Assign language strings.
switch -regex ($LangCode)
{
'^en'
{
$langStrings = $langStringsEN
break
}
'^(ru|py)'
{
$langStrings = $langStringsRU
break
}
Default
{
# Default to English if unable to find a match.
$langStrings = $langStringsEN
break
}
}
}
end
{
return $langStrings
}
}
function langEn() {
ConvertFrom-StringData -StringData @'
Author = Author:
Incorrect = Oops, an incorrect value,
Incorrect2 = enter again through
CuttError = Request error in cutt
Download = Error downloading
Download2 = Will re-request in 5 seconds...
Download3 = Error again
Download4 = Try to check your internet connection and run the installation again
Download5 = Downloading Spotify
StopScrpit = Script is stopped
MsSpoti = The Microsoft Store version of Spotify has been detected which is not supported
MsSpoti2 = Uninstall Spotify Windows Store edition [Y/N]
MsSpoti3 = Automatic uninstalling Spotify MS...
MsSpoti4 = Uninstalling Spotify MS...
Prem = Modification for premium account...
DownBts = Downloading latest patch BTS...
OldV = Found outdated version of Spotify
OldV2 = Your Spotify {0} version is outdated, it is recommended to upgrade to {1}
OldV3 = Want to update ? [Y/N]
AutoUpd = Automatic update to the recommended version
DelOrOver = Do you want to uninstall the current version of {0} or install over it? Y [Uninstall] / N [Install Over]
DelOld = Uninstalling old Spotify...
NewV = Unsupported version of Spotify found
NewV2 = Your Spotify {0} version hasn't been tested yet, currently it's a stable {1} version
NewV3 = Do you want to continue with {0} version (errors possible) ? [Y/N]
Recom = Do you want to install the recommended {0} version ? [Y/N]
DelNew = Uninstalling an untested Spotify...
DownSpoti = Downloading and installing Spotify
DownSpoti2 = Please wait...
PodcatsOff = Off Podcasts
PodcastsOn = On Podcasts
PodcatsSelect = Want to turn off podcasts ? [Y/N]
DowngradeNote = It is recommended to block because there was a downgrade of Spotify
UpdBlock = Updates blocked
UpdUnblock = Updates are not blocked
UpdSelect = Want to block updates ? [Y/N]
CacheOn = Clear cache enabled ({0})
CacheOff = Clearing the cache is not enabled
CacheSelect = Want to set up automatic cache cleanup? [Y/N]
CacheDays = Cache older: XX days to be cleared
CacheDays2 = Enter the number of days from 1 to 100
NoVariable = Didn't find variable
NoVariable2 = in xpui.js
NoVariable3 = in licenses.html
NoVariable4 = in html
ModSpoti = Patching Spotify...
Error = Error
FileLocBroken = Location of Spotify files is broken, uninstall the client and run the script again
Spicetify = Spicetify detected
NoRestore = SpotX has already been installed, xpui.js and xpui.css not found. `nPlease uninstall Spotify client and run Install.bat again
ExpOff = Experimental features disabled
NoRestore2 = SpotX has already been installed, xpui.bak not found. `nPlease uninstall Spotify client and run Install.bat again
UpdateBlocked = Spotify updates are already blocked
UpdateError = Failed to block updates
NoSpotifyExe = Could not find Spotify.exe
InstallComplete = installation completed
'@
}
# Checking the system language
$langTest = [CultureInfo]::InstalleduICulture
if ($langTest -eq 'ru-Ru') { $lang = langRu; $ru = $true }
else { $lang = langEn }
# Set script language strings.
$lang = Set-ScriptLanguage
Write-Host "*****************"
@@ -1420,4 +1475,4 @@ if ($cache_install) {
if ($start_spoti) { Start-Process -WorkingDirectory $spotifyDirectory -FilePath $spotifyExecutable }
Write-Host ($lang).InstallComplete`n -ForegroundColor Green
exit
exit