Files
KubePi/pkg/i18n/i18n.go

41 lines
761 B
Go

package i18n
import "fmt"
const (
LanguageZhCN = "zh-CN"
LanguageEnUS = "en-US"
)
type TextMapping map[string]string
type LangMap map[string]TextMapping
var langMapping = map[string]TextMapping{
LanguageZhCN: zhCNMapping,
LanguageEnUS: enUSMapping,
}
func Translate(lang string, key string, v ...interface{}) (string, error) {
mapping := langMapping[lang]
if mapping == nil {
return "", fmt.Errorf("can not translate to language %s, key: %s", lang, key)
}
msg := mapping[key]
if msg == "" {
return "", fmt.Errorf("can not find i18n key %s", key)
}
if len(v) > 0 {
ks := v[0].([]string)
var iks []interface{}
for i := range ks {
iks = append(iks, ks[i])
}
return fmt.Sprintf(msg, iks...), nil
} else {
return msg, nil
}
}