mirror of
				https://codeberg.org/forgejo/forgejo.git
				synced 2025-10-31 14:31:02 +00:00 
			
		
		
		
	Fix switch language (#14484)
Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: Lauris BH <lauris@nix.lv>
This commit is contained in:
		
					parent
					
						
							
								af7f71207c
							
						
					
				
			
			
				commit
				
					
						669ff8e9b1
					
				
			
		
					 1 changed files with 4 additions and 6 deletions
				
			
		|  | @ -15,24 +15,22 @@ import ( | |||
| 
 | ||||
| // Locale handle locale | ||||
| func Locale(resp http.ResponseWriter, req *http.Request) translation.Locale { | ||||
| 	hasCookie := false | ||||
| 
 | ||||
| 	// 1. Check URL arguments. | ||||
| 	lang := req.URL.Query().Get("lang") | ||||
| 	var changeLang = lang != "" | ||||
| 
 | ||||
| 	// 2. Get language information from cookies. | ||||
| 	if len(lang) == 0 { | ||||
| 		ck, _ := req.Cookie("lang") | ||||
| 		if ck != nil { | ||||
| 			lang = ck.Value | ||||
| 			hasCookie = true | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	// Check again in case someone modify by purpose. | ||||
| 	if lang != "" && !i18n.IsExist(lang) { | ||||
| 		lang = "" | ||||
| 		hasCookie = false | ||||
| 		changeLang = false | ||||
| 	} | ||||
| 
 | ||||
| 	// 3. Get language information from 'Accept-Language'. | ||||
|  | @ -43,8 +41,8 @@ func Locale(resp http.ResponseWriter, req *http.Request) translation.Locale { | |||
| 		lang = tag.String() | ||||
| 	} | ||||
| 
 | ||||
| 	if !hasCookie { | ||||
| 		req.AddCookie(NewCookie("lang", lang, 1<<31-1)) | ||||
| 	if changeLang { | ||||
| 		SetCookie(resp, "lang", lang, 1<<31-1) | ||||
| 	} | ||||
| 
 | ||||
| 	return translation.NewLocale(lang) | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue