mirror of
https://github.com/1Panel-dev/KubePi.git
synced 2025-10-05 07:16:55 +08:00
41 lines
761 B
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
|
|
}
|
|
|
|
}
|