1
0
Fork 0
mirror of https://github.com/spf13/cobra synced 2025-04-22 22:57:18 +00:00

feat(i18n): localize the default usage function

This commit is contained in:
Goutte 2025-02-02 12:54:52 +01:00
parent 411323dcca
commit 8764826b7f

View file

@ -1971,25 +1971,25 @@ var defaultUsageTemplate = `{{.I18n.SectionUsage}}:{{if .Runnable}}
// defaultUsageFunc is equivalent to executing defaultUsageTemplate. The two should be changed in sync. // defaultUsageFunc is equivalent to executing defaultUsageTemplate. The two should be changed in sync.
func defaultUsageFunc(w io.Writer, in interface{}) error { func defaultUsageFunc(w io.Writer, in interface{}) error {
c := in.(*Command) c := in.(*Command)
fmt.Fprint(w, "Usage:") fmt.Fprintf(w, "%s:", gotext.Get("SectionUsage"))
if c.Runnable() { if c.Runnable() {
fmt.Fprintf(w, "\n %s", c.UseLine()) fmt.Fprintf(w, "\n %s", c.UseLine())
} }
if c.HasAvailableSubCommands() { if c.HasAvailableSubCommands() {
fmt.Fprintf(w, "\n %s [command]", c.CommandPath()) fmt.Fprintf(w, "\n %s [%s]", c.CommandPath(), gotext.Get("command"))
} }
if len(c.Aliases) > 0 { if len(c.Aliases) > 0 {
fmt.Fprintf(w, "\n\nAliases:\n") fmt.Fprintf(w, "\n\n%s:\n", gotext.Get("SectionAliases"))
fmt.Fprintf(w, " %s", c.NameAndAliases()) fmt.Fprintf(w, " %s", c.NameAndAliases())
} }
if c.HasExample() { if c.HasExample() {
fmt.Fprintf(w, "\n\nExamples:\n") fmt.Fprintf(w, "\n\n%s:\n", gotext.Get("SectionExamples"))
fmt.Fprintf(w, "%s", c.Example) fmt.Fprintf(w, "%s", c.Example)
} }
if c.HasAvailableSubCommands() { if c.HasAvailableSubCommands() {
cmds := c.Commands() cmds := c.Commands()
if len(c.Groups()) == 0 { if len(c.Groups()) == 0 {
fmt.Fprintf(w, "\n\nAvailable Commands:") fmt.Fprintf(w, "\n\n%s:", gotext.Get("SectionAvailableCommands"))
for _, subcmd := range cmds { for _, subcmd := range cmds {
if subcmd.IsAvailableCommand() || subcmd.Name() == helpCommandName { if subcmd.IsAvailableCommand() || subcmd.Name() == helpCommandName {
fmt.Fprintf(w, "\n %s %s", rpad(subcmd.Name(), subcmd.NamePadding()), subcmd.Short) fmt.Fprintf(w, "\n %s %s", rpad(subcmd.Name(), subcmd.NamePadding()), subcmd.Short)
@ -2005,7 +2005,7 @@ func defaultUsageFunc(w io.Writer, in interface{}) error {
} }
} }
if !c.AllChildCommandsHaveGroup() { if !c.AllChildCommandsHaveGroup() {
fmt.Fprintf(w, "\n\nAdditional Commands:") fmt.Fprintf(w, "\n\n%s:", gotext.Get("SectionAdditionalCommands"))
for _, subcmd := range cmds { for _, subcmd := range cmds {
if subcmd.GroupID == "" && (subcmd.IsAvailableCommand() || subcmd.Name() == helpCommandName) { if subcmd.GroupID == "" && (subcmd.IsAvailableCommand() || subcmd.Name() == helpCommandName) {
fmt.Fprintf(w, "\n %s %s", rpad(subcmd.Name(), subcmd.NamePadding()), subcmd.Short) fmt.Fprintf(w, "\n %s %s", rpad(subcmd.Name(), subcmd.NamePadding()), subcmd.Short)
@ -2015,15 +2015,15 @@ func defaultUsageFunc(w io.Writer, in interface{}) error {
} }
} }
if c.HasAvailableLocalFlags() { if c.HasAvailableLocalFlags() {
fmt.Fprintf(w, "\n\nFlags:\n") fmt.Fprintf(w, "\n\n%s:\n", gotext.Get("SectionFlags"))
fmt.Fprint(w, trimRightSpace(c.LocalFlags().FlagUsages())) fmt.Fprint(w, trimRightSpace(c.LocalFlags().FlagUsages()))
} }
if c.HasAvailableInheritedFlags() { if c.HasAvailableInheritedFlags() {
fmt.Fprintf(w, "\n\nGlobal Flags:\n") fmt.Fprintf(w, "\n\n%s:\n", gotext.Get("SectionGlobalFlags"))
fmt.Fprint(w, trimRightSpace(c.InheritedFlags().FlagUsages())) fmt.Fprint(w, trimRightSpace(c.InheritedFlags().FlagUsages()))
} }
if c.HasHelpSubCommands() { if c.HasHelpSubCommands() {
fmt.Fprintf(w, "\n\nAdditional help topcis:") fmt.Fprintf(w, "\n\n%s:", gotext.Get("SectionAdditionalHelpTopics"))
for _, subcmd := range c.Commands() { for _, subcmd := range c.Commands() {
if subcmd.IsAdditionalHelpTopicCommand() { if subcmd.IsAdditionalHelpTopicCommand() {
fmt.Fprintf(w, "\n %s %s", rpad(subcmd.CommandPath(), subcmd.CommandPathPadding()), subcmd.Short) fmt.Fprintf(w, "\n %s %s", rpad(subcmd.CommandPath(), subcmd.CommandPathPadding()), subcmd.Short)
@ -2031,7 +2031,7 @@ func defaultUsageFunc(w io.Writer, in interface{}) error {
} }
} }
if c.HasAvailableSubCommands() { if c.HasAvailableSubCommands() {
fmt.Fprintf(w, "\n\nUse \"%s [command] --help\" for more information about a command.", c.CommandPath()) fmt.Fprintf(w, "\n\n%s \"%s [command] --help\" %s.", gotext.Get("Use"), c.CommandPath(), gotext.Get("ForInfoAboutCommand"))
} }
fmt.Fprintln(w) fmt.Fprintln(w)
return nil return nil