Load all localization files and allow sdk to choose the local language to use

This commit is contained in:
sophia 2022-05-11 12:37:58 -05:00
parent d9b2cb16e0
commit 361f4ba9ba

View File

@ -78,42 +78,39 @@ func (c *DoThing) Flags() component.CommandFlags {
DefaultValue: "a default message value",
Type: component.FlagString,
},
{
LongName: "spanish",
ShortName: "e",
Description: "make messages spanish",
DefaultValue: "false",
Type: component.FlagBool,
},
}
}
func (c *DoThing) Execute(trm terminal.UI, params *component.CommandParams) int32 {
isSpanish := false
if val, ok := params.Flags["spanish"]; ok {
isSpanish = val.(bool)
localeDataEN, err := locales.Asset("locales/assets/en.json")
if err != nil {
return 1
}
var l *localizer.Localizer
if isSpanish {
localeData, err := locales.Asset("locales/assets/es.json")
if err != nil {
return 1
}
l, err = localizer.NewPluginLocalizer(language.Spanish, localeData, "locales/assets/es.json", trm)
if err != nil {
return 1
}
} else {
localeData, err := locales.Asset("locales/assets/en.json")
if err != nil {
return 1
}
l, err = localizer.NewPluginLocalizer(language.English, localeData, "locales/assets/en.json", trm)
if err != nil {
return 1
}
localeDataES, err := locales.Asset("locales/assets/es.json")
if err != nil {
return 1
}
d := []localizer.LocaleData{
{
LocaleData: localeDataEN,
LocalePath: "locales/assets/en.json",
Languages: []language.Tag{language.English, language.AmericanEnglish, language.BritishEnglish},
},
{
LocaleData: localeDataES,
LocalePath: "locales/assets/es.json",
Languages: []language.Tag{language.Spanish},
},
}
l, err := localizer.NewPluginLocalizer(trm, d...)
if err != nil {
return 1
}
err = l.Output("dothing", nil)
if err != nil {
trm.Output(err.Error())
return 1
}
l.Output("dothing", nil)
return 0
}