@ -1,7 +1,7 @@
// ==UserScript==
// @name Better xCloud
// @namespace https://github.com/redphx
// @version 1.18
// @version 1.18.2
// @description Improve Xbox Cloud Gaming (xCloud) experience
// @author redphx
// @license MIT
@ -13,7 +13,7 @@
// ==/UserScript==
'use strict' ;
const SCRIPT _VERSION = '1.18' ;
const SCRIPT _VERSION = '1.18.2 ' ;
const SCRIPT _HOME = 'https://github.com/redphx/better-xcloud' ;
console . log ( ` [Better xCloud] readyState: ${ document . readyState } ` ) ;
@ -67,7 +67,9 @@ const Translations = {
'de-DE' ,
'en-US' ,
'es-ES' ,
'fr-FR' ,
'ko-KR' ,
'ja-JP' ,
'pl-PL' ,
'pt-BR' ,
'ru-RU' ,
@ -97,6 +99,8 @@ const Translations = {
"de-DE" : "Erweitert" ,
"en-US" : "Advanced" ,
"es-ES" : "Avanzado" ,
"fr-FR" : "Options avancées" ,
"ja-JP" : "高度な設定" ,
"ko-KR" : "고급" ,
"pl-PL" : "Zaawansowane" ,
"pt-BR" : "Avançado" ,
@ -109,6 +113,8 @@ const Translations = {
"de-DE" : "Audio" ,
"en-US" : "Audio" ,
"es-ES" : "Audio" ,
"fr-FR" : "Audio" ,
"ja-JP" : "音声" ,
"ko-KR" : "오디오" ,
"pl-PL" : "Dźwięk" ,
"pt-BR" : "Áudio" ,
@ -121,6 +127,8 @@ const Translations = {
"de-DE" : "Automatisch" ,
"en-US" : "Auto" ,
"es-ES" : "Auto" ,
"fr-FR" : "Auto" ,
"ja-JP" : "自動" ,
"ko-KR" : "자동" ,
"pl-PL" : "Automatyczne" ,
"pt-BR" : "Automático" ,
@ -133,6 +141,8 @@ const Translations = {
"de-DE" : "Audio" ,
"en-US" : "Audio" ,
"es-ES" : "Audio" ,
"fr-FR" : "Audio" ,
"ja-JP" : "音声" ,
"ko-KR" : "오디오" ,
"pl-PL" : "Dźwięk" ,
"pt-BR" : "Áudio" ,
@ -145,6 +155,8 @@ const Translations = {
"de-DE" : "Batterie" ,
"en-US" : "Battery" ,
"es-ES" : "Batería" ,
"fr-FR" : "Batterie" ,
"ja-JP" : "バッテリー" ,
"ko-KR" : "배터리" ,
"pl-PL" : "Bateria" ,
"pt-BR" : "Bateria" ,
@ -157,6 +169,8 @@ const Translations = {
"de-DE" : "Empfangen" ,
"en-US" : "In" ,
"es-ES" : "Entrada" ,
"fr-FR" : "Dans" ,
"ja-JP" : "IN" ,
"ko-KR" : "다운로드" ,
"pl-PL" : "Pobieranie" ,
"pt-BR" : "Recebidos" ,
@ -169,6 +183,8 @@ const Translations = {
"de-DE" : "Gesendet" ,
"en-US" : "Out" ,
"es-ES" : "Salida" ,
"fr-FR" : "Sorti" ,
"ja-JP" : "OUT" ,
"ko-KR" : "업로드" ,
"pl-PL" : "Wysyłanie" ,
"pt-BR" : "Enviados" ,
@ -181,6 +197,8 @@ const Translations = {
"de-DE" : "Spielzeit" ,
"en-US" : "Playtime" ,
"es-ES" : "Tiempo jugado" ,
"fr-FR" : "Temps de jeu" ,
"ja-JP" : "プレイ時間" ,
"ko-KR" : "플레이한 시간" ,
"pl-PL" : "Czas gry" ,
"pt-BR" : "Tempo de jogo" ,
@ -193,6 +211,8 @@ const Translations = {
"de-DE" : "Server" ,
"en-US" : "Server" ,
"es-ES" : "Servidor" ,
"fr-FR" : "Serveur" ,
"ja-JP" : "サーバー" ,
"ko-KR" : "서버" ,
"pl-PL" : "Serwer" ,
"pt-BR" : "Servidor" ,
@ -205,6 +225,8 @@ const Translations = {
"de-DE" : "Video" ,
"en-US" : "Video" ,
"es-ES" : "Video" ,
"fr-FR" : "Vidéo" ,
"ja-JP" : "映像" ,
"ko-KR" : "비디오" ,
"pl-PL" : "Obraz" ,
"pt-BR" : "Vídeo" ,
@ -217,6 +239,8 @@ const Translations = {
"de-DE" : "Unten links" ,
"en-US" : "Bottom-left" ,
"es-ES" : "Inferior izquierdo" ,
"fr-FR" : "En bas à gauche" ,
"ja-JP" : "左下" ,
"ko-KR" : "좌측 하단" ,
"pl-PL" : "Lewy dolny róg" ,
"pt-BR" : "Inferior Esquerdo" ,
@ -229,6 +253,8 @@ const Translations = {
"de-DE" : "Unten rechts" ,
"en-US" : "Bottom-right" ,
"es-ES" : "Inferior derecha" ,
"fr-FR" : "Bas-droit" ,
"ja-JP" : "右下" ,
"ko-KR" : "우측 하단" ,
"pl-PL" : "Prawy dolny róg" ,
"pt-BR" : "Inferior-direito" ,
@ -241,6 +267,8 @@ const Translations = {
"de-DE" : "Helligkeit" ,
"en-US" : "Brightness" ,
"es-ES" : "Brillo" ,
"fr-FR" : "Luminosité" ,
"ja-JP" : "輝度" ,
"ko-KR" : "밝기" ,
"pl-PL" : "Jasność" ,
"pt-BR" : "Brilho" ,
@ -253,6 +281,8 @@ const Translations = {
"de-DE" : "Dein Browser unterstützt diese Funktion nicht" ,
"en-US" : "Your browser doesn't support this feature" ,
"es-ES" : "Su navegador no soporta esta característica" ,
"fr-FR" : "Votre navigateur ne supporte pas cette fonctionnalité" ,
"ja-JP" : "お使いのブラウザはこの機能をサポートしていません。" ,
"ko-KR" : "브라우저에서 이 기능을 지원하지 않습니다." ,
"pl-PL" : "Twoja przeglądarka nie obsługuje tej funkcji" ,
"pt-BR" : "Seu navegador não suporta este recurso" ,
@ -265,6 +295,8 @@ const Translations = {
"de-DE" : "Klarheit" ,
"en-US" : "Clarity" ,
"es-ES" : "Claridad" ,
"fr-FR" : "Clarté" ,
"ja-JP" : "明瞭度(クラリティ)" ,
"ko-KR" : "선명도" ,
"pl-PL" : "Ostrość" ,
"pt-BR" : "Clareza" ,
@ -277,6 +309,8 @@ const Translations = {
"de-DE" : "Diese Einstellungen funktionieren nicht, wenn \"Clarity Boost\" aktiviert ist" ,
"en-US" : "These settings don't work when the Clarity Boost mode is ON" ,
"es-ES" : "Estos ajustes no funcionan cuando el modo Clarity Boost está activado" ,
"fr-FR" : "Ces paramètres ne fonctionnent pas lorsque le mode Clarity Boost est activé" ,
"ja-JP" : "クラリティブーストが有効の場合、映像設定は無効化されます。" ,
"ko-KR" : "이 설정들은 선명도 향상 기능이 켜져 있을 때는 동작하지 않습니다." ,
"pl-PL" : "Te ustawienia nie będą działać, gdy tryb \"Clarity Boost\" jest włączony" ,
"pt-BR" : "Estas configurações não funcionam quando o modo de \"Clarity Boost\" está ATIVADO" ,
@ -289,6 +323,8 @@ const Translations = {
"de-DE" : "Schließen" ,
"en-US" : "Close" ,
"es-ES" : "Cerrar" ,
"fr-FR" : "Fermer" ,
"ja-JP" : "閉じる" ,
"ko-KR" : "닫기" ,
"pl-PL" : "Zamknij" ,
"pt-BR" : "Fechar" ,
@ -301,6 +337,8 @@ const Translations = {
"de-DE" : "Zustandsabhängige Textfarbe" ,
"en-US" : "Conditional formatting text color" ,
"es-ES" : "Color condicional de formato de texto" ,
"fr-FR" : "Couleur du texte de mise en forme conditionnelle" ,
"ja-JP" : "状態に応じた文字色で表示" ,
"ko-KR" : "통계에 따라 글자 색 지정" ,
"pl-PL" : "Kolor tekstu zależny od wartości" ,
"pt-BR" : "Cor do texto do formato condicional" ,
@ -313,6 +351,8 @@ const Translations = {
"de-DE" : "Möchtest Du den Stream aktualisieren?" ,
"en-US" : "Do you want to refresh the stream?" ,
"es-ES" : "¿Quieres actualizar el stream?\n" ,
"fr-FR" : "Voulez-vous actualiser le stream ?" ,
"ja-JP" : "ストリーミングをリフレッシュしますか?" ,
"ko-KR" : "스트리밍을 재시작할까요?" ,
"pl-PL" : "Czy chcesz odświeżyć transmisję?" ,
"pt-BR" : "Você deseja atualizar o stream?" ,
@ -325,6 +365,8 @@ const Translations = {
"de-DE" : "Kontrast" ,
"en-US" : "Contrast" ,
"es-ES" : "Contraste" ,
"fr-FR" : "Contraste" ,
"ja-JP" : "コントラスト" ,
"ko-KR" : "대비" ,
"pl-PL" : "Kontrast" ,
"pt-BR" : "Contraste" ,
@ -337,6 +379,8 @@ const Translations = {
"de-DE" : "Benutzerdefiniert" ,
"en-US" : "Custom" ,
"es-ES" : "Personalizado" ,
"fr-FR" : "Personnalisée" ,
"ja-JP" : "カスタム" ,
"ko-KR" : "사용자 지정" ,
"pl-PL" : "Niestandardowe" ,
"pt-BR" : "Customizado" ,
@ -349,6 +393,8 @@ const Translations = {
"de-DE" : "Standard" ,
"en-US" : "Default" ,
"es-ES" : "Por defecto" ,
"fr-FR" : "Par défaut" ,
"ja-JP" : "デフォルト" ,
"ko-KR" : "기본값" ,
"pl-PL" : "Domyślny" ,
"pt-BR" : "Padrão" ,
@ -361,6 +407,8 @@ const Translations = {
"de-DE" : "Dein Gerät hat keine Touch-Unterstützung" ,
"en-US" : "Your device doesn't have touch support" ,
"es-ES" : "Tu dispositivo no tiene soporte táctil" ,
"fr-FR" : "Votre appareil n'a pas de support tactile" ,
"ja-JP" : "お使いのデバイスはタッチ機能をサポートしていません。" ,
"ko-KR" : "브라우저에서 터치를 지원하지 않습니다." ,
"pl-PL" : "Twoje urządzenie nie obsługuję tej funkcji" ,
"pt-BR" : "Seu dispositivo não possui suporte de toque" ,
@ -373,6 +421,8 @@ const Translations = {
"de-DE" : "Deaktiviert" ,
"en-US" : "Disable" ,
"es-ES" : "Deshabilitar" ,
"fr-FR" : "Désactiver" ,
"ja-JP" : "無効" ,
"ko-KR" : "비활성화" ,
"pl-PL" : "Wyłącz" ,
"pt-BR" : "Desabilitar" ,
@ -385,6 +435,8 @@ const Translations = {
"de-DE" : "Bandbreitenüberprüfung deaktivieren" ,
"en-US" : "Disable bandwidth checking" ,
"es-ES" : "Desactivar comprobación de ancho de banda" ,
"fr-FR" : "Désactiver la vérification de bande passante" ,
"ja-JP" : "帯域幅の警告を非表示" ,
"ko-KR" : "대역폭 확인 비활성화" ,
"pl-PL" : "Wyłącz sprawdzanie przepustowości" ,
"pt-BR" : "Desativar verificação de banda" ,
@ -394,13 +446,22 @@ const Translations = {
"zh-CN" : "禁用带宽测速" ,
} ,
"disable-post-stream-feedback-dialog" : {
"de-DE" : "Feedback-Dialog beim Beenden deaktivieren" ,
"en-US" : "Disable post-stream feedback dialog" ,
"es-ES" : "Desactivar diálogo de retroalimentación post-stream" ,
"fr-FR" : "Désactiver la boîte de dialogue de commentaires post-stream" ,
"ja-JP" : "ストリーミング終了後のフィードバック画面を非表示" ,
"pl-PL" : "Wyłącz okno opinii po zakończeniu transmisji" ,
"pt-BR" : "Desativar o diálogo de feedback pós-stream" ,
"tr-TR" : "Yayı n sonrası geribildirim ekranı nı kapat" ,
"vi-VN" : "Tắt hộp thoại góp ý sau khi chơi xong" ,
} ,
"disable-social-features" : {
"de-DE" : "Soziale Funktionen deaktivieren" ,
"en-US" : "Disable social features" ,
"es-ES" : "Desactivar características sociales" ,
"fr-FR" : "Désactiver les fonctionnalités sociales" ,
"ja-JP" : "ソーシャル機能を無効" ,
"ko-KR" : "소셜 기능 비활성화" ,
"pl-PL" : "Wyłącz funkcje społecznościowe" ,
"pt-BR" : "Desativar recursos sociais" ,
@ -413,6 +474,8 @@ const Translations = {
"de-DE" : "xCloud-Datenanalyse deaktivieren" ,
"en-US" : "Disable xCloud analytics" ,
"es-ES" : "Desactivar análisis de xCloud" ,
"fr-FR" : "Désactiver les analyses xCloud" ,
"ja-JP" : "xCloudアナリティクスを無効" ,
"ko-KR" : "xCloud 통계 비활성화" ,
"pl-PL" : "Wyłącz analitykę xCloud" ,
"pt-BR" : "Desativar telemetria do xCloud" ,
@ -425,6 +488,8 @@ const Translations = {
"de-DE" : "Mikrofon bei Spielstart aktivieren" ,
"en-US" : "Enable microphone on game launch" ,
"es-ES" : "Activar micrófono al iniciar el juego" ,
"fr-FR" : "Activer le microphone lors du lancement du jeu" ,
"ja-JP" : "ゲーム起動時にマイクを有効化" ,
"ko-KR" : "게임 시작 시 마이크 활성화" ,
"pl-PL" : "Włącz mikrofon przy uruchomieniu gry" ,
"pt-BR" : "Ativar microfone na inicialização do jogo" ,
@ -437,6 +502,8 @@ const Translations = {
"de-DE" : "\"Kurzer Blick\"-Modus aktivieren" ,
"en-US" : "Enable \"Quick Glance\" mode" ,
"es-ES" : "Activar modo \"Vista rápida\"" ,
"fr-FR" : "Activer le mode \"Aperçu rapide\"" ,
"ja-JP" : "クイック確認モードを有効化" ,
"ko-KR" : "\"퀵 글랜스\" 모드 활성화" ,
"pl-PL" : "Włącz tryb \"Quick Glance\"" ,
"pt-BR" : "Ativar modo \"Revisão Rápida\"" ,
@ -449,6 +516,8 @@ const Translations = {
"de-DE" : "Lautstärkeregelung aktivieren" ,
"en-US" : "Enable volume control feature" ,
"es-ES" : "Habilitar la función de control de volumen" ,
"fr-FR" : "Activer la fonction de contrôle du volume" ,
"ja-JP" : "音量調節機能を有効化" ,
"ko-KR" : "음량 조절 기능 활성화" ,
"pl-PL" : "Włącz funkcję kontroli głośności" ,
"pt-BR" : "Ativar recurso de controle de volume" ,
@ -460,6 +529,8 @@ const Translations = {
"de-DE" : "Mauszeiger bei Inaktivität ausblenden" ,
"en-US" : "Hide mouse cursor on idle" ,
"es-ES" : "Ocultar el cursor del ratón al estar inactivo" ,
"fr-FR" : "Masquer le curseur de la souris" ,
"ja-JP" : "マウスカーソルを3秒間動かしていない場合に非表示" ,
"ko-KR" : "대기 상태에서 마우스 커서 숨기기" ,
"pl-PL" : "Ukryj kursor myszy podczas bezczynności" ,
"pt-BR" : "Ocultar o cursor do mouse no ocioso" ,
@ -472,6 +543,8 @@ const Translations = {
"de-DE" : "Symbol des System-Menüs ausblenden" ,
"en-US" : "Hide System menu's icon" ,
"es-ES" : "Ocultar el icono del menú del sistema" ,
"fr-FR" : "Masquer l'icône du menu système" ,
"ja-JP" : "システムメニューのアイコンを非表示" ,
"ko-KR" : "시스템 메뉴 아이콘 숨기기" ,
"pl-PL" : "Ukryj ikonę menu systemu" ,
"pt-BR" : "Ocultar ícone do menu do sistema" ,
@ -484,6 +557,8 @@ const Translations = {
"de-DE" : "Sprache" ,
"en-US" : "Language" ,
"es-ES" : "Idioma" ,
"fr-FR" : "Langue" ,
"ja-JP" : "言語" ,
"ko-KR" : "언어" ,
"pl-PL" : "Język" ,
"pt-BR" : "Linguagem" ,
@ -496,6 +571,8 @@ const Translations = {
"de-DE" : "Groß" ,
"en-US" : "Large" ,
"es-ES" : "Grande" ,
"fr-FR" : "Grande" ,
"ja-JP" : "大" ,
"ko-KR" : "크게" ,
"pl-PL" : "Duży" ,
"pt-BR" : "Largo" ,
@ -508,6 +585,8 @@ const Translations = {
"de-DE" : "Ladebildschirm" ,
"en-US" : "Loading screen" ,
"es-ES" : "Pantalla de carga" ,
"fr-FR" : "Écran de chargement" ,
"ja-JP" : "ロード画面" ,
"ko-KR" : "로딩 화면" ,
"pl-PL" : "Ekran wczytywania" ,
"pt-BR" : "Tela de Carregamento" ,
@ -520,6 +599,8 @@ const Translations = {
"de-DE" : "Stream Einstellungen" ,
"en-US" : "Stream settings" ,
"es-ES" : "Ajustes del stream" ,
"fr-FR" : "Réglages Stream" ,
"ja-JP" : "ストリーミング設定" ,
"ko-KR" : "스트리밍 설정" ,
"pl-PL" : "Ustawienia strumienia" ,
"pt-BR" : "Ajustes de transmissão" ,
@ -532,6 +613,8 @@ const Translations = {
"de-DE" : "Stream Statistiken" ,
"en-US" : "Stream stats" ,
"es-ES" : "Estadísticas del stream" ,
"fr-FR" : "Statistiques du stream" ,
"ja-JP" : "ストリーミング統計情報" ,
"ko-KR" : "통계" ,
"pl-PL" : "Statystyki strumienia" ,
"pt-BR" : "Estatísticas da transmissão" ,
@ -544,6 +627,8 @@ const Translations = {
"de-DE" : "Mittel" ,
"en-US" : "Normal" ,
"es-ES" : "Normal" ,
"fr-FR" : "Normal" ,
"ja-JP" : "標準" ,
"ko-KR" : "보통" ,
"pl-PL" : "Normalny" ,
"pt-BR" : "Normal" ,
@ -556,6 +641,8 @@ const Translations = {
"de-DE" : "Aus" ,
"en-US" : "Off" ,
"es-ES" : "Apagado" ,
"fr-FR" : "Désactivé" ,
"ja-JP" : "オフ" ,
"ko-KR" : "꺼짐" ,
"pl-PL" : "Wyłączone" ,
"pt-BR" : "Desligado" ,
@ -568,6 +655,8 @@ const Translations = {
"de-DE" : "Deckkraft" ,
"en-US" : "Opacity" ,
"es-ES" : "Opacidad" ,
"fr-FR" : "Opacité" ,
"ja-JP" : "透過度" ,
"ko-KR" : "불투명도" ,
"pl-PL" : "Przezroczystość" ,
"pt-BR" : "Transparência" ,
@ -580,6 +669,8 @@ const Translations = {
"de-DE" : "Sonstiges" ,
"en-US" : "Other" ,
"es-ES" : "Otro" ,
"fr-FR" : "Autres" ,
"ja-JP" : "その他" ,
"ko-KR" : "기타" ,
"pl-PL" : "Inne" ,
"pt-BR" : "Outros" ,
@ -592,6 +683,8 @@ const Translations = {
"de-DE" : "Position" ,
"en-US" : "Position" ,
"es-ES" : "Posición" ,
"fr-FR" : "Position" ,
"ja-JP" : "位置" ,
"ko-KR" : "위치" ,
"pl-PL" : "Pozycja" ,
"pt-BR" : "Posição" ,
@ -604,6 +697,8 @@ const Translations = {
"de-DE" : "IPv6-Server bevorzugen" ,
"en-US" : "Prefer IPv6 server" ,
"es-ES" : "Servidor IPv6 preferido" ,
"fr-FR" : "Préférer le serveur IPv6" ,
"ja-JP" : "IPv6 サーバーを優先" ,
"ko-KR" : "IPv6 서버 우선" ,
"pl-PL" : "Preferuj serwer IPv6" ,
"pt-BR" : "Preferir servidor IPV6" ,
@ -616,6 +711,8 @@ const Translations = {
"de-DE" : "Bevorzugte Spielsprache" ,
"en-US" : "Preferred game's language" ,
"es-ES" : "Idioma preferencial del juego" ,
"fr-FR" : "Langue préférée du jeu" ,
"ja-JP" : "ゲームの優先言語設定" ,
"ko-KR" : "선호하는 게임 언어" ,
"pl-PL" : "Preferowany język gry" ,
"pt-BR" : "Idioma preferencial do jogo" ,
@ -628,6 +725,8 @@ const Translations = {
"de-DE" : "Seitenverhältnis" ,
"en-US" : "Ratio" ,
"es-ES" : "Relación de aspecto" ,
"fr-FR" : "Ratio" ,
"ja-JP" : "比率" ,
"ko-KR" : "화면 비율" ,
"pl-PL" : "Współczynnik proporcji" ,
"pt-BR" : "Proporção" ,
@ -640,6 +739,8 @@ const Translations = {
"de-DE" : "Animationen reduzieren" ,
"en-US" : "Reduce UI animations" ,
"es-ES" : "Reduce las animaciones de la interfaz" ,
"fr-FR" : "Réduire les animations dans l’ interface" ,
"ja-JP" : "UIアニメーションを減らす" ,
"ko-KR" : "애니메이션 감소" ,
"pl-PL" : "Ogranicz animacje interfejsu" ,
"pt-BR" : "Reduzir animações da interface" ,
@ -652,6 +753,8 @@ const Translations = {
"de-DE" : "Region" ,
"en-US" : "Region" ,
"es-ES" : "Región" ,
"fr-FR" : "Région" ,
"ja-JP" : "地域" ,
"ko-KR" : "지역" ,
"pl-PL" : "Region" ,
"pt-BR" : "Região" ,
@ -664,6 +767,8 @@ const Translations = {
"de-DE" : "Immer ausblenden" ,
"en-US" : "Always hide" ,
"es-ES" : "Ocultar siempre" ,
"fr-FR" : "Toujours masquer" ,
"ja-JP" : "常に非表示" ,
"ko-KR" : "항상 숨기기" ,
"pl-PL" : "Zawsze ukrywaj" ,
"pt-BR" : "Sempre ocultar" ,
@ -676,6 +781,8 @@ const Translations = {
"de-DE" : "Immer anzeigen" ,
"en-US" : "Always show" ,
"es-ES" : "Mostrar siempre" ,
"fr-FR" : "Toujours afficher" ,
"ja-JP" : "常に表示" ,
"ko-KR" : "항상 표시" ,
"pl-PL" : "Zawsze pokazuj" ,
"pt-BR" : "Sempre mostrar" ,
@ -688,6 +795,8 @@ const Translations = {
"de-DE" : "Raketen Animation" ,
"en-US" : "Rocket animation" ,
"es-ES" : "Animación del cohete" ,
"fr-FR" : "Animation de la fusée" ,
"ja-JP" : "ロケットのアニメーション" ,
"ko-KR" : "로켓 애니메이션" ,
"pl-PL" : "Animacja rakiety" ,
"pt-BR" : "Animação do foguete" ,
@ -700,6 +809,8 @@ const Translations = {
"de-DE" : "Bei Warteschlange ausblenden" ,
"en-US" : "Hide when queuing" ,
"es-ES" : "Ocultar al hacer cola" ,
"fr-FR" : "Masquer lors de la file d'attente" ,
"ja-JP" : "待機中は非表示" ,
"ko-KR" : "대기 중에는 숨기기" ,
"pl-PL" : "Ukryj podczas czekania w kolejce" ,
"pt-BR" : "Ocultar quando estiver na fila" ,
@ -712,6 +823,8 @@ const Translations = {
"de-DE" : "Ausführen von \"Better xCloud\" fehlgeschlagen. Versuche es erneut, bitte warten..." ,
"en-US" : "Failed to run Better xCloud. Retrying, please wait..." ,
"es-ES" : "No se pudo ejecutar Better xCloud. Reintentando, por favor espera..." ,
"fr-FR" : "Impossible d'exécuter Better xCloud. Nouvelle tentative, veuillez patienter..." ,
"ja-JP" : "Better xCloud の実行に失敗しました。再試行中..." ,
"ko-KR" : "Better xCloud 시작에 실패했습니다. 재시도중이니 잠시만 기다려 주세요." ,
"pl-PL" : "Nie udało się uruchomić Better xCloud. Ponawiam próbę..." ,
"pt-BR" : "Falha ao executar o Better xCloud. Tentando novamente, aguarde..." ,
@ -724,6 +837,8 @@ const Translations = {
"de-DE" : "Sättigung" ,
"en-US" : "Saturation" ,
"es-ES" : "Saturación" ,
"fr-FR" : "Saturation" ,
"ja-JP" : "彩度" ,
"ko-KR" : "채도" ,
"pl-PL" : "Nasycenie" ,
"pt-BR" : "Saturação" ,
@ -736,6 +851,8 @@ const Translations = {
"de-DE" : "Position des Screenshot-Buttons" ,
"en-US" : "Screenshot button's position" ,
"es-ES" : "Posición del botón de captura de pantalla" ,
"fr-FR" : "Position du bouton de capture d'écran" ,
"ja-JP" : "スクリーンショットボタンの位置" ,
"ko-KR" : "스크린샷 버튼 위치" ,
"pl-PL" : "Pozycja przycisku zrzutu ekranu" ,
"pt-BR" : "Posição do botão de captura de tela" ,
@ -748,6 +865,8 @@ const Translations = {
"de-DE" : "Server" ,
"en-US" : "Server" ,
"es-ES" : "Servidor" ,
"fr-FR" : "Serveur" ,
"ja-JP" : "サーバー" ,
"ko-KR" : "서버" ,
"pl-PL" : "Serwer" ,
"pt-BR" : "Servidor" ,
@ -760,6 +879,8 @@ const Translations = {
"de-DE" : "Seite neu laden und Änderungen anwenden" ,
"en-US" : "Reload page to reflect changes" ,
"es-ES" : "Actualice la página para aplicar los cambios" ,
"fr-FR" : "Recharger la page pour bénéficier des changements" ,
"ja-JP" : "ページを更新をして設定変更を適用" ,
"ko-KR" : "변경 사항을 적용하려면 페이지를 다시 로드하세요." ,
"pl-PL" : "Odśwież stronę, aby zastosować zmiany" ,
"pt-BR" : "Recarregue a página para refletir as alterações" ,
@ -772,6 +893,8 @@ const Translations = {
"de-DE" : "Wird neu geladen..." ,
"en-US" : "Reloading..." ,
"es-ES" : "Recargando..." ,
"fr-FR" : "Actualisation..." ,
"ja-JP" : "更新中..." ,
"ko-KR" : "새로고침하는 중..." ,
"pl-PL" : "Ponowne ładowanie..." ,
"pt-BR" : "Recarregando..." ,
@ -784,6 +907,8 @@ const Translations = {
"de-DE" : "Poster des Spiels anzeigen" ,
"en-US" : "Show game art" ,
"es-ES" : "Mostrar imagen del juego" ,
"fr-FR" : "Afficher la couverture du jeu" ,
"ja-JP" : "ゲームアートを表示" ,
"ko-KR" : "게임 아트 표시" ,
"pl-PL" : "Pokaż okładkę gry" ,
"pt-BR" : "Mostrar arte do jogo" ,
@ -796,6 +921,8 @@ const Translations = {
"de-DE" : "Statistiken beim Start des Spiels anzeigen" ,
"en-US" : "Show stats when starting the game" ,
"es-ES" : "Mostrar estadísticas al iniciar el juego" ,
"fr-FR" : "Afficher les statistiques au démarrage de la partie" ,
"ja-JP" : "ゲーム開始時に統計情報を表示" ,
"ko-KR" : "게임 시작 시 통계 보여주기" ,
"pl-PL" : "Pokaż statystyki podczas uruchamiania gry" ,
"pt-BR" : "Mostrar estatísticas ao iniciar o jogo" ,
@ -808,6 +935,8 @@ const Translations = {
"de-DE" : "Geschätzte Wartezeit anzeigen" ,
"en-US" : "Show the estimated wait time" ,
"es-ES" : "Mostrar el tiempo de espera estimado" ,
"fr-FR" : "Afficher le temps d'attente estimé" ,
"ja-JP" : "推定待機時間を表示" ,
"ko-KR" : "예상 대기 시간 표시" ,
"pl-PL" : "Pokaż szacowany czas oczekiwania" ,
"pt-BR" : "Mostrar o tempo estimado de espera" ,
@ -820,6 +949,8 @@ const Translations = {
"de-DE" : "Stream-Menü vereinfachen" ,
"en-US" : "Simplify Stream's menu" ,
"es-ES" : "Simplificar el menú del stream" ,
"fr-FR" : "Simplifier le menu Stream" ,
"ja-JP" : "ストリーミングメニューのラベルを非表示" ,
"ko-KR" : "메뉴 간단히 보기" ,
"pl-PL" : "Uprość menu strumienia" ,
"pt-BR" : "Simplificar menu do streaming" ,
@ -832,6 +963,8 @@ const Translations = {
"de-DE" : "Xbox Logo überspringen" ,
"en-US" : "Skip Xbox splash video" ,
"es-ES" : "Saltar vídeo de presentación de Xbox" ,
"fr-FR" : "Ignorer la vidéo de démarrage Xbox" ,
"ja-JP" : "Xboxの起動画面をスキップ" ,
"ko-KR" : "Xbox 스플래시 건너뛰기" ,
"pl-PL" : "Pomiń wstępne intro Xbox" ,
"pt-BR" : "Pular vídeo de abertura do Xbox" ,
@ -844,6 +977,8 @@ const Translations = {
"de-DE" : "Klein" ,
"en-US" : "Small" ,
"es-ES" : "Pequeño" ,
"fr-FR" : "Petite" ,
"ja-JP" : "小" ,
"ko-KR" : "작게" ,
"pl-PL" : "Mały" ,
"pt-BR" : "Pequeno" ,
@ -856,6 +991,8 @@ const Translations = {
"de-DE" : "Bitrate" ,
"en-US" : "Bitrate" ,
"es-ES" : "Tasa de bits" ,
"fr-FR" : "Bitrate" ,
"ja-JP" : "ビットレート" ,
"ko-KR" : "비트레이트" ,
"pl-PL" : "Bitrate" ,
"pt-BR" : "Bitrate" ,
@ -868,6 +1005,8 @@ const Translations = {
"de-DE" : "Dekodierzeit" ,
"en-US" : "Decode time" ,
"es-ES" : "Tiempo de decodificación" ,
"fr-FR" : "Décodage" ,
"ja-JP" : "デコード時間" ,
"ko-KR" : "디코딩 시간" ,
"pl-PL" : "Czas dekodowania" ,
"pt-BR" : "Tempo de decodificação" ,
@ -880,6 +1019,8 @@ const Translations = {
"de-DE" : "Framerate" ,
"en-US" : "FPS" ,
"es-ES" : "FPS" ,
"fr-FR" : "FPS" ,
"ja-JP" : "FPS" ,
"ko-KR" : "FPS" ,
"pl-PL" : "FPS" ,
"pt-BR" : "FPS" ,
@ -892,6 +1033,8 @@ const Translations = {
"de-DE" : "Verlorene Frames" ,
"en-US" : "Frames lost" ,
"es-ES" : "Pérdida de fotogramas" ,
"fr-FR" : "Images perdues" ,
"ja-JP" : "フレームロス" ,
"ko-KR" : "프레임 손실" ,
"pl-PL" : "Utracone klatki" ,
"pt-BR" : "Quadros perdidos" ,
@ -904,6 +1047,8 @@ const Translations = {
"de-DE" : "Paketverluste" ,
"en-US" : "Packets lost" ,
"es-ES" : "Pérdida de paquetes" ,
"fr-FR" : "Perte paquets" ,
"ja-JP" : "パケットロス" ,
"ko-KR" : "패킷 손실" ,
"pl-PL" : "Utracone pakiety" ,
"pt-BR" : "Pacotes perdidos" ,
@ -916,6 +1061,8 @@ const Translations = {
"de-DE" : "Ping" ,
"en-US" : "Ping" ,
"es-ES" : "Latencia" ,
"fr-FR" : "Ping" ,
"ja-JP" : "Ping" ,
"ko-KR" : "지연 시간" ,
"pl-PL" : "Ping" ,
"pt-BR" : "Ping" ,
@ -928,6 +1075,8 @@ const Translations = {
"de-DE" : "Statistiken" ,
"en-US" : "Stats" ,
"es-ES" : "Estadísticas" ,
"fr-FR" : "Stats" ,
"ja-JP" : "統計情報" ,
"ko-KR" : "통계" ,
"pl-PL" : "Statystyki" ,
"pt-BR" : "Estatísticas" ,
@ -940,6 +1089,8 @@ const Translations = {
"de-DE" : "Stream" ,
"en-US" : "Stream" ,
"es-ES" : "Stream" ,
"fr-FR" : "Stream" ,
"ja-JP" : "ストリーミング" ,
"ko-KR" : "스트리밍" ,
"pl-PL" : "Stream" ,
"pt-BR" : "Stream" ,
@ -952,6 +1103,8 @@ const Translations = {
"de-DE" : "Stream Statistik Einstellungen" ,
"en-US" : "Stream stats settings" ,
"es-ES" : "Ajustes de estadísticas de stream" ,
"fr-FR" : "Paramètres des statistiques du stream" ,
"ja-JP" : "ストリーミング統計の設定" ,
"ko-KR" : "스트리밍 통계 설정" ,
"pl-PL" : "Ustawienia statystyk strumienia" ,
"pt-BR" : "Ajustes de estatísticas" ,
@ -964,6 +1117,8 @@ const Translations = {
"de-DE" : "Strecken" ,
"en-US" : "Stretch" ,
"es-ES" : "Estirado" ,
"fr-FR" : "Étirer" ,
"ja-JP" : "引き伸ばし" ,
"ko-KR" : "채우기" ,
"pl-PL" : "Rozciągnij" ,
"pt-BR" : "Esticar" ,
@ -976,6 +1131,8 @@ const Translations = {
"de-DE" : "Festgelegte Auflösung" ,
"en-US" : "Target resolution" ,
"es-ES" : "Calidad de imagen" ,
"fr-FR" : "Résolution cible" ,
"ja-JP" : "ターゲット解像度" ,
"ko-KR" : "목표 해상도" ,
"pl-PL" : "Rozdzielczość docelowa" ,
"pt-BR" : "Resolução alvo" ,
@ -988,6 +1145,8 @@ const Translations = {
"de-DE" : "Alle Spiele" ,
"en-US" : "All games" ,
"es-ES" : "Todos los juegos" ,
"fr-FR" : "Tous les jeux" ,
"ja-JP" : "全てのゲームで有効" ,
"ko-KR" : "모든 게임" ,
"pl-PL" : "Wszystkie gry" ,
"pt-BR" : "Todos os jogos" ,
@ -1000,6 +1159,8 @@ const Translations = {
"de-DE" : "Komplett weiß" ,
"en-US" : "All white" ,
"es-ES" : "Todo blanco" ,
"fr-FR" : "Tout blanc" ,
"ja-JP" : "オールホワイト" ,
"ko-KR" : "모두 하얗게" ,
"pl-PL" : "Wszystkie białe" ,
"pt-BR" : "Tudo branco" ,
@ -1012,6 +1173,8 @@ const Translations = {
"de-DE" : "Verfügbarkeit" ,
"en-US" : "Availability" ,
"es-ES" : "Disponibilidad" ,
"fr-FR" : "Disponibilité" ,
"ja-JP" : "強制的に有効化" ,
"ko-KR" : "사용 여부" ,
"pl-PL" : "Dostępność" ,
"pt-BR" : "Disponibilidade" ,
@ -1024,6 +1187,8 @@ const Translations = {
"de-DE" : "Angepasstes Layout Button Stil" ,
"en-US" : "Custom layout's button style" ,
"es-ES" : "Estilo de botones de diseño personalizado" ,
"fr-FR" : "Style personnalisé des boutons" ,
"ja-JP" : "カスタムレイアウト" ,
"ko-KR" : "커스텀 레이아웃의 버튼 스타일" ,
"pl-PL" : "Niestandardowy układ przycisków" ,
"pt-BR" : "Estilo de botão do layout personalizado" ,
@ -1036,6 +1201,8 @@ const Translations = {
"de-DE" : "Matte Farben" ,
"en-US" : "Muted colors" ,
"es-ES" : "Colores apagados" ,
"fr-FR" : "Couleurs adoucies" ,
"ja-JP" : "ミュートカラー" ,
"ko-KR" : "저채도 색상" ,
"pl-PL" : "Stonowane kolory" ,
"pt-BR" : "Cores silenciadas" ,
@ -1048,6 +1215,8 @@ const Translations = {
"de-DE" : "Standard Layout Button Stil" ,
"en-US" : "Standard layout's button style" ,
"es-ES" : "Estilo de botones de diseño estándar" ,
"fr-FR" : "Style standard des boutons" ,
"ja-JP" : "標準レイアウト" ,
"ko-KR" : "표준 레이아웃의 버튼 스타일" ,
"pl-PL" : "Standardowy układ przycisków" ,
"pt-BR" : "Estilo padrão de botões do layout" ,
@ -1060,6 +1229,8 @@ const Translations = {
"de-DE" : "Textgröße" ,
"en-US" : "Text size" ,
"es-ES" : "Tamano del texto" ,
"fr-FR" : "Taille du texte" ,
"ja-JP" : "文字サイズ" ,
"ko-KR" : "글자 크기" ,
"pl-PL" : "Rozmiar tekstu" ,
"pt-BR" : "Tamanho do texto" ,
@ -1072,6 +1243,8 @@ const Translations = {
"de-DE" : "Oben zentriert" ,
"en-US" : "Top-center" ,
"es-ES" : "Superior centrado" ,
"fr-FR" : "En haut au centre" ,
"ja-JP" : "上" ,
"ko-KR" : "중앙 상단" ,
"pl-PL" : "Wyśrodkowany na górze" ,
"pt-BR" : "Superior-centralizado" ,
@ -1084,6 +1257,8 @@ const Translations = {
"de-DE" : "Oben links" ,
"en-US" : "Top-left" ,
"es-ES" : "Superior izquierdo" ,
"fr-FR" : "Haut-gauche" ,
"ja-JP" : "左上" ,
"ko-KR" : "좌측 상단" ,
"pl-PL" : "Lewy górny róg" ,
"pt-BR" : "Superior-esquerdo" ,
@ -1096,6 +1271,8 @@ const Translations = {
"de-DE" : "Oben rechts" ,
"en-US" : "Top-right" ,
"es-ES" : "Superior derecho" ,
"fr-FR" : "En haut à droite" ,
"ja-JP" : "右上" ,
"ko-KR" : "우측 상단" ,
"pl-PL" : "Prawy górny róg" ,
"pt-BR" : "Superior-direito" ,
@ -1108,6 +1285,8 @@ const Translations = {
"de-DE" : "Touch-Controller" ,
"en-US" : "Touch controller" ,
"es-ES" : "Controles táctiles" ,
"fr-FR" : "Commandes tactiles" ,
"ja-JP" : "タッチコントローラー" ,
"ko-KR" : "터치 컨트롤" ,
"pl-PL" : "Sterowanie dotykiem" ,
"pt-BR" : "Controle de toque" ,
@ -1120,6 +1299,8 @@ const Translations = {
"de-DE" : "Transparenter Hintergrund" ,
"en-US" : "Transparent background" ,
"es-ES" : "Fondo transparente" ,
"fr-FR" : "Fond transparent" ,
"ja-JP" : "背景の透過" ,
"ko-KR" : "투명 배경" ,
"pl-PL" : "Przezroczyste tło" ,
"pt-BR" : "Fundo transparente" ,
@ -1132,6 +1313,8 @@ const Translations = {
"de-DE" : "Benutzeroberfläche" ,
"en-US" : "UI" ,
"es-ES" : "Interfaz de usuario" ,
"fr-FR" : "Interface utilisateur" ,
"ja-JP" : "UI" ,
"ko-KR" : "UI" ,
"pl-PL" : "Interfejs" ,
"pt-BR" : "Interface" ,
@ -1144,6 +1327,8 @@ const Translations = {
"de-DE" : "User-Agent Profil" ,
"en-US" : "User-Agent profile" ,
"es-ES" : "Perfil del agente de usuario" ,
"fr-FR" : "Profil de l'agent utilisateur" ,
"ja-JP" : "ユーザーエージェントプロファイル" ,
"ko-KR" : "사용자 에이전트 프로파일" ,
"pl-PL" : "Profil User-Agent" ,
"pt-BR" : "Perfil do User-Agent" ,
@ -1156,6 +1341,8 @@ const Translations = {
"de-DE" : "Video" ,
"en-US" : "Video" ,
"es-ES" : "Video" ,
"fr-FR" : "Vidéo" ,
"ja-JP" : "映像" ,
"ko-KR" : "비디오" ,
"pl-PL" : "Obraz" ,
"pt-BR" : "Vídeo" ,
@ -1168,6 +1355,8 @@ const Translations = {
"de-DE" : "Bildqualität" ,
"en-US" : "Visual quality" ,
"es-ES" : "Calidad visual" ,
"fr-FR" : "Qualité visuelle" ,
"ja-JP" : "画質" ,
"ko-KR" : "시각적 품질" ,
"pl-PL" : "Jakość grafiki" ,
"pt-BR" : "Qualidade visual" ,
@ -1180,6 +1369,8 @@ const Translations = {
"de-DE" : "Hoch" ,
"en-US" : "High" ,
"es-ES" : "Alto" ,
"fr-FR" : "Élevée" ,
"ja-JP" : "高" ,
"ko-KR" : "높음" ,
"pl-PL" : "Wysoka" ,
"pt-BR" : "Alto" ,
@ -1192,6 +1383,8 @@ const Translations = {
"de-DE" : "Niedrig" ,
"en-US" : "Low" ,
"es-ES" : "Bajo" ,
"fr-FR" : "Basse" ,
"ja-JP" : "低" ,
"ko-KR" : "낮음" ,
"pl-PL" : "Niska" ,
"pt-BR" : "Baixo" ,
@ -1204,6 +1397,8 @@ const Translations = {
"de-DE" : "Mittel" ,
"en-US" : "Normal" ,
"es-ES" : "Normal" ,
"fr-FR" : "Normal" ,
"ja-JP" : "中" ,
"ko-KR" : "보통" ,
"pl-PL" : "Normalna" ,
"pt-BR" : "Normal" ,
@ -1216,6 +1411,8 @@ const Translations = {
"de-DE" : "Lautstärke" ,
"en-US" : "Volume" ,
"es-ES" : "Volumen" ,
"fr-FR" : "Volume" ,
"ja-JP" : "音量" ,
"ko-KR" : "음량" ,
"pl-PL" : "Głośność" ,
"pt-BR" : "Volume" ,
@ -1228,6 +1425,8 @@ const Translations = {
"de-DE" : "Countdown" ,
"en-US" : "Countdown" ,
"es-ES" : "Cuenta Regresiva" ,
"fr-FR" : "Compte à rebours" ,
"ja-JP" : "カウントダウン" ,
"ko-KR" : "카운트다운" ,
"pl-PL" : "Pozostały czas oczekiwania" ,
"pt-BR" : "Contagem regressiva" ,
@ -1240,6 +1439,8 @@ const Translations = {
"de-DE" : "Geschätzte Endzeit" ,
"en-US" : "Estimated finish time" ,
"es-ES" : "Tiempo estimado de finalización" ,
"fr-FR" : "Temps estimé avant la fin" ,
"ja-JP" : "推定完了時間" ,
"ko-KR" : "예상 완료 시간" ,
"pl-PL" : "Szacowany czas zakończenia" ,
"pt-BR" : "Tempo estimado de conclusão" ,
@ -1329,18 +1530,18 @@ class TitlesInfo {
static saveFromTitleInfo ( titleInfo ) {
const details = titleInfo . details ;
TitlesInfo . # INFO [ details . productId ] = {
TitlesInfo . update ( details . productId , {
titleId : titleInfo . titleId ,
// Has more than one input type -> must have touch support
hasTouchSupport : ( details . supportedInputTypes . length > 1 ) ,
} ;
} ) ;
}
static saveFromCatalogInfo ( catalogInfo ) {
const titleId = catalogInfo . StoreId ;
const imageHero = ( catalogInfo . Image _Hero || catalogInfo . Image _Tile || { } ) . URL ;
TitlesInfo . update ( titleId , {
imageHero : catalogInfo . I mage_ Hero ? catalogInfo . Image _Hero . URL : '' ,
imageHero : i mageHero,
} ) ;
}
@ -1562,6 +1763,8 @@ class TouchController {
}
static # $bar ;
static # $style ;
static # enable = false ;
static # showing = false ;
static # dataChannel ;
@ -1606,6 +1809,7 @@ class TouchController {
TouchController . # dataChannel = null ;
TouchController . # $bar && TouchController . # $bar . removeAttribute ( 'data-showing' ) ;
TouchController . # $style && ( TouchController . # $style . textContent = '' ) ;
}
static # dispatchMessage ( msg ) {
@ -1638,6 +1842,7 @@ class TouchController {
} ) ;
TouchController . # $bar = $bar ;
TouchController . # $style = $style ;
const PREF _STYLE _STANDARD = PREFS . get ( Preferences . STREAM _TOUCH _CONTROLLER _STYLE _STANDARD ) ;
const PREF _STYLE _CUSTOM = PREFS . get ( Preferences . STREAM _TOUCH _CONTROLLER _STYLE _CUSTOM ) ;
@ -2389,7 +2594,9 @@ class Preferences {
'de-DE' : 'Deutsch' ,
'en-US' : 'English (United States)' ,
'es-ES' : 'espa\xf1ol (Espa\xf1a)' ,
'fr-FR' : 'fran\xe7ais' ,
'ko-KR' : '\ud55c\uad6d\uc5b4' ,
'ja-JP' : '\u65e5\u672c\u8a9e' ,
'pl-PL' : 'polski' ,
'pt-BR' : 'portugu\xeas (Brasil)' ,
'ru-RU' : '\u0440\u0443\u0441\u0441\u043a\u0438\u0439' ,
@ -2437,7 +2644,7 @@ class Preferences {
[ Preferences . STREAM _TARGET _RESOLUTION ] : {
'default' : 'auto' ,
'options' : {
'auto' : _ _ ( 'auto ' ) ,
'auto' : _ _ ( 'default ' ) ,
'1080p' : '1080p' ,
'720p' : '720p' ,
} ,
@ -3865,9 +4072,18 @@ function updateIceCandidates(candidates) {
}
function clearApplicationInsightsBuffers ( ) {
window . sessionStorage . removeItem ( 'AI_buffer' ) ;
window . sessionStorage . removeItem ( 'AI_sentBuffer' ) ;
}
function interceptHttpRequests ( ) {
var BLOCKED _URLS = [ ] ;
if ( PREFS . get ( Preferences . BLOCK _TRACKING ) ) {
// Clear Applications Insight buffers
clearApplicationInsightsBuffers ( ) ;
BLOCKED _URLS = BLOCKED _URLS . concat ( [
'https://arc.msn.com' ,
'https://browser.events.data.microsoft.com' ,
@ -3902,6 +4118,9 @@ function interceptHttpRequests() {
xhrPrototype . send = function ( ... arg ) {
for ( let blocked of BLOCKED _URLS ) {
if ( this . _url . startsWith ( blocked ) ) {
if ( blocked === 'https://dc.services.visualstudio.com' ) {
setTimeout ( clearApplicationInsightsBuffers , 1000 ) ;
}
return false ;
}
}