From dba9f540213a936a8ebb22ba2a94fb5d6b20c861 Mon Sep 17 00:00:00 2001 From: Beena Chauhan Date: Tue, 14 Jul 2026 16:03:52 -0700 Subject: [PATCH 01/14] Add --ip, --link, --link-local-ip, --driver-opt, --network-alias to wslc network connect --- localization/strings/cs-CZ/Resources.resw | 103 +----- localization/strings/da-DK/Resources.resw | 103 +----- localization/strings/de-DE/Resources.resw | 109 +------ localization/strings/en-GB/Resources.resw | 101 ------ localization/strings/en-US/Resources.resw | 37 ++- localization/strings/es-ES/Resources.resw | 103 +----- localization/strings/fi-FI/Resources.resw | 103 +----- localization/strings/fr-FR/Resources.resw | 103 +----- localization/strings/hu-HU/Resources.resw | 103 +----- localization/strings/it-IT/Resources.resw | 103 +----- localization/strings/ja-JP/Resources.resw | 101 ------ localization/strings/ko-KR/Resources.resw | 105 +------ localization/strings/nb-NO/Resources.resw | 101 ------ localization/strings/nl-NL/Resources.resw | 101 ------ localization/strings/pl-PL/Resources.resw | 103 +----- localization/strings/pt-BR/Resources.resw | 101 ------ localization/strings/pt-PT/Resources.resw | 103 +----- localization/strings/ru-RU/Resources.resw | 101 ------ localization/strings/sv-SE/Resources.resw | 102 ------ localization/strings/tr-TR/Resources.resw | 103 +----- localization/strings/zh-CN/Resources.resw | 102 +----- localization/strings/zh-TW/Resources.resw | 110 +------ src/windows/inc/docker_schema.h | 95 +++++- src/windows/inc/wslc_schema.h | 13 +- src/windows/service/inc/wslc.idl | 5 +- .../wslc/arguments/ArgumentDefinitions.h | 4 + .../wslc/commands/NetworkConnectCommand.cpp | 5 + src/windows/wslc/services/NetworkModel.h | 11 + src/windows/wslc/services/NetworkService.cpp | 39 ++- src/windows/wslc/services/NetworkService.h | 2 +- src/windows/wslc/tasks/NetworkTasks.cpp | 33 +- src/windows/wslcsession/WSLCContainer.cpp | 108 +++++-- test/windows/WSLCTests.cpp | 297 ++++++++++++++++-- test/windows/wslc/e2e/WSLCE2ENetworkTests.cpp | 235 ++++++++++++++ 34 files changed, 831 insertions(+), 2217 deletions(-) diff --git a/localization/strings/cs-CZ/Resources.resw b/localization/strings/cs-CZ/Resources.resw index 11af409d84..242c6b2342 100644 --- a/localization/strings/cs-CZ/Resources.resw +++ b/localization/strings/cs-CZ/Resources.resw @@ -2259,10 +2259,6 @@ Využití: Argument příznaku nemůže obsahovat sousedící hodnotu: '{}' {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - Neplatná logická hodnota pro argument příznaku: '{}'. Očekávala se hodnota true, false, 1 nebo 0. - {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - Našel se poziční argument, i když nebyl očekáván: '{}' {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -2431,7 +2427,7 @@ Informace o ochraně osobních údajů k tomuto produktu najdete na stránce htt {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - Vytváří se úložiště relace v „{}“ podle nastavení session.storagePath. Pokud později toto nastavení změníte nebo odeberete, nebudou už data uložená tady ve výchozí relaci používána a je možné je odstranit, aby bylo možné uvolnit místo. + Creating session storage at '{}' as configured by session.storagePath. If you later change or remove this setting, data stored here will no longer be used by the default session and can be deleted to reclaim space. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated. {Locked="session.storagePath"}"session.storagePath" is a configuration setting name and should not be translated. @@ -2487,58 +2483,6 @@ Informace o ochraně osobních údajů k tomuto produktu najdete na stránce htt Zápis do souboru místo STDOUT {Locked="STDOUT"}Command line arguments, file names and string inserts should not be translated - - Kopíruje soubory mezi kontejnerem a místním systémem souborů. - - - Kopírujte soubory mezi kontejnerem a místním systémem souborů. -Použití: wslc container cp [OPTIONS] SOURCE DEST - Z místního prostředí do kontejneru: wslc container cp LOCAL_PATH CONTAINER:PATH - Z kontejneru do místního prostředí: wslc container cp CONTAINER:PATH LOCAL_PATH - Ze stdin do kontejneru: wslc container cp - CONTAINER:PATH - {Locked="wslc"}{Locked="container cp"}{Locked="CONTAINER:PATH"}{Locked="LOCAL_PATH"} - - - Zdroj: místní cesta, CONTAINER:PATH nebo '-' pro stdin - {Locked="-"}{Locked="CONTAINER:PATH"} - - - Cíl: místní cesta nebo CONTAINER:PATH - {Locked="CONTAINER:PATH"} - - - Neplatný formát cíle. Očekávaný formát: CONTAINER:PATH - {Locked="CONTAINER:PATH"} - - - Neplatný formát zdroje. Očekávaný formát: CONTAINER:PATH - {Locked="CONTAINER:PATH"} - - - Zdrojová cesta se nenašla: {0} - {0} is the source path - - - tar.exe se nenašel. Pro místní kopírování souborů je potřeba Windows tar. - {Locked="tar.exe"} - - - Neplatný směr kopírování. Použijte CONTAINER:PATH jako zdroj nebo cíl. - {Locked="CONTAINER:PATH"} - - - Z terminálu nejde číst data tar. Předejte archiv tar přes kanál do stdin. -Příklad: tar -cf - files | wslc container cp - CONTAINER:/path - {Locked="tar -cf -"}{Locked="wslc container cp"}{Locked="CONTAINER:/path"} - - - Z archivního kontejneru nebyl extrahován žádný soubor - Shown when the container archive download produced no extractable files. - - - Adresář nejde kopírovat do cesty k souboru. Místo toho použijte jako cíl adresář (s koncovým oddělovačem). - Shown when the user tries to copy a directory from the container to a file destination. - Zkontrolovat kontejner. @@ -2839,10 +2783,6 @@ Při prvním spuštění vytvoří soubor se všemi nastaveními okomentovanými Zobrazit vše bez ohledu na stav. - - Režim archivu (přijímá se kvůli kompatibilitě s Docker CLI) - {Locked="Docker"} - Nastavit proměnné pro sestavení (KEY=VALUE) {Locked="KEY=VALUE"}Command line arguments should not be translated @@ -2909,24 +2849,6 @@ Při prvním spuštění vytvoří soubor se všemi nastaveními okomentovanými Neplatná hodnota {}: '{}'. Podporuje se pouze 'all'. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - Příkaz ke spuštění pro kontrolu stavu kontejneru - - - Doba mezi spuštěními kontroly stavu (např. 30s, 1m30s) - {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated - - - Počet po sobě jdoucích selhání potřebných k nahlášení kontejneru jako poškozeného - - - Počáteční doba, po kterou se kontejner může inicializovat před odpočítáváním kontroly stavu (např. 30s, 1m30s) - {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated - - - Maximální doba, po kterou může běžet jedna kontrola stavu (např. 30s, 1m30s) - {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated - Odstranit image, i když se používají @@ -2984,9 +2906,6 @@ Při prvním spuštění vytvoří soubor se všemi nastaveními okomentovanými Nepoužívejte mezipaměť při sestavování image - - Zakázat všechny kontroly stavu určené kontejnerem - Neodstraňovat neoznačené nadřazené image @@ -3167,14 +3086,6 @@ Při prvním spuštění vytvoří soubor se všemi nastaveními okomentovanými Neplatná hodnota argumentu {}: {} Očekávaná velikost paměti (např. 256M, 1G) {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="256M"}{Locked="1G"} - - Neplatná hodnota argumentu {}: {}. Očekává se doba trvání (např. 30s, 1m30s) - {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="30s"}{Locked="1m30s"} - - - Možnost --no-healthcheck nejde kombinovat s jinými možnostmi kontroly stavu. - {Locked="--no-healthcheck "}Command line arguments, file names and string inserts should not be translated - Soubor CID '{}' již existuje {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -3266,18 +3177,6 @@ Při prvním spuštění vytvoří soubor se všemi nastaveními okomentovanými Odstraněno: {} {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - Připojte kontejner k síti - - - Připojuje kontejner k existující síti. - - - Odpojte kontejner od sítě. - - - Odpojí kontejner od existující sítě. - Spravujte svazky. diff --git a/localization/strings/da-DK/Resources.resw b/localization/strings/da-DK/Resources.resw index 204640be17..4bde09512f 100644 --- a/localization/strings/da-DK/Resources.resw +++ b/localization/strings/da-DK/Resources.resw @@ -2259,10 +2259,6 @@ Brug: Flagargumentet må ikke indeholde en tilstødende værdi: '{}' {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - Ugyldig boolesk værdi for flagargument: '{}'. Sand, Falsk, 1 eller 0 var forventet. - {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - Der blev fundet et positionsargument, hvor ingen var forventet: '{}' {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -2431,7 +2427,7 @@ Du kan finde oplysninger om beskyttelse af personlige oplysninger for dette prod {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - Opretter sessionslager på "{}" som konfigureret af session.storagePath. Hvis du senere ændrer eller fjerner denne indstilling, bliver data, der er gemt her, ikke længere brugt af standardsessionen og kan slettes for at frigøre plads. + Creating session storage at '{}' as configured by session.storagePath. If you later change or remove this setting, data stored here will no longer be used by the default session and can be deleted to reclaim space. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated. {Locked="session.storagePath"}"session.storagePath" is a configuration setting name and should not be translated. @@ -2487,58 +2483,6 @@ Du kan finde oplysninger om beskyttelse af personlige oplysninger for dette prod Skriv til en fil i stedet for STDOUT {Locked="STDOUT"}Command line arguments, file names and string inserts should not be translated - - Kopiér filer mellem en objektbeholder og det lokale filsystem. - - - Kopiér filer mellem en objektbeholder og det lokale filsystem. -Format: wslc container cp [INDSTILLINGER] KILDEDESTINATION - Lokalt til objektbeholder: wslc container cp LOCAL_PATH CONTAINER:PATH - Objektbeholder til lokalt: wslc container cp CONTAINER:PATH LOCAL_PATH - Stdin til objektbeholder: wslc container cp - CONTAINER:PATH - {Locked="wslc"}{Locked="container cp"}{Locked="CONTAINER:PATH"}{Locked="LOCAL_PATH"} - - - Kilde: lokal sti, CONTAINER:PATH eller '-' til stdin - {Locked="-"}{Locked="CONTAINER:PATH"} - - - Destination: lokal sti eller CONTAINER:PATH - {Locked="CONTAINER:PATH"} - - - Ugyldigt destinationsformat. Forventet CONTAINER:PATH - {Locked="CONTAINER:PATH"} - - - Ugyldigt kildeformat. Forventet CONTAINER:PATH - {Locked="CONTAINER:PATH"} - - - Kildestien blev ikke fundet: {0} - {0} is the source path - - - tar.exe blev ikke fundet. Windows tar kræves til lokal filkopiering. - {Locked="tar.exe"} - - - Ugyldig kopieringsretning. Brug CONTAINER:PATH som enten kilde eller destination. - {Locked="CONTAINER:PATH"} - - - Kan ikke læse tar-data fra terminalen. Send et tar-arkiv til stdin. -Eksempel: tar -cf - filer | wslc container cp - CONTAINER:/path - {Locked="tar -cf -"}{Locked="wslc container cp"}{Locked="CONTAINER:/path"} - - - Der er ikke udtrukket nogen fil fra objektbeholderarkivet - Shown when the container archive download produced no extractable files. - - - En mappe kan ikke kopieres til en filsti. Brug et mappemål (med efterstillet separator) i stedet. - Shown when the user tries to copy a directory from the container to a file destination. - Undersøg en objektbeholder. @@ -2839,10 +2783,6 @@ Ved første kørsel oprettes filen med alle indstillinger kommenteret som standa Vis alle uanset tilstand. - - Arkivtilstand (accepteret FOR Docker CLI-kompatibilitet) - {Locked="Docker"} - Angiv variabler for build-tid (KEY=VALUE) {Locked="KEY=VALUE"}Command line arguments should not be translated @@ -2909,24 +2849,6 @@ Ved første kørsel oprettes filen med alle indstillinger kommenteret som standa Ugyldig {}-værdi: '{}'. Kun 'all' understøttes. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - Kommando, du kan køre for at kontrollere objektbeholderens tilstand - - - Tid mellem kørsel af tilstandskontrollen (f.eks. 30s, 1m30s) - {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated - - - Antal fortløbende fejl, der kræves for at rapportere objektbeholderen som i dårlig tilstand - - - Startperiode for, at objektbeholderen kan initialisere, før nedtællingen til tilstandskontrol starter (f.eks. 30s, 1m30s) - {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated - - - Maksimal tid, der er tilladt for, at én tilstandskontrol kan køre (f.eks. 30s, 1m30s) - {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated - Slet billeder, selvom de bruges @@ -2984,9 +2906,6 @@ Ved første kørsel oprettes filen med alle indstillinger kommenteret som standa Brug ikke cache, når du opretter billedet - - Deaktiver enhver objektbeholderspecifik tilstandskontrol - Slet ikke ikke-mærkede overordnede @@ -3167,14 +3086,6 @@ Ved første kørsel oprettes filen med alle indstillinger kommenteret som standa Ugyldig {}-argumentværdi: '{}'. Forventede en hukommelsesstørrelse (f.eks. 256M, 1G) {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="256M"}{Locked="1G"} - - Ugyldig {}-argumentværdi: '{}'. Forventede en varighed (f.eks. 30s, 1m30s) - {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="30s"}{Locked="1m30s"} - - - Indstillingen --no-healthcheck kan ikke kombineres med andre tilstandskontrolindstillinger. - {Locked="--no-healthcheck "}Command line arguments, file names and string inserts should not be translated - CID-filen "{}" findes allerede {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -3266,18 +3177,6 @@ Ved første kørsel oprettes filen med alle indstillinger kommenteret som standa Slettet: {} {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - Opret forbindelse mellem en objektbeholder og et netværk - - - Opretter forbindelse mellem en objektbeholder og et eksisterende netværk. - - - Afbryd forbindelsen mellem en objektbeholder og et netværk. - - - Afbryder en container fra et eksisterende netværk. - Administrer diskenheder. diff --git a/localization/strings/de-DE/Resources.resw b/localization/strings/de-DE/Resources.resw index 3be1f035c8..03b29b78a4 100644 --- a/localization/strings/de-DE/Resources.resw +++ b/localization/strings/de-DE/Resources.resw @@ -379,7 +379,8 @@ Beispiel: wslpath 'c:\\users' "}Command line arguments and file names should not be translated - Führt Verwaltungsvorgänge für Windows-Subsystem für Linux: + Führt Verwaltungsvorgänge für Windows-Subsystem für Linux +aus Verbrauch: /l, /list [Option] @@ -1588,7 +1589,8 @@ Anweisungen zur Wiederherstellung finden Sie unter: https://aka.ms/wsldiskmountr Windows-Dateien und -Programme über WSL starten - Selbst bei Verwendung von WSL können Sie Ihre ausführbaren Windows-Dateien direkt von der Bash ausführen. Versuchen Sie, auszuführen. + Selbst bei Verwendung von WSL können Sie Ihre ausführbaren Windows-Dateien direkt von der Bash ausführen. Versuchen Sie, +auszuführen. „powershell.exe /c start .“, um den Datei-Explorer in Ihrem aktuellen Ordner zu öffnen. {Locked="/c start ."}Command line arguments and file names should not be translated @@ -2265,10 +2267,6 @@ Verwendung: Kennzeichenargument darf keinen angrenzenden Wert enthalten: „{}“ {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - Ungültiger boolescher Wert für das Flag-Argument: "{}". Es wurde "true", "false", "1" oder "0" erwartet. - {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - Ein positionelles Argument wurde gefunden, obwohl keines erwartet wurde: „{}“ {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -2437,7 +2435,7 @@ Datenschutzinformationen zu diesem Produkt finden Sie unter https://aka.ms/priva {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - Sitzungsspeicher wird unter „{}“ erstellt, wie von session.storagePath konfiguriert. Wenn Sie diese Einstellung später ändern oder entfernen, werden die hier gespeicherten Daten nicht mehr von der standardmäßigen Sitzung verwendet und können gelöscht werden, um Speicherplatz freizugeben. + Creating session storage at '{}' as configured by session.storagePath. If you later change or remove this setting, data stored here will no longer be used by the default session and can be deleted to reclaim space. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated. {Locked="session.storagePath"}"session.storagePath" is a configuration setting name and should not be translated. @@ -2493,58 +2491,6 @@ Datenschutzinformationen zu diesem Produkt finden Sie unter https://aka.ms/priva In eine Datei schreiben, anstatt STDOUT {Locked="STDOUT"}Command line arguments, file names and string inserts should not be translated - - Dateien zwischen einem Container und dem lokalen Dateisystem kopieren. - - - Dateien zwischen einem Container und dem lokalen Dateisystem kopieren. -Verwendung: wslc container cp [OPTIONEN] QUELLE ZIEL - Lokal zu Container: wslc container cp LOCAL_PATH CONTAINER:PATH - Container zu lokal: wslc container cp CONTAINER:PATH LOCAL_PATH - Stdin zu Container: wslc container cp - CONTAINER:PATH - {Locked="wslc"}{Locked="container cp"}{Locked="CONTAINER:PATH"}{Locked="LOCAL_PATH"} - - - Quelle: lokaler Pfad, CONTAINER:PATH oder '-' für stdin - {Locked="-"}{Locked="CONTAINER:PATH"} - - - Ziel: lokaler Pfad oder CONTAINER:PATH - {Locked="CONTAINER:PATH"} - - - Ungültiges Zielformat. Erwartet wurde CONTAINER:PATH - {Locked="CONTAINER:PATH"} - - - Ungültiges Quellformat. Erwartet wurde CONTAINER:PATH - {Locked="CONTAINER:PATH"} - - - Quellpfad nicht gefunden: {0} - {0} is the source path - - - tar.exe nicht gefunden. Für das Kopieren lokaler Dateien ist Windows-Tar erforderlich. - {Locked="tar.exe"} - - - Ungültige Kopierrichtung. Verwenden Sie CONTAINER:PATH entweder als Quelle oder als Ziel. - {Locked="CONTAINER:PATH"} - - - Kann keine Tar-Daten vom Terminal lesen. Leiten Sie ein Tar-Archiv an stdin weiter. -Beispiel: tar -cf - files | wslc container cp - CONTAINER:/path - {Locked="tar -cf -"}{Locked="wslc container cp"}{Locked="CONTAINER:/path"} - - - Keine extrahierbaren Dateien aus dem Containerarchiv gefunden - Shown when the container archive download produced no extractable files. - - - Ein Verzeichnis kann nicht in einen Dateipfad kopiert werden. Verwenden Sie stattdessen ein Verzeichnisziel (mit nachgestelltem Trennzeichen). - Shown when the user tries to copy a directory from the container to a file destination. - Einen Container überprüfen. @@ -2845,10 +2791,6 @@ Erstellt bei der ersten Ausführung die Datei mit allen Einstellungen, die stand Alle anzeigen, unabhängig vom Zustand. - - Archivmodus (zur Kompatibilität mit der Docker-CLI akzeptiert) - {Locked="Docker"} - Buildzeitvariablen festlegen (KEY=VALUE) {Locked="KEY=VALUE"}Command line arguments should not be translated @@ -2915,24 +2857,6 @@ Erstellt bei der ersten Ausführung die Datei mit allen Einstellungen, die stand Ungültiger {}-Wert: „{}“. Es wird nur „alle“ unterstützt. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - Befehl zum Ausführen der Integritätsprüfung des Containers - - - Zeit zwischen den Ausführungen der Integritätsprüfung (z. B. 30s, 1m30s) - {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated - - - Anzahl aufeinanderfolgender Fehler, die erforderlich ist, um den Container als fehlerhaft zu melden - - - Startzeitraum für die Initialisierung des Containers vor dem Countdown der Integritätsprüfung (z. B. 30s, 1m30s) - {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated - - - Maximale Zeit, die für die Ausführung einer Integritätsprüfung zugelassen ist (z. B. 30s, 1m30s) - {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated - Bilder löschen, auch wenn sie verwendet werden @@ -2990,9 +2914,6 @@ Erstellt bei der ersten Ausführung die Datei mit allen Einstellungen, die stand Zwischenspeichern beim Erstellen des Bildes nicht verwenden - - Vom Container angegebene Integritätsprüfung deaktivieren - Nicht markierte übergeordnete Elemente nicht löschen @@ -3173,14 +3094,6 @@ Erstellt bei der ersten Ausführung die Datei mit allen Einstellungen, die stand Ungültiger {}-Argumentwert: "{}". Arbeitsspeichergröße erwartet (z. B. 256M, 1G) {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="256M"}{Locked="1G"} - - Ungültiger {}-Argumentwert: "{}". Erwartete Dauer (z. B. 30s, 1m30s) - {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="30s"}{Locked="1m30s"} - - - Die Option --no-healthcheck kann nicht mit anderen Health-Check-Optionen kombiniert werden. - {Locked="--no-healthcheck "}Command line arguments, file names and string inserts should not be translated - Die CID-Datei „{}“ ist bereits vorhanden {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -3272,18 +3185,6 @@ Erstellt bei der ersten Ausführung die Datei mit allen Einstellungen, die stand Gelöscht: {} {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - Verbinden eines Containers mit einem Netzwerk - - - Verbindet einen Container mit einem bestehenden Netzwerk. - - - Trennen sie einen Container von einem Netzwerk. - - - Trennt einen Container von einem bestehenden Netzwerk. - Volumes verwalten. diff --git a/localization/strings/en-GB/Resources.resw b/localization/strings/en-GB/Resources.resw index 48ad37e2ec..686858fe62 100644 --- a/localization/strings/en-GB/Resources.resw +++ b/localization/strings/en-GB/Resources.resw @@ -2259,10 +2259,6 @@ Usage: Flag argument cannot contain adjoined value: '{}' {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - Invalid boolean value for flag argument: '{}'. Expected true, false, 1, or 0. - {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - Found a positional argument when none was expected: '{}' {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -2487,58 +2483,6 @@ For privacy information about this product please visit https://aka.ms/privacy.< Write to a file, instead of STDOUT {Locked="STDOUT"}Command line arguments, file names and string inserts should not be translated - - Copy files between a container and the local filesystem. - - - Copy files between a container and the local filesystem. -Usage: wslc container cp [OPTIONS] SOURCE DEST - Local to container: wslc container cp LOCAL_PATH CONTAINER:PATH - Container to local: wslc container cp CONTAINER:PATH LOCAL_PATH - Stdin to container: wslc container cp - CONTAINER:PATH - {Locked="wslc"}{Locked="container cp"}{Locked="CONTAINER:PATH"}{Locked="LOCAL_PATH"} - - - Source: local path, CONTAINER:PATH, or '-' for stdin - {Locked="-"}{Locked="CONTAINER:PATH"} - - - Destination: local path or CONTAINER:PATH - {Locked="CONTAINER:PATH"} - - - Invalid destination format. Expected CONTAINER:PATH - {Locked="CONTAINER:PATH"} - - - Invalid source format. Expected CONTAINER:PATH - {Locked="CONTAINER:PATH"} - - - Source path not found: {0} - {0} is the source path - - - tar.exe not found. Windows tar is required for local file copy. - {Locked="tar.exe"} - - - Invalid copy direction. Use CONTAINER:PATH as either source or destination. - {Locked="CONTAINER:PATH"} - - - Cannot read tar data from terminal. Pipe a tar archive to stdin. -Example: tar -cf - files | wslc container cp - CONTAINER:/path - {Locked="tar -cf -"}{Locked="wslc container cp"}{Locked="CONTAINER:/path"} - - - No file extracted from container archive - Shown when the container archive download produced no extractable files. - - - Cannot copy a directory to a file path. Use a directory target (with trailing separator) instead. - Shown when the user tries to copy a directory from the container to a file destination. - Inspect a container. @@ -2839,10 +2783,6 @@ On first run, creates the file with all settings commented out at their defaults Show all regardless of state. - - Archive mode (accepted for Docker CLI compatibility) - {Locked="Docker"} - Set build-time variables (KEY=VALUE) {Locked="KEY=VALUE"}Command line arguments should not be translated @@ -2909,24 +2849,6 @@ On first run, creates the file with all settings commented out at their defaults Invalid {} value: '{}'. Only 'all' is supported. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - Command to run to check container health - - - Time between running the health check (e.g. 30s, 1m30s) - {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated - - - Consecutive failures needed to report the container as unhealthy - - - Start period for the container to initialise before health-check countdown (e.g. 30s, 1m30s) - {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated - - - Maximum time to allow one health check to run (e.g. 30s, 1m30s) - {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated - Delete images even if they are being used @@ -2984,9 +2906,6 @@ On first run, creates the file with all settings commented out at their defaults Do not use cache when building the image - - Disable any container-specified health check - Do not delete untagged parents @@ -3167,14 +3086,6 @@ On first run, creates the file with all settings commented out at their defaults Invalid {} argument value: '{}'. Expected a memory size (e.g. 256M, 1G) {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="256M"}{Locked="1G"} - - Invalid {} argument value: '{}'. Expected a duration (e.g. 30s, 1m30s) - {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="30s"}{Locked="1m30s"} - - - The --no-healthcheck option cannot be combined with other health check options. - {Locked="--no-healthcheck "}Command line arguments, file names and string inserts should not be translated - CID file '{}' already exists {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -3266,18 +3177,6 @@ On first run, creates the file with all settings commented out at their defaults Deleted: {} {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - Connect a container to a network. - - - Connects a container to an existing network. - - - Disconnect a container from a network. - - - Disconnects a container from an existing network. - Manage volumes. diff --git a/localization/strings/en-US/Resources.resw b/localization/strings/en-US/Resources.resw index aa0f5bf72c..dc231fa878 100644 --- a/localization/strings/en-US/Resources.resw +++ b/localization/strings/en-US/Resources.resw @@ -2134,10 +2134,6 @@ Usage: Container '{}' is running. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - ContainerIpAddress is not yet supported. - {Locked="ContainerIpAddress"}Command line arguments, file names and string inserts should not be translated - Port mappings are not supported with container network mode; ports are owned by the target container. @@ -2391,10 +2387,25 @@ For privacy information about this product please visit https://aka.ms/privacy.< Duplicate network: '{}' {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - Endpoint settings are not yet supported (network '{}'). + + Duplicate driver option '{}'. + {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + + Invalid driver option '{}'; expected 'key=value'. + {FixedPlaceholder="{}"}{Locked="key=value"}Command line arguments, file names and string inserts should not be translated + + + Unknown endpoint setting '{}' for network '{}'. + {FixedPlaceholder="{}"}{FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + + Only one IP address may be specified for network '{}'. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + Network link cannot be empty. + Network alias cannot be empty. @@ -2992,6 +3003,20 @@ On first run, creates the file with all settings commented out at their defaults Add a network-scoped alias for the container + + Set endpoint driver options (--driver-opt key=value) + {Locked="--driver-opt"}{Locked="key=value"}Command line arguments, file names and string inserts should not be translated + + + Assign the container an IPv4 address on the network + + + Add link to another container (--link name:alias) + {Locked="--link"}{Locked="name:alias"}Command line arguments, file names and string inserts should not be translated + + + Add a link-local IPv4 address for the container + Invalid {} value: network alias cannot be empty or whitespace {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated diff --git a/localization/strings/es-ES/Resources.resw b/localization/strings/es-ES/Resources.resw index dfd4ec57e3..54a36c5576 100644 --- a/localization/strings/es-ES/Resources.resw +++ b/localization/strings/es-ES/Resources.resw @@ -2265,10 +2265,6 @@ Uso: El argumento de marca no puede contener el valor adyacente: '{}' {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - Valor booleano no válido para el argumento de marca: '{}'. Se esperaba true, false, 1 o 0. - {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - Se encontró un argumento posicional cuando no se esperaba ninguno: '{}' {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -2437,7 +2433,7 @@ Para obtener información de privacidad sobre este producto, visita https://aka. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - Creando almacenamiento de sesión en "{}" según la configuración de session.storagePath. Si más adelante cambias o quitas esta configuración, los datos almacenados aquí ya no se usarán en la sesión predeterminada y se podrán eliminar para recuperar espacio. + Creating session storage at '{}' as configured by session.storagePath. If you later change or remove this setting, data stored here will no longer be used by the default session and can be deleted to reclaim space. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated. {Locked="session.storagePath"}"session.storagePath" is a configuration setting name and should not be translated. @@ -2493,58 +2489,6 @@ Para obtener información de privacidad sobre este producto, visita https://aka. Escribe en un archivo, en lugar de STDOUT {Locked="STDOUT"}Command line arguments, file names and string inserts should not be translated - - Copia archivos entre un contenedor y el sistema de archivos local. - - - Copiar archivos entre un contenedor y el sistema de archivos local. -Uso: wslc container cp [OPCIONES] ORIGEN DESTINO - Local a contenedor: wslc container cp LOCAL_PATH CONTAINER:PATH - Contenedor a local: wslc container cp CONTAINER:PATH LOCAL_PATH - Entrada estándar a contenedor: wslc container cp - CONTAINER:PATH - {Locked="wslc"}{Locked="container cp"}{Locked="CONTAINER:PATH"}{Locked="LOCAL_PATH"} - - - Origen: ruta de acceso local, CONTAINER:PATH o "-" para stdin - {Locked="-"}{Locked="CONTAINER:PATH"} - - - Destino: ruta local o CONTAINER:PATH - {Locked="CONTAINER:PATH"} - - - Formato de destino no válido. Se esperaba CONTAINER:PATH - {Locked="CONTAINER:PATH"} - - - Formato de origen no válido. Se esperaba CONTAINER:PATH - {Locked="CONTAINER:PATH"} - - - No se encontró la ruta de acceso de origen: {0} - {0} is the source path - - - tar.exe no encontrado. Se requiere tar de Windows para la copia de archivos locales. - {Locked="tar.exe"} - - - Dirección de copia no válida. Use CONTAINER:PATH como origen o destino. - {Locked="CONTAINER:PATH"} - - - No se pueden leer datos tar desde el terminal. Redirigir un archivo tar a stdin. -Ejemplo: tar -cf - archivos | wslc container cp - CONTAINER:/path - {Locked="tar -cf -"}{Locked="wslc container cp"}{Locked="CONTAINER:/path"} - - - No se extrajo ningún archivo del archivo contenedor - Shown when the container archive download produced no extractable files. - - - No se puede copiar un directorio en una ruta de acceso de archivo. Use un destino de directorio (con separador final) en su lugar. - Shown when the user tries to copy a directory from the container to a file destination. - Inspecciona un contenedor. @@ -2845,10 +2789,6 @@ En la primera ejecución, crea el archivo con todas las configuraciones comentad Mostrar todo independientemente del estado. - - Modo de archivo (aceptado por compatibilidad con la CLI de Docker) - {Locked="Docker"} - Establecer variables en tiempo de compilación (KEY=VALUE) {Locked="KEY=VALUE"}Command line arguments should not be translated @@ -2915,24 +2855,6 @@ En la primera ejecución, crea el archivo con todas las configuraciones comentad Valor {} no válido: '{}'. Solo se admite "all". {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - Comando para ejecutar para verificar la salud del contenedor - - - Tiempo transcurrido entre la ejecución de la comprobación de estado (por ejemplo, 30s, 1m30s) - {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated - - - Errores consecutivos necesarios para notificar el contenedor como incorrecto - - - Período de inicio para que el contenedor se inicialice antes de la cuenta atrás de comprobación de estado (por ejemplo, 30s, 1m30s) - {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated - - - Tiempo máximo para permitir que se ejecute una comprobación de estado (por ejemplo, 30s, 1m30s) - {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated - Eliminar imágenes incluso si se están usando @@ -2990,9 +2912,6 @@ En la primera ejecución, crea el archivo con todas las configuraciones comentad No usar caché al compilar la imagen - - Deshabilitar cualquier comprobación de estado especificada por el contenedor - No eliminar elementos primarios sin etiquetar @@ -3173,14 +3092,6 @@ En la primera ejecución, crea el archivo con todas las configuraciones comentad Valor de argumento {} no válido: '{}'. Se esperaba un tamaño de memoria (por ejemplo, 256M, 1G) {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="256M"}{Locked="1G"} - - Valor de argumento {} no válido "{}". Se esperaba una duración (por ejemplo, 30s, 1m30s) - {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="30s"}{Locked="1m30s"} - - - La opción --no-healthcheck no se puede combinar con otras opciones de comprobación de estado. - {Locked="--no-healthcheck "}Command line arguments, file names and string inserts should not be translated - El archivo CID "{}" ya existe {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -3272,18 +3183,6 @@ En la primera ejecución, crea el archivo con todas las configuraciones comentad Eliminado: {} {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - Conectar un contenedor a una red - - - Conecta un contenedor a una red existente. - - - Desconecta un contenedor de una red. - - - Desconecta un contenedor de una red existente. - Administra volúmenes. diff --git a/localization/strings/fi-FI/Resources.resw b/localization/strings/fi-FI/Resources.resw index 61922257dd..0f52110b11 100644 --- a/localization/strings/fi-FI/Resources.resw +++ b/localization/strings/fi-FI/Resources.resw @@ -2259,10 +2259,6 @@ Käyttö: Merkintäargumentti ei voi sisältää liitettyä arvoa: {} {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - Virheellinen totuusarvo lippuargumentille: {}. Odotettiin arvoa true, false, 1 tai 0. - {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - Löydettiin positioargumentti, kun yhtäkään ei odotettu: {} {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -2431,7 +2427,7 @@ Tuotteen tietosuojatiedot löytyvät osoitteesta https://aka.ms/privacy. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - Luodaan istunnon tallennustilaa kohteessa "{}" asetuksen session.storagePath mukaisesti. Jos muutat tai poistat tämän asetuksen myöhemmin, oletusistunto ei enää käytä tänne tallennettuja tietoja, ja ne voidaan poistaa tilan vapauttamiseksi. + Creating session storage at '{}' as configured by session.storagePath. If you later change or remove this setting, data stored here will no longer be used by the default session and can be deleted to reclaim space. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated. {Locked="session.storagePath"}"session.storagePath" is a configuration setting name and should not be translated. @@ -2487,58 +2483,6 @@ Tuotteen tietosuojatiedot löytyvät osoitteesta https://aka.ms/privacy. Kirjoita tiedostoon STDOUT:n sijaan {Locked="STDOUT"}Command line arguments, file names and string inserts should not be translated - - Kopioi tiedostoja säilön ja paikallisen tiedostojärjestelmän välillä. - - - Kopioi tiedostoja säilön ja paikallisen tiedostojärjestelmän välillä. -Käyttö: wslc container cp [ASETUKSET] LÄHDE DEST - Paikallinen säilöön: wslc container cp LOCAL_PATH CONTAINER:PATH - Säilöstä paikalliseen: wslc container cp CONTAINER:PATH LOCAL_PATH - Stdin säilöön: wslc container cp - CONTAINER:PATH - {Locked="wslc"}{Locked="container cp"}{Locked="CONTAINER:PATH"}{Locked="LOCAL_PATH"} - - - Lähde: paikallinen polku, CONTAINER:PATH tai '-' stdin:ää varten - {Locked="-"}{Locked="CONTAINER:PATH"} - - - Kohde: paikallinen polku tai CONTAINER:PATH - {Locked="CONTAINER:PATH"} - - - Virheellinen kohteen muoto. Odotettu CONTAINER:PATH - {Locked="CONTAINER:PATH"} - - - Virheellinen lähdemuoto. Odotettu CONTAINER:PATH - {Locked="CONTAINER:PATH"} - - - Lähdepolkua ei löytynyt: {0} - {0} is the source path - - - tar.exe ei löydy. Windowsin tar-palvelu vaaditaan paikalliseen tiedostojen kopiointiin. - {Locked="tar.exe"} - - - Virheellinen kopiointisuunta. Käytä CONTAINER:PATH joko lähteenä tai kohteena. - {Locked="CONTAINER:PATH"} - - - Tar-tietoja ei voi lukea päätelaitteesta. Ohjaa tar-arkisto stdin:ään. -Esimerkki: tar -cf - files | wslc container cp - CONTAINER:/path - {Locked="tar -cf -"}{Locked="wslc container cp"}{Locked="CONTAINER:/path"} - - - Säilöarkistosta ei poimittu tiedostoa - Shown when the container archive download produced no extractable files. - - - Hakemistoa ei voi kopioida tiedostopolkuun. Käytä sen sijaan hakemistokohdetta (jossa on loppuerotin). - Shown when the user tries to copy a directory from the container to a file destination. - Tarkastele säilöä. @@ -2839,10 +2783,6 @@ Ensimmäisellä käynnistyskerralla luo tiedoston, jossa kaikki asetukset on kom Näytä kaikki tilasta riippumatta. - - Arkistotila (hyväksytään Docker CLI -yhteensopivuutta varten) - {Locked="Docker"} - Määritä koontiversion aikamuuttujat (KEY=VALUE) {Locked="KEY=VALUE"}Command line arguments should not be translated @@ -2909,24 +2849,6 @@ Ensimmäisellä käynnistyskerralla luo tiedoston, jossa kaikki asetukset on kom Virheellinen {}-arvo: {}. Vain määritettä kaikki tuetaan. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - Komento, joka suoritetaan säilön kunnon tarkistamista varten - - - Kuntotarkistuksen suorittamisen välinen aika (esim. 30s, 1m30s) - {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated - - - Säilön epäterveeksi ilmoittamiseen tarvittavat peräkkäiset virheet - - - Säilön alustamisen alkamisaika ennen kuntotarkistuksen lähtölaskentaa (esim. 30s, 1m30s) - {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated - - - Enimmäisaika, joka sallii yhden kuntotarkistuksen suorittamisen (esim. 30s, 1m30s) - {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated - Poista kuvat, vaikka niitä käytettäisiin @@ -2984,9 +2906,6 @@ Ensimmäisellä käynnistyskerralla luo tiedoston, jossa kaikki asetukset on kom Älä käytä välimuistia kuvan rakentamisessa - - Poista säilön määrittämä kuntotarkistus käytöstä - Älä poista merkitsemättömiä pääkohteita @@ -3167,14 +3086,6 @@ Ensimmäisellä käynnistyskerralla luo tiedoston, jossa kaikki asetukset on kom Virheellinen argumentin {} arvo: {}. Odotettiin muistin kokoa (esim. 256M, 1G) {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="256M"}{Locked="1G"} - - Virheellinen argumentin {} arvo: {}. Odotettiin kestoa (esim. 30s, 1m30s) - {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="30s"}{Locked="1m30s"} - - - --no-healthcheck asetusta ei voi yhdistää muihin kunnontarkistusasetuksiin. - {Locked="--no-healthcheck "}Command line arguments, file names and string inserts should not be translated - Tiedosto '{}' on jo olemassa {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -3266,18 +3177,6 @@ Ensimmäisellä käynnistyskerralla luo tiedoston, jossa kaikki asetukset on kom Poistettu: {} {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - Yhdistä säilö verkkoon - - - Yhdistää säiliön olemassa olevaan verkkoon. - - - Katkaise kontin yhteys verkkoon. - - - Katkaisee kontin yhteyden olemassa olevaan verkkoon. - Hallitse asemia. diff --git a/localization/strings/fr-FR/Resources.resw b/localization/strings/fr-FR/Resources.resw index 00a1a32f5f..12c21ecf2a 100644 --- a/localization/strings/fr-FR/Resources.resw +++ b/localization/strings/fr-FR/Resources.resw @@ -2266,10 +2266,6 @@ Utilisation : L'argument drapeau ne peut pas contenir de valeur adjacente : '{}' {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - Valeur booléenne non valide pour l’argument d’indicateur : « {} ». Attendu true, false, 1 ou 0. - {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - J'ai trouvé un argument positionnel alors qu'on n'en attendait aucun : '{}' {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -2438,7 +2434,7 @@ Pour plus d’informations sur la confidentialité de ce produit, veuillez consu {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - Création du stockage de session sur « {} » tel que configuré par session.storagePath. Si vous modifiez ou supprimez ultérieurement ce paramètre, les données stockées ici ne seront plus utilisées par la session par défaut et pourront être supprimées pour récupérer de l’espace. + Creating session storage at '{}' as configured by session.storagePath. If you later change or remove this setting, data stored here will no longer be used by the default session and can be deleted to reclaim space. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated. {Locked="session.storagePath"}"session.storagePath" is a configuration setting name and should not be translated. @@ -2494,58 +2490,6 @@ Pour plus d’informations sur la confidentialité de ce produit, veuillez consu Écrire dans un fichier, au lieu de STDOUT {Locked="STDOUT"}Command line arguments, file names and string inserts should not be translated - - Copier des fichiers entre un conteneur et le système de fichiers local. - - - Copiez des fichiers entre un conteneur et le système de fichiers local. -Utilisation : wslc container cp [OPTIONS] SOURCE DEST - Du système local vers le conteneur : wslc container cp LOCAL_PATH CONTAINER:PATH - Du conteneur vers le système local : wslc container cp CONTAINER:PATH LOCAL_PATH - De l’entrée standard vers le conteneur : wslc container cp – CONTAINER:PATH - {Locked="wslc"}{Locked="container cp"}{Locked="CONTAINER:PATH"}{Locked="LOCAL_PATH"} - - - Source : chemin local, CONTAINER:PATH ou '-' pour stdin - {Locked="-"}{Locked="CONTAINER:PATH"} - - - Destination : chemin d’accès local ou CONTAINER:PATH - {Locked="CONTAINER:PATH"} - - - Format de destination non valide. CONTAINER:PATH attendu - {Locked="CONTAINER:PATH"} - - - Format source non valide. CONTAINER:PATH attendu - {Locked="CONTAINER:PATH"} - - - Chemin source introuvable : {0} - {0} is the source path - - - tar.exe introuvable. Windows tar est nécessaire pour la copie de fichiers locaux. - {Locked="tar.exe"} - - - Sens de copie non valide. Utilisez CONTAINER:PATH comme source ou destination. - {Locked="CONTAINER:PATH"} - - - Impossible de lire les données tar depuis le terminal. Poussez une archive tar vers stdin canal. -Exemple : tar -cf - files | wslc container cp - CONTAINER:/path - {Locked="tar -cf -"}{Locked="wslc container cp"}{Locked="CONTAINER:/path"} - - - Aucun fichier n’a été extrait de l’archive du conteneur - Shown when the container archive download produced no extractable files. - - - Impossible de copier un répertoire vers un chemin d’accès de fichier. Utilisez une cible de répertoire (avec séparateur de fin) à la place. - Shown when the user tries to copy a directory from the container to a file destination. - Inspecter un conteneur. @@ -2846,10 +2790,6 @@ Lors de la première exécution, crée le fichier avec tous les paramètres comm Affichez tout, quel que soit l’état. - - Mode archive (accepté pour la compatibilité avec l’interface de ligne de commande Docker) - {Locked="Docker"} - Définir les variables au moment de la génération (KEY=VALUE) {Locked="KEY=VALUE"}Command line arguments should not be translated @@ -2916,24 +2856,6 @@ Lors de la première exécution, crée le fichier avec tous les paramètres comm Valeur {} non valide : « {} ». Seul « all » est pris en charge. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - Commande à exécuter pour vérifier l’intégrité du conteneur - - - Délai entre l’exécution du contrôle d’intégrité (par exemple, 30s, 1m30s) - {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated - - - Échecs consécutifs nécessaires pour signaler le conteneur comme non sain - - - Période de démarrage pour l’initialisation du conteneur avant le compte à rebours de vérification d’intégrité (par exemple 30s, 1m30s) - {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated - - - Durée maximale d’exécution d’un contrôle d’intégrité (par exemple, 30s, 1m30s) - {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated - Supprimez les images même si elles sont utilisées @@ -2991,9 +2913,6 @@ Lors de la première exécution, crée le fichier avec tous les paramètres comm Ne pas utiliser le cache lors de la création de l’image - - Désactiver toute vérification d’intégrité spécifiée par le conteneur - Ne supprimez pas les parents non étiquetés @@ -3174,14 +3093,6 @@ Lors de la première exécution, crée le fichier avec tous les paramètres comm Valeur d’argument {} non valide : « {} ». Taille de mémoire attendue (par exemple, 256M, 1G) {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="256M"}{Locked="1G"} - - Valeur de l’argument {} non valide : '{}'. Durée attendue (par exemple, 30s, 1m30s) - {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="30s"}{Locked="1m30s"} - - - L’option --no-healthcheck ne peut pas être combinée avec d’autres options de case activée d’intégrité. - {Locked="--no-healthcheck "}Command line arguments, file names and string inserts should not be translated - Le fichier CID « {} » existe déjà {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -3273,18 +3184,6 @@ Lors de la première exécution, crée le fichier avec tous les paramètres comm Supprimé : {} {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - Connectez un conteneur à un réseau - - - Connecte un conteneur à un réseau existant. - - - Déconnecter un conteneur à partir d'un réseau. - - - Déconnecte un conteneur d'un réseau existant. - Gérez les volumes. diff --git a/localization/strings/hu-HU/Resources.resw b/localization/strings/hu-HU/Resources.resw index ed703a95a2..e20aaef6fd 100644 --- a/localization/strings/hu-HU/Resources.resw +++ b/localization/strings/hu-HU/Resources.resw @@ -2259,10 +2259,6 @@ Usage: A jelölő argumentum nem tartalmazhat szomszédos értéket: {} {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - Érvénytelen logikai érték a jelzőargumentumhoz: {}. A várt érték igaz, hamis, 1 vagy 0. - {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - Nem várt helyen pozícióhoz kötött argumentum található: {} {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -2431,7 +2427,7 @@ További információ a termékről: https://aka.ms/privacy. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - Munkamenet-tároló létrehozása a(z) {} helyen a session.storagePath által konfigurált módon. Ha később módosítja vagy eltávolítja ezt a beállítást, az itt tárolt adatokat már nem fogja használni az alapértelmezett munkamenet, és a lemezterület felszabadítása érdekében azok törölhetők. + Creating session storage at '{}' as configured by session.storagePath. If you later change or remove this setting, data stored here will no longer be used by the default session and can be deleted to reclaim space. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated. {Locked="session.storagePath"}"session.storagePath" is a configuration setting name and should not be translated. @@ -2487,58 +2483,6 @@ További információ a termékről: https://aka.ms/privacy. Írás fájlba ahelyett, hogy a STDOUT-ra írna {Locked="STDOUT"}Command line arguments, file names and string inserts should not be translated - - Fájlok másolása egy tároló és a helyi fájlrendszer között. - - - Fájlok másolása egy tároló és a helyi fájlrendszer között. -Használat: wslc container cp [OPTIONS] SOURCE DEST - Helyi tároló: wslc container cp LOCAL_PATH CONTAINER:PATH - Tárolóból helyi: wslc container cp CONTAINER:PATH LOCAL_PATH - Stdin-ről tárolóba: wslc container cp - CONTAINER:PATH - {Locked="wslc"}{Locked="container cp"}{Locked="CONTAINER:PATH"}{Locked="LOCAL_PATH"} - - - Forrás: helyi elérési út, CONTAINER:PATH vagy "-" az stdin esetében - {Locked="-"}{Locked="CONTAINER:PATH"} - - - Cél: helyi elérési út vagy CONTAINER:PATH - {Locked="CONTAINER:PATH"} - - - Érvénytelen célformátum. Várt érték CONTAINER:PATH - {Locked="CONTAINER:PATH"} - - - Érvénytelen forrásformátum. Várt érték CONTAINER:PATH - {Locked="CONTAINER:PATH"} - - - A forrás elérési útja nem található: {0} - {0} is the source path - - - tar.exe nem található. A helyi fájlmásoláshoz Windows tar szükséges. - {Locked="tar.exe"} - - - Érvénytelen másolási irány. Forrásként vagy célként használja a CONTAINER:PATH elemet. - {Locked="CONTAINER:PATH"} - - - Nem olvashatók a tar-adatok a terminálból. Tar-archívum továbbítása az stdin-re. -Példa: tar -cf - files | wslc container cp - CONTAINER:/path - {Locked="tar -cf -"}{Locked="wslc container cp"}{Locked="CONTAINER:/path"} - - - Nincs fájl kibontva a tárolóarchívumból - Shown when the container archive download produced no extractable files. - - - Könyvtár nem másolható fájlelérési útra. Használjon helyette könyvtárcélt (záró elválasztójellel). - Shown when the user tries to copy a directory from the container to a file destination. - Tároló vizsgálata. @@ -2839,10 +2783,6 @@ Első futtatáskor a program létrehozza a fájlt, amelyben az összes beállít Az összes megjelenítése állapottól függetlenül. - - Archiválási mód (a Docker CLI-kompatibilitás érdekében elfogadva) - {Locked="Docker"} - Buildelési idő változóinak beállítása (KEY=VALUE) {Locked="KEY=VALUE"}Command line arguments should not be translated @@ -2909,24 +2849,6 @@ Első futtatáskor a program létrehozza a fájlt, amelyben az összes beállít Érvénytelen {} érték: {}. Csak az "all" támogatott. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - A tároló állapotának ellenőrzéséhez futtatandó parancs - - - Az állapot-ellenőrzés futtatása közötti idő (pl. 30s, 1m30s) - {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated - - - A tároló nem megfelelő állapotúként való jelentéséhez szükséges egymást követő hibák száma - - - A tároló inicializálásának kezdő időszaka az állapot-ellenőrzés visszaszámlálása előtt (például 30s, 1m30s) - {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated - - - Egy állapot-ellenőrzés futtatásának maximális ideje (pl. 30s, 1m30s) - {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated - Képek törlése akkor is, ha használatban vannak @@ -2984,9 +2906,6 @@ Első futtatáskor a program létrehozza a fájlt, amelyben az összes beállít Ne használjon gyorsítótárat a lemezkép létrehozásakor - - Tároló által megadott állapot-ellenőrzés letiltása - Ne törölje a címkézetlen szülőket @@ -3167,14 +3086,6 @@ Első futtatáskor a program létrehozza a fájlt, amelyben az összes beállít Érvénytelen {} argumentumérték: "{}". A rendszer memóriaméretet várt (például 256M, 1G) {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="256M"}{Locked="1G"} - - Érvénytelen {} argumentumérték: {}. A várt időtartam (pl. 30s, 1m30s) - {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="30s"}{Locked="1m30s"} - - - A --no-healthcheck beállítás nem kombinálható más állapot-ellenőrzési beállításokkal. - {Locked="--no-healthcheck "}Command line arguments, file names and string inserts should not be translated - A(z) {} CID-fájl már létezik {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -3266,18 +3177,6 @@ Első futtatáskor a program létrehozza a fájlt, amelyben az összes beállít Törölve: {} {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - Tároló csatlakoztatása hálózathoz - - - Egy tárolót csatlakoztat egy meglévő hálózathoz. - - - Tároló leválasztása a hálózatról. - - - Leválaszt egy tárolót egy meglévő hálózatról. - Kötetek kezelése. diff --git a/localization/strings/it-IT/Resources.resw b/localization/strings/it-IT/Resources.resw index 5e1f30363e..97de382d2b 100644 --- a/localization/strings/it-IT/Resources.resw +++ b/localization/strings/it-IT/Resources.resw @@ -2265,10 +2265,6 @@ Utilizzo: L'argomento flag non può contenere un valore contiguo: '{}' {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - Valore booleano non valido per l'argomento del flag: '{}'. Previsto vero, falso, 1 o 0. - {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - È stato trovato un argomento posizionale nonostante non ne fosse previsto alcuno: '{}' {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -2437,7 +2433,7 @@ Per informazioni sulla privacy di questo prodotto, visita https://aka.ms/privacy {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - Creazione dell'archiviazione della sessione in '{}' secondo la configurazione di session.storagePath. Se in seguito modifichi o rimuovi questa impostazione, i dati archiviati qui non verranno più utilizzati dalla sessione predefinita e potranno essere eliminati per recuperare spazio. + Creating session storage at '{}' as configured by session.storagePath. If you later change or remove this setting, data stored here will no longer be used by the default session and can be deleted to reclaim space. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated. {Locked="session.storagePath"}"session.storagePath" is a configuration setting name and should not be translated. @@ -2493,58 +2489,6 @@ Per informazioni sulla privacy di questo prodotto, visita https://aka.ms/privacy Scrivi in un file, invece di STDOUT {Locked="STDOUT"}Command line arguments, file names and string inserts should not be translated - - Copia i file tra un contenitore e il file system locale. - - - Copia i file tra un contenitore e il filesystem locale. -Uso: wslc container cp [OPZIONI] SORGENTE DEST - Da locale a contenitore: wslc container cp LOCAL_PATH CONTAINER:PATH - Da contenitore a locale: wslc container cp CONTAINER:PATH LOCAL_PATH - Stdin a contenitore: wslc container cp - CONTAINER:PATH - {Locked="wslc"}{Locked="container cp"}{Locked="CONTAINER:PATH"}{Locked="LOCAL_PATH"} - - - Origine: percorso locale, CONTAINER:PATH oppure '-' per STDIN - {Locked="-"}{Locked="CONTAINER:PATH"} - - - Destinazione: percorso locale o CONTAINER:PATH - {Locked="CONTAINER:PATH"} - - - Formato di destinazione non valido. Previsto CONTAINER:PATH - {Locked="CONTAINER:PATH"} - - - Formato di origine non valido. Previsto CONTAINER:PATH - {Locked="CONTAINER:PATH"} - - - Percorso origine non trovato: {0} - {0} is the source path - - - tar.exe non trovato. Il tar di Windows è necessario per la copia del file locale. - {Locked="tar.exe"} - - - Direzione di copia non valida. Usa CONTAINER:PATH come origine o destinazione. - {Locked="CONTAINER:PATH"} - - - Non è possibile leggere i dati tar dal terminale. Reindirizza un archivio tar a STDIN. -Esempio: tar -cf - files | wslc container cp - CONTAINER:/path - {Locked="tar -cf -"}{Locked="wslc container cp"}{Locked="CONTAINER:/path"} - - - Nessun file estratto dall'archivio dei contenitori - Shown when the container archive download produced no extractable files. - - - Impossibile copiare una directory in un percorso di file. Utilizzare una destinazione directory (con separatore finale). - Shown when the user tries to copy a directory from the container to a file destination. - Ispeziona un contenitore. @@ -2845,10 +2789,6 @@ Alla prima esecuzione crea il file con tutte le impostazioni commentate come pre Visualizza tutto indipendentemente dallo stato. - - Modalità archivio (accettata per compatibilità con l'interfaccia della riga di comando di Docker) - {Locked="Docker"} - Imposta variabili del tempo di build (KEY=VALUE) {Locked="KEY=VALUE"}Command line arguments should not be translated @@ -2915,24 +2855,6 @@ Alla prima esecuzione crea il file con tutte le impostazioni commentate come pre Valore {} non valido: '{}'. È supportato solo 'all'. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - Comando da eseguire per controllare l'integrità del container - - - Intervallo di tempo tra l'esecuzione del controllo integrità (ad esempio 30s, 1m30s) - {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated - - - Errori consecutivi necessari per segnalare il contenitore come non integro - - - Periodo di avvio per inizializzare il contenitore prima del conto alla rovescia del controllo integrità (es. 30s, 1m30s) - {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated - - - Tempo massimo consentito per l'esecuzione di un controllo integrità (ad esempio 30s, 1m30s) - {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated - Elimina le immagini anche se sono in uso @@ -2990,9 +2912,6 @@ Alla prima esecuzione crea il file con tutte le impostazioni commentate come pre Non usare la cache durante la compilazione dell'immagine - - Disabilita qualsiasi di verifica dell'integrità specificata dal contenitore - Non eliminare i genitori non etichettati @@ -3173,14 +3092,6 @@ Alla prima esecuzione crea il file con tutte le impostazioni commentate come pre Valore dell'argomento {} non valido: '{}'. È prevista una dimensione di memoria (ad esempio 256M, 1G) {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="256M"}{Locked="1G"} - - Valore argomento {} non valido: '{}'. È prevista una durata (ad esempio 30s, 1m30s) - {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="30s"}{Locked="1m30s"} - - - L'opzione --no-healthcheck non può essere combinata con altre opzioni di controllo dell'integrità. - {Locked="--no-healthcheck "}Command line arguments, file names and string inserts should not be translated - Il file CID '{}' esiste già {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -3272,18 +3183,6 @@ Alla prima esecuzione crea il file con tutte le impostazioni commentate come pre Eliminato: {} {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - Collega un contenitore a una rete - - - Collega un contenitore a una rete esistente. - - - Disconnetti un contenitore da una rete. - - - Disconnette un contenitore da una rete esistente. - Gestisci volumi. diff --git a/localization/strings/ja-JP/Resources.resw b/localization/strings/ja-JP/Resources.resw index ff001d3674..f291651887 100644 --- a/localization/strings/ja-JP/Resources.resw +++ b/localization/strings/ja-JP/Resources.resw @@ -2265,10 +2265,6 @@ VS Code 自体のコマンド パレットから、より多くの VS Code リ フラグ引数に隣接する値を含めることはできません: '{}' {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - フラグ引数のブール値が無効です: '{}'。true、false、1、または 0 が必要です。 - {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - 必要なものが見つからないときに位置指定引数が見つかりました: '{}' {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -2493,58 +2489,6 @@ VS Code 自体のコマンド パレットから、より多くの VS Code リ STDOUT の代わりにファイルに書き込みます {Locked="STDOUT"}Command line arguments, file names and string inserts should not be translated - - コンテナーとローカル ファイル システムの間でファイルをコピーします。 - - - コンテナーとローカル ファイルシステムの間でファイルをコピーします。 -使用法: wslc container cp [OPTIONS] SOURCE DEST - ローカルからコンテナーへ: wslc container cp LOCAL_PATH CONTAINER:PATH - コンテナーからローカルへ: wslc container cp CONTAINER:PATH LOCAL_PATH - Stdin からコンテナーへ: wslc container cp - CONTAINER:PATH - {Locked="wslc"}{Locked="container cp"}{Locked="CONTAINER:PATH"}{Locked="LOCAL_PATH"} - - - ソース: ローカル パス、CONTAINER:PATH、または '-' で stdin - {Locked="-"}{Locked="CONTAINER:PATH"} - - - 宛先: ローカル パスまたは CONTAINER:PATH - {Locked="CONTAINER:PATH"} - - - 宛先の形式が無効です。CONTAINER:PATH 形式を使用してください - {Locked="CONTAINER:PATH"} - - - ソースの形式が無効です。CONTAINER:PATH 形式を使用してください - {Locked="CONTAINER:PATH"} - - - ソース パスが見つかりません: {0} - {0} is the source path - - - tar.exe 見つかりません。ローカル ファイルのコピーには Windows tar が必要です。 - {Locked="tar.exe"} - - - コピーの方向が無効です。ソースまたは宛先のいずれかに CONTAINER:PATH を使用してください。 - {Locked="CONTAINER:PATH"} - - - ターミナルから tar データを読み取れません。tar アーカイブを stdin にパイプしてください。 -例: tar -cf - files | wslc container cp - CONTAINER:/path - {Locked="tar -cf -"}{Locked="wslc container cp"}{Locked="CONTAINER:/path"} - - - コンテナー アーカイブから抽出されたファイルはありません - Shown when the container archive download produced no extractable files. - - - ディレクトリをファイル パスにコピーできません。代わりにディレクトリ ターゲット (末尾に区切り記号を含む) を使用してください。 - Shown when the user tries to copy a directory from the container to a file destination. - コンテナーを検査します。 @@ -2845,10 +2789,6 @@ VS Code 自体のコマンド パレットから、より多くの VS Code リ 状態に関係なくすべてを表示します。 - - アーカイブ モード (Docker CLI との互換性確保のため受け付け可能になっています) - {Locked="Docker"} - ビルド時の変数を設定します (KEY=VALUE) {Locked="KEY=VALUE"}Command line arguments should not be translated @@ -2915,24 +2855,6 @@ VS Code 自体のコマンド パレットから、より多くの VS Code リ 無効な {} 値: '{}'。'all' のみがサポートされています。 {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - コンテナーの正常性をチェックするために実行するコマンド - - - 正常性チェックの実行間隔 (例: 30s, 1m30s) - {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated - - - コンテナーを異常として報告するために必要な連続失敗回数 - - - 正常性チェックのカウントダウンを開始する前にコンテナーを初期化するための開始期間 (例: 30s、1m30s) - {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated - - - 1 回の正常性チェックを実行するために許可される最大時間 (例: 30s、1m30s) - {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated - 使用中であってもイメージを削除します @@ -2990,9 +2912,6 @@ VS Code 自体のコマンド パレットから、より多くの VS Code リ イメージのビルド時にキャッシュを使用しない - - コンテナーで指定された正常性チェックを無効にする - タグのない親は削除しないでください @@ -3173,14 +3092,6 @@ VS Code 自体のコマンド パレットから、より多くの VS Code リ 無効な {} 引数の値: '{}'。メモリ サイズが予期されます (例: 256M、1G) {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="256M"}{Locked="1G"} - - 無効な {} 引数の値: '{}'。期間が必要です (例: 30s、1m30s) - {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="30s"}{Locked="1m30s"} - - - --no-healthcheck オプションは、他の正常性チェック オプションと組み合わせることはできません。 - {Locked="--no-healthcheck "}Command line arguments, file names and string inserts should not be translated - CID ファイル '{}' は既に存在します {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -3272,18 +3183,6 @@ VS Code 自体のコマンド パレットから、より多くの VS Code リ 削除済み: {} {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - コンテナーをネットワークに接続する - - - コンテナーを既存のネットワークに接続します。 - - - コンテナーをネットワークから切断します。 - - - 既存のネットワークからコンテナーを切断します。 - ボリュームを管理します。 diff --git a/localization/strings/ko-KR/Resources.resw b/localization/strings/ko-KR/Resources.resw index 2bf77a0861..f0dc2f07b4 100644 --- a/localization/strings/ko-KR/Resources.resw +++ b/localization/strings/ko-KR/Resources.resw @@ -583,7 +583,7 @@ Linux용 Windows 하위 시스템 배포를 관리하기 위한 인수: 옵션: --all - + 배포를 포함하여 모든 배포를 나열합니다. 현재 설치 중이거나 제거되고 있습니다. @@ -2266,10 +2266,6 @@ VS Code 자체 내의 명령 팔레트를 통해 더 많은 VS Code 원격 옵 플래그 인수는 근접하는 값을 포함할 수 없음: '{}' {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - 플래그 인수에 대한 잘못된 부울 값 '{}'입니다. 예상 값은 true, false, 1 또는 0입니다. - {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - 필요한 항목이 없을 때 위치 인수를 찾음: '{}' {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -2438,7 +2434,7 @@ VS Code 자체 내의 명령 팔레트를 통해 더 많은 VS Code 원격 옵 {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - session.storagePath에 의해 구성된 '{}'에서 세션 스토리지를 만드는 중입니다. 나중에 이 설정을 변경하거나 제거하는 경우 여기에 저장된 데이터는 더 이상 기본 세션에서 사용되지 않으며 공간을 회수하기 위해 삭제할 수 있습니다. + Creating session storage at '{}' as configured by session.storagePath. If you later change or remove this setting, data stored here will no longer be used by the default session and can be deleted to reclaim space. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated. {Locked="session.storagePath"}"session.storagePath" is a configuration setting name and should not be translated. @@ -2494,58 +2490,6 @@ VS Code 자체 내의 명령 팔레트를 통해 더 많은 VS Code 원격 옵 STDOUT 대신 파일에 씁니다. {Locked="STDOUT"}Command line arguments, file names and string inserts should not be translated - - 컨테이너와 로컬 파일 시스템 간에 파일을 복사합니다. - - - 컨테이너와 로컬 파일 시스템 간에 파일을 복사합니다. -사용법: wslc container cp [OPTIONS] SOURCE DEST - 로컬에서 컨테이너로: wslc container cp LOCAL_PATH CONTAINER:PATH - 컨테이너에서 로컬로: wslc container cp CONTAINER:PATH LOCAL_PATH - Stdin에서 컨테이너로: wslc container cp - CONTAINER:PATH - {Locked="wslc"}{Locked="container cp"}{Locked="CONTAINER:PATH"}{Locked="LOCAL_PATH"} - - - 원본: 로컬 경로, CONTAINER:PATH 또는 stdin의 경우 '-' - {Locked="-"}{Locked="CONTAINER:PATH"} - - - 대상: 로컬 경로 또는 CONTAINER:PATH - {Locked="CONTAINER:PATH"} - - - 잘못된 대상 형식입니다. 예상 형식: CONTAINER:PATH - {Locked="CONTAINER:PATH"} - - - 원본 형식이 잘못되었습니다. 예상 형식: CONTAINER:PATH - {Locked="CONTAINER:PATH"} - - - 찾을 수 없는 소스 경로: {0} - {0} is the source path - - - tar.exe 찾을 수 없습니다. 로컬 파일을 복사하려면 Windows tar가 필요합니다. - {Locked="tar.exe"} - - - 복사 방향이 잘못되었습니다. CONTAINER:PATH 원본 또는 대상으로 사용합니다. - {Locked="CONTAINER:PATH"} - - - 터미널에서 tar 데이터를 읽을 수 없습니다. tar 아카이브를 stdin으로 파이프하세요. -예: tar -cf - files | wslc container cp - CONTAINER:/path - {Locked="tar -cf -"}{Locked="wslc container cp"}{Locked="CONTAINER:/path"} - - - 컨테이너 아카이브에서 파일이 추출되지 않았습니다. - Shown when the container archive download produced no extractable files. - - - 디렉터리를 파일 경로에 복사할 수 없습니다. 대신 디렉터리 대상(후행 구분 기호 포함)을 사용하세요. - Shown when the user tries to copy a directory from the container to a file destination. - 컨테이너를 검사합니다. @@ -2846,10 +2790,6 @@ VS Code 자체 내의 명령 팔레트를 통해 더 많은 VS Code 원격 옵 상태에 관계없이 모두 표시합니다. - - 아카이브 모드(Docker CLI 호환성을 위해 허용됨) - {Locked="Docker"} - 빌드 시간 변수 설정(KEY=VALUE) {Locked="KEY=VALUE"}Command line arguments should not be translated @@ -2916,24 +2856,6 @@ VS Code 자체 내의 명령 팔레트를 통해 더 많은 VS Code 원격 옵 잘못된 {} 값: '{}'. 'all'만 지원됩니다. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - 컨테이너 상태를 확인하기 위해 실행할 명령 - - - 상태 검사 실행 간격(예: 30s, 1m30s) - {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated - - - 컨테이너를 비정상으로 보고하기 위해 필요한 연속 실패 횟수 - - - 상태 검사 카운트다운이 시작되기 전 컨테이너가 초기화되는 데 걸리는 시간(예: 30s, 1m30s) - {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated - - - 단일 상태 검사를 실행하는 데 허용되는 최대 시간(예: 30s, 1m30s) - {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated - 사용 중인 경우에도 이미지 삭제 @@ -2991,9 +2913,6 @@ VS Code 자체 내의 명령 팔레트를 통해 더 많은 VS Code 원격 옵 이미지를 빌드할 때 캐시를 사용하지 마세요. - - 컨테이너에 지정된 상태 검사 비활성화 - 태그가 지정되지 않은 부모 삭제 안 함 @@ -3174,14 +3093,6 @@ VS Code 자체 내의 명령 팔레트를 통해 더 많은 VS Code 원격 옵 잘못된 {} 인수 값: '{}'. 메모리 크기가 필요합니다(예: 256M, 1G). {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="256M"}{Locked="1G"} - - 잘못된 {} 인수 값: '{}'. 예상되는 기간(예: 30s, 1m30s) - {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="30s"}{Locked="1m30s"} - - - --no-healthcheck 옵션은 다른 상태 검사 옵션과 함께 사용할 수 없습니다. - {Locked="--no-healthcheck "}Command line arguments, file names and string inserts should not be translated - CID 파일 '{}'이(가) 이미 존재합니다. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -3273,18 +3184,6 @@ VS Code 자체 내의 명령 팔레트를 통해 더 많은 VS Code 원격 옵 삭제함: {} {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - 컨테이너를 네트워크에 연결하세요 - - - 컨테이너를 기존 네트워크에 연결합니다. - - - 네트워크에서 컨테이너의 연결을 끊습니다. - - - 기존 네트워크에서 컨테이너의 연결을 끊습니다. - 볼륨을 관리합니다. diff --git a/localization/strings/nb-NO/Resources.resw b/localization/strings/nb-NO/Resources.resw index ca1b1f675a..f192008d94 100644 --- a/localization/strings/nb-NO/Resources.resw +++ b/localization/strings/nb-NO/Resources.resw @@ -2259,10 +2259,6 @@ Bruk: Flaggargumentet kan ikke inneholde tilstøtende verdi: «{}» {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - Ugyldig boolsk verdi for flaggargument: '{}'. Forventet true, false, 1 eller 0. - {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - Fant et plasseringsargument når det ikke var forventet: «{}» {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -2487,58 +2483,6 @@ For personverninformasjon om dette produktet kan du gå til https://aka.ms/priva Skriv til en fil, i stedet for STDOUT {Locked="STDOUT"}Command line arguments, file names and string inserts should not be translated - - Kopier filer mellom en beholder og det lokale filsystemet. - - - Kopier filer mellom en beholder og det lokale filsystemet. -Bruk: wslc container cp [ALTERNATIVER] KILDE DEST - Lokalt til beholder: wslc container cp LOCAL_PATH CONTAINER:PATH - Beholder til lokalt: wslc container cp CONTAINER:PATH LOCAL_PATH - Stdin til beholder: wslc container cp - CONTAINER:PATH - {Locked="wslc"}{Locked="container cp"}{Locked="CONTAINER:PATH"}{Locked="LOCAL_PATH"} - - - Kilde: lokal bane, CONTAINER:PATH, eller '-' for stdin - {Locked="-"}{Locked="CONTAINER:PATH"} - - - Mål: lokal bane eller CONTAINER:PATH - {Locked="CONTAINER:PATH"} - - - Ugyldig målformat. Forventet CONTAINER:PATH - {Locked="CONTAINER:PATH"} - - - Ugyldig kildeformat. Forventet CONTAINER:PATH - {Locked="CONTAINER:PATH"} - - - Kildebane ikke funnet: {0} - {0} is the source path - - - tar.exe ikke funnet. Windows tar kreves for lokal filkopiering. - {Locked="tar.exe"} - - - Ugyldig kopieringsretning. Bruk CONTAINER:PATH som kilde eller mål. - {Locked="CONTAINER:PATH"} - - - Kan ikke lese tar-data fra terminalen. Send et tar-arkiv til stdin. -Eksempel: tar -cf - files | wslc container cp - CONTAINER:/path - {Locked="tar -cf -"}{Locked="wslc container cp"}{Locked="CONTAINER:/path"} - - - Ingen filer ble hentet ut fra beholderarkivet - Shown when the container archive download produced no extractable files. - - - Kan ikke kopiere en mappe til en filbane. Bruk et katalogmål (med etterfølgende skilletegn) i stedet. - Shown when the user tries to copy a directory from the container to a file destination. - Inspiser en beholder. @@ -2839,10 +2783,6 @@ Ved første kjøring opprettes filen med alle innstillinger kommentert ut som st Vis alle uavhengig av tilstand. - - Arkivmodus (godtas for Docker CLI-kompatibilitet) - {Locked="Docker"} - Angi variabler for byggetid (KEY=VALUE) {Locked="KEY=VALUE"}Command line arguments should not be translated @@ -2909,24 +2849,6 @@ Ved første kjøring opprettes filen med alle innstillinger kommentert ut som st Ugyldig {} verdi: «{}». Bare «all» støttes. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - Kommando som skal kjøres for å kontrollere beholderens tilstand - - - Tiden mellom hver tilstandskontroll (f.eks. 30s, 1m30s) - {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated - - - Antall påfølgende feil som kreves for å rapportere beholderen som ikke i orden - - - Startperiode før beholderen initialiseres og nedtellingen for tilstandskontroll starter (f.eks. 30s, 1m30s) - {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated - - - Maksimal tid en tilstandskontroll kan kjøre (f.eks. 30s, 1m30s) - {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated - Slett bilder selv om de brukes @@ -2984,9 +2906,6 @@ Ved første kjøring opprettes filen med alle innstillinger kommentert ut som st Ikke bruk hurtigbuffer når du bygger avbildningen - - Deaktiver eventuell tilstandskontroll som er angitt for beholderen - Ikke slett umerkede foresatte @@ -3167,14 +3086,6 @@ Ved første kjøring opprettes filen med alle innstillinger kommentert ut som st Ugyldig {} argumentverdi: {}. Forventet en minnestørrelse (f.eks. 256M, 1G) {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="256M"}{Locked="1G"} - - Ugyldig {} argumentverdi: {}. Forventet en varighet (f.eks. 30s, 1m30s) - {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="30s"}{Locked="1m30s"} - - - Alternativet --no-healthcheck kan ikke brukes sammen med andre alternativer for tilstandskontroll. - {Locked="--no-healthcheck "}Command line arguments, file names and string inserts should not be translated - CID-filen {} finnes allerede {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -3266,18 +3177,6 @@ Ved første kjøring opprettes filen med alle innstillinger kommentert ut som st Slettet: {} {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - Koble containeren til et nettverk - - - Kobler en container til et eksisterende nettverk. - - - Koble en beholder fra et nettverk. - - - Kobler en container fra et eksisterende nettverk. - Administrer volumer. diff --git a/localization/strings/nl-NL/Resources.resw b/localization/strings/nl-NL/Resources.resw index 04881c3746..6050b470ea 100644 --- a/localization/strings/nl-NL/Resources.resw +++ b/localization/strings/nl-NL/Resources.resw @@ -2259,10 +2259,6 @@ Gebruik: Vlagargument mag geen verbonden waarde bevatten: '{}' {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - Ongeldige booleaanse waarde voor vlagargument: '{}'. Verwacht true, false, 1 of 0. - {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - Er is een positioneel argument gevonden, terwijl er geen werd verwacht: '{}' {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -2487,58 +2483,6 @@ Ga naar https://aka.ms/privacy voor privacyinformatie over dit product. Schrijf naar een bestand, in plaats van STDOUT {Locked="STDOUT"}Command line arguments, file names and string inserts should not be translated - - Bestanden kopiëren tussen een container en het lokale bestandssysteem. - - - Kopieer bestanden tussen een container en het lokale bestandssysteem. -Gebruik: wslc container cp [OPTIES] BRON BESTEMMING - Lokaal naar container: wslc container cp LOCAL_PATH CONTAINER:PATH - Container naar lokaal: wslc container cp CONTAINER:PATH LOCAL_PATH - stdin naar container: wslc container cp - CONTAINER:PATH - {Locked="wslc"}{Locked="container cp"}{Locked="CONTAINER:PATH"}{Locked="LOCAL_PATH"} - - - Bron: lokaal pad, CONTAINER:PATH, of '-' voor stdin - {Locked="-"}{Locked="CONTAINER:PATH"} - - - Doel: lokaal pad of CONTAINER:PATH - {Locked="CONTAINER:PATH"} - - - Ongeldige doelindeling. Verwacht CONTAINER:PATH - {Locked="CONTAINER:PATH"} - - - Ongeldige bronindeling. Verwacht CONTAINER:PATH - {Locked="CONTAINER:PATH"} - - - Bronpad niet gevonden: {0} - {0} is the source path - - - tar.exe niet gevonden. Windows tar is vereist voor het lokaal kopiëren van bestanden. - {Locked="tar.exe"} - - - Ongeldige kopieerrichting. Gebruik CONTAINER:PATH als bron of doel. - {Locked="CONTAINER:PATH"} - - - Kan geen tar-gegevens van de terminal lezen. Stuur een tar-archief naar stdin. -Voorbeeld: tar -cf - files | wslc container cp - CONTAINER:/path - {Locked="tar -cf -"}{Locked="wslc container cp"}{Locked="CONTAINER:/path"} - - - Er konden geen bestanden uit het containerarchief worden uitgepakt - Shown when the container archive download produced no extractable files. - - - Kan een map niet naar een bestandspad kopiëren. Gebruik in plaats daarvan een mapdoel (met een afsluitend scheidingsteken). - Shown when the user tries to copy a directory from the container to a file destination. - Een container inspecteren. @@ -2839,10 +2783,6 @@ Bij de eerste uitvoering wordt het bestand aangemaakt met alle instellingen geco Alles weergeven, ongeacht de status. - - Archiefmodus (geaccepteerd voor Docker CLI-compatibiliteit) - {Locked="Docker"} - Set build-time variables (KEY=VALUE) {Locked="KEY=VALUE"}Command line arguments should not be translated @@ -2909,24 +2849,6 @@ Bij de eerste uitvoering wordt het bestand aangemaakt met alle instellingen geco Ongeldige {}-waarde: {}. Alleen 'all' wordt ondersteund. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - Opdracht om uit te voeren om de gezondheid van de container te controleren - - - Tijd tussen het uitvoeren van de healthcheck (bijv. 30s, 1m30s) - {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated - - - Het aantal opeenvolgende fouten dat nodig is om de container als niet in orde te melden - - - Startperiode voor het initialiseren van de container voordat het aftellen voor de healthcheck begint (bijv. 30s, 1m30s) - {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated - - - Maximale tijd om één healthcheck uit te voeren (bijv. 30s, 1m30s) - {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated - Afbeeldingen verwijderen, zelfs als ze worden gebruikt @@ -2984,9 +2906,6 @@ Bij de eerste uitvoering wordt het bestand aangemaakt met alle instellingen geco Gebruik geen cache bij het bouwen van de image - - Schakel een eventuele door de container opgegeven gezondheidscontrole uit - Verwijder geen niet-getagde bovenliggende items @@ -3167,14 +3086,6 @@ Bij de eerste uitvoering wordt het bestand aangemaakt met alle instellingen geco Ongeldige {} argumentwaarde: {}. Er wordt een geheugengrootte verwacht (bijvoorbeeld 256M, 1G) {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="256M"}{Locked="1G"} - - Ongeldige {} argumentwaarde: {}. Er wordt een duur verwacht (bijvoorbeeld 30s, 1m30s) - {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="30s"}{Locked="1m30s"} - - - De optie --no-healthcheck kan niet worden gecombineerd met andere healthcheckopties. - {Locked="--no-healthcheck "}Command line arguments, file names and string inserts should not be translated - CID-bestand {} bestaat al {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -3266,18 +3177,6 @@ Bij de eerste uitvoering wordt het bestand aangemaakt met alle instellingen geco Verwijderd: {} {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - Een container verbinden met een netwerk - - - Verbindt een container met een bestaand netwerk. - - - Koppel een container los van een netwerk. - - - Verbreekt de verbinding van een container met een bestaand netwerk. - Volumes beheren. diff --git a/localization/strings/pl-PL/Resources.resw b/localization/strings/pl-PL/Resources.resw index 24b9ef9f74..e30d76ec10 100644 --- a/localization/strings/pl-PL/Resources.resw +++ b/localization/strings/pl-PL/Resources.resw @@ -2259,10 +2259,6 @@ Użycie: Argument flagi nie może zawierać wartości przylegającej: „{}” {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - Nieprawidłowa wartość logiczna dla argumentu flagi: "{}". Oczekiwano wartości true, false, 1 lub 0. - {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - Znaleziono argument pozycyjny, mimo że nie był on oczekiwany: „{}” {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -2431,7 +2427,7 @@ Aby uzyskać informacje o prywatności dotyczące tego produktu, odwiedź stron {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - Tworzenie magazynu sesji w lokalizacji „{}” zgodnie z konfiguracją ustawienia session.storagePath. Jeśli później zmienisz lub usuniesz to ustawienie, dane przechowywane tutaj nie będą już używane przez sesję domyślną i będzie można je usunąć, aby odzyskać miejsce. + Creating session storage at '{}' as configured by session.storagePath. If you later change or remove this setting, data stored here will no longer be used by the default session and can be deleted to reclaim space. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated. {Locked="session.storagePath"}"session.storagePath" is a configuration setting name and should not be translated. @@ -2487,58 +2483,6 @@ Aby uzyskać informacje o prywatności dotyczące tego produktu, odwiedź stron Zapisz do pliku zamiast do STDOUT {Locked="STDOUT"}Command line arguments, file names and string inserts should not be translated - - Kopiuj pliki między kontenerem a lokalnym systemem plików. - - - Kopiuj pliki między kontenerem a lokalnym systemem plików. -Użycie: wslc container cp [OPTIONS] SOURCE DEST - Z lokalnego do kontenera: wslc container cp LOCAL_PATH CONTAINER:PATH - Z kontenera do lokalnego: wslc container cp CONTAINER:PATH LOCAL_PATH - Ze stdin do kontenera: wslc container cp - CONTAINER:PATH - {Locked="wslc"}{Locked="container cp"}{Locked="CONTAINER:PATH"}{Locked="LOCAL_PATH"} - - - Źródło: ścieżka lokalna, CONTAINER:PATH lub „-” dla stdin - {Locked="-"}{Locked="CONTAINER:PATH"} - - - Miejsce docelowe: ścieżka lokalna lub CONTAINER:PATH - {Locked="CONTAINER:PATH"} - - - Nieprawidłowy format miejsca docelowego. Oczekiwano CONTAINER:PATH - {Locked="CONTAINER:PATH"} - - - Nieprawidłowy format źródła. Oczekiwano CONTAINER:PATH - {Locked="CONTAINER:PATH"} - - - Nie znaleziono ścieżki źródła: {0} - {0} is the source path - - - Nie znaleziono tar.exe. Plik tar systemu Windows jest wymagany do kopiowania plików lokalnych. - {Locked="tar.exe"} - - - Nieprawidłowy kierunek kopiowania. Użyj CONTAINER:PATH jako źródła lub miejsca docelowego. - {Locked="CONTAINER:PATH"} - - - Nie można odczytać danych tar z terminala. Prześlij archiwum tar do stdin. -Przykład: tar -cf - files | wslc container cp - CONTAINER:/path - {Locked="tar -cf -"}{Locked="wslc container cp"}{Locked="CONTAINER:/path"} - - - Nie wyodrębniono żadnego pliku z archiwum kontenera - Shown when the container archive download produced no extractable files. - - - Nie można skopiować katalogu do ścieżki pliku. Zamiast tego użyj elementu docelowego katalogu (z separatorem końcowym). - Shown when the user tries to copy a directory from the container to a file destination. - Sprawdź kontener. @@ -2839,10 +2783,6 @@ Przy pierwszym uruchomieniu tworzy plik ze wszystkimi ustawieniami ujętymi w ko Pokaż wszystko bez względu na stan. - - Tryb archiwum (akceptowany w celu zachowania zgodności z interfejsem wiersza polecenia platformy Docker) - {Locked="Docker"} - Ustaw zmienne czasu kompilacji (KEY=VALUE) {Locked="KEY=VALUE"}Command line arguments should not be translated @@ -2909,24 +2849,6 @@ Przy pierwszym uruchomieniu tworzy plik ze wszystkimi ustawieniami ujętymi w ko Nieprawidłowa wartość {}: „{}”. Obsługiwana jest tylko wartość „all”. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - Polecenie do uruchomienia w celu kontroli kondycji kontenera - - - Czas między uruchomieniami kontroli kondycji (np. 30s, 1m30s) - {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated - - - Liczba kolejnych niepowodzeń wymagana do zgłoszenia kontenera jako niesprawny - - - Okres początkowy na inicjację kontenera przed rozpoczęciem odliczania do kontroli kondycji (np. 30s, 1m30s) - {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated - - - Maksymalny czas na wykonanie jednej kontroli kondycji (np. 30s, 1m30s) - {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated - Usuń obrazy, nawet jeśli są używane @@ -2984,9 +2906,6 @@ Przy pierwszym uruchomieniu tworzy plik ze wszystkimi ustawieniami ujętymi w ko Nie używaj pamięci podręcznej podczas kompilowania obrazu - - Wyłącz wszelkie kontrole kondycji określone dla kontenera - Nie usuwaj elementów nadrzędnych bez tagów @@ -3167,14 +3086,6 @@ Przy pierwszym uruchomieniu tworzy plik ze wszystkimi ustawieniami ujętymi w ko Nieprawidłowa wartość argumentu {}: »{}«. Oczekiwano rozmiaru pamięci (np. 256M, 1G) {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="256M"}{Locked="1G"} - - Nieprawidłowa wartość argumentu {}: '{}'. Oczekiwano czasu trwania (np. 30s, 1m30s) - {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="30s"}{Locked="1m30s"} - - - Opcji --no-healthcheck nie można łączyć z innymi opcjami kontroli kondycji. - {Locked="--no-healthcheck "}Command line arguments, file names and string inserts should not be translated - Plik CID „{}” już istnieje {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -3266,18 +3177,6 @@ Przy pierwszym uruchomieniu tworzy plik ze wszystkimi ustawieniami ujętymi w ko Usunięto: {} {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - Połącz kontener z siecią - - - Łączy kontener z istniejącą siecią. - - - Odłącz kontener od sieci. - - - Odłącza kontener od istniejącej sieci. - Zarządzaj woluminami. diff --git a/localization/strings/pt-BR/Resources.resw b/localization/strings/pt-BR/Resources.resw index 8319d29615..dd1ae7b70e 100644 --- a/localization/strings/pt-BR/Resources.resw +++ b/localization/strings/pt-BR/Resources.resw @@ -2266,10 +2266,6 @@ Uso: Argumento sinalizado não pode conter valores adjacentes: '{}' {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - Valor booliano inválido para o argumento de sinalizador: '{}'. Era esperado true, false, 1 ou 0. - {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - Encontrado um argumento posicional quando nenhum era esperado: '{}' {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -2494,58 +2490,6 @@ Para obter informações sobre a privacidade desse produto, visite https://aka.m Gravar em um arquivo, em vez de STDOUT {Locked="STDOUT"}Command line arguments, file names and string inserts should not be translated - - Copie arquivos entre um contêiner e o sistema de arquivos local. - - - Copiar arquivos entre um contêiner e o sistema de arquivos local. -Uso: wslc container cp [OPÇÕES] ORIGEM DESTINO - Local para contêiner: wslc container cp LOCAL_PATH CONTAINER:PATH - Contêiner para local: wslc container cp CONTAINER:PATH LOCAL_PATH - Stdin para contêiner: wslc container cp - CONTAINER:PATH - {Locked="wslc"}{Locked="container cp"}{Locked="CONTAINER:PATH"}{Locked="LOCAL_PATH"} - - - Fonte: caminho local, CONTAINER:PATH, ou '-' para stdin - {Locked="-"}{Locked="CONTAINER:PATH"} - - - Destino: caminho local ou CONTAINER:PATH - {Locked="CONTAINER:PATH"} - - - Formato de destino inválido. Esperado CONTAINER:PATH - {Locked="CONTAINER:PATH"} - - - Formato de origem inválido. Esperado CONTAINER:PATH - {Locked="CONTAINER:PATH"} - - - Caminho de origem não encontrado: {0} - {0} is the source path - - - tar.exe não encontrado. O tar do Windows é necessário para a cópia do arquivo local. - {Locked="tar.exe"} - - - Direção de cópia inválida. Use CONTAINER:PATH como origem ou destino. - {Locked="CONTAINER:PATH"} - - - Não é possível ler dados tar do terminal. Canalizar um arquivo tar para stdin. -Exemplo: tar -cf - arquivos | wslc container cp - CONTAINER:/path - {Locked="tar -cf -"}{Locked="wslc container cp"}{Locked="CONTAINER:/path"} - - - Nenhum arquivo extraído do arquivo de contêiner - Shown when the container archive download produced no extractable files. - - - Não é possível copiar um diretório para um caminho de arquivo. Use um destino de diretório (com separador à direita). - Shown when the user tries to copy a directory from the container to a file destination. - Inspecionar um contêiner. @@ -2846,10 +2790,6 @@ Na primeira execução, cria o arquivo com todas as configurações comentadas n Mostrar tudo independentemente do estado. - - Modo de arquivo (aceito para compatibilidade com a CLI do Docker) - {Locked="Docker"} - Definir variáveis de tempo de criação (KEY=VALUE) {Locked="KEY=VALUE"}Command line arguments should not be translated @@ -2916,24 +2856,6 @@ Na primeira execução, cria o arquivo com todas as configurações comentadas n Valor {} inválido: '{}'. Há suporte somente para 'all'. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - Comando a ser executado para verificar a integridade do contêiner - - - Tempo entre a execução da verificação de integridade (por exemplo, 30s, 1m30s) - {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated - - - Falhas consecutivas necessárias para relatar o contêiner como não íntegro - - - Período de inicialização para o contêiner ser inicializado antes da contagem regressiva da verificação de integridade (por exemplo, 30s, 1m30s) - {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated - - - Tempo máximo para permitir a execução de uma verificação de integridade (por exemplo, 30s, 1m30s) - {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated - Excluir imagens mesmo que elas estejam sendo usadas @@ -2991,9 +2913,6 @@ Na primeira execução, cria o arquivo com todas as configurações comentadas n Não usar cache ao compilar a imagem - - Desabilitar uma verificação de integridade especificada pelo contêiner - Não excluir pais sem rótulo @@ -3174,14 +3093,6 @@ Na primeira execução, cria o arquivo com todas as configurações comentadas n Valor de argumento {} inválido: '{}'. Tamanho de memória esperado (por exemplo, 256M, 1G) {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="256M"}{Locked="1G"} - - Valor de argumento {} inválido: ''{}''. Duração esperada (por exemplo, 30s, 1m30s) - {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="30s"}{Locked="1m30s"} - - - A opção --no-healthcheck não pode ser combinada com outras opções de marcar de integridade. - {Locked="--no-healthcheck "}Command line arguments, file names and string inserts should not be translated - O arquivo CID '{}' já existe {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -3273,18 +3184,6 @@ Na primeira execução, cria o arquivo com todas as configurações comentadas n Excluído: {} {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - Conectar um contêiner a uma rede - - - Conecta um contêiner a uma rede existente. - - - Desconecta um contêiner de uma rede. - - - Desconecta um contêiner de uma rede existente. - Gerenciar volumes. diff --git a/localization/strings/pt-PT/Resources.resw b/localization/strings/pt-PT/Resources.resw index 5ede17c326..fafc84d96c 100644 --- a/localization/strings/pt-PT/Resources.resw +++ b/localization/strings/pt-PT/Resources.resw @@ -2259,10 +2259,6 @@ Utilização: O argumento de sinalizador não pode conter um valor adjacente: '{}' {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - Valor booleano inválido para o argumento de sinalizador: '{}'. True, false, 1 ou 0 esperado. - {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - Foi encontrado um argumento posicional quando não era esperado nenhum: '{}' {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -2431,7 +2427,7 @@ Para obter informações de privacidade sobre este produto, visite https://aka.m {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - A criar armazenamento de sessão em '{}' conforme configurado por session.storagePath. Se alterar ou remover esta definição mais tarde, os dados armazenados aqui deixarão de ser utilizados pela sessão predefinida e podem ser eliminados para recuperar espaço. + Creating session storage at '{}' as configured by session.storagePath. If you later change or remove this setting, data stored here will no longer be used by the default session and can be deleted to reclaim space. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated. {Locked="session.storagePath"}"session.storagePath" is a configuration setting name and should not be translated. @@ -2487,58 +2483,6 @@ Para obter informações de privacidade sobre este produto, visite https://aka.m Escreva num ficheiro, em vez de STDOUT {Locked="STDOUT"}Command line arguments, file names and string inserts should not be translated - - Copie ficheiros entre um contentor e o sistema de ficheiros local. - - - Copie ficheiros entre um contentor e o sistema de ficheiros local. -Utilização: wslc container cp [OPTIONS] SOURCE DEST - Local para contentor: wslc container cp LOCAL_PATH CONTAINER:PATH - Contentor para local: wslc container cp CONTAINER:PATH LOCAL_PATH - Stdin para contentor: wslc container cp - CONTAINER:PATH - {Locked="wslc"}{Locked="container cp"}{Locked="CONTAINER:PATH"}{Locked="LOCAL_PATH"} - - - Origem: caminho local, CONTAINER:PATH ou '-' para stdin - {Locked="-"}{Locked="CONTAINER:PATH"} - - - Destino: caminho local ou CONTAINER:PATH - {Locked="CONTAINER:PATH"} - - - Formato de destino inválido. Esperado: CONTAINER:PATH - {Locked="CONTAINER:PATH"} - - - Formato de origem inválido. Esperado: CONTAINER:PATH - {Locked="CONTAINER:PATH"} - - - Caminho de origem não encontrado: {0} - {0} is the source path - - - tar.exe não encontrado. O tar do Windows é necessário para a cópia de ficheiros local. - {Locked="tar.exe"} - - - Direção de cópia inválida. Utilize CONTAINER:PATH como origem ou destino. - {Locked="CONTAINER:PATH"} - - - Não é possível ler dados tar do terminal. Encaminhe um arquivo tar para stdin. -Exemplo: tar -cf - files | wslc container cp - CONTAINER:/path - {Locked="tar -cf -"}{Locked="wslc container cp"}{Locked="CONTAINER:/path"} - - - Nenhum ficheiro extraído do arquivo do contentor - Shown when the container archive download produced no extractable files. - - - Não é possível copiar um diretório para um caminho de ficheiro. Utilize um destino de diretório (com separador final) em vez disso. - Shown when the user tries to copy a directory from the container to a file destination. - Inspecionar um contentor. @@ -2839,10 +2783,6 @@ Na primeira execução, cria o ficheiro com todas as definições comentadas nas Mostrar tudo independentemente do estado. - - Modo de arquivo (aceite para compatibilidade com a CLI do Docker) - {Locked="Docker"} - Definir variáveis de compilação (KEY=VALUE) {Locked="KEY=VALUE"}Command line arguments should not be translated @@ -2909,24 +2849,6 @@ Na primeira execução, cria o ficheiro com todas as definições comentadas nas Valor de {} inválido: "{}". Apenas "all" é suportado. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - Comando a executar para verificar a integridade do contentor - - - Intervalo entre execuções da verificação de estado de funcionamento (por exemplo, 30s, 1m30s) - {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated - - - Falhas consecutivas necessárias para indicar que o contentor não está saudável - - - Período de inicialização do contentor antes da contagem decrescente da verificação de estado de funcionamento (por exemplo, 30s, 1m30s) - {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated - - - Tempo máximo permitido para executar uma verificação de estado de funcionamento (por exemplo, 30s, 1m30s) - {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated - Eliminar imagens mesmo que estejam a ser utilizadas @@ -2984,9 +2906,6 @@ Na primeira execução, cria o ficheiro com todas as definições comentadas nas Não utilizar cache ao criar a imagem - - Desativar qualquer verificação de estado de funcionamento especificada no contentor - Não eliminar os pais não marcados @@ -3167,14 +3086,6 @@ Na primeira execução, cria o ficheiro com todas as definições comentadas nas Valor de argumento {} inválido: "{}". Era esperado um tamanho de memória (por exemplo, 256M, 1G) {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="256M"}{Locked="1G"} - - Valor de argumento {} inválido: '{}'. Era esperada uma duração (por exemplo, 30s, 1m30s) - {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="30s"}{Locked="1m30s"} - - - A opção --no-healthcheck não pode ser combinada com outras opções de verificação de estado de funcionamento. - {Locked="--no-healthcheck "}Command line arguments, file names and string inserts should not be translated - O ficheiro CID "{}" já existe {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -3266,18 +3177,6 @@ Na primeira execução, cria o ficheiro com todas as definições comentadas nas Eliminado: {} {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - Ligar um contentor a uma rede - - - Liga um contentor a uma rede existente. - - - Desligar um contentor a partir de uma rede. - - - Desliga um contentor a partir de uma rede existente. - Gira volumes. diff --git a/localization/strings/ru-RU/Resources.resw b/localization/strings/ru-RU/Resources.resw index 6bc7566a0d..18a6e335b6 100644 --- a/localization/strings/ru-RU/Resources.resw +++ b/localization/strings/ru-RU/Resources.resw @@ -2266,10 +2266,6 @@ wsl.exe --manage <DistributionName> --set-sparse true --allow-unsafeАргумент флага не может содержать присоединенное значение: "{}" {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - Недопустимое логическое значение для аргумента флага: "{}". Ожидается значение true, false, 1 или 0. - {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - Найден позиционный аргумент, когда не ожидалось: "{}" {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -2494,58 +2490,6 @@ wsl.exe --manage <DistributionName> --set-sparse true --allow-unsafeЗаписывать в файл вместо STDOUT {Locked="STDOUT"}Command line arguments, file names and string inserts should not be translated - - Копирование файлов между контейнером и локальной файловой системой. - - - Копирование файлов между контейнером и локальной файловой системой. -Использование: wslc container cp [OPTIONS] SOURCE DEST - Локальный путь к контейнеру: wslc container cp LOCAL_PATH CONTAINER:PATH - Контейнер в локальный каталог: wslc container cp CONTAINER:PATH LOCAL_PATH - Ввод из стандартного потока в контейнер: wslc container cp - CONTAINER:PATH - {Locked="wslc"}{Locked="container cp"}{Locked="CONTAINER:PATH"}{Locked="LOCAL_PATH"} - - - Источник: локальный путь, CONTAINER:PATH или "-" для стандартного ввода - {Locked="-"}{Locked="CONTAINER:PATH"} - - - Пункт назначения: локальный путь или CONTAINER:PATH - {Locked="CONTAINER:PATH"} - - - Недопустимый формат назначения. Ожидается CONTAINER:PATH - {Locked="CONTAINER:PATH"} - - - Недопустимый формат источника. Ожидается CONTAINER:PATH - {Locked="CONTAINER:PATH"} - - - Исходный путь не найден: {0} - {0} is the source path - - - tar.exe не найден. Для локального копирования файлов требуется TAR Windows. - {Locked="tar.exe"} - - - Недопустимое направление копирования. Используйте CONTAINER:PATH в качестве источника или назначения. - {Locked="CONTAINER:PATH"} - - - Не удается прочитать данные tar из терминала. Передать архив tar в стандартный ввод. -Пример: tar -cf - files | wslc container cp - CONTAINER:/path - {Locked="tar -cf -"}{Locked="wslc container cp"}{Locked="CONTAINER:/path"} - - - Файл не извлечен из архива контейнера - Shown when the container archive download produced no extractable files. - - - Невозможно скопировать каталог в путь к файлу. Вместо этого используйте конечный объект каталога (с конечным разделителем). - Shown when the user tries to copy a directory from the container to a file destination. - Проверить контейнер. @@ -2846,10 +2790,6 @@ wsl.exe --manage <DistributionName> --set-sparse true --allow-unsafe Показать все, независимо от состояния. - - Режим архивации (поддерживается для совместимости с Docker CLI) - {Locked="Docker"} - Задать переменные времени сборки (KEY=VALUE) {Locked="KEY=VALUE"}Command line arguments should not be translated @@ -2916,24 +2856,6 @@ wsl.exe --manage <DistributionName> --set-sparse true --allow-unsafeНедопустимое значение {}: "{}". Поддерживается только "all". {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - Команда для проверки работоспособности контейнера - - - Время между запусками проверки работоспособности системы (например, 30s, 1m30s) - {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated - - - Чтобы сообщить о контейнере как о неработоспособном, требуется заданное число последовательных сбоев - - - Начальный период для инициализации контейнера перед обратным отсчетом проверки работоспособности (например, 30s, 1m30s) - {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated - - - Максимальное время, отведенное на выполнение одной проверки работоспособности (например, 30s, 1m30s) - {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated - Удалять образы, даже если они используются @@ -2991,9 +2913,6 @@ wsl.exe --manage <DistributionName> --set-sparse true --allow-unsafe Не использовать кэш при сборке образа - - Отключить любую проверку работоспособности, указанную в контейнере - Не удаляйте родительские файлы без тега @@ -3174,14 +3093,6 @@ wsl.exe --manage <DistributionName> --set-sparse true --allow-unsafeНедопустимое значение аргумента {}: "{}". Ожидается объем памяти (например, 256M, 1G) {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="256M"}{Locked="1G"} - - Недопустимое значение аргумента {}: "{}". Ожидаемая длительность (например, 30s, 1m30s) - {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="30s"}{Locked="1m30s"} - - - Параметр --no-healthcheck нельзя комбинировать с другими параметрами проверки работоспособности. - {Locked="--no-healthcheck "}Command line arguments, file names and string inserts should not be translated - CID-файл "{}" уже существует {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -3273,18 +3184,6 @@ wsl.exe --manage <DistributionName> --set-sparse true --allow-unsafeУдалено: {} {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - Подключите контейнер к сети - - - Подключает контейнер к существующей сети. - - - Отключите контейнер от сети. - - - Отключает контейнер от существующей сети. - Управление томами. diff --git a/localization/strings/sv-SE/Resources.resw b/localization/strings/sv-SE/Resources.resw index 2edd6d6332..5b01664aa0 100644 --- a/localization/strings/sv-SE/Resources.resw +++ b/localization/strings/sv-SE/Resources.resw @@ -2259,10 +2259,6 @@ Användning: Flaggargumentet kan inte innehålla ett angränsande värde: "{}" {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - Ogiltigt booleskt värde för flaggargumentet '{}'. Förväntade sant, falskt, 1 eller 0. - {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - Hittade ett positionsargument när inget förväntades: "{}" {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -2487,59 +2483,6 @@ För sekretessinformation om den här produkten, besök https://aka.ms/privacy.< Skriv till en fil i stället för STDOUT {Locked="STDOUT"}Command line arguments, file names and string inserts should not be translated - - Kopiera filer mellan en container och det lokala filsystemet. - - - Kopiera filer mellan en container och det lokala filsystemet. -Användning: wslc container cp [ALTERNATIV] SOURCE DEST - Lokalt till container: wslc container cp LOCAL_PATH CONTAINER:PATH - Container till lokalt: wslc container cp CONTAINER:PATH LOCAL_PATH - Stdin till container: wslc container cp – CONTAINER:PATH - {Locked="wslc"}{Locked="container cp"}{Locked="CONTAINER:PATH"}{Locked="LOCAL_PATH"} - - - Källa: lokal sökväg, CONTAINER:PATH eller '-' för stdin - {Locked="-"}{Locked="CONTAINER:PATH"} - - - Destination: lokal sökväg eller CONTAINER:PATH - {Locked="CONTAINER:PATH"} - - - Ogiltigt målformat. - Förväntat format: CONTAINER:PATH - {Locked="CONTAINER:PATH"} - - - Ogiltigt källformat. Förväntat format: CONTAINER:PATH - {Locked="CONTAINER:PATH"} - - - Hittade inte källsökvägen: {0} - {0} is the source path - - - tar.exe hittades inte. Windows tar krävs för lokal filkopiering. - {Locked="tar.exe"} - - - Ogiltig kopieringsriktning. Använd CONTAINER:PATH som antingen källa eller mål. - {Locked="CONTAINER:PATH"} - - - Kan inte läsa tar-data från terminalen. Skicka vidare i pipeline ett tar-arkiv till stdin. -Exempel: tar -cf - files | wslc container cp - CONTAINER:/path - {Locked="tar -cf -"}{Locked="wslc container cp"}{Locked="CONTAINER:/path"} - - - Ingen fil kunde extraheras från containerarkivet - Shown when the container archive download produced no extractable files. - - - Det går inte att kopiera en katalog till en filsökväg. Använd ett katalogmål (med avslutande avgränsare) i stället. - Shown when the user tries to copy a directory from the container to a file destination. - Inspektera en container. @@ -2840,10 +2783,6 @@ Vid den första körningen skapas filen med alla inställningar kommenterade som Visa alla oavsett status. - - Arkivläge (stöds för kompatibilitet med Docker CLI) - {Locked="Docker"} - Ange versionstidsvariablar (KEY=VALUE) {Locked="KEY=VALUE"}Command line arguments should not be translated @@ -2910,24 +2849,6 @@ Vid den första körningen skapas filen med alla inställningar kommenterade som Ogiltigt {} värde ''{}''. Endast ''all'' stöds. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - Kommando som ska köras för att kontrollera containerhälsa - - - Tid mellan att köra hälsokontrollen (t.ex. 30s, 1m30s) - {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated - - - Efterföljande fel som krävs för att rapportera containern som defekt - - - Startperiod för containern som ska initieras före nedräkningen av hälsokontrollen (t.ex. 30s, 1m30s) - {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated - - - Maximal tid för att tillåta en hälsokontroll att köras (t.ex. 30s, 1m30s) - {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated - Ta bort bilder även om de används @@ -2985,9 +2906,6 @@ Vid den första körningen skapas filen med alla inställningar kommenterade som Använd inte cacheminnet när du skapar avbildningen - - Inaktivera alla hälsokontroller som angetts av containrar - Ta inte bort omärkta föräldrar @@ -3168,14 +3086,6 @@ Vid den första körningen skapas filen med alla inställningar kommenterade som Ogiltigt {} argumentvärde: ''{}''. En minnesstorlek förväntades (t.ex. 256M, 1G) {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="256M"}{Locked="1G"} - - Ogiltigt {} argumentvärde: ''{}''. En varaktighet förväntades (t.ex. 30s, 1m30s) - {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="30s"}{Locked="1m30s"} - - - Alternativet --no-healthcheck kan inte kombineras med andra alternativ för hälsokontroll. - {Locked="--no-healthcheck "}Command line arguments, file names and string inserts should not be translated - CID-filen {} finns redan {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -3267,18 +3177,6 @@ Vid den första körningen skapas filen med alla inställningar kommenterade som Borttagen: {} {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - Ansluta en container till ett nätverk. - - - Ansluter en container till ett befintligt nätverk. - - - Koppla från en container från ett nätverk. - - - Kopplar bort en container från ett befintligt nätverk. - Hantera volymer. diff --git a/localization/strings/tr-TR/Resources.resw b/localization/strings/tr-TR/Resources.resw index fd4c6f8650..e00c83ca9c 100644 --- a/localization/strings/tr-TR/Resources.resw +++ b/localization/strings/tr-TR/Resources.resw @@ -2259,10 +2259,6 @@ Kullanım: Bayrak bağımsız değişkeni ekli değeri içeremez: '{}' {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - Bayrak bağımsız değişkeni için geçersiz boolean değeri: '{}'. Beklenen değer: true, false, 1 veya 0. - {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - Beklenmediği halde bir konumsal bağımsız değişken bulundu: '{}' {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -2431,7 +2427,7 @@ Bu ürünle ilgili gizlilik bilgileri için lütfen https://aka.ms/privacy sayfa {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - session.storagePath ile yapılandırıldığı şekilde '{}' konumunda oturum depolama alanı oluşturuluyor. Bu ayarı daha sonra değiştirir veya kaldırırsanız, burada depolanan veriler artık varsayılan oturum tarafından kullanılmaz ve alan açmak için silinebilir. + Creating session storage at '{}' as configured by session.storagePath. If you later change or remove this setting, data stored here will no longer be used by the default session and can be deleted to reclaim space. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated. {Locked="session.storagePath"}"session.storagePath" is a configuration setting name and should not be translated. @@ -2487,58 +2483,6 @@ Bu ürünle ilgili gizlilik bilgileri için lütfen https://aka.ms/privacy sayfa STDOUT yerine bir dosyaya yazın {Locked="STDOUT"}Command line arguments, file names and string inserts should not be translated - - Dosyaları bir kapsayıcı ile yerel dosya sistemi arasında kopyalar. - - - Bir kapsayıcı ile yerel dosya sistemi arasında dosya kopyalayın. -Kullanım: wslc container cp [OPTIONS] SOURCE DEST - Yerelden kapsayıcıya: wslc container cp LOCAL_PATH CONTAINER:PATH - Kapsayıcıdan yerele: wslc container cp CONTAINER:PATH LOCAL_PATH - Stdin’dan kapsayıcıya: wslc container cp - CONTAINER:PATH - {Locked="wslc"}{Locked="container cp"}{Locked="CONTAINER:PATH"}{Locked="LOCAL_PATH"} - - - Kaynak: yerel yol, CONTAINER:PATH veya stdin için '-' - {Locked="-"}{Locked="CONTAINER:PATH"} - - - Hedef: yerel yol veya CONTAINER:PATH - {Locked="CONTAINER:PATH"} - - - Geçersiz hedef biçimi. Beklenen biçim CONTAINER:PATH - {Locked="CONTAINER:PATH"} - - - Kaynak biçimi geçersiz. Beklenen biçim CONTAINER:PATH - {Locked="CONTAINER:PATH"} - - - Kaynak yolu bulunamadı: {0} - {0} is the source path - - - tar.exe bulunamadı. Yerel dosya kopyalama için Windows tar gereklidir. - {Locked="tar.exe"} - - - Geçersiz kopyalama yönü. Ya kaynak ya da hedef olarak CONTAINER:PATH kullanın. - {Locked="CONTAINER:PATH"} - - - Terminalden tar verisi okunamıyor. Bir tar arşivini stdin'e aktarın. -Örnek: tar -cf - files | wslc container cp - CONTAINER:/path - {Locked="tar -cf -"}{Locked="wslc container cp"}{Locked="CONTAINER:/path"} - - - Kapsayıcı arşivinden herhangi bir dosya ayıklanmadı - Shown when the container archive download produced no extractable files. - - - Bir dizin bir dosya yoluna kopyalanamaz. Bunun yerine bir dizin hedefi (sonunda ayırıcı bulunan) kullanın. - Shown when the user tries to copy a directory from the container to a file destination. - Bir kapsayıcıyı incele. @@ -2839,10 +2783,6 @@ Kullanım: wslc container cp [OPTIONS] SOURCE DEST Durum ne olursa olsun tümünü göster. - - Arşiv modu (Docker CLI uyumluluğu için kabul edilir) - {Locked="Docker"} - Derleme zamanı değişkenlerini ayarla (KEY=VALUE) {Locked="KEY=VALUE"}Command line arguments should not be translated @@ -2909,24 +2849,6 @@ Kullanım: wslc container cp [OPTIONS] SOURCE DEST Geçersiz {} değeri: '{}'. Yalnızca 'tümü' desteklenir. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - Kapsayıcı durumunu denetlemek için çalıştırılacak komut - - - Sistem durumu denetimi çalıştırmalarının arasındaki süre (ör. 30s, 1m30s) - {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated - - - Kapsayıcının iyi durumda olmadığının bildirilmesi için gereken art arda hata sayısı - - - Sistem durumu denetimi geri sayımı başlamadan önce kapsayıcının başlatılması için başlangıç süresi (ör. 30s, 1m30s) - {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated - - - Bir sistem durumu denetiminin çalışması için izin verilen en uzun süre (örneğin 30s, 1m30s) - {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated - Görüntüleri kullanılıyor olsalar bile sil @@ -2984,9 +2906,6 @@ Kullanım: wslc container cp [OPTIONS] SOURCE DEST Görüntüyü oluştururken önbelleği kullanma - - Kapsayıcıda belirtilen tüm sistem durumu denetimlerini devre dışı bırak - Etiketlenmemiş üst öğeleri silme @@ -3167,14 +3086,6 @@ Kullanım: wslc container cp [OPTIONS] SOURCE DEST Geçersiz {} bağımsız değişken değeri: '{}'. Beklenen bellek boyutu (ör. 256M, 1G) {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="256M"}{Locked="1G"} - - Geçersiz {} bağımsız değişken değeri: '{}'. Beklenen süre (ör. 30s, 1m30s) - {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="30s"}{Locked="1m30s"} - - - --no-healthcheck seçeneği diğer sistem durumu denetimi seçenekleriyle birlikte kullanılamaz. - {Locked="--no-healthcheck "}Command line arguments, file names and string inserts should not be translated - '{}' dosyası zaten var {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -3266,18 +3177,6 @@ Kullanım: wslc container cp [OPTIONS] SOURCE DEST Silindi: {} {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - Bir kapsayıcıyı ağa bağlayın. - - - Bir konteyneri mevcut bir ağa bağlar. - - - Bir kapsayıcının ağ bağlantısını kesin. - - - Bir konteyneri mevcut bir ağdan ayırır. - Birimleri yönetin. diff --git a/localization/strings/zh-CN/Resources.resw b/localization/strings/zh-CN/Resources.resw index b0b65a788a..c421638ccd 100644 --- a/localization/strings/zh-CN/Resources.resw +++ b/localization/strings/zh-CN/Resources.resw @@ -2259,10 +2259,6 @@ wsl.exe --manage <DistributionName> --set-sparse true --allow-unsafe标记参数不得包含邻近值:“{}” {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - 标志参数的布尔值无效:“{}”。应为 true、false、1 或 0。 - {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - 在未预期的情况下找到位置参数:“{}” {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -2431,7 +2427,7 @@ wsl.exe --manage <DistributionName> --set-sparse true --allow-unsafe{FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - 正在按 session.storagePath 的配置在“{}”创建会话存储。如果稍后更改或删除此设置,则默认会话将不再使用此处存储的数据,可以删除这些数据以回收空间。 + Creating session storage at '{}' as configured by session.storagePath. If you later change or remove this setting, data stored here will no longer be used by the default session and can be deleted to reclaim space. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated. {Locked="session.storagePath"}"session.storagePath" is a configuration setting name and should not be translated. @@ -2487,57 +2483,6 @@ wsl.exe --manage <DistributionName> --set-sparse true --allow-unsafe写入文件,而不是 STDOUT {Locked="STDOUT"}Command line arguments, file names and string inserts should not be translated - - 在容器和本地文件系统之间复制文件。 - - - 在容器和本地文件系统之间复制文件。 -用法: wslc container cp [OPTIONS] SOURCE DEST - 本地到容器: wslc container cp LOCAL_PATH CONTAINER:PATH - 容器到本地: wslc container cp CONTAINER:PATH LOCAL_PATH - 标准输入到容器: wslc container cp - CONTAINER:PATH - {Locked="wslc"}{Locked="container cp"}{Locked="CONTAINER:PATH"}{Locked="LOCAL_PATH"} - - - 源:本地路径、CONTAINER:PATH 或 '-' 表示标准输入 - {Locked="-"}{Locked="CONTAINER:PATH"} - - - 目标: 本地路径或 CONTAINER:PATH - {Locked="CONTAINER:PATH"} - - - 目标格式无效。应为 CONTAINER:PATH - {Locked="CONTAINER:PATH"} - - - 源格式无效。应为 CONTAINER:PATH - {Locked="CONTAINER:PATH"} - - - 找不到源路径: {0} - {0} is the source path - - - 找不到 tar.exe。本地文件复制需要 Windows tar。 - {Locked="tar.exe"} - - - 复制方向无效。将 CONTAINER:PATH 用作源或目标。 - {Locked="CONTAINER:PATH"} - - - 无法从终端读取 tar 数据。将 tar 存档通过管道传输到 stdin。 示例:tar -cf - files | wslc container cp - CONTAINER:/path - {Locked="tar -cf -"}{Locked="wslc container cp"}{Locked="CONTAINER:/path"} - - - 未从容器存档中提取到任何文件 - Shown when the container archive download produced no extractable files. - - - 无法将目录复制到文件路径。改用带有尾随分隔符) 的目录目标 (。 - Shown when the user tries to copy a directory from the container to a file destination. - 检查容器。 @@ -2838,10 +2783,6 @@ wsl.exe --manage <DistributionName> --set-sparse true --allow-unsafe 显示所有内容,而不考虑状态。 - - 归档模式(为 Docker CLI 兼容性而接受) - {Locked="Docker"} - 设置生成时变量(KEY=VALUE) {Locked="KEY=VALUE"}Command line arguments should not be translated @@ -2908,24 +2849,6 @@ wsl.exe --manage <DistributionName> --set-sparse true --allow-unsafe{} 值无效:“{}”。仅支持“all”。 {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - 检查容器运行状况的命令 - - - 运行状况检查的运行间隔时间(例如 30s, 1m30s) - {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated - - - 报告容器运行不正常所需的连续失败 - - - 容器在运行状况检查倒计时之前初始化的开始时间段(例如 30s, 1m30s) - {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated - - - 允许一次运行状况检查运行的最长时间(例如 30s, 1m30s) - {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated - 删除映像(即使正在使用它们) @@ -2983,9 +2906,6 @@ wsl.exe --manage <DistributionName> --set-sparse true --allow-unsafe 生成映像时不要使用缓存 - - 禁用任何容器指定的运行状况检查 - 不要删除未标记的父级 @@ -3166,14 +3086,6 @@ wsl.exe --manage <DistributionName> --set-sparse true --allow-unsafe无效 {} 参数值: '{}'。应为内存大小(例如 256M、1G) {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="256M"}{Locked="1G"} - - 无效 {} 参数值: '{}'。预期为持续时间(例如 30s, 1m30s) - {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="30s"}{Locked="1m30s"} - - - 选项 --no-healthcheck 不能与其他健康检查选项组合使用。 - {Locked="--no-healthcheck "}Command line arguments, file names and string inserts should not be translated - CID 文件 "{}" 已存在 {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -3265,18 +3177,6 @@ wsl.exe --manage <DistributionName> --set-sparse true --allow-unsafe已删除: {} {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - 将容器连接到网络 - - - 将容器连接到现有网络。 - - - 断开容器与网络的连接。 - - - 将容器从现有网络断开连接。 - 管理卷。 diff --git a/localization/strings/zh-TW/Resources.resw b/localization/strings/zh-TW/Resources.resw index 0c2a660e0d..ecf893f3d7 100644 --- a/localization/strings/zh-TW/Resources.resw +++ b/localization/strings/zh-TW/Resources.resw @@ -453,9 +453,11 @@ --enable-wsl1 啟用 WSL1 支援。 + --fixed-vhd 建立大小固定的磁碟,以儲存發佈。 + --from-file <Path> 從本機檔案安裝發佈。 @@ -483,7 +485,9 @@ --web-download 從網際網路下載發佈,而非從 Microsoft Store 下載。 + --manage <Distro> <Options...> + 變更 distro 指定選項。 選項: @@ -493,6 +497,7 @@ --set-sparse, -s <true|false> 將 distro 的 VHD 設為疏鬆,允許磁碟空格自動回收。 + --set-default-user <Username> 設定發佈的預設使用者。 @@ -532,6 +537,7 @@ --force 結束 WSL 2 虛擬機器,即使作業正在進行中。可能會造成資料遺失。 + --status 顯示 Linux 版 Windows 子系統的狀態。 @@ -559,6 +565,7 @@ stdout 的檔案名稱可以是 -。 選項: + --format <Format> 指定匯出格式。支援的值: tar、tar.gz、tar.xz、vhd。 @@ -2265,10 +2272,6 @@ wsl.exe --manage <DistributionName> --set-sparse true --allow-unsafe旗標引數不能包含鄰近值: '{}' {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - 旗標引數的布林值無效:「{}」。預期為 True、false、1 或 0。 - {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - 在未預期的情況下找到位置引數: '{}' {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -2437,7 +2440,7 @@ wsl.exe --manage <DistributionName> --set-sparse true --allow-unsafe{FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - 正在依照 session.storagePath 的設定,在 '{}' 建立工作階段儲存體。如果您稍後變更或移除此設定,預設工作階段將不再使用儲存在這裡的資料,而且您可以刪除這些資料以回收空間。 + Creating session storage at '{}' as configured by session.storagePath. If you later change or remove this setting, data stored here will no longer be used by the default session and can be deleted to reclaim space. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated. {Locked="session.storagePath"}"session.storagePath" is a configuration setting name and should not be translated. @@ -2493,58 +2496,6 @@ wsl.exe --manage <DistributionName> --set-sparse true --allow-unsafe寫入檔案,而不是 STDOUT {Locked="STDOUT"}Command line arguments, file names and string inserts should not be translated - - 在容器與本機檔案系統之間複製檔案。 - - - 在容器與本機檔案系統之間複製檔案。 -使用方式: wslc container cp [OPTIONS] SOURCE DEST - 本機至容器: wslc container cp LOCAL_PATH CONTAINER:PATH - 容器至區域l: wslc container cp CONTAINER:PATH LOCAL_PATH - Stdin 至容器: wslc container cp - CONTAINER:PATH - {Locked="wslc"}{Locked="container cp"}{Locked="CONTAINER:PATH"}{Locked="LOCAL_PATH"} - - - 來源: stdin 的本機路徑、CONTAINER:PATH 或針對 stdin 的「-」 - {Locked="-"}{Locked="CONTAINER:PATH"} - - - 目的地: 區域路徑或 CONTAINER:PATH - {Locked="CONTAINER:PATH"} - - - 無效目的格式。預期的 CONTAINER:PATH - {Locked="CONTAINER:PATH"} - - - 無效來源格式。預期的 CONTAINER:PATH - {Locked="CONTAINER:PATH"} - - - 找不到來源路徑: {0} - {0} is the source path - - - 找不到 tar.exe。本機檔案複製需要 Windows tar。 - {Locked="tar.exe"} - - - 複製方向無效。使用 CONTAINER:PATH 作為來源或目的地。 - {Locked="CONTAINER:PATH"} - - - 無法從終端機讀取 tar 資料。將一個 tar 封存輸送至 stdin。 -範例: tar -cf - files | wslc container cp - CONTAINER:/path - {Locked="tar -cf -"}{Locked="wslc container cp"}{Locked="CONTAINER:/path"} - - - 未從容器封存層擷取檔案 - Shown when the container archive download produced no extractable files. - - - 無法將目錄複製到檔案路徑。請改用目錄目標 (,後置為分隔符號)。 - Shown when the user tries to copy a directory from the container to a file destination. - 檢查容器。 @@ -2845,10 +2796,6 @@ wsl.exe --manage <DistributionName> --set-sparse true --allow-unsafe 全部顯示 (不論狀態)。 - - 封存模式 (已接受以確保 Docker CLI 相容性) - {Locked="Docker"} - 設定建置時間變數 (KEY=VALUE) {Locked="KEY=VALUE"}Command line arguments should not be translated @@ -2915,24 +2862,6 @@ wsl.exe --manage <DistributionName> --set-sparse true --allow-unsafe{} 值無效: '{}'。僅支援 'all'。 {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - 用來檢查容器健康情況的執行命令 - - - 執行健康檢查之間的間隔時間 (例如 30s, 1m30s) - {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated - - - 報告容器狀況不良所需的連續失敗 - - - 容器在健康檢查倒數開始前的初始化期間 (例如 30s, 1m30s) - {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated - - - 允許單次健康檢查執行的最長時間 (例如 30s, 1m30s) - {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated - 即使映像正在使用,仍將其刪除 @@ -2990,9 +2919,6 @@ wsl.exe --manage <DistributionName> --set-sparse true --allow-unsafe 建置影像時請勿使用快取 - - 停用任何容器指定的健康檢查 - 不要刪除未標記的父項 @@ -3173,14 +3099,6 @@ wsl.exe --manage <DistributionName> --set-sparse true --allow-unsafe{} 引數值無效: '{}'。預期記憶體大小 (,例如 256M、1G) {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="256M"}{Locked="1G"} - - 無效的 {} 引數值: '{}'。預期持續時間 (例如 30s, 1m30s) - {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="30s"}{Locked="1m30s"} - - - --no-healthcheck 選項不能與其他健康檢查選項搭配使用。 - {Locked="--no-healthcheck "}Command line arguments, file names and string inserts should not be translated - CID 檔案 '{}' 已存在 {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -3272,18 +3190,6 @@ wsl.exe --manage <DistributionName> --set-sparse true --allow-unsafe已刪除: {} {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - 將容器連線到網路 - - - 將容器連接到現有網路。 - - - 將容器從網路中斷連線。 - - - 將容器從現有網路中斷連線。 - 管理磁碟區。 diff --git a/src/windows/inc/docker_schema.h b/src/windows/inc/docker_schema.h index 87b383a829..549fb023ea 100644 --- a/src/windows/inc/docker_schema.h +++ b/src/windows/inc/docker_schema.h @@ -166,14 +166,78 @@ struct Network NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT(Network, Id, Name, Driver, Scope, Internal, IPAM, Options, Labels); }; +struct EndpointIPAMConfig +{ + std::string IPv4Address; + std::optional> LinkLocalIPs; +}; + +inline void to_json(nlohmann::json& j, const EndpointIPAMConfig& v) +{ + j = nlohmann::json::object(); + if (!v.IPv4Address.empty()) + { + j["IPv4Address"] = v.IPv4Address; + } + if (v.LinkLocalIPs.has_value() && !v.LinkLocalIPs->empty()) + { + j["LinkLocalIPs"] = *v.LinkLocalIPs; + } +} + +struct EndpointConfig +{ + std::optional> Aliases; + std::optional IPAMConfig; + std::optional> Links; + std::optional> DriverOpts; +}; + +inline void to_json(nlohmann::json& j, const EndpointConfig& v) +{ + j = nlohmann::json::object(); + if (v.Aliases.has_value() && !v.Aliases->empty()) + { + j["Aliases"] = *v.Aliases; + } + if (v.IPAMConfig.has_value()) + { + auto ipam = nlohmann::json(*v.IPAMConfig); + if (!ipam.empty()) + { + j["IPAMConfig"] = std::move(ipam); + } + } + if (v.Links.has_value() && !v.Links->empty()) + { + j["Links"] = *v.Links; + } + if (v.DriverOpts.has_value() && !v.DriverOpts->empty()) + { + j["DriverOpts"] = *v.DriverOpts; + } +} + struct ContainerNetworkRequest { using TResponse = void; std::string Container; - - NLOHMANN_DEFINE_TYPE_INTRUSIVE_ONLY_SERIALIZE(ContainerNetworkRequest, Container); + std::optional EndpointConfig; }; +inline void to_json(nlohmann::json& j, const ContainerNetworkRequest& v) +{ + j = nlohmann::json{{"Container", v.Container}}; + if (v.EndpointConfig.has_value()) + { + auto endpoint = nlohmann::json(*v.EndpointConfig); + if (!endpoint.empty()) + { + j["EndpointConfig"] = std::move(endpoint); + } + } +} + struct Mount { std::string Name; @@ -245,6 +309,14 @@ struct HostConfig HostConfig, Mounts, PortBindings, NetworkMode, Init, Dns, DnsSearch, DnsOptions, Binds, Tmpfs, Devices, DeviceRequests, ShmSize, Memory, NanoCpus, Ulimits); }; +struct InspectEndpointIPAMConfig +{ + std::string IPv4Address; + std::optional> LinkLocalIPs; + + NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT(InspectEndpointIPAMConfig, IPv4Address, LinkLocalIPs); +}; + struct EndpointSettings { std::string IPAddress; @@ -252,24 +324,13 @@ struct EndpointSettings std::string MacAddress; int IPPrefixLen{}; std::optional> Aliases; + std::optional> Links; + std::optional> DriverOpts; + std::optional IPAMConfig; - NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT(EndpointSettings, IPAddress, Gateway, MacAddress, IPPrefixLen, Aliases); + NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT(EndpointSettings, IPAddress, Gateway, MacAddress, IPPrefixLen, Aliases, Links, DriverOpts, IPAMConfig); }; -struct EndpointConfig -{ - std::optional> Aliases; -}; - -inline void to_json(nlohmann::json& j, const EndpointConfig& v) -{ - j = nlohmann::json::object(); - if (v.Aliases.has_value() && !v.Aliases->empty()) - { - j["Aliases"] = *v.Aliases; - } -} - struct NetworkingConfig { std::map EndpointsConfig; diff --git a/src/windows/inc/wslc_schema.h b/src/windows/inc/wslc_schema.h index ccbd20a1fd..92c9b9eb22 100644 --- a/src/windows/inc/wslc_schema.h +++ b/src/windows/inc/wslc_schema.h @@ -113,6 +113,14 @@ struct ContainerConfig NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT(ContainerConfig, Env, Cmd, Entrypoint, User, WorkingDir, StopTimeout, Healthcheck); }; +struct InspectEndpointIPAMConfig +{ + std::string IPv4Address; + std::vector LinkLocalIPs; + + NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT(InspectEndpointIPAMConfig, IPv4Address, LinkLocalIPs); +}; + struct InspectEndpointSettings { std::string IPAddress; @@ -120,8 +128,11 @@ struct InspectEndpointSettings std::string MacAddress; int IPPrefixLen{}; std::vector Aliases; + std::vector Links; + std::map DriverOpts; + std::optional IPAMConfig; - NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT(InspectEndpointSettings, IPAddress, Gateway, MacAddress, IPPrefixLen, Aliases); + NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT(InspectEndpointSettings, IPAddress, Gateway, MacAddress, IPPrefixLen, Aliases, Links, DriverOpts, IPAMConfig); }; struct InspectNetworkSettings diff --git a/src/windows/service/inc/wslc.idl b/src/windows/service/inc/wslc.idl index 35e272a71f..e0f67727a9 100644 --- a/src/windows/service/inc/wslc.idl +++ b/src/windows/service/inc/wslc.idl @@ -232,7 +232,10 @@ typedef struct _WSLCNetworkConnection typedef struct _WSLCNetworkConnectionOptions { [unique] LPCSTR NetworkName; - [unique] LPCSTR ContainerIpAddress; // Reserved for future --ip support; must be NULL today. + // Endpoint settings for the network connection (Aliases, IPAddress, Links, LinkLocalIPs, DriverOpts). + // KVP-encoded; duplicate keys are allowed (e.g., multiple "Aliases" entries). + [unique, size_is(SettingsCount)] const KeyValuePair* Settings; + ULONG SettingsCount; } WSLCNetworkConnectionOptions; typedef struct _WSLCContainerNetwork diff --git a/src/windows/wslc/arguments/ArgumentDefinitions.h b/src/windows/wslc/arguments/ArgumentDefinitions.h index 268ab69ff8..db463e711b 100644 --- a/src/windows/wslc/arguments/ArgumentDefinitions.h +++ b/src/windows/wslc/arguments/ArgumentDefinitions.h @@ -51,6 +51,7 @@ _(DNSOption, "dns-option", NO_ALIAS, Kind::Value, L _(DNSSearch, "dns-search", NO_ALIAS, Kind::Value, Localization::WSLCCLI_DNSSearchArgDescription()) \ _(Domainname, "domainname", NO_ALIAS, Kind::Value, Localization::WSLCCLI_DomainnameArgDescription()) \ _(Driver, "driver", L"d", Kind::Value, Localization::WSLCCLI_DriverOptionDescription()) \ +_(DriverOpt, "driver-opt", NO_ALIAS, Kind::Value, Localization::WSLCCLI_DriverOptArgDescription()) \ _(Entrypoint, "entrypoint", NO_ALIAS, Kind::Value, Localization::WSLCCLI_EntrypointArgDescription()) \ _(Env, "env", L"e", Kind::Value, Localization::WSLCCLI_EnvArgDescription()) \ _(EnvFile, "env-file", NO_ALIAS, Kind::Value, Localization::WSLCCLI_EnvFileArgDescription()) \ @@ -78,9 +79,12 @@ _(ImportFile, "file", NO_ALIAS, Kind::Positional, L _(Input, "input", L"i", Kind::Value, Localization::WSLCCLI_InputArgDescription()) \ _(Interactive, "interactive", L"i", Kind::Flag, Localization::WSLCCLI_InteractiveArgDescription()) \ _(Internal, "internal", NO_ALIAS, Kind::Flag, Localization::WSLCCLI_NetworkInternalArgDescription()) \ +_(IpAddress, "ip", NO_ALIAS, Kind::Value, Localization::WSLCCLI_IpAddressArgDescription()) \ _(Label, "label", L"l", Kind::Value, Localization::WSLCCLI_LabelArgDescription()) \ _(Last, "last", L"n", Kind::Value, Localization::WSLCCLI_LastArgDescription()) \ _(Latest, "latest", L"l", Kind::Flag, Localization::WSLCCLI_LatestArgDescription()) \ +_(Link, "link", NO_ALIAS, Kind::Value, Localization::WSLCCLI_LinkArgDescription()) \ +_(LinkLocalIp, "link-local-ip", NO_ALIAS, Kind::Value, Localization::WSLCCLI_LinkLocalIpArgDescription()) \ _(Memory, "memory", L"m", Kind::Value, Localization::WSLCCLI_MemoryArgDescription()) \ _(Name, "name", NO_ALIAS, Kind::Value, Localization::WSLCCLI_NameArgDescription()) \ _(Network, "network", NO_ALIAS, Kind::Value, Localization::WSLCCLI_NetworkArgDescription()) \ diff --git a/src/windows/wslc/commands/NetworkConnectCommand.cpp b/src/windows/wslc/commands/NetworkConnectCommand.cpp index 462af190fb..a8a8d0a845 100644 --- a/src/windows/wslc/commands/NetworkConnectCommand.cpp +++ b/src/windows/wslc/commands/NetworkConnectCommand.cpp @@ -29,6 +29,11 @@ std::vector NetworkConnectCommand::GetArguments() const return { Argument::Create(ArgType::NetworkName, true), Argument::Create(ArgType::ContainerId, true), + Argument::Create(ArgType::NetworkAlias, false, NO_LIMIT), + Argument::Create(ArgType::IpAddress, false), + Argument::Create(ArgType::Link, false, NO_LIMIT), + Argument::Create(ArgType::LinkLocalIp, false, NO_LIMIT), + Argument::Create(ArgType::DriverOpt, false, NO_LIMIT), }; } diff --git a/src/windows/wslc/services/NetworkModel.h b/src/windows/wslc/services/NetworkModel.h index c696f6eb1f..b670f05fe4 100644 --- a/src/windows/wslc/services/NetworkModel.h +++ b/src/windows/wslc/services/NetworkModel.h @@ -30,6 +30,17 @@ struct CreateNetworkOptions std::optional Gateway; }; +struct ConnectNetworkOptions +{ + std::string NetworkName; + std::string ContainerId; + std::vector Aliases; + std::optional IpAddress; + std::vector Links; + std::vector LinkLocalIps; + std::vector DriverOpts; +}; + struct PruneNetworksResult { std::vector PrunedNetworks; diff --git a/src/windows/wslc/services/NetworkService.cpp b/src/windows/wslc/services/NetworkService.cpp index 5e98756d51..052f645c4f 100644 --- a/src/windows/wslc/services/NetworkService.cpp +++ b/src/windows/wslc/services/NetworkService.cpp @@ -116,13 +116,46 @@ models::PruneNetworksResult NetworkService::Prune(models::Session& session, cons return result; } -void NetworkService::Connect(models::Session& session, const std::string& networkName, const std::string& containerId) +void NetworkService::Connect(models::Session& session, const models::ConnectNetworkOptions& connectOptions) { wil::com_ptr container; - THROW_IF_FAILED(session.Get()->OpenContainer(containerId.c_str(), &container)); + THROW_IF_FAILED(session.Get()->OpenContainer(connectOptions.ContainerId.c_str(), &container)); + + // Build KVPs so the pointers remain valid for the duration of the ConnectToNetwork call. + std::vector settings; + settings.reserve( + connectOptions.Aliases.size() + connectOptions.Links.size() + connectOptions.LinkLocalIps.size() + + connectOptions.DriverOpts.size() + (connectOptions.IpAddress.has_value() ? 1 : 0)); + + for (const auto& alias : connectOptions.Aliases) + { + settings.push_back({.Key = "Aliases", .Value = alias.c_str()}); + } + + if (connectOptions.IpAddress.has_value()) + { + settings.push_back({.Key = "IPAddress", .Value = connectOptions.IpAddress->c_str()}); + } + + for (const auto& link : connectOptions.Links) + { + settings.push_back({.Key = "Links", .Value = link.c_str()}); + } + + for (const auto& linkLocalIp : connectOptions.LinkLocalIps) + { + settings.push_back({.Key = "LinkLocalIPs", .Value = linkLocalIp.c_str()}); + } + + for (const auto& entry : connectOptions.DriverOpts) + { + settings.push_back({.Key = "DriverOpts", .Value = entry.c_str()}); + } WSLCNetworkConnectionOptions options{}; - options.NetworkName = networkName.c_str(); + options.NetworkName = connectOptions.NetworkName.c_str(); + options.Settings = settings.empty() ? nullptr : settings.data(); + options.SettingsCount = static_cast(settings.size()); THROW_IF_FAILED(container->ConnectToNetwork(&options)); } diff --git a/src/windows/wslc/services/NetworkService.h b/src/windows/wslc/services/NetworkService.h index e0e30db79b..ab66a30b7d 100644 --- a/src/windows/wslc/services/NetworkService.h +++ b/src/windows/wslc/services/NetworkService.h @@ -25,7 +25,7 @@ struct NetworkService static std::vector List(models::Session& session); static wsl::windows::common::wslc_schema::Network Inspect(models::Session& session, const std::string& name); static models::PruneNetworksResult Prune(models::Session& session, const std::vector>& filters = {}); - static void Connect(models::Session& session, const std::string& networkName, const std::string& containerId); + static void Connect(models::Session& session, const models::ConnectNetworkOptions& connectOptions); static void Disconnect(models::Session& session, const std::string& networkName, const std::string& containerId); }; } // namespace wsl::windows::wslc::services diff --git a/src/windows/wslc/tasks/NetworkTasks.cpp b/src/windows/wslc/tasks/NetworkTasks.cpp index 423cd74ada..b25d51a1d7 100644 --- a/src/windows/wslc/tasks/NetworkTasks.cpp +++ b/src/windows/wslc/tasks/NetworkTasks.cpp @@ -234,9 +234,36 @@ void ConnectNetwork(CLIExecutionContext& context) WI_ASSERT(context.Args.Contains(ArgType::NetworkName)); WI_ASSERT(context.Args.Contains(ArgType::ContainerId)); - const auto networkName = WideToMultiByte(context.Args.Get()); - const auto containerId = WideToMultiByte(context.Args.Get()); - NetworkService::Connect(context.Data.Get(), networkName, containerId); + models::ConnectNetworkOptions options{}; + options.NetworkName = WideToMultiByte(context.Args.Get()); + options.ContainerId = WideToMultiByte(context.Args.Get()); + + for (const auto& alias : context.Args.GetAll()) + { + options.Aliases.emplace_back(WideToMultiByte(alias)); + } + + if (context.Args.Contains(ArgType::IpAddress)) + { + options.IpAddress = WideToMultiByte(context.Args.Get()); + } + + for (const auto& link : context.Args.GetAll()) + { + options.Links.emplace_back(WideToMultiByte(link)); + } + + for (const auto& linkLocalIp : context.Args.GetAll()) + { + options.LinkLocalIps.emplace_back(WideToMultiByte(linkLocalIp)); + } + + for (const auto& driverOpt : context.Args.GetAll()) + { + options.DriverOpts.emplace_back(WideToMultiByte(driverOpt)); + } + + NetworkService::Connect(context.Data.Get(), options); } void DisconnectNetwork(CLIExecutionContext& context) diff --git a/src/windows/wslcsession/WSLCContainer.cpp b/src/windows/wslcsession/WSLCContainer.cpp index 24c7399932..f75c89b4ee 100644 --- a/src/windows/wslcsession/WSLCContainer.cpp +++ b/src/windows/wslcsession/WSLCContainer.cpp @@ -231,9 +231,8 @@ std::string ResolveNetworkMode(LPCSTR networkMode, bool hasRequestedPorts, const return std::string{mode}; } -// Parses the primary endpoint's Settings KVP. Today only "Aliases" is recognised; unknown -// keys are rejected to avoid silently dropping caller data (mirrors the per-connection guard). -EndpointConfig ResolvePrimaryEndpointConfig(const KeyValuePair* settings, ULONG count, std::string_view networkMode) +// Unknown Settings keys are rejected rather than silently dropped, so callers get a clear error. +EndpointConfig ResolveEndpointConfig(const KeyValuePair* settings, ULONG count, std::string_view networkName) { EndpointConfig config{}; if (count == 0) @@ -245,22 +244,82 @@ EndpointConfig ResolvePrimaryEndpointConfig(const KeyValuePair* settings, ULONG auto parsed = ParseKeyMultiValuePairs(settings, count); + static constexpr std::array knownKeys{"Aliases", "IPAddress", "Links", "LinkLocalIPs", "DriverOpts"}; for (const auto& [key, _] : parsed) { THROW_HR_WITH_USER_ERROR_IF( - E_NOTIMPL, Localization::MessageWslcEndpointSettingsNotSupported(std::string{networkMode}), key != "Aliases"); + E_INVALIDARG, + Localization::MessageWslcEndpointSettingUnknown(key, std::string{networkName}), + std::find(knownKeys.begin(), knownKeys.end(), key) == knownKeys.end()); } + auto isBlank = [](const std::string& value) { + return value.empty() || std::all_of(value.begin(), value.end(), [](unsigned char ch) { return std::isspace(ch); }); + }; + if (auto it = parsed.find("Aliases"); it != parsed.end()) { for (const auto& alias : it->second) { + THROW_HR_WITH_USER_ERROR_IF(E_INVALIDARG, Localization::MessageWslcAliasEmpty(), isBlank(alias)); + } + config.Aliases = std::move(it->second); + } + + if (auto it = parsed.find("IPAddress"); it != parsed.end()) + { + THROW_HR_WITH_USER_ERROR_IF( + E_INVALIDARG, Localization::MessageWslcIpAddressSingleValue(std::string{networkName}), it->second.size() != 1); + + const auto& address = it->second.front(); + in_addr parsedAddress{}; + ParseIpv4Address(address.c_str(), parsedAddress); + + EndpointIPAMConfig ipam{}; + ipam.IPv4Address = address; + config.IPAMConfig = std::move(ipam); + } + + if (auto it = parsed.find("Links"); it != parsed.end()) + { + for (const auto& link : it->second) + { + THROW_HR_WITH_USER_ERROR_IF(E_INVALIDARG, Localization::MessageWslcLinkEmpty(), isBlank(link)); + } + config.Links = std::move(it->second); + } + + if (auto it = parsed.find("LinkLocalIPs"); it != parsed.end()) + { + for (const auto& address : it->second) + { + in_addr parsedAddress{}; + ParseIpv4Address(address.c_str(), parsedAddress); + } + if (!config.IPAMConfig.has_value()) + { + config.IPAMConfig = EndpointIPAMConfig{}; + } + config.IPAMConfig->LinkLocalIPs = std::move(it->second); + } + + if (auto it = parsed.find("DriverOpts"); it != parsed.end()) + { + std::map driverOpts; + for (const auto& entry : it->second) + { + const auto separator = entry.find('='); + THROW_HR_WITH_USER_ERROR_IF( + E_INVALIDARG, Localization::MessageWslcDriverOptInvalid(entry), separator == std::string::npos || separator == 0); + + auto key = entry.substr(0, separator); + auto value = entry.substr(separator + 1); THROW_HR_WITH_USER_ERROR_IF( E_INVALIDARG, - Localization::MessageWslcAliasEmpty(), - alias.empty() || std::all_of(alias.begin(), alias.end(), [](unsigned char ch) { return std::isspace(ch); })); + Localization::MessageWslcDriverOptDuplicate(key), + !driverOpts.try_emplace(std::move(key), std::move(value)).second); } - config.Aliases = std::move(it->second); + config.DriverOpts = std::move(driverOpts); } return config; @@ -294,9 +353,7 @@ std::map ResolveEndpoints( WSLC_E_NETWORK_NOT_FOUND, Localization::MessageWslcNetworkNotFound(name), !sessionNetworks.contains(name)); } - // Per-endpoint Settings are reserved for future use (IPAddress, Aliases, ...). No keys - // are interpreted today, so reject any non-empty payload rather than silently dropping it. - THROW_HR_WITH_USER_ERROR_IF(E_NOTIMPL, Localization::MessageWslcEndpointSettingsNotSupported(name), connections[i].SettingsCount > 0); + it->second = ResolveEndpointConfig(connections[i].Settings, connections[i].SettingsCount, name); } return resolved; } @@ -1523,6 +1580,15 @@ WslcInspectContainer WSLCContainerImpl::BuildInspectContainer(const DockerInspec wslcEndpoint.MacAddress = endpoint.MacAddress; wslcEndpoint.IPPrefixLen = endpoint.IPPrefixLen; wslcEndpoint.Aliases = endpoint.Aliases.value_or(std::vector{}); + wslcEndpoint.Links = endpoint.Links.value_or(std::vector{}); + wslcEndpoint.DriverOpts = endpoint.DriverOpts.value_or(std::map{}); + if (endpoint.IPAMConfig.has_value()) + { + wslc_schema::InspectEndpointIPAMConfig ipam{}; + ipam.IPv4Address = endpoint.IPAMConfig->IPv4Address; + ipam.LinkLocalIPs = endpoint.IPAMConfig->LinkLocalIPs.value_or(std::vector{}); + wslcEndpoint.IPAMConfig = std::move(ipam); + } wslcInspect.NetworkSettings.Networks[name] = std::move(wslcEndpoint); } @@ -1846,7 +1912,7 @@ std::shared_ptr WSLCContainerImpl::Create( containerOptions.ContainerNetwork.Networks, containerOptions.ContainerNetwork.NetworksCount, networkMode, sessionNetworks); auto primaryConfig = - ResolvePrimaryEndpointConfig(containerOptions.ContainerNetwork.Settings, containerOptions.ContainerNetwork.SettingsCount, networkMode); + ResolveEndpointConfig(containerOptions.ContainerNetwork.Settings, containerOptions.ContainerNetwork.SettingsCount, networkMode); // Aliases require a user-defined endpoint. bridge/host/none/container: modes don't support them. THROW_HR_WITH_USER_ERROR_IF( @@ -1859,16 +1925,14 @@ std::shared_ptr WSLCContainerImpl::Create( request.HostConfig.NetworkMode = networkMode; request.NetworkingConfig.EndpointsConfig = std::move(endpoints); - // Docker API v1.44 (Docker 25.x) requires the primary network to be present in EndpointsConfig - // when EndpointsConfig is non-empty. Insert it so Docker attaches all networks at create time. - // Also insert when the caller supplied aliases for the primary endpoint. - if (NetworkModeAllocatesVmPorts(networkMode) && (!request.NetworkingConfig.EndpointsConfig.empty() || primaryConfig.Aliases.has_value())) + // Docker API v1.44 requires the primary network in EndpointsConfig when it is non-empty; also insert when the caller + // supplied any primary endpoint settings. ResolveEndpoints rejects additional networks that alias networkMode, so + // try_emplace here always creates a fresh entry — full replacement is safe. + const bool hasPrimaryEndpointSettings = primaryConfig.Aliases.has_value() || primaryConfig.IPAMConfig.has_value() || + primaryConfig.Links.has_value() || primaryConfig.DriverOpts.has_value(); + if (NetworkModeAllocatesVmPorts(networkMode) && (!request.NetworkingConfig.EndpointsConfig.empty() || hasPrimaryEndpointSettings)) { - auto [it, _] = request.NetworkingConfig.EndpointsConfig.try_emplace(networkMode); - if (primaryConfig.Aliases.has_value()) - { - it->second.Aliases = std::move(primaryConfig.Aliases); - } + request.NetworkingConfig.EndpointsConfig[networkMode] = std::move(primaryConfig); } for (const auto& e : mappedPorts) @@ -2670,11 +2734,12 @@ void WSLCContainerImpl::GetLabels(WSLCLabelInformation** Labels, ULONG* Count) c void WSLCContainerImpl::ConnectToNetwork(const WSLCNetworkConnectionOptions* Options) { THROW_HR_IF(E_POINTER, Options == nullptr); - THROW_HR_WITH_USER_ERROR_IF(E_NOTIMPL, Localization::MessageWslcContainerIpAddressNotSupported(), Options->ContainerIpAddress != nullptr); THROW_HR_WITH_USER_ERROR_IF( E_INVALIDARG, Localization::MessageWslcNetworkNameRequired(), !Options->NetworkName || strlen(Options->NetworkName) == 0); + auto endpointConfig = ResolveEndpointConfig(Options->Settings, Options->SettingsCount, Options->NetworkName); + auto lock = m_lock.lock_shared(); THROW_HR_WITH_USER_ERROR_IF( @@ -2684,6 +2749,7 @@ void WSLCContainerImpl::ConnectToNetwork(const WSLCNetworkConnectionOptions* Opt common::docker_schema::ContainerNetworkRequest request{}; request.Container = m_id; + request.EndpointConfig = std::move(endpointConfig); try { diff --git a/test/windows/WSLCTests.cpp b/test/windows/WSLCTests.cpp index edc13644b6..09309f556a 100644 --- a/test/windows/WSLCTests.cpp +++ b/test/windows/WSLCTests.cpp @@ -7159,12 +7159,10 @@ class WSLCTests ValidateCOMErrorMessageContains(L"Network name"); } - WSLC_TEST_METHOD(ContainerNetworkEndpointSettingsNotImplementedTest) + WSLC_TEST_METHOD(ContainerNetworkEndpointSettingsUnknownKeyTest) { - // Per-endpoint Settings (Aliases, IPAMConfig, etc.) are reserved for a future PR. - // Until that lands, any non-empty Settings payload must be rejected with E_NOTIMPL - // so callers don't silently lose data. - const std::string networkName = "custom-net-settings"; + // Unknown endpoint setting keys must be rejected at container creation time. + const std::string networkName = "custom-net-settings-unknown"; LOG_IF_FAILED(m_defaultSession->DeleteNetwork(networkName.c_str())); WSLCNetworkOptions networkOptions{}; @@ -7174,7 +7172,7 @@ class WSLCTests auto networkCleanup = wil::scope_exit([&]() { LOG_IF_FAILED(m_defaultSession->DeleteNetwork(networkName.c_str())); }); LPCSTR args[] = {"sleep", "99999"}; - KeyValuePair settings[] = {{"Aliases", "my-alias"}}; + KeyValuePair settings[] = {{"BogusKey", "value"}}; WSLCNetworkConnection connection{}; connection.NetworkName = networkName.c_str(); connection.Settings = settings; @@ -7182,7 +7180,7 @@ class WSLCTests WSLCContainerOptions options{}; options.Image = "debian:latest"; - options.Name = "test-endpoint-settings"; + options.Name = "test-endpoint-settings-unknown"; options.InitProcessOptions.CommandLine = {.Values = args, .Count = ARRAYSIZE(args)}; options.ContainerNetwork.NetworkMode = "bridge"; options.ContainerNetwork.Networks = &connection; @@ -7190,8 +7188,10 @@ class WSLCTests wil::com_ptr container; auto hr = m_defaultSession->CreateContainer(&options, nullptr, &container); - VERIFY_ARE_EQUAL(E_NOTIMPL, hr); - ValidateCOMErrorMessage(L"Endpoint settings are not yet supported (network 'custom-net-settings')."); + VERIFY_ARE_EQUAL(E_INVALIDARG, hr); + const auto expectedError = + std::format(L"Unknown endpoint setting 'BogusKey' for network '{}'.", std::wstring(networkName.begin(), networkName.end())); + ValidateCOMErrorMessage(expectedError); } WSLC_TEST_METHOD(ContainerUnsupportedColonNetworkModeRejectedTest) @@ -7563,17 +7563,6 @@ class WSLCTests expectModeRejection("test-connect-none-ctr", "none"); } - // ContainerIpAddress not supported. - { - auto container = launchContainer("test-connect-ip-ctr"); - - WSLCNetworkConnectionOptions options{}; - options.NetworkName = "bridge"; - options.ContainerIpAddress = "10.0.0.5"; - VERIFY_ARE_EQUAL(E_NOTIMPL, container.Get().ConnectToNetwork(&options)); - ValidateCOMErrorMessage(L"ContainerIpAddress is not yet supported."); - } - // Connect and disconnect from the container's primary network. { const std::string containerName = "test-connect-primary-ctr"; @@ -7617,6 +7606,179 @@ class WSLCTests } } + WSLC_TEST_METHOD(NetworkConnectEndpointSettingsTest) + { + const std::string networkName = "connect-endpoint-net"; + const std::string subnet = "172.70.0.0/16"; + + LOG_IF_FAILED(m_defaultSession->DeleteNetwork(networkName.c_str())); + WSLCNetworkOptions netOpts{}; + netOpts.Name = networkName.c_str(); + netOpts.Driver = "bridge"; + netOpts.Subnet = subnet.c_str(); + VERIFY_SUCCEEDED(m_defaultSession->CreateNetwork(&netOpts, nullptr)); + auto netCleanup = wil::scope_exit([&]() { LOG_IF_FAILED(m_defaultSession->DeleteNetwork(networkName.c_str())); }); + + auto launchContainer = [&](const std::string& name) { + WSLCContainerLauncher launcher("debian:latest", name, {"sleep", "99999"}, {}, "bridge"); + return launcher.Launch(*m_defaultSession); + }; + + auto expectConnectReject = + [&](auto& container, const std::vector& settings, HRESULT expectedResult, const std::wstring& expectedMessage) { + WSLCNetworkConnectionOptions options{}; + options.NetworkName = networkName.c_str(); + options.Settings = settings.empty() ? nullptr : settings.data(); + options.SettingsCount = static_cast(settings.size()); + VERIFY_ARE_EQUAL(expectedResult, container.Get().ConnectToNetwork(&options)); + ValidateCOMErrorMessage(expectedMessage); + }; + + // Unknown endpoint setting key rejected. + { + auto container = launchContainer("connect-endpoint-unknown"); + const std::string unknownKey = "BogusKey"; + const std::string unknownValue = "value"; + const auto expected = std::format( + L"Unknown endpoint setting '{}' for network '{}'.", + std::wstring(unknownKey.begin(), unknownKey.end()), + std::wstring(networkName.begin(), networkName.end())); + expectConnectReject(container, {{unknownKey.c_str(), unknownValue.c_str()}}, E_INVALIDARG, expected); + } + + // Malformed IPv4 address rejected. + { + auto container = launchContainer("connect-endpoint-badip"); + const std::string badIp = "not-an-ip"; + const auto expected = std::format(L"Invalid IP address '{}'", std::wstring(badIp.begin(), badIp.end())); + expectConnectReject(container, {{"IPAddress", badIp.c_str()}}, E_INVALIDARG, expected); + } + + // Multiple IPAddress values rejected. + { + auto container = launchContainer("connect-endpoint-dupip"); + const std::string firstIp = "172.70.0.5"; + const std::string secondIp = "172.70.0.6"; + const auto expected = std::format( + L"Only one IP address may be specified for network '{}'.", std::wstring(networkName.begin(), networkName.end())); + expectConnectReject(container, {{"IPAddress", firstIp.c_str()}, {"IPAddress", secondIp.c_str()}}, E_INVALIDARG, expected); + } + + // Empty link rejected. + { + auto container = launchContainer("connect-endpoint-emptylink"); + expectConnectReject(container, {{"Links", ""}}, E_INVALIDARG, L"Network link cannot be empty."); + } + + // Malformed driver option (missing '=') rejected. + { + auto container = launchContainer("connect-endpoint-badopt"); + const std::string badEntry = "no-equals"; + const auto expected = + std::format(L"Invalid driver option '{}'; expected 'key=value'.", std::wstring(badEntry.begin(), badEntry.end())); + expectConnectReject(container, {{"DriverOpts", badEntry.c_str()}}, E_INVALIDARG, expected); + } + + // Duplicate driver option key rejected. + { + auto container = launchContainer("connect-endpoint-dupopt"); + const std::string dupKey = "mtu"; + const std::string firstEntry = "mtu=1500"; + const std::string secondEntry = "mtu=1400"; + const auto expected = std::format(L"Duplicate driver option '{}'.", std::wstring(dupKey.begin(), dupKey.end())); + expectConnectReject(container, {{"DriverOpts", firstEntry.c_str()}, {"DriverOpts", secondEntry.c_str()}}, E_INVALIDARG, expected); + } + + // Malformed link-local IPv4 address rejected. + { + auto container = launchContainer("connect-endpoint-badlli"); + const std::string badIp = "not-a-link-local"; + const auto expected = std::format(L"Invalid IP address '{}'", std::wstring(badIp.begin(), badIp.end())); + expectConnectReject(container, {{"LinkLocalIPs", badIp.c_str()}}, E_INVALIDARG, expected); + } + + // Empty/whitespace-only alias rejected. + { + auto container = launchContainer("connect-endpoint-emptyalias"); + expectConnectReject(container, {{"Aliases", " "}}, E_INVALIDARG, L"Network alias cannot be empty."); + } + + // Driver option with empty key ('=value') rejected. + { + auto container = launchContainer("connect-endpoint-emptykey"); + const std::string badEntry = "=value"; + const auto expected = + std::format(L"Invalid driver option '{}'; expected 'key=value'.", std::wstring(badEntry.begin(), badEntry.end())); + expectConnectReject(container, {{"DriverOpts", badEntry.c_str()}}, E_INVALIDARG, expected); + } + + // Aliases + IPAddress + LinkLocalIPs + DriverOpts together — success, inspect verifies every field. + { + auto container = launchContainer("connect-endpoint-combo"); + const std::string alias1 = "primary-alias"; + const std::string alias2 = "secondary-alias"; + const std::string ipAddress = "172.70.0.42"; + const std::string linkLocal = "169.254.10.5"; + const std::string driverOptEntry = "com.docker.network.endpoint.custom=verify"; + const std::string driverOptKey = "com.docker.network.endpoint.custom"; + const std::string driverOptValue = "verify"; + + const std::vector settings{ + {"Aliases", alias1.c_str()}, + {"Aliases", alias2.c_str()}, + {"IPAddress", ipAddress.c_str()}, + {"LinkLocalIPs", linkLocal.c_str()}, + {"DriverOpts", driverOptEntry.c_str()}, + }; + + WSLCNetworkConnectionOptions options{}; + options.NetworkName = networkName.c_str(); + options.Settings = settings.data(); + options.SettingsCount = static_cast(settings.size()); + VERIFY_SUCCEEDED(container.Get().ConnectToNetwork(&options)); + + auto inspect = container.Inspect(); + VERIFY_IS_TRUE(inspect.NetworkSettings.Networks.contains(networkName)); + const auto& endpoint = inspect.NetworkSettings.Networks.at(networkName); + VERIFY_IS_TRUE(std::ranges::find(endpoint.Aliases, alias1) != endpoint.Aliases.end()); + VERIFY_IS_TRUE(std::ranges::find(endpoint.Aliases, alias2) != endpoint.Aliases.end()); + VERIFY_ARE_EQUAL(ipAddress, endpoint.IPAddress); + VERIFY_IS_TRUE(endpoint.IPAMConfig.has_value()); + VERIFY_ARE_EQUAL(ipAddress, endpoint.IPAMConfig->IPv4Address); + VERIFY_IS_TRUE(std::ranges::find(endpoint.IPAMConfig->LinkLocalIPs, linkLocal) != endpoint.IPAMConfig->LinkLocalIPs.end()); + const auto opt = endpoint.DriverOpts.find(driverOptKey); + VERIFY_IS_TRUE(opt != endpoint.DriverOpts.end()); + VERIFY_ARE_EQUAL(driverOptValue, opt->second); + } + + // Links: connect two containers to the same user-defined bridge, verify Links echoes back in inspect. + { + const std::string targetName = "connect-endpoint-link-target"; + const std::string targetAlias = "db"; + auto target = launchContainer(targetName); + WSLCNetworkConnectionOptions targetOptions{}; + targetOptions.NetworkName = networkName.c_str(); + const std::vector targetSettings{{"Aliases", targetAlias.c_str()}}; + targetOptions.Settings = targetSettings.data(); + targetOptions.SettingsCount = static_cast(targetSettings.size()); + VERIFY_SUCCEEDED(target.Get().ConnectToNetwork(&targetOptions)); + + auto source = launchContainer("connect-endpoint-link-source"); + const std::string linkEntry = targetName + ":" + targetAlias; + const std::vector sourceSettings{{"Links", linkEntry.c_str()}}; + WSLCNetworkConnectionOptions sourceOptions{}; + sourceOptions.NetworkName = networkName.c_str(); + sourceOptions.Settings = sourceSettings.data(); + sourceOptions.SettingsCount = static_cast(sourceSettings.size()); + VERIFY_SUCCEEDED(source.Get().ConnectToNetwork(&sourceOptions)); + + auto inspect = source.Inspect(); + VERIFY_IS_TRUE(inspect.NetworkSettings.Networks.contains(networkName)); + const auto& endpoint = inspect.NetworkSettings.Networks.at(networkName); + VERIFY_IS_TRUE(std::ranges::find(endpoint.Links, linkEntry) != endpoint.Links.end()); + } + } + WSLC_TEST_METHOD(NetworkAliasCreateTest) { auto createNetwork = [&](const std::string& name, const char* subnet) { @@ -7729,14 +7891,16 @@ class WSLCTests expectError("alias-ctr-empty", networkName, {""}, E_INVALIDARG, L"Network alias cannot be empty."); } - // Unknown KVP key on primary settings — rejected with E_NOTIMPL. + // Unknown KVP key on primary settings — rejected with the unified endpoint-settings error. { const std::string networkName = "alias-net-unknown"; + const std::string unknownKey = "BogusKey"; + const std::string unknownValue = "value"; createNetwork(networkName, "172.63.0.0/16"); auto netCleanup = wil::scope_exit([&]() { LOG_IF_FAILED(m_defaultSession->DeleteNetwork(networkName.c_str())); }); LPCSTR args[] = {"sleep", "99999"}; - const KeyValuePair settings[] = {{"IPAddress", "10.0.0.5"}}; + const KeyValuePair settings[] = {{unknownKey.c_str(), unknownValue.c_str()}}; WSLCContainerOptions options{}; options.Image = "debian:latest"; options.Name = "alias-ctr-unknown"; @@ -7746,11 +7910,92 @@ class WSLCTests options.ContainerNetwork.SettingsCount = ARRAYSIZE(settings); wil::com_ptr container; - VERIFY_ARE_EQUAL(E_NOTIMPL, m_defaultSession->CreateContainer(&options, nullptr, &container)); + VERIFY_ARE_EQUAL(E_INVALIDARG, m_defaultSession->CreateContainer(&options, nullptr, &container)); ValidateCOMErrorMessage(std::format( - L"Endpoint settings are not yet supported (network '{}').", - std::wstring(networkName.begin(), networkName.end())) - .c_str()); + L"Unknown endpoint setting '{}' for network '{}'.", + std::wstring(unknownKey.begin(), unknownKey.end()), + std::wstring(networkName.begin(), networkName.end()))); + } + + // Primary endpoint settings (IPAddress + Aliases + LinkLocalIPs + DriverOpts) round-trip via inspect at create time. + { + const std::string networkName = "alias-net-combo"; + createNetwork(networkName, "172.64.0.0/16"); + auto netCleanup = wil::scope_exit([&]() { LOG_IF_FAILED(m_defaultSession->DeleteNetwork(networkName.c_str())); }); + + const std::string alias1 = "primary-alias"; + const std::string alias2 = "secondary-alias"; + const std::string ipAddress = "172.64.0.42"; + const std::string linkLocal = "169.254.11.5"; + const std::string driverOptEntry = "com.docker.network.endpoint.custom=verify"; + const std::string driverOptKey = "com.docker.network.endpoint.custom"; + const std::string driverOptValue = "verify"; + + LPCSTR args[] = {"sleep", "99999"}; + const KeyValuePair settings[] = { + {"Aliases", alias1.c_str()}, + {"Aliases", alias2.c_str()}, + {"IPAddress", ipAddress.c_str()}, + {"LinkLocalIPs", linkLocal.c_str()}, + {"DriverOpts", driverOptEntry.c_str()}, + }; + WSLCContainerOptions options{}; + options.Image = "debian:latest"; + options.Name = "alias-ctr-combo"; + options.InitProcessOptions.CommandLine = {.Values = args, .Count = ARRAYSIZE(args)}; + options.ContainerNetwork.NetworkMode = networkName.c_str(); + options.ContainerNetwork.Settings = settings; + options.ContainerNetwork.SettingsCount = ARRAYSIZE(settings); + + wil::com_ptr containerCom; + VERIFY_SUCCEEDED(m_defaultSession->CreateContainer(&options, nullptr, &containerCom)); + RunningWSLCContainer container(std::move(containerCom), WSLCProcessFlagsNone); + VERIFY_SUCCEEDED(container.Get().Start(WSLCContainerStartFlagsAttach, nullptr, nullptr)); + + auto inspect = container.Inspect(); + VERIFY_IS_TRUE(inspect.NetworkSettings.Networks.contains(networkName)); + const auto& endpoint = inspect.NetworkSettings.Networks.at(networkName); + VERIFY_IS_TRUE(std::ranges::find(endpoint.Aliases, alias1) != endpoint.Aliases.end()); + VERIFY_IS_TRUE(std::ranges::find(endpoint.Aliases, alias2) != endpoint.Aliases.end()); + VERIFY_ARE_EQUAL(ipAddress, endpoint.IPAddress); + VERIFY_IS_TRUE(endpoint.IPAMConfig.has_value()); + VERIFY_ARE_EQUAL(ipAddress, endpoint.IPAMConfig->IPv4Address); + VERIFY_IS_TRUE(std::ranges::find(endpoint.IPAMConfig->LinkLocalIPs, linkLocal) != endpoint.IPAMConfig->LinkLocalIPs.end()); + const auto opt = endpoint.DriverOpts.find(driverOptKey); + VERIFY_IS_TRUE(opt != endpoint.DriverOpts.end()); + VERIFY_ARE_EQUAL(driverOptValue, opt->second); + } + + // Primary endpoint Links: launch a target container with an alias, then a source with --link at create time. + { + const std::string networkName = "alias-net-link"; + const std::string targetName = "alias-ctr-link-target"; + const std::string targetAlias = "db"; + createNetwork(networkName, "172.65.0.0/16"); + auto netCleanup = wil::scope_exit([&]() { LOG_IF_FAILED(m_defaultSession->DeleteNetwork(networkName.c_str())); }); + + auto target = launchWithAliases(targetName, networkName, {targetAlias}); + + const std::string linkEntry = targetName + ":" + targetAlias; + LPCSTR args[] = {"sleep", "99999"}; + const KeyValuePair settings[] = {{"Links", linkEntry.c_str()}}; + WSLCContainerOptions options{}; + options.Image = "debian:latest"; + options.Name = "alias-ctr-link-source"; + options.InitProcessOptions.CommandLine = {.Values = args, .Count = ARRAYSIZE(args)}; + options.ContainerNetwork.NetworkMode = networkName.c_str(); + options.ContainerNetwork.Settings = settings; + options.ContainerNetwork.SettingsCount = ARRAYSIZE(settings); + + wil::com_ptr sourceCom; + VERIFY_SUCCEEDED(m_defaultSession->CreateContainer(&options, nullptr, &sourceCom)); + RunningWSLCContainer source(std::move(sourceCom), WSLCProcessFlagsNone); + VERIFY_SUCCEEDED(source.Get().Start(WSLCContainerStartFlagsAttach, nullptr, nullptr)); + + auto inspect = source.Inspect(); + VERIFY_IS_TRUE(inspect.NetworkSettings.Networks.contains(networkName)); + const auto& endpoint = inspect.NetworkSettings.Networks.at(networkName); + VERIFY_IS_TRUE(std::ranges::find(endpoint.Links, linkEntry) != endpoint.Links.end()); } } diff --git a/test/windows/wslc/e2e/WSLCE2ENetworkTests.cpp b/test/windows/wslc/e2e/WSLCE2ENetworkTests.cpp index e31a7258e7..2c009d697c 100644 --- a/test/windows/wslc/e2e/WSLCE2ENetworkTests.cpp +++ b/test/windows/wslc/e2e/WSLCE2ENetworkTests.cpp @@ -33,6 +33,7 @@ class WSLCE2ENetworkTests TEST_CLASS_CLEANUP(ClassCleanup) { EnsureContainerDoesNotExist(WslcContainerName); + EnsureContainerDoesNotExist(WslcTargetContainerName); EnsureNetworkDoesNotExist(TestNetworkName); EnsureImageIsDeleted(DebianImage); return true; @@ -41,6 +42,7 @@ class WSLCE2ENetworkTests TEST_METHOD_SETUP(TestMethodSetup) { EnsureContainerDoesNotExist(WslcContainerName); + EnsureContainerDoesNotExist(WslcTargetContainerName); EnsureNetworkDoesNotExist(TestNetworkName); return true; } @@ -174,6 +176,110 @@ class WSLCE2ENetworkTests VerifyPatternMatch(string::WideToMultiByte(result.Stderr.value()), "*already exists*Error code: *\r\n"); } + WSLC_TEST_METHOD(WSLCE2E_Network_Connect_WithEndpointFlags_RoundTrips) + { + const std::wstring subnet = L"172.72.0.0/16"; + const std::wstring ipAddress = L"172.72.0.42"; + const std::wstring alias1 = L"primary-alias"; + const std::wstring alias2 = L"secondary-alias"; + const std::wstring linkLocal = L"169.254.11.5"; + + auto result = RunWslc(std::format(L"network create --driver bridge --subnet {} {}", subnet, TestNetworkName)); + result.Verify({.Stderr = L"", .ExitCode = 0}); + + result = RunWslc(std::format(L"container run -d --name {} {} sleep infinity", WslcContainerName, DebianImage.NameAndTag())); + result.Verify({.Stderr = L"", .ExitCode = 0}); + + result = RunWslc(std::format( + L"network connect --network-alias {} --network-alias {} --ip {} --link-local-ip {} {} {}", alias1, alias2, ipAddress, linkLocal, TestNetworkName, WslcContainerName)); + result.Verify({.Stderr = L"", .ExitCode = 0}); + + const auto inspect = InspectContainer(WslcContainerName); + const auto networkKey = string::WideToMultiByte(TestNetworkName); + VERIFY_IS_TRUE(inspect.NetworkSettings.Networks.contains(networkKey)); + const auto& endpoint = inspect.NetworkSettings.Networks.at(networkKey); + VERIFY_ARE_EQUAL(string::WideToMultiByte(ipAddress), endpoint.IPAddress); + VERIFY_IS_TRUE(endpoint.IPAMConfig.has_value()); + VERIFY_ARE_EQUAL(string::WideToMultiByte(ipAddress), endpoint.IPAMConfig->IPv4Address); + VERIFY_IS_TRUE(std::ranges::find(endpoint.Aliases, string::WideToMultiByte(alias1)) != endpoint.Aliases.end()); + VERIFY_IS_TRUE(std::ranges::find(endpoint.Aliases, string::WideToMultiByte(alias2)) != endpoint.Aliases.end()); + VERIFY_IS_TRUE( + std::ranges::find(endpoint.IPAMConfig->LinkLocalIPs, string::WideToMultiByte(linkLocal)) != + endpoint.IPAMConfig->LinkLocalIPs.end()); + } + + WSLC_TEST_METHOD(WSLCE2E_Network_Connect_InvalidIp_Rejected) + { + const std::wstring badIp = L"not-an-ip"; + + auto result = RunWslc(std::format(L"network create --driver bridge {}", TestNetworkName)); + result.Verify({.Stderr = L"", .ExitCode = 0}); + + result = RunWslc(std::format(L"container run -d --name {} {} sleep infinity", WslcContainerName, DebianImage.NameAndTag())); + result.Verify({.Stderr = L"", .ExitCode = 0}); + + result = RunWslc(std::format(L"network connect --ip {} {} {}", badIp, TestNetworkName, WslcContainerName)); + VERIFY_ARE_EQUAL(1u, result.ExitCode.value()); + VERIFY_IS_TRUE(result.Stderr.has_value()); + VerifyPatternMatch( + string::WideToMultiByte(result.Stderr.value()), std::format("*Invalid IP address '{}'*", string::WideToMultiByte(badIp))); + } + + WSLC_TEST_METHOD(WSLCE2E_Network_Connect_DriverOpt_RoundTrips) + { + const std::wstring driverOptKey = L"com.docker.network.endpoint.custom"; + const std::wstring driverOptValue = L"verify"; + + auto result = RunWslc(std::format(L"network create --driver bridge {}", TestNetworkName)); + result.Verify({.Stderr = L"", .ExitCode = 0}); + + result = RunWslc(std::format(L"container run -d --name {} {} sleep infinity", WslcContainerName, DebianImage.NameAndTag())); + result.Verify({.Stderr = L"", .ExitCode = 0}); + + result = RunWslc(std::format(L"network connect --driver-opt {}={} {} {}", driverOptKey, driverOptValue, TestNetworkName, WslcContainerName)); + result.Verify({.Stderr = L"", .ExitCode = 0}); + + const auto inspect = InspectContainer(WslcContainerName); + const auto networkKey = string::WideToMultiByte(TestNetworkName); + VERIFY_IS_TRUE(inspect.NetworkSettings.Networks.contains(networkKey)); + const auto& endpoint = inspect.NetworkSettings.Networks.at(networkKey); + const auto keyUtf8 = string::WideToMultiByte(driverOptKey); + const auto valueUtf8 = string::WideToMultiByte(driverOptValue); + const auto driverOptIt = endpoint.DriverOpts.find(keyUtf8); + VERIFY_IS_TRUE(driverOptIt != endpoint.DriverOpts.end()); + VERIFY_ARE_EQUAL(valueUtf8, driverOptIt->second); + } + + WSLC_TEST_METHOD(WSLCE2E_Network_Connect_Link_RoundTrips) + { + const std::wstring targetAlias = L"db"; + + auto result = RunWslc(std::format(L"network create --driver bridge {}", TestNetworkName)); + result.Verify({.Stderr = L"", .ExitCode = 0}); + + result = RunWslc(std::format( + L"container run -d --network {} --network-alias {} --name {} {} sleep infinity", + TestNetworkName, + targetAlias, + WslcTargetContainerName, + DebianImage.NameAndTag())); + result.Verify({.Stderr = L"", .ExitCode = 0}); + + result = RunWslc(std::format(L"container run -d --name {} {} sleep infinity", WslcContainerName, DebianImage.NameAndTag())); + result.Verify({.Stderr = L"", .ExitCode = 0}); + + const std::wstring linkEntry = std::format(L"{}:{}", WslcTargetContainerName, targetAlias); + result = RunWslc(std::format(L"network connect --link {} {} {}", linkEntry, TestNetworkName, WslcContainerName)); + result.Verify({.Stderr = L"", .ExitCode = 0}); + + const auto inspect = InspectContainer(WslcContainerName); + const auto networkKey = string::WideToMultiByte(TestNetworkName); + VERIFY_IS_TRUE(inspect.NetworkSettings.Networks.contains(networkKey)); + const auto& endpoint = inspect.NetworkSettings.Networks.at(networkKey); + const auto linkEntryUtf8 = string::WideToMultiByte(linkEntry); + VERIFY_IS_TRUE(std::ranges::find(endpoint.Links, linkEntryUtf8) != endpoint.Links.end()); + } + WSLC_TEST_METHOD(WSLCE2E_Network_Disconnect_Valid) { auto result = RunWslc(std::format(L"network create --driver bridge {}", TestNetworkName)); @@ -218,7 +324,136 @@ class WSLCE2ENetworkTests private: const std::wstring WslcContainerName = L"wslc-e2e-network-connect-container"; + const std::wstring WslcTargetContainerName = L"wslc-e2e-network-connect-target"; const std::wstring TestNetworkName = L"wslc-e2e-network-connect"; const TestImage& DebianImage = DebianTestImage(); + + std::wstring GetHelpMessage() const + { + std::wstringstream output; + output << GetWslcHeader() // + << GetDescription() // + << GetUsage() // + << GetAvailableCommands() // + << GetAvailableOptions(); + return output.str(); + } + + std::wstring GetDescription() const + { + return Localization::WSLCCLI_NetworkCommandLongDesc() + L"\r\n\r\n"; + } + + std::wstring GetUsage() const + { + return L"Usage: wslc network [] []\r\n\r\n"; + } + + std::wstring GetAvailableCommands() const + { + std::vector> entries = { + {L"create", Localization::WSLCCLI_NetworkCreateDesc()}, + {L"remove", Localization::WSLCCLI_NetworkRemoveDesc()}, + {L"inspect", Localization::WSLCCLI_NetworkInspectDesc()}, + {L"list", Localization::WSLCCLI_NetworkListDesc()}, + {L"prune", Localization::WSLCCLI_NetworkPruneDesc()}, + {L"connect", Localization::WSLCCLI_NetworkConnectDesc()}, + {L"disconnect", Localization::WSLCCLI_NetworkDisconnectDesc()}, + }; + + size_t maxLen = 0; + for (const auto& [name, _] : entries) + { + maxLen = (std::max)(maxLen, name.size()); + } + + std::wstringstream commands; + commands << Localization::WSLCCLI_AvailableSubcommands() << L"\r\n"; + for (const auto& [name, desc] : entries) + { + commands << L" " << name << std::wstring(maxLen - name.size() + 2, L' ') << desc << L"\r\n"; + } + commands << L"\r\n" << Localization::WSLCCLI_HelpForDetails() << L" [" << WSLC_CLI_HELP_ARG_STRING << L"]\r\n\r\n"; + return commands.str(); + } + + std::wstring GetAvailableOptions() const + { + std::wstringstream options; + options << L"The following options are available:\r\n" + << L" -?,--help Shows help about the selected command\r\n" + << L"\r\n"; + return options.str(); + } + + std::wstring GetConnectHelpMessage() const + { + const std::vector> arguments = { + {L"network-name", L"Network name"}, + {L"container-id", L"Container ID"}, + }; + const std::vector> options = { + {L"--network-alias", Localization::WSLCCLI_NetworkAliasArgDescription()}, + {L"--ip", Localization::WSLCCLI_IpAddressArgDescription()}, + {L"--link", Localization::WSLCCLI_LinkArgDescription()}, + {L"--link-local-ip", Localization::WSLCCLI_LinkLocalIpArgDescription()}, + {L"--driver-opt", Localization::WSLCCLI_DriverOptArgDescription()}, + {L"-?,--help", L"Shows help about the selected command"}, + }; + + std::wstringstream output; + output << GetWslcHeader() // + << Localization::WSLCCLI_NetworkConnectLongDesc() + L"\r\n\r\n" // + << L"Usage: wslc network connect [] \r\n\r\n" // + << RenderArgumentsAndOptions(arguments, options); + return output.str(); + } + + std::wstring GetDisconnectHelpMessage() const + { + const std::vector> arguments = { + {L"network-name", L"Network name"}, + {L"container-id", L"Container ID"}, + }; + const std::vector> options = { + {L"-?,--help", L"Shows help about the selected command"}, + }; + + std::wstringstream output; + output << GetWslcHeader() // + << Localization::WSLCCLI_NetworkDisconnectLongDesc() + L"\r\n\r\n" // + << L"Usage: wslc network disconnect [] \r\n\r\n" // + << RenderArgumentsAndOptions(arguments, options); + return output.str(); + } + + // Mirrors Command::OutputHelp: maxLen is driven by GetUsageString() (prepends "--" for positional args). + std::wstring RenderArgumentsAndOptions( + const std::vector>& arguments, const std::vector>& options) const + { + size_t maxLen = 0; + for (const auto& [name, _] : arguments) + { + maxLen = (std::max)(maxLen, name.size() + 2); + } + for (const auto& [name, _] : options) + { + maxLen = (std::max)(maxLen, name.size()); + } + + std::wstringstream out; + out << L"The following arguments are available:\r\n"; + for (const auto& [name, desc] : arguments) + { + out << L" " << name << std::wstring(maxLen - name.size() + 2, L' ') << desc << L"\r\n"; + } + out << L"\r\n" << L"The following options are available:\r\n"; + for (const auto& [name, desc] : options) + { + out << L" " << name << std::wstring(maxLen - name.size() + 2, L' ') << desc << L"\r\n"; + } + out << L"\r\n"; + return out.str(); + } }; } // namespace WSLCE2ETests From 154a262573d6d47147d6b5c2723f7d1884a3baec Mon Sep 17 00:00:00 2001 From: Beena Chauhan Date: Tue, 14 Jul 2026 16:13:48 -0700 Subject: [PATCH 02/14] fix copilot comments --- src/windows/wslcsession/WSLCContainer.cpp | 1 + test/windows/wslc/e2e/WSLCE2ENetworkTests.cpp | 128 ------------------ 2 files changed, 1 insertion(+), 128 deletions(-) diff --git a/src/windows/wslcsession/WSLCContainer.cpp b/src/windows/wslcsession/WSLCContainer.cpp index f75c89b4ee..ea995942df 100644 --- a/src/windows/wslcsession/WSLCContainer.cpp +++ b/src/windows/wslcsession/WSLCContainer.cpp @@ -314,6 +314,7 @@ EndpointConfig ResolveEndpointConfig(const KeyValuePair* settings, ULONG count, auto key = entry.substr(0, separator); auto value = entry.substr(separator + 1); + THROW_HR_WITH_USER_ERROR_IF(E_INVALIDARG, Localization::MessageWslcDriverOptInvalid(entry), isBlank(key)); THROW_HR_WITH_USER_ERROR_IF( E_INVALIDARG, Localization::MessageWslcDriverOptDuplicate(key), diff --git a/test/windows/wslc/e2e/WSLCE2ENetworkTests.cpp b/test/windows/wslc/e2e/WSLCE2ENetworkTests.cpp index 2c009d697c..e0cc2f8e39 100644 --- a/test/windows/wslc/e2e/WSLCE2ENetworkTests.cpp +++ b/test/windows/wslc/e2e/WSLCE2ENetworkTests.cpp @@ -327,133 +327,5 @@ class WSLCE2ENetworkTests const std::wstring WslcTargetContainerName = L"wslc-e2e-network-connect-target"; const std::wstring TestNetworkName = L"wslc-e2e-network-connect"; const TestImage& DebianImage = DebianTestImage(); - - std::wstring GetHelpMessage() const - { - std::wstringstream output; - output << GetWslcHeader() // - << GetDescription() // - << GetUsage() // - << GetAvailableCommands() // - << GetAvailableOptions(); - return output.str(); - } - - std::wstring GetDescription() const - { - return Localization::WSLCCLI_NetworkCommandLongDesc() + L"\r\n\r\n"; - } - - std::wstring GetUsage() const - { - return L"Usage: wslc network [] []\r\n\r\n"; - } - - std::wstring GetAvailableCommands() const - { - std::vector> entries = { - {L"create", Localization::WSLCCLI_NetworkCreateDesc()}, - {L"remove", Localization::WSLCCLI_NetworkRemoveDesc()}, - {L"inspect", Localization::WSLCCLI_NetworkInspectDesc()}, - {L"list", Localization::WSLCCLI_NetworkListDesc()}, - {L"prune", Localization::WSLCCLI_NetworkPruneDesc()}, - {L"connect", Localization::WSLCCLI_NetworkConnectDesc()}, - {L"disconnect", Localization::WSLCCLI_NetworkDisconnectDesc()}, - }; - - size_t maxLen = 0; - for (const auto& [name, _] : entries) - { - maxLen = (std::max)(maxLen, name.size()); - } - - std::wstringstream commands; - commands << Localization::WSLCCLI_AvailableSubcommands() << L"\r\n"; - for (const auto& [name, desc] : entries) - { - commands << L" " << name << std::wstring(maxLen - name.size() + 2, L' ') << desc << L"\r\n"; - } - commands << L"\r\n" << Localization::WSLCCLI_HelpForDetails() << L" [" << WSLC_CLI_HELP_ARG_STRING << L"]\r\n\r\n"; - return commands.str(); - } - - std::wstring GetAvailableOptions() const - { - std::wstringstream options; - options << L"The following options are available:\r\n" - << L" -?,--help Shows help about the selected command\r\n" - << L"\r\n"; - return options.str(); - } - - std::wstring GetConnectHelpMessage() const - { - const std::vector> arguments = { - {L"network-name", L"Network name"}, - {L"container-id", L"Container ID"}, - }; - const std::vector> options = { - {L"--network-alias", Localization::WSLCCLI_NetworkAliasArgDescription()}, - {L"--ip", Localization::WSLCCLI_IpAddressArgDescription()}, - {L"--link", Localization::WSLCCLI_LinkArgDescription()}, - {L"--link-local-ip", Localization::WSLCCLI_LinkLocalIpArgDescription()}, - {L"--driver-opt", Localization::WSLCCLI_DriverOptArgDescription()}, - {L"-?,--help", L"Shows help about the selected command"}, - }; - - std::wstringstream output; - output << GetWslcHeader() // - << Localization::WSLCCLI_NetworkConnectLongDesc() + L"\r\n\r\n" // - << L"Usage: wslc network connect [] \r\n\r\n" // - << RenderArgumentsAndOptions(arguments, options); - return output.str(); - } - - std::wstring GetDisconnectHelpMessage() const - { - const std::vector> arguments = { - {L"network-name", L"Network name"}, - {L"container-id", L"Container ID"}, - }; - const std::vector> options = { - {L"-?,--help", L"Shows help about the selected command"}, - }; - - std::wstringstream output; - output << GetWslcHeader() // - << Localization::WSLCCLI_NetworkDisconnectLongDesc() + L"\r\n\r\n" // - << L"Usage: wslc network disconnect [] \r\n\r\n" // - << RenderArgumentsAndOptions(arguments, options); - return output.str(); - } - - // Mirrors Command::OutputHelp: maxLen is driven by GetUsageString() (prepends "--" for positional args). - std::wstring RenderArgumentsAndOptions( - const std::vector>& arguments, const std::vector>& options) const - { - size_t maxLen = 0; - for (const auto& [name, _] : arguments) - { - maxLen = (std::max)(maxLen, name.size() + 2); - } - for (const auto& [name, _] : options) - { - maxLen = (std::max)(maxLen, name.size()); - } - - std::wstringstream out; - out << L"The following arguments are available:\r\n"; - for (const auto& [name, desc] : arguments) - { - out << L" " << name << std::wstring(maxLen - name.size() + 2, L' ') << desc << L"\r\n"; - } - out << L"\r\n" << L"The following options are available:\r\n"; - for (const auto& [name, desc] : options) - { - out << L" " << name << std::wstring(maxLen - name.size() + 2, L' ') << desc << L"\r\n"; - } - out << L"\r\n"; - return out.str(); - } }; } // namespace WSLCE2ETests From a6828ed1d16db25ff1b7592a6097980efdcabfc1 Mon Sep 17 00:00:00 2001 From: Beena Chauhan Date: Tue, 14 Jul 2026 16:26:56 -0700 Subject: [PATCH 03/14] Restore non-en-US translations from origin/master --- localization/strings/cs-CZ/Resources.resw | 103 +++++++++++++++++++- localization/strings/da-DK/Resources.resw | 103 +++++++++++++++++++- localization/strings/de-DE/Resources.resw | 109 ++++++++++++++++++++- localization/strings/en-GB/Resources.resw | 101 ++++++++++++++++++++ localization/strings/es-ES/Resources.resw | 103 +++++++++++++++++++- localization/strings/fi-FI/Resources.resw | 103 +++++++++++++++++++- localization/strings/fr-FR/Resources.resw | 103 +++++++++++++++++++- localization/strings/hu-HU/Resources.resw | 103 +++++++++++++++++++- localization/strings/it-IT/Resources.resw | 103 +++++++++++++++++++- localization/strings/ja-JP/Resources.resw | 101 ++++++++++++++++++++ localization/strings/ko-KR/Resources.resw | 105 ++++++++++++++++++++- localization/strings/nb-NO/Resources.resw | 101 ++++++++++++++++++++ localization/strings/nl-NL/Resources.resw | 101 ++++++++++++++++++++ localization/strings/pl-PL/Resources.resw | 103 +++++++++++++++++++- localization/strings/pt-BR/Resources.resw | 101 ++++++++++++++++++++ localization/strings/pt-PT/Resources.resw | 103 +++++++++++++++++++- localization/strings/ru-RU/Resources.resw | 101 ++++++++++++++++++++ localization/strings/sv-SE/Resources.resw | 102 ++++++++++++++++++++ localization/strings/tr-TR/Resources.resw | 103 +++++++++++++++++++- localization/strings/zh-CN/Resources.resw | 102 +++++++++++++++++++- localization/strings/zh-TW/Resources.resw | 110 ++++++++++++++++++++-- 21 files changed, 2138 insertions(+), 26 deletions(-) diff --git a/localization/strings/cs-CZ/Resources.resw b/localization/strings/cs-CZ/Resources.resw index 242c6b2342..11af409d84 100644 --- a/localization/strings/cs-CZ/Resources.resw +++ b/localization/strings/cs-CZ/Resources.resw @@ -2259,6 +2259,10 @@ Využití: Argument příznaku nemůže obsahovat sousedící hodnotu: '{}' {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + Neplatná logická hodnota pro argument příznaku: '{}'. Očekávala se hodnota true, false, 1 nebo 0. + {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + Našel se poziční argument, i když nebyl očekáván: '{}' {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -2427,7 +2431,7 @@ Informace o ochraně osobních údajů k tomuto produktu najdete na stránce htt {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - Creating session storage at '{}' as configured by session.storagePath. If you later change or remove this setting, data stored here will no longer be used by the default session and can be deleted to reclaim space. + Vytváří se úložiště relace v „{}“ podle nastavení session.storagePath. Pokud později toto nastavení změníte nebo odeberete, nebudou už data uložená tady ve výchozí relaci používána a je možné je odstranit, aby bylo možné uvolnit místo. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated. {Locked="session.storagePath"}"session.storagePath" is a configuration setting name and should not be translated. @@ -2483,6 +2487,58 @@ Informace o ochraně osobních údajů k tomuto produktu najdete na stránce htt Zápis do souboru místo STDOUT {Locked="STDOUT"}Command line arguments, file names and string inserts should not be translated + + Kopíruje soubory mezi kontejnerem a místním systémem souborů. + + + Kopírujte soubory mezi kontejnerem a místním systémem souborů. +Použití: wslc container cp [OPTIONS] SOURCE DEST + Z místního prostředí do kontejneru: wslc container cp LOCAL_PATH CONTAINER:PATH + Z kontejneru do místního prostředí: wslc container cp CONTAINER:PATH LOCAL_PATH + Ze stdin do kontejneru: wslc container cp - CONTAINER:PATH + {Locked="wslc"}{Locked="container cp"}{Locked="CONTAINER:PATH"}{Locked="LOCAL_PATH"} + + + Zdroj: místní cesta, CONTAINER:PATH nebo '-' pro stdin + {Locked="-"}{Locked="CONTAINER:PATH"} + + + Cíl: místní cesta nebo CONTAINER:PATH + {Locked="CONTAINER:PATH"} + + + Neplatný formát cíle. Očekávaný formát: CONTAINER:PATH + {Locked="CONTAINER:PATH"} + + + Neplatný formát zdroje. Očekávaný formát: CONTAINER:PATH + {Locked="CONTAINER:PATH"} + + + Zdrojová cesta se nenašla: {0} + {0} is the source path + + + tar.exe se nenašel. Pro místní kopírování souborů je potřeba Windows tar. + {Locked="tar.exe"} + + + Neplatný směr kopírování. Použijte CONTAINER:PATH jako zdroj nebo cíl. + {Locked="CONTAINER:PATH"} + + + Z terminálu nejde číst data tar. Předejte archiv tar přes kanál do stdin. +Příklad: tar -cf - files | wslc container cp - CONTAINER:/path + {Locked="tar -cf -"}{Locked="wslc container cp"}{Locked="CONTAINER:/path"} + + + Z archivního kontejneru nebyl extrahován žádný soubor + Shown when the container archive download produced no extractable files. + + + Adresář nejde kopírovat do cesty k souboru. Místo toho použijte jako cíl adresář (s koncovým oddělovačem). + Shown when the user tries to copy a directory from the container to a file destination. + Zkontrolovat kontejner. @@ -2783,6 +2839,10 @@ Při prvním spuštění vytvoří soubor se všemi nastaveními okomentovanými Zobrazit vše bez ohledu na stav. + + Režim archivu (přijímá se kvůli kompatibilitě s Docker CLI) + {Locked="Docker"} + Nastavit proměnné pro sestavení (KEY=VALUE) {Locked="KEY=VALUE"}Command line arguments should not be translated @@ -2849,6 +2909,24 @@ Při prvním spuštění vytvoří soubor se všemi nastaveními okomentovanými Neplatná hodnota {}: '{}'. Podporuje se pouze 'all'. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + Příkaz ke spuštění pro kontrolu stavu kontejneru + + + Doba mezi spuštěními kontroly stavu (např. 30s, 1m30s) + {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated + + + Počet po sobě jdoucích selhání potřebných k nahlášení kontejneru jako poškozeného + + + Počáteční doba, po kterou se kontejner může inicializovat před odpočítáváním kontroly stavu (např. 30s, 1m30s) + {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated + + + Maximální doba, po kterou může běžet jedna kontrola stavu (např. 30s, 1m30s) + {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated + Odstranit image, i když se používají @@ -2906,6 +2984,9 @@ Při prvním spuštění vytvoří soubor se všemi nastaveními okomentovanými Nepoužívejte mezipaměť při sestavování image + + Zakázat všechny kontroly stavu určené kontejnerem + Neodstraňovat neoznačené nadřazené image @@ -3086,6 +3167,14 @@ Při prvním spuštění vytvoří soubor se všemi nastaveními okomentovanými Neplatná hodnota argumentu {}: {} Očekávaná velikost paměti (např. 256M, 1G) {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="256M"}{Locked="1G"} + + Neplatná hodnota argumentu {}: {}. Očekává se doba trvání (např. 30s, 1m30s) + {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="30s"}{Locked="1m30s"} + + + Možnost --no-healthcheck nejde kombinovat s jinými možnostmi kontroly stavu. + {Locked="--no-healthcheck "}Command line arguments, file names and string inserts should not be translated + Soubor CID '{}' již existuje {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -3177,6 +3266,18 @@ Při prvním spuštění vytvoří soubor se všemi nastaveními okomentovanými Odstraněno: {} {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + Připojte kontejner k síti + + + Připojuje kontejner k existující síti. + + + Odpojte kontejner od sítě. + + + Odpojí kontejner od existující sítě. + Spravujte svazky. diff --git a/localization/strings/da-DK/Resources.resw b/localization/strings/da-DK/Resources.resw index 4bde09512f..204640be17 100644 --- a/localization/strings/da-DK/Resources.resw +++ b/localization/strings/da-DK/Resources.resw @@ -2259,6 +2259,10 @@ Brug: Flagargumentet må ikke indeholde en tilstødende værdi: '{}' {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + Ugyldig boolesk værdi for flagargument: '{}'. Sand, Falsk, 1 eller 0 var forventet. + {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + Der blev fundet et positionsargument, hvor ingen var forventet: '{}' {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -2427,7 +2431,7 @@ Du kan finde oplysninger om beskyttelse af personlige oplysninger for dette prod {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - Creating session storage at '{}' as configured by session.storagePath. If you later change or remove this setting, data stored here will no longer be used by the default session and can be deleted to reclaim space. + Opretter sessionslager på "{}" som konfigureret af session.storagePath. Hvis du senere ændrer eller fjerner denne indstilling, bliver data, der er gemt her, ikke længere brugt af standardsessionen og kan slettes for at frigøre plads. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated. {Locked="session.storagePath"}"session.storagePath" is a configuration setting name and should not be translated. @@ -2483,6 +2487,58 @@ Du kan finde oplysninger om beskyttelse af personlige oplysninger for dette prod Skriv til en fil i stedet for STDOUT {Locked="STDOUT"}Command line arguments, file names and string inserts should not be translated + + Kopiér filer mellem en objektbeholder og det lokale filsystem. + + + Kopiér filer mellem en objektbeholder og det lokale filsystem. +Format: wslc container cp [INDSTILLINGER] KILDEDESTINATION + Lokalt til objektbeholder: wslc container cp LOCAL_PATH CONTAINER:PATH + Objektbeholder til lokalt: wslc container cp CONTAINER:PATH LOCAL_PATH + Stdin til objektbeholder: wslc container cp - CONTAINER:PATH + {Locked="wslc"}{Locked="container cp"}{Locked="CONTAINER:PATH"}{Locked="LOCAL_PATH"} + + + Kilde: lokal sti, CONTAINER:PATH eller '-' til stdin + {Locked="-"}{Locked="CONTAINER:PATH"} + + + Destination: lokal sti eller CONTAINER:PATH + {Locked="CONTAINER:PATH"} + + + Ugyldigt destinationsformat. Forventet CONTAINER:PATH + {Locked="CONTAINER:PATH"} + + + Ugyldigt kildeformat. Forventet CONTAINER:PATH + {Locked="CONTAINER:PATH"} + + + Kildestien blev ikke fundet: {0} + {0} is the source path + + + tar.exe blev ikke fundet. Windows tar kræves til lokal filkopiering. + {Locked="tar.exe"} + + + Ugyldig kopieringsretning. Brug CONTAINER:PATH som enten kilde eller destination. + {Locked="CONTAINER:PATH"} + + + Kan ikke læse tar-data fra terminalen. Send et tar-arkiv til stdin. +Eksempel: tar -cf - filer | wslc container cp - CONTAINER:/path + {Locked="tar -cf -"}{Locked="wslc container cp"}{Locked="CONTAINER:/path"} + + + Der er ikke udtrukket nogen fil fra objektbeholderarkivet + Shown when the container archive download produced no extractable files. + + + En mappe kan ikke kopieres til en filsti. Brug et mappemål (med efterstillet separator) i stedet. + Shown when the user tries to copy a directory from the container to a file destination. + Undersøg en objektbeholder. @@ -2783,6 +2839,10 @@ Ved første kørsel oprettes filen med alle indstillinger kommenteret som standa Vis alle uanset tilstand. + + Arkivtilstand (accepteret FOR Docker CLI-kompatibilitet) + {Locked="Docker"} + Angiv variabler for build-tid (KEY=VALUE) {Locked="KEY=VALUE"}Command line arguments should not be translated @@ -2849,6 +2909,24 @@ Ved første kørsel oprettes filen med alle indstillinger kommenteret som standa Ugyldig {}-værdi: '{}'. Kun 'all' understøttes. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + Kommando, du kan køre for at kontrollere objektbeholderens tilstand + + + Tid mellem kørsel af tilstandskontrollen (f.eks. 30s, 1m30s) + {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated + + + Antal fortløbende fejl, der kræves for at rapportere objektbeholderen som i dårlig tilstand + + + Startperiode for, at objektbeholderen kan initialisere, før nedtællingen til tilstandskontrol starter (f.eks. 30s, 1m30s) + {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated + + + Maksimal tid, der er tilladt for, at én tilstandskontrol kan køre (f.eks. 30s, 1m30s) + {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated + Slet billeder, selvom de bruges @@ -2906,6 +2984,9 @@ Ved første kørsel oprettes filen med alle indstillinger kommenteret som standa Brug ikke cache, når du opretter billedet + + Deaktiver enhver objektbeholderspecifik tilstandskontrol + Slet ikke ikke-mærkede overordnede @@ -3086,6 +3167,14 @@ Ved første kørsel oprettes filen med alle indstillinger kommenteret som standa Ugyldig {}-argumentværdi: '{}'. Forventede en hukommelsesstørrelse (f.eks. 256M, 1G) {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="256M"}{Locked="1G"} + + Ugyldig {}-argumentværdi: '{}'. Forventede en varighed (f.eks. 30s, 1m30s) + {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="30s"}{Locked="1m30s"} + + + Indstillingen --no-healthcheck kan ikke kombineres med andre tilstandskontrolindstillinger. + {Locked="--no-healthcheck "}Command line arguments, file names and string inserts should not be translated + CID-filen "{}" findes allerede {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -3177,6 +3266,18 @@ Ved første kørsel oprettes filen med alle indstillinger kommenteret som standa Slettet: {} {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + Opret forbindelse mellem en objektbeholder og et netværk + + + Opretter forbindelse mellem en objektbeholder og et eksisterende netværk. + + + Afbryd forbindelsen mellem en objektbeholder og et netværk. + + + Afbryder en container fra et eksisterende netværk. + Administrer diskenheder. diff --git a/localization/strings/de-DE/Resources.resw b/localization/strings/de-DE/Resources.resw index 03b29b78a4..3be1f035c8 100644 --- a/localization/strings/de-DE/Resources.resw +++ b/localization/strings/de-DE/Resources.resw @@ -379,8 +379,7 @@ Beispiel: wslpath 'c:\\users' "}Command line arguments and file names should not be translated - Führt Verwaltungsvorgänge für Windows-Subsystem für Linux -aus + Führt Verwaltungsvorgänge für Windows-Subsystem für Linux: Verbrauch: /l, /list [Option] @@ -1589,8 +1588,7 @@ Anweisungen zur Wiederherstellung finden Sie unter: https://aka.ms/wsldiskmountr Windows-Dateien und -Programme über WSL starten - Selbst bei Verwendung von WSL können Sie Ihre ausführbaren Windows-Dateien direkt von der Bash ausführen. Versuchen Sie, -auszuführen. + Selbst bei Verwendung von WSL können Sie Ihre ausführbaren Windows-Dateien direkt von der Bash ausführen. Versuchen Sie, auszuführen. „powershell.exe /c start .“, um den Datei-Explorer in Ihrem aktuellen Ordner zu öffnen. {Locked="/c start ."}Command line arguments and file names should not be translated @@ -2267,6 +2265,10 @@ Verwendung: Kennzeichenargument darf keinen angrenzenden Wert enthalten: „{}“ {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + Ungültiger boolescher Wert für das Flag-Argument: "{}". Es wurde "true", "false", "1" oder "0" erwartet. + {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + Ein positionelles Argument wurde gefunden, obwohl keines erwartet wurde: „{}“ {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -2435,7 +2437,7 @@ Datenschutzinformationen zu diesem Produkt finden Sie unter https://aka.ms/priva {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - Creating session storage at '{}' as configured by session.storagePath. If you later change or remove this setting, data stored here will no longer be used by the default session and can be deleted to reclaim space. + Sitzungsspeicher wird unter „{}“ erstellt, wie von session.storagePath konfiguriert. Wenn Sie diese Einstellung später ändern oder entfernen, werden die hier gespeicherten Daten nicht mehr von der standardmäßigen Sitzung verwendet und können gelöscht werden, um Speicherplatz freizugeben. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated. {Locked="session.storagePath"}"session.storagePath" is a configuration setting name and should not be translated. @@ -2491,6 +2493,58 @@ Datenschutzinformationen zu diesem Produkt finden Sie unter https://aka.ms/priva In eine Datei schreiben, anstatt STDOUT {Locked="STDOUT"}Command line arguments, file names and string inserts should not be translated + + Dateien zwischen einem Container und dem lokalen Dateisystem kopieren. + + + Dateien zwischen einem Container und dem lokalen Dateisystem kopieren. +Verwendung: wslc container cp [OPTIONEN] QUELLE ZIEL + Lokal zu Container: wslc container cp LOCAL_PATH CONTAINER:PATH + Container zu lokal: wslc container cp CONTAINER:PATH LOCAL_PATH + Stdin zu Container: wslc container cp - CONTAINER:PATH + {Locked="wslc"}{Locked="container cp"}{Locked="CONTAINER:PATH"}{Locked="LOCAL_PATH"} + + + Quelle: lokaler Pfad, CONTAINER:PATH oder '-' für stdin + {Locked="-"}{Locked="CONTAINER:PATH"} + + + Ziel: lokaler Pfad oder CONTAINER:PATH + {Locked="CONTAINER:PATH"} + + + Ungültiges Zielformat. Erwartet wurde CONTAINER:PATH + {Locked="CONTAINER:PATH"} + + + Ungültiges Quellformat. Erwartet wurde CONTAINER:PATH + {Locked="CONTAINER:PATH"} + + + Quellpfad nicht gefunden: {0} + {0} is the source path + + + tar.exe nicht gefunden. Für das Kopieren lokaler Dateien ist Windows-Tar erforderlich. + {Locked="tar.exe"} + + + Ungültige Kopierrichtung. Verwenden Sie CONTAINER:PATH entweder als Quelle oder als Ziel. + {Locked="CONTAINER:PATH"} + + + Kann keine Tar-Daten vom Terminal lesen. Leiten Sie ein Tar-Archiv an stdin weiter. +Beispiel: tar -cf - files | wslc container cp - CONTAINER:/path + {Locked="tar -cf -"}{Locked="wslc container cp"}{Locked="CONTAINER:/path"} + + + Keine extrahierbaren Dateien aus dem Containerarchiv gefunden + Shown when the container archive download produced no extractable files. + + + Ein Verzeichnis kann nicht in einen Dateipfad kopiert werden. Verwenden Sie stattdessen ein Verzeichnisziel (mit nachgestelltem Trennzeichen). + Shown when the user tries to copy a directory from the container to a file destination. + Einen Container überprüfen. @@ -2791,6 +2845,10 @@ Erstellt bei der ersten Ausführung die Datei mit allen Einstellungen, die stand Alle anzeigen, unabhängig vom Zustand. + + Archivmodus (zur Kompatibilität mit der Docker-CLI akzeptiert) + {Locked="Docker"} + Buildzeitvariablen festlegen (KEY=VALUE) {Locked="KEY=VALUE"}Command line arguments should not be translated @@ -2857,6 +2915,24 @@ Erstellt bei der ersten Ausführung die Datei mit allen Einstellungen, die stand Ungültiger {}-Wert: „{}“. Es wird nur „alle“ unterstützt. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + Befehl zum Ausführen der Integritätsprüfung des Containers + + + Zeit zwischen den Ausführungen der Integritätsprüfung (z. B. 30s, 1m30s) + {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated + + + Anzahl aufeinanderfolgender Fehler, die erforderlich ist, um den Container als fehlerhaft zu melden + + + Startzeitraum für die Initialisierung des Containers vor dem Countdown der Integritätsprüfung (z. B. 30s, 1m30s) + {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated + + + Maximale Zeit, die für die Ausführung einer Integritätsprüfung zugelassen ist (z. B. 30s, 1m30s) + {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated + Bilder löschen, auch wenn sie verwendet werden @@ -2914,6 +2990,9 @@ Erstellt bei der ersten Ausführung die Datei mit allen Einstellungen, die stand Zwischenspeichern beim Erstellen des Bildes nicht verwenden + + Vom Container angegebene Integritätsprüfung deaktivieren + Nicht markierte übergeordnete Elemente nicht löschen @@ -3094,6 +3173,14 @@ Erstellt bei der ersten Ausführung die Datei mit allen Einstellungen, die stand Ungültiger {}-Argumentwert: "{}". Arbeitsspeichergröße erwartet (z. B. 256M, 1G) {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="256M"}{Locked="1G"} + + Ungültiger {}-Argumentwert: "{}". Erwartete Dauer (z. B. 30s, 1m30s) + {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="30s"}{Locked="1m30s"} + + + Die Option --no-healthcheck kann nicht mit anderen Health-Check-Optionen kombiniert werden. + {Locked="--no-healthcheck "}Command line arguments, file names and string inserts should not be translated + Die CID-Datei „{}“ ist bereits vorhanden {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -3185,6 +3272,18 @@ Erstellt bei der ersten Ausführung die Datei mit allen Einstellungen, die stand Gelöscht: {} {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + Verbinden eines Containers mit einem Netzwerk + + + Verbindet einen Container mit einem bestehenden Netzwerk. + + + Trennen sie einen Container von einem Netzwerk. + + + Trennt einen Container von einem bestehenden Netzwerk. + Volumes verwalten. diff --git a/localization/strings/en-GB/Resources.resw b/localization/strings/en-GB/Resources.resw index 686858fe62..48ad37e2ec 100644 --- a/localization/strings/en-GB/Resources.resw +++ b/localization/strings/en-GB/Resources.resw @@ -2259,6 +2259,10 @@ Usage: Flag argument cannot contain adjoined value: '{}' {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + Invalid boolean value for flag argument: '{}'. Expected true, false, 1, or 0. + {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + Found a positional argument when none was expected: '{}' {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -2483,6 +2487,58 @@ For privacy information about this product please visit https://aka.ms/privacy.< Write to a file, instead of STDOUT {Locked="STDOUT"}Command line arguments, file names and string inserts should not be translated + + Copy files between a container and the local filesystem. + + + Copy files between a container and the local filesystem. +Usage: wslc container cp [OPTIONS] SOURCE DEST + Local to container: wslc container cp LOCAL_PATH CONTAINER:PATH + Container to local: wslc container cp CONTAINER:PATH LOCAL_PATH + Stdin to container: wslc container cp - CONTAINER:PATH + {Locked="wslc"}{Locked="container cp"}{Locked="CONTAINER:PATH"}{Locked="LOCAL_PATH"} + + + Source: local path, CONTAINER:PATH, or '-' for stdin + {Locked="-"}{Locked="CONTAINER:PATH"} + + + Destination: local path or CONTAINER:PATH + {Locked="CONTAINER:PATH"} + + + Invalid destination format. Expected CONTAINER:PATH + {Locked="CONTAINER:PATH"} + + + Invalid source format. Expected CONTAINER:PATH + {Locked="CONTAINER:PATH"} + + + Source path not found: {0} + {0} is the source path + + + tar.exe not found. Windows tar is required for local file copy. + {Locked="tar.exe"} + + + Invalid copy direction. Use CONTAINER:PATH as either source or destination. + {Locked="CONTAINER:PATH"} + + + Cannot read tar data from terminal. Pipe a tar archive to stdin. +Example: tar -cf - files | wslc container cp - CONTAINER:/path + {Locked="tar -cf -"}{Locked="wslc container cp"}{Locked="CONTAINER:/path"} + + + No file extracted from container archive + Shown when the container archive download produced no extractable files. + + + Cannot copy a directory to a file path. Use a directory target (with trailing separator) instead. + Shown when the user tries to copy a directory from the container to a file destination. + Inspect a container. @@ -2783,6 +2839,10 @@ On first run, creates the file with all settings commented out at their defaults Show all regardless of state. + + Archive mode (accepted for Docker CLI compatibility) + {Locked="Docker"} + Set build-time variables (KEY=VALUE) {Locked="KEY=VALUE"}Command line arguments should not be translated @@ -2849,6 +2909,24 @@ On first run, creates the file with all settings commented out at their defaults Invalid {} value: '{}'. Only 'all' is supported. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + Command to run to check container health + + + Time between running the health check (e.g. 30s, 1m30s) + {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated + + + Consecutive failures needed to report the container as unhealthy + + + Start period for the container to initialise before health-check countdown (e.g. 30s, 1m30s) + {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated + + + Maximum time to allow one health check to run (e.g. 30s, 1m30s) + {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated + Delete images even if they are being used @@ -2906,6 +2984,9 @@ On first run, creates the file with all settings commented out at their defaults Do not use cache when building the image + + Disable any container-specified health check + Do not delete untagged parents @@ -3086,6 +3167,14 @@ On first run, creates the file with all settings commented out at their defaults Invalid {} argument value: '{}'. Expected a memory size (e.g. 256M, 1G) {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="256M"}{Locked="1G"} + + Invalid {} argument value: '{}'. Expected a duration (e.g. 30s, 1m30s) + {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="30s"}{Locked="1m30s"} + + + The --no-healthcheck option cannot be combined with other health check options. + {Locked="--no-healthcheck "}Command line arguments, file names and string inserts should not be translated + CID file '{}' already exists {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -3177,6 +3266,18 @@ On first run, creates the file with all settings commented out at their defaults Deleted: {} {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + Connect a container to a network. + + + Connects a container to an existing network. + + + Disconnect a container from a network. + + + Disconnects a container from an existing network. + Manage volumes. diff --git a/localization/strings/es-ES/Resources.resw b/localization/strings/es-ES/Resources.resw index 54a36c5576..dfd4ec57e3 100644 --- a/localization/strings/es-ES/Resources.resw +++ b/localization/strings/es-ES/Resources.resw @@ -2265,6 +2265,10 @@ Uso: El argumento de marca no puede contener el valor adyacente: '{}' {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + Valor booleano no válido para el argumento de marca: '{}'. Se esperaba true, false, 1 o 0. + {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + Se encontró un argumento posicional cuando no se esperaba ninguno: '{}' {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -2433,7 +2437,7 @@ Para obtener información de privacidad sobre este producto, visita https://aka. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - Creating session storage at '{}' as configured by session.storagePath. If you later change or remove this setting, data stored here will no longer be used by the default session and can be deleted to reclaim space. + Creando almacenamiento de sesión en "{}" según la configuración de session.storagePath. Si más adelante cambias o quitas esta configuración, los datos almacenados aquí ya no se usarán en la sesión predeterminada y se podrán eliminar para recuperar espacio. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated. {Locked="session.storagePath"}"session.storagePath" is a configuration setting name and should not be translated. @@ -2489,6 +2493,58 @@ Para obtener información de privacidad sobre este producto, visita https://aka. Escribe en un archivo, en lugar de STDOUT {Locked="STDOUT"}Command line arguments, file names and string inserts should not be translated + + Copia archivos entre un contenedor y el sistema de archivos local. + + + Copiar archivos entre un contenedor y el sistema de archivos local. +Uso: wslc container cp [OPCIONES] ORIGEN DESTINO + Local a contenedor: wslc container cp LOCAL_PATH CONTAINER:PATH + Contenedor a local: wslc container cp CONTAINER:PATH LOCAL_PATH + Entrada estándar a contenedor: wslc container cp - CONTAINER:PATH + {Locked="wslc"}{Locked="container cp"}{Locked="CONTAINER:PATH"}{Locked="LOCAL_PATH"} + + + Origen: ruta de acceso local, CONTAINER:PATH o "-" para stdin + {Locked="-"}{Locked="CONTAINER:PATH"} + + + Destino: ruta local o CONTAINER:PATH + {Locked="CONTAINER:PATH"} + + + Formato de destino no válido. Se esperaba CONTAINER:PATH + {Locked="CONTAINER:PATH"} + + + Formato de origen no válido. Se esperaba CONTAINER:PATH + {Locked="CONTAINER:PATH"} + + + No se encontró la ruta de acceso de origen: {0} + {0} is the source path + + + tar.exe no encontrado. Se requiere tar de Windows para la copia de archivos locales. + {Locked="tar.exe"} + + + Dirección de copia no válida. Use CONTAINER:PATH como origen o destino. + {Locked="CONTAINER:PATH"} + + + No se pueden leer datos tar desde el terminal. Redirigir un archivo tar a stdin. +Ejemplo: tar -cf - archivos | wslc container cp - CONTAINER:/path + {Locked="tar -cf -"}{Locked="wslc container cp"}{Locked="CONTAINER:/path"} + + + No se extrajo ningún archivo del archivo contenedor + Shown when the container archive download produced no extractable files. + + + No se puede copiar un directorio en una ruta de acceso de archivo. Use un destino de directorio (con separador final) en su lugar. + Shown when the user tries to copy a directory from the container to a file destination. + Inspecciona un contenedor. @@ -2789,6 +2845,10 @@ En la primera ejecución, crea el archivo con todas las configuraciones comentad Mostrar todo independientemente del estado. + + Modo de archivo (aceptado por compatibilidad con la CLI de Docker) + {Locked="Docker"} + Establecer variables en tiempo de compilación (KEY=VALUE) {Locked="KEY=VALUE"}Command line arguments should not be translated @@ -2855,6 +2915,24 @@ En la primera ejecución, crea el archivo con todas las configuraciones comentad Valor {} no válido: '{}'. Solo se admite "all". {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + Comando para ejecutar para verificar la salud del contenedor + + + Tiempo transcurrido entre la ejecución de la comprobación de estado (por ejemplo, 30s, 1m30s) + {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated + + + Errores consecutivos necesarios para notificar el contenedor como incorrecto + + + Período de inicio para que el contenedor se inicialice antes de la cuenta atrás de comprobación de estado (por ejemplo, 30s, 1m30s) + {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated + + + Tiempo máximo para permitir que se ejecute una comprobación de estado (por ejemplo, 30s, 1m30s) + {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated + Eliminar imágenes incluso si se están usando @@ -2912,6 +2990,9 @@ En la primera ejecución, crea el archivo con todas las configuraciones comentad No usar caché al compilar la imagen + + Deshabilitar cualquier comprobación de estado especificada por el contenedor + No eliminar elementos primarios sin etiquetar @@ -3092,6 +3173,14 @@ En la primera ejecución, crea el archivo con todas las configuraciones comentad Valor de argumento {} no válido: '{}'. Se esperaba un tamaño de memoria (por ejemplo, 256M, 1G) {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="256M"}{Locked="1G"} + + Valor de argumento {} no válido "{}". Se esperaba una duración (por ejemplo, 30s, 1m30s) + {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="30s"}{Locked="1m30s"} + + + La opción --no-healthcheck no se puede combinar con otras opciones de comprobación de estado. + {Locked="--no-healthcheck "}Command line arguments, file names and string inserts should not be translated + El archivo CID "{}" ya existe {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -3183,6 +3272,18 @@ En la primera ejecución, crea el archivo con todas las configuraciones comentad Eliminado: {} {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + Conectar un contenedor a una red + + + Conecta un contenedor a una red existente. + + + Desconecta un contenedor de una red. + + + Desconecta un contenedor de una red existente. + Administra volúmenes. diff --git a/localization/strings/fi-FI/Resources.resw b/localization/strings/fi-FI/Resources.resw index 0f52110b11..61922257dd 100644 --- a/localization/strings/fi-FI/Resources.resw +++ b/localization/strings/fi-FI/Resources.resw @@ -2259,6 +2259,10 @@ Käyttö: Merkintäargumentti ei voi sisältää liitettyä arvoa: {} {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + Virheellinen totuusarvo lippuargumentille: {}. Odotettiin arvoa true, false, 1 tai 0. + {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + Löydettiin positioargumentti, kun yhtäkään ei odotettu: {} {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -2427,7 +2431,7 @@ Tuotteen tietosuojatiedot löytyvät osoitteesta https://aka.ms/privacy. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - Creating session storage at '{}' as configured by session.storagePath. If you later change or remove this setting, data stored here will no longer be used by the default session and can be deleted to reclaim space. + Luodaan istunnon tallennustilaa kohteessa "{}" asetuksen session.storagePath mukaisesti. Jos muutat tai poistat tämän asetuksen myöhemmin, oletusistunto ei enää käytä tänne tallennettuja tietoja, ja ne voidaan poistaa tilan vapauttamiseksi. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated. {Locked="session.storagePath"}"session.storagePath" is a configuration setting name and should not be translated. @@ -2483,6 +2487,58 @@ Tuotteen tietosuojatiedot löytyvät osoitteesta https://aka.ms/privacy. Kirjoita tiedostoon STDOUT:n sijaan {Locked="STDOUT"}Command line arguments, file names and string inserts should not be translated + + Kopioi tiedostoja säilön ja paikallisen tiedostojärjestelmän välillä. + + + Kopioi tiedostoja säilön ja paikallisen tiedostojärjestelmän välillä. +Käyttö: wslc container cp [ASETUKSET] LÄHDE DEST + Paikallinen säilöön: wslc container cp LOCAL_PATH CONTAINER:PATH + Säilöstä paikalliseen: wslc container cp CONTAINER:PATH LOCAL_PATH + Stdin säilöön: wslc container cp - CONTAINER:PATH + {Locked="wslc"}{Locked="container cp"}{Locked="CONTAINER:PATH"}{Locked="LOCAL_PATH"} + + + Lähde: paikallinen polku, CONTAINER:PATH tai '-' stdin:ää varten + {Locked="-"}{Locked="CONTAINER:PATH"} + + + Kohde: paikallinen polku tai CONTAINER:PATH + {Locked="CONTAINER:PATH"} + + + Virheellinen kohteen muoto. Odotettu CONTAINER:PATH + {Locked="CONTAINER:PATH"} + + + Virheellinen lähdemuoto. Odotettu CONTAINER:PATH + {Locked="CONTAINER:PATH"} + + + Lähdepolkua ei löytynyt: {0} + {0} is the source path + + + tar.exe ei löydy. Windowsin tar-palvelu vaaditaan paikalliseen tiedostojen kopiointiin. + {Locked="tar.exe"} + + + Virheellinen kopiointisuunta. Käytä CONTAINER:PATH joko lähteenä tai kohteena. + {Locked="CONTAINER:PATH"} + + + Tar-tietoja ei voi lukea päätelaitteesta. Ohjaa tar-arkisto stdin:ään. +Esimerkki: tar -cf - files | wslc container cp - CONTAINER:/path + {Locked="tar -cf -"}{Locked="wslc container cp"}{Locked="CONTAINER:/path"} + + + Säilöarkistosta ei poimittu tiedostoa + Shown when the container archive download produced no extractable files. + + + Hakemistoa ei voi kopioida tiedostopolkuun. Käytä sen sijaan hakemistokohdetta (jossa on loppuerotin). + Shown when the user tries to copy a directory from the container to a file destination. + Tarkastele säilöä. @@ -2783,6 +2839,10 @@ Ensimmäisellä käynnistyskerralla luo tiedoston, jossa kaikki asetukset on kom Näytä kaikki tilasta riippumatta. + + Arkistotila (hyväksytään Docker CLI -yhteensopivuutta varten) + {Locked="Docker"} + Määritä koontiversion aikamuuttujat (KEY=VALUE) {Locked="KEY=VALUE"}Command line arguments should not be translated @@ -2849,6 +2909,24 @@ Ensimmäisellä käynnistyskerralla luo tiedoston, jossa kaikki asetukset on kom Virheellinen {}-arvo: {}. Vain määritettä kaikki tuetaan. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + Komento, joka suoritetaan säilön kunnon tarkistamista varten + + + Kuntotarkistuksen suorittamisen välinen aika (esim. 30s, 1m30s) + {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated + + + Säilön epäterveeksi ilmoittamiseen tarvittavat peräkkäiset virheet + + + Säilön alustamisen alkamisaika ennen kuntotarkistuksen lähtölaskentaa (esim. 30s, 1m30s) + {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated + + + Enimmäisaika, joka sallii yhden kuntotarkistuksen suorittamisen (esim. 30s, 1m30s) + {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated + Poista kuvat, vaikka niitä käytettäisiin @@ -2906,6 +2984,9 @@ Ensimmäisellä käynnistyskerralla luo tiedoston, jossa kaikki asetukset on kom Älä käytä välimuistia kuvan rakentamisessa + + Poista säilön määrittämä kuntotarkistus käytöstä + Älä poista merkitsemättömiä pääkohteita @@ -3086,6 +3167,14 @@ Ensimmäisellä käynnistyskerralla luo tiedoston, jossa kaikki asetukset on kom Virheellinen argumentin {} arvo: {}. Odotettiin muistin kokoa (esim. 256M, 1G) {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="256M"}{Locked="1G"} + + Virheellinen argumentin {} arvo: {}. Odotettiin kestoa (esim. 30s, 1m30s) + {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="30s"}{Locked="1m30s"} + + + --no-healthcheck asetusta ei voi yhdistää muihin kunnontarkistusasetuksiin. + {Locked="--no-healthcheck "}Command line arguments, file names and string inserts should not be translated + Tiedosto '{}' on jo olemassa {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -3177,6 +3266,18 @@ Ensimmäisellä käynnistyskerralla luo tiedoston, jossa kaikki asetukset on kom Poistettu: {} {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + Yhdistä säilö verkkoon + + + Yhdistää säiliön olemassa olevaan verkkoon. + + + Katkaise kontin yhteys verkkoon. + + + Katkaisee kontin yhteyden olemassa olevaan verkkoon. + Hallitse asemia. diff --git a/localization/strings/fr-FR/Resources.resw b/localization/strings/fr-FR/Resources.resw index 12c21ecf2a..00a1a32f5f 100644 --- a/localization/strings/fr-FR/Resources.resw +++ b/localization/strings/fr-FR/Resources.resw @@ -2266,6 +2266,10 @@ Utilisation : L'argument drapeau ne peut pas contenir de valeur adjacente : '{}' {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + Valeur booléenne non valide pour l’argument d’indicateur : « {} ». Attendu true, false, 1 ou 0. + {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + J'ai trouvé un argument positionnel alors qu'on n'en attendait aucun : '{}' {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -2434,7 +2438,7 @@ Pour plus d’informations sur la confidentialité de ce produit, veuillez consu {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - Creating session storage at '{}' as configured by session.storagePath. If you later change or remove this setting, data stored here will no longer be used by the default session and can be deleted to reclaim space. + Création du stockage de session sur « {} » tel que configuré par session.storagePath. Si vous modifiez ou supprimez ultérieurement ce paramètre, les données stockées ici ne seront plus utilisées par la session par défaut et pourront être supprimées pour récupérer de l’espace. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated. {Locked="session.storagePath"}"session.storagePath" is a configuration setting name and should not be translated. @@ -2490,6 +2494,58 @@ Pour plus d’informations sur la confidentialité de ce produit, veuillez consu Écrire dans un fichier, au lieu de STDOUT {Locked="STDOUT"}Command line arguments, file names and string inserts should not be translated + + Copier des fichiers entre un conteneur et le système de fichiers local. + + + Copiez des fichiers entre un conteneur et le système de fichiers local. +Utilisation : wslc container cp [OPTIONS] SOURCE DEST + Du système local vers le conteneur : wslc container cp LOCAL_PATH CONTAINER:PATH + Du conteneur vers le système local : wslc container cp CONTAINER:PATH LOCAL_PATH + De l’entrée standard vers le conteneur : wslc container cp – CONTAINER:PATH + {Locked="wslc"}{Locked="container cp"}{Locked="CONTAINER:PATH"}{Locked="LOCAL_PATH"} + + + Source : chemin local, CONTAINER:PATH ou '-' pour stdin + {Locked="-"}{Locked="CONTAINER:PATH"} + + + Destination : chemin d’accès local ou CONTAINER:PATH + {Locked="CONTAINER:PATH"} + + + Format de destination non valide. CONTAINER:PATH attendu + {Locked="CONTAINER:PATH"} + + + Format source non valide. CONTAINER:PATH attendu + {Locked="CONTAINER:PATH"} + + + Chemin source introuvable : {0} + {0} is the source path + + + tar.exe introuvable. Windows tar est nécessaire pour la copie de fichiers locaux. + {Locked="tar.exe"} + + + Sens de copie non valide. Utilisez CONTAINER:PATH comme source ou destination. + {Locked="CONTAINER:PATH"} + + + Impossible de lire les données tar depuis le terminal. Poussez une archive tar vers stdin canal. +Exemple : tar -cf - files | wslc container cp - CONTAINER:/path + {Locked="tar -cf -"}{Locked="wslc container cp"}{Locked="CONTAINER:/path"} + + + Aucun fichier n’a été extrait de l’archive du conteneur + Shown when the container archive download produced no extractable files. + + + Impossible de copier un répertoire vers un chemin d’accès de fichier. Utilisez une cible de répertoire (avec séparateur de fin) à la place. + Shown when the user tries to copy a directory from the container to a file destination. + Inspecter un conteneur. @@ -2790,6 +2846,10 @@ Lors de la première exécution, crée le fichier avec tous les paramètres comm Affichez tout, quel que soit l’état. + + Mode archive (accepté pour la compatibilité avec l’interface de ligne de commande Docker) + {Locked="Docker"} + Définir les variables au moment de la génération (KEY=VALUE) {Locked="KEY=VALUE"}Command line arguments should not be translated @@ -2856,6 +2916,24 @@ Lors de la première exécution, crée le fichier avec tous les paramètres comm Valeur {} non valide : « {} ». Seul « all » est pris en charge. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + Commande à exécuter pour vérifier l’intégrité du conteneur + + + Délai entre l’exécution du contrôle d’intégrité (par exemple, 30s, 1m30s) + {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated + + + Échecs consécutifs nécessaires pour signaler le conteneur comme non sain + + + Période de démarrage pour l’initialisation du conteneur avant le compte à rebours de vérification d’intégrité (par exemple 30s, 1m30s) + {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated + + + Durée maximale d’exécution d’un contrôle d’intégrité (par exemple, 30s, 1m30s) + {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated + Supprimez les images même si elles sont utilisées @@ -2913,6 +2991,9 @@ Lors de la première exécution, crée le fichier avec tous les paramètres comm Ne pas utiliser le cache lors de la création de l’image + + Désactiver toute vérification d’intégrité spécifiée par le conteneur + Ne supprimez pas les parents non étiquetés @@ -3093,6 +3174,14 @@ Lors de la première exécution, crée le fichier avec tous les paramètres comm Valeur d’argument {} non valide : « {} ». Taille de mémoire attendue (par exemple, 256M, 1G) {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="256M"}{Locked="1G"} + + Valeur de l’argument {} non valide : '{}'. Durée attendue (par exemple, 30s, 1m30s) + {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="30s"}{Locked="1m30s"} + + + L’option --no-healthcheck ne peut pas être combinée avec d’autres options de case activée d’intégrité. + {Locked="--no-healthcheck "}Command line arguments, file names and string inserts should not be translated + Le fichier CID « {} » existe déjà {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -3184,6 +3273,18 @@ Lors de la première exécution, crée le fichier avec tous les paramètres comm Supprimé : {} {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + Connectez un conteneur à un réseau + + + Connecte un conteneur à un réseau existant. + + + Déconnecter un conteneur à partir d'un réseau. + + + Déconnecte un conteneur d'un réseau existant. + Gérez les volumes. diff --git a/localization/strings/hu-HU/Resources.resw b/localization/strings/hu-HU/Resources.resw index e20aaef6fd..ed703a95a2 100644 --- a/localization/strings/hu-HU/Resources.resw +++ b/localization/strings/hu-HU/Resources.resw @@ -2259,6 +2259,10 @@ Usage: A jelölő argumentum nem tartalmazhat szomszédos értéket: {} {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + Érvénytelen logikai érték a jelzőargumentumhoz: {}. A várt érték igaz, hamis, 1 vagy 0. + {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + Nem várt helyen pozícióhoz kötött argumentum található: {} {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -2427,7 +2431,7 @@ További információ a termékről: https://aka.ms/privacy. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - Creating session storage at '{}' as configured by session.storagePath. If you later change or remove this setting, data stored here will no longer be used by the default session and can be deleted to reclaim space. + Munkamenet-tároló létrehozása a(z) {} helyen a session.storagePath által konfigurált módon. Ha később módosítja vagy eltávolítja ezt a beállítást, az itt tárolt adatokat már nem fogja használni az alapértelmezett munkamenet, és a lemezterület felszabadítása érdekében azok törölhetők. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated. {Locked="session.storagePath"}"session.storagePath" is a configuration setting name and should not be translated. @@ -2483,6 +2487,58 @@ További információ a termékről: https://aka.ms/privacy. Írás fájlba ahelyett, hogy a STDOUT-ra írna {Locked="STDOUT"}Command line arguments, file names and string inserts should not be translated + + Fájlok másolása egy tároló és a helyi fájlrendszer között. + + + Fájlok másolása egy tároló és a helyi fájlrendszer között. +Használat: wslc container cp [OPTIONS] SOURCE DEST + Helyi tároló: wslc container cp LOCAL_PATH CONTAINER:PATH + Tárolóból helyi: wslc container cp CONTAINER:PATH LOCAL_PATH + Stdin-ről tárolóba: wslc container cp - CONTAINER:PATH + {Locked="wslc"}{Locked="container cp"}{Locked="CONTAINER:PATH"}{Locked="LOCAL_PATH"} + + + Forrás: helyi elérési út, CONTAINER:PATH vagy "-" az stdin esetében + {Locked="-"}{Locked="CONTAINER:PATH"} + + + Cél: helyi elérési út vagy CONTAINER:PATH + {Locked="CONTAINER:PATH"} + + + Érvénytelen célformátum. Várt érték CONTAINER:PATH + {Locked="CONTAINER:PATH"} + + + Érvénytelen forrásformátum. Várt érték CONTAINER:PATH + {Locked="CONTAINER:PATH"} + + + A forrás elérési útja nem található: {0} + {0} is the source path + + + tar.exe nem található. A helyi fájlmásoláshoz Windows tar szükséges. + {Locked="tar.exe"} + + + Érvénytelen másolási irány. Forrásként vagy célként használja a CONTAINER:PATH elemet. + {Locked="CONTAINER:PATH"} + + + Nem olvashatók a tar-adatok a terminálból. Tar-archívum továbbítása az stdin-re. +Példa: tar -cf - files | wslc container cp - CONTAINER:/path + {Locked="tar -cf -"}{Locked="wslc container cp"}{Locked="CONTAINER:/path"} + + + Nincs fájl kibontva a tárolóarchívumból + Shown when the container archive download produced no extractable files. + + + Könyvtár nem másolható fájlelérési útra. Használjon helyette könyvtárcélt (záró elválasztójellel). + Shown when the user tries to copy a directory from the container to a file destination. + Tároló vizsgálata. @@ -2783,6 +2839,10 @@ Első futtatáskor a program létrehozza a fájlt, amelyben az összes beállít Az összes megjelenítése állapottól függetlenül. + + Archiválási mód (a Docker CLI-kompatibilitás érdekében elfogadva) + {Locked="Docker"} + Buildelési idő változóinak beállítása (KEY=VALUE) {Locked="KEY=VALUE"}Command line arguments should not be translated @@ -2849,6 +2909,24 @@ Első futtatáskor a program létrehozza a fájlt, amelyben az összes beállít Érvénytelen {} érték: {}. Csak az "all" támogatott. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + A tároló állapotának ellenőrzéséhez futtatandó parancs + + + Az állapot-ellenőrzés futtatása közötti idő (pl. 30s, 1m30s) + {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated + + + A tároló nem megfelelő állapotúként való jelentéséhez szükséges egymást követő hibák száma + + + A tároló inicializálásának kezdő időszaka az állapot-ellenőrzés visszaszámlálása előtt (például 30s, 1m30s) + {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated + + + Egy állapot-ellenőrzés futtatásának maximális ideje (pl. 30s, 1m30s) + {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated + Képek törlése akkor is, ha használatban vannak @@ -2906,6 +2984,9 @@ Első futtatáskor a program létrehozza a fájlt, amelyben az összes beállít Ne használjon gyorsítótárat a lemezkép létrehozásakor + + Tároló által megadott állapot-ellenőrzés letiltása + Ne törölje a címkézetlen szülőket @@ -3086,6 +3167,14 @@ Első futtatáskor a program létrehozza a fájlt, amelyben az összes beállít Érvénytelen {} argumentumérték: "{}". A rendszer memóriaméretet várt (például 256M, 1G) {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="256M"}{Locked="1G"} + + Érvénytelen {} argumentumérték: {}. A várt időtartam (pl. 30s, 1m30s) + {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="30s"}{Locked="1m30s"} + + + A --no-healthcheck beállítás nem kombinálható más állapot-ellenőrzési beállításokkal. + {Locked="--no-healthcheck "}Command line arguments, file names and string inserts should not be translated + A(z) {} CID-fájl már létezik {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -3177,6 +3266,18 @@ Első futtatáskor a program létrehozza a fájlt, amelyben az összes beállít Törölve: {} {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + Tároló csatlakoztatása hálózathoz + + + Egy tárolót csatlakoztat egy meglévő hálózathoz. + + + Tároló leválasztása a hálózatról. + + + Leválaszt egy tárolót egy meglévő hálózatról. + Kötetek kezelése. diff --git a/localization/strings/it-IT/Resources.resw b/localization/strings/it-IT/Resources.resw index 97de382d2b..5e1f30363e 100644 --- a/localization/strings/it-IT/Resources.resw +++ b/localization/strings/it-IT/Resources.resw @@ -2265,6 +2265,10 @@ Utilizzo: L'argomento flag non può contenere un valore contiguo: '{}' {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + Valore booleano non valido per l'argomento del flag: '{}'. Previsto vero, falso, 1 o 0. + {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + È stato trovato un argomento posizionale nonostante non ne fosse previsto alcuno: '{}' {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -2433,7 +2437,7 @@ Per informazioni sulla privacy di questo prodotto, visita https://aka.ms/privacy {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - Creating session storage at '{}' as configured by session.storagePath. If you later change or remove this setting, data stored here will no longer be used by the default session and can be deleted to reclaim space. + Creazione dell'archiviazione della sessione in '{}' secondo la configurazione di session.storagePath. Se in seguito modifichi o rimuovi questa impostazione, i dati archiviati qui non verranno più utilizzati dalla sessione predefinita e potranno essere eliminati per recuperare spazio. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated. {Locked="session.storagePath"}"session.storagePath" is a configuration setting name and should not be translated. @@ -2489,6 +2493,58 @@ Per informazioni sulla privacy di questo prodotto, visita https://aka.ms/privacy Scrivi in un file, invece di STDOUT {Locked="STDOUT"}Command line arguments, file names and string inserts should not be translated + + Copia i file tra un contenitore e il file system locale. + + + Copia i file tra un contenitore e il filesystem locale. +Uso: wslc container cp [OPZIONI] SORGENTE DEST + Da locale a contenitore: wslc container cp LOCAL_PATH CONTAINER:PATH + Da contenitore a locale: wslc container cp CONTAINER:PATH LOCAL_PATH + Stdin a contenitore: wslc container cp - CONTAINER:PATH + {Locked="wslc"}{Locked="container cp"}{Locked="CONTAINER:PATH"}{Locked="LOCAL_PATH"} + + + Origine: percorso locale, CONTAINER:PATH oppure '-' per STDIN + {Locked="-"}{Locked="CONTAINER:PATH"} + + + Destinazione: percorso locale o CONTAINER:PATH + {Locked="CONTAINER:PATH"} + + + Formato di destinazione non valido. Previsto CONTAINER:PATH + {Locked="CONTAINER:PATH"} + + + Formato di origine non valido. Previsto CONTAINER:PATH + {Locked="CONTAINER:PATH"} + + + Percorso origine non trovato: {0} + {0} is the source path + + + tar.exe non trovato. Il tar di Windows è necessario per la copia del file locale. + {Locked="tar.exe"} + + + Direzione di copia non valida. Usa CONTAINER:PATH come origine o destinazione. + {Locked="CONTAINER:PATH"} + + + Non è possibile leggere i dati tar dal terminale. Reindirizza un archivio tar a STDIN. +Esempio: tar -cf - files | wslc container cp - CONTAINER:/path + {Locked="tar -cf -"}{Locked="wslc container cp"}{Locked="CONTAINER:/path"} + + + Nessun file estratto dall'archivio dei contenitori + Shown when the container archive download produced no extractable files. + + + Impossibile copiare una directory in un percorso di file. Utilizzare una destinazione directory (con separatore finale). + Shown when the user tries to copy a directory from the container to a file destination. + Ispeziona un contenitore. @@ -2789,6 +2845,10 @@ Alla prima esecuzione crea il file con tutte le impostazioni commentate come pre Visualizza tutto indipendentemente dallo stato. + + Modalità archivio (accettata per compatibilità con l'interfaccia della riga di comando di Docker) + {Locked="Docker"} + Imposta variabili del tempo di build (KEY=VALUE) {Locked="KEY=VALUE"}Command line arguments should not be translated @@ -2855,6 +2915,24 @@ Alla prima esecuzione crea il file con tutte le impostazioni commentate come pre Valore {} non valido: '{}'. È supportato solo 'all'. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + Comando da eseguire per controllare l'integrità del container + + + Intervallo di tempo tra l'esecuzione del controllo integrità (ad esempio 30s, 1m30s) + {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated + + + Errori consecutivi necessari per segnalare il contenitore come non integro + + + Periodo di avvio per inizializzare il contenitore prima del conto alla rovescia del controllo integrità (es. 30s, 1m30s) + {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated + + + Tempo massimo consentito per l'esecuzione di un controllo integrità (ad esempio 30s, 1m30s) + {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated + Elimina le immagini anche se sono in uso @@ -2912,6 +2990,9 @@ Alla prima esecuzione crea il file con tutte le impostazioni commentate come pre Non usare la cache durante la compilazione dell'immagine + + Disabilita qualsiasi di verifica dell'integrità specificata dal contenitore + Non eliminare i genitori non etichettati @@ -3092,6 +3173,14 @@ Alla prima esecuzione crea il file con tutte le impostazioni commentate come pre Valore dell'argomento {} non valido: '{}'. È prevista una dimensione di memoria (ad esempio 256M, 1G) {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="256M"}{Locked="1G"} + + Valore argomento {} non valido: '{}'. È prevista una durata (ad esempio 30s, 1m30s) + {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="30s"}{Locked="1m30s"} + + + L'opzione --no-healthcheck non può essere combinata con altre opzioni di controllo dell'integrità. + {Locked="--no-healthcheck "}Command line arguments, file names and string inserts should not be translated + Il file CID '{}' esiste già {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -3183,6 +3272,18 @@ Alla prima esecuzione crea il file con tutte le impostazioni commentate come pre Eliminato: {} {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + Collega un contenitore a una rete + + + Collega un contenitore a una rete esistente. + + + Disconnetti un contenitore da una rete. + + + Disconnette un contenitore da una rete esistente. + Gestisci volumi. diff --git a/localization/strings/ja-JP/Resources.resw b/localization/strings/ja-JP/Resources.resw index f291651887..ff001d3674 100644 --- a/localization/strings/ja-JP/Resources.resw +++ b/localization/strings/ja-JP/Resources.resw @@ -2265,6 +2265,10 @@ VS Code 自体のコマンド パレットから、より多くの VS Code リ フラグ引数に隣接する値を含めることはできません: '{}' {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + フラグ引数のブール値が無効です: '{}'。true、false、1、または 0 が必要です。 + {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + 必要なものが見つからないときに位置指定引数が見つかりました: '{}' {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -2489,6 +2493,58 @@ VS Code 自体のコマンド パレットから、より多くの VS Code リ STDOUT の代わりにファイルに書き込みます {Locked="STDOUT"}Command line arguments, file names and string inserts should not be translated + + コンテナーとローカル ファイル システムの間でファイルをコピーします。 + + + コンテナーとローカル ファイルシステムの間でファイルをコピーします。 +使用法: wslc container cp [OPTIONS] SOURCE DEST + ローカルからコンテナーへ: wslc container cp LOCAL_PATH CONTAINER:PATH + コンテナーからローカルへ: wslc container cp CONTAINER:PATH LOCAL_PATH + Stdin からコンテナーへ: wslc container cp - CONTAINER:PATH + {Locked="wslc"}{Locked="container cp"}{Locked="CONTAINER:PATH"}{Locked="LOCAL_PATH"} + + + ソース: ローカル パス、CONTAINER:PATH、または '-' で stdin + {Locked="-"}{Locked="CONTAINER:PATH"} + + + 宛先: ローカル パスまたは CONTAINER:PATH + {Locked="CONTAINER:PATH"} + + + 宛先の形式が無効です。CONTAINER:PATH 形式を使用してください + {Locked="CONTAINER:PATH"} + + + ソースの形式が無効です。CONTAINER:PATH 形式を使用してください + {Locked="CONTAINER:PATH"} + + + ソース パスが見つかりません: {0} + {0} is the source path + + + tar.exe 見つかりません。ローカル ファイルのコピーには Windows tar が必要です。 + {Locked="tar.exe"} + + + コピーの方向が無効です。ソースまたは宛先のいずれかに CONTAINER:PATH を使用してください。 + {Locked="CONTAINER:PATH"} + + + ターミナルから tar データを読み取れません。tar アーカイブを stdin にパイプしてください。 +例: tar -cf - files | wslc container cp - CONTAINER:/path + {Locked="tar -cf -"}{Locked="wslc container cp"}{Locked="CONTAINER:/path"} + + + コンテナー アーカイブから抽出されたファイルはありません + Shown when the container archive download produced no extractable files. + + + ディレクトリをファイル パスにコピーできません。代わりにディレクトリ ターゲット (末尾に区切り記号を含む) を使用してください。 + Shown when the user tries to copy a directory from the container to a file destination. + コンテナーを検査します。 @@ -2789,6 +2845,10 @@ VS Code 自体のコマンド パレットから、より多くの VS Code リ 状態に関係なくすべてを表示します。 + + アーカイブ モード (Docker CLI との互換性確保のため受け付け可能になっています) + {Locked="Docker"} + ビルド時の変数を設定します (KEY=VALUE) {Locked="KEY=VALUE"}Command line arguments should not be translated @@ -2855,6 +2915,24 @@ VS Code 自体のコマンド パレットから、より多くの VS Code リ 無効な {} 値: '{}'。'all' のみがサポートされています。 {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + コンテナーの正常性をチェックするために実行するコマンド + + + 正常性チェックの実行間隔 (例: 30s, 1m30s) + {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated + + + コンテナーを異常として報告するために必要な連続失敗回数 + + + 正常性チェックのカウントダウンを開始する前にコンテナーを初期化するための開始期間 (例: 30s、1m30s) + {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated + + + 1 回の正常性チェックを実行するために許可される最大時間 (例: 30s、1m30s) + {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated + 使用中であってもイメージを削除します @@ -2912,6 +2990,9 @@ VS Code 自体のコマンド パレットから、より多くの VS Code リ イメージのビルド時にキャッシュを使用しない + + コンテナーで指定された正常性チェックを無効にする + タグのない親は削除しないでください @@ -3092,6 +3173,14 @@ VS Code 自体のコマンド パレットから、より多くの VS Code リ 無効な {} 引数の値: '{}'。メモリ サイズが予期されます (例: 256M、1G) {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="256M"}{Locked="1G"} + + 無効な {} 引数の値: '{}'。期間が必要です (例: 30s、1m30s) + {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="30s"}{Locked="1m30s"} + + + --no-healthcheck オプションは、他の正常性チェック オプションと組み合わせることはできません。 + {Locked="--no-healthcheck "}Command line arguments, file names and string inserts should not be translated + CID ファイル '{}' は既に存在します {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -3183,6 +3272,18 @@ VS Code 自体のコマンド パレットから、より多くの VS Code リ 削除済み: {} {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + コンテナーをネットワークに接続する + + + コンテナーを既存のネットワークに接続します。 + + + コンテナーをネットワークから切断します。 + + + 既存のネットワークからコンテナーを切断します。 + ボリュームを管理します。 diff --git a/localization/strings/ko-KR/Resources.resw b/localization/strings/ko-KR/Resources.resw index f0dc2f07b4..2bf77a0861 100644 --- a/localization/strings/ko-KR/Resources.resw +++ b/localization/strings/ko-KR/Resources.resw @@ -583,7 +583,7 @@ Linux용 Windows 하위 시스템 배포를 관리하기 위한 인수: 옵션: --all - + 배포를 포함하여 모든 배포를 나열합니다. 현재 설치 중이거나 제거되고 있습니다. @@ -2266,6 +2266,10 @@ VS Code 자체 내의 명령 팔레트를 통해 더 많은 VS Code 원격 옵 플래그 인수는 근접하는 값을 포함할 수 없음: '{}' {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + 플래그 인수에 대한 잘못된 부울 값 '{}'입니다. 예상 값은 true, false, 1 또는 0입니다. + {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + 필요한 항목이 없을 때 위치 인수를 찾음: '{}' {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -2434,7 +2438,7 @@ VS Code 자체 내의 명령 팔레트를 통해 더 많은 VS Code 원격 옵 {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - Creating session storage at '{}' as configured by session.storagePath. If you later change or remove this setting, data stored here will no longer be used by the default session and can be deleted to reclaim space. + session.storagePath에 의해 구성된 '{}'에서 세션 스토리지를 만드는 중입니다. 나중에 이 설정을 변경하거나 제거하는 경우 여기에 저장된 데이터는 더 이상 기본 세션에서 사용되지 않으며 공간을 회수하기 위해 삭제할 수 있습니다. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated. {Locked="session.storagePath"}"session.storagePath" is a configuration setting name and should not be translated. @@ -2490,6 +2494,58 @@ VS Code 자체 내의 명령 팔레트를 통해 더 많은 VS Code 원격 옵 STDOUT 대신 파일에 씁니다. {Locked="STDOUT"}Command line arguments, file names and string inserts should not be translated + + 컨테이너와 로컬 파일 시스템 간에 파일을 복사합니다. + + + 컨테이너와 로컬 파일 시스템 간에 파일을 복사합니다. +사용법: wslc container cp [OPTIONS] SOURCE DEST + 로컬에서 컨테이너로: wslc container cp LOCAL_PATH CONTAINER:PATH + 컨테이너에서 로컬로: wslc container cp CONTAINER:PATH LOCAL_PATH + Stdin에서 컨테이너로: wslc container cp - CONTAINER:PATH + {Locked="wslc"}{Locked="container cp"}{Locked="CONTAINER:PATH"}{Locked="LOCAL_PATH"} + + + 원본: 로컬 경로, CONTAINER:PATH 또는 stdin의 경우 '-' + {Locked="-"}{Locked="CONTAINER:PATH"} + + + 대상: 로컬 경로 또는 CONTAINER:PATH + {Locked="CONTAINER:PATH"} + + + 잘못된 대상 형식입니다. 예상 형식: CONTAINER:PATH + {Locked="CONTAINER:PATH"} + + + 원본 형식이 잘못되었습니다. 예상 형식: CONTAINER:PATH + {Locked="CONTAINER:PATH"} + + + 찾을 수 없는 소스 경로: {0} + {0} is the source path + + + tar.exe 찾을 수 없습니다. 로컬 파일을 복사하려면 Windows tar가 필요합니다. + {Locked="tar.exe"} + + + 복사 방향이 잘못되었습니다. CONTAINER:PATH 원본 또는 대상으로 사용합니다. + {Locked="CONTAINER:PATH"} + + + 터미널에서 tar 데이터를 읽을 수 없습니다. tar 아카이브를 stdin으로 파이프하세요. +예: tar -cf - files | wslc container cp - CONTAINER:/path + {Locked="tar -cf -"}{Locked="wslc container cp"}{Locked="CONTAINER:/path"} + + + 컨테이너 아카이브에서 파일이 추출되지 않았습니다. + Shown when the container archive download produced no extractable files. + + + 디렉터리를 파일 경로에 복사할 수 없습니다. 대신 디렉터리 대상(후행 구분 기호 포함)을 사용하세요. + Shown when the user tries to copy a directory from the container to a file destination. + 컨테이너를 검사합니다. @@ -2790,6 +2846,10 @@ VS Code 자체 내의 명령 팔레트를 통해 더 많은 VS Code 원격 옵 상태에 관계없이 모두 표시합니다. + + 아카이브 모드(Docker CLI 호환성을 위해 허용됨) + {Locked="Docker"} + 빌드 시간 변수 설정(KEY=VALUE) {Locked="KEY=VALUE"}Command line arguments should not be translated @@ -2856,6 +2916,24 @@ VS Code 자체 내의 명령 팔레트를 통해 더 많은 VS Code 원격 옵 잘못된 {} 값: '{}'. 'all'만 지원됩니다. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + 컨테이너 상태를 확인하기 위해 실행할 명령 + + + 상태 검사 실행 간격(예: 30s, 1m30s) + {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated + + + 컨테이너를 비정상으로 보고하기 위해 필요한 연속 실패 횟수 + + + 상태 검사 카운트다운이 시작되기 전 컨테이너가 초기화되는 데 걸리는 시간(예: 30s, 1m30s) + {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated + + + 단일 상태 검사를 실행하는 데 허용되는 최대 시간(예: 30s, 1m30s) + {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated + 사용 중인 경우에도 이미지 삭제 @@ -2913,6 +2991,9 @@ VS Code 자체 내의 명령 팔레트를 통해 더 많은 VS Code 원격 옵 이미지를 빌드할 때 캐시를 사용하지 마세요. + + 컨테이너에 지정된 상태 검사 비활성화 + 태그가 지정되지 않은 부모 삭제 안 함 @@ -3093,6 +3174,14 @@ VS Code 자체 내의 명령 팔레트를 통해 더 많은 VS Code 원격 옵 잘못된 {} 인수 값: '{}'. 메모리 크기가 필요합니다(예: 256M, 1G). {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="256M"}{Locked="1G"} + + 잘못된 {} 인수 값: '{}'. 예상되는 기간(예: 30s, 1m30s) + {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="30s"}{Locked="1m30s"} + + + --no-healthcheck 옵션은 다른 상태 검사 옵션과 함께 사용할 수 없습니다. + {Locked="--no-healthcheck "}Command line arguments, file names and string inserts should not be translated + CID 파일 '{}'이(가) 이미 존재합니다. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -3184,6 +3273,18 @@ VS Code 자체 내의 명령 팔레트를 통해 더 많은 VS Code 원격 옵 삭제함: {} {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + 컨테이너를 네트워크에 연결하세요 + + + 컨테이너를 기존 네트워크에 연결합니다. + + + 네트워크에서 컨테이너의 연결을 끊습니다. + + + 기존 네트워크에서 컨테이너의 연결을 끊습니다. + 볼륨을 관리합니다. diff --git a/localization/strings/nb-NO/Resources.resw b/localization/strings/nb-NO/Resources.resw index f192008d94..ca1b1f675a 100644 --- a/localization/strings/nb-NO/Resources.resw +++ b/localization/strings/nb-NO/Resources.resw @@ -2259,6 +2259,10 @@ Bruk: Flaggargumentet kan ikke inneholde tilstøtende verdi: «{}» {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + Ugyldig boolsk verdi for flaggargument: '{}'. Forventet true, false, 1 eller 0. + {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + Fant et plasseringsargument når det ikke var forventet: «{}» {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -2483,6 +2487,58 @@ For personverninformasjon om dette produktet kan du gå til https://aka.ms/priva Skriv til en fil, i stedet for STDOUT {Locked="STDOUT"}Command line arguments, file names and string inserts should not be translated + + Kopier filer mellom en beholder og det lokale filsystemet. + + + Kopier filer mellom en beholder og det lokale filsystemet. +Bruk: wslc container cp [ALTERNATIVER] KILDE DEST + Lokalt til beholder: wslc container cp LOCAL_PATH CONTAINER:PATH + Beholder til lokalt: wslc container cp CONTAINER:PATH LOCAL_PATH + Stdin til beholder: wslc container cp - CONTAINER:PATH + {Locked="wslc"}{Locked="container cp"}{Locked="CONTAINER:PATH"}{Locked="LOCAL_PATH"} + + + Kilde: lokal bane, CONTAINER:PATH, eller '-' for stdin + {Locked="-"}{Locked="CONTAINER:PATH"} + + + Mål: lokal bane eller CONTAINER:PATH + {Locked="CONTAINER:PATH"} + + + Ugyldig målformat. Forventet CONTAINER:PATH + {Locked="CONTAINER:PATH"} + + + Ugyldig kildeformat. Forventet CONTAINER:PATH + {Locked="CONTAINER:PATH"} + + + Kildebane ikke funnet: {0} + {0} is the source path + + + tar.exe ikke funnet. Windows tar kreves for lokal filkopiering. + {Locked="tar.exe"} + + + Ugyldig kopieringsretning. Bruk CONTAINER:PATH som kilde eller mål. + {Locked="CONTAINER:PATH"} + + + Kan ikke lese tar-data fra terminalen. Send et tar-arkiv til stdin. +Eksempel: tar -cf - files | wslc container cp - CONTAINER:/path + {Locked="tar -cf -"}{Locked="wslc container cp"}{Locked="CONTAINER:/path"} + + + Ingen filer ble hentet ut fra beholderarkivet + Shown when the container archive download produced no extractable files. + + + Kan ikke kopiere en mappe til en filbane. Bruk et katalogmål (med etterfølgende skilletegn) i stedet. + Shown when the user tries to copy a directory from the container to a file destination. + Inspiser en beholder. @@ -2783,6 +2839,10 @@ Ved første kjøring opprettes filen med alle innstillinger kommentert ut som st Vis alle uavhengig av tilstand. + + Arkivmodus (godtas for Docker CLI-kompatibilitet) + {Locked="Docker"} + Angi variabler for byggetid (KEY=VALUE) {Locked="KEY=VALUE"}Command line arguments should not be translated @@ -2849,6 +2909,24 @@ Ved første kjøring opprettes filen med alle innstillinger kommentert ut som st Ugyldig {} verdi: «{}». Bare «all» støttes. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + Kommando som skal kjøres for å kontrollere beholderens tilstand + + + Tiden mellom hver tilstandskontroll (f.eks. 30s, 1m30s) + {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated + + + Antall påfølgende feil som kreves for å rapportere beholderen som ikke i orden + + + Startperiode før beholderen initialiseres og nedtellingen for tilstandskontroll starter (f.eks. 30s, 1m30s) + {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated + + + Maksimal tid en tilstandskontroll kan kjøre (f.eks. 30s, 1m30s) + {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated + Slett bilder selv om de brukes @@ -2906,6 +2984,9 @@ Ved første kjøring opprettes filen med alle innstillinger kommentert ut som st Ikke bruk hurtigbuffer når du bygger avbildningen + + Deaktiver eventuell tilstandskontroll som er angitt for beholderen + Ikke slett umerkede foresatte @@ -3086,6 +3167,14 @@ Ved første kjøring opprettes filen med alle innstillinger kommentert ut som st Ugyldig {} argumentverdi: {}. Forventet en minnestørrelse (f.eks. 256M, 1G) {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="256M"}{Locked="1G"} + + Ugyldig {} argumentverdi: {}. Forventet en varighet (f.eks. 30s, 1m30s) + {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="30s"}{Locked="1m30s"} + + + Alternativet --no-healthcheck kan ikke brukes sammen med andre alternativer for tilstandskontroll. + {Locked="--no-healthcheck "}Command line arguments, file names and string inserts should not be translated + CID-filen {} finnes allerede {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -3177,6 +3266,18 @@ Ved første kjøring opprettes filen med alle innstillinger kommentert ut som st Slettet: {} {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + Koble containeren til et nettverk + + + Kobler en container til et eksisterende nettverk. + + + Koble en beholder fra et nettverk. + + + Kobler en container fra et eksisterende nettverk. + Administrer volumer. diff --git a/localization/strings/nl-NL/Resources.resw b/localization/strings/nl-NL/Resources.resw index 6050b470ea..04881c3746 100644 --- a/localization/strings/nl-NL/Resources.resw +++ b/localization/strings/nl-NL/Resources.resw @@ -2259,6 +2259,10 @@ Gebruik: Vlagargument mag geen verbonden waarde bevatten: '{}' {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + Ongeldige booleaanse waarde voor vlagargument: '{}'. Verwacht true, false, 1 of 0. + {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + Er is een positioneel argument gevonden, terwijl er geen werd verwacht: '{}' {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -2483,6 +2487,58 @@ Ga naar https://aka.ms/privacy voor privacyinformatie over dit product. Schrijf naar een bestand, in plaats van STDOUT {Locked="STDOUT"}Command line arguments, file names and string inserts should not be translated + + Bestanden kopiëren tussen een container en het lokale bestandssysteem. + + + Kopieer bestanden tussen een container en het lokale bestandssysteem. +Gebruik: wslc container cp [OPTIES] BRON BESTEMMING + Lokaal naar container: wslc container cp LOCAL_PATH CONTAINER:PATH + Container naar lokaal: wslc container cp CONTAINER:PATH LOCAL_PATH + stdin naar container: wslc container cp - CONTAINER:PATH + {Locked="wslc"}{Locked="container cp"}{Locked="CONTAINER:PATH"}{Locked="LOCAL_PATH"} + + + Bron: lokaal pad, CONTAINER:PATH, of '-' voor stdin + {Locked="-"}{Locked="CONTAINER:PATH"} + + + Doel: lokaal pad of CONTAINER:PATH + {Locked="CONTAINER:PATH"} + + + Ongeldige doelindeling. Verwacht CONTAINER:PATH + {Locked="CONTAINER:PATH"} + + + Ongeldige bronindeling. Verwacht CONTAINER:PATH + {Locked="CONTAINER:PATH"} + + + Bronpad niet gevonden: {0} + {0} is the source path + + + tar.exe niet gevonden. Windows tar is vereist voor het lokaal kopiëren van bestanden. + {Locked="tar.exe"} + + + Ongeldige kopieerrichting. Gebruik CONTAINER:PATH als bron of doel. + {Locked="CONTAINER:PATH"} + + + Kan geen tar-gegevens van de terminal lezen. Stuur een tar-archief naar stdin. +Voorbeeld: tar -cf - files | wslc container cp - CONTAINER:/path + {Locked="tar -cf -"}{Locked="wslc container cp"}{Locked="CONTAINER:/path"} + + + Er konden geen bestanden uit het containerarchief worden uitgepakt + Shown when the container archive download produced no extractable files. + + + Kan een map niet naar een bestandspad kopiëren. Gebruik in plaats daarvan een mapdoel (met een afsluitend scheidingsteken). + Shown when the user tries to copy a directory from the container to a file destination. + Een container inspecteren. @@ -2783,6 +2839,10 @@ Bij de eerste uitvoering wordt het bestand aangemaakt met alle instellingen geco Alles weergeven, ongeacht de status. + + Archiefmodus (geaccepteerd voor Docker CLI-compatibiliteit) + {Locked="Docker"} + Set build-time variables (KEY=VALUE) {Locked="KEY=VALUE"}Command line arguments should not be translated @@ -2849,6 +2909,24 @@ Bij de eerste uitvoering wordt het bestand aangemaakt met alle instellingen geco Ongeldige {}-waarde: {}. Alleen 'all' wordt ondersteund. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + Opdracht om uit te voeren om de gezondheid van de container te controleren + + + Tijd tussen het uitvoeren van de healthcheck (bijv. 30s, 1m30s) + {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated + + + Het aantal opeenvolgende fouten dat nodig is om de container als niet in orde te melden + + + Startperiode voor het initialiseren van de container voordat het aftellen voor de healthcheck begint (bijv. 30s, 1m30s) + {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated + + + Maximale tijd om één healthcheck uit te voeren (bijv. 30s, 1m30s) + {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated + Afbeeldingen verwijderen, zelfs als ze worden gebruikt @@ -2906,6 +2984,9 @@ Bij de eerste uitvoering wordt het bestand aangemaakt met alle instellingen geco Gebruik geen cache bij het bouwen van de image + + Schakel een eventuele door de container opgegeven gezondheidscontrole uit + Verwijder geen niet-getagde bovenliggende items @@ -3086,6 +3167,14 @@ Bij de eerste uitvoering wordt het bestand aangemaakt met alle instellingen geco Ongeldige {} argumentwaarde: {}. Er wordt een geheugengrootte verwacht (bijvoorbeeld 256M, 1G) {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="256M"}{Locked="1G"} + + Ongeldige {} argumentwaarde: {}. Er wordt een duur verwacht (bijvoorbeeld 30s, 1m30s) + {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="30s"}{Locked="1m30s"} + + + De optie --no-healthcheck kan niet worden gecombineerd met andere healthcheckopties. + {Locked="--no-healthcheck "}Command line arguments, file names and string inserts should not be translated + CID-bestand {} bestaat al {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -3177,6 +3266,18 @@ Bij de eerste uitvoering wordt het bestand aangemaakt met alle instellingen geco Verwijderd: {} {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + Een container verbinden met een netwerk + + + Verbindt een container met een bestaand netwerk. + + + Koppel een container los van een netwerk. + + + Verbreekt de verbinding van een container met een bestaand netwerk. + Volumes beheren. diff --git a/localization/strings/pl-PL/Resources.resw b/localization/strings/pl-PL/Resources.resw index e30d76ec10..24b9ef9f74 100644 --- a/localization/strings/pl-PL/Resources.resw +++ b/localization/strings/pl-PL/Resources.resw @@ -2259,6 +2259,10 @@ Użycie: Argument flagi nie może zawierać wartości przylegającej: „{}” {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + Nieprawidłowa wartość logiczna dla argumentu flagi: "{}". Oczekiwano wartości true, false, 1 lub 0. + {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + Znaleziono argument pozycyjny, mimo że nie był on oczekiwany: „{}” {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -2427,7 +2431,7 @@ Aby uzyskać informacje o prywatności dotyczące tego produktu, odwiedź stron {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - Creating session storage at '{}' as configured by session.storagePath. If you later change or remove this setting, data stored here will no longer be used by the default session and can be deleted to reclaim space. + Tworzenie magazynu sesji w lokalizacji „{}” zgodnie z konfiguracją ustawienia session.storagePath. Jeśli później zmienisz lub usuniesz to ustawienie, dane przechowywane tutaj nie będą już używane przez sesję domyślną i będzie można je usunąć, aby odzyskać miejsce. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated. {Locked="session.storagePath"}"session.storagePath" is a configuration setting name and should not be translated. @@ -2483,6 +2487,58 @@ Aby uzyskać informacje o prywatności dotyczące tego produktu, odwiedź stron Zapisz do pliku zamiast do STDOUT {Locked="STDOUT"}Command line arguments, file names and string inserts should not be translated + + Kopiuj pliki między kontenerem a lokalnym systemem plików. + + + Kopiuj pliki między kontenerem a lokalnym systemem plików. +Użycie: wslc container cp [OPTIONS] SOURCE DEST + Z lokalnego do kontenera: wslc container cp LOCAL_PATH CONTAINER:PATH + Z kontenera do lokalnego: wslc container cp CONTAINER:PATH LOCAL_PATH + Ze stdin do kontenera: wslc container cp - CONTAINER:PATH + {Locked="wslc"}{Locked="container cp"}{Locked="CONTAINER:PATH"}{Locked="LOCAL_PATH"} + + + Źródło: ścieżka lokalna, CONTAINER:PATH lub „-” dla stdin + {Locked="-"}{Locked="CONTAINER:PATH"} + + + Miejsce docelowe: ścieżka lokalna lub CONTAINER:PATH + {Locked="CONTAINER:PATH"} + + + Nieprawidłowy format miejsca docelowego. Oczekiwano CONTAINER:PATH + {Locked="CONTAINER:PATH"} + + + Nieprawidłowy format źródła. Oczekiwano CONTAINER:PATH + {Locked="CONTAINER:PATH"} + + + Nie znaleziono ścieżki źródła: {0} + {0} is the source path + + + Nie znaleziono tar.exe. Plik tar systemu Windows jest wymagany do kopiowania plików lokalnych. + {Locked="tar.exe"} + + + Nieprawidłowy kierunek kopiowania. Użyj CONTAINER:PATH jako źródła lub miejsca docelowego. + {Locked="CONTAINER:PATH"} + + + Nie można odczytać danych tar z terminala. Prześlij archiwum tar do stdin. +Przykład: tar -cf - files | wslc container cp - CONTAINER:/path + {Locked="tar -cf -"}{Locked="wslc container cp"}{Locked="CONTAINER:/path"} + + + Nie wyodrębniono żadnego pliku z archiwum kontenera + Shown when the container archive download produced no extractable files. + + + Nie można skopiować katalogu do ścieżki pliku. Zamiast tego użyj elementu docelowego katalogu (z separatorem końcowym). + Shown when the user tries to copy a directory from the container to a file destination. + Sprawdź kontener. @@ -2783,6 +2839,10 @@ Przy pierwszym uruchomieniu tworzy plik ze wszystkimi ustawieniami ujętymi w ko Pokaż wszystko bez względu na stan. + + Tryb archiwum (akceptowany w celu zachowania zgodności z interfejsem wiersza polecenia platformy Docker) + {Locked="Docker"} + Ustaw zmienne czasu kompilacji (KEY=VALUE) {Locked="KEY=VALUE"}Command line arguments should not be translated @@ -2849,6 +2909,24 @@ Przy pierwszym uruchomieniu tworzy plik ze wszystkimi ustawieniami ujętymi w ko Nieprawidłowa wartość {}: „{}”. Obsługiwana jest tylko wartość „all”. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + Polecenie do uruchomienia w celu kontroli kondycji kontenera + + + Czas między uruchomieniami kontroli kondycji (np. 30s, 1m30s) + {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated + + + Liczba kolejnych niepowodzeń wymagana do zgłoszenia kontenera jako niesprawny + + + Okres początkowy na inicjację kontenera przed rozpoczęciem odliczania do kontroli kondycji (np. 30s, 1m30s) + {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated + + + Maksymalny czas na wykonanie jednej kontroli kondycji (np. 30s, 1m30s) + {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated + Usuń obrazy, nawet jeśli są używane @@ -2906,6 +2984,9 @@ Przy pierwszym uruchomieniu tworzy plik ze wszystkimi ustawieniami ujętymi w ko Nie używaj pamięci podręcznej podczas kompilowania obrazu + + Wyłącz wszelkie kontrole kondycji określone dla kontenera + Nie usuwaj elementów nadrzędnych bez tagów @@ -3086,6 +3167,14 @@ Przy pierwszym uruchomieniu tworzy plik ze wszystkimi ustawieniami ujętymi w ko Nieprawidłowa wartość argumentu {}: »{}«. Oczekiwano rozmiaru pamięci (np. 256M, 1G) {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="256M"}{Locked="1G"} + + Nieprawidłowa wartość argumentu {}: '{}'. Oczekiwano czasu trwania (np. 30s, 1m30s) + {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="30s"}{Locked="1m30s"} + + + Opcji --no-healthcheck nie można łączyć z innymi opcjami kontroli kondycji. + {Locked="--no-healthcheck "}Command line arguments, file names and string inserts should not be translated + Plik CID „{}” już istnieje {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -3177,6 +3266,18 @@ Przy pierwszym uruchomieniu tworzy plik ze wszystkimi ustawieniami ujętymi w ko Usunięto: {} {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + Połącz kontener z siecią + + + Łączy kontener z istniejącą siecią. + + + Odłącz kontener od sieci. + + + Odłącza kontener od istniejącej sieci. + Zarządzaj woluminami. diff --git a/localization/strings/pt-BR/Resources.resw b/localization/strings/pt-BR/Resources.resw index dd1ae7b70e..8319d29615 100644 --- a/localization/strings/pt-BR/Resources.resw +++ b/localization/strings/pt-BR/Resources.resw @@ -2266,6 +2266,10 @@ Uso: Argumento sinalizado não pode conter valores adjacentes: '{}' {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + Valor booliano inválido para o argumento de sinalizador: '{}'. Era esperado true, false, 1 ou 0. + {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + Encontrado um argumento posicional quando nenhum era esperado: '{}' {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -2490,6 +2494,58 @@ Para obter informações sobre a privacidade desse produto, visite https://aka.m Gravar em um arquivo, em vez de STDOUT {Locked="STDOUT"}Command line arguments, file names and string inserts should not be translated + + Copie arquivos entre um contêiner e o sistema de arquivos local. + + + Copiar arquivos entre um contêiner e o sistema de arquivos local. +Uso: wslc container cp [OPÇÕES] ORIGEM DESTINO + Local para contêiner: wslc container cp LOCAL_PATH CONTAINER:PATH + Contêiner para local: wslc container cp CONTAINER:PATH LOCAL_PATH + Stdin para contêiner: wslc container cp - CONTAINER:PATH + {Locked="wslc"}{Locked="container cp"}{Locked="CONTAINER:PATH"}{Locked="LOCAL_PATH"} + + + Fonte: caminho local, CONTAINER:PATH, ou '-' para stdin + {Locked="-"}{Locked="CONTAINER:PATH"} + + + Destino: caminho local ou CONTAINER:PATH + {Locked="CONTAINER:PATH"} + + + Formato de destino inválido. Esperado CONTAINER:PATH + {Locked="CONTAINER:PATH"} + + + Formato de origem inválido. Esperado CONTAINER:PATH + {Locked="CONTAINER:PATH"} + + + Caminho de origem não encontrado: {0} + {0} is the source path + + + tar.exe não encontrado. O tar do Windows é necessário para a cópia do arquivo local. + {Locked="tar.exe"} + + + Direção de cópia inválida. Use CONTAINER:PATH como origem ou destino. + {Locked="CONTAINER:PATH"} + + + Não é possível ler dados tar do terminal. Canalizar um arquivo tar para stdin. +Exemplo: tar -cf - arquivos | wslc container cp - CONTAINER:/path + {Locked="tar -cf -"}{Locked="wslc container cp"}{Locked="CONTAINER:/path"} + + + Nenhum arquivo extraído do arquivo de contêiner + Shown when the container archive download produced no extractable files. + + + Não é possível copiar um diretório para um caminho de arquivo. Use um destino de diretório (com separador à direita). + Shown when the user tries to copy a directory from the container to a file destination. + Inspecionar um contêiner. @@ -2790,6 +2846,10 @@ Na primeira execução, cria o arquivo com todas as configurações comentadas n Mostrar tudo independentemente do estado. + + Modo de arquivo (aceito para compatibilidade com a CLI do Docker) + {Locked="Docker"} + Definir variáveis de tempo de criação (KEY=VALUE) {Locked="KEY=VALUE"}Command line arguments should not be translated @@ -2856,6 +2916,24 @@ Na primeira execução, cria o arquivo com todas as configurações comentadas n Valor {} inválido: '{}'. Há suporte somente para 'all'. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + Comando a ser executado para verificar a integridade do contêiner + + + Tempo entre a execução da verificação de integridade (por exemplo, 30s, 1m30s) + {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated + + + Falhas consecutivas necessárias para relatar o contêiner como não íntegro + + + Período de inicialização para o contêiner ser inicializado antes da contagem regressiva da verificação de integridade (por exemplo, 30s, 1m30s) + {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated + + + Tempo máximo para permitir a execução de uma verificação de integridade (por exemplo, 30s, 1m30s) + {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated + Excluir imagens mesmo que elas estejam sendo usadas @@ -2913,6 +2991,9 @@ Na primeira execução, cria o arquivo com todas as configurações comentadas n Não usar cache ao compilar a imagem + + Desabilitar uma verificação de integridade especificada pelo contêiner + Não excluir pais sem rótulo @@ -3093,6 +3174,14 @@ Na primeira execução, cria o arquivo com todas as configurações comentadas n Valor de argumento {} inválido: '{}'. Tamanho de memória esperado (por exemplo, 256M, 1G) {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="256M"}{Locked="1G"} + + Valor de argumento {} inválido: ''{}''. Duração esperada (por exemplo, 30s, 1m30s) + {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="30s"}{Locked="1m30s"} + + + A opção --no-healthcheck não pode ser combinada com outras opções de marcar de integridade. + {Locked="--no-healthcheck "}Command line arguments, file names and string inserts should not be translated + O arquivo CID '{}' já existe {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -3184,6 +3273,18 @@ Na primeira execução, cria o arquivo com todas as configurações comentadas n Excluído: {} {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + Conectar um contêiner a uma rede + + + Conecta um contêiner a uma rede existente. + + + Desconecta um contêiner de uma rede. + + + Desconecta um contêiner de uma rede existente. + Gerenciar volumes. diff --git a/localization/strings/pt-PT/Resources.resw b/localization/strings/pt-PT/Resources.resw index fafc84d96c..5ede17c326 100644 --- a/localization/strings/pt-PT/Resources.resw +++ b/localization/strings/pt-PT/Resources.resw @@ -2259,6 +2259,10 @@ Utilização: O argumento de sinalizador não pode conter um valor adjacente: '{}' {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + Valor booleano inválido para o argumento de sinalizador: '{}'. True, false, 1 ou 0 esperado. + {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + Foi encontrado um argumento posicional quando não era esperado nenhum: '{}' {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -2427,7 +2431,7 @@ Para obter informações de privacidade sobre este produto, visite https://aka.m {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - Creating session storage at '{}' as configured by session.storagePath. If you later change or remove this setting, data stored here will no longer be used by the default session and can be deleted to reclaim space. + A criar armazenamento de sessão em '{}' conforme configurado por session.storagePath. Se alterar ou remover esta definição mais tarde, os dados armazenados aqui deixarão de ser utilizados pela sessão predefinida e podem ser eliminados para recuperar espaço. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated. {Locked="session.storagePath"}"session.storagePath" is a configuration setting name and should not be translated. @@ -2483,6 +2487,58 @@ Para obter informações de privacidade sobre este produto, visite https://aka.m Escreva num ficheiro, em vez de STDOUT {Locked="STDOUT"}Command line arguments, file names and string inserts should not be translated + + Copie ficheiros entre um contentor e o sistema de ficheiros local. + + + Copie ficheiros entre um contentor e o sistema de ficheiros local. +Utilização: wslc container cp [OPTIONS] SOURCE DEST + Local para contentor: wslc container cp LOCAL_PATH CONTAINER:PATH + Contentor para local: wslc container cp CONTAINER:PATH LOCAL_PATH + Stdin para contentor: wslc container cp - CONTAINER:PATH + {Locked="wslc"}{Locked="container cp"}{Locked="CONTAINER:PATH"}{Locked="LOCAL_PATH"} + + + Origem: caminho local, CONTAINER:PATH ou '-' para stdin + {Locked="-"}{Locked="CONTAINER:PATH"} + + + Destino: caminho local ou CONTAINER:PATH + {Locked="CONTAINER:PATH"} + + + Formato de destino inválido. Esperado: CONTAINER:PATH + {Locked="CONTAINER:PATH"} + + + Formato de origem inválido. Esperado: CONTAINER:PATH + {Locked="CONTAINER:PATH"} + + + Caminho de origem não encontrado: {0} + {0} is the source path + + + tar.exe não encontrado. O tar do Windows é necessário para a cópia de ficheiros local. + {Locked="tar.exe"} + + + Direção de cópia inválida. Utilize CONTAINER:PATH como origem ou destino. + {Locked="CONTAINER:PATH"} + + + Não é possível ler dados tar do terminal. Encaminhe um arquivo tar para stdin. +Exemplo: tar -cf - files | wslc container cp - CONTAINER:/path + {Locked="tar -cf -"}{Locked="wslc container cp"}{Locked="CONTAINER:/path"} + + + Nenhum ficheiro extraído do arquivo do contentor + Shown when the container archive download produced no extractable files. + + + Não é possível copiar um diretório para um caminho de ficheiro. Utilize um destino de diretório (com separador final) em vez disso. + Shown when the user tries to copy a directory from the container to a file destination. + Inspecionar um contentor. @@ -2783,6 +2839,10 @@ Na primeira execução, cria o ficheiro com todas as definições comentadas nas Mostrar tudo independentemente do estado. + + Modo de arquivo (aceite para compatibilidade com a CLI do Docker) + {Locked="Docker"} + Definir variáveis de compilação (KEY=VALUE) {Locked="KEY=VALUE"}Command line arguments should not be translated @@ -2849,6 +2909,24 @@ Na primeira execução, cria o ficheiro com todas as definições comentadas nas Valor de {} inválido: "{}". Apenas "all" é suportado. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + Comando a executar para verificar a integridade do contentor + + + Intervalo entre execuções da verificação de estado de funcionamento (por exemplo, 30s, 1m30s) + {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated + + + Falhas consecutivas necessárias para indicar que o contentor não está saudável + + + Período de inicialização do contentor antes da contagem decrescente da verificação de estado de funcionamento (por exemplo, 30s, 1m30s) + {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated + + + Tempo máximo permitido para executar uma verificação de estado de funcionamento (por exemplo, 30s, 1m30s) + {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated + Eliminar imagens mesmo que estejam a ser utilizadas @@ -2906,6 +2984,9 @@ Na primeira execução, cria o ficheiro com todas as definições comentadas nas Não utilizar cache ao criar a imagem + + Desativar qualquer verificação de estado de funcionamento especificada no contentor + Não eliminar os pais não marcados @@ -3086,6 +3167,14 @@ Na primeira execução, cria o ficheiro com todas as definições comentadas nas Valor de argumento {} inválido: "{}". Era esperado um tamanho de memória (por exemplo, 256M, 1G) {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="256M"}{Locked="1G"} + + Valor de argumento {} inválido: '{}'. Era esperada uma duração (por exemplo, 30s, 1m30s) + {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="30s"}{Locked="1m30s"} + + + A opção --no-healthcheck não pode ser combinada com outras opções de verificação de estado de funcionamento. + {Locked="--no-healthcheck "}Command line arguments, file names and string inserts should not be translated + O ficheiro CID "{}" já existe {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -3177,6 +3266,18 @@ Na primeira execução, cria o ficheiro com todas as definições comentadas nas Eliminado: {} {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + Ligar um contentor a uma rede + + + Liga um contentor a uma rede existente. + + + Desligar um contentor a partir de uma rede. + + + Desliga um contentor a partir de uma rede existente. + Gira volumes. diff --git a/localization/strings/ru-RU/Resources.resw b/localization/strings/ru-RU/Resources.resw index 18a6e335b6..6bc7566a0d 100644 --- a/localization/strings/ru-RU/Resources.resw +++ b/localization/strings/ru-RU/Resources.resw @@ -2266,6 +2266,10 @@ wsl.exe --manage <DistributionName> --set-sparse true --allow-unsafeАргумент флага не может содержать присоединенное значение: "{}" {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + Недопустимое логическое значение для аргумента флага: "{}". Ожидается значение true, false, 1 или 0. + {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + Найден позиционный аргумент, когда не ожидалось: "{}" {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -2490,6 +2494,58 @@ wsl.exe --manage <DistributionName> --set-sparse true --allow-unsafeЗаписывать в файл вместо STDOUT {Locked="STDOUT"}Command line arguments, file names and string inserts should not be translated + + Копирование файлов между контейнером и локальной файловой системой. + + + Копирование файлов между контейнером и локальной файловой системой. +Использование: wslc container cp [OPTIONS] SOURCE DEST + Локальный путь к контейнеру: wslc container cp LOCAL_PATH CONTAINER:PATH + Контейнер в локальный каталог: wslc container cp CONTAINER:PATH LOCAL_PATH + Ввод из стандартного потока в контейнер: wslc container cp - CONTAINER:PATH + {Locked="wslc"}{Locked="container cp"}{Locked="CONTAINER:PATH"}{Locked="LOCAL_PATH"} + + + Источник: локальный путь, CONTAINER:PATH или "-" для стандартного ввода + {Locked="-"}{Locked="CONTAINER:PATH"} + + + Пункт назначения: локальный путь или CONTAINER:PATH + {Locked="CONTAINER:PATH"} + + + Недопустимый формат назначения. Ожидается CONTAINER:PATH + {Locked="CONTAINER:PATH"} + + + Недопустимый формат источника. Ожидается CONTAINER:PATH + {Locked="CONTAINER:PATH"} + + + Исходный путь не найден: {0} + {0} is the source path + + + tar.exe не найден. Для локального копирования файлов требуется TAR Windows. + {Locked="tar.exe"} + + + Недопустимое направление копирования. Используйте CONTAINER:PATH в качестве источника или назначения. + {Locked="CONTAINER:PATH"} + + + Не удается прочитать данные tar из терминала. Передать архив tar в стандартный ввод. +Пример: tar -cf - files | wslc container cp - CONTAINER:/path + {Locked="tar -cf -"}{Locked="wslc container cp"}{Locked="CONTAINER:/path"} + + + Файл не извлечен из архива контейнера + Shown when the container archive download produced no extractable files. + + + Невозможно скопировать каталог в путь к файлу. Вместо этого используйте конечный объект каталога (с конечным разделителем). + Shown when the user tries to copy a directory from the container to a file destination. + Проверить контейнер. @@ -2790,6 +2846,10 @@ wsl.exe --manage <DistributionName> --set-sparse true --allow-unsafe Показать все, независимо от состояния. + + Режим архивации (поддерживается для совместимости с Docker CLI) + {Locked="Docker"} + Задать переменные времени сборки (KEY=VALUE) {Locked="KEY=VALUE"}Command line arguments should not be translated @@ -2856,6 +2916,24 @@ wsl.exe --manage <DistributionName> --set-sparse true --allow-unsafeНедопустимое значение {}: "{}". Поддерживается только "all". {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + Команда для проверки работоспособности контейнера + + + Время между запусками проверки работоспособности системы (например, 30s, 1m30s) + {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated + + + Чтобы сообщить о контейнере как о неработоспособном, требуется заданное число последовательных сбоев + + + Начальный период для инициализации контейнера перед обратным отсчетом проверки работоспособности (например, 30s, 1m30s) + {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated + + + Максимальное время, отведенное на выполнение одной проверки работоспособности (например, 30s, 1m30s) + {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated + Удалять образы, даже если они используются @@ -2913,6 +2991,9 @@ wsl.exe --manage <DistributionName> --set-sparse true --allow-unsafe Не использовать кэш при сборке образа + + Отключить любую проверку работоспособности, указанную в контейнере + Не удаляйте родительские файлы без тега @@ -3093,6 +3174,14 @@ wsl.exe --manage <DistributionName> --set-sparse true --allow-unsafeНедопустимое значение аргумента {}: "{}". Ожидается объем памяти (например, 256M, 1G) {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="256M"}{Locked="1G"} + + Недопустимое значение аргумента {}: "{}". Ожидаемая длительность (например, 30s, 1m30s) + {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="30s"}{Locked="1m30s"} + + + Параметр --no-healthcheck нельзя комбинировать с другими параметрами проверки работоспособности. + {Locked="--no-healthcheck "}Command line arguments, file names and string inserts should not be translated + CID-файл "{}" уже существует {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -3184,6 +3273,18 @@ wsl.exe --manage <DistributionName> --set-sparse true --allow-unsafeУдалено: {} {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + Подключите контейнер к сети + + + Подключает контейнер к существующей сети. + + + Отключите контейнер от сети. + + + Отключает контейнер от существующей сети. + Управление томами. diff --git a/localization/strings/sv-SE/Resources.resw b/localization/strings/sv-SE/Resources.resw index 5b01664aa0..2edd6d6332 100644 --- a/localization/strings/sv-SE/Resources.resw +++ b/localization/strings/sv-SE/Resources.resw @@ -2259,6 +2259,10 @@ Användning: Flaggargumentet kan inte innehålla ett angränsande värde: "{}" {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + Ogiltigt booleskt värde för flaggargumentet '{}'. Förväntade sant, falskt, 1 eller 0. + {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + Hittade ett positionsargument när inget förväntades: "{}" {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -2483,6 +2487,59 @@ För sekretessinformation om den här produkten, besök https://aka.ms/privacy.< Skriv till en fil i stället för STDOUT {Locked="STDOUT"}Command line arguments, file names and string inserts should not be translated + + Kopiera filer mellan en container och det lokala filsystemet. + + + Kopiera filer mellan en container och det lokala filsystemet. +Användning: wslc container cp [ALTERNATIV] SOURCE DEST + Lokalt till container: wslc container cp LOCAL_PATH CONTAINER:PATH + Container till lokalt: wslc container cp CONTAINER:PATH LOCAL_PATH + Stdin till container: wslc container cp – CONTAINER:PATH + {Locked="wslc"}{Locked="container cp"}{Locked="CONTAINER:PATH"}{Locked="LOCAL_PATH"} + + + Källa: lokal sökväg, CONTAINER:PATH eller '-' för stdin + {Locked="-"}{Locked="CONTAINER:PATH"} + + + Destination: lokal sökväg eller CONTAINER:PATH + {Locked="CONTAINER:PATH"} + + + Ogiltigt målformat. + Förväntat format: CONTAINER:PATH + {Locked="CONTAINER:PATH"} + + + Ogiltigt källformat. Förväntat format: CONTAINER:PATH + {Locked="CONTAINER:PATH"} + + + Hittade inte källsökvägen: {0} + {0} is the source path + + + tar.exe hittades inte. Windows tar krävs för lokal filkopiering. + {Locked="tar.exe"} + + + Ogiltig kopieringsriktning. Använd CONTAINER:PATH som antingen källa eller mål. + {Locked="CONTAINER:PATH"} + + + Kan inte läsa tar-data från terminalen. Skicka vidare i pipeline ett tar-arkiv till stdin. +Exempel: tar -cf - files | wslc container cp - CONTAINER:/path + {Locked="tar -cf -"}{Locked="wslc container cp"}{Locked="CONTAINER:/path"} + + + Ingen fil kunde extraheras från containerarkivet + Shown when the container archive download produced no extractable files. + + + Det går inte att kopiera en katalog till en filsökväg. Använd ett katalogmål (med avslutande avgränsare) i stället. + Shown when the user tries to copy a directory from the container to a file destination. + Inspektera en container. @@ -2783,6 +2840,10 @@ Vid den första körningen skapas filen med alla inställningar kommenterade som Visa alla oavsett status. + + Arkivläge (stöds för kompatibilitet med Docker CLI) + {Locked="Docker"} + Ange versionstidsvariablar (KEY=VALUE) {Locked="KEY=VALUE"}Command line arguments should not be translated @@ -2849,6 +2910,24 @@ Vid den första körningen skapas filen med alla inställningar kommenterade som Ogiltigt {} värde ''{}''. Endast ''all'' stöds. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + Kommando som ska köras för att kontrollera containerhälsa + + + Tid mellan att köra hälsokontrollen (t.ex. 30s, 1m30s) + {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated + + + Efterföljande fel som krävs för att rapportera containern som defekt + + + Startperiod för containern som ska initieras före nedräkningen av hälsokontrollen (t.ex. 30s, 1m30s) + {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated + + + Maximal tid för att tillåta en hälsokontroll att köras (t.ex. 30s, 1m30s) + {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated + Ta bort bilder även om de används @@ -2906,6 +2985,9 @@ Vid den första körningen skapas filen med alla inställningar kommenterade som Använd inte cacheminnet när du skapar avbildningen + + Inaktivera alla hälsokontroller som angetts av containrar + Ta inte bort omärkta föräldrar @@ -3086,6 +3168,14 @@ Vid den första körningen skapas filen med alla inställningar kommenterade som Ogiltigt {} argumentvärde: ''{}''. En minnesstorlek förväntades (t.ex. 256M, 1G) {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="256M"}{Locked="1G"} + + Ogiltigt {} argumentvärde: ''{}''. En varaktighet förväntades (t.ex. 30s, 1m30s) + {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="30s"}{Locked="1m30s"} + + + Alternativet --no-healthcheck kan inte kombineras med andra alternativ för hälsokontroll. + {Locked="--no-healthcheck "}Command line arguments, file names and string inserts should not be translated + CID-filen {} finns redan {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -3177,6 +3267,18 @@ Vid den första körningen skapas filen med alla inställningar kommenterade som Borttagen: {} {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + Ansluta en container till ett nätverk. + + + Ansluter en container till ett befintligt nätverk. + + + Koppla från en container från ett nätverk. + + + Kopplar bort en container från ett befintligt nätverk. + Hantera volymer. diff --git a/localization/strings/tr-TR/Resources.resw b/localization/strings/tr-TR/Resources.resw index e00c83ca9c..fd4c6f8650 100644 --- a/localization/strings/tr-TR/Resources.resw +++ b/localization/strings/tr-TR/Resources.resw @@ -2259,6 +2259,10 @@ Kullanım: Bayrak bağımsız değişkeni ekli değeri içeremez: '{}' {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + Bayrak bağımsız değişkeni için geçersiz boolean değeri: '{}'. Beklenen değer: true, false, 1 veya 0. + {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + Beklenmediği halde bir konumsal bağımsız değişken bulundu: '{}' {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -2427,7 +2431,7 @@ Bu ürünle ilgili gizlilik bilgileri için lütfen https://aka.ms/privacy sayfa {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - Creating session storage at '{}' as configured by session.storagePath. If you later change or remove this setting, data stored here will no longer be used by the default session and can be deleted to reclaim space. + session.storagePath ile yapılandırıldığı şekilde '{}' konumunda oturum depolama alanı oluşturuluyor. Bu ayarı daha sonra değiştirir veya kaldırırsanız, burada depolanan veriler artık varsayılan oturum tarafından kullanılmaz ve alan açmak için silinebilir. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated. {Locked="session.storagePath"}"session.storagePath" is a configuration setting name and should not be translated. @@ -2483,6 +2487,58 @@ Bu ürünle ilgili gizlilik bilgileri için lütfen https://aka.ms/privacy sayfa STDOUT yerine bir dosyaya yazın {Locked="STDOUT"}Command line arguments, file names and string inserts should not be translated + + Dosyaları bir kapsayıcı ile yerel dosya sistemi arasında kopyalar. + + + Bir kapsayıcı ile yerel dosya sistemi arasında dosya kopyalayın. +Kullanım: wslc container cp [OPTIONS] SOURCE DEST + Yerelden kapsayıcıya: wslc container cp LOCAL_PATH CONTAINER:PATH + Kapsayıcıdan yerele: wslc container cp CONTAINER:PATH LOCAL_PATH + Stdin’dan kapsayıcıya: wslc container cp - CONTAINER:PATH + {Locked="wslc"}{Locked="container cp"}{Locked="CONTAINER:PATH"}{Locked="LOCAL_PATH"} + + + Kaynak: yerel yol, CONTAINER:PATH veya stdin için '-' + {Locked="-"}{Locked="CONTAINER:PATH"} + + + Hedef: yerel yol veya CONTAINER:PATH + {Locked="CONTAINER:PATH"} + + + Geçersiz hedef biçimi. Beklenen biçim CONTAINER:PATH + {Locked="CONTAINER:PATH"} + + + Kaynak biçimi geçersiz. Beklenen biçim CONTAINER:PATH + {Locked="CONTAINER:PATH"} + + + Kaynak yolu bulunamadı: {0} + {0} is the source path + + + tar.exe bulunamadı. Yerel dosya kopyalama için Windows tar gereklidir. + {Locked="tar.exe"} + + + Geçersiz kopyalama yönü. Ya kaynak ya da hedef olarak CONTAINER:PATH kullanın. + {Locked="CONTAINER:PATH"} + + + Terminalden tar verisi okunamıyor. Bir tar arşivini stdin'e aktarın. +Örnek: tar -cf - files | wslc container cp - CONTAINER:/path + {Locked="tar -cf -"}{Locked="wslc container cp"}{Locked="CONTAINER:/path"} + + + Kapsayıcı arşivinden herhangi bir dosya ayıklanmadı + Shown when the container archive download produced no extractable files. + + + Bir dizin bir dosya yoluna kopyalanamaz. Bunun yerine bir dizin hedefi (sonunda ayırıcı bulunan) kullanın. + Shown when the user tries to copy a directory from the container to a file destination. + Bir kapsayıcıyı incele. @@ -2783,6 +2839,10 @@ Bu ürünle ilgili gizlilik bilgileri için lütfen https://aka.ms/privacy sayfa Durum ne olursa olsun tümünü göster. + + Arşiv modu (Docker CLI uyumluluğu için kabul edilir) + {Locked="Docker"} + Derleme zamanı değişkenlerini ayarla (KEY=VALUE) {Locked="KEY=VALUE"}Command line arguments should not be translated @@ -2849,6 +2909,24 @@ Bu ürünle ilgili gizlilik bilgileri için lütfen https://aka.ms/privacy sayfa Geçersiz {} değeri: '{}'. Yalnızca 'tümü' desteklenir. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + Kapsayıcı durumunu denetlemek için çalıştırılacak komut + + + Sistem durumu denetimi çalıştırmalarının arasındaki süre (ör. 30s, 1m30s) + {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated + + + Kapsayıcının iyi durumda olmadığının bildirilmesi için gereken art arda hata sayısı + + + Sistem durumu denetimi geri sayımı başlamadan önce kapsayıcının başlatılması için başlangıç süresi (ör. 30s, 1m30s) + {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated + + + Bir sistem durumu denetiminin çalışması için izin verilen en uzun süre (örneğin 30s, 1m30s) + {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated + Görüntüleri kullanılıyor olsalar bile sil @@ -2906,6 +2984,9 @@ Bu ürünle ilgili gizlilik bilgileri için lütfen https://aka.ms/privacy sayfa Görüntüyü oluştururken önbelleği kullanma + + Kapsayıcıda belirtilen tüm sistem durumu denetimlerini devre dışı bırak + Etiketlenmemiş üst öğeleri silme @@ -3086,6 +3167,14 @@ Bu ürünle ilgili gizlilik bilgileri için lütfen https://aka.ms/privacy sayfa Geçersiz {} bağımsız değişken değeri: '{}'. Beklenen bellek boyutu (ör. 256M, 1G) {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="256M"}{Locked="1G"} + + Geçersiz {} bağımsız değişken değeri: '{}'. Beklenen süre (ör. 30s, 1m30s) + {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="30s"}{Locked="1m30s"} + + + --no-healthcheck seçeneği diğer sistem durumu denetimi seçenekleriyle birlikte kullanılamaz. + {Locked="--no-healthcheck "}Command line arguments, file names and string inserts should not be translated + '{}' dosyası zaten var {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -3177,6 +3266,18 @@ Bu ürünle ilgili gizlilik bilgileri için lütfen https://aka.ms/privacy sayfa Silindi: {} {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + Bir kapsayıcıyı ağa bağlayın. + + + Bir konteyneri mevcut bir ağa bağlar. + + + Bir kapsayıcının ağ bağlantısını kesin. + + + Bir konteyneri mevcut bir ağdan ayırır. + Birimleri yönetin. diff --git a/localization/strings/zh-CN/Resources.resw b/localization/strings/zh-CN/Resources.resw index c421638ccd..b0b65a788a 100644 --- a/localization/strings/zh-CN/Resources.resw +++ b/localization/strings/zh-CN/Resources.resw @@ -2259,6 +2259,10 @@ wsl.exe --manage <DistributionName> --set-sparse true --allow-unsafe标记参数不得包含邻近值:“{}” {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + 标志参数的布尔值无效:“{}”。应为 true、false、1 或 0。 + {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + 在未预期的情况下找到位置参数:“{}” {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -2427,7 +2431,7 @@ wsl.exe --manage <DistributionName> --set-sparse true --allow-unsafe{FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - Creating session storage at '{}' as configured by session.storagePath. If you later change or remove this setting, data stored here will no longer be used by the default session and can be deleted to reclaim space. + 正在按 session.storagePath 的配置在“{}”创建会话存储。如果稍后更改或删除此设置,则默认会话将不再使用此处存储的数据,可以删除这些数据以回收空间。 {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated. {Locked="session.storagePath"}"session.storagePath" is a configuration setting name and should not be translated. @@ -2483,6 +2487,57 @@ wsl.exe --manage <DistributionName> --set-sparse true --allow-unsafe写入文件,而不是 STDOUT {Locked="STDOUT"}Command line arguments, file names and string inserts should not be translated + + 在容器和本地文件系统之间复制文件。 + + + 在容器和本地文件系统之间复制文件。 +用法: wslc container cp [OPTIONS] SOURCE DEST + 本地到容器: wslc container cp LOCAL_PATH CONTAINER:PATH + 容器到本地: wslc container cp CONTAINER:PATH LOCAL_PATH + 标准输入到容器: wslc container cp - CONTAINER:PATH + {Locked="wslc"}{Locked="container cp"}{Locked="CONTAINER:PATH"}{Locked="LOCAL_PATH"} + + + 源:本地路径、CONTAINER:PATH 或 '-' 表示标准输入 + {Locked="-"}{Locked="CONTAINER:PATH"} + + + 目标: 本地路径或 CONTAINER:PATH + {Locked="CONTAINER:PATH"} + + + 目标格式无效。应为 CONTAINER:PATH + {Locked="CONTAINER:PATH"} + + + 源格式无效。应为 CONTAINER:PATH + {Locked="CONTAINER:PATH"} + + + 找不到源路径: {0} + {0} is the source path + + + 找不到 tar.exe。本地文件复制需要 Windows tar。 + {Locked="tar.exe"} + + + 复制方向无效。将 CONTAINER:PATH 用作源或目标。 + {Locked="CONTAINER:PATH"} + + + 无法从终端读取 tar 数据。将 tar 存档通过管道传输到 stdin。 示例:tar -cf - files | wslc container cp - CONTAINER:/path + {Locked="tar -cf -"}{Locked="wslc container cp"}{Locked="CONTAINER:/path"} + + + 未从容器存档中提取到任何文件 + Shown when the container archive download produced no extractable files. + + + 无法将目录复制到文件路径。改用带有尾随分隔符) 的目录目标 (。 + Shown when the user tries to copy a directory from the container to a file destination. + 检查容器。 @@ -2783,6 +2838,10 @@ wsl.exe --manage <DistributionName> --set-sparse true --allow-unsafe 显示所有内容,而不考虑状态。 + + 归档模式(为 Docker CLI 兼容性而接受) + {Locked="Docker"} + 设置生成时变量(KEY=VALUE) {Locked="KEY=VALUE"}Command line arguments should not be translated @@ -2849,6 +2908,24 @@ wsl.exe --manage <DistributionName> --set-sparse true --allow-unsafe{} 值无效:“{}”。仅支持“all”。 {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + 检查容器运行状况的命令 + + + 运行状况检查的运行间隔时间(例如 30s, 1m30s) + {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated + + + 报告容器运行不正常所需的连续失败 + + + 容器在运行状况检查倒计时之前初始化的开始时间段(例如 30s, 1m30s) + {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated + + + 允许一次运行状况检查运行的最长时间(例如 30s, 1m30s) + {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated + 删除映像(即使正在使用它们) @@ -2906,6 +2983,9 @@ wsl.exe --manage <DistributionName> --set-sparse true --allow-unsafe 生成映像时不要使用缓存 + + 禁用任何容器指定的运行状况检查 + 不要删除未标记的父级 @@ -3086,6 +3166,14 @@ wsl.exe --manage <DistributionName> --set-sparse true --allow-unsafe无效 {} 参数值: '{}'。应为内存大小(例如 256M、1G) {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="256M"}{Locked="1G"} + + 无效 {} 参数值: '{}'。预期为持续时间(例如 30s, 1m30s) + {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="30s"}{Locked="1m30s"} + + + 选项 --no-healthcheck 不能与其他健康检查选项组合使用。 + {Locked="--no-healthcheck "}Command line arguments, file names and string inserts should not be translated + CID 文件 "{}" 已存在 {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -3177,6 +3265,18 @@ wsl.exe --manage <DistributionName> --set-sparse true --allow-unsafe已删除: {} {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + 将容器连接到网络 + + + 将容器连接到现有网络。 + + + 断开容器与网络的连接。 + + + 将容器从现有网络断开连接。 + 管理卷。 diff --git a/localization/strings/zh-TW/Resources.resw b/localization/strings/zh-TW/Resources.resw index ecf893f3d7..0c2a660e0d 100644 --- a/localization/strings/zh-TW/Resources.resw +++ b/localization/strings/zh-TW/Resources.resw @@ -453,11 +453,9 @@ --enable-wsl1 啟用 WSL1 支援。 - --fixed-vhd 建立大小固定的磁碟,以儲存發佈。 - --from-file <Path> 從本機檔案安裝發佈。 @@ -485,9 +483,7 @@ --web-download 從網際網路下載發佈,而非從 Microsoft Store 下載。 - --manage <Distro> <Options...> - 變更 distro 指定選項。 選項: @@ -497,7 +493,6 @@ --set-sparse, -s <true|false> 將 distro 的 VHD 設為疏鬆,允許磁碟空格自動回收。 - --set-default-user <Username> 設定發佈的預設使用者。 @@ -537,7 +532,6 @@ --force 結束 WSL 2 虛擬機器,即使作業正在進行中。可能會造成資料遺失。 - --status 顯示 Linux 版 Windows 子系統的狀態。 @@ -565,7 +559,6 @@ stdout 的檔案名稱可以是 -。 選項: - --format <Format> 指定匯出格式。支援的值: tar、tar.gz、tar.xz、vhd。 @@ -2272,6 +2265,10 @@ wsl.exe --manage <DistributionName> --set-sparse true --allow-unsafe旗標引數不能包含鄰近值: '{}' {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + 旗標引數的布林值無效:「{}」。預期為 True、false、1 或 0。 + {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + 在未預期的情況下找到位置引數: '{}' {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -2440,7 +2437,7 @@ wsl.exe --manage <DistributionName> --set-sparse true --allow-unsafe{FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - Creating session storage at '{}' as configured by session.storagePath. If you later change or remove this setting, data stored here will no longer be used by the default session and can be deleted to reclaim space. + 正在依照 session.storagePath 的設定,在 '{}' 建立工作階段儲存體。如果您稍後變更或移除此設定,預設工作階段將不再使用儲存在這裡的資料,而且您可以刪除這些資料以回收空間。 {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated. {Locked="session.storagePath"}"session.storagePath" is a configuration setting name and should not be translated. @@ -2496,6 +2493,58 @@ wsl.exe --manage <DistributionName> --set-sparse true --allow-unsafe寫入檔案,而不是 STDOUT {Locked="STDOUT"}Command line arguments, file names and string inserts should not be translated + + 在容器與本機檔案系統之間複製檔案。 + + + 在容器與本機檔案系統之間複製檔案。 +使用方式: wslc container cp [OPTIONS] SOURCE DEST + 本機至容器: wslc container cp LOCAL_PATH CONTAINER:PATH + 容器至區域l: wslc container cp CONTAINER:PATH LOCAL_PATH + Stdin 至容器: wslc container cp - CONTAINER:PATH + {Locked="wslc"}{Locked="container cp"}{Locked="CONTAINER:PATH"}{Locked="LOCAL_PATH"} + + + 來源: stdin 的本機路徑、CONTAINER:PATH 或針對 stdin 的「-」 + {Locked="-"}{Locked="CONTAINER:PATH"} + + + 目的地: 區域路徑或 CONTAINER:PATH + {Locked="CONTAINER:PATH"} + + + 無效目的格式。預期的 CONTAINER:PATH + {Locked="CONTAINER:PATH"} + + + 無效來源格式。預期的 CONTAINER:PATH + {Locked="CONTAINER:PATH"} + + + 找不到來源路徑: {0} + {0} is the source path + + + 找不到 tar.exe。本機檔案複製需要 Windows tar。 + {Locked="tar.exe"} + + + 複製方向無效。使用 CONTAINER:PATH 作為來源或目的地。 + {Locked="CONTAINER:PATH"} + + + 無法從終端機讀取 tar 資料。將一個 tar 封存輸送至 stdin。 +範例: tar -cf - files | wslc container cp - CONTAINER:/path + {Locked="tar -cf -"}{Locked="wslc container cp"}{Locked="CONTAINER:/path"} + + + 未從容器封存層擷取檔案 + Shown when the container archive download produced no extractable files. + + + 無法將目錄複製到檔案路徑。請改用目錄目標 (,後置為分隔符號)。 + Shown when the user tries to copy a directory from the container to a file destination. + 檢查容器。 @@ -2796,6 +2845,10 @@ wsl.exe --manage <DistributionName> --set-sparse true --allow-unsafe 全部顯示 (不論狀態)。 + + 封存模式 (已接受以確保 Docker CLI 相容性) + {Locked="Docker"} + 設定建置時間變數 (KEY=VALUE) {Locked="KEY=VALUE"}Command line arguments should not be translated @@ -2862,6 +2915,24 @@ wsl.exe --manage <DistributionName> --set-sparse true --allow-unsafe{} 值無效: '{}'。僅支援 'all'。 {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + 用來檢查容器健康情況的執行命令 + + + 執行健康檢查之間的間隔時間 (例如 30s, 1m30s) + {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated + + + 報告容器狀況不良所需的連續失敗 + + + 容器在健康檢查倒數開始前的初始化期間 (例如 30s, 1m30s) + {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated + + + 允許單次健康檢查執行的最長時間 (例如 30s, 1m30s) + {Locked="30s"}{Locked="1m30s"}Command line argument example values should not be translated + 即使映像正在使用,仍將其刪除 @@ -2919,6 +2990,9 @@ wsl.exe --manage <DistributionName> --set-sparse true --allow-unsafe 建置影像時請勿使用快取 + + 停用任何容器指定的健康檢查 + 不要刪除未標記的父項 @@ -3099,6 +3173,14 @@ wsl.exe --manage <DistributionName> --set-sparse true --allow-unsafe{} 引數值無效: '{}'。預期記憶體大小 (,例如 256M、1G) {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="256M"}{Locked="1G"} + + 無效的 {} 引數值: '{}'。預期持續時間 (例如 30s, 1m30s) + {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated{Locked="30s"}{Locked="1m30s"} + + + --no-healthcheck 選項不能與其他健康檢查選項搭配使用。 + {Locked="--no-healthcheck "}Command line arguments, file names and string inserts should not be translated + CID 檔案 '{}' 已存在 {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated @@ -3190,6 +3272,18 @@ wsl.exe --manage <DistributionName> --set-sparse true --allow-unsafe已刪除: {} {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + + 將容器連線到網路 + + + 將容器連接到現有網路。 + + + 將容器從網路中斷連線。 + + + 將容器從現有網路中斷連線。 + 管理磁碟區。 From ae25a684947489bdef3d60873ef38bf96440d0b2 Mon Sep 17 00:00:00 2001 From: Beena Chauhan Date: Tue, 14 Jul 2026 16:49:09 -0700 Subject: [PATCH 04/14] Apply copilot feedback --- localization/strings/en-US/Resources.resw | 4 ++++ src/windows/wslcsession/WSLCContainer.cpp | 11 +++++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/localization/strings/en-US/Resources.resw b/localization/strings/en-US/Resources.resw index dc231fa878..0daffeceb0 100644 --- a/localization/strings/en-US/Resources.resw +++ b/localization/strings/en-US/Resources.resw @@ -2413,6 +2413,10 @@ For privacy information about this product please visit https://aka.ms/privacy.< Network aliases require a user-defined network. Use --network to specify one. {Locked="--network "}Command line arguments, file names and string inserts should not be translated + + Endpoint settings are not supported for network mode '{}'. + {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + Network aliases cannot be specified when multiple networks are requested. Use a single --network argument. {Locked="--network "}Command line arguments, file names and string inserts should not be translated diff --git a/src/windows/wslcsession/WSLCContainer.cpp b/src/windows/wslcsession/WSLCContainer.cpp index ea995942df..cd30e244fe 100644 --- a/src/windows/wslcsession/WSLCContainer.cpp +++ b/src/windows/wslcsession/WSLCContainer.cpp @@ -1915,20 +1915,23 @@ std::shared_ptr WSLCContainerImpl::Create( auto primaryConfig = ResolveEndpointConfig(containerOptions.ContainerNetwork.Settings, containerOptions.ContainerNetwork.SettingsCount, networkMode); - // Aliases require a user-defined endpoint. bridge/host/none/container: modes don't support them. THROW_HR_WITH_USER_ERROR_IF( E_INVALIDARG, Localization::MessageWslcAliasRequiresUserDefinedNetwork(), primaryConfig.Aliases.has_value() && (networkMode == "bridge" || !NetworkModeAllocatesVmPorts(networkMode))); + const bool hasNonAliasEndpointSettings = + primaryConfig.IPAMConfig.has_value() || primaryConfig.Links.has_value() || primaryConfig.DriverOpts.has_value(); + THROW_HR_WITH_USER_ERROR_IF( + E_INVALIDARG, + Localization::MessageWslcEndpointSettingsRequireNetwork(networkMode), + hasNonAliasEndpointSettings && !NetworkModeAllocatesVmPorts(networkMode)); + auto mappedPorts = BuildPortMappings(ports, networkMode, virtualMachine); request.HostConfig.NetworkMode = networkMode; request.NetworkingConfig.EndpointsConfig = std::move(endpoints); - // Docker API v1.44 requires the primary network in EndpointsConfig when it is non-empty; also insert when the caller - // supplied any primary endpoint settings. ResolveEndpoints rejects additional networks that alias networkMode, so - // try_emplace here always creates a fresh entry — full replacement is safe. const bool hasPrimaryEndpointSettings = primaryConfig.Aliases.has_value() || primaryConfig.IPAMConfig.has_value() || primaryConfig.Links.has_value() || primaryConfig.DriverOpts.has_value(); if (NetworkModeAllocatesVmPorts(networkMode) && (!request.NetworkingConfig.EndpointsConfig.empty() || hasPrimaryEndpointSettings)) From a97f9cc012fcaa26f1170453da43bb3bf7084552 Mon Sep 17 00:00:00 2001 From: Beena Chauhan Date: Tue, 14 Jul 2026 16:53:54 -0700 Subject: [PATCH 05/14] format --- localization/strings/en-US/Resources.resw | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/localization/strings/en-US/Resources.resw b/localization/strings/en-US/Resources.resw index 0daffeceb0..71414390f2 100644 --- a/localization/strings/en-US/Resources.resw +++ b/localization/strings/en-US/Resources.resw @@ -2393,7 +2393,7 @@ For privacy information about this product please visit https://aka.ms/privacy.< Invalid driver option '{}'; expected 'key=value'. - {FixedPlaceholder="{}"}{Locked="key=value"}Command line arguments, file names and string inserts should not be translated + {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated Unknown endpoint setting '{}' for network '{}'. @@ -3009,14 +3009,14 @@ On first run, creates the file with all settings commented out at their defaults Set endpoint driver options (--driver-opt key=value) - {Locked="--driver-opt"}{Locked="key=value"}Command line arguments, file names and string inserts should not be translated + {Locked="--driver-opt "}Command line arguments, file names and string inserts should not be translated Assign the container an IPv4 address on the network Add link to another container (--link name:alias) - {Locked="--link"}{Locked="name:alias"}Command line arguments, file names and string inserts should not be translated + {Locked="--link "}Command line arguments, file names and string inserts should not be translated Add a link-local IPv4 address for the container From 92752e087eacb33a34d0c7c985d70d6e4aa3c08a Mon Sep 17 00:00:00 2001 From: Beena Chauhan Date: Wed, 15 Jul 2026 10:39:38 -0700 Subject: [PATCH 06/14] Fix container:* mode gate and add missing test coverage --- localization/strings/en-US/Resources.resw | 4 + src/windows/wslcsession/WSLCContainer.cpp | 47 ++++----- test/windows/WSLCTests.cpp | 111 +++++++++++++++++----- 3 files changed, 115 insertions(+), 47 deletions(-) diff --git a/localization/strings/en-US/Resources.resw b/localization/strings/en-US/Resources.resw index 71414390f2..b2833cc73b 100644 --- a/localization/strings/en-US/Resources.resw +++ b/localization/strings/en-US/Resources.resw @@ -2383,6 +2383,10 @@ For privacy information about this product please visit https://aka.ms/privacy.< Additional networks are not allowed when the primary network mode is 'host' or 'none'. {Locked="host"}{Locked="none"}Command line arguments, file names and string inserts should not be translated + + The primary network mode '{}' does not support connecting or disconnecting additional networks. + {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + Duplicate network: '{}' {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated diff --git a/src/windows/wslcsession/WSLCContainer.cpp b/src/windows/wslcsession/WSLCContainer.cpp index cd30e244fe..4de8f5e5c7 100644 --- a/src/windows/wslcsession/WSLCContainer.cpp +++ b/src/windows/wslcsession/WSLCContainer.cpp @@ -396,8 +396,9 @@ void UnmountVolumes(std::vector& volumes, WSLCVirtualMachine& p else { LOG_HR(result); - EMIT_USER_WARNING(wsl::shared::Localization::MessageWslcVolumeUnmountFailed( - volume.HostPath, wsl::windows::common::wslutil::GetErrorString(result))); + EMIT_USER_WARNING( + wsl::shared::Localization::MessageWslcVolumeUnmountFailed( + volume.HostPath, wsl::windows::common::wslutil::GetErrorString(result))); } } } @@ -785,8 +786,9 @@ void WSLCContainerImpl::Attach(LPCSTR DetachKeys, WSLCHandle* Stdin, WSLCHandle* handles.emplace_back( std::make_unique>(HandleWrapper{std::move(stdinRead), std::move(onInputComplete)}, ioHandle.get())); - handles.emplace_back(std::make_unique( - std::move(ioHandle), std::move(stdoutWrite), std::move(stderrWrite), DockerIORelayHandle::Format::Raw)); + handles.emplace_back( + std::make_unique( + std::move(ioHandle), std::move(stdoutWrite), std::move(stderrWrite), DockerIORelayHandle::Format::Raw)); m_ioRelay.AddHandles(std::move(handles)); @@ -917,8 +919,8 @@ void WSLCContainerImpl::Start(WSLCContainerStartFlags Flags, const WSLCProcessSt catch (...) { LOG_CAUGHT_EXCEPTION(); - EMIT_USER_WARNING(wsl::shared::Localization::MessageWslcContainerStopAfterPluginRejectionFailed( - wsl::shared::string::MultiByteToWide(m_id))); + EMIT_USER_WARNING( + wsl::shared::Localization::MessageWslcContainerStopAfterPluginRejectionFailed(wsl::shared::string::MultiByteToWide(m_id))); } if (comError.has_value() && comError->Message) @@ -1177,8 +1179,8 @@ void WSLCContainerImpl::Export(WSLCHandle OutHandle) const } else { - io.AddHandle(std::make_unique>( - HandleWrapper{std::move(SocketCodePair.second)}, userHandle.Get())); + io.AddHandle( + std::make_unique>(HandleWrapper{std::move(SocketCodePair.second)}, userHandle.Get())); } // Release the lock so the container can still be interacted with while the export is in progress. @@ -1237,8 +1239,9 @@ void WSLCContainerImpl::UploadArchive(WSLCHandle TarHandle, LPCSTR DestPath, ULO LOG_LAST_ERROR_IF(shutdown(socket, SD_SEND) == SOCKET_ERROR); }; - io.AddHandle(std::make_unique>( - HandleWrapper{userHandle.Get(), std::move(onInputComplete)}, HandleWrapper{requestContext->stream.native_handle()})); + io.AddHandle( + std::make_unique>( + HandleWrapper{userHandle.Get(), std::move(onInputComplete)}, HandleWrapper{requestContext->stream.native_handle()})); io.AddHandle( std::make_unique(*requestContext, std::move(onHttpResponse), std::move(onProgress)), @@ -1922,6 +1925,8 @@ std::shared_ptr WSLCContainerImpl::Create( const bool hasNonAliasEndpointSettings = primaryConfig.IPAMConfig.has_value() || primaryConfig.Links.has_value() || primaryConfig.DriverOpts.has_value(); + // N.B. NetworkModeAllocatesVmPorts is reused here as the "supports endpoint settings" predicate: modes + // that lack a dedicated netns (host/none/container:*) also can't accept per-endpoint settings. THROW_HR_WITH_USER_ERROR_IF( E_INVALIDARG, Localization::MessageWslcEndpointSettingsRequireNetwork(networkMode), @@ -1951,8 +1956,8 @@ std::shared_ptr WSLCContainerImpl::Create( auto hostPort = e.VmMapping.VmPort ? e.VmMapping.VmPort->Port() : e.VmMapping.HostPort(); // Use catch-all binding address based on the address family. :: binds all ipv6 interfaces, and 0:0:0:0 binds all ipv4 interfaces. - portEntry.emplace_back(common::docker_schema::PortMapping{ - .HostIp = e.VmMapping.IsIPv6() ? "::" : "0.0.0.0", .HostPort = std::to_string(hostPort)}); + portEntry.emplace_back( + common::docker_schema::PortMapping{.HostIp = e.VmMapping.IsIPv6() ? "::" : "0.0.0.0", .HostPort = std::to_string(hostPort)}); } auto labels = ParseKeyValuePairs(containerOptions.Labels, containerOptions.LabelsCount, WSLCContainerMetadataLabel); @@ -2165,8 +2170,9 @@ std::shared_ptr WSLCContainerImpl::Open( catch (...) { LOG_CAUGHT_EXCEPTION(); - EMIT_USER_WARNING(wsl::shared::Localization::MessageWslcContainerTimestampRecoveryFailed( - wsl::shared::string::MultiByteToWide(dockerContainer.Id))); + EMIT_USER_WARNING( + wsl::shared::Localization::MessageWslcContainerTimestampRecoveryFailed( + wsl::shared::string::MultiByteToWide(dockerContainer.Id))); } return container; @@ -2287,8 +2293,9 @@ std::unique_ptr WSLCContainerImpl::CreateRelayedProcessIO(wil: fds.emplace(WSLCFDStdout, TypedHandle{wil::unique_handle{stdoutRead.release()}, WSLCHandleTypePipe}); fds.emplace(WSLCFDStderr, TypedHandle{wil::unique_handle{stderrRead.release()}, WSLCHandleTypePipe}); - ioHandles.emplace_back(std::make_unique( - std::move(stream), std::move(stdoutWrite), std::move(stderrWrite), common::io::DockerIORelayHandle::Format::Raw)); + ioHandles.emplace_back( + std::make_unique( + std::move(stream), std::move(stdoutWrite), std::move(stderrWrite), common::io::DockerIORelayHandle::Format::Raw)); m_ioRelay.AddHandles(std::move(ioHandles)); @@ -2747,9 +2754,7 @@ void WSLCContainerImpl::ConnectToNetwork(const WSLCNetworkConnectionOptions* Opt auto lock = m_lock.lock_shared(); THROW_HR_WITH_USER_ERROR_IF( - E_INVALIDARG, - Localization::MessageWslcAdditionalNetworksRequirePrimary(), - m_networkMode == "host" || m_networkMode == "none"); + E_INVALIDARG, Localization::MessageWslcNetworkModeNoAdditionalNetworks(m_networkMode), !NetworkModeAllocatesVmPorts(m_networkMode)); common::docker_schema::ContainerNetworkRequest request{}; request.Container = m_id; @@ -2780,9 +2785,7 @@ void WSLCContainerImpl::DisconnectFromNetwork(LPCSTR NetworkName) auto lock = m_lock.lock_shared(); THROW_HR_WITH_USER_ERROR_IF( - E_INVALIDARG, - Localization::MessageWslcAdditionalNetworksRequirePrimary(), - m_networkMode == "host" || m_networkMode == "none"); + E_INVALIDARG, Localization::MessageWslcNetworkModeNoAdditionalNetworks(m_networkMode), !NetworkModeAllocatesVmPorts(m_networkMode)); common::docker_schema::ContainerNetworkRequest request{}; request.Container = m_id; diff --git a/test/windows/WSLCTests.cpp b/test/windows/WSLCTests.cpp index 09309f556a..a1de5f338f 100644 --- a/test/windows/WSLCTests.cpp +++ b/test/windows/WSLCTests.cpp @@ -3241,8 +3241,8 @@ class WSLCTests HRESULT OnCrashDump(LPCWSTR DumpPath, LPCSTR ProcessName, ULONG Pid, ULONG Signal, ULONGLONG Timestamp) override { - m_promise.set_value(Invocation{ - DumpPath ? std::wstring{DumpPath} : std::wstring{}, ProcessName ? std::string{ProcessName} : std::string{}, Pid, Signal, Timestamp}); + m_promise.set_value( + Invocation{DumpPath ? std::wstring{DumpPath} : std::wstring{}, ProcessName ? std::string{ProcessName} : std::string{}, Pid, Signal, Timestamp}); // Block until the test has finished probing, so anything the test verifies is observed mid-callback. m_release.wait(); @@ -7544,23 +7544,36 @@ class WSLCTests expectBothReject(container, nonExistentNetwork.c_str(), WSLC_E_NETWORK_NOT_FOUND, expectedError.c_str()); } - // Host and none mode rejection. + // Host, none, and container:* mode rejection. { const std::string networkName = "test-connect-mode-net"; createNetwork(networkName, "172.52.0.0/16"); auto netCleanup = wil::scope_exit([&]() { LOG_IF_FAILED(m_defaultSession->DeleteNetwork(networkName.c_str())); }); - auto expectModeRejection = [&](const std::string& name, std::string mode) { - auto container = launchContainer(name, std::move(mode)); - expectBothReject( - container, - networkName.c_str(), - E_INVALIDARG, - L"Additional networks are not allowed when the primary network mode is 'host' or 'none'."); + auto expectModeRejection = [&](const std::string& name, const std::string& mode) { + auto container = launchContainer(name, mode); + const auto expected = std::format( + L"The primary network mode '{}' does not support connecting or disconnecting additional networks.", + std::wstring(mode.begin(), mode.end())); + expectBothReject(container, networkName.c_str(), E_INVALIDARG, expected.c_str()); }; expectModeRejection("test-connect-host-ctr", "host"); expectModeRejection("test-connect-none-ctr", "none"); + + // container: is resolved to container: internally, so the emitted mode string + // contains the target's container ID rather than its name. Verify HRESULT + a stable substring. + const std::string ctrModeTarget = "test-connect-ctrmode-target"; + auto target = launchContainer(ctrModeTarget); + auto ctrModeContainer = launchContainer("test-connect-ctrmode-ctr", "container:" + ctrModeTarget); + const std::wstring expectedSubstring = L"does not support connecting or disconnecting additional networks"; + + WSLCNetworkConnectionOptions options{}; + options.NetworkName = networkName.c_str(); + VERIFY_ARE_EQUAL(E_INVALIDARG, ctrModeContainer.Get().ConnectToNetwork(&options)); + ValidateCOMErrorMessageContains(expectedSubstring); + VERIFY_ARE_EQUAL(E_INVALIDARG, ctrModeContainer.Get().DisconnectFromNetwork(networkName.c_str())); + ValidateCOMErrorMessageContains(expectedSubstring); } // Connect and disconnect from the container's primary network. @@ -7628,7 +7641,7 @@ class WSLCTests [&](auto& container, const std::vector& settings, HRESULT expectedResult, const std::wstring& expectedMessage) { WSLCNetworkConnectionOptions options{}; options.NetworkName = networkName.c_str(); - options.Settings = settings.empty() ? nullptr : settings.data(); + options.Settings = settings.data(); options.SettingsCount = static_cast(settings.size()); VERIFY_ARE_EQUAL(expectedResult, container.Get().ConnectToNetwork(&options)); ValidateCOMErrorMessage(expectedMessage); @@ -7712,6 +7725,28 @@ class WSLCTests expectConnectReject(container, {{"DriverOpts", badEntry.c_str()}}, E_INVALIDARG, expected); } + // Driver option value containing '=' — everything after the first '=' is preserved verbatim. + { + auto container = launchContainer("connect-endpoint-eqvalue"); + const std::string driverOptKey = "com.docker.network.endpoint.custom"; + const std::string driverOptValue = "a=b=c"; + const std::string driverOptEntry = driverOptKey + "=" + driverOptValue; + + const std::vector settings{{"DriverOpts", driverOptEntry.c_str()}}; + WSLCNetworkConnectionOptions options{}; + options.NetworkName = networkName.c_str(); + options.Settings = settings.data(); + options.SettingsCount = static_cast(settings.size()); + VERIFY_SUCCEEDED(container.Get().ConnectToNetwork(&options)); + + auto inspect = container.Inspect(); + VERIFY_IS_TRUE(inspect.NetworkSettings.Networks.contains(networkName)); + const auto& endpoint = inspect.NetworkSettings.Networks.at(networkName); + const auto opt = endpoint.DriverOpts.find(driverOptKey); + VERIFY_IS_TRUE(opt != endpoint.DriverOpts.end()); + VERIFY_ARE_EQUAL(driverOptValue, opt->second); + } + // Aliases + IPAddress + LinkLocalIPs + DriverOpts together — success, inspect verifies every field. { auto container = launchContainer("connect-endpoint-combo"); @@ -7777,6 +7812,26 @@ class WSLCTests const auto& endpoint = inspect.NetworkSettings.Networks.at(networkName); VERIFY_IS_TRUE(std::ranges::find(endpoint.Links, linkEntry) != endpoint.Links.end()); } + + // Connecting a stopped container succeeds — Docker allows attach in created/exited state. + { + auto container = launchContainer("connect-endpoint-stopped"); + VERIFY_SUCCEEDED(container.Get().Stop(WSLCSignalSIGKILL, 0)); + + const std::string alias = "stopped-alias"; + const std::vector settings{{"Aliases", alias.c_str()}}; + + WSLCNetworkConnectionOptions options{}; + options.NetworkName = networkName.c_str(); + options.Settings = settings.data(); + options.SettingsCount = static_cast(settings.size()); + VERIFY_SUCCEEDED(container.Get().ConnectToNetwork(&options)); + + auto inspect = container.Inspect(); + VERIFY_IS_TRUE(inspect.NetworkSettings.Networks.contains(networkName)); + const auto& endpoint = inspect.NetworkSettings.Networks.at(networkName); + VERIFY_IS_TRUE(std::ranges::find(endpoint.Aliases, alias) != endpoint.Aliases.end()); + } } WSLC_TEST_METHOD(NetworkAliasCreateTest) @@ -7911,10 +7966,11 @@ class WSLCTests wil::com_ptr container; VERIFY_ARE_EQUAL(E_INVALIDARG, m_defaultSession->CreateContainer(&options, nullptr, &container)); - ValidateCOMErrorMessage(std::format( - L"Unknown endpoint setting '{}' for network '{}'.", - std::wstring(unknownKey.begin(), unknownKey.end()), - std::wstring(networkName.begin(), networkName.end()))); + ValidateCOMErrorMessage( + std::format( + L"Unknown endpoint setting '{}' for network '{}'.", + std::wstring(unknownKey.begin(), unknownKey.end()), + std::wstring(networkName.begin(), networkName.end()))); } // Primary endpoint settings (IPAddress + Aliases + LinkLocalIPs + DriverOpts) round-trip via inspect at create time. @@ -9785,15 +9841,18 @@ class WSLCTests std::string readStdout; std::string readStderr; - io.AddHandle(std::make_unique( - std::move(readPipe), std::move(stdoutWrite), std::move(stderrWrite), DockerIORelayHandle::Format::Raw)); + io.AddHandle( + std::make_unique( + std::move(readPipe), std::move(stdoutWrite), std::move(stderrWrite), DockerIORelayHandle::Format::Raw)); io.AddHandle(std::make_unique(std::move(writePipe), Input)); - io.AddHandle(std::make_unique( - std::move(stdoutRead), [&](const auto& buffer) { readStdout.append(buffer.data(), buffer.size()); })); + io.AddHandle(std::make_unique(std::move(stdoutRead), [&](const auto& buffer) { + readStdout.append(buffer.data(), buffer.size()); + })); - io.AddHandle(std::make_unique( - std::move(stderrRead), [&](const auto& buffer) { readStderr.append(buffer.data(), buffer.size()); })); + io.AddHandle(std::make_unique(std::move(stderrRead), [&](const auto& buffer) { + readStderr.append(buffer.data(), buffer.size()); + })); io.Run({}); @@ -9872,8 +9931,9 @@ class WSLCTests std::string output; MultiHandleWait io; - io.AddHandle(std::make_unique( - std::move(inputRead), std::move(stdoutWrite), std::move(stderrWrite), DockerIORelayHandle::Format::Raw)); + io.AddHandle( + std::make_unique( + std::move(inputRead), std::move(stdoutWrite), std::move(stderrWrite), DockerIORelayHandle::Format::Raw)); io.AddHandle(std::make_unique(std::move(stdoutRead), [&](const auto& buffer) { output.append(buffer.data(), buffer.size()); @@ -9913,8 +9973,9 @@ class WSLCTests // Collect the relayed output. std::string output; - io.AddHandle(std::make_unique( - std::move(dstRead), [&](const gsl::span& buffer) { output.append(buffer.data(), buffer.size()); })); + io.AddHandle(std::make_unique(std::move(dstRead), [&](const gsl::span& buffer) { + output.append(buffer.data(), buffer.size()); + })); io.Run({}); From 4844ca03f9de8f84159c7f60d7881d5210d5e9ea Mon Sep 17 00:00:00 2001 From: Beena Chauhan Date: Wed, 15 Jul 2026 13:26:02 -0700 Subject: [PATCH 07/14] Fix failing test --- test/windows/wslc/e2e/WSLCE2ENetworkTests.cpp | 31 +++++++++++-------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/test/windows/wslc/e2e/WSLCE2ENetworkTests.cpp b/test/windows/wslc/e2e/WSLCE2ENetworkTests.cpp index e0cc2f8e39..cec3222610 100644 --- a/test/windows/wslc/e2e/WSLCE2ENetworkTests.cpp +++ b/test/windows/wslc/e2e/WSLCE2ENetworkTests.cpp @@ -158,7 +158,9 @@ class WSLCE2ENetworkTests result = RunWslc(std::format(L"network connect {} {}", TestNetworkName, WslcContainerName)); VERIFY_ARE_EQUAL(1u, result.ExitCode.value()); VERIFY_IS_TRUE(result.Stderr.has_value()); - VerifyPatternMatch(string::WideToMultiByte(result.Stderr.value()), "*'host' or 'none'*Error code: *\r\n"); + VerifyPatternMatch( + string::WideToMultiByte(result.Stderr.value()), + "*does not support connecting or disconnecting additional networks*Error code: *\r\n"); } WSLC_TEST_METHOD(WSLCE2E_Network_Connect_AlreadyConnected_DockerErrorPropagated) @@ -166,8 +168,9 @@ class WSLCE2ENetworkTests auto result = RunWslc(std::format(L"network create --driver bridge {}", TestNetworkName)); result.Verify({.Stderr = L"", .ExitCode = 0}); - result = RunWslc(std::format( - L"container run -d --network {} --name {} {} sleep infinity", TestNetworkName, WslcContainerName, DebianImage.NameAndTag())); + result = RunWslc( + std::format( + L"container run -d --network {} --name {} {} sleep infinity", TestNetworkName, WslcContainerName, DebianImage.NameAndTag())); result.Verify({.Stderr = L"", .ExitCode = 0}); result = RunWslc(std::format(L"network connect {} {}", TestNetworkName, WslcContainerName)); @@ -190,8 +193,8 @@ class WSLCE2ENetworkTests result = RunWslc(std::format(L"container run -d --name {} {} sleep infinity", WslcContainerName, DebianImage.NameAndTag())); result.Verify({.Stderr = L"", .ExitCode = 0}); - result = RunWslc(std::format( - L"network connect --network-alias {} --network-alias {} --ip {} --link-local-ip {} {} {}", alias1, alias2, ipAddress, linkLocal, TestNetworkName, WslcContainerName)); + result = RunWslc( + std::format(L"network connect --network-alias {} --network-alias {} --ip {} --link-local-ip {} {} {}", alias1, alias2, ipAddress, linkLocal, TestNetworkName, WslcContainerName)); result.Verify({.Stderr = L"", .ExitCode = 0}); const auto inspect = InspectContainer(WslcContainerName); @@ -257,12 +260,13 @@ class WSLCE2ENetworkTests auto result = RunWslc(std::format(L"network create --driver bridge {}", TestNetworkName)); result.Verify({.Stderr = L"", .ExitCode = 0}); - result = RunWslc(std::format( - L"container run -d --network {} --network-alias {} --name {} {} sleep infinity", - TestNetworkName, - targetAlias, - WslcTargetContainerName, - DebianImage.NameAndTag())); + result = RunWslc( + std::format( + L"container run -d --network {} --network-alias {} --name {} {} sleep infinity", + TestNetworkName, + targetAlias, + WslcTargetContainerName, + DebianImage.NameAndTag())); result.Verify({.Stderr = L"", .ExitCode = 0}); result = RunWslc(std::format(L"container run -d --name {} {} sleep infinity", WslcContainerName, DebianImage.NameAndTag())); @@ -285,8 +289,9 @@ class WSLCE2ENetworkTests auto result = RunWslc(std::format(L"network create --driver bridge {}", TestNetworkName)); result.Verify({.Stderr = L"", .ExitCode = 0}); - result = RunWslc(std::format( - L"container run -d --network {} --name {} {} sleep infinity", TestNetworkName, WslcContainerName, DebianImage.NameAndTag())); + result = RunWslc( + std::format( + L"container run -d --network {} --name {} {} sleep infinity", TestNetworkName, WslcContainerName, DebianImage.NameAndTag())); result.Verify({.Stderr = L"", .ExitCode = 0}); { From 55626520c24f2947492a329a228ee8f3617da1e8 Mon Sep 17 00:00:00 2001 From: Beena Chauhan Date: Wed, 15 Jul 2026 13:38:15 -0700 Subject: [PATCH 08/14] Format --- src/windows/wslcsession/WSLCContainer.cpp | 37 ++++++++---------- test/windows/WSLCTests.cpp | 38 ++++++++----------- test/windows/wslc/e2e/WSLCE2ENetworkTests.cpp | 27 ++++++------- 3 files changed, 44 insertions(+), 58 deletions(-) diff --git a/src/windows/wslcsession/WSLCContainer.cpp b/src/windows/wslcsession/WSLCContainer.cpp index 4de8f5e5c7..a803de81d8 100644 --- a/src/windows/wslcsession/WSLCContainer.cpp +++ b/src/windows/wslcsession/WSLCContainer.cpp @@ -396,9 +396,8 @@ void UnmountVolumes(std::vector& volumes, WSLCVirtualMachine& p else { LOG_HR(result); - EMIT_USER_WARNING( - wsl::shared::Localization::MessageWslcVolumeUnmountFailed( - volume.HostPath, wsl::windows::common::wslutil::GetErrorString(result))); + EMIT_USER_WARNING(wsl::shared::Localization::MessageWslcVolumeUnmountFailed( + volume.HostPath, wsl::windows::common::wslutil::GetErrorString(result))); } } } @@ -786,9 +785,8 @@ void WSLCContainerImpl::Attach(LPCSTR DetachKeys, WSLCHandle* Stdin, WSLCHandle* handles.emplace_back( std::make_unique>(HandleWrapper{std::move(stdinRead), std::move(onInputComplete)}, ioHandle.get())); - handles.emplace_back( - std::make_unique( - std::move(ioHandle), std::move(stdoutWrite), std::move(stderrWrite), DockerIORelayHandle::Format::Raw)); + handles.emplace_back(std::make_unique( + std::move(ioHandle), std::move(stdoutWrite), std::move(stderrWrite), DockerIORelayHandle::Format::Raw)); m_ioRelay.AddHandles(std::move(handles)); @@ -919,8 +917,8 @@ void WSLCContainerImpl::Start(WSLCContainerStartFlags Flags, const WSLCProcessSt catch (...) { LOG_CAUGHT_EXCEPTION(); - EMIT_USER_WARNING( - wsl::shared::Localization::MessageWslcContainerStopAfterPluginRejectionFailed(wsl::shared::string::MultiByteToWide(m_id))); + EMIT_USER_WARNING(wsl::shared::Localization::MessageWslcContainerStopAfterPluginRejectionFailed( + wsl::shared::string::MultiByteToWide(m_id))); } if (comError.has_value() && comError->Message) @@ -1179,8 +1177,8 @@ void WSLCContainerImpl::Export(WSLCHandle OutHandle) const } else { - io.AddHandle( - std::make_unique>(HandleWrapper{std::move(SocketCodePair.second)}, userHandle.Get())); + io.AddHandle(std::make_unique>( + HandleWrapper{std::move(SocketCodePair.second)}, userHandle.Get())); } // Release the lock so the container can still be interacted with while the export is in progress. @@ -1239,9 +1237,8 @@ void WSLCContainerImpl::UploadArchive(WSLCHandle TarHandle, LPCSTR DestPath, ULO LOG_LAST_ERROR_IF(shutdown(socket, SD_SEND) == SOCKET_ERROR); }; - io.AddHandle( - std::make_unique>( - HandleWrapper{userHandle.Get(), std::move(onInputComplete)}, HandleWrapper{requestContext->stream.native_handle()})); + io.AddHandle(std::make_unique>( + HandleWrapper{userHandle.Get(), std::move(onInputComplete)}, HandleWrapper{requestContext->stream.native_handle()})); io.AddHandle( std::make_unique(*requestContext, std::move(onHttpResponse), std::move(onProgress)), @@ -1956,8 +1953,8 @@ std::shared_ptr WSLCContainerImpl::Create( auto hostPort = e.VmMapping.VmPort ? e.VmMapping.VmPort->Port() : e.VmMapping.HostPort(); // Use catch-all binding address based on the address family. :: binds all ipv6 interfaces, and 0:0:0:0 binds all ipv4 interfaces. - portEntry.emplace_back( - common::docker_schema::PortMapping{.HostIp = e.VmMapping.IsIPv6() ? "::" : "0.0.0.0", .HostPort = std::to_string(hostPort)}); + portEntry.emplace_back(common::docker_schema::PortMapping{ + .HostIp = e.VmMapping.IsIPv6() ? "::" : "0.0.0.0", .HostPort = std::to_string(hostPort)}); } auto labels = ParseKeyValuePairs(containerOptions.Labels, containerOptions.LabelsCount, WSLCContainerMetadataLabel); @@ -2170,9 +2167,8 @@ std::shared_ptr WSLCContainerImpl::Open( catch (...) { LOG_CAUGHT_EXCEPTION(); - EMIT_USER_WARNING( - wsl::shared::Localization::MessageWslcContainerTimestampRecoveryFailed( - wsl::shared::string::MultiByteToWide(dockerContainer.Id))); + EMIT_USER_WARNING(wsl::shared::Localization::MessageWslcContainerTimestampRecoveryFailed( + wsl::shared::string::MultiByteToWide(dockerContainer.Id))); } return container; @@ -2293,9 +2289,8 @@ std::unique_ptr WSLCContainerImpl::CreateRelayedProcessIO(wil: fds.emplace(WSLCFDStdout, TypedHandle{wil::unique_handle{stdoutRead.release()}, WSLCHandleTypePipe}); fds.emplace(WSLCFDStderr, TypedHandle{wil::unique_handle{stderrRead.release()}, WSLCHandleTypePipe}); - ioHandles.emplace_back( - std::make_unique( - std::move(stream), std::move(stdoutWrite), std::move(stderrWrite), common::io::DockerIORelayHandle::Format::Raw)); + ioHandles.emplace_back(std::make_unique( + std::move(stream), std::move(stdoutWrite), std::move(stderrWrite), common::io::DockerIORelayHandle::Format::Raw)); m_ioRelay.AddHandles(std::move(ioHandles)); diff --git a/test/windows/WSLCTests.cpp b/test/windows/WSLCTests.cpp index a1de5f338f..ff939ed9d1 100644 --- a/test/windows/WSLCTests.cpp +++ b/test/windows/WSLCTests.cpp @@ -3241,8 +3241,8 @@ class WSLCTests HRESULT OnCrashDump(LPCWSTR DumpPath, LPCSTR ProcessName, ULONG Pid, ULONG Signal, ULONGLONG Timestamp) override { - m_promise.set_value( - Invocation{DumpPath ? std::wstring{DumpPath} : std::wstring{}, ProcessName ? std::string{ProcessName} : std::string{}, Pid, Signal, Timestamp}); + m_promise.set_value(Invocation{ + DumpPath ? std::wstring{DumpPath} : std::wstring{}, ProcessName ? std::string{ProcessName} : std::string{}, Pid, Signal, Timestamp}); // Block until the test has finished probing, so anything the test verifies is observed mid-callback. m_release.wait(); @@ -7966,11 +7966,10 @@ class WSLCTests wil::com_ptr container; VERIFY_ARE_EQUAL(E_INVALIDARG, m_defaultSession->CreateContainer(&options, nullptr, &container)); - ValidateCOMErrorMessage( - std::format( - L"Unknown endpoint setting '{}' for network '{}'.", - std::wstring(unknownKey.begin(), unknownKey.end()), - std::wstring(networkName.begin(), networkName.end()))); + ValidateCOMErrorMessage(std::format( + L"Unknown endpoint setting '{}' for network '{}'.", + std::wstring(unknownKey.begin(), unknownKey.end()), + std::wstring(networkName.begin(), networkName.end()))); } // Primary endpoint settings (IPAddress + Aliases + LinkLocalIPs + DriverOpts) round-trip via inspect at create time. @@ -9841,18 +9840,15 @@ class WSLCTests std::string readStdout; std::string readStderr; - io.AddHandle( - std::make_unique( - std::move(readPipe), std::move(stdoutWrite), std::move(stderrWrite), DockerIORelayHandle::Format::Raw)); + io.AddHandle(std::make_unique( + std::move(readPipe), std::move(stdoutWrite), std::move(stderrWrite), DockerIORelayHandle::Format::Raw)); io.AddHandle(std::make_unique(std::move(writePipe), Input)); - io.AddHandle(std::make_unique(std::move(stdoutRead), [&](const auto& buffer) { - readStdout.append(buffer.data(), buffer.size()); - })); + io.AddHandle(std::make_unique( + std::move(stdoutRead), [&](const auto& buffer) { readStdout.append(buffer.data(), buffer.size()); })); - io.AddHandle(std::make_unique(std::move(stderrRead), [&](const auto& buffer) { - readStderr.append(buffer.data(), buffer.size()); - })); + io.AddHandle(std::make_unique( + std::move(stderrRead), [&](const auto& buffer) { readStderr.append(buffer.data(), buffer.size()); })); io.Run({}); @@ -9931,9 +9927,8 @@ class WSLCTests std::string output; MultiHandleWait io; - io.AddHandle( - std::make_unique( - std::move(inputRead), std::move(stdoutWrite), std::move(stderrWrite), DockerIORelayHandle::Format::Raw)); + io.AddHandle(std::make_unique( + std::move(inputRead), std::move(stdoutWrite), std::move(stderrWrite), DockerIORelayHandle::Format::Raw)); io.AddHandle(std::make_unique(std::move(stdoutRead), [&](const auto& buffer) { output.append(buffer.data(), buffer.size()); @@ -9973,9 +9968,8 @@ class WSLCTests // Collect the relayed output. std::string output; - io.AddHandle(std::make_unique(std::move(dstRead), [&](const gsl::span& buffer) { - output.append(buffer.data(), buffer.size()); - })); + io.AddHandle(std::make_unique( + std::move(dstRead), [&](const gsl::span& buffer) { output.append(buffer.data(), buffer.size()); })); io.Run({}); diff --git a/test/windows/wslc/e2e/WSLCE2ENetworkTests.cpp b/test/windows/wslc/e2e/WSLCE2ENetworkTests.cpp index cec3222610..7a9964e0ca 100644 --- a/test/windows/wslc/e2e/WSLCE2ENetworkTests.cpp +++ b/test/windows/wslc/e2e/WSLCE2ENetworkTests.cpp @@ -168,9 +168,8 @@ class WSLCE2ENetworkTests auto result = RunWslc(std::format(L"network create --driver bridge {}", TestNetworkName)); result.Verify({.Stderr = L"", .ExitCode = 0}); - result = RunWslc( - std::format( - L"container run -d --network {} --name {} {} sleep infinity", TestNetworkName, WslcContainerName, DebianImage.NameAndTag())); + result = RunWslc(std::format( + L"container run -d --network {} --name {} {} sleep infinity", TestNetworkName, WslcContainerName, DebianImage.NameAndTag())); result.Verify({.Stderr = L"", .ExitCode = 0}); result = RunWslc(std::format(L"network connect {} {}", TestNetworkName, WslcContainerName)); @@ -193,8 +192,8 @@ class WSLCE2ENetworkTests result = RunWslc(std::format(L"container run -d --name {} {} sleep infinity", WslcContainerName, DebianImage.NameAndTag())); result.Verify({.Stderr = L"", .ExitCode = 0}); - result = RunWslc( - std::format(L"network connect --network-alias {} --network-alias {} --ip {} --link-local-ip {} {} {}", alias1, alias2, ipAddress, linkLocal, TestNetworkName, WslcContainerName)); + result = RunWslc(std::format( + L"network connect --network-alias {} --network-alias {} --ip {} --link-local-ip {} {} {}", alias1, alias2, ipAddress, linkLocal, TestNetworkName, WslcContainerName)); result.Verify({.Stderr = L"", .ExitCode = 0}); const auto inspect = InspectContainer(WslcContainerName); @@ -260,13 +259,12 @@ class WSLCE2ENetworkTests auto result = RunWslc(std::format(L"network create --driver bridge {}", TestNetworkName)); result.Verify({.Stderr = L"", .ExitCode = 0}); - result = RunWslc( - std::format( - L"container run -d --network {} --network-alias {} --name {} {} sleep infinity", - TestNetworkName, - targetAlias, - WslcTargetContainerName, - DebianImage.NameAndTag())); + result = RunWslc(std::format( + L"container run -d --network {} --network-alias {} --name {} {} sleep infinity", + TestNetworkName, + targetAlias, + WslcTargetContainerName, + DebianImage.NameAndTag())); result.Verify({.Stderr = L"", .ExitCode = 0}); result = RunWslc(std::format(L"container run -d --name {} {} sleep infinity", WslcContainerName, DebianImage.NameAndTag())); @@ -289,9 +287,8 @@ class WSLCE2ENetworkTests auto result = RunWslc(std::format(L"network create --driver bridge {}", TestNetworkName)); result.Verify({.Stderr = L"", .ExitCode = 0}); - result = RunWslc( - std::format( - L"container run -d --network {} --name {} {} sleep infinity", TestNetworkName, WslcContainerName, DebianImage.NameAndTag())); + result = RunWslc(std::format( + L"container run -d --network {} --name {} {} sleep infinity", TestNetworkName, WslcContainerName, DebianImage.NameAndTag())); result.Verify({.Stderr = L"", .ExitCode = 0}); { From 47e9945c08305b63129719f34038b2342b297b86 Mon Sep 17 00:00:00 2001 From: Beena Chauhan Date: Mon, 20 Jul 2026 10:08:59 -0700 Subject: [PATCH 09/14] Remove unused MessageWslcAdditionalNetworksRequirePrimary from en-US --- localization/strings/en-US/Resources.resw | 4 ---- 1 file changed, 4 deletions(-) diff --git a/localization/strings/en-US/Resources.resw b/localization/strings/en-US/Resources.resw index b2833cc73b..e56db68169 100644 --- a/localization/strings/en-US/Resources.resw +++ b/localization/strings/en-US/Resources.resw @@ -2379,10 +2379,6 @@ For privacy information about this product please visit https://aka.ms/privacy.< Invalid stop timeout value: {} {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated - - Additional networks are not allowed when the primary network mode is 'host' or 'none'. - {Locked="host"}{Locked="none"}Command line arguments, file names and string inserts should not be translated - The primary network mode '{}' does not support connecting or disconnecting additional networks. {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated From 11900dc69e24db4da44b459df5c0be641da53679 Mon Sep 17 00:00:00 2001 From: Beena Chauhan Date: Mon, 20 Jul 2026 10:10:37 -0700 Subject: [PATCH 10/14] Alphabetize connect args and extract SetNetworkEndpointOptionsFromArgs --- .../wslc/commands/NetworkConnectCommand.cpp | 7 ++-- src/windows/wslc/core/ExecutionContextData.h | 3 ++ src/windows/wslc/services/NetworkModel.h | 9 +++++ src/windows/wslc/tasks/NetworkTasks.cpp | 38 +++++++++++++------ src/windows/wslc/tasks/NetworkTasks.h | 1 + 5 files changed, 43 insertions(+), 15 deletions(-) diff --git a/src/windows/wslc/commands/NetworkConnectCommand.cpp b/src/windows/wslc/commands/NetworkConnectCommand.cpp index a8a8d0a845..daee586b7d 100644 --- a/src/windows/wslc/commands/NetworkConnectCommand.cpp +++ b/src/windows/wslc/commands/NetworkConnectCommand.cpp @@ -29,11 +29,11 @@ std::vector NetworkConnectCommand::GetArguments() const return { Argument::Create(ArgType::NetworkName, true), Argument::Create(ArgType::ContainerId, true), - Argument::Create(ArgType::NetworkAlias, false, NO_LIMIT), + Argument::Create(ArgType::DriverOpt, false, NO_LIMIT), Argument::Create(ArgType::IpAddress, false), Argument::Create(ArgType::Link, false, NO_LIMIT), Argument::Create(ArgType::LinkLocalIp, false, NO_LIMIT), - Argument::Create(ArgType::DriverOpt, false, NO_LIMIT), + Argument::Create(ArgType::NetworkAlias, false, NO_LIMIT), }; } @@ -49,7 +49,8 @@ std::wstring NetworkConnectCommand::LongDescription() const void NetworkConnectCommand::ExecuteInternal(CLIExecutionContext& context) const { - context << ResolveSession // + context << ResolveSession // + << SetNetworkEndpointOptionsFromArgs // << ConnectNetwork; } } // namespace wsl::windows::wslc diff --git a/src/windows/wslc/core/ExecutionContextData.h b/src/windows/wslc/core/ExecutionContextData.h index b43018e2c9..93c185884f 100644 --- a/src/windows/wslc/core/ExecutionContextData.h +++ b/src/windows/wslc/core/ExecutionContextData.h @@ -15,6 +15,7 @@ Module Name: #include "EnumVariantMap.h" #include "ContainerModel.h" #include "ImageModel.h" +#include "NetworkModel.h" #include "SessionModel.h" #include "wslc.h" @@ -39,6 +40,7 @@ enum class Data : size_t Images, Volumes, Networks, + NetworkEndpointOptions, Max }; @@ -55,6 +57,7 @@ namespace details { DEFINE_DATA_MAPPING(Images, std::vector); DEFINE_DATA_MAPPING(Volumes, std::vector); DEFINE_DATA_MAPPING(Networks, std::vector); + DEFINE_DATA_MAPPING(NetworkEndpointOptions, wsl::windows::wslc::models::NetworkEndpointOptions); } // namespace details struct DataMap : wsl::windows::wslc::EnumBasedVariantMap diff --git a/src/windows/wslc/services/NetworkModel.h b/src/windows/wslc/services/NetworkModel.h index b670f05fe4..62eb04daef 100644 --- a/src/windows/wslc/services/NetworkModel.h +++ b/src/windows/wslc/services/NetworkModel.h @@ -30,6 +30,15 @@ struct CreateNetworkOptions std::optional Gateway; }; +struct NetworkEndpointOptions +{ + std::vector Aliases; + std::optional IpAddress; + std::vector Links; + std::vector LinkLocalIps; + std::vector DriverOpts; +}; + struct ConnectNetworkOptions { std::string NetworkName; diff --git a/src/windows/wslc/tasks/NetworkTasks.cpp b/src/windows/wslc/tasks/NetworkTasks.cpp index b25d51a1d7..dc33b3f39e 100644 --- a/src/windows/wslc/tasks/NetworkTasks.cpp +++ b/src/windows/wslc/tasks/NetworkTasks.cpp @@ -231,12 +231,37 @@ void PruneNetworks(CLIExecutionContext& context) void ConnectNetwork(CLIExecutionContext& context) { WI_ASSERT(context.Data.Contains(Data::Session)); + WI_ASSERT(context.Data.Contains(Data::NetworkEndpointOptions)); WI_ASSERT(context.Args.Contains(ArgType::NetworkName)); WI_ASSERT(context.Args.Contains(ArgType::ContainerId)); + const auto& endpoint = context.Data.Get(); models::ConnectNetworkOptions options{}; options.NetworkName = WideToMultiByte(context.Args.Get()); options.ContainerId = WideToMultiByte(context.Args.Get()); + options.Aliases = endpoint.Aliases; + options.IpAddress = endpoint.IpAddress; + options.Links = endpoint.Links; + options.LinkLocalIps = endpoint.LinkLocalIps; + options.DriverOpts = endpoint.DriverOpts; + + NetworkService::Connect(context.Data.Get(), options); +} + +void DisconnectNetwork(CLIExecutionContext& context) +{ + WI_ASSERT(context.Data.Contains(Data::Session)); + WI_ASSERT(context.Args.Contains(ArgType::NetworkName)); + WI_ASSERT(context.Args.Contains(ArgType::ContainerId)); + + const auto networkName = WideToMultiByte(context.Args.Get()); + const auto containerId = WideToMultiByte(context.Args.Get()); + NetworkService::Disconnect(context.Data.Get(), networkName, containerId); +} + +void SetNetworkEndpointOptionsFromArgs(CLIExecutionContext& context) +{ + models::NetworkEndpointOptions options{}; for (const auto& alias : context.Args.GetAll()) { @@ -263,17 +288,6 @@ void ConnectNetwork(CLIExecutionContext& context) options.DriverOpts.emplace_back(WideToMultiByte(driverOpt)); } - NetworkService::Connect(context.Data.Get(), options); -} - -void DisconnectNetwork(CLIExecutionContext& context) -{ - WI_ASSERT(context.Data.Contains(Data::Session)); - WI_ASSERT(context.Args.Contains(ArgType::NetworkName)); - WI_ASSERT(context.Args.Contains(ArgType::ContainerId)); - - const auto networkName = WideToMultiByte(context.Args.Get()); - const auto containerId = WideToMultiByte(context.Args.Get()); - NetworkService::Disconnect(context.Data.Get(), networkName, containerId); + context.Data.Add(std::move(options)); } } // namespace wsl::windows::wslc::task diff --git a/src/windows/wslc/tasks/NetworkTasks.h b/src/windows/wslc/tasks/NetworkTasks.h index ad590ae1a1..5ff66f7743 100644 --- a/src/windows/wslc/tasks/NetworkTasks.h +++ b/src/windows/wslc/tasks/NetworkTasks.h @@ -24,4 +24,5 @@ void ListNetworks(wsl::windows::wslc::execution::CLIExecutionContext& context); void PruneNetworks(wsl::windows::wslc::execution::CLIExecutionContext& context); void ConnectNetwork(wsl::windows::wslc::execution::CLIExecutionContext& context); void DisconnectNetwork(wsl::windows::wslc::execution::CLIExecutionContext& context); +void SetNetworkEndpointOptionsFromArgs(wsl::windows::wslc::execution::CLIExecutionContext& context); } // namespace wsl::windows::wslc::task From b934ce396be525333fbc125ee6ff20b5b31bb555 Mon Sep 17 00:00:00 2001 From: Beena Chauhan Date: Mon, 20 Jul 2026 10:36:46 -0700 Subject: [PATCH 11/14] Fix moved-from key in DriverOpts duplicate error message --- src/windows/wslcsession/WSLCContainer.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/windows/wslcsession/WSLCContainer.cpp b/src/windows/wslcsession/WSLCContainer.cpp index a803de81d8..318df6797f 100644 --- a/src/windows/wslcsession/WSLCContainer.cpp +++ b/src/windows/wslcsession/WSLCContainer.cpp @@ -316,9 +316,7 @@ EndpointConfig ResolveEndpointConfig(const KeyValuePair* settings, ULONG count, auto value = entry.substr(separator + 1); THROW_HR_WITH_USER_ERROR_IF(E_INVALIDARG, Localization::MessageWslcDriverOptInvalid(entry), isBlank(key)); THROW_HR_WITH_USER_ERROR_IF( - E_INVALIDARG, - Localization::MessageWslcDriverOptDuplicate(key), - !driverOpts.try_emplace(std::move(key), std::move(value)).second); + E_INVALIDARG, Localization::MessageWslcDriverOptDuplicate(key), !driverOpts.try_emplace(key, std::move(value)).second); } config.DriverOpts = std::move(driverOpts); } From 45d12c7733bf732d043773a02ef4fc3d08c1990e Mon Sep 17 00:00:00 2001 From: Beena Chauhan Date: Mon, 20 Jul 2026 12:01:48 -0700 Subject: [PATCH 12/14] Fix test --- test/windows/wslc/WSLCCLIExecutionUnitTests.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/test/windows/wslc/WSLCCLIExecutionUnitTests.cpp b/test/windows/wslc/WSLCCLIExecutionUnitTests.cpp index 9a5ca6218c..2cc25cb0ef 100644 --- a/test/windows/wslc/WSLCCLIExecutionUnitTests.cpp +++ b/test/windows/wslc/WSLCCLIExecutionUnitTests.cpp @@ -110,6 +110,12 @@ class WSLCCLIExecutionUnitTests dataMap.Add(std::move(networks)); handled = true; } + else if (dataType == Data::NetworkEndpointOptions) + { + wsl::windows::wslc::models::NetworkEndpointOptions endpointOptions; + dataMap.Add(std::move(endpointOptions)); + handled = true; + } if (!handled) { From 08dcf0841a42541bbe7f2c534313291c784d19cc Mon Sep 17 00:00:00 2001 From: Beena Chauhan Date: Mon, 20 Jul 2026 12:17:23 -0700 Subject: [PATCH 13/14] Copilot feedback --- localization/strings/en-US/Resources.resw | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/localization/strings/en-US/Resources.resw b/localization/strings/en-US/Resources.resw index e56db68169..300d2d525e 100644 --- a/localization/strings/en-US/Resources.resw +++ b/localization/strings/en-US/Resources.resw @@ -2393,7 +2393,7 @@ For privacy information about this product please visit https://aka.ms/privacy.< Invalid driver option '{}'; expected 'key=value'. - {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + {FixedPlaceholder="{}"}{Locked="key=value"}Command line arguments, file names and string inserts should not be translated Unknown endpoint setting '{}' for network '{}'. @@ -3009,17 +3009,19 @@ On first run, creates the file with all settings commented out at their defaults Set endpoint driver options (--driver-opt key=value) - {Locked="--driver-opt "}Command line arguments, file names and string inserts should not be translated + {Locked="--driver-opt "}{Locked="key=value"}Command line arguments, file names and string inserts should not be translated Assign the container an IPv4 address on the network + {Locked="IPv4"}Command line arguments, file names and string inserts should not be translated Add link to another container (--link name:alias) - {Locked="--link "}Command line arguments, file names and string inserts should not be translated + {Locked="--link "}{Locked="name:alias"}Command line arguments, file names and string inserts should not be translated Add a link-local IPv4 address for the container + {Locked="IPv4"}Command line arguments, file names and string inserts should not be translated Invalid {} value: network alias cannot be empty or whitespace From a538f1cbe6fc91f2cba5db4b38c83eb61ab0a0f7 Mon Sep 17 00:00:00 2001 From: Beena Chauhan Date: Mon, 20 Jul 2026 12:37:33 -0700 Subject: [PATCH 14/14] Fix resw comment format --- localization/strings/en-US/Resources.resw | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/localization/strings/en-US/Resources.resw b/localization/strings/en-US/Resources.resw index 300d2d525e..17e9126cbe 100644 --- a/localization/strings/en-US/Resources.resw +++ b/localization/strings/en-US/Resources.resw @@ -2393,11 +2393,11 @@ For privacy information about this product please visit https://aka.ms/privacy.< Invalid driver option '{}'; expected 'key=value'. - {FixedPlaceholder="{}"}{Locked="key=value"}Command line arguments, file names and string inserts should not be translated + {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated Unknown endpoint setting '{}' for network '{}'. - {FixedPlaceholder="{}"}{FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated + {FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated Only one IP address may be specified for network '{}'. @@ -3009,7 +3009,7 @@ On first run, creates the file with all settings commented out at their defaults Set endpoint driver options (--driver-opt key=value) - {Locked="--driver-opt "}{Locked="key=value"}Command line arguments, file names and string inserts should not be translated + {Locked="--driver-opt "}Command line arguments, file names and string inserts should not be translated Assign the container an IPv4 address on the network @@ -3017,7 +3017,7 @@ On first run, creates the file with all settings commented out at their defaults Add link to another container (--link name:alias) - {Locked="--link "}{Locked="name:alias"}Command line arguments, file names and string inserts should not be translated + {Locked="--link "}Command line arguments, file names and string inserts should not be translated Add a link-local IPv4 address for the container