diff --git a/Install.ps1 b/Install.ps1 index f9b560f..3ec3018 100644 --- a/Install.ps1 +++ b/Install.ps1 @@ -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 = "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 = "Установка завершена" + } + } + + 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 \ No newline at end of file +exit