- 48 个 Go 文件所有注释(行注释/块注释/行尾注释,含 _test.go)翻译为中文 - 保留技术标识符:SECURITY_TODO(n)、unsafe-inline、sqlite/mysql、路由参数等 - 代码、字符串字面量、日志消息保持英文原文,零逻辑改动 - go build/vet 通过,go test -count=1 ./... 全绿
37 lines
1.2 KiB
Go
37 lines
1.2 KiB
Go
package models
|
|
|
|
import "time"
|
|
|
|
// NavLink 表示页头中的自定义导航链接。
|
|
type NavLink struct {
|
|
ID uint `gorm:"primarykey" json:"id"`
|
|
TitleZh string `gorm:"size:100;not null" json:"title_zh"` // 链接文本(中文)
|
|
TitleEn string `gorm:"size:100;not null" json:"title_en"` // 链接文本(英文)
|
|
URL string `gorm:"size:512;not null" json:"url"` // 目标 URL
|
|
OpenNew bool `gorm:"default:false" json:"open_new"` // 在新窗口中打开
|
|
Enabled bool `gorm:"default:true" json:"enabled"` // 显示/隐藏链接
|
|
Sort int `gorm:"default:0;index" json:"sort"` // 显示顺序(数值越小越靠前)
|
|
CreatedAt time.Time `json:"created_at"`
|
|
UpdatedAt time.Time `json:"updated_at"`
|
|
UpdatedBy uint `gorm:"index" json:"updated_by"`
|
|
}
|
|
|
|
// TableName 覆盖 GORM 默认的表名。
|
|
func (NavLink) TableName() string {
|
|
return "nav_links"
|
|
}
|
|
|
|
// Title 返回指定语言代码下的链接文本,当所请求语言为空时回退到另一语言。
|
|
func (n *NavLink) Title(lang string) string {
|
|
if lang == "zh" {
|
|
if n.TitleZh != "" {
|
|
return n.TitleZh
|
|
}
|
|
return n.TitleEn
|
|
}
|
|
if n.TitleEn != "" {
|
|
return n.TitleEn
|
|
}
|
|
return n.TitleZh
|
|
}
|