Add short subcommand aliases and EN/RU CLI localization

Subcommands gain one/two-letter aliases (dl, i, e, v, h) alongside
their full names. CLI-owned chrome - top-level usage, per-subcommand
usage lines, progress messages, and the license prompt - now goes
through internal/i18n, an env-driven message catalog (MSVC_GO_WINE_LANG,
falling back to the standard LC_ALL/LC_MESSAGES/LANG locale variables)
with English and Russian translations. Deeper error text from internal
packages stays in English.

Also refreshed the top-level usage text, which hadn't kept up with
--with-wdk/--list-workloads/--list-components/--print-deps-tree.
This commit is contained in:
Cheviiot
2026-07-25 03:31:59 +10:00
parent 8551d7fe99
commit 23ea620ce2
5 changed files with 206 additions and 38 deletions
+3 -2
View File
@@ -6,6 +6,7 @@ import (
"os"
"strings"
"github.com/Cheviiot/msvc-go-wine/internal/i18n"
"github.com/Cheviiot/msvc-go-wine/internal/wineenv"
)
@@ -20,7 +21,7 @@ func runEnv(args []string) int {
return 2
}
if *bin == "" {
fmt.Fprintln(os.Stderr, "usage: msvc-go-wine env --bin <dest>/bin/<arch>")
fmt.Fprintln(os.Stderr, i18n.T("env.usage"))
return 1
}
@@ -38,7 +39,7 @@ func runEnv(args []string) int {
triple, ok := targetTriples[cfg.Arch]
if !ok {
fmt.Fprintf(os.Stderr, "msvc-go-wine env: unknown arch %q\n", cfg.Arch)
fmt.Fprint(os.Stderr, i18n.T("env.unknown_arch", cfg.Arch))
return 1
}