Files
server/app/http/trans/trans.go
T
2026-01-16 15:49:34 +08:00

39 lines
1.1 KiB
Go

package trans
import (
"github.com/goravel/framework/contracts/http"
"github.com/goravel/framework/facades"
)
// Get 获取翻译文本(支持多语言)
// 自动尝试 messages. 前缀的翻译键
func Get(ctx http.Context, key string) string {
// 如果key已经包含 messages. 前缀,直接使用
if len(key) > 8 && key[:8] == "messages." {
message := facades.Lang(ctx).Get(key)
// 如果返回的键和输入的键相同或为空,说明没找到
if message != key && message != "" {
return message
}
return key
}
// 尝试使用 messages. 前缀的key(这是语言文件中的实际格式)
messageKey := "messages." + key
message := facades.Lang(ctx).Get(messageKey)
// 如果返回的键和输入的键不同且不为空,说明找到了
if message != messageKey && message != "" {
return message
}
// 如果带前缀的找不到,尝试直接获取(某些键可能不在messages下)
message = facades.Lang(ctx).Get(key)
if message != key && message != "" {
return message
}
// 如果还是不存在,返回原始key
return key
}