-
-
Notifications
You must be signed in to change notification settings - Fork 5.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Added user language setting #3875
Conversation
routers/user/setting.go
Outdated
@@ -25,6 +25,7 @@ import ( | |||
"code.gitea.io/gitea/modules/context" | |||
"code.gitea.io/gitea/modules/log" | |||
"code.gitea.io/gitea/modules/setting" | |||
"github.com/Unknwon/i18n" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fix import order
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done.
models/migrations/v62.go
Outdated
|
||
import ( | ||
"fmt" | ||
"github.com/go-xorm/xorm" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fix import order
models/migrations/migrations.go
Outdated
@@ -176,6 +176,8 @@ var migrations = []Migration{ | |||
NewMigration("add is_fsck_enabled column for repos", addFsckEnabledToRepo), | |||
// v61 -> v62 | |||
NewMigration("add size column for attachments", addSizeToAttachment), | |||
// v62 -> v63 | |||
NewMigration("add language comumn for user setting", addLanguageSetting), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fix typo
templates/user/settings/profile.tmpl
Outdated
<div class="text">{{.LangName}}</div> | ||
<div class="menu"> | ||
{{range .AllLangs}} | ||
<div class="item{{if eq $.Lang .Lang}} active selected{{end}}" data-value="{{.Lang}}">{{.Name}}</div> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You should check if .Lang
is equal with user's language in database and not with the current language.
If I set german
as my language but change it manually by selecting another language (example: english
) from the dropdown in the footer, the selected language in the form will be english
. The expected selected language should be german
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed that.
routers/user/auth.go
Outdated
@@ -333,6 +333,11 @@ func handleSignInFull(ctx *context.Context, u *models.User, remember bool, obeyR | |||
ctx.Session.Set("uid", u.ID) | |||
ctx.Session.Set("uname", u.Name) | |||
|
|||
// Language setting of the user overwrites the one previously set | |||
if u.Language != "" { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
len(u.Language) != 0
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed.
models/migrations/v62.go
Outdated
Language string `xorm:"VARCHAR(5)"` | ||
} | ||
|
||
if err := x.Sync2(new(User)); err != nil { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is it possible that if a user logs in after an upgrade of the database, the language he/she is currently using is set as language
in database? Do you think that the default language should be en_US
(at database migration)?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think empty can be left as default after migration but when first logging in if it is empty it could be set to current ui language
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I haven't thought of that, I'll implement it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done.
@kolaente Please update |
@JonasFranzDEV done. |
…rowser language is saved
Does someone know why drone doesn't picks up the right commit? |
LGTM |
Drone fail seems unrelated, the tests work on my machine. |
…user-language # Conflicts: # vendor/vendor.json
…user-language # Conflicts: # models/migrations/migrations.go # models/migrations/v62.go
…user-language # Conflicts: # models/migrations/migrations.go # models/migrations/v62.go
…TEAD OF PREDENDING TO DO SO
…TEAD OF PREDENDING TO DO SO
…into save-user-language
Codecov Report
@@ Coverage Diff @@
## master #3875 +/- ##
==========================================
+ Coverage 20.16% 20.17% +<.01%
==========================================
Files 145 145
Lines 29156 29171 +15
==========================================
+ Hits 5880 5884 +4
- Misses 22381 22393 +12
+ Partials 895 894 -1
Continue to review full report at Codecov.
|
routers/user/auth.go
Outdated
// If the user does not have a locale set, we save the current one. | ||
if len(u.Language) == 0 { | ||
u.Language = ctx.Locale.Language() | ||
if err := models.UpdateUser(u); err != nil { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You should only update language column but not all the columns.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed that.
@lunny need your approval |
* SECURITY * Limit uploaded avatar image-size to 4096x3072 by default (go-gitea#4353) * Do not allow to reuse TOTP passcode (go-gitea#3878) * FEATURE * Add cli commands to regen hooks & keys (go-gitea#3979) * Add support for FIDO U2F (go-gitea#3971) * Added user language setting (go-gitea#3875) * LDAP Public SSH Keys synchronization (go-gitea#1844) * Add topic support (go-gitea#3711) * Multiple assignees (go-gitea#3705) * Add protected branch whitelists for merging (go-gitea#3689) * Global code search support (go-gitea#3664) * Add label descriptions (go-gitea#3662) * Add issue search via API (go-gitea#3612) * Add repository setting to enable/disable health checks (go-gitea#3607) * Emoji Autocomplete (go-gitea#3433) * Implements generator cli for secrets (go-gitea#3531) * ENHANCEMENT * Add more webhooks support and refactor webhook templates directory (go-gitea#3929) * Add new option to allow only OAuth2/OpenID user registration (go-gitea#3910) * Add option to use paged LDAP search when synchronizing users (go-gitea#3895) * Symlink icons (go-gitea#1416) * Improve release page UI (go-gitea#3693) * Add admin dashboard option to run health checks (go-gitea#3606) * Add branch link in branch list (go-gitea#3576) * Reduce sql query times in retrieveFeeds (go-gitea#3547) * Option to enable or disable swagger endpoints (go-gitea#3502) * Add missing licenses (go-gitea#3497) * Reduce repo indexer disk usage (go-gitea#3452) * Enable caching on assets and avatars (go-gitea#3376) * Add repository search ordered by stars/forks. Forks column in admin repo list (go-gitea#3969) * Add Environment Variables to Docker template (go-gitea#4012) * LFS: make HTTP auth period configurable (go-gitea#4035) * Add config path as an optionial flag when changing pass via CLI (go-gitea#4184) * Refactor User Settings sections (go-gitea#3900) * Allow square brackets in external issue patterns (go-gitea#3408) * Add Attachment API (go-gitea#3478) * Add EnableTimetracking option to app settings (go-gitea#3719) * Add config option to enable or disable log executed SQL (go-gitea#3726) * Shows total tracked time in issue and milestone list (go-gitea#3341) * TRANSLATION * Improve English grammar and consistency (go-gitea#3614) * DEPLOYMENT * Allow Gitea to run as different USER in Docker (go-gitea#3961) * Provide compressed release binaries (go-gitea#3991) * Sign release binaries (go-gitea#4188)
This pr adds the possibility for users to set their language in the profile settings. When logging in, this setting overwrites the current language setting.
This feature is needed to send translatable emails in the future.
Blocked by go-gitea/go-sdk#104