From 836e0508fb580df99bd2e896ea898bf9074ed409 Mon Sep 17 00:00:00 2001 From: Filipe Moreira <108258235+lippdev@users.noreply.github.com> Date: Mon, 19 Oct 2026 18:39:45 +0200 Subject: [PATCH] docs: README and guide in Spanish, German, French and Russian, plus a translation guide The app speaks six languages but the docs only two. The new READMEs leave out version numbers, "What's new" and the roadmap so they don't go stale every release; the guides skip the build section and point to the English one. UI labels come from each language's catalog. docs/TRANSLATING.md explains how to fix a translation or add a language, and AGENTS.md now lists all six catalogs. Co-Authored-By: Claude Opus 5.5 --- AGENTS.md | 10 +++-- README.de-DE.md | 66 +++++++++++++++++++++++++++ README.es-ES.md | 65 +++++++++++++++++++++++++++ README.fr-FR.md | 65 +++++++++++++++++++++++++++ README.md | 3 +- README.pt-BR.md | 3 +- README.ru-RU.md | 65 +++++++++++++++++++++++++++ docs/GUIDE.de-DE.md | 106 ++++++++++++++++++++++++++++++++++++++++++++ docs/GUIDE.es-ES.md | 106 ++++++++++++++++++++++++++++++++++++++++++++ docs/GUIDE.fr-FR.md | 106 ++++++++++++++++++++++++++++++++++++++++++++ docs/GUIDE.md | 4 +- docs/GUIDE.pt-BR.md | 4 +- docs/GUIDE.ru-RU.md | 106 ++++++++++++++++++++++++++++++++++++++++++++ docs/TRANSLATING.md | 44 ++++++++++++++++++ 14 files changed, 746 insertions(+), 7 deletions(-) create mode 100644 README.de-DE.md create mode 100644 README.es-ES.md create mode 100644 README.fr-FR.md create mode 100644 README.ru-RU.md create mode 100644 docs/GUIDE.de-DE.md create mode 100644 docs/GUIDE.es-ES.md create mode 100644 docs/GUIDE.fr-FR.md create mode 100644 docs/GUIDE.ru-RU.md create mode 100644 docs/TRANSLATING.md diff --git a/AGENTS.md b/AGENTS.md index 6aef845..b7bad2e 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -32,12 +32,16 @@ Xbox mode, and restores the desk setup afterwards. ## Conventions -- **Every user-facing string** goes in all three catalogs: - `src/ConsoleMode/Resources/Strings.pt-BR.json`, `Strings.en-US.json`, `Strings.es-ES.json`. - The localization tests fail when keys don't match. +- **Every user-facing string** goes in every catalog in `src/ConsoleMode/Resources/` + (`Strings.pt-BR.json`, `en-US`, `es-ES`, `de-DE`, `fr-FR`, `ru-RU`), translated. + The localization tests fail when keys or `{0}` placeholders don't match, or when a sentence + is left in English. - **Changelog**: add user-visible changes under `## [Unreleased]` in both `CHANGELOG.md` (Portuguese) and `CHANGELOG.en-US.md`, ending the item with the PR number. - **Docs come in pairs**: `README.md` / `README.pt-BR.md`, `docs/GUIDE.md` / `docs/GUIDE.pt-BR.md`. + The `README..md` and `docs/GUIDE..md` translations (es-ES, de-DE, fr-FR, ru-RU) are leaner + (no version numbers, "What's new" or roadmap): update them too when you change a section they carry. + Adding a language: follow `docs/TRANSLATING.md`. - **Commits and PR titles**: Conventional Commits in English (`fix: …`, `feat: …`, `docs: …`), one topic per PR. `AppLog` messages are written in Portuguese, like the existing ones. - Keep changes small and focused; don't reformat unrelated code. diff --git a/README.de-DE.md b/README.de-DE.md new file mode 100644 index 0000000..c057542 --- /dev/null +++ b/README.de-DE.md @@ -0,0 +1,66 @@ +# Console Mode + +Mach deinen Windows-PC mit einem Klick zur **Spielkonsole**: Der Fernseher wird zum Hauptbildschirm, die anderen Bildschirme gehen aus, der Ton wechselt und deine Spieleoberfläche startet. Beende das Spiel und dein Schreibtisch-Setup kommt von selbst zurück. + +[English](README.md) · [Português (Brasil)](README.pt-BR.md) · [Español](README.es-ES.md) · Deutsch · [Français](README.fr-FR.md) · [Русский](README.ru-RU.md) + +![Windows](https://img.shields.io/badge/Windows-10%2F11-blue) +![Version](https://img.shields.io/github/v/release/lippdev/consolemode?label=Version&color=brightgreen) +![License](https://img.shields.io/github/license/lippdev/consolemode) + +Rundgang durch Console Mode 1.6: Ein Klick bringt das Spiel auf den Fernseher, das Sitzungsmenü über dem Spiel mit den geöffneten Fenstern, der integrierte Dateimanager ControlFS, die Konsolenoberfläche mit den Registerkarten Startseite, Sitzung und System sowie selbst gewählte Controller-Tastenkombinationen. + +## Download + +Hol dir die neueste stabile Version unter **[Releases](https://github.com/lippdev/consolemode/releases/latest)**: + +- **`ConsoleMode-Setup-x64.exe`** (empfohlen): Installation pro Benutzer, ohne Administratorrechte, aktualisiert sich selbst. +- **`ConsoleMode-Portable-x64.exe`**: eine einzelne EXE, die ihre Daten direkt daneben speichert. +- Oder mit winget: `winget install lippdev.ConsoleMode` + +Du willst Neues vor allen anderen ausprobieren? Schalte unter Einstellungen „Testversionen erhalten (Alpha und Beta)“ ein. + +Windows 10 oder 11, dazu [Steam](https://store.steampowered.com/) (Big Picture), [Playnite](https://playnite.link/) oder die Xbox-App. [RTSS](https://www.guru3d.com/files-details/rtss-rivatuner-statistics-server-download.html) ist optional, für die FPS-Begrenzung und die FPS-Anzeige. + +## So funktioniert es + +1. Öffne die App und wähle den Bildschirm, auf dem du spielst. Die anderen gehen aus. +2. Drücke **Jetzt spielen** oder nutze die Desktop-Verknüpfung mit einem Klick. Beim ersten Mal auf einem neuen Bildschirm fragt der Fernseher „Kannst du diesen Bildschirm sehen?“ und setzt alles von selbst zurück, wenn niemand antwortet. +3. Beende Big Picture oder Playnite und alles kehrt zurück: Bildschirme, Ton, Auflösung. + +Lieber vom Sofa aus? Wenn die App im Infobereich läuft, halte deine Controller-Tastenkombination gedrückt und es geht von dort los. + +Die Controller-Tastenkombinationen wählst du selbst: Anfangs ist keine aktiv, die App fragt dich beim ersten Öffnen danach (und du kannst sie in den Einstellungen ändern). Keine Taste kann zwei Aktionen auslösen. + +| Controller-Tastenkombination | Funktion | Vorschlag | +|---|---|---| +| Deine Kombination zum **Öffnen** halten | Konsolenmodus aus dem Infobereich starten | **Home** (Xbox / PS) | +| Deine Kombination für das **Menü** halten | Menü über dem Spiel: geöffnete Fenster, Dateimanager, Lautstärke, Auflösung, Audio, FPS, HDR, Beenden | **Select + Y** (Create + △) | +| Deine Kombination für **Zurück zum PC** halten | Zurück zum PC | **Start + Select** (Options + Create) | + +## Funktionen + +- Andere Bildschirme ausblenden durch **Trennen**, **schwarze Bildschirme** oder **DDC/CI**, alles mit den Windows-eigenen APIs: Es werden keine Bildschirm- oder Audio-Tools von Drittanbietern mitgeliefert +- **Auflösung und Bildwiederholrate** pro Bildschirm, **HDR**, **VRR** und eine **FPS-Begrenzung** (RTSS) während du spielst +- **FPS-Anzeige** über dem Spiel (RTSS) als Kachel in drei Größen: Nur FPS, Kompakt (CPU-, GPU- und RAM-Auslastung), Detailliert (Taktraten, GPU-Temperatur und Speicher) oder dein eigenes Layout +- Der Ton geht an den Fernseher (oder einen beliebigen Ausgang) und kommt danach zurück +- [Schaltet den Fernseher ein und wechselt auf den Eingang des PCs](docs/GUIDE.de-DE.md#fernsehersteuerung) (Google TV / Android TV über das Netzwerk) und kann ihn danach in den Standby versetzen +- Startet **Steam Big Picture**, **Playnite im Vollbild** oder den **Xbox-Modus** und minimiert Steam in den Infobereich, wenn du zum PC zurückkehrst +- **Sitzungsmenü** über dem Spiel: geöffnete Fenster wechseln oder schließen, Lautstärke, Auflösung, Audio, FPS und HDR ändern, den Mauszeiger ausblenden oder mit dem Controller steuern und deine Dateien mit [ControlFS](https://github.com/nextestudios/ControlFS) durchsuchen +- Zwei Oberflächen: **Desktop** (Maus) und **Konsole** (Vollbild, Xbox- und PlayStation-Controller, Registerkarten mit LB/RB, deine Steam-Cover als Hintergrund) +- Automatisierung mit den Links `consolemode://start` / `stop` / `menu` (Stream Deck, Skripte) und einer [lokalen Steuerungs-API](docs/GUIDE.de-DE.md#lokale-steuerungs-api) +- Englisch, Portugiesisch, Spanisch, Deutsch, Französisch und Russisch + +Was in jeder Version neu ist, steht im [CHANGELOG.en-US.md](CHANGELOG.en-US.md) (auf Englisch). + +## Mehr + +- [Anleitung](docs/GUIDE.de-DE.md): Modi und Wiederherstellung, Steuerungs-API, HDR/VRR/FPS, Fehlerbehebung +- **Feedback:** die Schaltfläche „Feedback senden“ neben den Einstellungen in der App oder [dieses Formular](https://github.com/lippdev/consolemode/issues/new?template=feedback.yml). Ein ⭐ hilft anderen Sofa-Spielern, das Projekt zu finden. +- Die Releases sind noch nicht code-signiert, daher warnen Windows SmartScreen oder ein Virenscanner eventuell beim Download; der Quellcode liegt komplett hier. +- **Beim Übersetzen helfen:** siehe [docs/TRANSLATING.md](docs/TRANSLATING.md). +- Die deutsche Oberfläche wurde von [u/Skinner99](https://www.reddit.com/user/Skinner99/) auf Reddit übersetzt. + +[Nur GNU Affero General Public License v3.0](LICENSE) · [Hinweise zu Drittanbietern](THIRD_PARTY_NOTICES.md) · [Richtlinie zur Codesignierung](docs/CODE_SIGNING.md) + +*Diese Seite ist eine Übersetzung des englischen README. Wenn etwas abweicht, gilt die englische Version als aktuell.* diff --git a/README.es-ES.md b/README.es-ES.md new file mode 100644 index 0000000..5f18907 --- /dev/null +++ b/README.es-ES.md @@ -0,0 +1,65 @@ +# Console Mode + +Convierte tu PC con Windows en una **consola** con un clic: enfoca la TV, apaga las demás pantallas, cambia el audio y abre la interfaz de tus juegos. Al salir del juego, tu escritorio vuelve solo. + +[English](README.md) · [Português (Brasil)](README.pt-BR.md) · Español · [Deutsch](README.de-DE.md) · [Français](README.fr-FR.md) · [Русский](README.ru-RU.md) + +![Windows](https://img.shields.io/badge/Windows-10%2F11-blue) +![Versión](https://img.shields.io/github/v/release/lippdev/consolemode?label=versi%C3%B3n&color=brightgreen) +![Licencia](https://img.shields.io/github/license/lippdev/consolemode) + +Recorrido por Console Mode 1.6: un clic lleva el juego a la TV, el menú de la sesión sobre el juego con las ventanas abiertas, el explorador de archivos ControlFS integrado, la interfaz Consola con sus pestañas Inicio, Sesión y Sistema, y los atajos del mando que tú eliges. + +## Descarga + +Descarga la última versión estable desde **[la página de releases](https://github.com/lippdev/consolemode/releases/latest)**: + +- **`ConsoleMode-Setup-x64.exe`** (recomendado): instalación por usuario, sin permisos de administrador, se actualiza sola. +- **`ConsoleMode-Portable-x64.exe`**: un solo exe que guarda sus datos a su lado. +- O con winget: `winget install lippdev.ConsoleMode` + +¿Quieres probar lo que viene antes que nadie? Activa Ajustes → "Recibir versiones de prueba (alfa y beta)". + +Windows 10 u 11, más [Steam](https://store.steampowered.com/) (Big Picture), [Playnite](https://playnite.link/) o la aplicación Xbox. [RTSS](https://www.guru3d.com/files-details/rtss-rivatuner-statistics-server-download.html) es opcional, para el límite de FPS y el contador de FPS. + +## Cómo funciona + +1. Abre la aplicación y elige la pantalla en la que juegas. Las demás se apagan. +2. Pulsa **Jugar ahora**, o usa el acceso directo de un clic del escritorio. La primera vez en una pantalla nueva, la TV pregunta "¿Ves esta pantalla?" y, si nadie responde, todo vuelve atrás solo. +3. Sal de Big Picture o de Playnite y todo vuelve a su sitio: pantallas, audio y resolución. + +¿Prefieres el sofá? Con la aplicación en la bandeja, mantén pulsado tu atajo del mando y empieza desde ahí. + +Los atajos del mando los eliges tú: al principio no hay ninguno activado, la aplicación te pregunta la primera vez que la abres (y puedes cambiarlos en Ajustes). Un mismo botón no puede servir para dos acciones. + +| Atajo del mando | Qué hace | Sugerido | +|---|---|---| +| Mantén tu atajo para **abrir** | Entra en el modo consola desde la bandeja | **Home** (Xbox / PS) | +| Mantén tu atajo del **menú** | Menú sobre el juego: ventanas abiertas, explorador de archivos, volumen, resolución, audio, FPS, HDR, salir | **Select + Y** (Create + △) | +| Mantén tu atajo para **volver al PC** | Volver al PC | **Start + Select** (Options + Create) | + +## Funciones + +- Oculta las demás pantallas **desconectándolas**, con **pantallas negras** o por **DDC/CI**, todo con las propias API de Windows: no se incluye ninguna herramienta de terceros de pantalla o audio +- **Resolución y frecuencia de actualización** por pantalla, **HDR**, **VRR** y **límite de FPS** (RTSS) mientras juegas +- **Contador de FPS** sobre el juego (RTSS) en una tarjeta de tres tamaños: solo FPS, compacto (uso de CPU, GPU y RAM), detallado (relojes, temperatura y memoria de la GPU) o tu propia disposición +- El audio va a la TV (o a cualquier salida) y vuelve después +- [Enciende la TV y la cambia a la entrada del PC](docs/GUIDE.es-ES.md#control-de-la-tv) (Google TV / Android TV por la red), y puede ponerla en reposo después +- Abre **Steam Big Picture**, **Playnite a pantalla completa** o el **modo Xbox**, y envía Steam a la bandeja al volver al PC +- **Menú de la sesión** sobre el juego: cambia o cierra las ventanas abiertas, ajusta volumen, resolución, audio, FPS y HDR, oculta el puntero del ratón o muévelo con el mando, y explora tus archivos con [ControlFS](https://github.com/nextestudios/ControlFS) +- Dos interfaces: **Escritorio** (ratón) y **Consola** (pantalla completa, mandos de Xbox y PlayStation, pestañas con LB/RB, tus portadas de Steam de fondo) +- Automatización con los enlaces `consolemode://start` / `stop` / `menu` (Stream Deck, scripts) y una [API de control local](docs/GUIDE.es-ES.md#api-de-control-local) +- Inglés, portugués, español, alemán, francés y ruso + +Las novedades de cada versión están en el [CHANGELOG.en-US.md](CHANGELOG.en-US.md) (en inglés). + +## Más + +- [Guía](docs/GUIDE.es-ES.md): modos y restauración, API de control, HDR/VRR/FPS, solución de problemas +- **Comentarios:** el botón junto a Ajustes en la aplicación, o [este formulario](https://github.com/lippdev/consolemode/issues/new?template=feedback.yml). Una ⭐ ayuda a que otros jugadores de sofá encuentren el proyecto. +- Las versiones todavía no están firmadas digitalmente, así que Windows SmartScreen o un antivirus pueden avisar al descargarlas; todo el código fuente está aquí. +- ¿Quieres ayudar a traducir? Consulta [docs/TRANSLATING.md](docs/TRANSLATING.md). + +[GNU Affero General Public License v3.0 only](LICENSE) · [Avisos de terceros](THIRD_PARTY_NOTICES.md) · [Política de firma de código](docs/CODE_SIGNING.md) + +*Esta página es una traducción del README en inglés. Si algo no coincide, la versión en inglés es la vigente.* diff --git a/README.fr-FR.md b/README.fr-FR.md new file mode 100644 index 0000000..192fbfa --- /dev/null +++ b/README.fr-FR.md @@ -0,0 +1,65 @@ +# Console Mode + +Transformez votre PC Windows en **console de jeu** en un clic : la TV passe au premier plan, les autres écrans s'éteignent, le son bascule et votre interface de jeu se lance. Quittez le jeu et votre bureau revient tout seul. + +[English](README.md) · [Português (Brasil)](README.pt-BR.md) · [Español](README.es-ES.md) · [Deutsch](README.de-DE.md) · Français · [Русский](README.ru-RU.md) + +![Windows](https://img.shields.io/badge/Windows-10%2F11-blue) +![Version](https://img.shields.io/github/v/release/lippdev/consolemode?label=version&color=brightgreen) +![License](https://img.shields.io/github/license/lippdev/consolemode) + +Visite de Console Mode 1.6 : un clic envoie le jeu sur la TV, le menu de session par-dessus le jeu avec les fenêtres ouvertes, l'explorateur de fichiers ControlFS intégré, l'interface Console avec ses onglets Accueil, Session et Système, et les raccourcis manette que vous choisissez. + +## Téléchargement + +Récupérez la dernière version stable sur **[la page des versions](https://github.com/lippdev/consolemode/releases/latest)** : + +- **`ConsoleMode-Setup-x64.exe`** (recommandé) : installation par utilisateur, sans droits administrateur, mises à jour automatiques. +- **`ConsoleMode-Portable-x64.exe`** : un seul exe qui garde ses données à côté de lui. +- Ou avec winget : `winget install lippdev.ConsoleMode` + +Envie d'essayer la suite avant tout le monde ? Activez Paramètres → « Recevoir les versions de test (alpha et bêta) ». + +Windows 10 ou 11, plus [Steam](https://store.steampowered.com/) (Big Picture), [Playnite](https://playnite.link/) ou l'application Xbox. [RTSS](https://www.guru3d.com/files-details/rtss-rivatuner-statistics-server-download.html) est facultatif, pour la limite de FPS et le compteur de FPS. + +## Comment ça marche + +1. Ouvrez l'application et choisissez l'écran sur lequel vous jouez. Les autres s'éteignent. +2. Appuyez sur **Jouer**, ou utilisez le raccourci en un clic sur le Bureau. La première fois sur un nouvel écran, la TV demande « Voyez-vous cet écran ? » et revient en arrière toute seule si personne ne répond. +3. Quittez Big Picture ou Playnite et tout revient : écrans, son, résolution. + +Plutôt canapé ? Avec l'application dans la zone de notification, maintenez votre raccourci manette et elle démarre depuis là. + +C'est vous qui choisissez les raccourcis manette : aucun n'est actif au départ, l'application vous les demande à la première ouverture (et vous pouvez les modifier dans les Paramètres). Un même bouton ne peut pas servir à deux actions. + +| Raccourci manette | Action | Suggestion | +|---|---|---| +| Maintenir le raccourci **d'ouverture** | Entrer en mode console depuis la zone de notification | **Home** (Xbox / PS) | +| Maintenir le raccourci **du menu** | Menu par-dessus le jeu : fenêtres ouvertes, explorateur de fichiers, volume, résolution, son, FPS, HDR, sortie | **Select + Y** (Create + △) | +| Maintenir le raccourci **de retour au PC** | Retour au PC | **Start + Select** (Options + Create) | + +## Fonctionnalités + +- Masquer les autres écrans en les **déconnectant**, avec des **écrans noirs** ou par **DDC/CI**, uniquement avec les API de Windows : aucun outil tiers d'affichage ou de son n'est inclus +- **Résolution et fréquence** par écran, **HDR**, **VRR** et **limite de FPS** (RTSS) pendant que vous jouez +- **Compteur de FPS** par-dessus le jeu (RTSS) sur une carte en trois tailles : FPS seulement, compact (utilisation CPU, GPU et RAM), détaillé (fréquences, température et mémoire du GPU) ou votre propre disposition +- Le son passe sur la TV (ou n'importe quelle sortie) et revient ensuite +- [Allume la TV et la bascule sur l'entrée du PC](docs/GUIDE.fr-FR.md#contrôle-de-la-tv) (Google TV / Android TV par le réseau), et peut la mettre en veille ensuite +- Lance **Steam Big Picture**, **Playnite en plein écran** ou le mode **Xbox**, et réduit Steam dans la zone de notification quand vous revenez au PC +- **Menu de session** par-dessus le jeu : changer de fenêtre ou fermer les fenêtres ouvertes, régler le volume, la résolution, le son, les FPS et le HDR, masquer le pointeur de la souris ou le piloter à la manette, et parcourir vos fichiers avec [ControlFS](https://github.com/nextestudios/ControlFS) +- Deux interfaces : **Bureau** (souris) et **Console** (plein écran, manettes Xbox et PlayStation, onglets sur LB/RB, vos jaquettes Steam en fond) +- Automatisation avec les liens `consolemode://start` / `stop` / `menu` (Stream Deck, scripts) et une [API de contrôle local](docs/GUIDE.fr-FR.md#api-de-contrôle-local) +- Anglais, portugais, espagnol, allemand, français et russe + +Les nouveautés de chaque version sont dans le [CHANGELOG.en-US.md](CHANGELOG.en-US.md) (en anglais). + +## Plus + +- [Guide](docs/GUIDE.fr-FR.md) : modes et restauration, API de contrôle, HDR/VRR/FPS, dépannage +- **Commentaires :** le bouton « Envoyer des commentaires » à côté des Paramètres dans l'application, ou [ce formulaire](https://github.com/lippdev/consolemode/issues/new?template=feedback.yml). Une ⭐ aide d'autres joueurs de canapé à trouver le projet. +- Les versions ne sont pas encore signées numériquement, donc Windows SmartScreen ou un antivirus peut afficher un avertissement au téléchargement ; tout le code source est ici. +- **Aider à traduire :** voir [docs/TRANSLATING.md](docs/TRANSLATING.md) (en anglais). + +[GNU Affero General Public License v3.0 uniquement](LICENSE) · [Mentions des logiciels tiers](THIRD_PARTY_NOTICES.md) · [Politique de signature du code](docs/CODE_SIGNING.md) + +*Cette page est une traduction du README en anglais. En cas de différence, c'est la version anglaise qui fait foi.* diff --git a/README.md b/README.md index 11706e5..a1539b3 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ Turn your Windows PC into a **game console** with one click: focus the TV, turn off the other screens, switch the audio and launch your game UI. Quit the game and your desk comes back on its own. -🇧🇷 [Leia em português](README.pt-BR.md) +English · [Português (Brasil)](README.pt-BR.md) · [Español](README.es-ES.md) · [Deutsch](README.de-DE.md) · [Français](README.fr-FR.md) · [Русский](README.ru-RU.md) ![Windows](https://img.shields.io/badge/Windows-10%2F11-blue) ![Version](https://img.shields.io/github/v/release/lippdev/consolemode?label=version&color=brightgreen) @@ -85,6 +85,7 @@ All the details in the [release notes](https://github.com/lippdev/consolemode/re - [Guide](docs/GUIDE.md): modes and restore, control API, HDR/VRR/FPS, troubleshooting, building from source - **Feedback:** the button next to Settings in the app, or [this form](https://github.com/lippdev/consolemode/issues/new?template=feedback.yml). A ⭐ helps other couch gamers find the project. +- **Translations:** fix a line or add your language with the [translation guide](docs/TRANSLATING.md); no Windows needed. - The releases are not code-signed yet, so Windows SmartScreen or an antivirus may warn about the download; the source is all here. [GNU Affero General Public License v3.0 only](LICENSE) · [Third-party notices](THIRD_PARTY_NOTICES.md) · [Code signing policy](docs/CODE_SIGNING.md) diff --git a/README.pt-BR.md b/README.pt-BR.md index 13d8939..5c53598 100644 --- a/README.pt-BR.md +++ b/README.pt-BR.md @@ -2,7 +2,7 @@ Transforme seu PC Windows em um **console de jogos** com um clique: foque na TV, desligue as outras telas, mude o áudio e abra a interface de jogos. Saiu do jogo, a mesa volta sozinha. -🇺🇸 [Read in English](README.md) +[English](README.md) · Português (Brasil) · [Español](README.es-ES.md) · [Deutsch](README.de-DE.md) · [Français](README.fr-FR.md) · [Русский](README.ru-RU.md) ![Windows](https://img.shields.io/badge/Windows-10%2F11-blue) ![Version](https://img.shields.io/github/v/release/lippdev/consolemode?label=vers%C3%A3o&color=brightgreen) @@ -85,6 +85,7 @@ Todos os detalhes nas [notas da versão](https://github.com/lippdev/consolemode/ - [Guia](docs/GUIDE.pt-BR.md): modos e restauração, API de controle, HDR/VRR/FPS, solução de problemas, compilar - **Feedback:** o botão ao lado de Ajustes no app, ou [este formulário](https://github.com/lippdev/consolemode/issues/new?template=feedback.yml). Uma ⭐ ajuda outros jogadores de sofá a encontrar o projeto. +- **Traduções:** corrija um texto ou traga o seu idioma pelo [guia de tradução](docs/TRANSLATING.md) (em inglês); não precisa de Windows. - As versões ainda não são assinadas, então o Windows SmartScreen ou um antivírus pode avisar sobre o download; o código está todo aqui. Licença [GNU Affero General Public License v3.0 only](LICENSE) · [Avisos de terceiros](THIRD_PARTY_NOTICES.md) · [Política de assinatura de código](docs/CODE_SIGNING.md) diff --git a/README.ru-RU.md b/README.ru-RU.md new file mode 100644 index 0000000..0a113b5 --- /dev/null +++ b/README.ru-RU.md @@ -0,0 +1,65 @@ +# Console Mode + +Превратите ПК с Windows в **игровую консоль** одним щелчком: фокус на телевизор, остальные экраны отключаются, звук переключается, и запускается ваш игровой интерфейс. Выйдите из игры, и рабочий стол вернётся сам. + +[English](README.md) · [Português (Brasil)](README.pt-BR.md) · [Español](README.es-ES.md) · [Deutsch](README.de-DE.md) · [Français](README.fr-FR.md) · Русский + +![Windows](https://img.shields.io/badge/Windows-10%2F11-blue) +![Version](https://img.shields.io/github/v/release/lippdev/consolemode?label=%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D1%8F&color=brightgreen) +![License](https://img.shields.io/github/license/lippdev/consolemode) + +Обзор Console Mode 1.6: один щелчок переносит игру на телевизор, меню сеанса поверх игры с открытыми окнами, встроенный файловый менеджер ControlFS, интерфейс «Консоль» с вкладками «Главная», «Сеанс» и «Система» и выбранные вами сочетания на геймпаде. + +## Скачать + +Скачайте последнюю стабильную версию на странице [релизов](https://github.com/lippdev/consolemode/releases/latest): + +- **`ConsoleMode-Setup-x64.exe`** (рекомендуется): установка для текущего пользователя, без прав администратора, обновляется сама. +- **`ConsoleMode-Portable-x64.exe`**: один exe-файл, который хранит данные рядом с собой. +- Или через winget: `winget install lippdev.ConsoleMode` + +Хотите опробовать новинки раньше всех? Включите «Параметры» → «Получать тестовые версии (альфа и бета)». + +Windows 10 или 11, а также [Steam](https://store.steampowered.com/) (Big Picture), [Playnite](https://playnite.link/) или приложение Xbox. [RTSS](https://www.guru3d.com/files-details/rtss-rivatuner-statistics-server-download.html) необязателен: он нужен для ограничения FPS и счётчика FPS. + +## Как это работает + +1. Откройте приложение и выберите экран, на котором играете. Остальные отключатся. +2. Нажмите **«Играть»** или используйте ярлык на рабочем столе для запуска в один клик. В первый раз на новом экране телевизор спросит «Вы видите этот экран?» и сам вернёт всё назад, если никто не ответит. +3. Выйдите из Big Picture или Playnite, и всё вернётся: экраны, звук, разрешение. + +Предпочитаете диван? Когда приложение работает в области уведомлений, удерживайте сочетание на геймпаде, и режим запустится оттуда. + +Сочетания на геймпаде вы выбираете сами: сначала ни одно не включено, приложение спросит о них при первом запуске (изменить их можно в «Параметрах»). Одна кнопка не может выполнять два действия. + +| Сочетание на геймпаде | Что делает | Рекомендуем | +|---|---|---| +| Удерживайте сочетание **открытия** | Вход в режим консоли из области уведомлений | **Home** (Xbox / PS) | +| Удерживайте сочетание **меню** | Меню поверх игры: открытые окна, файловый менеджер, громкость, разрешение, звук, FPS, HDR, выход | **Select + Y** (Create + △) | +| Удерживайте сочетание **возврата к ПК** | Вернуться к ПК | **Start + Select** (Options + Create) | + +## Возможности + +- Остальные экраны скрываются **отключением**, **чёрным экраном** или через **DDC/CI**, всё средствами самой Windows: сторонние утилиты для экранов и звука не входят в комплект +- **Разрешение и частота обновления** для каждого экрана, **HDR**, **VRR** и **ограничение FPS** (RTSS) во время игры +- **Счётчик FPS** поверх игры (RTSS) на карточке трёх размеров: только FPS, компактный (загрузка ЦП, ГП и ОЗУ), подробный (частоты, температура ГП и память) или ваш собственный вариант +- Звук переходит на телевизор (или любой другой выход) и потом возвращается +- [Включает телевизор и переключает его на вход ПК](docs/GUIDE.ru-RU.md#управление-телевизором) (Google TV / Android TV по сети), а после может перевести его в режим ожидания +- Запускает **Steam Big Picture**, **Playnite в полноэкранном режиме** или **режим Xbox** и сворачивает Steam в область уведомлений при возврате к ПК +- **Меню сеанса** поверх игры: переключайтесь между открытыми окнами или закрывайте их, меняйте громкость, разрешение, звук, FPS и HDR, скрывайте указатель мыши или управляйте им с геймпада, просматривайте файлы через [ControlFS](https://github.com/nextestudios/ControlFS) +- Два интерфейса: **«Рабочий стол»** (мышь) и **«Консоль»** (полный экран, геймпады Xbox и PlayStation, вкладки на LB/RB, обложки из Steam на фоне) +- Автоматизация через ссылки `consolemode://start` / `stop` / `menu` (Stream Deck, скрипты) и [локальный API управления](docs/GUIDE.ru-RU.md#локальный-api-управления) +- Английский, португальский, испанский, немецкий, французский и русский + +Что нового в каждой версии, смотрите в [CHANGELOG.en-US.md](CHANGELOG.en-US.md) (на английском). + +## Ещё + +- [Руководство](docs/GUIDE.ru-RU.md): режимы и восстановление, API управления, HDR/VRR/FPS, решение проблем +- **Отзывы:** кнопка «Отправить отзыв» рядом с «Параметрами» в приложении или [эта форма](https://github.com/lippdev/consolemode/issues/new?template=feedback.yml). ⭐ помогает другим любителям играть с дивана найти проект. +- Релизы пока не подписаны цифровой подписью, поэтому Windows SmartScreen или антивирус может предупредить о загрузке; весь исходный код находится здесь. +- Хотите помочь с переводом? Смотрите [docs/TRANSLATING.md](docs/TRANSLATING.md) (на английском). + +[Только GNU Affero General Public License v3.0](LICENSE) · [Сторонние компоненты](THIRD_PARTY_NOTICES.md) · [Политика подписи кода](docs/CODE_SIGNING.md) + +*Эта страница — перевод README на английском. Если что-то расходится, актуальна английская версия.* diff --git a/docs/GUIDE.de-DE.md b/docs/GUIDE.de-DE.md new file mode 100644 index 0000000..471a273 --- /dev/null +++ b/docs/GUIDE.de-DE.md @@ -0,0 +1,106 @@ +# Anleitung für Console Mode + +Details, die nicht ins [README](../README.de-DE.md) passen. + +[English](GUIDE.md) · [Português (Brasil)](GUIDE.pt-BR.md) · [Español](GUIDE.es-ES.md) · Deutsch · [Français](GUIDE.fr-FR.md) · [Русский](GUIDE.ru-RU.md) + +## Modi und Wiederherstellung + +| Modus | Beim Beenden | +|------|---------| +| **Steam Big Picture** | Automatische Wiederherstellung (die App bleibt im Infobereich) | +| **Playnite (Vollbild)** | Automatische Wiederherstellung (die App bleibt im Infobereich) | +| **Xbox-Modus** | Manuell: Verwende *Jetzt wiederherstellen*, das Menü im Infobereich oder öffne das Fenster erneut | + +Du kannst auch jederzeit über den Infobereich wiederherstellen (*Konfiguration wiederherstellen* / *Fenster anzeigen*). Bei schwarzen Bildschirmen blendest du die Abdeckungen mit **ESC** aus. + +Das Sitzungsmenü bietet zwei Wege hinaus. **Zurück zum PC** beendet die Sitzung und setzt Bildschirme, Auflösung, HDR, Ton und die FPS-Begrenzung auf den vorherigen Stand zurück; die App bleibt im Infobereich. **Console Mode beenden** macht dasselbe und schließt danach die App, sodass die Controller-Tastenkombinationen nicht mehr reagieren, bis du sie wieder öffnest. Beim ersten Öffnen bietet das Menü eine Führung an, die jede Option erklärt. Um sie später anzusehen, drücke im Menü **Y** (△ bei PlayStation) oder **F1**, oder verwende **Einstellungen → Führung durch das Sitzungsmenü**. + +## Einstellungen im Konsolenmodus + +Unter **System → Controller** wählst du das Tastenlayout: **Automatisch**, **Xbox** oder **PlayStation**. Vorschau und Tastenbeschriftungen richten sich nach dieser Wahl, die beim Schließen der App gespeichert wird. Das ändert nur die angezeigten Symbole; die Eingaben des Controllers behalten ihre bisherige Belegung. + +Die Registerkarte **System** bietet dieselben Einstellungen wie der Desktopmodus, darunter Controller-Tastenkombinationen, Playnite, Android TV, benutzerdefinierte FPS und den Datenordner. Beide Oberflächen teilen sich die gespeicherten Werte, die auch nach einem Neustart der App erhalten bleiben. + +Öffne die Aktion, deren Tastenkombination du einrichten willst, wähle **Festlegen** oder **Ändern**, halte die gewünschte Kombination auf einem Controller gedrückt und lass die Tasten los. **Entfernen** deaktiviert diese Tastenkombination. Während der Aufnahme navigieren die Controller-Tasten nicht durch die Oberfläche; mit **Abbrechen** oder **Esc** beendest du die Aufnahme. Außerhalb der Aufnahme verlässt du den Editor mit **B**. Die Felder für Adresse und benutzerdefinierte FPS nehmen Tastatureingaben an. + +Bei der Rückkehr aus Big Picture schließt **Steam beim Zurückkehren zum PC in den Infobereich minimieren** das Client-Fenster, während Steam weiterläuft. Ist die Option aus, bleibt der Desktop-Client geöffnet. Steam-Fenster werden nicht angetastet, wenn ein Spiel läuft oder sich sein Zustand nicht prüfen lässt. + +## Lokale Steuerungs-API + +`consolemode://`-Links werden abgeschickt, ohne auf eine Antwort zu warten. Werkzeuge, die eine Antwort brauchen, etwa ein Fernsteuerungs-Agent, der als Windows-Dienst läuft, oder ein Stream-Deck-Plugin, das anzeigt, ob der Konsolenmodus aktiv ist, können die Named Pipe `\\.\pipe\ConsoleMode.Control` nutzen, solange die App läuft: Eine JSON-Zeile senden, eine zurückbekommen. + +``` +→ {"cmd":"status"} // or "start", "stop", "show" +← {"ok":true,"active":true,"restoring":false,"mode":"xboxMode","version":"1.5.0"} +``` + +`start`, `stop` und `show` tun genau das, was der passende `consolemode://`-Link tut, und antworten, sobald die App fertig ist (`ok:false` mit einem `error`, wenn der Konsolenmodus nicht gestartet ist oder die Wiederherstellung nicht abgeschlossen wurde). `status` liest nur. Verbinden können sich nur der angemeldete Benutzer und LocalSystem; nichts wird ins Netzwerk freigegeben. + +## Fernsehersteuerung + +Unter Einstellungen → **Fernseher** kann die App beim Start des Konsolenmodus den Fernseher einschalten und auf den HDMI-Eingang des PCs wechseln und ihn optional wieder in den Standby versetzen, nachdem der Schreibtisch wiederhergestellt ist. Ein Fernseher, der nicht antwortet, blockiert den Konsolenmodus nie: Die App protokolliert das und wartet wie gewohnt auf den Spielbildschirm. + +Mit der Voreinstellung **Nicht steuern** wird nichts gesendet und Start und Wiederherstellung dauern nicht länger. Ist ein Weg ausgewählt, läuft der Fernseher-Schritt beim Start des Konsolenmodus zuerst und ist auf **30 Sekunden** begrenzt (der schlimmste Fall, wenn der Fernseher nicht antwortet und Wake-on-LAN versucht wird); der optionale Standby bei der Wiederherstellung ist auf **15 Sekunden** begrenzt. Ein Fernseher, der schon an ist, antwortet meist in ein bis zwei Sekunden. + +Die meisten PC-Grafikkarten können kein HDMI-CEC senden, deshalb spricht die App stattdessen über das Netzwerk mit dem Fernseher: + +### Google TV / Android TV + +TCL, Sony, Hisense, Philips und andere Fernseher mit Google TV oder Android TV, über ADB (das Android-Debugging-Protokoll). Auf dem PC musst du nichts installieren. + +1. Auf dem Fernseher: **Einstellungen → System → Info** (About), drücke 7-mal auf **Android TV OS-Build**, um die Entwickleroptionen freizuschalten. +2. **Einstellungen → System → Entwickleroptionen**: Schalte **USB-Debugging** ein (bei manchen Fernsehern **Netzwerk-Debugging** / **ADB über Netzwerk**). +3. Wähle in Console Mode *Google TV / Android TV (Netzwerk)*, gib die IP-Adresse des Fernsehers ein (Einstellungen → Netzwerk auf dem Fernseher; reserviere sie im Router) und den HDMI-Eingang, den der PC nutzt. +4. Drücke **Jetzt testen**. Der Fernseher fragt „USB-Debugging zulassen?“ (Allow debugging from this computer?): Setze das Häkchen bei **Von diesem Computer immer zulassen** (Always allow) und drücke **Zulassen** (Allow). + +Der ADB-Schlüssel des PCs wird verschlüsselt für deinen Windows-Benutzer gespeichert (DPAPI), daher fragt der Fernseher nur einmal. Wird der Datenordner zu einem anderen Windows-Benutzer oder PC kopiert, lässt sich der Schlüssel dort nicht lesen: Die App erstellt einen neuen und der Fernseher fragt erneut „USB-Debugging zulassen?“. + +Zum Aufwecken sendet die App die Android-Aufwecktaste und danach die Taste **HDMI 1-4**. Wenn dein Fernseher diese Taste ignoriert, trage unter **Eingangsbefehl** einen beliebigen Android-Shell-Befehl ein, der den Eingang des PCs öffnet. Wenn der Fernseher im Standby aus dem Netzwerk verschwindet, trage seine **MAC-Adresse** ein, damit die App zuerst Wake-on-LAN sendet (die Option „Über Netzwerk einschalten“ / „Über WLAN einschalten“ (Wake on network / Wake on Wi-Fi) des Fernsehers muss an sein). + +„Kabelloses Debugging“ (Wireless debugging) mit Kopplungscode (Android-11-Smartphones und neuer) ist ein anderes, per TLS geschütztes Protokoll und wird nicht unterstützt: Verwende USB- oder Netzwerk-Debugging. + +## Optionale Extras + +### HDR + +Aktiviert HDR auf dem Gaming-Bildschirm, solange der Konsolenmodus aktiv ist. Beim Beenden wird es wieder ausgeschaltet (oder auf den vorherigen Zustand zurückgesetzt). + +### VRR + +Console Mode kann die Windows-Einstellung zur VRR-Optimierung umschalten. Für beste Ergebnisse aktivierst du VRR / G-SYNC / FreeSync zusätzlich in der **Systemsteuerung deiner Grafikkarte** (NVIDIA oder AMD). + +### FPS-Begrenzung (RTSS) + +Begrenzt die Bildrate global, solange der Konsolenmodus läuft (praktisch bei einem 60-Hz-Fernseher). Dafür muss RTSS installiert sein und laufen. Beim Beenden wird die vorherige Begrenzung wiederhergestellt. + +## Einschränkungen + +- Mehrbildschirm-Anordnungen sind sehr unterschiedlich; bei manchen Setups braucht die Wiederherstellung einen zweiten Versuch über den Infobereich +- Der Xbox-Modus erkennt nicht, wann das Vollbild endet: Stelle manuell wieder her +- Die FPS-Begrenzung gilt global (Einschränkung von RTSS), nicht pro Bildschirm +- Der WinUI-3-Build lässt sich derzeit nur unter Windows kompilieren (`net8.0-windows`) + +## Fehlerbehebung + +### Die Desktop-Anordnung wurde nicht wiederhergestellt + +Öffne das Menü im Infobereich und wähle **Konfiguration wiederherstellen**. Sieht die Anordnung immer noch falsch aus, wähle **Konfiguration wiederherstellen** noch einmal, nachdem Windows die Bildschirmänderung fertig angewendet hat. Du kannst das Fenster auch über den Infobereich wieder öffnen und manuell wiederherstellen. + +### Der Ton blieb auf dem vorherigen Ausgang + +Prüfe vor dem Start des Konsolenmodus, ob der Zielausgang angeschlossen und in Windows verfügbar ist. Bei HDMI-/Fernseher-Ausgängen kann es nötig sein, das Kabel neu einzustecken und den Modus erneut zu starten. + +### Der Controller wird erkannt, tut aber nichts (DualSense / DualShock) + +Öffne **Einstellungen → Controller testen**: Dort siehst du live, was Windows von jedem Controller empfängt. Bleibt die Anzeige leer, während du Tasten drückst, fängt höchstwahrscheinlich Steam den Controller ab (läuft Steam mit PlayStation-Unterstützung in Steam Input, macht es ihn auf dem Desktop zu Tastatur/Maus). Schließe Steam oder schalte die PlayStation-Unterstützung in Steam Input aus und teste erneut. Zeigt die Anzeige immer noch nichts, verwende **Diagnosedaten kopieren** und füge sie in das Feedbackformular ein. + +### HDR oder VRR hat sich nicht geändert + +Prüfe, ob der Gaming-Bildschirm die Funktion unterstützt und ob HDR in Windows aktiviert ist. Für VRR aktivierst du gegebenenfalls zusätzlich G-SYNC oder FreeSync in der Systemsteuerung der Grafikkarte. + +## Aus dem Quellcode bauen (Windows) + +Siehe den Abschnitt in der englischen Anleitung: [GUIDE.md#build-from-source-windows](GUIDE.md#build-from-source-windows). + +*Diese Seite ist eine Übersetzung der englischen Anleitung. Wenn etwas abweicht, gilt die englische Version als aktuell.* diff --git a/docs/GUIDE.es-ES.md b/docs/GUIDE.es-ES.md new file mode 100644 index 0000000..263ddb2 --- /dev/null +++ b/docs/GUIDE.es-ES.md @@ -0,0 +1,106 @@ +# Guía de Console Mode + +Detalles que no caben en el [README](../README.es-ES.md). + +[English](GUIDE.md) · [Português (Brasil)](GUIDE.pt-BR.md) · Español · [Deutsch](GUIDE.de-DE.md) · [Français](GUIDE.fr-FR.md) · [Русский](GUIDE.ru-RU.md) + +## Modos y restauración + +| Modo | Al salir | +|------|---------| +| **Steam Big Picture** | Restauración automática (la aplicación sigue en la bandeja) | +| **Playnite a pantalla completa** | Restauración automática (la aplicación sigue en la bandeja) | +| **Modo Xbox** | Manual: usa *Restaurar ahora*, el menú de la bandeja o vuelve a abrir la ventana | + +También puedes restaurar en cualquier momento desde la bandeja (*Restaurar pantallas* / *Mostrar ventana*). Con las pantallas negras, **ESC** quita las cortinas. + +El menú de la sesión tiene dos salidas. **Volver al PC** termina la sesión y devuelve pantallas, resolución, HDR, audio y límite de FPS a como estaban; la aplicación sigue en la bandeja. **Salir de Console Mode** hace lo mismo y además cierra la aplicación, así que los atajos del mando dejan de funcionar hasta que la vuelvas a abrir. La primera vez que se abre el menú, ofrece un recorrido que explica cada opción; para verlo más tarde, pulsa **Y** (△ en PlayStation) o **F1** en el menú, o usa **Ajustes → Recorrido del menú de sesión**. + +## Ajustes en la interfaz Consola + +En **Sistema → Mando**, elige el diseño de botones: **Automático**, **Xbox** o **PlayStation**. La vista previa y las etiquetas de los atajos siguen esa elección, que se guarda al cerrar la aplicación. Esto solo cambia los símbolos que se muestran; las entradas del mando mantienen su asignación. + +La pestaña **Sistema** ofrece los mismos ajustes que la interfaz Escritorio, incluidos los atajos del mando, Playnite, Android TV, el FPS personalizado y la carpeta de datos. Las dos interfaces comparten los valores guardados, que se mantienen al reiniciar la aplicación. + +Abre la acción del atajo que quieras configurar, elige **Definir** o **Cambiar**, mantén la combinación deseada en un mando y suelta los botones. **Quitar** desactiva ese atajo. Durante la captura, los botones del mando no navegan por la interfaz; usa **Cancelar** o **Esc** para detener la captura. Fuera de la captura, **B** sale del editor. Los campos de dirección y de FPS personalizado aceptan el teclado. + +Al volver de Big Picture, **Enviar Steam a la bandeja al volver al PC** cierra la ventana del cliente y deja Steam en marcha. Con la opción desactivada, el cliente de escritorio se queda abierto. Las ventanas de Steam no se tocan si hay un juego en marcha o si no se puede comprobar su estado. + +## API de control local + +Los enlaces `consolemode://` se lanzan sin esperar respuesta. Las herramientas que necesitan una respuesta (un agente de control remoto que funciona como servicio de Windows, un plugin de Stream Deck que muestra si el modo consola está activo) pueden usar la canalización con nombre (named pipe) `\\.\pipe\ConsoleMode.Control` mientras la aplicación está abierta: envía una línea JSON y recibe otra. + +``` +→ {"cmd":"status"} // or "start", "stop", "show" +← {"ok":true,"active":true,"restoring":false,"mode":"xboxMode","version":"1.5.0"} +``` + +`start`, `stop` y `show` hacen exactamente lo mismo que el enlace `consolemode://` correspondiente y responden cuando la aplicación termina (`ok:false` con un `error` si el modo consola no se inició o la restauración no terminó). `status` solo lee. Solo pueden conectarse el usuario que ha iniciado sesión y LocalSystem; nada se expone a la red. + +## Control de la TV + +Ajustes → **TV** puede encender la TV y cambiarla a la entrada HDMI del PC cuando empieza el modo consola, y, si quieres, volver a ponerla en reposo cuando se restaura el escritorio. Una TV que no responde nunca bloquea el modo consola: la aplicación lo anota en el registro y espera a la pantalla de juego como siempre. + +Con la opción predeterminada, **No controlarla**, no se envía nada y no se añade nada al inicio ni a la restauración. Con una ruta elegida, el paso de la TV va primero cuando empieza el modo consola y dura como máximo **30 segundos** (el peor caso, cuando la TV no responde y se prueba Wake-on-LAN); el reposo opcional al restaurar dura como máximo **15 segundos**. Una TV que ya está encendida suele responder en uno o dos segundos. + +La mayoría de las tarjetas gráficas de PC no pueden enviar HDMI-CEC, así que la aplicación habla con la TV por la red: + +### Google TV / Android TV + +TCL, Sony, Hisense, Philips y otras TV con Google TV o Android TV, mediante ADB (el protocolo de depuración de Android). No hay que instalar nada en el PC. + +1. En la TV: **Ajustes → Sistema → Información**, pulsa 7 veces **Compilación del SO de Android TV** (Android TV OS build) para desbloquear las Opciones de desarrollador. +2. **Ajustes → Sistema → Opciones de desarrollador**: activa **Depuración USB** (en algunas TV, **Depuración por red** / **ADB por red**). +3. En Console Mode, elige *Google TV / Android TV (red)*, escribe la IP de la TV (Ajustes → Red en la TV; resérvala en el router) y la entrada HDMI que usa el PC. +4. Pulsa **Probar ahora**. La TV pregunta "¿Permitir depuración desde este ordenador?": marca **Permitir siempre** y pulsa **Permitir**. + +La clave ADB del PC se guarda cifrada para tu usuario de Windows (DPAPI), así que la TV solo pregunta una vez. Si copias la carpeta de datos a otro usuario de Windows o a otro PC, la clave no se puede leer allí: la aplicación crea una nueva y la TV vuelve a preguntar "¿Permitir depuración?". + +Para encenderla se usa la tecla de activación de Android y después la tecla **HDMI 1-4**. Si tu TV ignora esa tecla, rellena **Comando de la entrada (avanzado)** con cualquier comando de shell de Android que abra la entrada del PC. Si la TV se desconecta de la red en reposo, rellena su **Dirección MAC** para que la aplicación envíe antes Wake-on-LAN (la opción de la TV "Activar por red" / "Activar por Wi-Fi" (Wake on network / Wake on Wi-Fi) tiene que estar activada). + +La "Depuración inalámbrica" con código de emparejamiento (móviles con Android 11 o posterior) es otro protocolo, envuelto en TLS, y no es compatible: usa la depuración USB / por red. + +## Extras opcionales + +### HDR + +Activa el HDR en la pantalla de juego mientras el modo consola está activo. Se vuelve a desactivar (o a su estado anterior) al salir. + +### VRR + +Console Mode puede activar o desactivar el ajuste de optimización de VRR de Windows. Para mejores resultados, activa también VRR / G-SYNC / FreeSync en el **panel de control de la GPU** (NVIDIA o AMD). + +### Límite de FPS (RTSS) + +Limita la tasa de fotogramas global mientras el modo consola está en marcha (útil en una TV de 60 Hz). Requiere RTSS instalado y en ejecución. El límite anterior se restaura al salir. + +## Limitaciones + +- Las configuraciones con varios monitores varían; en algunos equipos la restauración puede necesitar un segundo intento desde la bandeja +- El modo Xbox no detecta cuándo termina la pantalla completa: restaura a mano +- El límite de FPS es global (limitación de RTSS), no por pantalla +- La versión WinUI 3 de momento requiere Windows para compilar (`net8.0-windows`) + +## Solución de problemas + +### La disposición del escritorio no se restauró + +Abre el menú de la bandeja y elige **Restaurar pantallas**. Si la disposición sigue sin estar bien, vuelve a elegir **Restaurar pantallas** cuando Windows termine de aplicar el cambio de monitores. También puedes volver a abrir la ventana desde la bandeja y restaurar a mano. + +### El audio se quedó en la salida anterior + +Comprueba que la salida de destino está conectada y disponible en Windows antes de iniciar el modo consola. Con salidas HDMI o de TV, puede que haga falta volver a conectar el cable e iniciar el modo de nuevo. + +### El mando aparece pero no hace nada (DualSense / DualShock) + +Abre **Ajustes → Probar mando**: muestra en directo lo que Windows recibe de cada mando. Si la lectura sigue vacía mientras pulsas botones, lo más probable es que Steam esté capturando el mando (Steam abierto con la compatibilidad con PlayStation de Steam Input activada lo convierte en teclado y ratón en el escritorio). Cierra Steam, o desactiva la compatibilidad con PlayStation en Steam Input, y vuelve a probar. Si la lectura sigue sin mostrar nada, usa **Copiar diagnóstico** y pégalo en el formulario de comentarios. + +### El HDR o el VRR no cambiaron + +Confirma que la pantalla de juego admite la función y que el HDR está activado en Windows. Para el VRR, activa también G-SYNC o FreeSync en el panel de control de la GPU cuando corresponda. + +## Compilar desde el código fuente (Windows) + +Esta sección solo está en inglés: [GUIDE.md#build-from-source-windows](GUIDE.md#build-from-source-windows). + +*Esta página es una traducción de la guía en inglés. Si algo no coincide, la versión en inglés es la vigente.* diff --git a/docs/GUIDE.fr-FR.md b/docs/GUIDE.fr-FR.md new file mode 100644 index 0000000..1efdc5c --- /dev/null +++ b/docs/GUIDE.fr-FR.md @@ -0,0 +1,106 @@ +# Guide de Console Mode + +Les détails qui ne tiennent pas dans le [README](../README.fr-FR.md). + +[English](GUIDE.md) · [Português (Brasil)](GUIDE.pt-BR.md) · [Español](GUIDE.es-ES.md) · [Deutsch](GUIDE.de-DE.md) · Français · [Русский](GUIDE.ru-RU.md) + +## Modes et restauration + +| Mode | À la sortie | +|------|---------| +| **Steam Big Picture** | Restauration automatique (l'application reste dans la zone de notification) | +| **Playnite en plein écran** | Restauration automatique (l'application reste dans la zone de notification) | +| **Mode Xbox** | Manuelle : utilisez *Restaurer maintenant*, le menu de la zone de notification, ou rouvrez la fenêtre | + +Vous pouvez aussi restaurer à tout moment depuis la zone de notification (*Restaurer la configuration* / *Afficher la fenêtre*). Avec les écrans noirs, **Échap** retire les rideaux. + +Le menu de session propose deux sorties. **Retour au PC** termine la session et remet les écrans, la résolution, le HDR, le son et la limite de FPS comme avant ; l'application reste dans la zone de notification. **Quitter Console Mode** fait la même chose puis ferme l'application : les raccourcis manette ne fonctionnent plus jusqu'à ce que vous la rouvriez. À la première ouverture, le menu propose une visite qui explique chaque option ; pour la revoir plus tard, appuyez sur **Y** (△ sur PlayStation) ou **F1** dans le menu, ou utilisez **Paramètres → Visite du menu de session**. + +## Paramètres en mode console + +Dans **Système → Manette**, choisissez la disposition des boutons : **Automatique**, **Xbox** ou **PlayStation**. L'aperçu et les libellés des raccourcis suivent ce choix, qui est enregistré à la fermeture de l'application. Seuls les symboles affichés changent ; les entrées de la manette gardent leur correspondance actuelle. + +L'onglet **Système** offre les mêmes paramètres que le mode Bureau, y compris les raccourcis manette, Playnite, Android TV, les FPS personnalisés et le dossier de données. Les deux interfaces partagent les valeurs enregistrées, qui sont conservées après un redémarrage de l'application. + +Ouvrez l'action de raccourci à configurer, choisissez **Définir** ou **Modifier**, maintenez la combinaison voulue sur une manette, puis relâchez les boutons. **Supprimer** désactive ce raccourci. Pendant la capture, les boutons de la manette ne naviguent pas dans l'interface ; utilisez **Annuler** ou **Échap** pour arrêter la capture. Hors capture, **B** quitte l'éditeur. Les champs d'adresse et de FPS personnalisés acceptent la saisie au clavier. + +Au retour de Big Picture, **Réduire Steam dans la zone de notification au retour au PC** ferme la fenêtre du client tout en laissant Steam en marche. Si l'option est désactivée, le client de bureau reste ouvert. Les fenêtres de Steam ne sont pas touchées quand un jeu est en cours ou quand son état ne peut pas être vérifié. + +## API de contrôle local + +Les liens `consolemode://` s'envoient sans attendre de réponse. Les outils qui ont besoin d'une réponse (un agent de contrôle à distance qui tourne comme service Windows, un plugin Stream Deck qui indique si le mode console est actif) peuvent utiliser le canal nommé `\\.\pipe\ConsoleMode.Control` tant que l'application tourne : envoyez une ligne JSON, recevez-en une en retour. + +``` +→ {"cmd":"status"} // or "start", "stop", "show" +← {"ok":true,"active":true,"restoring":false,"mode":"xboxMode","version":"1.5.0"} +``` + +`start`, `stop` et `show` font exactement ce que fait le lien `consolemode://` correspondant, puis répondent une fois l'application stabilisée (`ok:false` avec un `error` si le mode console n'a pas démarré ou si la restauration n'a pas abouti). `status` se contente de lire. Seuls l'utilisateur connecté et LocalSystem peuvent se connecter ; rien n'est exposé sur le réseau. + +## Contrôle de la TV + +Paramètres → **TV** peut allumer la TV et la basculer sur l'entrée HDMI du PC au démarrage du mode console, et en option la remettre en veille une fois le bureau restauré. Une TV qui ne répond pas ne bloque jamais le mode console : l'application le note dans le journal et attend l'écran de jeu comme d'habitude. + +Avec la valeur par défaut, **Ne pas la contrôler**, rien n'est envoyé et rien ne s'ajoute au démarrage ni à la restauration. Avec une méthode choisie, l'étape TV s'exécute en premier au démarrage du mode console et dure au plus **30 secondes** (le pire cas, quand la TV ne répond pas et que le Wake-on-LAN est tenté) ; la mise en veille facultative à la restauration dure au plus **15 secondes**. Une TV déjà allumée répond en général en une ou deux secondes. + +La plupart des cartes graphiques de PC ne savent pas envoyer de HDMI-CEC, donc l'application parle à la TV par le réseau : + +### Google TV / Android TV + +TCL, Sony, Hisense, Philips et les autres TV sous Google TV ou Android TV, via ADB (le protocole de débogage d'Android). Rien à installer sur le PC. + +1. Sur la TV : **Paramètres → Système → À propos** (Settings → System → About), appuyez 7 fois sur **Build de l'OS Android TV** (Android TV OS build) pour débloquer les options pour les développeurs. +2. **Paramètres → Système → Options pour les développeurs** (Developer options) : activez le **Débogage USB** (USB debugging) (sur certaines TV, **Débogage réseau** / **ADB via le réseau**). +3. Dans Console Mode, choisissez *Google TV / Android TV (réseau)*, saisissez l'adresse IP de la TV (Paramètres → Réseau sur la TV ; réservez-la dans votre box ou routeur) et l'entrée HDMI utilisée par le PC. +4. Appuyez sur **Tester maintenant**. La TV demande « Autoriser le débogage depuis cet ordinateur ? » (Allow debugging from this computer?) : cochez **Toujours autoriser** (Always allow) et appuyez sur **Autoriser** (Allow). + +La clé ADB du PC est stockée chiffrée pour votre utilisateur Windows (DPAPI), donc la TV ne pose la question qu'une fois. Si le dossier de données est copié vers un autre utilisateur Windows ou un autre PC, la clé n'y est pas lisible : l'application en crée une nouvelle et la TV redemande « Autoriser le débogage ? ». + +Le réveil utilise la touche de réveil d'Android, puis la touche **HDMI 1-4**. Si votre TV ignore cette touche, renseignez dans **Commande d'entrée (avancé)** n'importe quelle commande shell Android qui ouvre l'entrée du PC. Si la TV disparaît du réseau en veille, indiquez son **Adresse MAC** pour que l'application envoie d'abord un Wake-on-LAN (l'option « Réveil par le réseau » / « Réveil par Wi-Fi » de la TV doit être activée). + +Le « Débogage sans fil » (Wireless debugging) avec code d'association (téléphones Android 11+) est un autre protocole, encapsulé en TLS, et n'est pas pris en charge : utilisez le débogage USB / réseau. + +## Extras facultatifs + +### HDR + +Active le HDR sur l'écran de jeu tant que le mode console est actif. Il est désactivé (ou remis dans son état précédent) à la sortie. + +### VRR + +Console Mode peut activer ou désactiver le paramètre Windows de fréquence d'actualisation variable (VRR). Pour de meilleurs résultats, activez aussi VRR / G-SYNC / FreeSync dans le **panneau de configuration du GPU** (NVIDIA ou AMD). + +### Limite de FPS (RTSS) + +Plafonne la fréquence d'images globale pendant le mode console (utile sur une TV 60 Hz). Nécessite RTSS installé et lancé. La limite précédente est rétablie à la sortie. + +## Limitations + +- Les configurations multi-écrans varient ; sur certaines, la restauration peut demander un second essai depuis la zone de notification +- Le mode Xbox ne détecte pas la fin du plein écran : restaurez manuellement +- La limite de FPS est globale (limitation de RTSS), pas par écran +- La version WinUI 3 nécessite actuellement Windows pour être compilée (`net8.0-windows`) + +## Dépannage + +### La disposition du bureau n'a pas été restaurée + +Ouvrez le menu de la zone de notification et choisissez **Restaurer la configuration**. Si la disposition semble encore incorrecte, choisissez à nouveau **Restaurer la configuration** une fois que Windows a fini d'appliquer le changement d'écrans. Vous pouvez aussi rouvrir la fenêtre depuis la zone de notification et restaurer manuellement. + +### Le son est resté sur la sortie précédente + +Vérifiez que la sortie cible est branchée et disponible dans Windows avant de lancer le mode console. Pour les sorties HDMI/TV, il peut être nécessaire de rebrancher le câble et de relancer le mode. + +### La manette est détectée mais ne fait rien (DualSense / DualShock) + +Ouvrez **Paramètres → Tester la manette** : la lecture en direct montre ce que Windows reçoit de chaque manette. Si elle reste vide quand vous appuyez sur les boutons, c'est très probablement Steam qui capture la manette (Steam lancé avec la prise en charge PlayStation activée dans Steam Input la transforme en clavier/souris sur le bureau). Fermez Steam, ou désactivez la prise en charge PlayStation dans Steam Input, puis testez à nouveau. Si la lecture n'affiche toujours rien, utilisez **Copier le diagnostic** et collez-le dans le formulaire de commentaires. + +### Le HDR ou le VRR n'a pas changé + +Vérifiez que l'écran de jeu prend en charge la fonction et que le HDR est activé dans Windows. Pour le VRR, activez aussi G-SYNC ou FreeSync dans le panneau de configuration du GPU si besoin. + +## Compiler depuis les sources (Windows) + +Voir la section du guide en anglais : [GUIDE.md#build-from-source-windows](GUIDE.md#build-from-source-windows). + +*Cette page est une traduction du guide en anglais. En cas de différence, c'est la version anglaise qui fait foi.* diff --git a/docs/GUIDE.md b/docs/GUIDE.md index 6af2638..3c90877 100644 --- a/docs/GUIDE.md +++ b/docs/GUIDE.md @@ -1,6 +1,8 @@ # Console Mode guide -Details that don't fit in the [README](../README.md). 🇧🇷 [Guia em português](GUIDE.pt-BR.md) +Details that don't fit in the [README](../README.md). + +English · [Português (Brasil)](GUIDE.pt-BR.md) · [Español](GUIDE.es-ES.md) · [Deutsch](GUIDE.de-DE.md) · [Français](GUIDE.fr-FR.md) · [Русский](GUIDE.ru-RU.md) ## Modes and restore diff --git a/docs/GUIDE.pt-BR.md b/docs/GUIDE.pt-BR.md index 6958e0e..be757ae 100644 --- a/docs/GUIDE.pt-BR.md +++ b/docs/GUIDE.pt-BR.md @@ -1,6 +1,8 @@ # Guia do Console Mode -Detalhes que não cabem no [README](../README.pt-BR.md). 🇺🇸 [Guide in English](GUIDE.md) +Detalhes que não cabem no [README](../README.pt-BR.md). + +[English](GUIDE.md) · Português (Brasil) · [Español](GUIDE.es-ES.md) · [Deutsch](GUIDE.de-DE.md) · [Français](GUIDE.fr-FR.md) · [Русский](GUIDE.ru-RU.md) ## Modos e restauração diff --git a/docs/GUIDE.ru-RU.md b/docs/GUIDE.ru-RU.md new file mode 100644 index 0000000..c85893b --- /dev/null +++ b/docs/GUIDE.ru-RU.md @@ -0,0 +1,106 @@ +# Руководство по Console Mode + +Подробности, которые не поместились в [README](../README.ru-RU.md). + +[English](GUIDE.md) · [Português (Brasil)](GUIDE.pt-BR.md) · [Español](GUIDE.es-ES.md) · [Deutsch](GUIDE.de-DE.md) · [Français](GUIDE.fr-FR.md) · Русский + +## Режимы и восстановление + +| Режим | При выходе | +|------|---------| +| **Steam Big Picture** | Автоматическое восстановление (приложение остаётся в области уведомлений) | +| **Playnite в полноэкранном режиме** | Автоматическое восстановление (приложение остаётся в области уведомлений) | +| **Режим Xbox** | Вручную: нажмите *«Восстановить сейчас»*, используйте меню в области уведомлений или снова откройте окно | + +Восстановить конфигурацию можно в любой момент из области уведомлений (*«Восстановить конфигурацию»* / *«Показать окно»*). Если экраны закрыты чёрным экраном, **ESC** убирает затемнение. + +Из меню сеанса есть два выхода. **«Вернуться к ПК»** завершает сеанс и возвращает экраны, разрешение, HDR, звук и ограничение FPS в прежнее состояние; приложение остаётся в области уведомлений. **«Выйти из Console Mode»** делает то же самое, а затем закрывает приложение, поэтому сочетания на геймпаде не работают, пока вы не откроете его снова. При первом открытии меню предлагает обзор, который объясняет каждый пункт; чтобы посмотреть его позже, нажмите в меню **Y** (△ на PlayStation) или **F1** либо используйте **«Параметры» → «Обзор меню сеанса»**. + +## Параметры в интерфейсе «Консоль» + +В разделе **«Система» → «Геймпад»** выберите раскладку кнопок: **«Автоматически»**, **Xbox** или **PlayStation**. Предпросмотр и подписи сочетаний следуют выбору, который сохраняется при закрытии приложения. Меняются только отображаемые символы; назначение кнопок геймпада остаётся прежним. + +На вкладке **«Система»** доступны те же параметры, что и в режиме рабочего стола, включая сочетания на геймпаде, Playnite, Android TV, своё значение FPS и папку данных. Оба интерфейса используют одни и те же сохранённые значения, и они сохраняются после перезапуска приложения. + +Откройте действие, сочетание для которого хотите настроить, выберите **«Задать»** или **«Изменить»**, удерживайте нужную комбинацию на одном геймпаде и отпустите кнопки. **«Удалить»** отключает это сочетание. Во время записи кнопки геймпада не управляют интерфейсом; чтобы остановить запись, используйте **«Отмена»** или **Esc**. Вне записи **B** закрывает редактор. В поля адреса и своего значения FPS можно вводить текст с клавиатуры. + +При возврате из Big Picture параметр **«Сворачивать Steam в область уведомлений при возврате к ПК»** закрывает окно клиента, но Steam продолжает работать. Если параметр выключен, клиент на рабочем столе остаётся открытым. Окна Steam не трогаются, если запущена игра или её состояние не удаётся проверить. + +## Локальный API управления + +Ссылки `consolemode://` срабатывают без ответа. Инструменты, которым нужен ответ (агент удалённого управления, работающий как служба Windows, плагин Stream Deck, показывающий, включён ли режим консоли), могут использовать именованный канал `\\.\pipe\ConsoleMode.Control`, пока приложение запущено: отправьте одну строку JSON и получите одну в ответ. + +``` +→ {"cmd":"status"} // or "start", "stop", "show" +← {"ok":true,"active":true,"restoring":false,"mode":"xboxMode","version":"1.5.0"} +``` + +`start`, `stop` и `show` делают ровно то же, что и соответствующая ссылка `consolemode://`, и отвечают, когда приложение завершит действие (`ok:false` с полем `error`, если режим консоли не запустился или восстановление не завершилось). `status` только читает состояние. Подключиться могут только вошедший в систему пользователь и LocalSystem; в сеть ничего не открывается. + +## Управление телевизором + +В разделе «Параметры» → **«Телевизор»** можно включать телевизор и переключать его на HDMI-вход ПК при запуске режима консоли, а также, по желанию, переводить его обратно в режим ожидания после восстановления рабочего стола. Телевизор, который не отвечает, никогда не блокирует режим консоли: приложение записывает это в журнал и, как обычно, ждёт игровой экран. + +По умолчанию выбрано **«Не управлять»**: ничего не отправляется, и запуск или восстановление ничем не замедляются. Если выбран способ управления, шаг с телевизором выполняется первым при запуске режима консоли и занимает не больше **30 секунд** (худший случай, когда телевизор не отвечает и пробуется Wake-on-LAN); перевод в режим ожидания при восстановлении занимает не больше **15 секунд**. Уже включённый телевизор обычно отвечает за секунду-две. + +Большинство видеокарт ПК не умеют отправлять HDMI-CEC, поэтому приложение общается с телевизором по сети: + +### Google TV / Android TV + +TCL, Sony, Hisense, Philips и другие телевизоры с Google TV или Android TV, через ADB (протокол отладки Android). На ПК ничего устанавливать не нужно. + +1. На телевизоре: **«Настройки» → «Система» → «Об устройстве»** (Settings → System → About), нажмите 7 раз на **«Сборка ОС Android TV»** (Android TV OS build), чтобы открыть параметры разработчика. +2. **«Настройки» → «Система» → «Для разработчиков»** (Developer options): включите **«Отладка по USB»** (USB debugging; на некоторых телевизорах **«Отладка по сети»** / **ADB over network**). +3. В Console Mode выберите *«Google TV / Android TV (по сети)»*, введите IP-адрес телевизора («Настройки» → «Сеть» на телевизоре; зарезервируйте его в роутере) и HDMI-вход, к которому подключён ПК. +4. Нажмите **«Проверить»**. Телевизор спросит «Разрешить отладку с этого компьютера?» (Allow debugging from this computer?): отметьте **«Всегда разрешать»** (Always allow) и нажмите **«Разрешить»** (Allow). + +Ключ ADB этого ПК хранится в зашифрованном виде для вашего пользователя Windows (DPAPI), поэтому телевизор спрашивает только один раз. Если папку данных скопировать другому пользователю Windows или на другой ПК, ключ там прочитать не удастся: приложение создаст новый, и телевизор снова спросит «Разрешить отладку?». + +Для включения используется клавиша пробуждения Android, затем клавиша **HDMI 1-4**. Если телевизор её игнорирует, укажите в поле **«Команда входа»** любую shell-команду Android, которая открывает вход ПК. Если в режиме ожидания телевизор отключается от сети, заполните **«MAC-адрес»**, чтобы приложение сначала отправило Wake-on-LAN (на телевизоре должна быть включена опция «Включение по сети» / «Включение по Wi-Fi», Wake on network / Wake on Wi-Fi). + +«Беспроводная отладка» (Wireless debugging) с кодом сопряжения (телефоны с Android 11+) — это другой протокол, обёрнутый в TLS, и он не поддерживается: используйте отладку по USB или по сети. + +## Дополнительные возможности + +### HDR + +Включает HDR на игровом экране, пока активен режим консоли. При выходе HDR снова выключается (или возвращается в прежнее состояние). + +### VRR + +Console Mode может переключать параметр Windows для оптимизации VRR. Для лучшего результата включите также VRR / G-SYNC / FreeSync в **панели управления видеокарты** (NVIDIA или AMD). + +### Ограничение FPS (RTSS) + +Ограничивает частоту кадров во всех играх, пока работает режим консоли (полезно на телевизоре 60 Гц). Нужен установленный и запущенный RTSS. Прежнее ограничение возвращается при выходе. + +## Ограничения + +- Конфигурации с несколькими мониторами бывают очень разными; на некоторых системах восстановление может потребовать второй попытки из области уведомлений +- Режим Xbox не определяет, когда закончился полноэкранный режим: восстанавливайте вручную +- Ограничение FPS глобальное (ограничение RTSS), а не для каждого экрана +- Сборка WinUI 3 пока компилируется только в Windows (`net8.0-windows`) + +## Решение проблем + +### Раскладка рабочего стола не восстановилась + +Откройте меню в области уведомлений и выберите **«Восстановить конфигурацию»**. Если раскладка всё ещё выглядит неправильно, снова выберите **«Восстановить конфигурацию»**, когда Windows закончит применять изменения мониторов. Можно также снова открыть окно из области уведомлений и восстановить вручную. + +### Звук остался на прежнем выходе + +Перед запуском режима консоли убедитесь, что нужный выход подключён и доступен в Windows. Для выходов HDMI/телевизора может понадобиться переподключить кабель и снова запустить режим. + +### Геймпад виден, но ничего не делает (DualSense / DualShock) + +Откройте **«Параметры» → «Проверка геймпада»**: там в реальном времени видно, что Windows получает от каждого геймпада. Если при нажатии кнопок показания остаются пустыми, скорее всего, геймпад перехватывает Steam (запущенный Steam с поддержкой PlayStation в Steam Input превращает его в клавиатуру и мышь на рабочем столе). Закройте Steam или отключите поддержку PlayStation в Steam Input и проверьте снова. Если показаний по-прежнему нет, нажмите **«Копировать диагностику»** и вставьте результат в форму отзыва. + +### HDR или VRR не изменились + +Убедитесь, что игровой экран поддерживает эту функцию и что HDR включён в Windows. Для VRR также включите G-SYNC или FreeSync в панели управления видеокарты, если это применимо. + +## Сборка из исходного кода (Windows) + +Смотрите раздел английского руководства: [GUIDE.md#build-from-source-windows](GUIDE.md#build-from-source-windows). + +*Эта страница — перевод английского руководства. Если что-то расходится, актуальна английская версия.* diff --git a/docs/TRANSLATING.md b/docs/TRANSLATING.md new file mode 100644 index 0000000..c918709 --- /dev/null +++ b/docs/TRANSLATING.md @@ -0,0 +1,44 @@ +# Translating Console Mode + +Console Mode speaks English, Português (Brasil), Español, Deutsch, Français and Русский. Thanks for helping it speak yours, or for fixing a line that reads wrong in your language. + +You don't need Windows or a build environment: every text the app shows lives in one JSON file per language, and the tests that check it run on any OS. + +## Fix or improve an existing translation + +1. Open `src/ConsoleMode/Resources/Strings..json` for your language (for example `Strings.de-DE.json`). +2. Change the **values**, never the keys. To find a text, search for it in `Strings.en-US.json`, then look up the same key in your file. +3. Open a pull request. If you'd rather not touch Git, [open a feedback issue](https://github.com/lippdev/consolemode/issues/new?template=feedback.yml) with the key (or a screenshot), the current text and your suggestion. + +## Add a new language + +Copy `src/ConsoleMode/Resources/Strings.en-US.json` to `Strings..json` (a culture code like `it-IT`, `pl-PL`, `zh-CN`) and translate every value. That file is the real work; the rest is wiring, and a maintainer can do it for you if you only send the JSON. + +The wiring, in the same pull request: + +1. `src/ConsoleMode/ConsoleMode.csproj` and `tests/ConsoleMode.Tests/ConsoleMode.Tests.csproj`: add an `` line for the new file, next to the existing ones. +2. `src/ConsoleMode/Services/LocalizationService.cs`: add a constant for the code and list it in `SupportedLanguages` with the name the language uses for itself (`"Italiano"`, `"Polski"`, `"简体中文"`). The language picker reads that list, and a Windows set to any region of the language (`it-CH`, `zh-SG`) opens the app in it. +3. `tests/ConsoleMode.Tests/LocalizationTests.cs`: add an `[InlineData]` row to `Initial_language_follows_saved_choice_then_installer_then_windows` that maps another region of your language to your code. If your language is the one the test uses as "unknown" (`ja-JP` today), switch that case to another language the app doesn't have. +4. `build/ConsoleMode.iss` (the installer): a `[Languages]` entry with Inno Setup's messages file for your language, your translation of the three `[CustomMessages]` lines (`OneClickShortcut`, `StartWithWindows`, `LaunchApp`), and a `[Registry]` line that saves your code. Keep the file saved as UTF-8 with BOM, or non-Latin text shows up broken in the installer. +5. `README.md` / `README.pt-BR.md`: add the language to the features list. Add the changelog entry under `## [Unreleased]` in both `CHANGELOG.md` and `CHANGELOG.en-US.md`. +6. `docs/TESTING.md`: a checklist line to walk through the app and the installer in the new language on Windows, looking for cut or overlapping text. + +A translated `README..md` and `docs/GUIDE..md` are welcome too, in a separate pull request. Follow the existing ones (`README.es-ES.md`, `docs/GUIDE.es-ES.md`): they leave out the version-specific parts so they don't go stale on every release. + +## Writing good strings + +- **Keep `{0}`, `{1}`…** exactly as they are; they are replaced by numbers, names or times. You can move them inside the sentence. +- **Keep it short.** Much of the app is read from the couch on a TV and laid out in cards and menu rows; a text much longer than the English may be cut. If your language runs long, prefer the shorter wording. +- **Talk to the player** the way games and consoles in your language do (in most languages, informally). Keep one tone across the whole file. +- **Use the official names** of things outside the app as they appear in your language: Windows settings, Steam, Big Picture, Xbox, PlayStation buttons (✕ ○ □ △), HDR, VRR. +- **Don't translate** product names: Console Mode, Steam Big Picture, Playnite, RTSS, ControlFS, the `Console Mode 1 Click` shortcut. + +## Checking your work + +```sh +dotnet test tests/ConsoleMode.Tests/ConsoleMode.Tests.csproj +``` + +With the [.NET 8 SDK](https://dotnet.microsoft.com/download/dotnet/8.0) this runs on Windows, Linux or macOS. The tests fail when your file is missing a key or has an extra one, when a `{0}` doesn't match the English, or when a sentence of three words or more is still identical to the English. Single words that are the same in your language (`Volume`, `Desktop`) are fine. + +If you can, also run the app on Windows in your language and look at the Home screen, Settings, the session menu and the tutorial, in both the Desktop and the Console interface. If you can't, say so in the pull request and someone else will check it.