Skip to content

Commit ee9de3a

Browse files
authored
Merge pull request #680 from shiqstone/master
Update to support internationalization
2 parents 2a57b8d + f02ff93 commit ee9de3a

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

81 files changed

+3168
-1602
lines changed

commands/command.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import (
2222
"github.com/beego/beego/v2/client/orm"
2323
"github.com/beego/beego/v2/core/logs"
2424
"github.com/beego/beego/v2/server/web"
25+
"github.com/beego/i18n"
2526
"github.com/howeyc/fsnotify"
2627
"github.com/lifei6671/gocaptcha"
2728
"github.com/mindoc-org/mindoc/cache"
@@ -268,6 +269,19 @@ func RegisterFunction() {
268269
logs.Error("注册函数 date_format 出错 ->", err)
269270
os.Exit(-1)
270271
}
272+
273+
err = web.AddFuncMap("i18n", i18n.Tr)
274+
if err != nil {
275+
logs.Error("注册函数 i18n 出错 ->", err)
276+
os.Exit(-1)
277+
}
278+
langs := strings.Split("en-us|zh-cn", "|")
279+
for _, lang := range langs {
280+
if err := i18n.SetMessage(lang, "conf/lang/"+lang+".ini"); err != nil {
281+
logs.Error("Fail to set message file: " + err.Error())
282+
return
283+
}
284+
}
271285
}
272286

273287
//解析命令

commands/install.go

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ import (
1010

1111
"github.com/beego/beego/v2/client/orm"
1212
"github.com/beego/beego/v2/core/logs"
13+
"github.com/beego/beego/v2/server/web"
14+
"github.com/beego/i18n"
1315
"github.com/mindoc-org/mindoc/conf"
1416
"github.com/mindoc-org/mindoc/models"
1517
"github.com/mindoc-org/mindoc/utils"
@@ -96,11 +98,16 @@ func ModifyPassword() {
9698
func initialization() {
9799

98100
err := models.NewOption().Init()
99-
100101
if err != nil {
101102
panic(err.Error())
102103
}
103104

105+
lang, _ := web.AppConfig.String("default_lang")
106+
err = i18n.SetMessage(lang, "conf/lang/"+lang+".ini")
107+
if err != nil {
108+
panic(fmt.Errorf("initialize locale error: %s", err))
109+
}
110+
104111
member, err := models.NewMember().FindByFieldFirst("account", "admin")
105112
if errors.Is(err, orm.ErrNoRows) {
106113

@@ -122,10 +129,10 @@ func initialization() {
122129
book := models.NewBook()
123130

124131
book.MemberId = member.MemberId
125-
book.BookName = "MinDoc演示项目"
132+
book.BookName = i18n.Tr(lang, "init.default_proj_name") //"MinDoc演示项目"
126133
book.Status = 0
127134
book.ItemId = 1
128-
book.Description = "这是一个MinDoc演示项目,该项目是由系统初始化时自动创建。"
135+
book.Description = i18n.Tr(lang, "init.default_proj_desc") //"这是一个MinDoc演示项目,该项目是由系统初始化时自动创建。"
129136
book.CommentCount = 0
130137
book.PrivatelyOwned = 0
131138
book.CommentStatus = "closed"
@@ -137,7 +144,7 @@ func initialization() {
137144
book.Editor = "markdown"
138145
book.Theme = "default"
139146

140-
if err := book.Insert(); err != nil {
147+
if err := book.Insert(lang); err != nil {
141148
panic("初始化项目失败 -> " + err.Error())
142149
}
143150
} else if err != nil {
@@ -146,7 +153,7 @@ func initialization() {
146153

147154
if !models.NewItemsets().Exist(1) {
148155
item := models.NewItemsets()
149-
item.ItemName = "默认项目空间"
156+
item.ItemName = i18n.Tr(lang, "init.default_proj_space") //"默认项目空间"
150157
item.MemberId = 1
151158
if err := item.Save(); err != nil {
152159
panic("初始化项目空间失败 -> " + err.Error())

conf/app.conf.example

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,7 @@ dingtalk_qr_key="${MINDOC_DINGTALK_QRKEY}"
230230
# 钉钉扫码登录Secret
231231
dingtalk_qr_secret="${MINDOC_DINGTALK_QRSECRET}"
232232

233-
233+
# i18n config
234+
default_lang="zh-cn"
234235

235236

0 commit comments

Comments
 (0)