summaryrefslogtreecommitdiffstats
path: root/routers
diff options
context:
space:
mode:
authorwxiaoguang <wxiaoguang@gmail.com>2022-02-08 11:02:30 +0800
committerGitHub <noreply@github.com>2022-02-08 11:02:30 +0800
commita60e8be8d15e90a44f2a746a4e8d81a81e03d2db (patch)
tree256934930648471f3eddb1e4dcf2f077aaf95e0c /routers
parent7b25a010c89835e036f1b0cc5af65249bfd2781b (diff)
downloadgitea-a60e8be8d15e90a44f2a746a4e8d81a81e03d2db.tar.gz
gitea-a60e8be8d15e90a44f2a746a4e8d81a81e03d2db.zip
Refactor i18n, use Locale to provide i18n/translation related functions (#18648)
* remove unnecessary web context data fields, and unify the i18n/translation related functions to `Locale` * in development, show an error if a translation key is missing * remove the unnecessary loops `for _, lang := range translation.AllLangs()` for every request, which improves the performance slightly * use `ctx.Locale.Language()` instead of `ctx.Data["Lang"].(string)` * add more comments about how the Locale/LangType fields are used
Diffstat (limited to 'routers')
-rw-r--r--routers/install/install.go11
-rw-r--r--routers/web/repo/blame.go2
-rw-r--r--routers/web/repo/issue_content_history.go10
3 files changed, 7 insertions, 16 deletions
diff --git a/routers/install/install.go b/routers/install/install.go
index eb2cd23463..98eeb5f8a0 100644
--- a/routers/install/install.go
+++ b/routers/install/install.go
@@ -71,25 +71,16 @@ func Init(next http.Handler) http.Handler {
Render: rnd,
Session: session.GetSession(req),
Data: map[string]interface{}{
+ "i18n": locale,
"Title": locale.Tr("install.install"),
"PageIsInstall": true,
"DbTypeNames": getDbTypeNames(),
- "i18n": locale,
- "Language": locale.Language(),
- "Lang": locale.Language(),
"AllLangs": translation.AllLangs(),
- "CurrentURL": setting.AppSubURL + req.URL.RequestURI(),
"PageStartTime": startTime,
"PasswordHashAlgorithms": user_model.AvailableHashAlgorithms,
},
}
- for _, lang := range translation.AllLangs() {
- if lang.Lang == locale.Language() {
- ctx.Data["LangName"] = lang.Name
- break
- }
- }
ctx.Req = context.WithContext(req, &ctx)
next.ServeHTTP(resp, ctx.Req)
})
diff --git a/routers/web/repo/blame.go b/routers/web/repo/blame.go
index 588e432e3a..e96e2142d2 100644
--- a/routers/web/repo/blame.go
+++ b/routers/web/repo/blame.go
@@ -255,7 +255,7 @@ func renderBlame(ctx *context.Context, blameParts []git.BlamePart, commitNames m
commitCnt++
// User avatar image
- commitSince := timeutil.TimeSinceUnix(timeutil.TimeStamp(commit.Author.When.Unix()), ctx.Data["Lang"].(string))
+ commitSince := timeutil.TimeSinceUnix(timeutil.TimeStamp(commit.Author.When.Unix()), ctx.Locale.Language())
var avatar string
if commit.User != nil {
diff --git a/routers/web/repo/issue_content_history.go b/routers/web/repo/issue_content_history.go
index 75951ca25b..5b5aced6ec 100644
--- a/routers/web/repo/issue_content_history.go
+++ b/routers/web/repo/issue_content_history.go
@@ -29,7 +29,7 @@ func GetContentHistoryOverview(ctx *context.Context) {
return
}
- lang := ctx.Data["Lang"].(string)
+ lang := ctx.Locale.Language()
editedHistoryCountMap, _ := issuesModel.QueryIssueContentHistoryEditedCountMap(db.DefaultContext, issue.ID)
ctx.JSON(http.StatusOK, map[string]interface{}{
"i18n": map[string]interface{}{
@@ -55,17 +55,17 @@ func GetContentHistoryList(ctx *context.Context) {
// render history list to HTML for frontend dropdown items: (name, value)
// name is HTML of "avatar + userName + userAction + timeSince"
// value is historyId
- lang := ctx.Data["Lang"].(string)
+ lang := ctx.Locale.Language()
var results []map[string]interface{}
for _, item := range items {
var actionText string
if item.IsDeleted {
- actionTextDeleted := i18n.Tr(lang, "repo.issues.content_history.deleted")
+ actionTextDeleted := ctx.Locale.Tr("repo.issues.content_history.deleted")
actionText = "<i data-history-is-deleted='1'>" + actionTextDeleted + "</i>"
} else if item.IsFirstCreated {
- actionText = i18n.Tr(lang, "repo.issues.content_history.created")
+ actionText = ctx.Locale.Tr("repo.issues.content_history.created")
} else {
- actionText = i18n.Tr(lang, "repo.issues.content_history.edited")
+ actionText = ctx.Locale.Tr("repo.issues.content_history.edited")
}
timeSinceText := timeutil.TimeSinceUnix(item.EditedUnix, lang)
results = append(results, map[string]interface{}{