mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 00:20:25 +08:00 
			
		
		
		
	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
This commit is contained in:
		@@ -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)
 | 
			
		||||
	})
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user