diff options
author | Gusted <williamzijl7@hotmail.com> | 2022-06-26 16:19:22 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-06-26 22:19:22 +0800 |
commit | 5d3f99c7c6d0f2c304dc13c6fa6aa675daf310cc (patch) | |
tree | b44b05216bef3051123cd6b2fd9495cee1b91ece /routers | |
parent | 711cbcce8d6a193f5738c45861d11cb86b412ec7 (diff) | |
download | gitea-5d3f99c7c6d0f2c304dc13c6fa6aa675daf310cc.tar.gz gitea-5d3f99c7c6d0f2c304dc13c6fa6aa675daf310cc.zip |
Make better use of i18n (#20096)
* Prototyping
* Start work on creating offsets
* Modify tests
* Start prototyping with actual MPH
* Twiddle around
* Twiddle around comments
* Convert templates
* Fix external languages
* Fix latest translation
* Fix some test
* Tidy up code
* Use simple map
* go mod tidy
* Move back to data structure
- Uses less memory by creating for each language a map.
* Apply suggestions from code review
Co-authored-by: delvh <dev.lh@web.de>
* Add some comments
* Fix tests
* Try to fix tests
* Use en-US as defacto fallback
* Use correct slices
* refactor (#4)
* Remove TryTr, add log for missing translation key
* Refactor i18n
- Separate dev and production locale stores.
- Allow for live-reloading in dev mode.
Co-authored-by: zeripath <art27@cantab.net>
* Fix live-reloading & check for errors
* Make linter happy
* live-reload with periodic check (#5)
* Fix tests
Co-authored-by: delvh <dev.lh@web.de>
Co-authored-by: 6543 <6543@obermui.de>
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
Co-authored-by: zeripath <art27@cantab.net>
Diffstat (limited to 'routers')
-rw-r--r-- | routers/web/admin/admin.go | 3 | ||||
-rw-r--r-- | routers/web/auth/auth.go | 4 | ||||
-rw-r--r-- | routers/web/auth/password.go | 4 | ||||
-rw-r--r-- | routers/web/dev/template.go | 4 | ||||
-rw-r--r-- | routers/web/repo/blame.go | 2 | ||||
-rw-r--r-- | routers/web/repo/issue_content_history.go | 13 | ||||
-rw-r--r-- | routers/web/user/setting/account.go | 4 | ||||
-rw-r--r-- | routers/web/user/setting/profile.go | 6 |
8 files changed, 19 insertions, 21 deletions
diff --git a/routers/web/admin/admin.go b/routers/web/admin/admin.go index 24c07b5c1c..ebe5066d2c 100644 --- a/routers/web/admin/admin.go +++ b/routers/web/admin/admin.go @@ -25,6 +25,7 @@ import ( "code.gitea.io/gitea/modules/queue" "code.gitea.io/gitea/modules/setting" "code.gitea.io/gitea/modules/timeutil" + "code.gitea.io/gitea/modules/translation" "code.gitea.io/gitea/modules/updatechecker" "code.gitea.io/gitea/modules/util" "code.gitea.io/gitea/modules/web" @@ -85,7 +86,7 @@ var sysStatus struct { } func updateSystemStatus() { - sysStatus.Uptime = timeutil.TimeSincePro(setting.AppStartTime, "en") + sysStatus.Uptime = timeutil.TimeSincePro(setting.AppStartTime, translation.NewLocale("en-US")) m := new(runtime.MemStats) runtime.ReadMemStats(m) diff --git a/routers/web/auth/auth.go b/routers/web/auth/auth.go index ea5c7232a8..213b88903d 100644 --- a/routers/web/auth/auth.go +++ b/routers/web/auth/auth.go @@ -629,7 +629,7 @@ func handleUserCreated(ctx *context.Context, u *user_model.User, gothUser *goth. ctx.Data["IsSendRegisterMail"] = true ctx.Data["Email"] = u.Email - ctx.Data["ActiveCodeLives"] = timeutil.MinutesToFriendly(setting.Service.ActiveCodeLives, ctx.Locale.Language()) + ctx.Data["ActiveCodeLives"] = timeutil.MinutesToFriendly(setting.Service.ActiveCodeLives, ctx.Locale) ctx.HTML(http.StatusOK, TplActivate) if setting.CacheService.Enabled { @@ -658,7 +658,7 @@ func Activate(ctx *context.Context) { if setting.CacheService.Enabled && ctx.Cache.IsExist("MailResendLimit_"+ctx.Doer.LowerName) { ctx.Data["ResendLimited"] = true } else { - ctx.Data["ActiveCodeLives"] = timeutil.MinutesToFriendly(setting.Service.ActiveCodeLives, ctx.Locale.Language()) + ctx.Data["ActiveCodeLives"] = timeutil.MinutesToFriendly(setting.Service.ActiveCodeLives, ctx.Locale) mailer.SendActivateAccountMail(ctx.Locale, ctx.Doer) if setting.CacheService.Enabled { diff --git a/routers/web/auth/password.go b/routers/web/auth/password.go index c41c8bd1e5..c21ca9cf69 100644 --- a/routers/web/auth/password.go +++ b/routers/web/auth/password.go @@ -63,7 +63,7 @@ func ForgotPasswdPost(ctx *context.Context) { u, err := user_model.GetUserByEmail(email) if err != nil { if user_model.IsErrUserNotExist(err) { - ctx.Data["ResetPwdCodeLives"] = timeutil.MinutesToFriendly(setting.Service.ResetPwdCodeLives, ctx.Locale.Language()) + ctx.Data["ResetPwdCodeLives"] = timeutil.MinutesToFriendly(setting.Service.ResetPwdCodeLives, ctx.Locale) ctx.Data["IsResetSent"] = true ctx.HTML(http.StatusOK, tplForgotPassword) return @@ -93,7 +93,7 @@ func ForgotPasswdPost(ctx *context.Context) { } } - ctx.Data["ResetPwdCodeLives"] = timeutil.MinutesToFriendly(setting.Service.ResetPwdCodeLives, ctx.Locale.Language()) + ctx.Data["ResetPwdCodeLives"] = timeutil.MinutesToFriendly(setting.Service.ResetPwdCodeLives, ctx.Locale) ctx.Data["IsResetSent"] = true ctx.HTML(http.StatusOK, tplForgotPassword) } diff --git a/routers/web/dev/template.go b/routers/web/dev/template.go index 29d6033a7a..afef0d8d16 100644 --- a/routers/web/dev/template.go +++ b/routers/web/dev/template.go @@ -21,8 +21,8 @@ func TemplatePreview(ctx *context.Context) { ctx.Data["AppVer"] = setting.AppVer ctx.Data["AppUrl"] = setting.AppURL ctx.Data["Code"] = "2014031910370000009fff6782aadb2162b4a997acb69d4400888e0b9274657374" - ctx.Data["ActiveCodeLives"] = timeutil.MinutesToFriendly(setting.Service.ActiveCodeLives, ctx.Locale.Language()) - ctx.Data["ResetPwdCodeLives"] = timeutil.MinutesToFriendly(setting.Service.ResetPwdCodeLives, ctx.Locale.Language()) + ctx.Data["ActiveCodeLives"] = timeutil.MinutesToFriendly(setting.Service.ActiveCodeLives, ctx.Locale) + ctx.Data["ResetPwdCodeLives"] = timeutil.MinutesToFriendly(setting.Service.ResetPwdCodeLives, ctx.Locale) ctx.Data["CurDbValue"] = "" ctx.HTML(http.StatusOK, base.TplName(ctx.Params("*"))) diff --git a/routers/web/repo/blame.go b/routers/web/repo/blame.go index e96e2142d2..06c43aec19 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.Locale.Language()) + commitSince := timeutil.TimeSinceUnix(timeutil.TimeStamp(commit.Author.When.Unix()), ctx.Locale) 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 d8a21c7fd7..a9386d274a 100644 --- a/routers/web/repo/issue_content_history.go +++ b/routers/web/repo/issue_content_history.go @@ -17,7 +17,6 @@ import ( "code.gitea.io/gitea/modules/log" "code.gitea.io/gitea/modules/setting" "code.gitea.io/gitea/modules/timeutil" - "code.gitea.io/gitea/modules/translation/i18n" "github.com/sergi/go-diff/diffmatchpatch" ) @@ -29,14 +28,13 @@ func GetContentHistoryOverview(ctx *context.Context) { return } - lang := ctx.Locale.Language() editedHistoryCountMap, _ := issues_model.QueryIssueContentHistoryEditedCountMap(ctx, issue.ID) ctx.JSON(http.StatusOK, map[string]interface{}{ "i18n": map[string]interface{}{ - "textEdited": i18n.Tr(lang, "repo.issues.content_history.edited"), - "textDeleteFromHistory": i18n.Tr(lang, "repo.issues.content_history.delete_from_history"), - "textDeleteFromHistoryConfirm": i18n.Tr(lang, "repo.issues.content_history.delete_from_history_confirm"), - "textOptions": i18n.Tr(lang, "repo.issues.content_history.options"), + "textEdited": ctx.Tr("repo.issues.content_history.edited"), + "textDeleteFromHistory": ctx.Tr("repo.issues.content_history.delete_from_history"), + "textDeleteFromHistoryConfirm": ctx.Tr("repo.issues.content_history.delete_from_history_confirm"), + "textOptions": ctx.Tr("repo.issues.content_history.options"), }, "editedHistoryCountMap": editedHistoryCountMap, }) @@ -55,7 +53,6 @@ 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.Locale.Language() var results []map[string]interface{} for _, item := range items { var actionText string @@ -67,7 +64,7 @@ func GetContentHistoryList(ctx *context.Context) { } else { actionText = ctx.Locale.Tr("repo.issues.content_history.edited") } - timeSinceText := timeutil.TimeSinceUnix(item.EditedUnix, lang) + timeSinceText := timeutil.TimeSinceUnix(item.EditedUnix, ctx.Locale) username := item.UserName if setting.UI.DefaultShowFullName && strings.TrimSpace(item.UserFullName) != "" { diff --git a/routers/web/user/setting/account.go b/routers/web/user/setting/account.go index 3e96cc7c85..cc59524fd1 100644 --- a/routers/web/user/setting/account.go +++ b/routers/web/user/setting/account.go @@ -146,7 +146,7 @@ func EmailPost(ctx *context.Context) { log.Error("Set cache(MailResendLimit) fail: %v", err) } } - ctx.Flash.Info(ctx.Tr("settings.add_email_confirmation_sent", address, timeutil.MinutesToFriendly(setting.Service.ActiveCodeLives, ctx.Locale.Language()))) + ctx.Flash.Info(ctx.Tr("settings.add_email_confirmation_sent", address, timeutil.MinutesToFriendly(setting.Service.ActiveCodeLives, ctx.Locale))) ctx.Redirect(setting.AppSubURL + "/user/settings/account") return } @@ -208,7 +208,7 @@ func EmailPost(ctx *context.Context) { log.Error("Set cache(MailResendLimit) fail: %v", err) } } - ctx.Flash.Info(ctx.Tr("settings.add_email_confirmation_sent", email.Email, timeutil.MinutesToFriendly(setting.Service.ActiveCodeLives, ctx.Locale.Language()))) + ctx.Flash.Info(ctx.Tr("settings.add_email_confirmation_sent", email.Email, timeutil.MinutesToFriendly(setting.Service.ActiveCodeLives, ctx.Locale))) } else { ctx.Flash.Success(ctx.Tr("settings.add_email_success")) } diff --git a/routers/web/user/setting/profile.go b/routers/web/user/setting/profile.go index 46399338fa..b07813e725 100644 --- a/routers/web/user/setting/profile.go +++ b/routers/web/user/setting/profile.go @@ -23,7 +23,7 @@ import ( "code.gitea.io/gitea/modules/context" "code.gitea.io/gitea/modules/log" "code.gitea.io/gitea/modules/setting" - "code.gitea.io/gitea/modules/translation/i18n" + "code.gitea.io/gitea/modules/translation" "code.gitea.io/gitea/modules/typesniffer" "code.gitea.io/gitea/modules/util" "code.gitea.io/gitea/modules/web" @@ -136,7 +136,7 @@ func ProfilePost(ctx *context.Context) { middleware.SetLocaleCookie(ctx.Resp, ctx.Doer.Language, 0) log.Trace("User settings updated: %s", ctx.Doer.Name) - ctx.Flash.Success(i18n.Tr(ctx.Doer.Language, "settings.update_profile_success")) + ctx.Flash.Success(translation.NewLocale(ctx.Doer.Language).Tr("settings.update_profile_success")) ctx.Redirect(setting.AppSubURL + "/user/settings") } @@ -425,7 +425,7 @@ func UpdateUserLang(ctx *context.Context) { middleware.SetLocaleCookie(ctx.Resp, ctx.Doer.Language, 0) log.Trace("User settings updated: %s", ctx.Doer.Name) - ctx.Flash.Success(i18n.Tr(ctx.Doer.Language, "settings.update_language_success")) + ctx.Flash.Success(translation.NewLocale(ctx.Doer.Language).Tr("settings.update_language_success")) ctx.Redirect(setting.AppSubURL + "/user/settings/appearance") } |