32 lines
661 B
Go
32 lines
661 B
Go
package basic
|
||
|
||
import (
|
||
"reflect"
|
||
"strings"
|
||
)
|
||
|
||
func GetLangString(param any) string {
|
||
// 获取参数的反射值
|
||
value := reflect.ValueOf(param)
|
||
|
||
// 如果参数是指针,则获取指针指向的值
|
||
if value.Kind() == reflect.Ptr {
|
||
value = value.Elem()
|
||
}
|
||
|
||
// 如果参数是结构体
|
||
if value.Kind() == reflect.Struct {
|
||
// 通过字段名获取字段值
|
||
langField := value.FieldByName("Lang")
|
||
|
||
// 如果字段存在并且是字符串类型
|
||
if langField.IsValid() && langField.Kind() == reflect.String {
|
||
return strings.TrimSpace(langField.String())
|
||
}
|
||
}
|
||
|
||
// 如果无法获取有效的字符串值,则返回zh_cn
|
||
|
||
return "zh_cn"
|
||
}
|