From 9b1764d979b96d63e4331fe084456275867dff0e Mon Sep 17 00:00:00 2001 From: Filipe Moreira Date: Sat, 17 Oct 2026 21:13:50 -0300 Subject: [PATCH 1/4] feat: add German (Deutsch) translation Community translation of every UI string (377 keys, placeholders checked against en-US). The language picker lists Deutsch, Windows in any German region opens the app in German, and the installer offers it too. Co-Authored-By: Claude Opus 5.5 --- CHANGELOG.en-US.md | 3 + CHANGELOG.md | 3 + README.md | 2 +- README.pt-BR.md | 2 +- build/ConsoleMode.iss | 5 + src/ConsoleMode/ConsoleMode.csproj | 1 + src/ConsoleMode/Resources/Strings.de-DE.json | 379 ++++++++++++++++++ .../Services/LocalizationService.cs | 4 +- .../ConsoleMode.Tests.csproj | 1 + tests/ConsoleMode.Tests/LocalizationTests.cs | 6 +- 10 files changed, 402 insertions(+), 4 deletions(-) create mode 100644 src/ConsoleMode/Resources/Strings.de-DE.json diff --git a/CHANGELOG.en-US.md b/CHANGELOG.en-US.md index 277592d..0d34a45 100644 --- a/CHANGELOG.en-US.md +++ b/CHANGELOG.en-US.md @@ -4,6 +4,9 @@ English (US) release notes, mirroring CHANGELOG.md (Brazilian Portuguese). Befor ## [Unreleased] +### What's new +- German (Deutsch) interface, translated by a community member. With Windows in German the app opens in that language, and the installer offers it too. + ## [1.6.1] ### What's new - Guided tour of the session menu: the first time the menu opens, it offers an optional tour that highlights each option and explains what it does, including the difference between **Back to the PC** (restores the desk and the app stays in the tray) and **Exit Console Mode** (restores and closes the app). To see it again, press Y (△) or F1 in the menu, or use Settings → Session menu tour. (#144) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5ee60c5..8a12c08 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,9 @@ Notas em português do Brasil; a versão em inglês (Estados Unidos) fica em `CH ## [Unreleased] +### Novidades +- Interface em alemão (Deutsch), traduzida por um usuário da comunidade. Quem usa o Windows em alemão já abre o app nesse idioma, e o instalador também oferece a opção. + ## [1.6.1] ### Novidades - Tour guiado do menu da sessão: na primeira vez que o menu abre, ele oferece um tour opcional que destaca cada opção e explica o que ela faz, incluindo a diferença entre **Voltar ao PC** (restaura a mesa e o app fica na bandeja) e **Sair do Console Mode** (restaura e fecha o app). Para ver de novo, aperte Y (△) ou F1 no menu, ou use Ajustes → Tour do menu da sessão. (#144) diff --git a/README.md b/README.md index edce06e..db569bb 100644 --- a/README.md +++ b/README.md @@ -51,7 +51,7 @@ You pick the controller shortcuts yourself: none is on at first, the app asks th - **Session menu** over the game: switch or close the open windows, change volume, resolution, audio, FPS and HDR, hide the mouse pointer or drive it with the controller, and browse your files with [ControlFS](https://github.com/nextestudios/ControlFS) - Two interfaces: **Desktop** (mouse) and **Console** (full screen, Xbox and PlayStation pads, LB/RB tabs, your Steam covers as the background) - Automation with `consolemode://start` / `stop` / `menu` links (Stream Deck, scripts) and a [local control API](docs/GUIDE.md#local-control-api) -- English, Portuguese and Spanish +- English, Portuguese, Spanish and German ## What's new in 1.6.1 diff --git a/README.pt-BR.md b/README.pt-BR.md index 3096571..67ea6f4 100644 --- a/README.pt-BR.md +++ b/README.pt-BR.md @@ -51,7 +51,7 @@ Os atalhos do controle são você quem escolhe: nenhum vem ligado, o app pergunt - **Menu da sessão** sobre o jogo: troque ou feche as janelas abertas, mude volume, resolução, áudio, FPS e HDR, esconda o cursor do mouse ou mova-o com o controle e navegue pelos seus arquivos com o [ControlFS](https://github.com/nextestudios/ControlFS) - Duas interfaces: **Desktop** (mouse) e **Console** (tela cheia, controles Xbox e PlayStation, abas no LB/RB, as capas da sua Steam como plano de fundo) - Automação com os links `consolemode://start` / `stop` / `menu` (Stream Deck, scripts) e uma [API de controle local](docs/GUIDE.pt-BR.md#api-de-controle-local) -- Português, inglês e espanhol +- Português, inglês, espanhol e alemão ## Novidades da 1.6.1 diff --git a/build/ConsoleMode.iss b/build/ConsoleMode.iss index cc14f05..4167d89 100644 --- a/build/ConsoleMode.iss +++ b/build/ConsoleMode.iss @@ -55,6 +55,7 @@ RestartApplications=no Name: "ptbr"; MessagesFile: "compiler:Languages\BrazilianPortuguese.isl" Name: "en"; MessagesFile: "compiler:Default.isl" Name: "es"; MessagesFile: "compiler:Languages\Spanish.isl" +Name: "de"; MessagesFile: "compiler:Languages\German.isl" [CustomMessages] ptbr.OneClickShortcut=Atalho "Console Mode 1 Click" na Área de Trabalho (entra no modo console com 1 clique) @@ -66,6 +67,9 @@ en.LaunchApp=Open Console Mode es.OneClickShortcut=Acceso directo "Console Mode 1 Click" en el escritorio (entra en modo consola con 1 clic) es.StartWithWindows=Iniciar con Windows (queda en la bandeja) es.LaunchApp=Abrir Console Mode +de.OneClickShortcut=Desktop-Verknüpfung "Console Mode 1 Click" (startet den Konsolenmodus mit einem Klick) +de.StartWithWindows=Mit Windows starten (läuft im Infobereich weiter) +de.LaunchApp=Console Mode öffnen [Tasks] Name: "oneclick"; Description: "{cm:OneClickShortcut}"; Flags: unchecked @@ -89,6 +93,7 @@ Root: HKCU; Subkey: "Software\Microsoft\Windows\CurrentVersion\Run"; ValueType: Root: HKCU; Subkey: "Software\ConsoleMode"; ValueType: string; ValueName: "Language"; ValueData: "pt-BR"; Languages: ptbr; Flags: uninsdeletekeyifempty uninsdeletevalue Root: HKCU; Subkey: "Software\ConsoleMode"; ValueType: string; ValueName: "Language"; ValueData: "en-US"; Languages: en; Flags: uninsdeletekeyifempty uninsdeletevalue Root: HKCU; Subkey: "Software\ConsoleMode"; ValueType: string; ValueName: "Language"; ValueData: "es-ES"; Languages: es; Flags: uninsdeletekeyifempty uninsdeletevalue +Root: HKCU; Subkey: "Software\ConsoleMode"; ValueType: string; ValueName: "Language"; ValueData: "de-DE"; Languages: de; Flags: uninsdeletekeyifempty uninsdeletevalue ; consolemode://start|stop|show links (ProtocolService registers the same keys at startup). Root: HKCU; Subkey: "Software\Classes\consolemode"; ValueType: string; ValueData: "URL:Console Mode"; Flags: uninsdeletekey Root: HKCU; Subkey: "Software\Classes\consolemode"; ValueType: string; ValueName: "URL Protocol"; ValueData: "" diff --git a/src/ConsoleMode/ConsoleMode.csproj b/src/ConsoleMode/ConsoleMode.csproj index ada5868..9a73a09 100644 --- a/src/ConsoleMode/ConsoleMode.csproj +++ b/src/ConsoleMode/ConsoleMode.csproj @@ -43,6 +43,7 @@ + diff --git a/src/ConsoleMode/Resources/Strings.de-DE.json b/src/ConsoleMode/Resources/Strings.de-DE.json new file mode 100644 index 0000000..23ff7fe --- /dev/null +++ b/src/ConsoleMode/Resources/Strings.de-DE.json @@ -0,0 +1,379 @@ +{ + "Brand": "Console Mode", + "Back": "Zurück", + "HomeHeading": "Wo möchtest du spielen?", + "HomeDescription": "Wähle einen Bildschirm aus und lege fest, was mit ihm geschehen soll. Bildschirme, die du ausschaltest, werden automatisch wiederhergestellt, wenn du das Spiel verlässt.", + "ReleaseNews": "Neuigkeiten", + "IgnoreUpdate": "Diese Version überspringen", + "NoDisplays": "Keine Bildschirme gefunden", + "TryAgain": "Erneut versuchen", + "RefreshDisplaysTooltip": "Erneut nach Bildschirmen suchen", + "RefreshDisplaysName": "Bildschirme aktualisieren", + "RoleQuestion": "Was soll dieser Bildschirm tun?", + "RolePlayHere": "Hier spielen", + "RoleTurnOff": "Ausschalten", + "RoleKeepOn": "Eingeschaltet lassen", + "Settings": "Einstellungen", + "SendFeedback": "Feedback senden", + "TourMapTitle": "1 von 3 · Deine Bildschirme", + "TourRoleTitle": "2 von 3 · Was die einzelnen Bildschirme tun", + "TourPlayTitle": "3 von 3 · Mit einem Klick spielen", + "TourRoleDescription": "Wähle einen Bildschirm aus und lege fest, ob du darauf spielen, ihn während des Spielens ausschalten oder eingeschaltet lassen möchtest. Ausgeschaltete Bildschirme werden beim Verlassen wiederhergestellt.", + "TourPlayDescription": "Deine Bildschirme werden umgeschaltet und Big Picture wird auf dem Fernseher geöffnet. Beim ersten Mal musst du auf dem Fernseher bestätigen, dass du das Bild sehen kannst. Wenn innerhalb von 15 Sekunden niemand reagiert, wird alles wiederhergestellt. Schließe Big Picture, um den Modus zu verlassen.", + "Next": "Weiter", + "SkipTour": "Tutorial überspringen", + "GotIt": "Verstanden", + "CreateDesktopShortcut": "Desktop-Verknüpfung erstellen", + "ActiveTitle": "Console Mode ist aktiv", + "RestoreNow": "Jetzt wiederherstellen", + "RunningInTray": "Du kannst dieses Fenster schließen. Console Mode läuft im Infobereich der Taskleiste weiter.", + "SettingsTitle": "Einstellungen", + "SettingsIntro": "Änderungen werden automatisch gespeichert. Wähle die Bildschirme auf der Startseite aus.", + "GameScreenSection": "Gaming-Bildschirm", + "ResolutionRefreshCard": "Auflösung und Bildwiederholrate", + "HideOtherScreensCard": "Andere Bildschirme ausschalten", + "HideOtherScreensDescription": "Trennen geht am schnellsten. Ein schwarzer Bildschirm lässt die Anordnung unverändert; DDC/CI schaltet das Display über seine Hardware aus.", + "EnteringConsoleSection": "Beim Starten des Konsolenmodus", + "LaunchCard": "Öffnen", + "AudioOutputCard": "Audioausgabe", + "OptionalExtrasSection": "Optionale Extras", + "HdrCard": "HDR auf dem Gaming-Bildschirm", + "HdrDescription": "Wird beim Start aktiviert und beim Beenden auf den vorherigen Zustand zurückgesetzt.", + "VrrCard": "Variable Bildwiederholrate (VRR)", + "VrrDescription": "Aktiviert die entsprechende Windows-Einstellung. Aktiviere sie zusätzlich in der NVIDIA-/AMD-Systemsteuerung.", + "FpsCard": "FPS-Begrenzung", + "FpsPlaceholder": "FPS", + "AppSection": "App", + "UiModeCard": "Oberfläche", + "UiModeDescription": "Konsole: große Kacheln, Steuerung per Controller und Vollbild. Bei „Automatisch“ wird der Konsolenmodus verwendet, wenn ein Controller verbunden ist.", + "BackgroundCard": "Hintergrund", + "BackgroundDescription": "Cover deiner installierten Steam-Spiele unter einem Farbverlauf, nur der Farbverlauf oder ein eigenes Bild.", + "BackgroundAuto": "Steam-Cover", + "BackgroundGradient": "Nur Farbverlauf", + "BackgroundImage": "Eigenes Bild", + "BackgroundImageCard": "Bild auswählen…", + "HomeSetupHeading": "Aktuelle Konfiguration", + "TabHome": "Startseite", + "TabSession": "Sitzung", + "TabSystem": "System", + "HintTabs": "Registerkarten", + "SoundsCard": "Oberflächentöne", + "SoundsDescription": "Dezente Töne beim Navigieren, Auswählen und Zurückgehen in der Konsolenoberfläche.", + "UiModeAuto": "Automatisch", + "UiModeDesktop": "Desktop", + "UiModeConsole": "Konsole", + "SwitchToDesktop": "Desktopmodus", + "SwitchToConsole": "Konsolenmodus", + "ControllerHintDesktop": "Controller erkannt · A navigiert, Y öffnet den Konsolenmodus", + "SessionMenuTitle": "Sitzungsmenü", + "BackToGame": "Zurück zum Spiel", + "VolumeRow": "Lautstärke", + "Muted": "Stummgeschaltet", + "SessionMenuHint": "Mit deiner Sitzungsmenü-Tastenkombination kannst du dieses Menü jederzeit öffnen.", + "SessionHintTitle": "Menü von Console Mode", + "SessionHintBody": "Halte {0} gedrückt, um das Menü über dem Spiel zu öffnen.", + "ExitConsoleMode": "Console Mode beenden", + "HintVolume": "Lautstärke", + "SessionElapsed": "Spieldauer: {0}", + "SessionMenuCard": "Tastenkombination für das Sitzungsmenü", + "SessionMenuDescription": "Halte während einer Sitzung diese Tastenkombination gedrückt, um ein Menü über dem Spiel zu öffnen: Lautstärke, Auflösung, Audio, FPS, HDR, zurück zum PC oder Beenden. Funktioniert nicht bei Spielen im exklusiven Vollbildmodus.", + "ConsoleScreensHeading": "Bildschirme", + "ConsoleQuickHeading": "Schnelleinstellungen", + "FullSettings": "Alle Einstellungen", + "HintSelect": "Auswählen", + "HintChange": "Ändern", + "ConsoleSettingsHint": "Drücke bei einer Zeile A, um ihren Wert zu ändern. Alles wird sofort gespeichert.", + "BackToPc": "Zurück zum PC", + "CloseMenu": "Menü schließen", + "ControlFsCard": "Dateimanager (ControlFS)", + "ControlFsOpen": "Dateien mit dem Controller durchsuchen", + "ControlFsMissing": "Nicht installiert · zum Herunterladen und Installieren drücken", + "ControlFsDownloading": "Wird heruntergeladen… {0} %", + "ControlFsInstalling": "Wird installiert…", + "ControlFsInstallFailed": "Installation fehlgeschlagen · drücken, um die Downloadseite zu öffnen", + "ControlFsInstalled": "Installiert · zum Öffnen drücken", + "ControlFsMissingNote": "ControlFS ist nicht installiert. Die Downloadseite wird im Browser geöffnet.", + "SessionWindowsCard": "Fenster", + "SessionWindowsCount": "{0} geöffnet", + "SwitcherEmpty": "Keine geöffneten Fenster", + "SwitcherOpen": "Öffnen", + "SwitcherCloseWindow": "Fenster schließen", + "SwitcherCloseConfirmTitle": "Dieses Fenster schließen?", + "SwitcherCloseConfirmBody": "Wenn Änderungen nicht gespeichert wurden, fragt die App möglicherweise trotzdem, ob du sie speichern möchtest.", + "SwitcherCloseConfirmAction": "Fenster schließen", + "SessionPreviewBadge": "Vorschau · außerhalb einer Sitzung", + "ConsoleActiveHint": "Oder halte {0} am Controller 1 Sekunde lang gedrückt.", + "ChooseRoleFor": "Was soll der Bildschirm {0} tun?", + "HomeButtonCard": "Controller-Tastenkombination zum Öffnen von Console Mode", + "HomeButtonDescription": "Wenn die App im Infobereich läuft, halte diese Tastenkombination 1 Sekunde lang gedrückt, um den Konsolenmodus zu starten (ein kurzer Druck genügt, wenn du die Option für kurzes Drücken unten aktivierst). Funktioniert mit Xbox- und PlayStation-Controllern.", + "ExitShortcutCard": "Controller-Tastenkombination für die Rückkehr zum PC", + "ExitShortcutDescription": "Halte diese Tastenkombination während einer Sitzung 1 Sekunde lang gedrückt, um deinen Desktop wiederherzustellen und zum PC zurückzukehren.", + "ShortcutHome": "Console Mode öffnen", + "ControllerSection": "Controller", + "ControllerLayoutCard": "Tastenbelegung", + "ControllerLayoutDescription": "Automatisch richtet sich nach dem verbundenen Controller. Du kannst auch fest die Xbox- oder PlayStation-Symbole auswählen.", + "ControllerLayoutAuto": "Automatisch", + "ControllerLayoutXbox": "Xbox (A, B, X, Y)", + "ControllerLayoutPlaystation": "PlayStation (✕, ○, □, △)", + "ShortcutMenu": "Sitzungsmenü", + "ShortcutExit": "Zurück zum PC", + "ShortcutNotSet": "Nicht festgelegt", + "ShortcutSet": "Festlegen", + "ShortcutChange": "Ändern", + "ShortcutClear": "Entfernen", + "ShortcutCancel": "Abbrechen", + "ShortcutPressButtons": "Halte die Tasten gedrückt und lass sie dann los…", + "ShortcutCaptureHint": "Zum Speichern loslassen. Drücke {0} allein, um abzubrechen.", + "ShortcutNotAllowed": "Verwende mindestens zwei Tasten gleichzeitig (z. B. Select + Y) oder allein die Home-Taste. Eine einzelne Taste könnte mitten im Spiel ausgelöst werden.", + "ShortcutInUse": "{0} ist bereits die Tastenkombination für „{1}“. Wähle eine andere Kombination.", + "ShortcutsOnboardingTitle": "Controller-Tastenkombinationen einrichten", + "ShortcutsOnboardingBody": "Es ist keine Tastenkombination aktiv, bis du eine festlegst. Wähle für jede Aktion eine Taste oder Kombination oder lass sie unbelegt. Drücke auf „Festlegen“, halte die Tasten gedrückt und lass sie los. Dieselbe Kombination kann nicht für zwei Aktionen verwendet werden. Du kannst alles später in den Einstellungen ändern.", + "ShortcutsUseSuggested": "Vorgeschlagene Tastenkombinationen verwenden", + "ShortcutsOnboardingDone": "Fertig", + "CloseSteamCard": "Steam beim Zurückkehren zum PC in den Infobereich minimieren", + "CloseSteamDescription": "Wenn du Big Picture verlässt, erhält Steam eine normale Aufforderung zum Schließen des Fensters und kann so in den Infobereich wechseln, ohne den Prozess zu beenden. Wenn ein Spiel läuft oder sein Status nicht ermittelt werden kann, bleibt das Fenster unverändert.", + "HideCursorCard": "Mauszeiger ausblenden", + "HideCursorDescription": "Bleibt ausgeblendet, bis du diese Option deaktivierst oder zum PC zurückkehrst. Praktisch für Emulatoren und Spiele, bei denen der Zeiger mitten auf dem Bildschirm stehen bleibt.", + "ControllerMouseRow": "Maus mit dem Controller steuern", + "ControllerMouseHint": "Linker Stick bewegt · {0} klickt · {0} zweimal: Rechtsklick · rechter Stick scrollt", + "AutoStartControllerCard": "Beim Verbinden eines Controllers starten", + "AutoStartControllerDescription": "Wenn die App im Infobereich läuft, startet das Einschalten oder Anschließen eines Controllers den Konsolenmodus. Die ersten 15 Sekunden nach dem Öffnen und 30 Sekunden nach der Wiederherstellung werden ignoriert.", + "HomeButtonShortPressCard": "Kurzer Druck auf die Xbox-Taste", + "HomeButtonShortPressDescription": "Einfach drücken, nicht gedrückt halten. Deaktiviert die Controller-Tastenkombination für die Game Bar in Windows (Win+G funktioniert weiterhin).", + "HomeButtonSteamHint": "Steam ist geöffnet und verwendet ebenfalls die Xbox-Taste. Deaktiviere in Steam die Option „Guide-Taste fokussiert Steam“, damit der kurze Tastendruck funktioniert.", + "GameBarSettingError": "Die Game-Bar-Einstellung konnte nicht geändert werden: {0}", + "StartupCard": "Mit Windows starten", + "StartupDescription": "Wird beim Start des PCs im Infobereich geöffnet und ist bereit für die Verknüpfung mit einem Klick.", + "UpdatesCard": "Updates", + "CheckNow": "Jetzt suchen", + "NotifyUpdatesCard": "Bei einer neuen Version benachrichtigen", + "NotifyUpdatesDescription": "Prüft beim Start der App die GitHub-Releases.", + "BetaUpdatesCard": "Testversionen erhalten (Alpha und Beta)", + "BetaUpdatesDescription": "Erhalte Vorabversionen, um beim Testen zu helfen. Sie können Fehler enthalten. Wenn du diese Option deaktivierst, wechselst du nicht zur stabilen Version zurück: Du erhältst die nächste stabile Version, sobald sie erscheint.", + "BetaUpdatesWarning": "Testversionen können auf manchen Systemen Probleme verursachen. Wenn etwas nicht mehr funktioniert, lade die stabile Version von der Releases-Seite herunter und sende uns über die Feedback-Schaltfläche eine Rückmeldung.", + "HelpDataSection": "Tastenkombination, Hilfe und Daten", + "OtherAppsSection": "Weitere Apps des Entwicklers", + "WakeOnDescription": "Automatisierung mit Wake-on-LAN", + "NextBoostDescription": "Windows-Optimierung", + "TvConfirmationCard": "TV-Bestätigung", + "TvConfirmationDescription": "Wenn du einen neuen Gaming-Bildschirm zum ersten Mal verwendest, bittet dich der Fernseher zu bestätigen, dass du das Bild sehen kannst. Bestätige mit Maus, Tastatur oder Controller (Xbox: A/B · PlayStation: ✕/○). Du kannst dies hier testen, ohne deine Bildschirme zu ändern.", + "TestNow": "Jetzt testen", + "TvSection": "Fernseher", + "TvControlCard": "Fernseher einschalten und Eingang wechseln", + "TvProviderNone": "Nicht steuern", + "TvProviderAndroid": "Google TV / Android TV (Netzwerk)", + "TvNoneDescription": "Beim Start des Konsolenmodus schaltet die App den Fernseher ein und wechselt zum PC-Eingang. Beim Wiederherstellen kann sie ihn in den Standby versetzen.", + "TvAndroidDescription": "Über das Netzwerk, ohne Installation. Auf dem Fernseher: Einstellungen → System → Entwickleroptionen → „USB-Debugging“ (oder „Netzwerk-Debugging“) aktivieren. Beim ersten Mal „Debugging zulassen“ auf dem Fernseher bestätigen.", + "TvHostCard": "TV-Adresse", + "TvHostDescription": "Die IP-Adresse des Fernsehers in deinem Netzwerk (Einstellungen → Netzwerk). Tipp: Reserviere die Adresse im Router, damit sie sich nicht ändert.", + "TvMacCard": "MAC-Adresse (optional)", + "TvMacDescription": "Damit der Fernseher aus dem Tiefschlaf geweckt werden kann (Wake-on-LAN). Leer lassen, wenn der Fernseher auch im ausgeschalteten Zustand reagiert.", + "TvHdmiCard": "PC-Eingang", + "TvHdmiDescription": "Der HDMI-Anschluss des Fernsehers, an den der PC angeschlossen ist.", + "TvInputCommandCard": "Eingangsbefehl (erweitert)", + "TvInputCommandDescription": "Nur verwenden, wenn der Fernseher die HDMI-Taste ignoriert: ein Android-Shell-Befehl, der zum PC-Eingang wechselt. Leer lassen = die oben ausgewählte HDMI-Taste verwenden.", + "TvTurnOffCard": "Fernseher beim Wiederherstellen in den Standby versetzen", + "TvTurnOffDescription": "Nachdem die Desktop-Bildschirme wiederhergestellt wurden.", + "TvTestCard": "Fernseher testen", + "TvTestDescription": "Schaltet den Fernseher jetzt ein und wechselt zum PC-Eingang, ohne die Bildschirme zu verändern. Beim ersten Mal wird er mit dem Fernseher gekoppelt.", + "TvTesting": "Verbindung zum Fernseher wird hergestellt… Falls eine Abfrage erscheint, bestätige sie auf dem Fernseher.", + "TvTestSuccess": "Der Fernseher hat geantwortet: Er sollte jetzt eingeschaltet und auf den PC-Eingang eingestellt sein.", + "TvTestFailure": "Verbindung zum Fernseher fehlgeschlagen: {0}", + "TvTestTimedOut": "Der Fernseher hat nicht innerhalb von 90 Sekunden vollständig geantwortet. Versuche es erneut.", + "TvNotConfigured": "Lege fest, wie der Fernseher gesteuert werden soll.", + "TvHostMissing": "Gib die IP-Adresse des Fernsehers ein.", + "TvUnreachable": "Der Fernseher unter {0} hat nicht geantwortet. Prüfe die IP-Adresse, ob der Fernseher im selben Netzwerk ist und ob Debugging aktiviert ist.", + "TvAdbNotAllowed": "Der Fernseher hat diesem PC keinen Zugriff erlaubt. Drücke erneut auf „Testen“ und wähle auf dem Fernseher „Immer zulassen“ + „Zulassen“.", + "TvAdbTlsUnsupported": "Der Fernseher akzeptiert nur „Drahtloses Debugging“ (Kopplung mit Code). Aktiviere in den Entwickleroptionen „USB-Debugging“ / „Netzwerk-Debugging“.", + "ControllerTestCard": "Controller testen", + "ControllerTestDescription": "Zeigt live, welche Eingaben Windows von jedem Controller erhält: Quelle, Tasten nach Index, Steuerkreuz und Sticks. Verwende diese Funktion, wenn ein Controller erkannt wird, aber nichts bewirkt.", + "ControllerTestSteamHint": "Wenn Steam mit PlayStation-Unterstützung läuft, fängt es die Eingaben des Controllers ab und die App erhält nichts. Schließe Steam (oder deaktiviere die PlayStation-Unterstützung in Steam Input) und teste erneut.", + "CopyDiagnostics": "Diagnosedaten kopieren", + "ControllerDevicesHeading": "Geräte", + "ControllerSampleHeading": "Live-Anzeige (Tasten drücken)", + "DiagnosticsCopied": "Diagnosedaten kopiert. Füge sie in den Fehlerbericht oder das Feedbackformular ein.", + "TutorialCard": "Tutorial", + "TutorialDescription": "Die Einführung auf der Startseite erneut anzeigen.", + "SeeAgain": "Erneut anzeigen", + "OneClickCard": "Verknüpfung mit einem Klick", + "OneClickDescription": "Erstellt auf dem Desktop neben der normalen App-Verknüpfung „Console Mode 1 Click“. Damit wird der Konsolenmodus direkt gestartet, ohne dieses Fenster zu öffnen.", + "CreateShortcut": "Verknüpfung erstellen", + "DataFolderCard": "Datenordner", + "DataFolderDescription": "Einstellungen, Bildschirm-Sicherung und Protokolldatei (consolemode.log).", + "LanguageCard": "Sprache", + "LanguageDescription": "Wähle die Sprache für Console Mode.", + "ConfirmTitle": "Kannst du diesen Bildschirm sehen?", + "ConfirmDescription": "Dies ist der Gaming-Bildschirm. Bestätige mit Maus, Tastatur oder Controller. Wenn niemand reagiert, werden deine Bildschirme automatisch wiederhergestellt.", + "Revert": "Zurücksetzen", + "Continue": "Ja, fortfahren", + "Countdown": "Rückkehr zum Normalzustand in {0} Sek.", + "AudioHint": "Wird beim Start angewendet und beim Beenden wiederhergestellt. „Bei Verbindung“ schaltet automatisch um, sobald der Fernseher erkannt wird.", + "StartEntering": "Wird gestartet…", + "StartNow": "Jetzt spielen", + "LaunchPlayniteDescription": "Öffnet Playnite im Vollbildmodus. Deine Bildschirme werden automatisch wiederhergestellt, wenn du es schließt.", + "LaunchXboxDescription": "Experimentell: Sendet Win+F11. Um deine Bildschirme wiederherzustellen, verwende „Jetzt wiederherstellen“ oder das Menü im Infobereich.", + "LaunchSteamDescription": "Öffnet Steam Big Picture. Deine Bildschirme werden automatisch wiederhergestellt, wenn du es schließt.", + "FocusChoose": "Wähle auf der Startseite einen Gaming-Bildschirm aus.", + "FocusApplied": "Beim Start auf {0} angewendet und beim Beenden zurückgesetzt.", + "StrategyDisconnect": "In Windows trennen", + "StrategyBlack": "Mit schwarzem Bildschirm abdecken", + "StrategyTurnOff": "Display ausschalten (DDC/CI)", + "LaunchSteam": "Steam Big Picture", + "LaunchPlaynite": "Playnite (Vollbild)", + "PlaynitePathCard": "Playnite-Ordner", + "PlaynitePathChoose": "Auswählen…", + "PlaynitePathClear": "Leeren", + "PlaynitePathDetected": "Automatisch gefunden unter {0}. Wähle Playnite.FullscreenApp.exe aus, wenn du die portable Version verwendest.", + "PlaynitePathMissing": "Playnite nicht gefunden. Wähle beispielsweise Playnite.FullscreenApp.exe aus (portable Version).", + "PlaynitePathInvalid": "Playnite.FullscreenApp.exe wurde unter {0} nicht gefunden.", + "PlaynitePathPickError": "Dateiauswahl konnte nicht geöffnet werden: {0}", + "LaunchXbox": "Xbox-Modus (experimentell)", + "FpsOverlayCard": "FPS-Anzeige", + "FpsOverlayExternal": "Afterburner (unverändert lassen)", + "FpsOverlayOff": "Aus (alles ausblenden)", + "FpsOverlayCustom": "Benutzerdefiniert", + "FpsOverlayDescription": "Zeigt während einer Sitzung die FPS über dem Spiel an, mithilfe von RTSS. Außer bei „Afterburner“ wird das OSD von MSI Afterburner ausgeblendet, solange der Konsolenmodus aktiv ist.", + "FpsOverlayItems": "Spieleanzeige", + "FpsOverlayShowApi": "API (D3D/Vulkan)", + "FpsOverlayShowFps": "FPS", + "FpsOverlayShowFrameTime": "Framezeit (ms)", + "FpsOverlaySingleLine": "Alles in einer Zeile", + "FpsOverlayColor": "Zahlenfarbe", + "FpsOverlayColorWhite": "Weiß", + "FpsOverlayColorBlue": "Blau", + "FpsOverlayColorGreen": "Grün", + "FpsOverlayColorYellow": "Gelb", + "FpsOverlayColorOrange": "Orange", + "FpsOverlayCompact": "Kompakt", + "FpsOverlayCompactHint": "FPS, CPU, GPU und RAM", + "FpsOverlayDetailed": "Detailliert", + "FpsOverlayDetailedHint": "Taktraten, Temperatur und Speicher", + "FpsOverlayFpsOnly": "Nur FPS", + "FpsOverlayPcItems": "PC-Anzeige", + "FpsOverlayPcItemsDescription": "Daten aus Windows und dem Grafiktreiber; es muss nichts installiert werden. GPU-Temperatur und -Taktrate werden nur angezeigt, wenn der Treiber sie meldet.", + "FpsOverlayShowCpu": "CPU-Auslastung", + "FpsOverlayShowCpuClock": "CPU-Taktrate", + "FpsOverlayShowGpu": "GPU-Auslastung", + "FpsOverlayShowGpuClock": "GPU-Taktrate", + "FpsOverlayShowGpuTemp": "GPU-Temperatur", + "FpsOverlayShowVram": "VRAM", + "FpsOverlayShowRam": "RAM", + "FpsOverlaySize": "Größe", + "FpsOverlaySizeSmall": "Klein", + "FpsOverlaySizeMedium": "Mittel", + "FpsOverlaySizeLarge": "Groß", + "FpsOverlayStyle": "Stil", + "FpsOverlayPosition": "Position", + "FpsOverlayPositionRtss": "Wie in RTSS", + "FpsOverlayPositionTopLeft": "Oben links", + "FpsOverlayPositionTopRight": "Oben rechts", + "FpsOverlayPositionBottomLeft": "Unten links", + "FpsOverlayPositionBottomRight": "Unten rechts", + "FpsOverlayCardBackground": "Hintergrund der Anzeige", + "FpsOverlayCardBackgroundDescription": "Eine dunkle, abgerundete Fläche hinter den Zahlen, damit sie vor jedem Spielhintergrund gut lesbar sind.", + "FpsNoLimit": "Keine Begrenzung", + "FpsCustom": "Benutzerdefiniert", + "FpsAvailable": "Gilt für alle Spiele, solange der Konsolenmodus aktiv ist. Verwendet RTSS.", + "FpsUnavailable": "Optional. Installiere RivaTuner Statistics Server (RTSS), um diese Funktion zu nutzen.", + "NoGameDisplayConfigured": "Es ist kein Gaming-Bildschirm konfiguriert. Der Konsolenmodus kann nicht gestartet werden.", + "NoDisplayTryRefresh": "Keine Bildschirme gefunden. Versuche, die Anzeige zu aktualisieren.", + "ListDisplaysError": "Bildschirme konnten nicht aufgelistet werden: {0}", + "DisplayNoChange": "Nicht ändern", + "AudioNoChange": "Nicht ändern", + "AudioOnConnect": "Der bei Verbindung erscheinende Ausgang (Fernseher)", + "ShortcutCreated": "Die Desktop-Verknüpfung „Console Mode 1 Click“ wurde erstellt.", + "ShortcutCreateError": "Verknüpfung konnte nicht erstellt werden: {0}", + "OpenFolderError": "Ordner konnte nicht geöffnet werden: {0}", + "ChooseGameScreen": "Wähle den Bildschirm aus, auf dem du spielen möchtest.", + "UnconfirmedSetup": "Deine Bildschirme wurden wiederhergestellt, weil der Gaming-Bildschirm nicht bestätigt wurde. Prüfe deine Auswahl und versuche es erneut.", + "StartFailure": "Konsolenmodus konnte nicht gestartet werden: {0}", + "ControllerXbox": "Xbox-Controller erkannt", + "ControllerPlaystation": "PlayStation-Controller erkannt", + "ControllerOther": "Controller erkannt", + "ControllerNone": "Kein Controller erkannt", + "ConfirmationResult": "Test: {0} durch {1} ({2}).", + "ConfirmationAccepted": "bestätigt", + "ConfirmationWillRevert": "würde wiederhergestellt werden", + "SourceController": "Controller", + "SourceKeyboard": "Tastatur", + "SourceMouseKeyboard": "Maus/Tastatur", + "SourceTimeout": "Zeitüberschreitung", + "ListConjunction": " und ", + "ListSeparator": ", ", + "ShortcutName": "Console Mode 1 Click", + "ShortcutDescription": "Startet den Konsolenmodus mit einem Klick", + "ShortcutUnavailable": "WScript.Shell ist in dieser Windows-Version nicht verfügbar.", + "UnknownExecutablePath": "Der Pfad zur ausführbaren Datei ist unbekannt.", + "ProcessTimeout": "Zeitüberschreitung bei {0}: {1}", + "ProcessFailure": "{0} fehlgeschlagen ({1}): {2}", + "CachedModeSuffix": " (zwischengespeichert)", + "EstimatedModeSuffix": " (geschätzt)", + "UpdateAssetMissing": "Diese Veröffentlichung enthält keine überprüfbare Datei für diesen Installationstyp.", + "UpdateHashMismatch": "Die SHA-256-Prüfsumme der heruntergeladenen Datei stimmt nicht mit der von GitHub veröffentlichten Prüfsumme überein.", + "TourMapGeneric": "Hier siehst du deine Bildschirme an ihren Desktop-Positionen. Wähle den Bildschirm aus, auf dem du spielen möchtest.", + "TourMapWithFocus": "Hier siehst du deine Bildschirme an ihren Desktop-Positionen. Wir haben {0} ausgewählt, weil er derzeit ausgeschaltet ist. Wähle bei Bedarf einen anderen aus.", + "RestoreSuccess": "Deine Bildschirme sind wieder im Normalzustand.", + "RestoreFailure": "Bildschirme konnten nicht wiederhergestellt werden: {0}", + "ConfigSaveFailure": "Einstellungen konnten nicht gespeichert werden: {0}", + "SummaryChooseScreen": "Wähle den Bildschirm aus, auf dem du spielen möchtest", + "SummaryFocusOnly": "Auf {0} spielen", + "SummaryFocusAndHide": "Auf {0} spielen und {1} ausschalten", + "SummaryAudio": "Audio: {0}", + "SummaryAudioOnConnect": "Audio bei Verbindung", + "SummaryFps": "{0} FPS", + "MonitorOff": "aus", + "DisplayOffNow": "derzeit ausgeschaltet", + "CurrentModeSuffix": " (aktuell)", + "AudioDisabledSuffix": " [Deaktiviert]", + "AlreadyConsoleActive": "Der Konsolenmodus ist bereits aktiv.", + "GameScreenNotConfirmed": "Der Gaming-Bildschirm wurde nicht bestätigt.", + "GameScreenDidNotTurnOn": "Der Gaming-Bildschirm wurde nicht eingeschaltet. Prüfe, ob der Fernseher eingeschaltet und der richtige HDMI-Eingang ausgewählt ist, und versuche es erneut.", + "ActivePlaynite": "Schließe Playnite, um deine Bildschirme automatisch wiederherzustellen.", + "ActiveXbox": "Im Xbox-Modus erfolgt die Wiederherstellung manuell: Verwende „Jetzt wiederherstellen“ oder das Menü im Infobereich.", + "ActiveSteam": "Schließe Big Picture, um deine Bildschirme automatisch wiederherzustellen.", + "InstallKindInstalled": "Version {0} · installiert", + "InstallKindPortable": "Version {0} · portabel", + "Download": "Herunterladen", + "UpdateNow": "Jetzt aktualisieren", + "StartupSettingError": "Die Windows-Starteinstellung konnte nicht geändert werden: {0}", + "SearchingUpdates": "Suche nach Updates…", + "LatestVersionStatus": "{0} · du bist auf dem neuesten Stand", + "AppUpToDate": "Console Mode ist auf dem neuesten Stand.", + "UpdateAvailableStatus": "{0} · {1} verfügbar", + "UpdateAvailableTitle": "Console Mode {0} ist verfügbar{1}", + "BetaSuffix": " (Beta)", + "NewVersionOnGithub": "Eine neue Version ist auf GitHub verfügbar.", + "UpdateCheckFailedStatus": "{0} · Suche nach Updates fehlgeschlagen", + "UpdateSearchFailure": "Updates konnten nicht gesucht werden: {0}", + "ExitConsoleBeforeUpdate": "Beende den Konsolenmodus vor dem Aktualisieren.", + "UpdateFailure": "Aktualisierung fehlgeschlagen: {0}", + "BrowserOpenFailure": "Browser konnte nicht geöffnet werden: {0}", + "ShowWindow": "Fenster anzeigen", + "TrayEnterConsole": "Konsolenmodus starten", + "RestoreSetup": "Konfiguration wiederherstellen", + "Exit": "Beenden", + "ToggleOn": "Ein", + "ToggleOff": "Aus", + "SessionTourInviteTitle": "Zum ersten Mal in diesem Menü?", + "SessionTourInviteBody": "Eine kurze Führung erklärt die einzelnen Optionen, einschließlich des Unterschieds zwischen „Zurück zum PC“ und „Console Mode beenden“. Um sie später erneut aufzurufen, drücke hier im Menü {0}.", + "SessionTourStart": "Führung starten", + "SessionTourNotNow": "Nicht jetzt", + "SessionTourProgress": "{0} von {1}", + "SessionTourHint": "Führung", + "SessionTourBackToGameBody": "Schließt dieses Menü und gibt die Steuerung unverändert an das Spiel zurück. {0} bewirkt dasselbe von überall im Menü.", + "SessionTourControlFsBody": "Öffnet ControlFS, einen für Controller entwickelten Dateimanager, im Vollbildmodus. Wenn er noch nicht installiert ist, wird er beim ersten Drücken heruntergeladen und installiert.", + "SessionTourVolumeBody": "Drücke {0}, um die Lautstärke der Audioausgabe anzupassen: ◀ ▶ ändern sie in 5er-Schritten, {1} schaltet stumm, und mit {0} oder {2} bist du fertig.", + "SessionTourDisplayTitle": "Bildschirm und Ton", + "SessionTourDisplayBody": "Auflösung, Bildwiederholrate, Audioausgabe und HDR des Gaming-Bildschirms. Änderungen gelten nur für diese Sitzung: Wenn du zum PC zurückkehrst, wird alles auf den vorherigen Zustand zurückgesetzt.", + "SessionTourDisplayPreviewBody": "Auflösung, Bildwiederholrate, Audioausgabe und HDR des Gaming-Bildschirms. Außerhalb einer Sitzung – wie jetzt – bleiben Änderungen bestehen, bis du sie erneut änderst.", + "SessionTourFpsTitle": "FPS", + "SessionTourFpsBody": "Die FPS-Begrenzung limitiert die Bildrate deiner Spiele und die Anzeige zeigt die FPS in einer Bildschirmecke an. Beides läuft über RivaTuner. Bei der Rückkehr zum PC werden beide Einstellungen zurückgesetzt.", + "SessionTourWindowsBody": "Die geöffneten Programme – wie Alt + Tab, nur dauerhaft auf dem Bildschirm. {0} bringt ein Fenster nach vorn; {1} fordert es nach deiner Bestätigung zum Schließen auf.", + "SessionTourBackToPcBody": "Beendet die Sitzung: Bildschirme, Auflösung, HDR, Audio und FPS-Begrenzung werden zurückgesetzt, Big Picture wird geschlossen und der Fernseher ausgeschaltet, falls du das eingerichtet hast. Console Mode bleibt im Infobereich geöffnet und ist für das nächste Mal bereit.", + "SessionTourCloseMenuBody": "Außerhalb einer Sitzung gibt es nichts wiederherzustellen, daher schließt diese Schaltfläche nur das Menü. Während einer Sitzung wird daraus „Zurück zum PC“ und Bildschirme, Audio und Auflösung werden auf den vorherigen Zustand zurückgesetzt.", + "SessionTourExitBody": "Macht alles wie „Zurück zum PC“ und schließt zusätzlich Console Mode: Die App wird aus dem Infobereich beendet und die Controller-Tastenkombinationen funktionieren erst wieder, wenn du sie erneut öffnest.", + "SessionTourExitPreviewBody": "Schließt Console Mode vollständig: Die App wird aus dem Infobereich beendet und die Controller-Tastenkombinationen funktionieren erst wieder, wenn du sie erneut öffnest.", + "SessionTourCard": "Führung durch das Sitzungsmenü", + "SessionTourDescription": "Erklärt die einzelnen Optionen des Menüs über dem Spiel. Öffnet eine Vorschau des Menüs, ohne eine Sitzung zu starten.", + "ShowTour": "Führung anzeigen" +} diff --git a/src/ConsoleMode/Services/LocalizationService.cs b/src/ConsoleMode/Services/LocalizationService.cs index 02401f6..cffd23c 100644 --- a/src/ConsoleMode/Services/LocalizationService.cs +++ b/src/ConsoleMode/Services/LocalizationService.cs @@ -11,6 +11,7 @@ public static class LocalizationService public const string PortugueseBrazil = "pt-BR"; public const string EnglishUnitedStates = "en-US"; public const string SpanishSpain = "es-ES"; + public const string GermanGermany = "de-DE"; /// A UI language: its culture code and how it names itself in the language picker. public sealed record LanguageInfo(string Code, string NativeName); @@ -24,7 +25,8 @@ public sealed record LanguageInfo(string Code, string NativeName); [ new(PortugueseBrazil, "Português (Brasil)"), new(EnglishUnitedStates, "English (United States)"), - new(SpanishSpain, "Español") + new(SpanishSpain, "Español"), + new(GermanGermany, "Deutsch") ]; private static readonly IReadOnlyDictionary> Catalogs = diff --git a/tests/ConsoleMode.Tests/ConsoleMode.Tests.csproj b/tests/ConsoleMode.Tests/ConsoleMode.Tests.csproj index 28cad16..d2b6300 100644 --- a/tests/ConsoleMode.Tests/ConsoleMode.Tests.csproj +++ b/tests/ConsoleMode.Tests/ConsoleMode.Tests.csproj @@ -52,6 +52,7 @@ + diff --git a/tests/ConsoleMode.Tests/LocalizationTests.cs b/tests/ConsoleMode.Tests/LocalizationTests.cs index 8e2f27f..8e1fe1b 100644 --- a/tests/ConsoleMode.Tests/LocalizationTests.cs +++ b/tests/ConsoleMode.Tests/LocalizationTests.cs @@ -42,6 +42,9 @@ public void Embedded_catalogs_support_en_us_and_pt_br_with_matching_keys() LocalizationService.SetLanguage("es-MX"); Assert.Equal(LocalizationService.SpanishSpain, LocalizationService.Language); Assert.Equal("¿Dónde vas a jugar?", LocalizationService.Get("HomeHeading")); + LocalizationService.SetLanguage("de-AT"); + Assert.Equal(LocalizationService.GermanGermany, LocalizationService.Language); + Assert.Equal("Wo möchtest du spielen?", LocalizationService.Get("HomeHeading")); LocalizationService.SetLanguage(LocalizationService.PortugueseBrazil); } @@ -132,7 +135,8 @@ public void App_language_config_is_empty_until_chosen_and_roundtrips() [InlineData("", "en-US", "pt-BR", "en-US")] // installer dialog next [InlineData(null, null, "en-GB", "en-US")] // then the Windows language [InlineData(null, null, "pt-PT", "pt-BR")] - [InlineData(null, null, "de-DE", "en-US")] // unknown languages read English + [InlineData(null, null, "fr-FR", "en-US")] // unknown languages read English + [InlineData(null, null, "de-CH", "de-DE")] [InlineData(null, null, "es-MX", "es-ES")] [InlineData("es-ES", null, "pt-BR", "es-ES")] [InlineData(null, null, null, "en-US")] From 9765278bba220840c9f6b023dad2e8f12841b889 Mon Sep 17 00:00:00 2001 From: Filipe Moreira Date: Sat, 17 Oct 2026 21:25:52 -0300 Subject: [PATCH 2/4] feat: add French and Russian translations New fr-FR and ru-RU catalogs (377 keys, placeholders checked against en-US), listed in the language picker, matched from any French or Russian Windows region, and offered by the installer. The installer script gets a UTF-8 BOM so Inno Setup reads the Cyrillic messages correctly. Co-Authored-By: Claude Opus 5.5 --- CHANGELOG.en-US.md | 2 +- CHANGELOG.md | 2 +- README.md | 2 +- README.pt-BR.md | 2 +- build/ConsoleMode.iss | 12 +- docs/TESTING.md | 2 + src/ConsoleMode/ConsoleMode.csproj | 2 + src/ConsoleMode/Resources/Strings.fr-FR.json | 379 ++++++++++++++++++ src/ConsoleMode/Resources/Strings.ru-RU.json | 379 ++++++++++++++++++ .../Services/LocalizationService.cs | 6 +- .../ConsoleMode.Tests.csproj | 2 + tests/ConsoleMode.Tests/LocalizationTests.cs | 6 +- 12 files changed, 788 insertions(+), 8 deletions(-) create mode 100644 src/ConsoleMode/Resources/Strings.fr-FR.json create mode 100644 src/ConsoleMode/Resources/Strings.ru-RU.json diff --git a/CHANGELOG.en-US.md b/CHANGELOG.en-US.md index 0d34a45..845fad8 100644 --- a/CHANGELOG.en-US.md +++ b/CHANGELOG.en-US.md @@ -5,7 +5,7 @@ English (US) release notes, mirroring CHANGELOG.md (Brazilian Portuguese). Befor ## [Unreleased] ### What's new -- German (Deutsch) interface, translated by a community member. With Windows in German the app opens in that language, and the installer offers it too. +- German (Deutsch) interface, translated by a community member, plus French (Français) and Russian (Русский). With Windows in one of these languages the app opens in it, and the installer offers them too. ## [1.6.1] ### What's new diff --git a/CHANGELOG.md b/CHANGELOG.md index 8a12c08..da87bfb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ Notas em português do Brasil; a versão em inglês (Estados Unidos) fica em `CH ## [Unreleased] ### Novidades -- Interface em alemão (Deutsch), traduzida por um usuário da comunidade. Quem usa o Windows em alemão já abre o app nesse idioma, e o instalador também oferece a opção. +- Interface em alemão (Deutsch), traduzida por um usuário da comunidade, e em francês (Français) e russo (Русский). Quem usa o Windows num desses idiomas já abre o app nele, e o instalador também oferece as opções. ## [1.6.1] ### Novidades diff --git a/README.md b/README.md index db569bb..31badc6 100644 --- a/README.md +++ b/README.md @@ -51,7 +51,7 @@ You pick the controller shortcuts yourself: none is on at first, the app asks th - **Session menu** over the game: switch or close the open windows, change volume, resolution, audio, FPS and HDR, hide the mouse pointer or drive it with the controller, and browse your files with [ControlFS](https://github.com/nextestudios/ControlFS) - Two interfaces: **Desktop** (mouse) and **Console** (full screen, Xbox and PlayStation pads, LB/RB tabs, your Steam covers as the background) - Automation with `consolemode://start` / `stop` / `menu` links (Stream Deck, scripts) and a [local control API](docs/GUIDE.md#local-control-api) -- English, Portuguese, Spanish and German +- English, Portuguese, Spanish, German, French and Russian ## What's new in 1.6.1 diff --git a/README.pt-BR.md b/README.pt-BR.md index 67ea6f4..5c0b844 100644 --- a/README.pt-BR.md +++ b/README.pt-BR.md @@ -51,7 +51,7 @@ Os atalhos do controle são você quem escolhe: nenhum vem ligado, o app pergunt - **Menu da sessão** sobre o jogo: troque ou feche as janelas abertas, mude volume, resolução, áudio, FPS e HDR, esconda o cursor do mouse ou mova-o com o controle e navegue pelos seus arquivos com o [ControlFS](https://github.com/nextestudios/ControlFS) - Duas interfaces: **Desktop** (mouse) e **Console** (tela cheia, controles Xbox e PlayStation, abas no LB/RB, as capas da sua Steam como plano de fundo) - Automação com os links `consolemode://start` / `stop` / `menu` (Stream Deck, scripts) e uma [API de controle local](docs/GUIDE.pt-BR.md#api-de-controle-local) -- Português, inglês, espanhol e alemão +- Português, inglês, espanhol, alemão, francês e russo ## Novidades da 1.6.1 diff --git a/build/ConsoleMode.iss b/build/ConsoleMode.iss index 4167d89..96e37a5 100644 --- a/build/ConsoleMode.iss +++ b/build/ConsoleMode.iss @@ -1,4 +1,4 @@ -; Console Mode — per-user installer (no admin). Built by build\Publish-ConsoleMode.ps1: +; Console Mode — per-user installer (no admin). Built by build\Publish-ConsoleMode.ps1: ; ISCC /DAppVersion=1.3.0 /DSourceDir= /DOutputDir= /DArch=x64 ConsoleMode.iss #ifndef AppVersion @@ -56,6 +56,8 @@ Name: "ptbr"; MessagesFile: "compiler:Languages\BrazilianPortuguese.isl" Name: "en"; MessagesFile: "compiler:Default.isl" Name: "es"; MessagesFile: "compiler:Languages\Spanish.isl" Name: "de"; MessagesFile: "compiler:Languages\German.isl" +Name: "fr"; MessagesFile: "compiler:Languages\French.isl" +Name: "ru"; MessagesFile: "compiler:Languages\Russian.isl" [CustomMessages] ptbr.OneClickShortcut=Atalho "Console Mode 1 Click" na Área de Trabalho (entra no modo console com 1 clique) @@ -70,6 +72,12 @@ es.LaunchApp=Abrir Console Mode de.OneClickShortcut=Desktop-Verknüpfung "Console Mode 1 Click" (startet den Konsolenmodus mit einem Klick) de.StartWithWindows=Mit Windows starten (läuft im Infobereich weiter) de.LaunchApp=Console Mode öffnen +fr.OneClickShortcut=Raccourci « Console Mode 1 Click » sur le Bureau (passe en mode console en un clic) +fr.StartWithWindows=Démarrer avec Windows (reste dans la zone de notification) +fr.LaunchApp=Ouvrir Console Mode +ru.OneClickShortcut=Ярлык «Console Mode 1 Click» на рабочем столе (режим консоли в один клик) +ru.StartWithWindows=Запускать вместе с Windows (в области уведомлений) +ru.LaunchApp=Открыть Console Mode [Tasks] Name: "oneclick"; Description: "{cm:OneClickShortcut}"; Flags: unchecked @@ -94,6 +102,8 @@ Root: HKCU; Subkey: "Software\ConsoleMode"; ValueType: string; ValueName: "Langu Root: HKCU; Subkey: "Software\ConsoleMode"; ValueType: string; ValueName: "Language"; ValueData: "en-US"; Languages: en; Flags: uninsdeletekeyifempty uninsdeletevalue Root: HKCU; Subkey: "Software\ConsoleMode"; ValueType: string; ValueName: "Language"; ValueData: "es-ES"; Languages: es; Flags: uninsdeletekeyifempty uninsdeletevalue Root: HKCU; Subkey: "Software\ConsoleMode"; ValueType: string; ValueName: "Language"; ValueData: "de-DE"; Languages: de; Flags: uninsdeletekeyifempty uninsdeletevalue +Root: HKCU; Subkey: "Software\ConsoleMode"; ValueType: string; ValueName: "Language"; ValueData: "fr-FR"; Languages: fr; Flags: uninsdeletekeyifempty uninsdeletevalue +Root: HKCU; Subkey: "Software\ConsoleMode"; ValueType: string; ValueName: "Language"; ValueData: "ru-RU"; Languages: ru; Flags: uninsdeletekeyifempty uninsdeletevalue ; consolemode://start|stop|show links (ProtocolService registers the same keys at startup). Root: HKCU; Subkey: "Software\Classes\consolemode"; ValueType: string; ValueData: "URL:Console Mode"; Flags: uninsdeletekey Root: HKCU; Subkey: "Software\Classes\consolemode"; ValueType: string; ValueName: "URL Protocol"; ValueData: "" diff --git a/docs/TESTING.md b/docs/TESTING.md index 47e0b1c..89ac306 100644 --- a/docs/TESTING.md +++ b/docs/TESTING.md @@ -244,6 +244,8 @@ Pré-condições: Ajustes → Interface = **Automático** (padrão). - [ ] Botão de controle no rodapé da Home desktop (ao lado do feedback) leva à interface Console e grava `"uiMode": "console"`. Resultado: ______ - [ ] Ajustes → Interface: as três opções funcionam e sobrevivem a fechar e abrir o app. Resultado: ______ - [ ] Trocar o idioma em Ajustes e voltar para Console: todos os textos, incluindo os cartões, trocam. Resultado: ______ +- [ ] Em alemão, francês e russo (textos mais longos), percorrer Home, Ajustes, menu da sessão e tutorial nas duas interfaces: nenhum botão, cartão ou linha do menu corta o texto ou sobrepõe outro elemento. Resultado: ______ +- [ ] Instalador em alemão, francês e russo: o diálogo de idioma lista os três, as opções de atalho e de iniciar com o Windows aparecem sem caracteres quebrados, e o app abre no idioma escolhido. Resultado: ______ ### Navegação por controle (Xbox **e** PlayStation; a janela precisa estar em primeiro plano) - [ ] **Interface Desktop:** D-pad move o foco entre tiles, o seletor de papel, os cards de Ajustes e os ComboBoxes; A abre um ComboBox, D-pad percorre, A escolhe, B fecha; Start abre e fecha Ajustes; Y vai para a interface Console; no tutorial, A avança e B pula. Resultado: ______ diff --git a/src/ConsoleMode/ConsoleMode.csproj b/src/ConsoleMode/ConsoleMode.csproj index 9a73a09..47917e0 100644 --- a/src/ConsoleMode/ConsoleMode.csproj +++ b/src/ConsoleMode/ConsoleMode.csproj @@ -44,6 +44,8 @@ + + diff --git a/src/ConsoleMode/Resources/Strings.fr-FR.json b/src/ConsoleMode/Resources/Strings.fr-FR.json new file mode 100644 index 0000000..ab858e3 --- /dev/null +++ b/src/ConsoleMode/Resources/Strings.fr-FR.json @@ -0,0 +1,379 @@ +{ + "Brand": "Console Mode", + "Back": "Retour", + "HomeHeading": "Où voulez-vous jouer ?", + "HomeDescription": "Sélectionnez un écran et choisissez son rôle. Les écrans que vous éteignez sont restaurés automatiquement quand vous quittez le jeu.", + "ReleaseNews": "Nouveautés", + "IgnoreUpdate": "Ignorer cette version", + "NoDisplays": "Aucun écran trouvé", + "TryAgain": "Réessayer", + "RefreshDisplaysTooltip": "Rechercher à nouveau les écrans", + "RefreshDisplaysName": "Actualiser les écrans", + "RoleQuestion": "Que doit faire cet écran ?", + "RolePlayHere": "Jouer ici", + "RoleTurnOff": "Éteindre", + "RoleKeepOn": "Laisser allumé", + "Settings": "Paramètres", + "SendFeedback": "Envoyer des commentaires", + "TourMapTitle": "1 sur 3 · Vos écrans", + "TourRoleTitle": "2 sur 3 · Le rôle de chaque écran", + "TourPlayTitle": "3 sur 3 · Un clic pour jouer", + "TourRoleDescription": "Avec un écran sélectionné, choisissez de jouer dessus, de l'éteindre pendant que vous jouez ou de le laisser allumé. Les écrans éteints sont restaurés quand vous quittez.", + "TourPlayDescription": "Vos écrans basculent et Big Picture s'ouvre sur la TV. La première fois, la TV vous demande de confirmer que vous voyez l'image ; sans réponse sous 15 s, tout est restauré. Fermez Big Picture pour quitter.", + "Next": "Suivant", + "SkipTour": "Passer le tutoriel", + "GotIt": "J'ai compris", + "CreateDesktopShortcut": "Créer un raccourci sur le Bureau", + "ActiveTitle": "Le mode console est actif", + "RestoreNow": "Restaurer maintenant", + "RunningInTray": "Vous pouvez fermer cette fenêtre ; Console Mode continuera de fonctionner dans la zone de notification.", + "SettingsTitle": "Paramètres", + "SettingsIntro": "Les modifications sont enregistrées automatiquement. Choisissez les écrans sur l'écran d'accueil.", + "GameScreenSection": "Écran de jeu", + "ResolutionRefreshCard": "Résolution et fréquence d'actualisation", + "HideOtherScreensCard": "Comment éteindre les autres écrans", + "HideOtherScreensDescription": "La déconnexion est la plus rapide. L'écran noir conserve la disposition ; DDC/CI éteint la dalle au niveau matériel.", + "EnteringConsoleSection": "À l'entrée en mode console", + "LaunchCard": "Ouvrir", + "AudioOutputCard": "Sortie audio", + "OptionalExtrasSection": "Options supplémentaires", + "HdrCard": "HDR sur l'écran de jeu", + "HdrDescription": "Activé à l'entrée et remis dans son état précédent à la sortie.", + "VrrCard": "Fréquence d'actualisation variable (VRR)", + "VrrDescription": "Active le paramètre Windows. Activez-le aussi dans le panneau de configuration NVIDIA/AMD.", + "FpsCard": "Limite de FPS", + "FpsPlaceholder": "FPS", + "AppSection": "Application", + "UiModeCard": "Interface", + "UiModeDescription": "Console : grandes cartes et navigation à la manette, en plein écran. Automatique choisit Console quand une manette est connectée.", + "BackgroundCard": "Arrière-plan", + "BackgroundDescription": "Jaquettes de vos jeux Steam installés sous un dégradé, le dégradé seul ou une image de votre choix.", + "BackgroundAuto": "Jaquettes Steam", + "BackgroundGradient": "Dégradé seul", + "BackgroundImage": "Mon image", + "BackgroundImageCard": "Choisir une image…", + "HomeSetupHeading": "Configuration actuelle", + "TabHome": "Accueil", + "TabSession": "Session", + "TabSystem": "Système", + "HintTabs": "Onglets", + "SoundsCard": "Sons de l'interface", + "SoundsDescription": "Sons discrets quand vous naviguez, sélectionnez et revenez en arrière dans l'interface console.", + "UiModeAuto": "Automatique", + "UiModeDesktop": "Bureau", + "UiModeConsole": "Console", + "SwitchToDesktop": "Mode Bureau", + "SwitchToConsole": "Mode console", + "ControllerHintDesktop": "Manette détectée · A pour naviguer, Y pour ouvrir le mode console", + "SessionMenuTitle": "Menu de session", + "BackToGame": "Retour au jeu", + "VolumeRow": "Volume", + "Muted": "Muet", + "SessionMenuHint": "Le raccourci du menu de session ouvre ce menu à tout moment.", + "SessionHintTitle": "Menu Console Mode", + "SessionHintBody": "Maintenez {0} pour ouvrir le panneau par-dessus le jeu.", + "ExitConsoleMode": "Quitter Console Mode", + "HintVolume": "Volume", + "SessionElapsed": "En jeu depuis {0}", + "SessionMenuCard": "Raccourci du menu de session", + "SessionMenuDescription": "Pendant une session, maintenez ce raccourci pour ouvrir un menu par-dessus le jeu : volume, résolution, audio, FPS, HDR, retour au PC ou quitter. Ne fonctionne pas sur les jeux en plein écran exclusif.", + "ConsoleScreensHeading": "Écrans", + "ConsoleQuickHeading": "Réglages rapides", + "FullSettings": "Tous les paramètres", + "HintSelect": "Sélectionner", + "HintChange": "Modifier", + "ConsoleSettingsHint": "Appuyez sur A sur une ligne pour modifier sa valeur. Tout est enregistré immédiatement.", + "BackToPc": "Retour au PC", + "CloseMenu": "Fermer le menu", + "ControlFsCard": "Explorateur de fichiers (ControlFS)", + "ControlFsOpen": "Parcourez vos fichiers à la manette", + "ControlFsMissing": "Non installé · appuyez pour télécharger et installer", + "ControlFsDownloading": "Téléchargement… {0} %", + "ControlFsInstalling": "Installation…", + "ControlFsInstallFailed": "Échec de l'installation · appuyez pour ouvrir la page de téléchargement", + "ControlFsInstalled": "Installé · appuyez pour ouvrir", + "ControlFsMissingNote": "ControlFS n'est pas installé. Ouverture de sa page de téléchargement dans le navigateur.", + "SessionWindowsCard": "Fenêtres", + "SessionWindowsCount": "{0} ouvertes", + "SwitcherEmpty": "Aucune fenêtre ouverte", + "SwitcherOpen": "Ouvrir", + "SwitcherCloseWindow": "Fermer la fenêtre", + "SwitcherCloseConfirmTitle": "Fermer cette fenêtre ?", + "SwitcherCloseConfirmBody": "S'il y a des modifications non enregistrées, l'application peut encore vous demander de les enregistrer.", + "SwitcherCloseConfirmAction": "Fermer la fenêtre", + "SessionPreviewBadge": "Aperçu · hors session", + "ConsoleActiveHint": "Ou maintenez {0} sur la manette pendant 1 seconde.", + "ChooseRoleFor": "Que fait l'écran {0} ?", + "HomeButtonCard": "Raccourci manette pour ouvrir Console Mode", + "HomeButtonDescription": "Avec l'application dans la zone de notification, maintenez ce raccourci pendant 1 seconde pour entrer en mode console (un simple appui si vous activez l'appui court ci-dessous). Fonctionne avec les manettes Xbox et PlayStation.", + "ExitShortcutCard": "Raccourci manette pour revenir au PC", + "ExitShortcutDescription": "Pendant une session, maintenez ce raccourci pendant 1 seconde pour restaurer votre bureau et revenir au PC.", + "ShortcutHome": "Ouvrir Console Mode", + "ControllerSection": "Manette", + "ControllerLayoutCard": "Disposition des boutons", + "ControllerLayoutDescription": "Automatique suit la manette connectée. Vous pouvez aussi imposer les symboles Xbox ou PlayStation.", + "ControllerLayoutAuto": "Automatique", + "ControllerLayoutXbox": "Xbox (A, B, X, Y)", + "ControllerLayoutPlaystation": "PlayStation (✕, ○, □, △)", + "ShortcutMenu": "Menu de session", + "ShortcutExit": "Retour au PC", + "ShortcutNotSet": "Non défini", + "ShortcutSet": "Définir", + "ShortcutChange": "Modifier", + "ShortcutClear": "Supprimer", + "ShortcutCancel": "Annuler", + "ShortcutPressButtons": "Maintenez les boutons, puis relâchez…", + "ShortcutCaptureHint": "Relâchez pour enregistrer. Appuyez sur {0} seul pour annuler.", + "ShortcutNotAllowed": "Utilisez au moins deux boutons ensemble (comme Select + Y), ou le bouton Home seul. Un bouton unique se déclencherait en pleine partie.", + "ShortcutInUse": "{0} est déjà le raccourci de \"{1}\". Choisissez une autre combinaison.", + "ShortcutsOnboardingTitle": "Configurez vos raccourcis manette", + "ShortcutsOnboardingBody": "Aucun raccourci n'est actif tant que vous ne l'avez pas choisi. Choisissez un bouton ou une combinaison pour chaque action, ou n'en mettez aucun. Appuyez sur Définir, maintenez les boutons et relâchez. Une même combinaison ne peut pas servir à deux actions. Vous pourrez tout modifier plus tard dans les Paramètres.", + "ShortcutsUseSuggested": "Utiliser les raccourcis suggérés", + "ShortcutsOnboardingDone": "Terminé", + "CloseSteamCard": "Réduire Steam dans la zone de notification au retour au PC", + "CloseSteamDescription": "Quand vous quittez Big Picture, Steam reçoit une demande normale de fermeture de fenêtre pour qu'il passe dans la zone de notification sans quitter le processus. Si un jeu est en cours ou si son état ne peut pas être vérifié, la fenêtre n'est pas modifiée.", + "HideCursorCard": "Masquer le pointeur de la souris", + "HideCursorDescription": "Reste masqué jusqu'à ce que vous désactiviez cette option ou reveniez au PC. Pratique pour les émulateurs et les jeux qui le laissent au milieu de l'écran.", + "ControllerMouseRow": "Contrôler la souris avec la manette", + "ControllerMouseHint": "Stick gauche : déplacer · {0} : clic · {0} deux fois : clic droit · stick droit : défiler", + "AutoStartControllerCard": "Entrer à la connexion d'une manette", + "AutoStartControllerDescription": "Avec l'application dans la zone de notification, allumer ou brancher une manette lance le mode console. Ignoré pendant les 15 s suivant l'ouverture et les 30 s suivant une restauration.", + "HomeButtonShortPressCard": "Appui court sur le bouton Xbox", + "HomeButtonShortPressDescription": "Un simple appui, sans maintenir. Désactive le raccourci manette de la Game Bar dans Windows (Win+G continue de fonctionner).", + "HomeButtonSteamHint": "Steam est ouvert et utilise aussi le bouton Xbox. Dans Steam, désactivez \"Le bouton Guide met Steam au premier plan\" pour que l'appui court fonctionne.", + "GameBarSettingError": "Impossible de modifier le paramètre de la Game Bar : {0}", + "StartupCard": "Démarrer avec Windows", + "StartupDescription": "S'ouvre dans la zone de notification au démarrage du PC, prêt pour le raccourci en un clic.", + "UpdatesCard": "Mises à jour", + "CheckNow": "Vérifier maintenant", + "NotifyUpdatesCard": "M'avertir quand une nouvelle version est disponible", + "NotifyUpdatesDescription": "Vérifie les versions publiées sur GitHub au démarrage de l'application.", + "BetaUpdatesCard": "Recevoir les versions de test (alpha et bêta)", + "BetaUpdatesDescription": "Recevez les versions en avant-première pour aider à les tester. Elles peuvent contenir des bugs. Désactiver cette option ne revient pas à la version stable : vous recevrez la prochaine version stable à sa sortie.", + "BetaUpdatesWarning": "Les versions de test peuvent échouer sur certaines configurations. En cas de problème, téléchargez la version stable sur la page des versions et signalez-le-nous avec le bouton de commentaires.", + "HelpDataSection": "Raccourci, aide et données", + "OtherAppsSection": "Autres applications du développeur", + "WakeOnDescription": "Automatisation avec Wake-on-LAN", + "NextBoostDescription": "Optimisation de Windows", + "TvConfirmationCard": "Confirmation sur la TV", + "TvConfirmationDescription": "La première fois que vous utilisez un nouvel écran de jeu, la TV vous demande de confirmer que vous voyez l'image. Répondez avec la souris, le clavier ou la manette (Xbox : A/B · PlayStation : ✕/○). Testez-la ici sans modifier vos écrans.", + "TestNow": "Tester maintenant", + "TvSection": "TV", + "TvControlCard": "Allumer la TV et changer d'entrée", + "TvProviderNone": "Ne pas la contrôler", + "TvProviderAndroid": "Google TV / Android TV (réseau)", + "TvNoneDescription": "Au lancement du mode console, l'application allume la TV et la bascule sur l'entrée du PC ; à la restauration, elle peut la mettre en veille.", + "TvAndroidDescription": "Par le réseau, rien à installer. Sur la TV : Paramètres → Système → Options pour les développeurs → activez \"Débogage USB\" (ou \"Débogage réseau\"). La première fois, acceptez \"Autoriser le débogage\" sur la TV.", + "TvHostCard": "Adresse de la TV", + "TvHostDescription": "L'adresse IP de la TV sur votre réseau (Paramètres → Réseau). Astuce : réservez-la dans votre routeur pour qu'elle ne change pas.", + "TvMacCard": "Adresse MAC (facultatif)", + "TvMacDescription": "Pour sortir la TV de la veille profonde (Wake-on-LAN). Laissez vide si la TV répond lorsqu'elle est éteinte.", + "TvHdmiCard": "Entrée du PC", + "TvHdmiDescription": "Le port HDMI de la TV auquel le PC est branché.", + "TvInputCommandCard": "Commande d'entrée (avancé)", + "TvInputCommandDescription": "Seulement si la TV ignore la touche HDMI : une commande shell Android qui bascule sur l'entrée du PC. Vide = la touche HDMI choisie ci-dessus.", + "TvTurnOffCard": "Mettre la TV en veille à la restauration", + "TvTurnOffDescription": "Une fois les écrans du bureau rétablis.", + "TvTestCard": "Tester la TV", + "TvTestDescription": "Allume la TV et bascule sur l'entrée du PC maintenant, sans toucher aux écrans. La première fois, l'appairage avec la TV est effectué.", + "TvTesting": "Communication avec la TV… Si elle le demande, acceptez sur l'écran de la TV.", + "TvTestSuccess": "La TV a répondu : elle devrait maintenant être allumée, sur l'entrée du PC.", + "TvTestFailure": "Impossible de communiquer avec la TV : {0}", + "TvTestTimedOut": "La TV n'a pas fini de répondre en 90 secondes. Réessayez.", + "TvNotConfigured": "Choisissez comment contrôler la TV.", + "TvHostMissing": "Saisissez l'adresse IP de la TV.", + "TvUnreachable": "La TV à l'adresse {0} n'a pas répondu. Vérifiez l'IP, que la TV est sur le même réseau et que le débogage est activé.", + "TvAdbNotAllowed": "La TV n'a pas autorisé ce PC. Appuyez à nouveau sur Tester et choisissez \"Toujours autoriser\" + \"Autoriser\" sur la TV.", + "TvAdbTlsUnsupported": "La TV n'accepte que le \"Débogage sans fil\" (association par code). Activez \"Débogage USB\" / \"Débogage réseau\" dans les Options pour les développeurs.", + "ControllerTestCard": "Tester la manette", + "ControllerTestDescription": "Affiche en direct ce que Windows reçoit de chaque manette : source, boutons par index, croix directionnelle et sticks. Utile quand une manette apparaît mais ne fait rien.", + "ControllerTestSteamHint": "Steam ouvert avec la prise en charge PlayStation capture la manette et l'application ne reçoit rien. Fermez Steam (ou désactivez la prise en charge PlayStation dans Steam Input) et testez à nouveau.", + "CopyDiagnostics": "Copier le diagnostic", + "ControllerDevicesHeading": "Appareils", + "ControllerSampleHeading": "Lecture en direct (appuyez sur des boutons)", + "DiagnosticsCopied": "Diagnostic copié. Collez-le dans le ticket ou le formulaire de commentaires.", + "TutorialCard": "Tutoriel", + "TutorialDescription": "Revoir la présentation de l'écran d'accueil.", + "SeeAgain": "Revoir", + "OneClickCard": "Raccourci en un clic", + "OneClickDescription": "Crée \"Console Mode 1 Click\" sur votre Bureau, à côté du raccourci habituel de l'application. Il entre directement en mode console sans ouvrir cette fenêtre.", + "CreateShortcut": "Créer le raccourci", + "DataFolderCard": "Dossier de données", + "DataFolderDescription": "Paramètres, sauvegarde des écrans et fichier journal (consolemode.log).", + "LanguageCard": "Langue", + "LanguageDescription": "Choisissez la langue de Console Mode.", + "ConfirmTitle": "Voyez-vous cet écran ?", + "ConfirmDescription": "Ceci est l'écran de jeu. Confirmez avec la souris, le clavier ou la manette. Sans réponse, vos écrans seront restaurés automatiquement.", + "Revert": "Annuler", + "Continue": "Oui, continuer", + "Countdown": "Retour à la normale dans {0} s", + "AudioHint": "Appliquée à l'entrée et restaurée à la sortie. \"À la connexion\" bascule automatiquement quand la TV apparaît.", + "StartEntering": "Démarrage…", + "StartNow": "Jouer", + "LaunchPlayniteDescription": "Ouvre Playnite en plein écran. Vos écrans sont restaurés automatiquement quand vous le fermez.", + "LaunchXboxDescription": "Expérimental : envoie Win+F11. Pour restaurer vos écrans, utilisez l'application ou le menu de la zone de notification.", + "LaunchSteamDescription": "Ouvre Steam Big Picture. Vos écrans sont restaurés automatiquement quand vous le fermez.", + "FocusChoose": "Choisissez un écran de jeu sur l'écran d'accueil.", + "FocusApplied": "Appliqué à {0} à l'entrée et annulé à la sortie.", + "StrategyDisconnect": "Déconnecter dans Windows", + "StrategyBlack": "Couvrir d'un écran noir", + "StrategyTurnOff": "Éteindre la dalle (DDC/CI)", + "LaunchSteam": "Steam Big Picture", + "LaunchPlaynite": "Playnite (plein écran)", + "PlaynitePathCard": "Dossier de Playnite", + "PlaynitePathChoose": "Choisir…", + "PlaynitePathClear": "Effacer", + "PlaynitePathDetected": "Trouvé automatiquement dans {0}. Choisissez Playnite.FullscreenApp.exe si vous utilisez la version portable.", + "PlaynitePathMissing": "Playnite introuvable. Choisissez Playnite.FullscreenApp.exe (version portable, par exemple).", + "PlaynitePathInvalid": "Playnite.FullscreenApp.exe introuvable dans {0}.", + "PlaynitePathPickError": "Impossible d'ouvrir le sélecteur de fichiers : {0}", + "LaunchXbox": "Mode Xbox (expérimental)", + "FpsOverlayCard": "Compteur de FPS", + "FpsOverlayExternal": "Afterburner (ne pas toucher)", + "FpsOverlayOff": "Désactivé (tout masquer)", + "FpsOverlayCustom": "Personnalisé", + "FpsOverlayDescription": "Affiche les FPS par-dessus le jeu pendant une session, via RTSS. Sauf sur \"Afterburner\", l'OSD de MSI Afterburner est masqué tant que le mode console est actif.", + "FpsOverlayItems": "Éléments du jeu", + "FpsOverlayShowApi": "API (D3D/Vulkan)", + "FpsOverlayShowFps": "FPS", + "FpsOverlayShowFrameTime": "Temps d'image (ms)", + "FpsOverlaySingleLine": "Tout sur une ligne", + "FpsOverlayColor": "Couleur des chiffres", + "FpsOverlayColorWhite": "Blanc", + "FpsOverlayColorBlue": "Bleu", + "FpsOverlayColorGreen": "Vert", + "FpsOverlayColorYellow": "Jaune", + "FpsOverlayColorOrange": "Orange", + "FpsOverlayCompact": "Compact", + "FpsOverlayCompactHint": "FPS, CPU, GPU et RAM", + "FpsOverlayDetailed": "Détaillé", + "FpsOverlayDetailedHint": "fréquences, température et mémoire", + "FpsOverlayFpsOnly": "FPS seulement", + "FpsOverlayPcItems": "Éléments du PC", + "FpsOverlayPcItemsDescription": "Lus depuis Windows et le pilote graphique, rien à installer. La température et la fréquence du GPU ne s'affichent que si le pilote les fournit.", + "FpsOverlayShowCpu": "Utilisation du CPU", + "FpsOverlayShowCpuClock": "Fréquence du CPU", + "FpsOverlayShowGpu": "Utilisation du GPU", + "FpsOverlayShowGpuClock": "Fréquence du GPU", + "FpsOverlayShowGpuTemp": "Température du GPU", + "FpsOverlayShowVram": "VRAM", + "FpsOverlayShowRam": "RAM", + "FpsOverlaySize": "Taille", + "FpsOverlaySizeSmall": "Petite", + "FpsOverlaySizeMedium": "Moyenne", + "FpsOverlaySizeLarge": "Grande", + "FpsOverlayStyle": "Style", + "FpsOverlayPosition": "Position", + "FpsOverlayPositionRtss": "Celle de RTSS", + "FpsOverlayPositionTopLeft": "Coin supérieur gauche", + "FpsOverlayPositionTopRight": "Coin supérieur droit", + "FpsOverlayPositionBottomLeft": "Coin inférieur gauche", + "FpsOverlayPositionBottomRight": "Coin inférieur droit", + "FpsOverlayCardBackground": "Fond de carte", + "FpsOverlayCardBackgroundDescription": "Une carte sombre aux coins arrondis derrière les chiffres, pour qu'ils restent lisibles sur n'importe quelle scène.", + "FpsNoLimit": "Aucune limite", + "FpsCustom": "Personnalisé", + "FpsAvailable": "S'applique à tous les jeux tant que le mode console est actif. Utilise RTSS.", + "FpsUnavailable": "Facultatif. Installez RivaTuner Statistics Server (RTSS) pour utiliser cette fonction.", + "NoGameDisplayConfigured": "Aucun écran de jeu n'est configuré ; impossible d'entrer en mode console.", + "NoDisplayTryRefresh": "Aucun écran trouvé. Essayez d'actualiser.", + "ListDisplaysError": "Impossible de lister les écrans : {0}", + "DisplayNoChange": "Ne pas modifier", + "AudioNoChange": "Ne pas modifier", + "AudioOnConnect": "Celle qui apparaît à la connexion (TV)", + "ShortcutCreated": "Raccourci \"Console Mode 1 Click\" créé sur le Bureau.", + "ShortcutCreateError": "Impossible de créer le raccourci : {0}", + "OpenFolderError": "Impossible d'ouvrir le dossier : {0}", + "ChooseGameScreen": "Choisissez l'écran sur lequel vous voulez jouer.", + "UnconfirmedSetup": "Vos écrans ont été restaurés car l'écran de jeu n'a pas été confirmé. Vérifiez votre sélection et réessayez.", + "StartFailure": "Impossible d'entrer en mode console : {0}", + "ControllerXbox": "Manette Xbox détectée", + "ControllerPlaystation": "Manette PlayStation détectée", + "ControllerOther": "Manette détectée", + "ControllerNone": "Aucune manette détectée", + "ConfirmationResult": "Test : {0} via {1} ({2}).", + "ConfirmationAccepted": "confirmé", + "ConfirmationWillRevert": "serait restauré", + "SourceController": "manette", + "SourceKeyboard": "clavier", + "SourceMouseKeyboard": "souris/clavier", + "SourceTimeout": "délai expiré", + "ListConjunction": " et ", + "ListSeparator": ", ", + "ShortcutName": "Console Mode 1 Click", + "ShortcutDescription": "Entre en mode console en un clic", + "ShortcutUnavailable": "WScript.Shell n'est pas disponible sur cette version de Windows.", + "UnknownExecutablePath": "Le chemin de l'exécutable est inconnu.", + "ProcessTimeout": "{0} a expiré : {1}", + "ProcessFailure": "{0} a échoué ({1}) : {2}", + "CachedModeSuffix": " (en cache)", + "EstimatedModeSuffix": " (estimé)", + "UpdateAssetMissing": "Cette version ne contient pas de fichier vérifiable pour ce type d'installation.", + "UpdateHashMismatch": "Le SHA-256 du fichier téléchargé ne correspond pas à l'empreinte publiée par GitHub.", + "TourMapGeneric": "Voici vos écrans, à leur position sur le Bureau. Sélectionnez l'écran sur lequel vous voulez jouer.", + "TourMapWithFocus": "Voici vos écrans, à leur position sur le Bureau. Nous avons choisi {0} car il est actuellement éteint ; sélectionnez-en un autre si vous préférez.", + "RestoreSuccess": "Vos écrans sont revenus à la normale.", + "RestoreFailure": "Impossible de restaurer les écrans : {0}", + "ConfigSaveFailure": "Impossible d'enregistrer les paramètres : {0}", + "SummaryChooseScreen": "Choisissez l'écran sur lequel vous voulez jouer", + "SummaryFocusOnly": "Jouer sur {0}", + "SummaryFocusAndHide": "Jouer sur {0} et éteindre {1}", + "SummaryAudio": "Audio : {0}", + "SummaryAudioOnConnect": "Audio à la connexion", + "SummaryFps": "{0} FPS", + "MonitorOff": "éteint", + "DisplayOffNow": "actuellement éteint", + "CurrentModeSuffix": " (actuel)", + "AudioDisabledSuffix": " [Désactivé]", + "AlreadyConsoleActive": "Le mode console est déjà actif.", + "GameScreenNotConfirmed": "L'écran de jeu n'a pas été confirmé.", + "GameScreenDidNotTurnOn": "L'écran de jeu ne s'est pas allumé. Vérifiez que la TV est allumée et sur la bonne entrée HDMI, puis réessayez.", + "ActivePlaynite": "Fermez Playnite pour restaurer automatiquement vos écrans.", + "ActiveXbox": "En mode Xbox, la restauration est manuelle : utilisez Restaurer maintenant ou le menu de la zone de notification.", + "ActiveSteam": "Fermez Big Picture pour restaurer automatiquement vos écrans.", + "InstallKindInstalled": "Version {0} · installée", + "InstallKindPortable": "Version {0} · portable", + "Download": "Télécharger", + "UpdateNow": "Mettre à jour", + "StartupSettingError": "Impossible de modifier le démarrage avec Windows : {0}", + "SearchingUpdates": "Recherche de mises à jour…", + "LatestVersionStatus": "{0} · à jour", + "AppUpToDate": "Console Mode est à jour.", + "UpdateAvailableStatus": "{0} · {1} disponible", + "UpdateAvailableTitle": "Console Mode {0} est disponible{1}", + "BetaSuffix": " (bêta)", + "NewVersionOnGithub": "Une nouvelle version est disponible sur GitHub.", + "UpdateCheckFailedStatus": "{0} · impossible de rechercher les mises à jour", + "UpdateSearchFailure": "Impossible de rechercher les mises à jour : {0}", + "ExitConsoleBeforeUpdate": "Quittez le mode console avant de mettre à jour.", + "UpdateFailure": "Impossible de mettre à jour : {0}", + "BrowserOpenFailure": "Impossible d'ouvrir le navigateur : {0}", + "ShowWindow": "Afficher la fenêtre", + "TrayEnterConsole": "Entrer en mode console", + "RestoreSetup": "Restaurer la configuration", + "Exit": "Quitter", + "ToggleOn": "Activé", + "ToggleOff": "Désactivé", + "SessionTourInviteTitle": "Première fois dans ce menu ?", + "SessionTourInviteBody": "Une visite rapide présente chaque option, y compris la différence entre Retour au PC et Quitter Console Mode. Pour la revoir plus tard, appuyez sur {0} ici dans le menu.", + "SessionTourStart": "Faire la visite", + "SessionTourNotNow": "Pas maintenant", + "SessionTourProgress": "{0} sur {1}", + "SessionTourHint": "Visite", + "SessionTourBackToGameBody": "Ferme ce menu et rend la manette au jeu, comme avant. {0} fait de même depuis n'importe où dans le menu.", + "SessionTourControlFsBody": "Ouvre ControlFS, un explorateur de fichiers conçu pour la manette, en plein écran. S'il n'est pas encore installé, le premier appui le télécharge et l'installe.", + "SessionTourVolumeBody": "Appuyez sur {0} pour régler le volume de la sortie audio : ◀ ▶ le modifient par paliers de 5, {1} le coupe, et {0} ou {2} terminent.", + "SessionTourDisplayTitle": "Image et son", + "SessionTourDisplayBody": "Résolution, fréquence d'actualisation, sortie audio et HDR de l'écran de jeu. Ce que vous modifiez ici ne vaut que pour cette session : de retour au PC, tout redevient comme avant.", + "SessionTourDisplayPreviewBody": "Résolution, fréquence d'actualisation, sortie audio et HDR de l'écran de jeu. Hors session, comme maintenant, ce que vous modifiez ici reste en place jusqu'à ce que vous le changiez à nouveau.", + "SessionTourFpsTitle": "FPS", + "SessionTourFpsBody": "La limite de FPS plafonne la fréquence d'images de vos jeux et le compteur affiche les FPS dans un coin de l'écran, tous deux via RivaTuner. De retour au PC, les deux sont annulés.", + "SessionTourWindowsBody": "Les programmes ouverts, comme un Alt + Tab toujours à l'écran. {0} met une fenêtre au premier plan ; {1} lui demande de se fermer, après confirmation.", + "SessionTourBackToPcBody": "Met fin à la session : écrans, résolution, HDR, audio et limite de FPS redeviennent comme avant, Big Picture se ferme et la TV s'éteint si vous l'avez configuré. Console Mode reste ouvert dans la zone de notification, prêt pour la prochaine fois.", + "SessionTourCloseMenuBody": "Hors session, il n'y a rien à restaurer : ce bouton ferme seulement le menu. Pendant une session, il devient Retour au PC et remet les écrans, l'audio et la résolution comme avant.", + "SessionTourExitBody": "Fait tout ce que fait Retour au PC et ferme aussi Console Mode : il quitte la zone de notification et les raccourcis manette ne fonctionnent plus jusqu'à ce que vous le rouvriez.", + "SessionTourExitPreviewBody": "Ferme complètement Console Mode : il quitte la zone de notification et les raccourcis manette ne fonctionnent plus jusqu'à ce que vous le rouvriez.", + "SessionTourCard": "Visite du menu de session", + "SessionTourDescription": "Explique chaque option du menu affiché par-dessus le jeu. Ouvre le menu en aperçu, sans lancer de session.", + "ShowTour": "Voir la visite" +} diff --git a/src/ConsoleMode/Resources/Strings.ru-RU.json b/src/ConsoleMode/Resources/Strings.ru-RU.json new file mode 100644 index 0000000..0e1a96f --- /dev/null +++ b/src/ConsoleMode/Resources/Strings.ru-RU.json @@ -0,0 +1,379 @@ +{ + "Brand": "Console Mode", + "Back": "Назад", + "HomeHeading": "Где вы хотите играть?", + "HomeDescription": "Выберите экран и укажите, что он делает. Выключенные экраны автоматически восстанавливаются, когда вы выходите из игры.", + "ReleaseNews": "Что нового", + "IgnoreUpdate": "Пропустить эту версию", + "NoDisplays": "Экраны не найдены", + "TryAgain": "Повторить", + "RefreshDisplaysTooltip": "Найти экраны заново", + "RefreshDisplaysName": "Обновить список экранов", + "RoleQuestion": "Что должен делать этот экран?", + "RolePlayHere": "Играть здесь", + "RoleTurnOff": "Выключить", + "RoleKeepOn": "Оставить включённым", + "Settings": "Параметры", + "SendFeedback": "Отправить отзыв", + "TourMapTitle": "1 из 3 · Ваши экраны", + "TourRoleTitle": "2 из 3 · Роль каждого экрана", + "TourPlayTitle": "3 из 3 · Игра в один клик", + "TourRoleDescription": "Выбрав экран, укажите: играть на нём, выключить его на время игры или оставить включённым. Выключенные экраны восстанавливаются при выходе.", + "TourPlayDescription": "Экраны переключаются, и на телевизоре открывается Big Picture. В первый раз телевизор попросит подтвердить, что изображение видно; если никто не ответит в течение 15 с, всё будет восстановлено. Чтобы выйти, закройте Big Picture.", + "Next": "Далее", + "SkipTour": "Пропустить обучение", + "GotIt": "Понятно", + "CreateDesktopShortcut": "Создать ярлык на рабочем столе", + "ActiveTitle": "Режим консоли включён", + "RestoreNow": "Восстановить сейчас", + "RunningInTray": "Это окно можно закрыть: Console Mode продолжит работать в области уведомлений.", + "SettingsTitle": "Параметры", + "SettingsIntro": "Изменения сохраняются автоматически. Экраны выбираются на главном экране.", + "GameScreenSection": "Игровой экран", + "ResolutionRefreshCard": "Разрешение и частота обновления", + "HideOtherScreensCard": "Как выключать другие экраны", + "HideOtherScreensDescription": "Отключение работает быстрее всего. Чёрный экран сохраняет расположение без изменений; DDC/CI выключает панель аппаратно.", + "EnteringConsoleSection": "При входе в режим консоли", + "LaunchCard": "Открыть", + "AudioOutputCard": "Аудиовыход", + "OptionalExtrasSection": "Дополнительно", + "HdrCard": "HDR на игровом экране", + "HdrDescription": "Включается при входе и возвращается в прежнее состояние при выходе.", + "VrrCard": "Переменная частота обновления (VRR)", + "VrrDescription": "Включает параметр Windows. Включите его также в панели управления NVIDIA/AMD.", + "FpsCard": "Ограничение FPS", + "FpsPlaceholder": "FPS", + "AppSection": "Приложение", + "UiModeCard": "Интерфейс", + "UiModeDescription": "Консоль: крупные карточки и управление геймпадом, во весь экран. «Автоматически» выбирает консоль, когда подключён геймпад.", + "BackgroundCard": "Фон", + "BackgroundDescription": "Обложки установленных игр Steam под градиентом, только градиент или ваше изображение.", + "BackgroundAuto": "Обложки Steam", + "BackgroundGradient": "Только градиент", + "BackgroundImage": "Моё изображение", + "BackgroundImageCard": "Выбрать изображение…", + "HomeSetupHeading": "Текущая конфигурация", + "TabHome": "Главная", + "TabSession": "Сеанс", + "TabSystem": "Система", + "HintTabs": "Вкладки", + "SoundsCard": "Звуки интерфейса", + "SoundsDescription": "Негромкие звуки при перемещении, выборе и возврате в интерфейсе консоли.", + "UiModeAuto": "Автоматически", + "UiModeDesktop": "Рабочий стол", + "UiModeConsole": "Консоль", + "SwitchToDesktop": "Режим рабочего стола", + "SwitchToConsole": "Режим консоли", + "ControllerHintDesktop": "Обнаружен геймпад · A — навигация, Y — режим консоли", + "SessionMenuTitle": "Меню сеанса", + "BackToGame": "Вернуться к игре", + "VolumeRow": "Громкость", + "Muted": "Звук выключен", + "SessionMenuHint": "Сочетание для меню сеанса открывает это меню в любой момент.", + "SessionHintTitle": "Меню Console Mode", + "SessionHintBody": "Удерживайте {0}, чтобы открыть панель поверх игры.", + "ExitConsoleMode": "Выйти из Console Mode", + "HintVolume": "Громкость", + "SessionElapsed": "В игре: {0}", + "SessionMenuCard": "Сочетание для меню сеанса", + "SessionMenuDescription": "Во время сеанса удерживайте это сочетание, чтобы открыть меню поверх игры: громкость, разрешение, звук, FPS, HDR, возврат к ПК или выход. Не работает поверх игр в монопольном полноэкранном режиме.", + "ConsoleScreensHeading": "Экраны", + "ConsoleQuickHeading": "Быстрые настройки", + "FullSettings": "Все параметры", + "HintSelect": "Выбрать", + "HintChange": "Изменить", + "ConsoleSettingsHint": "Нажмите A на строке, чтобы изменить значение. Всё сохраняется сразу.", + "BackToPc": "Вернуться к ПК", + "CloseMenu": "Закрыть меню", + "ControlFsCard": "Проводник (ControlFS)", + "ControlFsOpen": "Просмотр файлов с геймпада", + "ControlFsMissing": "Не установлен · нажмите, чтобы скачать и установить", + "ControlFsDownloading": "Загрузка… {0}%", + "ControlFsInstalling": "Установка…", + "ControlFsInstallFailed": "Не удалось установить · нажмите, чтобы открыть страницу загрузки", + "ControlFsInstalled": "Установлен · нажмите, чтобы открыть", + "ControlFsMissingNote": "ControlFS не установлен. Открываем страницу загрузки в браузере.", + "SessionWindowsCard": "Окна", + "SessionWindowsCount": "Открыто: {0}", + "SwitcherEmpty": "Нет открытых окон", + "SwitcherOpen": "Открыть", + "SwitcherCloseWindow": "Закрыть окно", + "SwitcherCloseConfirmTitle": "Закрыть это окно?", + "SwitcherCloseConfirmBody": "Если есть несохранённые изменения, приложение может предложить их сохранить.", + "SwitcherCloseConfirmAction": "Закрыть окно", + "SessionPreviewBadge": "Предпросмотр · вне сеанса", + "ConsoleActiveHint": "Или удерживайте {0} на геймпаде 1 секунду.", + "ChooseRoleFor": "Что делает экран {0}?", + "HomeButtonCard": "Сочетание на геймпаде для открытия Console Mode", + "HomeButtonDescription": "Когда приложение в области уведомлений, удерживайте это сочетание 1 секунду, чтобы войти в режим консоли (или просто нажмите, если включите короткое нажатие ниже). Работает с геймпадами Xbox и PlayStation.", + "ExitShortcutCard": "Сочетание на геймпаде для возврата к ПК", + "ExitShortcutDescription": "Во время сеанса удерживайте это сочетание 1 секунду, чтобы восстановить рабочее место и вернуться к ПК.", + "ShortcutHome": "Открыть Console Mode", + "ControllerSection": "Геймпад", + "ControllerLayoutCard": "Обозначения кнопок", + "ControllerLayoutDescription": "«Автоматически» — по подключённому геймпаду. Можно также закрепить символы Xbox или PlayStation.", + "ControllerLayoutAuto": "Автоматически", + "ControllerLayoutXbox": "Xbox (A, B, X, Y)", + "ControllerLayoutPlaystation": "PlayStation (✕, ○, □, △)", + "ShortcutMenu": "Меню сеанса", + "ShortcutExit": "Вернуться к ПК", + "ShortcutNotSet": "Не задано", + "ShortcutSet": "Задать", + "ShortcutChange": "Изменить", + "ShortcutClear": "Удалить", + "ShortcutCancel": "Отмена", + "ShortcutPressButtons": "Удерживайте кнопки, затем отпустите…", + "ShortcutCaptureHint": "Отпустите, чтобы сохранить. Нажмите только {0}, чтобы отменить.", + "ShortcutNotAllowed": "Используйте две или более кнопки одновременно (например, Select + Y) или одну кнопку Home. Одиночная кнопка срабатывала бы посреди игры.", + "ShortcutInUse": "{0} уже используется для действия «{1}». Выберите другое сочетание.", + "ShortcutsOnboardingTitle": "Настройте сочетания на геймпаде", + "ShortcutsOnboardingBody": "Пока вы не выберете сочетание, оно не работает. Выберите кнопку или комбинацию для каждого действия или оставьте его без сочетания. Нажмите «Задать», удерживайте кнопки и отпустите. Одно сочетание нельзя назначить двум действиям. Всё это можно изменить позже в параметрах.", + "ShortcutsUseSuggested": "Использовать предложенные сочетания", + "ShortcutsOnboardingDone": "Готово", + "CloseSteamCard": "Сворачивать Steam в область уведомлений при возврате к ПК", + "CloseSteamDescription": "Когда вы выходите из Big Picture, Steam получает обычный запрос на закрытие окна и может свернуться в область уведомлений, не завершая процесс. Если запущена игра или её состояние не удаётся проверить, окно не трогается.", + "HideCursorCard": "Скрыть указатель мыши", + "HideCursorDescription": "Остаётся скрытым, пока вы не выключите этот параметр или не вернётесь к ПК. Удобно для эмуляторов и игр, которые оставляют его посреди экрана.", + "ControllerMouseRow": "Управлять мышью с геймпада", + "ControllerMouseHint": "Левый стик — перемещение · {0} — щелчок · {0} дважды — правый щелчок · правый стик — прокрутка", + "AutoStartControllerCard": "Входить при подключении геймпада", + "AutoStartControllerDescription": "Когда приложение в области уведомлений, включение или подключение геймпада запускает режим консоли. Не срабатывает первые 15 с после запуска и 30 с после восстановления.", + "HomeButtonShortPressCard": "Короткое нажатие кнопки Xbox", + "HomeButtonShortPressDescription": "Достаточно нажать, удерживать не нужно. Отключает открытие Game Bar с геймпада в Windows (Win+G продолжает работать).", + "HomeButtonSteamHint": "Steam открыт и тоже использует кнопку Xbox. Чтобы короткое нажатие работало, отключите в Steam параметр «Кнопка Guide переключает на Steam».", + "GameBarSettingError": "Не удалось изменить параметр Game Bar: {0}", + "StartupCard": "Запускать вместе с Windows", + "StartupDescription": "При включении ПК открывается в области уведомлений и готово к запуску в один клик.", + "UpdatesCard": "Обновления", + "CheckNow": "Проверить", + "NotifyUpdatesCard": "Сообщать о выходе новой версии", + "NotifyUpdatesDescription": "Проверяет релизы на GitHub при запуске приложения.", + "BetaUpdatesCard": "Получать тестовые версии (альфа и бета)", + "BetaUpdatesDescription": "Получайте ранние версии раньше всех и помогайте их тестировать. В них могут быть ошибки. Если выключить этот параметр, возврата к стабильной версии не будет: вы получите следующую стабильную, когда она выйдет.", + "BetaUpdatesWarning": "Тестовые версии могут не работать на некоторых конфигурациях. Если что-то сломалось, скачайте стабильную версию со страницы релизов и сообщите нам через кнопку отзыва.", + "HelpDataSection": "Ярлык, справка и данные", + "OtherAppsSection": "Другие приложения разработчика", + "WakeOnDescription": "Автоматизация с Wake-on-LAN", + "NextBoostDescription": "Оптимизация Windows", + "TvConfirmationCard": "Подтверждение на телевизоре", + "TvConfirmationDescription": "При первом использовании нового игрового экрана телевизор просит подтвердить, что изображение видно. Ответьте мышью, клавиатурой или геймпадом (Xbox: A/B · PlayStation: ✕/○). Проверьте здесь, не меняя настройки экранов.", + "TestNow": "Проверить", + "TvSection": "Телевизор", + "TvControlCard": "Включать телевизор и переключать вход", + "TvProviderNone": "Не управлять", + "TvProviderAndroid": "Google TV / Android TV (по сети)", + "TvNoneDescription": "При запуске режима консоли приложение включает телевизор и переключает его на вход ПК; при восстановлении может перевести его в режим ожидания.", + "TvAndroidDescription": "По сети, ничего устанавливать не нужно. На телевизоре: «Настройки» → «Система» → «Для разработчиков» → включите «Отладка по USB» (или «Отладка по сети»). В первый раз примите запрос «Разрешить отладку» на телевизоре.", + "TvHostCard": "Адрес телевизора", + "TvHostDescription": "IP-адрес телевизора в вашей сети («Настройки» → «Сеть»). Совет: зарезервируйте его в роутере, чтобы он не менялся.", + "TvMacCard": "MAC-адрес (необязательно)", + "TvMacDescription": "Для пробуждения телевизора из глубокого режима ожидания (Wake-on-LAN). Оставьте пустым, если телевизор отвечает в выключенном состоянии.", + "TvHdmiCard": "Вход ПК", + "TvHdmiDescription": "Порт HDMI телевизора, к которому подключён ПК.", + "TvInputCommandCard": "Команда входа (дополнительно)", + "TvInputCommandDescription": "Только если телевизор игнорирует клавишу HDMI: команда оболочки Android, переключающая на вход ПК. Пусто — клавиша HDMI, выбранная выше.", + "TvTurnOffCard": "Переводить телевизор в режим ожидания при восстановлении", + "TvTurnOffDescription": "После того как экраны рабочего места вернутся.", + "TvTestCard": "Проверить телевизор", + "TvTestDescription": "Включает телевизор и сразу переключает на вход ПК, не трогая экраны. В первый раз выполняется сопряжение с телевизором.", + "TvTesting": "Связь с телевизором… Если появится запрос, примите его на экране телевизора.", + "TvTestSuccess": "Телевизор ответил: теперь он должен быть включён на входе ПК.", + "TvTestFailure": "Не удалось связаться с телевизором: {0}", + "TvTestTimedOut": "Телевизор не ответил за 90 секунд. Повторите попытку.", + "TvNotConfigured": "Выберите способ управления телевизором.", + "TvHostMissing": "Введите IP-адрес телевизора.", + "TvUnreachable": "Телевизор по адресу {0} не ответил. Проверьте IP-адрес, что телевизор в той же сети и что отладка включена.", + "TvAdbNotAllowed": "Телевизор не разрешил подключение этого ПК. Снова нажмите «Проверить» и выберите на телевизоре «Всегда разрешать» + «Разрешить».", + "TvAdbTlsUnsupported": "Телевизор принимает только «Беспроводную отладку» (сопряжение по коду). Включите «Отладка по USB» / «Отладка по сети» в разделе «Для разработчиков».", + "ControllerTestCard": "Проверка геймпада", + "ControllerTestDescription": "Показывает в реальном времени, что Windows получает от каждого геймпада: источник, кнопки по номерам, крестовину и стики. Используйте, если геймпад виден, но ничего не делает.", + "ControllerTestSteamHint": "Steam с включённой поддержкой PlayStation перехватывает геймпад, и приложение ничего не получает. Закройте Steam (или отключите поддержку PlayStation в Steam Input) и проверьте снова.", + "CopyDiagnostics": "Копировать диагностику", + "ControllerDevicesHeading": "Устройства", + "ControllerSampleHeading": "Данные в реальном времени (нажимайте кнопки)", + "DiagnosticsCopied": "Диагностика скопирована. Вставьте её в issue или форму отзыва.", + "TutorialCard": "Обучение", + "TutorialDescription": "Снова показать обзор главного экрана.", + "SeeAgain": "Показать снова", + "OneClickCard": "Ярлык «в один клик»", + "OneClickDescription": "Создаёт «Console Mode 1 Click» на рабочем столе рядом с обычным ярлыком приложения. Он сразу включает режим консоли, не открывая это окно.", + "CreateShortcut": "Создать ярлык", + "DataFolderCard": "Папка данных", + "DataFolderDescription": "Параметры, резервная копия экранов и файл журнала (consolemode.log).", + "LanguageCard": "Язык", + "LanguageDescription": "Выберите язык Console Mode.", + "ConfirmTitle": "Вы видите этот экран?", + "ConfirmDescription": "Это игровой экран. Подтвердите мышью, клавиатурой или геймпадом. Если никто не ответит, экраны будут восстановлены автоматически.", + "Revert": "Отменить", + "Continue": "Да, продолжить", + "Countdown": "Возврат к обычному режиму через {0} с", + "AudioHint": "Применяется при входе и восстанавливается при выходе. «При подключении» переключает автоматически, когда появляется телевизор.", + "StartEntering": "Запуск…", + "StartNow": "Играть", + "LaunchPlayniteDescription": "Открывает Playnite в полноэкранном режиме. Экраны восстанавливаются автоматически, когда вы его закроете.", + "LaunchXboxDescription": "Экспериментально: отправляет Win+F11. Чтобы восстановить экраны, используйте приложение или меню в области уведомлений.", + "LaunchSteamDescription": "Открывает Steam Big Picture. Экраны восстанавливаются автоматически, когда вы его закроете.", + "FocusChoose": "Выберите игровой экран на главном экране.", + "FocusApplied": "Для {0}: применяется при входе и отменяется при выходе.", + "StrategyDisconnect": "Отключить в Windows", + "StrategyBlack": "Закрыть чёрным экраном", + "StrategyTurnOff": "Выключить панель (DDC/CI)", + "LaunchSteam": "Steam Big Picture", + "LaunchPlaynite": "Playnite (полноэкранный)", + "PlaynitePathCard": "Папка Playnite", + "PlaynitePathChoose": "Выбрать…", + "PlaynitePathClear": "Очистить", + "PlaynitePathDetected": "Найдено автоматически: {0}. Если у вас портативная версия, укажите Playnite.FullscreenApp.exe.", + "PlaynitePathMissing": "Playnite не найден. Укажите Playnite.FullscreenApp.exe (например, для портативной версии).", + "PlaynitePathInvalid": "Не удалось найти Playnite.FullscreenApp.exe в {0}.", + "PlaynitePathPickError": "Не удалось открыть окно выбора файла: {0}", + "LaunchXbox": "Режим Xbox (экспериментально)", + "FpsOverlayCard": "Счётчик FPS", + "FpsOverlayExternal": "Afterburner (не менять)", + "FpsOverlayOff": "Выкл. (скрыть всё)", + "FpsOverlayCustom": "Настраиваемый", + "FpsOverlayDescription": "Показывает FPS поверх игры во время сеанса с помощью RTSS. Кроме варианта «Afterburner», OSD MSI Afterburner скрывается, пока включён режим консоли.", + "FpsOverlayItems": "Данные игры", + "FpsOverlayShowApi": "API (D3D/Vulkan)", + "FpsOverlayShowFps": "FPS", + "FpsOverlayShowFrameTime": "Время кадра (мс)", + "FpsOverlaySingleLine": "Всё в одну строку", + "FpsOverlayColor": "Цвет чисел", + "FpsOverlayColorWhite": "Белый", + "FpsOverlayColorBlue": "Синий", + "FpsOverlayColorGreen": "Зелёный", + "FpsOverlayColorYellow": "Жёлтый", + "FpsOverlayColorOrange": "Оранжевый", + "FpsOverlayCompact": "Компактный", + "FpsOverlayCompactHint": "FPS, ЦП, ГП и ОЗУ", + "FpsOverlayDetailed": "Подробный", + "FpsOverlayDetailedHint": "частоты, температура и память", + "FpsOverlayFpsOnly": "Только FPS", + "FpsOverlayPcItems": "Данные ПК", + "FpsOverlayPcItemsDescription": "Берутся из Windows и графического драйвера, ничего устанавливать не нужно. Температура и частота ГП отображаются, только если драйвер их сообщает.", + "FpsOverlayShowCpu": "Загрузка ЦП", + "FpsOverlayShowCpuClock": "Частота ЦП", + "FpsOverlayShowGpu": "Загрузка ГП", + "FpsOverlayShowGpuClock": "Частота ГП", + "FpsOverlayShowGpuTemp": "Температура ГП", + "FpsOverlayShowVram": "VRAM", + "FpsOverlayShowRam": "ОЗУ", + "FpsOverlaySize": "Размер", + "FpsOverlaySizeSmall": "Маленький", + "FpsOverlaySizeMedium": "Средний", + "FpsOverlaySizeLarge": "Большой", + "FpsOverlayStyle": "Стиль", + "FpsOverlayPosition": "Положение", + "FpsOverlayPositionRtss": "Как в RTSS", + "FpsOverlayPositionTopLeft": "Левый верхний угол", + "FpsOverlayPositionTopRight": "Правый верхний угол", + "FpsOverlayPositionBottomLeft": "Левый нижний угол", + "FpsOverlayPositionBottomRight": "Правый нижний угол", + "FpsOverlayCardBackground": "Фон карточки", + "FpsOverlayCardBackgroundDescription": "Тёмная скруглённая карточка под числами, чтобы их было хорошо видно в любой сцене.", + "FpsNoLimit": "Без ограничения", + "FpsCustom": "Своё значение", + "FpsAvailable": "Применяется ко всем играм, пока включён режим консоли. Использует RTSS.", + "FpsUnavailable": "Необязательно. Чтобы использовать эту функцию, установите RivaTuner Statistics Server (RTSS).", + "NoGameDisplayConfigured": "Игровой экран не настроен, войти в режим консоли невозможно.", + "NoDisplayTryRefresh": "Экраны не найдены. Попробуйте обновить список.", + "ListDisplaysError": "Не удалось получить список экранов: {0}", + "DisplayNoChange": "Не менять", + "AudioNoChange": "Не менять", + "AudioOnConnect": "Появившийся при подключении (телевизор)", + "ShortcutCreated": "Ярлык «Console Mode 1 Click» создан на рабочем столе.", + "ShortcutCreateError": "Не удалось создать ярлык: {0}", + "OpenFolderError": "Не удалось открыть папку: {0}", + "ChooseGameScreen": "Выберите экран, на котором хотите играть.", + "UnconfirmedSetup": "Экраны восстановлены, так как игровой экран не был подтверждён. Проверьте выбор и повторите попытку.", + "StartFailure": "Не удалось войти в режим консоли: {0}", + "ControllerXbox": "Обнаружен геймпад Xbox", + "ControllerPlaystation": "Обнаружен геймпад PlayStation", + "ControllerOther": "Обнаружен геймпад", + "ControllerNone": "Геймпад не обнаружен", + "ConfirmationResult": "Проверка: {0} ({1}, {2}).", + "ConfirmationAccepted": "подтверждено", + "ConfirmationWillRevert": "экраны были бы восстановлены", + "SourceController": "геймпад", + "SourceKeyboard": "клавиатура", + "SourceMouseKeyboard": "мышь/клавиатура", + "SourceTimeout": "время истекло", + "ListConjunction": " и ", + "ListSeparator": ", ", + "ShortcutName": "Console Mode 1 Click", + "ShortcutDescription": "Включает режим консоли в один клик", + "ShortcutUnavailable": "WScript.Shell недоступен в этой версии Windows.", + "UnknownExecutablePath": "Путь к исполняемому файлу неизвестен.", + "ProcessTimeout": "{0}: превышено время ожидания ({1})", + "ProcessFailure": "{0}: ошибка ({1}): {2}", + "CachedModeSuffix": " (из кэша)", + "EstimatedModeSuffix": " (примерно)", + "UpdateAssetMissing": "В этом релизе нет проверяемого файла для этого типа установки.", + "UpdateHashMismatch": "SHA-256 скачанного файла не совпадает с хешем, опубликованным на GitHub.", + "TourMapGeneric": "Это ваши экраны в том порядке, как они расположены на рабочем столе. Выберите экран, на котором хотите играть.", + "TourMapWithFocus": "Это ваши экраны в том порядке, как они расположены на рабочем столе. Мы выбрали {0}, так как он сейчас выключен; если хотите, выберите другой.", + "RestoreSuccess": "Экраны вернулись в обычный режим.", + "RestoreFailure": "Не удалось восстановить экраны: {0}", + "ConfigSaveFailure": "Не удалось сохранить параметры: {0}", + "SummaryChooseScreen": "Выберите экран, на котором хотите играть", + "SummaryFocusOnly": "Играть на {0}", + "SummaryFocusAndHide": "Играть на {0}, выключить {1}", + "SummaryAudio": "Звук: {0}", + "SummaryAudioOnConnect": "Звук при подключении", + "SummaryFps": "{0} FPS", + "MonitorOff": "выкл.", + "DisplayOffNow": "сейчас выключен", + "CurrentModeSuffix": " (текущий)", + "AudioDisabledSuffix": " [Отключено]", + "AlreadyConsoleActive": "Режим консоли уже включён.", + "GameScreenNotConfirmed": "Игровой экран не был подтверждён.", + "GameScreenDidNotTurnOn": "Игровой экран не включился. Убедитесь, что телевизор включён и выбран нужный вход HDMI, и повторите попытку.", + "ActivePlaynite": "Закройте Playnite, чтобы экраны восстановились автоматически.", + "ActiveXbox": "В режиме Xbox восстановление выполняется вручную: нажмите «Восстановить сейчас» или используйте меню в области уведомлений.", + "ActiveSteam": "Закройте Big Picture, чтобы экраны восстановились автоматически.", + "InstallKindInstalled": "Версия {0} · установленная", + "InstallKindPortable": "Версия {0} · портативная", + "Download": "Скачать", + "UpdateNow": "Обновить", + "StartupSettingError": "Не удалось изменить параметр автозапуска Windows: {0}", + "SearchingUpdates": "Проверка обновлений…", + "LatestVersionStatus": "{0} · установлена последняя версия", + "AppUpToDate": "У вас последняя версия Console Mode.", + "UpdateAvailableStatus": "{0} · доступна версия {1}", + "UpdateAvailableTitle": "Доступна версия Console Mode {0}{1}", + "BetaSuffix": " (бета)", + "NewVersionOnGithub": "На GitHub доступна новая версия.", + "UpdateCheckFailedStatus": "{0} · не удалось проверить обновления", + "UpdateSearchFailure": "Не удалось проверить обновления: {0}", + "ExitConsoleBeforeUpdate": "Перед обновлением выйдите из режима консоли.", + "UpdateFailure": "Не удалось обновить: {0}", + "BrowserOpenFailure": "Не удалось открыть браузер: {0}", + "ShowWindow": "Показать окно", + "TrayEnterConsole": "Войти в режим консоли", + "RestoreSetup": "Восстановить конфигурацию", + "Exit": "Выход", + "ToggleOn": "Вкл.", + "ToggleOff": "Выкл.", + "SessionTourInviteTitle": "Впервые в этом меню?", + "SessionTourInviteBody": "Короткий обзор покажет, что делает каждый пункт, в том числе чем «Вернуться к ПК» отличается от «Выйти из Console Mode». Чтобы посмотреть его позже, нажмите {0} в этом меню.", + "SessionTourStart": "Начать обзор", + "SessionTourNotNow": "Не сейчас", + "SessionTourProgress": "{0} из {1}", + "SessionTourHint": "Обзор", + "SessionTourBackToGameBody": "Закрывает это меню и возвращает геймпад игре в том же состоянии. {0} делает то же самое из любого места меню.", + "SessionTourControlFsBody": "Открывает ControlFS — проводник для управления геймпадом — во весь экран. Если он ещё не установлен, первое нажатие скачает и установит его.", + "SessionTourVolumeBody": "Нажмите {0}, чтобы настроить громкость аудиовыхода: ◀ ▶ меняют её с шагом 5, {1} выключает звук, а {0} или {2} завершают настройку.", + "SessionTourDisplayTitle": "Экран и звук", + "SessionTourDisplayBody": "Разрешение, частота обновления, аудиовыход и HDR игрового экрана. Изменения действуют только в этом сеансе: при возврате к ПК всё станет как было.", + "SessionTourDisplayPreviewBody": "Разрешение, частота обновления, аудиовыход и HDR игрового экрана. Вне сеанса, как сейчас, изменения сохраняются, пока вы не измените их снова.", + "SessionTourFpsTitle": "FPS", + "SessionTourFpsBody": "Ограничение FPS ограничивает частоту кадров в играх, а счётчик показывает FPS в углу экрана — оба работают через RivaTuner. При возврате к ПК оба отключаются.", + "SessionTourWindowsBody": "Открытые программы — как Alt + Tab, который всегда на экране. {0} выводит окно на передний план; {1} просит его закрыться после вашего подтверждения.", + "SessionTourBackToPcBody": "Завершает сеанс: экраны, разрешение, HDR, звук и ограничение FPS возвращаются к прежним значениям, Big Picture закрывается, а телевизор выключается, если вы это настроили. Console Mode остаётся открытым в области уведомлений и готов к следующему разу.", + "SessionTourCloseMenuBody": "Вне сеанса восстанавливать нечего, поэтому эта кнопка только закрывает меню. Во время сеанса она становится кнопкой «Вернуться к ПК» и возвращает экраны, звук и разрешение как было.", + "SessionTourExitBody": "Делает всё то же, что и «Вернуться к ПК», и вдобавок закрывает Console Mode: он исчезает из области уведомлений, а сочетания на геймпаде перестают работать, пока вы снова его не откроете.", + "SessionTourExitPreviewBody": "Полностью закрывает Console Mode: он исчезает из области уведомлений, а сочетания на геймпаде перестают работать, пока вы снова его не откроете.", + "SessionTourCard": "Обзор меню сеанса", + "SessionTourDescription": "Объясняет каждый пункт меню поверх игры. Открывает меню в режиме предпросмотра, не начиная сеанс.", + "ShowTour": "Показать обзор" +} diff --git a/src/ConsoleMode/Services/LocalizationService.cs b/src/ConsoleMode/Services/LocalizationService.cs index cffd23c..2a69c31 100644 --- a/src/ConsoleMode/Services/LocalizationService.cs +++ b/src/ConsoleMode/Services/LocalizationService.cs @@ -12,6 +12,8 @@ public static class LocalizationService public const string EnglishUnitedStates = "en-US"; public const string SpanishSpain = "es-ES"; public const string GermanGermany = "de-DE"; + public const string FrenchFrance = "fr-FR"; + public const string RussianRussia = "ru-RU"; /// A UI language: its culture code and how it names itself in the language picker. public sealed record LanguageInfo(string Code, string NativeName); @@ -26,7 +28,9 @@ public sealed record LanguageInfo(string Code, string NativeName); new(PortugueseBrazil, "Português (Brasil)"), new(EnglishUnitedStates, "English (United States)"), new(SpanishSpain, "Español"), - new(GermanGermany, "Deutsch") + new(GermanGermany, "Deutsch"), + new(FrenchFrance, "Français"), + new(RussianRussia, "Русский") ]; private static readonly IReadOnlyDictionary> Catalogs = diff --git a/tests/ConsoleMode.Tests/ConsoleMode.Tests.csproj b/tests/ConsoleMode.Tests/ConsoleMode.Tests.csproj index d2b6300..30b9532 100644 --- a/tests/ConsoleMode.Tests/ConsoleMode.Tests.csproj +++ b/tests/ConsoleMode.Tests/ConsoleMode.Tests.csproj @@ -53,6 +53,8 @@ + + diff --git a/tests/ConsoleMode.Tests/LocalizationTests.cs b/tests/ConsoleMode.Tests/LocalizationTests.cs index 8e1fe1b..d81c42f 100644 --- a/tests/ConsoleMode.Tests/LocalizationTests.cs +++ b/tests/ConsoleMode.Tests/LocalizationTests.cs @@ -37,7 +37,7 @@ public void Embedded_catalogs_support_en_us_and_pt_br_with_matching_keys() } // Unknown languages read English; a known language in another region maps to its catalog. - LocalizationService.SetLanguage("fr-FR"); + LocalizationService.SetLanguage("ja-JP"); Assert.Equal(LocalizationService.EnglishUnitedStates, LocalizationService.Language); LocalizationService.SetLanguage("es-MX"); Assert.Equal(LocalizationService.SpanishSpain, LocalizationService.Language); @@ -135,8 +135,10 @@ public void App_language_config_is_empty_until_chosen_and_roundtrips() [InlineData("", "en-US", "pt-BR", "en-US")] // installer dialog next [InlineData(null, null, "en-GB", "en-US")] // then the Windows language [InlineData(null, null, "pt-PT", "pt-BR")] - [InlineData(null, null, "fr-FR", "en-US")] // unknown languages read English + [InlineData(null, null, "ja-JP", "en-US")] // unknown languages read English [InlineData(null, null, "de-CH", "de-DE")] + [InlineData(null, null, "fr-CA", "fr-FR")] + [InlineData(null, null, "ru-KZ", "ru-RU")] [InlineData(null, null, "es-MX", "es-ES")] [InlineData("es-ES", null, "pt-BR", "es-ES")] [InlineData(null, null, null, "en-US")] From 96d50498bcc74c3a0ab699358e508ef48f77c1aa Mon Sep 17 00:00:00 2001 From: Filipe Moreira Date: Sat, 17 Oct 2026 22:19:38 -0300 Subject: [PATCH 3/4] docs: add PR number to the translations changelog entry Co-Authored-By: Claude Opus 5.5 --- CHANGELOG.en-US.md | 2 +- CHANGELOG.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.en-US.md b/CHANGELOG.en-US.md index 845fad8..9ff0e4a 100644 --- a/CHANGELOG.en-US.md +++ b/CHANGELOG.en-US.md @@ -5,7 +5,7 @@ English (US) release notes, mirroring CHANGELOG.md (Brazilian Portuguese). Befor ## [Unreleased] ### What's new -- German (Deutsch) interface, translated by a community member, plus French (Français) and Russian (Русский). With Windows in one of these languages the app opens in it, and the installer offers them too. +- German (Deutsch) interface, translated by a community member, plus French (Français) and Russian (Русский). With Windows in one of these languages the app opens in it, and the installer offers them too. (#151) ## [1.6.1] ### What's new diff --git a/CHANGELOG.md b/CHANGELOG.md index da87bfb..579a340 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ Notas em português do Brasil; a versão em inglês (Estados Unidos) fica em `CH ## [Unreleased] ### Novidades -- Interface em alemão (Deutsch), traduzida por um usuário da comunidade, e em francês (Français) e russo (Русский). Quem usa o Windows num desses idiomas já abre o app nele, e o instalador também oferece as opções. +- Interface em alemão (Deutsch), traduzida por um usuário da comunidade, e em francês (Français) e russo (Русский). Quem usa o Windows num desses idiomas já abre o app nele, e o instalador também oferece as opções. (#151) ## [1.6.1] ### Novidades From 0f1cc702fad09ff0c83d1febcd5038605333523b Mon Sep 17 00:00:00 2001 From: Filipe Moreira Date: Sat, 17 Oct 2026 22:26:19 -0300 Subject: [PATCH 4/4] fix: translate the minimize-to-tray strings into German, French and Russian Co-Authored-By: Claude Opus 5.5 --- CHANGELOG.en-US.md | 2 -- CHANGELOG.md | 2 -- src/ConsoleMode/Resources/Strings.de-DE.json | 2 ++ src/ConsoleMode/Resources/Strings.fr-FR.json | 2 ++ src/ConsoleMode/Resources/Strings.ru-RU.json | 2 ++ 5 files changed, 6 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.en-US.md b/CHANGELOG.en-US.md index e9cfde8..efb22c9 100644 --- a/CHANGELOG.en-US.md +++ b/CHANGELOG.en-US.md @@ -5,8 +5,6 @@ English (US) release notes, mirroring CHANGELOG.md (Brazilian Portuguese). Befor ## [Unreleased] ### What's new - Minimize to the system tray: with the new option in Settings (also in the Console interface, under System), minimizing the window takes Console Mode off the taskbar and leaves just its icon in the hidden icons; one click on the icon opens it again. Off by default. (#150) - -### What's new - German (Deutsch) interface, translated by a community member, plus French (Français) and Russian (Русский). With Windows in one of these languages the app opens in it, and the installer offers them too. (#151) ## [1.6.1] diff --git a/CHANGELOG.md b/CHANGELOG.md index 33b46e0..2c8befc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,8 +5,6 @@ Notas em português do Brasil; a versão em inglês (Estados Unidos) fica em `CH ## [Unreleased] ### Novidades - Minimizar para a bandeja: com a nova opção em Ajustes (também na interface Console, em Sistema), minimizar a janela tira o Console Mode da barra de tarefas e deixa só o ícone nos ícones ocultos; um clique no ícone abre de novo. Vem desligada. (#150) - -### Novidades - Interface em alemão (Deutsch), traduzida por um usuário da comunidade, e em francês (Français) e russo (Русский). Quem usa o Windows num desses idiomas já abre o app nele, e o instalador também oferece as opções. (#151) ## [1.6.1] diff --git a/src/ConsoleMode/Resources/Strings.de-DE.json b/src/ConsoleMode/Resources/Strings.de-DE.json index 23ff7fe..269c47c 100644 --- a/src/ConsoleMode/Resources/Strings.de-DE.json +++ b/src/ConsoleMode/Resources/Strings.de-DE.json @@ -144,6 +144,8 @@ "GameBarSettingError": "Die Game-Bar-Einstellung konnte nicht geändert werden: {0}", "StartupCard": "Mit Windows starten", "StartupDescription": "Wird beim Start des PCs im Infobereich geöffnet und ist bereit für die Verknüpfung mit einem Klick.", + "MinimizeToTrayCard": "In den Infobereich minimieren", + "MinimizeToTrayDescription": "Beim Minimieren verschwindet das Fenster aus der Taskleiste und Console Mode bleibt bei den ausgeblendeten Symbolen. Klicke auf das Symbol, um es wieder zu öffnen.", "UpdatesCard": "Updates", "CheckNow": "Jetzt suchen", "NotifyUpdatesCard": "Bei einer neuen Version benachrichtigen", diff --git a/src/ConsoleMode/Resources/Strings.fr-FR.json b/src/ConsoleMode/Resources/Strings.fr-FR.json index ab858e3..58d933a 100644 --- a/src/ConsoleMode/Resources/Strings.fr-FR.json +++ b/src/ConsoleMode/Resources/Strings.fr-FR.json @@ -144,6 +144,8 @@ "GameBarSettingError": "Impossible de modifier le paramètre de la Game Bar : {0}", "StartupCard": "Démarrer avec Windows", "StartupDescription": "S'ouvre dans la zone de notification au démarrage du PC, prêt pour le raccourci en un clic.", + "MinimizeToTrayCard": "Réduire dans la zone de notification", + "MinimizeToTrayDescription": "La réduction retire la fenêtre de la barre des tâches et garde Console Mode dans les icônes cachées. Cliquez sur l'icône pour la rouvrir.", "UpdatesCard": "Mises à jour", "CheckNow": "Vérifier maintenant", "NotifyUpdatesCard": "M'avertir quand une nouvelle version est disponible", diff --git a/src/ConsoleMode/Resources/Strings.ru-RU.json b/src/ConsoleMode/Resources/Strings.ru-RU.json index 0e1a96f..7ae3f75 100644 --- a/src/ConsoleMode/Resources/Strings.ru-RU.json +++ b/src/ConsoleMode/Resources/Strings.ru-RU.json @@ -144,6 +144,8 @@ "GameBarSettingError": "Не удалось изменить параметр Game Bar: {0}", "StartupCard": "Запускать вместе с Windows", "StartupDescription": "При включении ПК открывается в области уведомлений и готово к запуску в один клик.", + "MinimizeToTrayCard": "Сворачивать в область уведомлений", + "MinimizeToTrayDescription": "При сворачивании окно исчезает с панели задач, а Console Mode остаётся среди скрытых значков. Нажмите на значок, чтобы открыть его снова.", "UpdatesCard": "Обновления", "CheckNow": "Проверить", "NotifyUpdatesCard": "Сообщать о выходе новой версии",