diff --git a/Install.ps1 b/Install.ps1
index d81ad2f..5905423 100644
--- a/Install.ps1
+++ b/Install.ps1
@@ -72,11 +72,17 @@ param
[Parameter(HelpMessage = 'Disable the new home structure and navigation.')]
[switch]$navalt_off,
+ [Parameter(HelpMessage = 'Enable new left sidebar.')]
+ [switch]$left_sidebar_on,
+
[Parameter(HelpMessage = 'Do not create desktop shortcut.')]
[switch]$no_shortcut,
[Parameter(HelpMessage = 'Use bts patch.')]
[switch]$bts,
+
+ [Parameter(HelpMessage = 'Error log ru string.')]
+ [switch]$err_ru,
[Parameter(HelpMessage = 'Select the desired language to use for installation. Default is the detected system language.')]
[Alias('l')]
@@ -98,7 +104,7 @@ function Format-LanguageCode {
begin {
$supportLanguages = @(
- 'en', 'ru', 'it', 'tr', 'ka', 'pl', 'es', 'fr', 'hi', 'pt', 'id','vi'
+ 'en', 'ru', 'it', 'tr', 'ka', 'pl', 'es', 'fr', 'hi', 'pt', 'id', 'vi'
)
}
@@ -562,11 +568,11 @@ if ($premium) {
Write-Host ($lang).Prem`n
}
if (!($premium) -and $bts) {
- downloadScripts -param1 "BTS"
- Add-Type -Assembly 'System.IO.Compression.FileSystem'
- $zip = [System.IO.Compression.ZipFile]::Open("$PWD\chrome_elf.zip", 'read')
- [System.IO.Compression.ZipFileExtensions]::ExtractToDirectory($zip, $PWD)
- $zip.Dispose()
+ downloadScripts -param1 "BTS"
+ Add-Type -Assembly 'System.IO.Compression.FileSystem'
+ $zip = [System.IO.Compression.ZipFile]::Open("$PWD\chrome_elf.zip", 'read')
+ [System.IO.Compression.ZipFileExtensions]::ExtractToDirectory($zip, $PWD)
+ $zip.Dispose()
}
downloadScripts -param1 "links.tsv"
@@ -882,7 +888,7 @@ function Helper($paramname, $addstring) {
"Discriptions" {
# Add discriptions (xpui-desktop-modals.js)
$discript = @{
- Log = '(..createElement\(....,{source:).....get\("about.copyright",.\),paragraphClassName:.}\)', "`$1`"
More about SpotX
`"}),`$1`'Github`'}),`$1`'FAQ'}),`$1`'Telegram channel`'}),`$1`'Create an issue report`'}),`$1`"
`"}),`$1`"DISCLAIMER
`"}),`$1`"SpotX is a modified version of the official Spotify client, provided as an evaluation version, you use it at your own risk.`"})"
+ Log = '((..createElement|children:\(.{1,7}\))\(....,{source:).....get\("about.copyright",.\),paragraphClassName:.}\)', "`$1`"More about SpotX
Github
FAQ
Telegram channel
Create an issue report
DISCLAIMER
SpotX is a modified version of the official Spotify client, provided as an evaluation version, you use it at your own risk.`"})"
}
$n = ($lang).NoVariable6
$contents = $discript
@@ -905,13 +911,25 @@ function Helper($paramname, $addstring) {
ConnectUnlock = ' connect-device-list-item--disabled', ''
ConnectUnlock2 = 'connect-picker.unavailable-to-control', 'spotify-connect'
ConnectUnlock3 = '(className:.,disabled:)(..)', '$1false'
- ConnectUnlock4 = 'return (..isDisabled)(\?..createElement\(..,)', 'return false$2'
+ ConnectUnlock4 = 'return (..isDisabled)(\?(..createElement|\(.{1,10}\))\(..,)', 'return false$2'
# Removing the track download quality switch
- DownloadQuality = 'xe\(...\)\)\)\)...createElement\(....{filterMatchQuery:.....get\(.desktop.settings.downloadQuality.title.\).+?xe', 'xe'
+ DownloadQuality = '(children:..\(.,.\)|xe\(.,.\)\)\)\)).+?(children:..\(.,.\)|xe\(.,.\)\)\)\))', '$1'
+ # temporary Russian strings for xpui.js
+ Creator = '("creator",value:")Creator("\})', '$1Создано$2'
+ CustomOrder = '("custom-order",value:")Custom order("\})', '$1Особая$2'
+ Alphabetical = '("alphabetical",value:")Alphabetical("\})', '$1Алфавитная$2'
+ RecentlyAdded = '("recently-added",value:")Recently added("\})', '$1Недавно добавленные$2'
+ MostRecent = '("most-recent",value:")Most recent("\})', '$1Самые последние$2'
}
if ($bts) {
$offadson_fullscreen.Remove('Bilboard'), $offadson_fullscreen.Remove('AidioAds')
}
+ $ofline = Check_verison_clients -param2 "offline"
+ if (!($ru) -or $ofline -le "1.1.94.872") {
+ $offadson_fullscreen.Remove('Creator'), $offadson_fullscreen.Remove('CustomOrder'), $offadson_fullscreen.Remove('Alphabetical'),
+ $offadson_fullscreen.Remove('RecentlyAdded'), $offadson_fullscreen.Remove('MostRecent')
+
+ }
$n = ($lang).NoVariable2
$contents = $offadson_fullscreen
@@ -934,70 +952,91 @@ function Helper($paramname, $addstring) {
$n = ($lang).NoVariable2
$contents = $rus_js
$paramdata = $xpui_js
-
}
"RuTranslate" {
# Additional translation of some words for the Russian language
$ru_translate = @{
- EnhancePlaylist = '"To Enhance this playlist, you.ll need to go online."', '"Чтобы улучшить этот плейлист, вам нужно подключиться к интернету."'
- ConfirmAge = '"Confirm your age"', '"Подтвердите свой возраст"'
- Premium = '"%price%\/month after. Terms and conditions apply. One month free not available for users who have already tried Premium."', '"%price%/месяц спустя. Принять условия. Один месяц бесплатно, недоступно для пользователей, которые уже попробовали Premium."'
- AdFreeMusic = '"Enjoy ad-free music listening, offline listening, and more. Cancel anytime."', '"Наслаждайтесь прослушиванием музыки без рекламы, прослушиванием в офлайн режиме и многим другим. Отменить можно в любое время."'
- AddPlaylist = '"Add to another playlist"', '"Добавить в другой плейлист"'
- OfflineStorage = '"Offline storage location"', '"Хранилище скачанных треков"'
- ChangeLocation = '"Change location"', '"Изменить место"'
- Linebreaks = '"Line breaks aren.t supported in the description."', '"В описании не поддерживаются разрывы строк."'
- PressSave = '"Press save to keep changes you.ve made."', '"Нажмите «Сохранить», чтобы сохранить внесенные изменения."'
- NoInternet = '"No internet connection found. Changes to description and image will not be saved."', '"Подключение к интернету не найдено. Изменения в описании и изображении не будут сохранены."'
- ImageSmall = '"Image too small. Images must be at least [{]0[}]x[{]1[}]."', '"Изображение слишком маленькое. Изображения должны быть не менее {0}x{1}."'
- FailedUpload = '"Failed to upload image. Please try again."', '"Не удалось загрузить изображение. Пожалуйста, попробуйте снова."'
- Description = '"Description"', '"Описание"'
- ChangePhoto = '"Change photo"', '"Сменить изображение"'
- RemovePhoto = '"Remove photo"', '"Удалить изображение"'
- Name = '"Name"', '"Имя"'
- ChangeSpeed = '"Change speed"', '"Изменение скорости"'
- Years19 = '"You need to be at least 19 years old to listen to explicit content marked with"', '"Вам должно быть не менее 19 лет, чтобы слушать непристойный контент, помеченный значком"'
- AddPlaylist2 = '"Add to this playlist"', '"Добавить в этот плейлист"'
- NoConnect = '"Couldn.t connect to Spotify."', '"Не удалось подключиться к Spotify."'
- Reconnecting = '"Reconnecting..."', '"Повторное подключение..."'
- NoConnection = '"No connection"', '"Нет соединения"'
- CharacterCounter = '"Character counter"', '"Счетчик символов"'
- Lightsaber = '"Toggle lightsaber hilt. Current is [{]0[}]."', '"Переключить рукоять светового меча. Текущий {0}."'
- SongAvailable = '"Song not available"', '"Песня недоступна"'
- HiFi = '"The song you.re trying to listen to is not available in HiFi at this time."', '"Песня, которую вы пытаетесь прослушать, в настоящее время недоступна в HiFi."'
- Quality = '"Current audio quality:"', '"Текущее качество звука:"'
- Network = '"Network connection"', '"Подключение к сети"'
- Good = '"Good"', '"Хорошее"'
- Poor = '"Poor"', '"Плохое"'
- Yes = '"Yes"', '"Да"'
- No = '"No"', '"Нет"'
- Location = '"Your Location"', '"Ваше местоположение"'
- NetworkConnection = '"Network connection failed while playing this content."', '"Сбой сетевого подключения при воспроизведении этого контента."'
- ContentLocation = '"We.re not able to play this content in your current location."', '"Мы не можем воспроизвести этот контент в вашем текущем местоположении."'
- ContentUnavailable = '"This content is unavailable. Try another\?"', '"Этот контент недоступен. Попробуете другой?"'
- NoContent = '"Sorry, we.re not able to play this content."', '"К сожалению, мы не можем воспроизвести этот контент."'
- NoContent2 = '"Hmm... we can.t seem to play this content. Try installing the latest version of Spotify."', '"Хм... похоже, мы не можем воспроизвести этот контент. Попробуйте установить последнюю версию Spotify."'
- NoContent3 = '"Please upgrade Spotify to play this content."', '"Пожалуйста, обновите Spotify, чтобы воспроизвести этот контент."'
- NoContent4 = '"This content cannot be played on your operating system version."', '"Этот контент нельзя воспроизвести в вашей версии операционной системы."'
- DevLang = '"Override certain user attributes to test regionalized content programming. The overrides are only active in this app."', '"Переопределите определенные атрибуты пользователя, чтобы протестировать региональное программирование контента. Переопределения активны только в этом приложении."'
- AlbumRelease = '"...name... was released this week!"', '"\"%name%\" был выпущен на этой неделе!"'
- AlbumReleaseOne = '"one": "\\"%name%\\" was released %years% year ago this week!"', '"one": "\"%name%\" был выпущен %years% год назад на этой неделе!"'
- AlbumReleaseFew = '"few": "\\"%name%\\" was released %years% years ago this week!"', '"few": "\"%name%\" был выпущен %years% года назад на этой неделе!"'
- AlbumReleaseMany = '"many": "\\"%name%\\" was released %years% years ago this week!"', '"many": "\"%name%\" был выпущен %years% лет назад на этой неделе!"'
- AlbumReleaseOther = '"other": "\\"%name%\\" was released %years% years ago this week!"', '"other": "\"%name%\" был выпущен %years% года назад на этой неделе!"'
- Speed = '"Speed [{]0[}]×"', '"Скорость {0}×"'
- AudiobookGet = '"Get"', '"Получить"'
- AudiobookBy = '"Buy"', '"Купить"'
- CloseModal = '"Close modal"', '"Закрыть"'
- RatinggoToApp = '"Head over to Spotify on your mobile phone to rate this title."', '"Зайдите в Spotify на своем мобильном телефоне, чтобы оценить этот заголовок."'
- Freexplanation = '"Tap Get to add it to Your Library and it will be ready for listening in a few seconds."', '"Нажмите «Получить», чтобы добавить его в свою библиотеку, и через несколько секунд он будет готов для прослушивания."'
- Confidential = '"This is a highly confidential test. Do not share details of this test or any song you create outside of Spotify."', '"Это очень конфиденциальный тест. Не делитесь подробностями этого теста или какой-либо песни, которую вы создаете, за пределами Spotify."'
- LoveAudiobook = '"Love this audiobook\? Unlock all chapters first"', '"Нравится эта аудиокнига? Сначала разблокируйте все главы"'
- FullAudiobook = '"You can listen to this chapter after purchasing the full audiobook."', '"Вы можете прослушать эту главу после покупки полной аудиокниги."'
- PurchaseAudiobook = '"Purchase audiobook"', '"Купить аудиокнигу"'
- Cache = '"Cache:"', '"Кеш:"'
- Downloads = '"Downloads:"', '"Загрузки:"'
-
+ EnhancePlaylist = '"To Enhance this playlist, you.ll need to go online."', '"Чтобы улучшить этот плейлист, вам нужно подключиться к интернету."'
+ ConfirmAge = '"Confirm your age"', '"Подтвердите свой возраст"'
+ Premium = '"%price%\/month after. Terms and conditions apply. One month free not available for users who have already tried Premium."', '"%price%/месяц спустя. Принять условия. Один месяц бесплатно, недоступно для пользователей, которые уже попробовали Premium."'
+ AdFreeMusic = '"Enjoy ad-free music listening, offline listening, and more. Cancel anytime."', '"Наслаждайтесь прослушиванием музыки без рекламы, прослушиванием в офлайн режиме и многим другим. Отменить можно в любое время."'
+ AddPlaylist = '"Add to another playlist"', '"Добавить в другой плейлист"'
+ OfflineStorage = '"Offline storage location"', '"Хранилище скачанных треков"'
+ ChangeLocation = '"Change location"', '"Изменить место"'
+ Linebreaks = '"Line breaks aren.t supported in the description."', '"В описании не поддерживаются разрывы строк."'
+ PressSave = '"Press save to keep changes you.ve made."', '"Нажмите «Сохранить», чтобы сохранить внесенные изменения."'
+ NoInternet = '"No internet connection found. Changes to description and image will not be saved."', '"Подключение к интернету не найдено. Изменения в описании и изображении не будут сохранены."'
+ ImageSmall = '"Image too small. Images must be at least [{]0[}]x[{]1[}]."', '"Изображение слишком маленькое. Изображения должны быть не менее {0}x{1}."'
+ FailedUpload = '"Failed to upload image. Please try again."', '"Не удалось загрузить изображение. Пожалуйста, попробуйте снова."'
+ Description = '"Description"', '"Описание"'
+ ChangePhoto = '"Change photo"', '"Сменить изображение"'
+ RemovePhoto = '"Remove photo"', '"Удалить изображение"'
+ Name = '"Name"', '"Имя"'
+ ChangeSpeed = '"Change speed"', '"Изменение скорости"'
+ Years19 = '"You need to be at least 19 years old to listen to explicit content marked with"', '"Вам должно быть не менее 19 лет, чтобы слушать непристойный контент, помеченный значком"'
+ AddPlaylist2 = '"Add to this playlist"', '"Добавить в этот плейлист"'
+ NoConnect = '"Couldn.t connect to Spotify."', '"Не удалось подключиться к Spotify."'
+ Reconnecting = '"Reconnecting..."', '"Повторное подключение..."'
+ NoConnection = '"No connection"', '"Нет соединения"'
+ CharacterCounter = '"Character counter"', '"Счетчик символов"'
+ Lightsaber = '"Toggle lightsaber hilt. Current is [{]0[}]."', '"Переключить рукоять светового меча. Текущий {0}."'
+ SongAvailable = '"Song not available"', '"Песня недоступна"'
+ HiFi = '"The song you.re trying to listen to is not available in HiFi at this time."', '"Песня, которую вы пытаетесь прослушать, в настоящее время недоступна в HiFi."'
+ Quality = '"Current audio quality:"', '"Текущее качество звука:"'
+ Network = '"Network connection"', '"Подключение к сети"'
+ Good = '"Good"', '"Хорошее"'
+ Poor = '"Poor"', '"Плохое"'
+ Yes = '"Yes"', '"Да"'
+ No = '"No"', '"Нет"'
+ Location = '"Your Location"', '"Ваше местоположение"'
+ NetworkConnection = '"Network connection failed while playing this content."', '"Сбой сетевого подключения при воспроизведении этого контента."'
+ ContentLocation = '"We.re not able to play this content in your current location."', '"Мы не можем воспроизвести этот контент в вашем текущем местоположении."'
+ ContentUnavailable = '"This content is unavailable. Try another\?"', '"Этот контент недоступен. Попробуете другой?"'
+ NoContent = '"Sorry, we.re not able to play this content."', '"К сожалению, мы не можем воспроизвести этот контент."'
+ NoContent2 = '"Hmm... we can.t seem to play this content. Try installing the latest version of Spotify."', '"Хм... похоже, мы не можем воспроизвести этот контент. Попробуйте установить последнюю версию Spotify."'
+ NoContent3 = '"Please upgrade Spotify to play this content."', '"Пожалуйста, обновите Spotify, чтобы воспроизвести этот контент."'
+ NoContent4 = '"This content cannot be played on your operating system version."', '"Этот контент нельзя воспроизвести в вашей версии операционной системы."'
+ DevLang = '"Override certain user attributes to test regionalized content programming. The overrides are only active in this app."', '"Переопределите определенные атрибуты пользователя, чтобы протестировать региональное программирование контента. Переопределения активны только в этом приложении."'
+ AlbumRelease = '"...name... was released this week!"', '"\"%name%\" был выпущен на этой неделе!"'
+ AlbumReleaseOne = '"one": "\\"%name%\\" was released %years% year ago this week!"', '"one": "\"%name%\" был выпущен %years% год назад на этой неделе!"'
+ AlbumReleaseFew = '"few": "\\"%name%\\" was released %years% years ago this week!"', '"few": "\"%name%\" был выпущен %years% года назад на этой неделе!"'
+ AlbumReleaseMany = '"many": "\\"%name%\\" was released %years% years ago this week!"', '"many": "\"%name%\" был выпущен %years% лет назад на этой неделе!"'
+ AlbumReleaseOther = '"other": "\\"%name%\\" was released %years% years ago this week!"', '"other": "\"%name%\" был выпущен %years% года назад на этой неделе!"'
+ Speed = '"Speed [{]0[}]×"', '"Скорость {0}×"'
+ Confidential = '"This is a highly confidential test. Do not share details of this test or any song you create outside of Spotify."', '"Это очень конфиденциальный тест. Не делитесь подробностями этого теста или какой-либо песни, которую вы создаете, за пределами Spotify."'
+ Cache = '"Cache:"', '"Кеш:"'
+ Downloads = '"Downloads:"', '"Загрузки:"'
+ StartGroupSession = '"How to start a Group Session"', '"Как начать групповую сессию"'
+ ForPremium = '"For: Premium on mobile and tablet"', '"Для: Premium на мобильных устройствах и планшетах"'
+ GroupSessionControl = '"In a group session, everyone invited – no matter where they are – can control what plays."', '"На групповом сеансе каждый приглашенный – независимо от того, где он находится – может контролировать то, что играет."'
+ OpenSpotify = '"Open Spotify and play something."', '"Откройте Spotify и включите что-нибудь."'
+ TapIcon = '"Tap [{]icon[}] at the bottom of the screen."', '"Нажмите {icon} в нижней части экрана."'
+ TapStart = '"Tap Start a remote group session."', '"Нажмите Начать сеанс удаленной группы."'
+ TapInvite = '"Tap Invite friends."', '"Нажмите Пригласить друзей."'
+ AddFiends = '"Or, if you want to invite additional friends after you.ve started a group session, tap the avatar at the bottom of the screen and tap [{]icon[}]."', '"Или, если вы хотите пригласить дополнительных друзей после начала группового сеанса, коснитесь аватара в нижней части экрана и нажмите {icon}."'
+ Share = '"Select how you want to share, or choose Copy link and send it to your friends."', '"Выберите, как вы хотите поделиться, или выберите Скопировать ссылку и отправить ее своим друзьям."'
+ LearnMore = '"Learn more"', '"Узнать больше"'
+ Author = '"Author"', '"Автор"'
+ Creator = '"Creator"', '"Создатель"'
+ CustomOrder = '"Custom order"', '"Особая"'
+ Alphabetical = '"Alphabetical"', '"Алфавитная"'
+ RecentlyAdded = '"Recently added"', '"Недавно добавленные"'
+ RecentlyPlayed = '"Recently played"', '"Недавно проигранные"'
+ MostRecent = '"Most recent"', '"Самые последние"'
+ RecentlyUpdated = '"Recently updated"', '"Недавно обновленные"'
+ MostRelevant = '"Most relevant"', '"Наиболее актуальные"'
+ Albums = '"Albums",', '"Альбомы",'
+ Artists = '"Artists",', '"Артисты",'
+ Playlists = '"Playlists",', '"Плейлисты",'
+ PodcastsShows = '"Podcasts . Shows",', '"Подкасты и Шоу",'
+ Audiobooks = '"Audiobooks",', '"Аудиокниги",'
+ Downloaded = '"Downloaded"', '"Скачано"'
+ ByYou = '"By you"', '"Ваши"'
+ Unplayed = '"Unplayed"', '"Невоспроизведенное"'
+ InProgress = '"In progress"', '"В процессе"'
+ LikedSongs = '"Liked Songs"', '"Понравившиеся песни"'
+ YourEpisodes = '"Your Episodes"', '"Ваши эпизоды"'
+ LocalFiles = '"Local Files"', '"Локальные файлы"'
}
$n = ($lang).NoVariable7
$contents = $ru_translate
@@ -1023,28 +1062,30 @@ function Helper($paramname, $addstring) {
MadeForYou = '(Show "Made For You" entry point in the left sidebar.,default:)(!1)', '$1true'
ClearCache = '(Enable option in settings to clear all downloads",default:)(!1)', '$1true'
CarouselsonHome = '(Use carousels on Home",default:)(!1)', '$1true'
+ LeftSidebar = '(Enable Your Library X view of the left sidebar",default:)(!1)', '$1true'
LyricsEnabled = '(With this enabled, clients will check whether tracks have lyrics available",default:)(!1)', '$1true'
PlaylistCreation = '(Enables new playlist creation flow in Web Player and DesktopX",default:)(!1)', '$1true'
SearchBox = '(Adds a search box so users are able to filter playlists when trying to add songs to a playlist using the contextmenu",default:)(!1)', '$1true'
# "Create similar playlist" menu is activated for someone else's playlists
- SimilarPlaylist = ',(.\.isOwnedBySelf&&)(..createElement\(..Fragment,null,..createElement\(.+?{(uri:.|spec:.),(uri:.|spec:.).+?contextmenu.create-similar-playlist"\)}\),)' , ',$2$1'
+ SimilarPlaylist = ',(.\.isOwnedBySelf&&)((\(.{0,11}\)|..createElement)\(.{1,3}Fragment,.+?{(uri:.|spec:.),(uri:.|spec:.).+?contextmenu.create-similar-playlist"\)}\),)' , ',$2$1'
}
+ $ofline = Check_verison_clients -param2 "offline"
if ($enhance_like_off) { $exp_features.Remove('EnhanceLiked') }
if ($enhance_playlist_off) { $exp_features.Remove('EnhancePlaylist') }
if ($new_artist_pages_off) { $exp_features.Remove('DisographyArtist') }
if ($new_lyrics_off) { $exp_features.Remove('LyricsMatch') }
if ($equalizer_off) { $exp_features.Remove('Equalizer') }
if ($device_new_off) { $exp_features.Remove('DevicePicker') }
- if ($navalt_off) { $exp_features.Remove('NewHome') }
if ($made_for_you_off) { $exp_features.Remove('MadeForYou') }
if ($exp_standart) {
$exp_features.Remove('EnhanceLiked'), $exp_features.Remove('EnhancePlaylist'),
$exp_features.Remove('DisographyArtist'), $exp_features.Remove('LyricsMatch'),
$exp_features.Remove('Equalizer'), $exp_features.Remove('DevicePicker'),
$exp_features.Remove('NewHome'), $exp_features.Remove('MadeForYou'),
- $exp_features.Remove('SimilarPlaylist')
+ $exp_features.Remove('SimilarPlaylist'), $exp_features.Remove('LeftSidebar')
}
- $ofline = Check_verison_clients -param2 "offline"
+ if (!($left_sidebar_on) -or $ofline -le "1.1.94.872") { $exp_features.Remove('LeftSidebar') }
+ if ($navalt_off) { $exp_features.Remove('NewHome'), $exp_features.Remove('LeftSidebar') }
if ($ofline -ge "1.1.94.864") {
$exp_features.Remove('LyricsEnabled'), $exp_features.Remove('PlaylistCreation'),
$exp_features.Remove('SearchBox')
@@ -1054,8 +1095,6 @@ function Helper($paramname, $addstring) {
$contents = $exp_features
$paramdata = $xpui_js
}
-
-
}
$contents.Keys | Sort-Object | ForEach-Object {
@@ -1063,8 +1102,11 @@ function Helper($paramname, $addstring) {
$paramdata = $paramdata -replace $contents.$PSItem[0], $contents.$PSItem[1]
}
else {
- Write-Host ($lang).NoVariable"" -ForegroundColor red -NoNewline
- Write-Host "`$contents.$PSItem"$n
+ if (!($paramname -eq "RuTranslate") -or $err_ru) {
+
+ Write-Host ($lang).NoVariable"" -ForegroundColor red -NoNewline
+ Write-Host "`$contents.$PSItem"$n
+ }
}
}
$paramdata
@@ -1303,14 +1345,14 @@ If (Test-Path $xpui_spa_patch) {
if ($ru) {
[Reflection.Assembly]::LoadWithPartialName('System.IO.Compression') | Out-Null
- $files = 'af.json', 'am.json', 'ar.json', 'az.json', 'bg.json', 'bho.json', 'bn.json', `
- 'cs.json', 'da.json', 'de.json', 'el.json', 'es-419.json', 'es.json', 'et.json', 'fa.json', `
- 'fi.json', 'fil.json', 'fr-CA.json', 'fr.json', 'gu.json', 'he.json', 'hi.json', 'hu.json', `
+ $files = 'af.json', 'am.json', 'ar.json', 'ar-EG.json', 'ar-SA.json', 'ar-MA.json', 'az.json', 'bg.json', 'bho.json', 'bn.json', `
+ 'bs.json', 'cs.json', 'ca.json', 'gl.json', 'da.json', 'de.json', 'en-GB.json', 'el.json', 'es-419.json', 'es-MX.json', 'es-AR.json', 'es.json', 'et.json', 'fa.json', `
+ 'fi.json', 'fil.json', 'fr-CA.json', 'fr.json', 'gu.json', 'he.json', 'hi.json', 'eu.json', 'hu.json', `
'id.json', 'is.json', 'it.json', 'ja.json', 'kn.json', 'ko.json', 'lt.json', 'lv.json', `
- 'ml.json', 'mr.json', 'ms.json', 'nb.json', 'ne.json', 'nl.json', 'or.json', 'pa-IN.json', `
+ 'ml.json', 'mr.json', 'ms.json', 'mk.json', 'nb.json', 'ne.json', 'nl.json', 'or.json', 'pa-IN.json', `
'pl.json', 'pt-BR.json', 'pt-PT.json', 'ro.json', 'sk.json', 'sl.json', 'sr.json', 'sv.json', `
- 'sw.json' , 'ta.json' , 'te.json' , 'th.json' , 'tr.json' , 'uk.json' , 'ur.json' , 'vi.json', `
- 'zh-CN.json', 'zh-TW.json' , 'zu.json' , 'pa-PK.json' , 'hr.json'
+ 'sw.json' , 'ta.json', 'te.json', 'th.json', 'tr.json', 'uk.json', 'ur.json', 'vi.json', `
+ 'zh-CN.json', 'zh-TW.json', 'zh-HK.json', 'zu.json', 'pa-PK.json', 'hr.json'
$stream = New-Object IO.FileStream($xpui_spa_patch, [IO.FileMode]::Open)
$mode = [IO.Compression.ZipArchiveMode]::Update
diff --git a/README.md b/README.md
index 5d6b418..83b3e25 100644
--- a/README.md
+++ b/README.md
@@ -15,7 +15,7 @@
System requirements
- OS: Windows 7-11
-- Spotify: Recommended official version [1.1.94.872](https://cutt.ly/8EH6NuH)
+- Spotify: Recommended official version [1.1.95.889](https://cutt.ly/8EH6NuH)
- For Windows Desktop only (Microsoft store version is not suitable).
- PowerShell: 3 or higher