aboutsummaryrefslogtreecommitdiffstats
path: root/templates/user
diff options
context:
space:
mode:
authordelvh <dev.lh@web.de>2023-09-25 10:56:50 +0200
committerGitHub <noreply@github.com>2023-09-25 08:56:50 +0000
commit7960ba7e2bbe2eb6f98f6d99f2ce105468cdf56e (patch)
treecfcc4836ba1bb71518742f2aaf980f1f34248468 /templates/user
parente6d8b146207de0f5d88b7c08dc75b1f2f078cbbe (diff)
downloadgitea-7960ba7e2bbe2eb6f98f6d99f2ce105468cdf56e.tar.gz
gitea-7960ba7e2bbe2eb6f98f6d99f2ce105468cdf56e.zip
Always use `ctx.Locale.Tr` inside templates (#27231)
Diffstat (limited to 'templates/user')
-rw-r--r--templates/user/auth/activate.tmpl24
-rw-r--r--templates/user/auth/captcha.tmpl2
-rw-r--r--templates/user/auth/change_passwd_inner.tmpl8
-rw-r--r--templates/user/auth/finalize_openid.tmpl14
-rw-r--r--templates/user/auth/forgot_passwd.tmpl14
-rw-r--r--templates/user/auth/grant.tmpl10
-rw-r--r--templates/user/auth/grant_error.tmpl4
-rw-r--r--templates/user/auth/link_account.tmpl4
-rw-r--r--templates/user/auth/prohibit_login.tmpl4
-rw-r--r--templates/user/auth/reset_passwd.tmpl22
-rw-r--r--templates/user/auth/signin_inner.tmpl22
-rw-r--r--templates/user/auth/signin_navbar.tmpl4
-rw-r--r--templates/user/auth/signin_openid.tmpl6
-rw-r--r--templates/user/auth/signup_inner.tmpl24
-rw-r--r--templates/user/auth/signup_openid_connect.tmpl12
-rw-r--r--templates/user/auth/signup_openid_navbar.tmpl4
-rw-r--r--templates/user/auth/signup_openid_register.tmpl10
-rw-r--r--templates/user/auth/twofa.tmpl8
-rw-r--r--templates/user/auth/twofa_scratch.tmpl6
-rw-r--r--templates/user/auth/webauthn.tmpl10
-rw-r--r--templates/user/auth/webauthn_error.tmpl16
-rw-r--r--templates/user/dashboard/feeds.tmpl52
-rw-r--r--templates/user/dashboard/issues.tmpl44
-rw-r--r--templates/user/dashboard/milestones.tmpl40
-rw-r--r--templates/user/dashboard/navbar.tmpl36
-rw-r--r--templates/user/dashboard/repolist.tmpl66
-rw-r--r--templates/user/heatmap.tmpl8
-rw-r--r--templates/user/notification/notification_div.tmpl16
-rw-r--r--templates/user/notification/notification_subscriptions.tmpl38
-rw-r--r--templates/user/overview/header.tmpl22
-rw-r--r--templates/user/profile.tmpl2
-rw-r--r--templates/user/settings/account.tmpl68
-rw-r--r--templates/user/settings/appearance.tmpl50
-rw-r--r--templates/user/settings/applications.tmpl46
-rw-r--r--templates/user/settings/applications_oauth2.tmpl2
-rw-r--r--templates/user/settings/applications_oauth2_edit_form.tmpl22
-rw-r--r--templates/user/settings/applications_oauth2_list.tmpl24
-rw-r--r--templates/user/settings/grants_oauth2.tmpl12
-rw-r--r--templates/user/settings/hook_new.tmpl4
-rw-r--r--templates/user/settings/keys_gpg.tmpl64
-rw-r--r--templates/user/settings/keys_principal.tmpl24
-rw-r--r--templates/user/settings/keys_ssh.tmpl50
-rw-r--r--templates/user/settings/navbar.tmpl30
-rw-r--r--templates/user/settings/organization.tmpl12
-rw-r--r--templates/user/settings/packages.tmpl8
-rw-r--r--templates/user/settings/profile.tmpl62
-rw-r--r--templates/user/settings/repos.tmpl26
-rw-r--r--templates/user/settings/security/accountlinks.tmpl14
-rw-r--r--templates/user/settings/security/openid.tmpl18
-rw-r--r--templates/user/settings/security/twofa.tmpl22
-rw-r--r--templates/user/settings/security/twofa_enroll.tmpl12
-rw-r--r--templates/user/settings/security/webauthn.tmpl14
52 files changed, 568 insertions, 568 deletions
diff --git a/templates/user/auth/activate.tmpl b/templates/user/auth/activate.tmpl
index 3261836ee0..1b06719753 100644
--- a/templates/user/auth/activate.tmpl
+++ b/templates/user/auth/activate.tmpl
@@ -5,42 +5,42 @@
<form class="ui form ignore-dirty" action="{{AppSubUrl}}/user/activate" method="post">
{{.CsrfTokenHtml}}
<h2 class="ui top attached header">
- {{.locale.Tr "auth.active_your_account"}}
+ {{ctx.Locale.Tr "auth.active_your_account"}}
</h2>
<div class="ui attached segment">
{{template "base/alert" .}}
{{if .IsActivatePage}}
{{if .ServiceNotEnabled}}
- <p class="center">{{.locale.Tr "auth.disable_register_mail"}}</p>
+ <p class="center">{{ctx.Locale.Tr "auth.disable_register_mail"}}</p>
{{else if .ResendLimited}}
- <p class="center">{{.locale.Tr "auth.resent_limit_prompt"}}</p>
+ <p class="center">{{ctx.Locale.Tr "auth.resent_limit_prompt"}}</p>
{{else}}
- <p>{{.locale.Tr "auth.confirmation_mail_sent_prompt" (.SignedUser.Email|Escape) .ActiveCodeLives | Str2html}}</p>
+ <p>{{ctx.Locale.Tr "auth.confirmation_mail_sent_prompt" (.SignedUser.Email|Escape) .ActiveCodeLives | Str2html}}</p>
{{end}}
{{else}}
{{if .NeedsPassword}}
<div class="required inline field">
- <label for="password">{{.locale.Tr "password"}}</label>
+ <label for="password">{{ctx.Locale.Tr "password"}}</label>
<input id="password" name="password" type="password" autocomplete="off" required>
</div>
<div class="inline field">
<label></label>
- <button class="ui primary button">{{.locale.Tr "install.confirm_password"}}</button>
+ <button class="ui primary button">{{ctx.Locale.Tr "install.confirm_password"}}</button>
</div>
<input id="code" name="code" type="hidden" value="{{.Code}}">
{{else if .IsSendRegisterMail}}
- <p>{{.locale.Tr "auth.confirmation_mail_sent_prompt" (.Email|Escape) .ActiveCodeLives | Str2html}}</p>
+ <p>{{ctx.Locale.Tr "auth.confirmation_mail_sent_prompt" (.Email|Escape) .ActiveCodeLives | Str2html}}</p>
{{else if .IsCodeInvalid}}
- <p>{{.locale.Tr "auth.invalid_code"}}</p>
+ <p>{{ctx.Locale.Tr "auth.invalid_code"}}</p>
{{else if .IsPasswordInvalid}}
- <p>{{.locale.Tr "auth.invalid_password"}}</p>
+ <p>{{ctx.Locale.Tr "auth.invalid_password"}}</p>
{{else if .ManualActivationOnly}}
- <p class="center">{{.locale.Tr "auth.manual_activation_only"}}</p>
+ <p class="center">{{ctx.Locale.Tr "auth.manual_activation_only"}}</p>
{{else}}
- <p>{{.locale.Tr "auth.has_unconfirmed_mail" (.SignedUser.Name|Escape) (.SignedUser.Email|Escape) | Str2html}}</p>
+ <p>{{ctx.Locale.Tr "auth.has_unconfirmed_mail" (.SignedUser.Name|Escape) (.SignedUser.Email|Escape) | Str2html}}</p>
<div class="divider"></div>
<div class="text right">
- <button class="ui primary button">{{.locale.Tr "auth.resend_mail"}}</button>
+ <button class="ui primary button">{{ctx.Locale.Tr "auth.resend_mail"}}</button>
</div>
{{end}}
{{end}}
diff --git a/templates/user/auth/captcha.tmpl b/templates/user/auth/captcha.tmpl
index f864aa1d37..c4e58d0134 100644
--- a/templates/user/auth/captcha.tmpl
+++ b/templates/user/auth/captcha.tmpl
@@ -4,7 +4,7 @@
{{.Captcha.CreateHTML}}
</div>
<div class="required inline field {{if .Err_Captcha}}error{{end}}">
- <label for="captcha">{{.locale.Tr "captcha"}}</label>
+ <label for="captcha">{{ctx.Locale.Tr "captcha"}}</label>
<input id="captcha" name="captcha" value="{{.captcha}}" autocomplete="off">
</div>
{{else if eq .CaptchaType "recaptcha"}}
diff --git a/templates/user/auth/change_passwd_inner.tmpl b/templates/user/auth/change_passwd_inner.tmpl
index 317a031f6b..cffc798a64 100644
--- a/templates/user/auth/change_passwd_inner.tmpl
+++ b/templates/user/auth/change_passwd_inner.tmpl
@@ -2,22 +2,22 @@
{{template "base/alert" .}}
{{end}}
<h4 class="ui top attached header center">
- {{.locale.Tr "settings.change_password"}}
+ {{ctx.Locale.Tr "settings.change_password"}}
</h4>
<div class="ui attached segment">
<form class="ui form" action="{{.ChangePasscodeLink}}" method="post">
{{.CsrfTokenHtml}}
<div class="required inline field {{if and (.Err_Password) (or (not .LinkAccountMode) (and .LinkAccountMode .LinkAccountModeSignIn))}}error{{end}}">
- <label for="password">{{.locale.Tr "password"}}</label>
+ <label for="password">{{ctx.Locale.Tr "password"}}</label>
<input id="password" name="password" type="password" value="{{.password}}" autocomplete="new-password" required>
</div>
<div class="required inline field {{if and (.Err_Password) (or (not .LinkAccountMode) (and .LinkAccountMode .LinkAccountModeRegister))}}error{{end}}">
- <label for="retype">{{.locale.Tr "re_type"}}</label>
+ <label for="retype">{{ctx.Locale.Tr "re_type"}}</label>
<input id="retype" name="retype" type="password" autocomplete="new-password" required>
</div>
<div class="inline field">
<label></label>
- <button class="ui primary button">{{.locale.Tr "settings.change_password"}}</button>
+ <button class="ui primary button">{{ctx.Locale.Tr "settings.change_password"}}</button>
</div>
</form>
</div>
diff --git a/templates/user/auth/finalize_openid.tmpl b/templates/user/auth/finalize_openid.tmpl
index e81a565507..7449e3beda 100644
--- a/templates/user/auth/finalize_openid.tmpl
+++ b/templates/user/auth/finalize_openid.tmpl
@@ -6,36 +6,36 @@
<div class="twelve wide column content">
{{template "base/alert" .}}
<h4 class="ui top attached header">
- {{.locale.Tr "auth.login_userpass"}}
+ {{ctx.Locale.Tr "auth.login_userpass"}}
</h4>
<div class="ui attached segment">
<form class="ui form" action="{{.Link}}" method="post">
{{.CsrfTokenHtml}}
<div class="required inline field {{if .Err_UserName}}error{{end}}">
- <label for="user_name">{{.locale.Tr "home.uname_holder"}}</label>
+ <label for="user_name">{{ctx.Locale.Tr "home.uname_holder"}}</label>
<input id="user_name" type="text" name="user_name" value="{{.user_name}}" autofocus required>
</div>
<div class="required inline field {{if .Err_Password}}error{{end}}">
- <label for="password">{{.locale.Tr "password"}}</label>
+ <label for="password">{{ctx.Locale.Tr "password"}}</label>
<input id="password" name="password" type="password" value="{{.password}}" autocomplete="off" required>
</div>
<div class="inline field">
<label></label>
<div class="ui checkbox">
- <label>{{.locale.Tr "auth.remember_me"}}</label>
+ <label>{{ctx.Locale.Tr "auth.remember_me"}}</label>
<input name="remember" type="checkbox">
</div>
</div>
<div class="inline field">
<label></label>
- <button class="ui primary button">{{.locale.Tr "sign_in"}}</button>
- <a href="{{AppSubUrl}}/user/forget_password">{{.locale.Tr "auth.forget_password"}}</a>
+ <button class="ui primary button">{{ctx.Locale.Tr "sign_in"}}</button>
+ <a href="{{AppSubUrl}}/user/forget_password">{{ctx.Locale.Tr "auth.forget_password"}}</a>
</div>
{{if .ShowRegistrationButton}}
<div class="inline field">
<label></label>
- <a href="{{AppSubUrl}}/user/sign_up">{{.locale.Tr "auth.sign_up_now" | Str2html}}</a>
+ <a href="{{AppSubUrl}}/user/sign_up">{{ctx.Locale.Tr "auth.sign_up_now" | Str2html}}</a>
</div>
{{end}}
</form>
diff --git a/templates/user/auth/forgot_passwd.tmpl b/templates/user/auth/forgot_passwd.tmpl
index 38d15c20d3..dde4c8f6fe 100644
--- a/templates/user/auth/forgot_passwd.tmpl
+++ b/templates/user/auth/forgot_passwd.tmpl
@@ -5,32 +5,32 @@
<form class="ui form ignore-dirty" action="{{.Link}}" method="post">
{{.CsrfTokenHtml}}
<h2 class="ui top attached header">
- {{.locale.Tr "auth.forgot_password_title"}}
+ {{ctx.Locale.Tr "auth.forgot_password_title"}}
</h2>
<div class="ui attached segment">
{{template "base/alert" .}}
{{if .IsResetSent}}
- <p>{{.locale.Tr "auth.reset_password_mail_sent_prompt" (Escape .Email) .ResetPwdCodeLives | Str2html}}</p>
+ <p>{{ctx.Locale.Tr "auth.reset_password_mail_sent_prompt" (Escape .Email) .ResetPwdCodeLives | Str2html}}</p>
{{else if .IsResetRequest}}
<div class="required inline field {{if .Err_Email}}error{{end}}">
- <label for="email">{{.locale.Tr "email"}}</label>
+ <label for="email">{{ctx.Locale.Tr "email"}}</label>
<input id="email" name="email" type="email" value="{{.Email}}" autofocus required>
</div>
<div class="divider"></div>
<div class="inline field">
<label></label>
- <button class="ui primary button">{{.locale.Tr "auth.send_reset_mail"}}</button>
+ <button class="ui primary button">{{ctx.Locale.Tr "auth.send_reset_mail"}}</button>
</div>
{{else if .IsResetDisable}}
<p class="center">
{{if $.IsAdmin}}
- {{.locale.Tr "auth.disable_forgot_password_mail_admin"}}
+ {{ctx.Locale.Tr "auth.disable_forgot_password_mail_admin"}}
{{else}}
- {{.locale.Tr "auth.disable_forgot_password_mail"}}
+ {{ctx.Locale.Tr "auth.disable_forgot_password_mail"}}
{{end}}
</p>
{{else if .ResendLimited}}
- <p class="center">{{.locale.Tr "auth.resent_limit_prompt"}}</p>
+ <p class="center">{{ctx.Locale.Tr "auth.resent_limit_prompt"}}</p>
{{end}}
</div>
</form>
diff --git a/templates/user/auth/grant.tmpl b/templates/user/auth/grant.tmpl
index 28c5740be0..9d80026916 100644
--- a/templates/user/auth/grant.tmpl
+++ b/templates/user/auth/grant.tmpl
@@ -3,17 +3,17 @@
<div class="column seven wide">
<div class="ui middle centered raised segments">
<h3 class="ui top attached header">
- {{.locale.Tr "auth.authorize_title" .Application.Name}}
+ {{ctx.Locale.Tr "auth.authorize_title" .Application.Name}}
</h3>
<div class="ui attached segment">
{{template "base/alert" .}}
<p>
- <b>{{.locale.Tr "auth.authorize_application_description"}}</b><br>
- {{.locale.Tr "auth.authorize_application_created_by" .ApplicationCreatorLinkHTML | Str2html}}
+ <b>{{ctx.Locale.Tr "auth.authorize_application_description"}}</b><br>
+ {{ctx.Locale.Tr "auth.authorize_application_created_by" .ApplicationCreatorLinkHTML | Str2html}}
</p>
</div>
<div class="ui attached segment">
- <p>{{.locale.Tr "auth.authorize_redirect_notice" .ApplicationRedirectDomainHTML | Str2html}}</p>
+ <p>{{ctx.Locale.Tr "auth.authorize_redirect_notice" .ApplicationRedirectDomainHTML | Str2html}}</p>
</div>
<div class="ui attached segment">
<form method="post" action="{{AppSubUrl}}/login/oauth/grant">
@@ -23,7 +23,7 @@
<input type="hidden" name="scope" value="{{.Scope}}">
<input type="hidden" name="nonce" value="{{.Nonce}}">
<input type="hidden" name="redirect_uri" value="{{.RedirectURI}}">
- <button type="submit" id="authorize-app" value="{{.locale.Tr "auth.authorize_application"}}" class="ui red inline button">{{.locale.Tr "auth.authorize_application"}}</button>
+ <button type="submit" id="authorize-app" value="{{ctx.Locale.Tr "auth.authorize_application"}}" class="ui red inline button">{{.locale.Tr "auth.authorize_application"}}</button>
<a href="{{.RedirectURI}}" class="ui basic primary inline button">Cancel</a>
</form>
</div>
diff --git a/templates/user/auth/grant_error.tmpl b/templates/user/auth/grant_error.tmpl
index cfb7e8663b..b2e077960c 100644
--- a/templates/user/auth/grant_error.tmpl
+++ b/templates/user/auth/grant_error.tmpl
@@ -4,11 +4,11 @@
<div class="column seven wide">
<div class="ui middle centered raised segments">
<h1 class="ui top attached header">
- {{.locale.Tr "auth.authorization_failed"}}
+ {{ctx.Locale.Tr "auth.authorization_failed"}}
</h1>
<h3 class="ui attached segment">{{.Error.ErrorDescription}}</h3>
<div class="ui attached segment">
- <p>{{.locale.Tr "auth.authorization_failed_desc"}}</p>
+ <p>{{ctx.Locale.Tr "auth.authorization_failed_desc"}}</p>
</div>
</div>
</div>
diff --git a/templates/user/auth/link_account.tmpl b/templates/user/auth/link_account.tmpl
index 1e059f6814..5235cbf69f 100644
--- a/templates/user/auth/link_account.tmpl
+++ b/templates/user/auth/link_account.tmpl
@@ -6,12 +6,12 @@
{{if not .AllowOnlyInternalRegistration}}
<a class="item {{if not .user_exists}}active{{end}}"
data-tab="auth-link-signup-tab">
- {{.locale.Tr "auth.oauth_signup_tab"}}
+ {{ctx.Locale.Tr "auth.oauth_signup_tab"}}
</a>
{{end}}
<a class="item {{if .user_exists}}active{{end}}"
data-tab="auth-link-signin-tab">
- {{.locale.Tr "auth.oauth_signin_tab"}}
+ {{ctx.Locale.Tr "auth.oauth_signin_tab"}}
</a>
</div>
</div>
diff --git a/templates/user/auth/prohibit_login.tmpl b/templates/user/auth/prohibit_login.tmpl
index ddb16a7f26..668aa20e71 100644
--- a/templates/user/auth/prohibit_login.tmpl
+++ b/templates/user/auth/prohibit_login.tmpl
@@ -4,10 +4,10 @@
<div class="column">
<form class="ui form">
<h2 class="ui top attached header">
- {{.locale.Tr "auth.prohibit_login"}}
+ {{ctx.Locale.Tr "auth.prohibit_login"}}
</h2>
<div class="ui attached segment">
- <p>{{.locale.Tr "auth.prohibit_login_desc"}}</p>
+ <p>{{ctx.Locale.Tr "auth.prohibit_login_desc"}}</p>
</div>
</form>
</div>
diff --git a/templates/user/auth/reset_passwd.tmpl b/templates/user/auth/reset_passwd.tmpl
index d7734bc57f..2f470df441 100644
--- a/templates/user/auth/reset_passwd.tmpl
+++ b/templates/user/auth/reset_passwd.tmpl
@@ -6,44 +6,44 @@
{{.CsrfTokenHtml}}
<input name="code" type="hidden" value="{{.Code}}">
<h2 class="ui top attached header">
- {{.locale.Tr "auth.reset_password"}}
+ {{ctx.Locale.Tr "auth.reset_password"}}
</h2>
<div class="ui attached segment">
{{template "base/alert" .}}
{{if .user_email}}
<div class="inline field">
- <label for="user_name">{{.locale.Tr "email"}}</label>
+ <label for="user_name">{{ctx.Locale.Tr "email"}}</label>
<input id="user_name" type="text" value="{{.user_email}}" disabled>
</div>
{{end}}
{{if .IsResetForm}}
<div class="required inline field {{if .Err_Password}}error{{end}}">
- <label for="password">{{.locale.Tr "settings.new_password"}}</label>
+ <label for="password">{{ctx.Locale.Tr "settings.new_password"}}</label>
<input id="password" name="password" type="password" value="{{.password}}" autocomplete="new-password" autofocus required>
</div>
{{if not .user_signed_in}}
<div class="inline field">
<label></label>
<div class="ui checkbox">
- <label>{{.locale.Tr "auth.remember_me"}}</label>
+ <label>{{ctx.Locale.Tr "auth.remember_me"}}</label>
<input name="remember" type="checkbox">
</div>
</div>
{{end}}
{{if .has_two_factor}}
<h4 class="ui dividing header">
- {{.locale.Tr "twofa"}}
+ {{ctx.Locale.Tr "twofa"}}
</h4>
- <div class="ui warning visible message">{{.locale.Tr "settings.twofa_is_enrolled" | Str2html}}</div>
+ <div class="ui warning visible message">{{ctx.Locale.Tr "settings.twofa_is_enrolled" | Str2html}}</div>
{{if .scratch_code}}
<div class="required inline field {{if .Err_Token}}error{{end}}">
- <label for="token">{{.locale.Tr "auth.scratch_code"}}</label>
+ <label for="token">{{ctx.Locale.Tr "auth.scratch_code"}}</label>
<input id="token" name="token" type="text" autocomplete="off" autofocus required>
</div>
<input type="hidden" name="scratch_code" value="true">
{{else}}
<div class="required inline field {{if .Err_Passcode}}error{{end}}">
- <label for="passcode">{{.locale.Tr "passcode"}}</label>
+ <label for="passcode">{{ctx.Locale.Tr "passcode"}}</label>
<input id="passcode" name="passcode" type="number" autocomplete="off" autofocus required>
</div>
{{end}}
@@ -51,13 +51,13 @@
<div class="divider"></div>
<div class="inline field">
<label></label>
- <button class="ui primary button">{{.locale.Tr "auth.reset_password_helper"}}</button>
+ <button class="ui primary button">{{ctx.Locale.Tr "auth.reset_password_helper"}}</button>
{{if and .has_two_factor (not .scratch_code)}}
- <a href="{{.Link}}?code={{.Code}}&amp;scratch_code=true">{{.locale.Tr "auth.use_scratch_code" | Str2html}}</a>
+ <a href="{{.Link}}?code={{.Code}}&amp;scratch_code=true">{{ctx.Locale.Tr "auth.use_scratch_code" | Str2html}}</a>
{{end}}
</div>
{{else}}
- <p class="center">{{.locale.Tr "auth.invalid_code_forgot_password" (printf "%s/user/forgot_password" AppSubUrl) | Str2html}}</p>
+ <p class="center">{{ctx.Locale.Tr "auth.invalid_code_forgot_password" (printf "%s/user/forgot_password" AppSubUrl) | Str2html}}</p>
{{end}}
</div>
</form>
diff --git a/templates/user/auth/signin_inner.tmpl b/templates/user/auth/signin_inner.tmpl
index 2b72f119cb..f38b0a2608 100644
--- a/templates/user/auth/signin_inner.tmpl
+++ b/templates/user/auth/signin_inner.tmpl
@@ -3,21 +3,21 @@
{{end}}
<h4 class="ui top attached header center">
{{if .LinkAccountMode}}
- {{.locale.Tr "auth.oauth_signin_title"}}
+ {{ctx.Locale.Tr "auth.oauth_signin_title"}}
{{else}}
- {{.locale.Tr "auth.login_userpass"}}
+ {{ctx.Locale.Tr "auth.login_userpass"}}
{{end}}
</h4>
<div class="ui attached segment">
<form class="ui form" action="{{.SignInLink}}" method="post">
{{.CsrfTokenHtml}}
<div class="required inline field {{if and (.Err_UserName) (or (not .LinkAccountMode) (and .LinkAccountMode .LinkAccountModeSignIn))}}error{{end}}">
- <label for="user_name">{{.locale.Tr "home.uname_holder"}}</label>
+ <label for="user_name">{{ctx.Locale.Tr "home.uname_holder"}}</label>
<input id="user_name" type="text" name="user_name" value="{{.user_name}}" autofocus required>
</div>
{{if or (not .DisablePassword) .LinkAccountMode}}
<div class="required inline field {{if and (.Err_Password) (or (not .LinkAccountMode) (and .LinkAccountMode .LinkAccountModeSignIn))}}error{{end}}">
- <label for="password">{{.locale.Tr "password"}}</label>
+ <label for="password">{{ctx.Locale.Tr "password"}}</label>
<input id="password" name="password" type="password" value="{{.password}}" autocomplete="current-password" required>
</div>
{{end}}
@@ -25,7 +25,7 @@
<div class="inline field">
<label></label>
<div class="ui checkbox">
- <label>{{.locale.Tr "auth.remember_me"}}</label>
+ <label>{{ctx.Locale.Tr "auth.remember_me"}}</label>
<input name="remember" type="checkbox">
</div>
</div>
@@ -37,24 +37,24 @@
<label></label>
<button class="ui primary button">
{{if .LinkAccountMode}}
- {{.locale.Tr "auth.oauth_signin_submit"}}
+ {{ctx.Locale.Tr "auth.oauth_signin_submit"}}
{{else}}
- {{.locale.Tr "sign_in"}}
+ {{ctx.Locale.Tr "sign_in"}}
{{end}}
</button>
- <a href="{{AppSubUrl}}/user/forgot_password">{{.locale.Tr "auth.forgot_password"}}</a>
+ <a href="{{AppSubUrl}}/user/forgot_password">{{ctx.Locale.Tr "auth.forgot_password"}}</a>
</div>
{{if .ShowRegistrationButton}}
<div class="inline field">
<label></label>
- <a href="{{AppSubUrl}}/user/sign_up">{{.locale.Tr "auth.sign_up_now" | Str2html}}</a>
+ <a href="{{AppSubUrl}}/user/sign_up">{{ctx.Locale.Tr "auth.sign_up_now" | Str2html}}</a>
</div>
{{end}}
{{if and .OrderedOAuth2Names .OAuth2Providers}}
<div class="divider divider-text">
- {{.locale.Tr "sign_in_or"}}
+ {{ctx.Locale.Tr "sign_in_or"}}
</div>
<div id="oauth2-login-navigator" class="gt-py-2">
<div class="gt-df gt-fc gt-jc">
@@ -63,7 +63,7 @@
{{$provider := index $.OAuth2Providers $key}}
<a class="{{$provider.Name}} ui button gt-df gt-ac gt-jc gt-py-3 oauth-login-link" href="{{AppSubUrl}}/user/oauth2/{{$key}}">
{{$provider.IconHTML 28}}
- {{$.locale.Tr "sign_in_with_provider" $provider.DisplayName}}
+ {{ctx.Locale.Tr "sign_in_with_provider" $provider.DisplayName}}
</a>
{{end}}
</div>
diff --git a/templates/user/auth/signin_navbar.tmpl b/templates/user/auth/signin_navbar.tmpl
index 84574aa2c2..bc7fd03e13 100644
--- a/templates/user/auth/signin_navbar.tmpl
+++ b/templates/user/auth/signin_navbar.tmpl
@@ -2,10 +2,10 @@
<div class="ui secondary pointing tabular top attached borderless menu new-menu navbar">
<div class="new-menu-inner">
<a class="{{if .PageIsLogin}}active {{end}}item" rel="nofollow" href="{{AppSubUrl}}/user/login">
- {{.locale.Tr "auth.login_userpass"}}
+ {{ctx.Locale.Tr "auth.login_userpass"}}
</a>
<a class="{{if .PageIsSignUp}}active{{end}} item" rel="nofollow" href="{{AppSubUrl}}/user/sign_up">
- {{.locale.Tr "auth.create_new_account"}}
+ {{ctx.Locale.Tr "auth.create_new_account"}}
</a>
{{if .EnableOpenIDSignIn}}
<a class="{{if .PageIsLoginOpenID}}active {{end}}item" rel="nofollow" href="{{AppSubUrl}}/user/login/openid">
diff --git a/templates/user/auth/signin_openid.tmpl b/templates/user/auth/signin_openid.tmpl
index e1017dca28..0428026aa8 100644
--- a/templates/user/auth/signin_openid.tmpl
+++ b/templates/user/auth/signin_openid.tmpl
@@ -11,7 +11,7 @@
<form class="ui form" action="{{.Link}}" method="post">
{{.CsrfTokenHtml}}
<div class="inline field">
- {{.locale.Tr "auth.openid_signin_desc"}}
+ {{ctx.Locale.Tr "auth.openid_signin_desc"}}
</div>
<div class="required inline field {{if .Err_OpenID}}error{{end}}">
<label for="openid">
@@ -23,13 +23,13 @@
<div class="inline field">
<label></label>
<div class="ui checkbox">
- <label>{{.locale.Tr "auth.remember_me"}}</label>
+ <label>{{ctx.Locale.Tr "auth.remember_me"}}</label>
<input name="remember" type="checkbox">
</div>
</div>
<div class="inline field">
<label></label>
- <button class="ui primary button">{{.locale.Tr "sign_in"}}</button>
+ <button class="ui primary button">{{ctx.Locale.Tr "sign_in"}}</button>
</div>
</form>
</div>
diff --git a/templates/user/auth/signup_inner.tmpl b/templates/user/auth/signup_inner.tmpl
index e3dd337837..068ccbc618 100644
--- a/templates/user/auth/signup_inner.tmpl
+++ b/templates/user/auth/signup_inner.tmpl
@@ -1,9 +1,9 @@
<div class="ui container column fluid{{if .LinkAccountMode}} icon{{end}}">
<h4 class="ui top attached header center">
{{if .LinkAccountMode}}
- {{.locale.Tr "auth.oauth_signup_title"}}
+ {{ctx.Locale.Tr "auth.oauth_signup_title"}}
{{else}}
- {{.locale.Tr "sign_up"}}
+ {{ctx.Locale.Tr "sign_up"}}
{{end}}
</h4>
<div class="ui attached segment">
@@ -13,24 +13,24 @@
{{template "base/alert" .}}
{{end}}
{{if .DisableRegistration}}
- <p>{{.locale.Tr "auth.disable_register_prompt"}}</p>
+ <p>{{ctx.Locale.Tr "auth.disable_register_prompt"}}</p>
{{else}}
<div class="required inline field {{if and (.Err_UserName) (or (not .LinkAccountMode) (and .LinkAccountMode .LinkAccountModeRegister))}}error{{end}}">
- <label for="user_name">{{.locale.Tr "username"}}</label>
+ <label for="user_name">{{ctx.Locale.Tr "username"}}</label>
<input id="user_name" type="text" name="user_name" value="{{.user_name}}" autofocus required>
</div>
<div class="required inline field {{if .Err_Email}}error{{end}}">
- <label for="email">{{.locale.Tr "email"}}</label>
+ <label for="email">{{ctx.Locale.Tr "email"}}</label>
<input id="email" name="email" type="email" value="{{.email}}" required>
</div>
{{if not .DisablePassword}}
<div class="required inline field {{if and (.Err_Password) (or (not .LinkAccountMode) (and .LinkAccountMode .LinkAccountModeRegister))}}error{{end}}">
- <label for="password">{{.locale.Tr "password"}}</label>
+ <label for="password">{{ctx.Locale.Tr "password"}}</label>
<input id="password" name="password" type="password" value="{{.password}}" autocomplete="new-password" required>
</div>
<div class="required inline field {{if and (.Err_Password) (or (not .LinkAccountMode) (and .LinkAccountMode .LinkAccountModeRegister))}}error{{end}}">
- <label for="retype">{{.locale.Tr "re_type"}}</label>
+ <label for="retype">{{ctx.Locale.Tr "re_type"}}</label>
<input id="retype" name="retype" type="password" value="{{.retype}}" autocomplete="new-password" required>
</div>
{{end}}
@@ -41,9 +41,9 @@
<label></label>
<button class="ui primary button">
{{if .LinkAccountMode}}
- {{.locale.Tr "auth.oauth_signup_submit"}}
+ {{ctx.Locale.Tr "auth.oauth_signup_submit"}}
{{else}}
- {{.locale.Tr "auth.create_new_account"}}
+ {{ctx.Locale.Tr "auth.create_new_account"}}
{{end}}
</button>
</div>
@@ -51,14 +51,14 @@
{{if not .LinkAccountMode}}
<div class="inline field">
<label></label>
- <a href="{{AppSubUrl}}/user/login">{{.locale.Tr "auth.register_helper_msg"}}</a>
+ <a href="{{AppSubUrl}}/user/login">{{ctx.Locale.Tr "auth.register_helper_msg"}}</a>
</div>
{{end}}
{{end}}
{{if and .OrderedOAuth2Names .OAuth2Providers}}
<div class="divider divider-text">
- {{.locale.Tr "sign_in_or"}}
+ {{ctx.Locale.Tr "sign_in_or"}}
</div>
<div id="oauth2-login-navigator" class="gt-py-2">
<div class="gt-df gt-fc gt-jc">
@@ -67,7 +67,7 @@
{{$provider := index $.OAuth2Providers $key}}
<a class="{{$provider.Name}} ui button gt-df gt-ac gt-jc gt-py-3 oauth-login-link" href="{{AppSubUrl}}/user/oauth2/{{$key}}">
{{$provider.IconHTML 28}}
- {{$.locale.Tr "sign_in_with_provider" $provider.DisplayName}}
+ {{ctx.Locale.Tr "sign_in_with_provider" $provider.DisplayName}}
</a>
{{end}}
</div>
diff --git a/templates/user/auth/signup_openid_connect.tmpl b/templates/user/auth/signup_openid_connect.tmpl
index 1a470415c6..e4b7936374 100644
--- a/templates/user/auth/signup_openid_connect.tmpl
+++ b/templates/user/auth/signup_openid_connect.tmpl
@@ -4,20 +4,20 @@
<div class="ui container">
{{template "base/alert" .}}
<h4 class="ui top attached header">
- {{.locale.Tr "auth.openid_connect_title"}}
+ {{ctx.Locale.Tr "auth.openid_connect_title"}}
</h4>
<div class="ui attached segment">
<p>
- {{.locale.Tr "auth.openid_connect_desc"}}
+ {{ctx.Locale.Tr "auth.openid_connect_desc"}}
</p>
<form class="ui form" action="{{.Link}}" method="post">
{{.CsrfTokenHtml}}
<div class="required inline field {{if .Err_UserName}}error{{end}}">
- <label for="user_name">{{.locale.Tr "home.uname_holder"}}</label>
+ <label for="user_name">{{ctx.Locale.Tr "home.uname_holder"}}</label>
<input id="user_name" type="text" name="user_name" value="{{.user_name}}" autofocus required>
</div>
<div class="required inline field {{if .Err_Password}}error{{end}}">
- <label for="password">{{.locale.Tr "password"}}</label>
+ <label for="password">{{ctx.Locale.Tr "password"}}</label>
<input id="password" name="password" type="password" value="{{.password}}" autocomplete="off" required>
</div>
<div class="inline field">
@@ -26,8 +26,8 @@
</div>
<div class="inline field">
<label></label>
- <button class="ui primary button">{{.locale.Tr "auth.openid_connect_submit"}}</button>
- <a href="{{AppSubUrl}}/user/forgot_password">{{.locale.Tr "auth.forgot_password"}}</a>
+ <button class="ui primary button">{{ctx.Locale.Tr "auth.openid_connect_submit"}}</button>
+ <a href="{{AppSubUrl}}/user/forgot_password">{{ctx.Locale.Tr "auth.forgot_password"}}</a>
</div>
</form>
</div>
diff --git a/templates/user/auth/signup_openid_navbar.tmpl b/templates/user/auth/signup_openid_navbar.tmpl
index f52c3ed6a0..075f2e4d7b 100644
--- a/templates/user/auth/signup_openid_navbar.tmpl
+++ b/templates/user/auth/signup_openid_navbar.tmpl
@@ -1,11 +1,11 @@
<div class="ui secondary pointing tabular top attached borderless menu new-menu navbar">
<div class="new-menu-inner">
<a class="{{if .PageIsOpenIDConnect}}active {{end}}item" href="{{AppSubUrl}}/user/openid/connect">
- {{.locale.Tr "auth.openid_connect_title"}}
+ {{ctx.Locale.Tr "auth.openid_connect_title"}}
</a>
{{if and .EnableOpenIDSignUp (not .AllowOnlyInternalRegistration)}}
<a class="{{if .PageIsOpenIDRegister}}active {{end}}item" href="{{AppSubUrl}}/user/openid/register">
- {{.locale.Tr "auth.openid_register_title"}}
+ {{ctx.Locale.Tr "auth.openid_register_title"}}
</a>
{{end}}
</div>
diff --git a/templates/user/auth/signup_openid_register.tmpl b/templates/user/auth/signup_openid_register.tmpl
index 9736c53ed8..81c36957d1 100644
--- a/templates/user/auth/signup_openid_register.tmpl
+++ b/templates/user/auth/signup_openid_register.tmpl
@@ -4,20 +4,20 @@
<div class="ui container">
{{template "base/alert" .}}
<h4 class="ui top attached header">
- {{.locale.Tr "auth.openid_register_title"}}
+ {{ctx.Locale.Tr "auth.openid_register_title"}}
</h4>
<div class="ui attached segment">
<p>
- {{.locale.Tr "auth.openid_register_desc"}}
+ {{ctx.Locale.Tr "auth.openid_register_desc"}}
</p>
<form class="ui form" action="{{.Link}}" method="post">
{{.CsrfTokenHtml}}
<div class="required inline field {{if .Err_UserName}}error{{end}}">
- <label for="user_name">{{.locale.Tr "username"}}</label>
+ <label for="user_name">{{ctx.Locale.Tr "username"}}</label>
<input id="user_name" type="text" name="user_name" value="{{.user_name}}" autofocus required>
</div>
<div class="required inline field {{if .Err_Email}}error{{end}}">
- <label for="email">{{.locale.Tr "email"}}</label>
+ <label for="email">{{ctx.Locale.Tr "email"}}</label>
<input id="email" name="email" type="email" value="{{.email}}" required>
</div>
@@ -29,7 +29,7 @@
</div>
<div class="inline field">
<label></label>
- <button class="ui primary button">{{.locale.Tr "auth.create_new_account"}}</button>
+ <button class="ui primary button">{{ctx.Locale.Tr "auth.create_new_account"}}</button>
</div>
</form>
</div>
diff --git a/templates/user/auth/twofa.tmpl b/templates/user/auth/twofa.tmpl
index e303580956..d325114155 100644
--- a/templates/user/auth/twofa.tmpl
+++ b/templates/user/auth/twofa.tmpl
@@ -5,19 +5,19 @@
<form class="ui form" action="{{.Link}}" method="post">
{{.CsrfTokenHtml}}
<h3 class="ui top attached header">
- {{.locale.Tr "twofa"}}
+ {{ctx.Locale.Tr "twofa"}}
</h3>
<div class="ui attached segment">
{{template "base/alert" .}}
<div class="required inline field">
- <label for="passcode">{{.locale.Tr "passcode"}}</label>
+ <label for="passcode">{{ctx.Locale.Tr "passcode"}}</label>
<input id="passcode" name="passcode" type="text" autocomplete="one-time-code" inputmode="numeric" pattern="[0-9]*" autofocus required>
</div>
<div class="inline field">
<label></label>
- <button class="ui primary button">{{.locale.Tr "auth.verify"}}</button>
- <a href="{{AppSubUrl}}/user/two_factor/scratch">{{.locale.Tr "auth.use_scratch_code" | Str2html}}</a>
+ <button class="ui primary button">{{ctx.Locale.Tr "auth.verify"}}</button>
+ <a href="{{AppSubUrl}}/user/two_factor/scratch">{{ctx.Locale.Tr "auth.use_scratch_code" | Str2html}}</a>
</div>
</div>
</form>
diff --git a/templates/user/auth/twofa_scratch.tmpl b/templates/user/auth/twofa_scratch.tmpl
index 58942050f5..1aa044b4a5 100644
--- a/templates/user/auth/twofa_scratch.tmpl
+++ b/templates/user/auth/twofa_scratch.tmpl
@@ -5,18 +5,18 @@
<form class="ui form" action="{{.Link}}" method="post">
{{.CsrfTokenHtml}}
<h3 class="ui top attached header">
- {{.locale.Tr "twofa_scratch"}}
+ {{ctx.Locale.Tr "twofa_scratch"}}
</h3>
<div class="ui attached segment">
{{template "base/alert" .}}
<div class="required inline field">
- <label for="token">{{.locale.Tr "auth.scratch_code"}}</label>
+ <label for="token">{{ctx.Locale.Tr "auth.scratch_code"}}</label>
<input id="token" name="token" type="text" autocomplete="off" autofocus required>
</div>
<div class="inline field">
<label></label>
- <button class="ui primary button">{{.locale.Tr "auth.verify"}}</button>
+ <button class="ui primary button">{{ctx.Locale.Tr "auth.verify"}}</button>
</div>
</div>
</form>
diff --git a/templates/user/auth/webauthn.tmpl b/templates/user/auth/webauthn.tmpl
index c689f9c6d4..f738937025 100644
--- a/templates/user/auth/webauthn.tmpl
+++ b/templates/user/auth/webauthn.tmpl
@@ -3,19 +3,19 @@
<div class="ui page grid">
<div class="column center aligned">
{{template "user/auth/webauthn_error" .}}
- <h3 class="ui top attached header">{{.locale.Tr "twofa"}}</h3>
+ <h3 class="ui top attached header">{{ctx.Locale.Tr "twofa"}}</h3>
<div class="ui attached segment">
{{svg "octicon-key" 56}}
- <h3>{{.locale.Tr "webauthn_insert_key"}}</h3>
+ <h3>{{ctx.Locale.Tr "webauthn_insert_key"}}</h3>
{{template "base/alert" .}}
- <p>{{.locale.Tr "webauthn_sign_in"}}</p>
+ <p>{{ctx.Locale.Tr "webauthn_sign_in"}}</p>
</div>
<div class="ui attached segment gt-df gt-ac gt-jc gt-gap-2 gt-py-3">
<div class="is-loading" style="width: 40px; height: 40px"></div>
- {{.locale.Tr "webauthn_press_button"}}
+ {{ctx.Locale.Tr "webauthn_press_button"}}
</div>
<div class="ui attached segment">
- <a href="{{AppSubUrl}}/user/two_factor">{{.locale.Tr "webauthn_use_twofa"}}</a>
+ <a href="{{AppSubUrl}}/user/two_factor">{{ctx.Locale.Tr "webauthn_use_twofa"}}</a>
</div>
</div>
</div>
diff --git a/templates/user/auth/webauthn_error.tmpl b/templates/user/auth/webauthn_error.tmpl
index 59029bbf91..fc6064db76 100644
--- a/templates/user/auth/webauthn_error.tmpl
+++ b/templates/user/auth/webauthn_error.tmpl
@@ -1,13 +1,13 @@
<div id="webauthn-error" class="ui negative message gt-hidden">
- <div class="header">{{.locale.Tr "webauthn_error"}}</div>
+ <div class="header">{{ctx.Locale.Tr "webauthn_error"}}</div>
<div id="webauthn-error-msg" class="gt-pt-3"></div>
<div class="gt-hidden">
- <div data-webauthn-error-msg="browser">{{.locale.Tr "webauthn_unsupported_browser"}}</div>
- <div data-webauthn-error-msg="unknown">{{.locale.Tr "webauthn_error_unknown"}}</div>
- <div data-webauthn-error-msg="insecure">{{.locale.Tr "webauthn_error_insecure"}}</div>
- <div data-webauthn-error-msg="unable-to-process">{{.locale.Tr "webauthn_error_unable_to_process"}}</div>
- <div data-webauthn-error-msg="duplicated">{{.locale.Tr "webauthn_error_duplicated"}}</div>
- <div data-webauthn-error-msg="empty">{{.locale.Tr "webauthn_error_empty"}}</div>
- <div data-webauthn-error-msg="timeout">{{.locale.Tr "webauthn_error_timeout"}}</div>
+ <div data-webauthn-error-msg="browser">{{ctx.Locale.Tr "webauthn_unsupported_browser"}}</div>
+ <div data-webauthn-error-msg="unknown">{{ctx.Locale.Tr "webauthn_error_unknown"}}</div>
+ <div data-webauthn-error-msg="insecure">{{ctx.Locale.Tr "webauthn_error_insecure"}}</div>
+ <div data-webauthn-error-msg="unable-to-process">{{ctx.Locale.Tr "webauthn_error_unable_to_process"}}</div>
+ <div data-webauthn-error-msg="duplicated">{{ctx.Locale.Tr "webauthn_error_duplicated"}}</div>
+ <div data-webauthn-error-msg="empty">{{ctx.Locale.Tr "webauthn_error_empty"}}</div>
+ <div data-webauthn-error-msg="timeout">{{ctx.Locale.Tr "webauthn_error_timeout"}}</div>
</div>
</div>
diff --git a/templates/user/dashboard/feeds.tmpl b/templates/user/dashboard/feeds.tmpl
index 1c5a5f3237..81406515e5 100644
--- a/templates/user/dashboard/feeds.tmpl
+++ b/templates/user/dashboard/feeds.tmpl
@@ -12,71 +12,71 @@
{{.ShortActUserName}}
{{end}}
{{if .GetOpType.InActions "create_repo"}}
- {{$.locale.Tr "action.create_repo" (.GetRepoLink|Escape) (.ShortRepoPath|Escape) | Str2html}}
+ {{ctx.Locale.Tr "action.create_repo" (.GetRepoLink|Escape) (.ShortRepoPath|Escape) | Str2html}}
{{else if .GetOpType.InActions "rename_repo"}}
- {{$.locale.Tr "action.rename_repo" (.GetContent|Escape) (.GetRepoLink|Escape) (.ShortRepoPath|Escape) | Str2html}}
+ {{ctx.Locale.Tr "action.rename_repo" (.GetContent|Escape) (.GetRepoLink|Escape) (.ShortRepoPath|Escape) | Str2html}}
{{else if .GetOpType.InActions "commit_repo"}}
{{if .Content}}
- {{$.locale.Tr "action.commit_repo" (.GetRepoLink|Escape) (.GetRefLink|Escape) (Escape .GetBranch) (.ShortRepoPath|Escape) | Str2html}}
+ {{ctx.Locale.Tr "action.commit_repo" (.GetRepoLink|Escape) (.GetRefLink|Escape) (Escape .GetBranch) (.ShortRepoPath|Escape) | Str2html}}
{{else}}
- {{$.locale.Tr "action.create_branch" (.GetRepoLink|Escape) (.GetRefLink|Escape) (Escape .GetBranch) (.ShortRepoPath|Escape) | Str2html}}
+ {{ctx.Locale.Tr "action.create_branch" (.GetRepoLink|Escape) (.GetRefLink|Escape) (Escape .GetBranch) (.ShortRepoPath|Escape) | Str2html}}
{{end}}
{{else if .GetOpType.InActions "create_issue"}}
{{$index := index .GetIssueInfos 0}}
- {{$.locale.Tr "action.create_issue" ((printf "%s/issues/%s" .GetRepoLink $index) |Escape) $index (.ShortRepoPath|Escape) | Str2html}}
+ {{ctx.Locale.Tr "action.create_issue" ((printf "%s/issues/%s" .GetRepoLink $index) |Escape) $index (.ShortRepoPath|Escape) | Str2html}}
{{else if .GetOpType.InActions "create_pull_request"}}
{{$index := index .GetIssueInfos 0}}
- {{$.locale.Tr "action.create_pull_request" ((printf "%s/pulls/%s" .GetRepoLink $index) |Escape) $index (.ShortRepoPath|Escape) | Str2html}}
+ {{ctx.Locale.Tr "action.create_pull_request" ((printf "%s/pulls/%s" .GetRepoLink $index) |Escape) $index (.ShortRepoPath|Escape) | Str2html}}
{{else if .GetOpType.InActions "transfer_repo"}}
- {{$.locale.Tr "action.transfer_repo" .GetContent (.GetRepoLink|Escape) (.ShortRepoPath|Escape) | Str2html}}
+ {{ctx.Locale.Tr "action.transfer_repo" .GetContent (.GetRepoLink|Escape) (.ShortRepoPath|Escape) | Str2html}}
{{else if .GetOpType.InActions "push_tag"}}
- {{$.locale.Tr "action.push_tag" (.GetRepoLink|Escape) (.GetRefLink|Escape) (.GetTag|Escape) (.ShortRepoPath|Escape) | Str2html}}
+ {{ctx.Locale.Tr "action.push_tag" (.GetRepoLink|Escape) (.GetRefLink|Escape) (.GetTag|Escape) (.ShortRepoPath|Escape) | Str2html}}
{{else if .GetOpType.InActions "comment_issue"}}
{{$index := index .GetIssueInfos 0}}
- {{$.locale.Tr "action.comment_issue" ((printf "%s/issues/%s" .GetRepoLink $index) |Escape) $index (.ShortRepoPath|Escape) | Str2html}}
+ {{ctx.Locale.Tr "action.comment_issue" ((printf "%s/issues/%s" .GetRepoLink $index) |Escape) $index (.ShortRepoPath|Escape) | Str2html}}
{{else if .GetOpType.InActions "merge_pull_request"}}
{{$index := index .GetIssueInfos 0}}
- {{$.locale.Tr "action.merge_pull_request" ((printf "%s/pulls/%s" .GetRepoLink $index) |Escape) $index (.ShortRepoPath|Escape) | Str2html}}
+ {{ctx.Locale.Tr "action.merge_pull_request" ((printf "%s/pulls/%s" .GetRepoLink $index) |Escape) $index (.ShortRepoPath|Escape) | Str2html}}
{{else if .GetOpType.InActions "close_issue"}}
{{$index := index .GetIssueInfos 0}}
- {{$.locale.Tr "action.close_issue" ((printf "%s/issues/%s" .GetRepoLink $index) |Escape) $index (.ShortRepoPath|Escape) | Str2html}}
+ {{ctx.Locale.Tr "action.close_issue" ((printf "%s/issues/%s" .GetRepoLink $index) |Escape) $index (.ShortRepoPath|Escape) | Str2html}}
{{else if .GetOpType.InActions "reopen_issue"}}
{{$index := index .GetIssueInfos 0}}
- {{$.locale.Tr "action.reopen_issue" ((printf "%s/issues/%s" .GetRepoLink $index) |Escape) $index (.ShortRepoPath|Escape) | Str2html}}
+ {{ctx.Locale.Tr "action.reopen_issue" ((printf "%s/issues/%s" .GetRepoLink $index) |Escape) $index (.ShortRepoPath|Escape) | Str2html}}
{{else if .GetOpType.InActions "close_pull_request"}}
{{$index := index .GetIssueInfos 0}}
- {{$.locale.Tr "action.close_pull_request" ((printf "%s/pulls/%s" .GetRepoLink $index) |Escape) $index (.ShortRepoPath|Escape) | Str2html}}
+ {{ctx.Locale.Tr "action.close_pull_request" ((printf "%s/pulls/%s" .GetRepoLink $index) |Escape) $index (.ShortRepoPath|Escape) | Str2html}}
{{else if .GetOpType.InActions "reopen_pull_request"}}
{{$index := index .GetIssueInfos 0}}
- {{$.locale.Tr "action.reopen_pull_request" ((printf "%s/pulls/%s" .GetRepoLink $index) |Escape) $index (.ShortRepoPath|Escape) | Str2html}}
+ {{ctx.Locale.Tr "action.reopen_pull_request" ((printf "%s/pulls/%s" .GetRepoLink $index) |Escape) $index (.ShortRepoPath|Escape) | Str2html}}
{{else if .GetOpType.InActions "delete_tag"}}
{{$index := index .GetIssueInfos 0}}
- {{$.locale.Tr "action.delete_tag" (.GetRepoLink|Escape) (.GetTag|Escape) (.ShortRepoPath|Escape) | Str2html}}
+ {{ctx.Locale.Tr "action.delete_tag" (.GetRepoLink|Escape) (.GetTag|Escape) (.ShortRepoPath|Escape) | Str2html}}
{{else if .GetOpType.InActions "delete_branch"}}
{{$index := index .GetIssueInfos 0}}
- {{$.locale.Tr "action.delete_branch" (.GetRepoLink|Escape) (.GetBranch|Escape) (.ShortRepoPath|Escape) | Str2html}}
+ {{ctx.Locale.Tr "action.delete_branch" (.GetRepoLink|Escape) (.GetBranch|Escape) (.ShortRepoPath|Escape) | Str2html}}
{{else if .GetOpType.InActions "mirror_sync_push"}}
- {{$.locale.Tr "action.mirror_sync_push" (.GetRepoLink|Escape) (.GetRefLink|Escape) (.GetBranch|Escape) (.ShortRepoPath|Escape) | Str2html}}
+ {{ctx.Locale.Tr "action.mirror_sync_push" (.GetRepoLink|Escape) (.GetRefLink|Escape) (.GetBranch|Escape) (.ShortRepoPath|Escape) | Str2html}}
{{else if .GetOpType.InActions "mirror_sync_create"}}
- {{$.locale.Tr "action.mirror_sync_create" (.GetRepoLink|Escape) (.GetRefLink|Escape) (.GetBranch|Escape) (.ShortRepoPath|Escape) | Str2html}}
+ {{ctx.Locale.Tr "action.mirror_sync_create" (.GetRepoLink|Escape) (.GetRefLink|Escape) (.GetBranch|Escape) (.ShortRepoPath|Escape) | Str2html}}
{{else if .GetOpType.InActions "mirror_sync_delete"}}
- {{$.locale.Tr "action.mirror_sync_delete" (.GetRepoLink|Escape) (.GetBranch|Escape) (.ShortRepoPath|Escape) | Str2html}}
+ {{ctx.Locale.Tr "action.mirror_sync_delete" (.GetRepoLink|Escape) (.GetBranch|Escape) (.ShortRepoPath|Escape) | Str2html}}
{{else if .GetOpType.InActions "approve_pull_request"}}
{{$index := index .GetIssueInfos 0}}
- {{$.locale.Tr "action.approve_pull_request" ((printf "%s/pulls/%s" .GetRepoLink $index) |Escape) $index (.ShortRepoPath|Escape) | Str2html}}
+ {{ctx.Locale.Tr "action.approve_pull_request" ((printf "%s/pulls/%s" .GetRepoLink $index) |Escape) $index (.ShortRepoPath|Escape) | Str2html}}
{{else if .GetOpType.InActions "reject_pull_request"}}
{{$index := index .GetIssueInfos 0}}
- {{$.locale.Tr "action.reject_pull_request" ((printf "%s/pulls/%s" .GetRepoLink $index) |Escape) $index (.ShortRepoPath|Escape) | Str2html}}
+ {{ctx.Locale.Tr "action.reject_pull_request" ((printf "%s/pulls/%s" .GetRepoLink $index) |Escape) $index (.ShortRepoPath|Escape) | Str2html}}
{{else if .GetOpType.InActions "comment_pull"}}
{{$index := index .GetIssueInfos 0}}
- {{$.locale.Tr "action.comment_pull" ((printf "%s/pulls/%s" .GetRepoLink $index) |Escape) $index (.ShortRepoPath|Escape) | Str2html}}
+ {{ctx.Locale.Tr "action.comment_pull" ((printf "%s/pulls/%s" .GetRepoLink $index) |Escape) $index (.ShortRepoPath|Escape) | Str2html}}
{{else if .GetOpType.InActions "publish_release"}}
{{$linkText := .Content | RenderEmoji $.Context}}
- {{$.locale.Tr "action.publish_release" (.GetRepoLink|Escape) ((printf "%s/releases/tag/%s" .GetRepoLink .GetTag)|Escape) (.ShortRepoPath|Escape) $linkText | Str2html}}
+ {{ctx.Locale.Tr "action.publish_release" (.GetRepoLink|Escape) ((printf "%s/releases/tag/%s" .GetRepoLink .GetTag)|Escape) (.ShortRepoPath|Escape) $linkText | Str2html}}
{{else if .GetOpType.InActions "review_dismissed"}}
{{$index := index .GetIssueInfos 0}}
{{$reviewer := index .GetIssueInfos 1}}
- {{$.locale.Tr "action.review_dismissed" ((printf "%s/pulls/%s" .GetRepoLink $index) |Escape) $index (.ShortRepoPath|Escape) $reviewer | Str2html}}
+ {{ctx.Locale.Tr "action.review_dismissed" ((printf "%s/pulls/%s" .GetRepoLink $index) |Escape) $index (.ShortRepoPath|Escape) $reviewer | Str2html}}
{{end}}
</div>
{{if .GetOpType.InActions "commit_repo" "mirror_sync_push"}}
@@ -93,7 +93,7 @@
</div>
{{end}}
{{if and (gt $push.Len 1) $push.CompareURL}}
- <a href="{{AppSubUrl}}/{{$push.CompareURL}}">{{$.locale.Tr "action.compare_commits" $push.Len}} »</a>
+ <a href="{{AppSubUrl}}/{{$push.CompareURL}}">{{ctx.Locale.Tr "action.compare_commits" $push.Len}} »</a>
{{end}}
{{else if .GetOpType.InActions "create_issue"}}
<span class="text truncate issue title">{{index .GetIssueInfos 1 | RenderEmoji $.Context | RenderCodeBlock}}</span>
@@ -110,7 +110,7 @@
{{else if .GetOpType.InActions "close_issue" "reopen_issue" "close_pull_request" "reopen_pull_request"}}
<span class="text truncate issue title">{{.GetIssueTitle | RenderEmoji $.Context | RenderCodeBlock}}</span>
{{else if .GetOpType.InActions "pull_review_dismissed"}}
- <div class="flex-item-body">{{$.locale.Tr "action.review_dismissed_reason"}}</div>
+ <div class="flex-item-body">{{ctx.Locale.Tr "action.review_dismissed_reason"}}</div>
<div class="flex-item-body">{{index .GetIssueInfos 2 | RenderEmoji $.Context}}</div>
{{end}}
<div class="flex-item-body">{{TimeSince .GetCreate $.locale}}</div>
diff --git a/templates/user/dashboard/issues.tmpl b/templates/user/dashboard/issues.tmpl
index 769461cca8..480151d210 100644
--- a/templates/user/dashboard/issues.tmpl
+++ b/templates/user/dashboard/issues.tmpl
@@ -6,34 +6,34 @@
<div class="four wide column">
<div class="ui secondary vertical filter menu gt-bg-transparent">
<a class="{{if eq .ViewType "your_repositories"}}active{{end}} item" href="{{.Link}}?type=your_repositories&repos=[{{range $.RepoIDs}}{{.}}%2C{{end}}]&sort={{$.SortType}}&state={{.State}}&q={{$.Keyword}}">
- {{.locale.Tr "home.issues.in_your_repos"}}
+ {{ctx.Locale.Tr "home.issues.in_your_repos"}}
<strong>{{CountFmt .IssueStats.YourRepositoriesCount}}</strong>
</a>
<a class="{{if eq .ViewType "assigned"}}active{{end}} item" href="{{.Link}}?type=assigned&repos=[{{range $.RepoIDs}}{{.}}%2C{{end}}]&sort={{$.SortType}}&state={{.State}}&q={{$.Keyword}}">
- {{.locale.Tr "repo.issues.filter_type.assigned_to_you"}}
+ {{ctx.Locale.Tr "repo.issues.filter_type.assigned_to_you"}}
<strong>{{CountFmt .IssueStats.AssignCount}}</strong>
</a>
<a class="{{if eq .ViewType "created_by"}}active{{end}} item" href="{{.Link}}?type=created_by&repos=[{{range $.RepoIDs}}{{.}}%2C{{end}}]&sort={{$.SortType}}&state={{.State}}&q={{$.Keyword}}">
- {{.locale.Tr "repo.issues.filter_type.created_by_you"}}
+ {{ctx.Locale.Tr "repo.issues.filter_type.created_by_you"}}
<strong>{{CountFmt .IssueStats.CreateCount}}</strong>
</a>
{{if .PageIsPulls}}
<a class="{{if eq .ViewType "review_requested"}}active{{end}} item" href="{{.Link}}?type=review_requested&repos=[{{range $.RepoIDs}}{{.}}%2C{{end}}]&sort={{$.SortType}}&state={{.State}}&q={{$.Keyword}}">
- {{.locale.Tr "repo.issues.filter_type.review_requested"}}
+ {{ctx.Locale.Tr "repo.issues.filter_type.review_requested"}}
<strong>{{CountFmt .IssueStats.ReviewRequestedCount}}</strong>
</a>
<a class="{{if eq .ViewType "reviewed_by"}}active{{end}} item" href="{{.Link}}?type=reviewed_by&repos=[{{range $.RepoIDs}}{{.}}%2C{{end}}]&sort={{$.SortType}}&state={{.State}}&q={{$.Keyword}}">
- {{.locale.Tr "repo.issues.filter_type.reviewed_by_you"}}
+ {{ctx.Locale.Tr "repo.issues.filter_type.reviewed_by_you"}}
<strong>{{CountFmt .IssueStats.ReviewedCount}}</strong>
</a>
{{end}}
<a class="{{if eq .ViewType "mentioned"}}active{{end}} item" href="{{.Link}}?type=mentioned&repos=[{{range $.RepoIDs}}{{.}}%2C{{end}}]&sort={{$.SortType}}&state={{.State}}&q={{$.Keyword}}">
- {{.locale.Tr "repo.issues.filter_type.mentioning_you"}}
+ {{ctx.Locale.Tr "repo.issues.filter_type.mentioning_you"}}
<strong>{{CountFmt .IssueStats.MentionCount}}</strong>
</a>
<div class="divider"></div>
<a class="{{if not $.RepoIDs}}active{{end}} repo name item" href="{{$.Link}}?type={{$.ViewType}}&sort={{$.SortType}}&state={{$.State}}&q={{$.Keyword}}">
- <span class="text truncate">{{.locale.Tr "all"}}</span>
+ <span class="text truncate">{{ctx.Locale.Tr "all"}}</span>
<span>{{CountFmt .TotalIssueCount}}</span>
</a>
{{range .Repos}}
@@ -64,11 +64,11 @@
<div class="small-menu-items ui compact tiny menu list-header-toggle">
<a class="item{{if not .IsShowClosed}} active{{end}}" href="{{.Link}}?type={{$.ViewType}}&repos=[{{range $.RepoIDs}}{{.}}%2C{{end}}]&sort={{$.SortType}}&state=open&q={{$.Keyword}}">
{{svg "octicon-issue-opened" 16 "gt-mr-3"}}
- {{.locale.PrettyNumber .IssueStats.OpenCount}}&nbsp;{{.locale.Tr "repo.issues.open_title"}}
+ {{.locale.PrettyNumber .IssueStats.OpenCount}}&nbsp;{{ctx.Locale.Tr "repo.issues.open_title"}}
</a>
<a class="item{{if .IsShowClosed}} active{{end}}" href="{{.Link}}?type={{$.ViewType}}&repos=[{{range $.RepoIDs}}{{.}}%2C{{end}}]&sort={{$.SortType}}&state=closed&q={{$.Keyword}}">
{{svg "octicon-issue-closed" 16 "gt-mr-3"}}
- {{.locale.PrettyNumber .IssueStats.ClosedCount}}&nbsp;{{.locale.Tr "repo.issues.closed_title"}}
+ {{.locale.PrettyNumber .IssueStats.ClosedCount}}&nbsp;{{ctx.Locale.Tr "repo.issues.closed_title"}}
</a>
</div>
<form class="list-header-search ui form ignore-dirty">
@@ -78,32 +78,32 @@
<input type="hidden" name="sort" value="{{$.SortType}}">
<input type="hidden" name="state" value="{{$.State}}">
{{template "shared/searchinput" dict "Value" $.Keyword}}
- <button id="issue-list-quick-goto" class="ui small icon button gt-hidden" data-tooltip-content="{{.locale.Tr "explore.go_to"}}">{{svg "octicon-hash"}}</button>
- <button class="ui small icon button" aria-label="{{.locale.Tr "explore.search"}}">{{svg "octicon-search"}}</button>
+ <button id="issue-list-quick-goto" class="ui small icon button gt-hidden" data-tooltip-content="{{ctx.Locale.Tr "explore.go_to"}}">{{svg "octicon-hash"}}</button>
+ <button class="ui small icon button" aria-label="{{ctx.Locale.Tr "explore.search"}}">{{svg "octicon-search"}}</button>
</div>
</form>
<!-- Sort -->
<div class="list-header-sort ui small dropdown type jump item">
<span class="text gt-whitespace-nowrap">
- {{.locale.Tr "repo.issues.filter_sort"}}
+ {{ctx.Locale.Tr "repo.issues.filter_sort"}}
{{svg "octicon-triangle-down" 14 "dropdown icon"}}
</span>
<div class="menu">
- <a class="{{if eq .SortType "recentupdate"}}active {{end}}item" href="{{$.Link}}?type={{$.ViewType}}&repos=[{{range $.RepoIDs}}{{.}}%2C{{end}}]&sort=recentupdate&state={{$.State}}&q={{$.Keyword}}">{{.locale.Tr "repo.issues.filter_sort.recentupdate"}}</a>
- <a class="{{if eq .SortType "leastupdate"}}active {{end}}item" href="{{$.Link}}?type={{$.ViewType}}&repos=[{{range $.RepoIDs}}{{.}}%2C{{end}}]&sort=leastupdate&state={{$.State}}&q={{$.Keyword}}">{{.locale.Tr "repo.issues.filter_sort.leastupdate"}}</a>
- <a class="{{if or (eq .SortType "latest") (not .SortType)}}active {{end}}item" href="{{$.Link}}?type={{$.ViewType}}&repos=[{{range $.RepoIDs}}{{.}}%2C{{end}}]&sort=latest&state={{$.State}}&q={{$.Keyword}}">{{.locale.Tr "repo.issues.filter_sort.latest"}}</a>
- <a class="{{if eq .SortType "oldest"}}active {{end}}item" href="{{$.Link}}?type={{$.ViewType}}&repos=[{{range $.RepoIDs}}{{.}}%2C{{end}}]&sort=oldest&state={{$.State}}&q={{$.Keyword}}">{{.locale.Tr "repo.issues.filter_sort.oldest"}}</a>
- <a class="{{if eq .SortType "mostcomment"}}active {{end}}item" href="{{$.Link}}?type={{$.ViewType}}&repos=[{{range $.RepoIDs}}{{.}}%2C{{end}}]&sort=mostcomment&state={{$.State}}&q={{$.Keyword}}">{{.locale.Tr "repo.issues.filter_sort.mostcomment"}}</a>
- <a class="{{if eq .SortType "leastcomment"}}active {{end}}item" href="{{$.Link}}?type={{$.ViewType}}&repos=[{{range $.RepoIDs}}{{.}}%2C{{end}}]&sort=leastcomment&state={{$.State}}&q={{$.Keyword}}">{{.locale.Tr "repo.issues.filter_sort.leastcomment"}}</a>
- <a class="{{if eq .SortType "nearduedate"}}active {{end}}item" href="{{$.Link}}?type={{$.ViewType}}&repos=[{{range $.RepoIDs}}{{.}}%2C{{end}}]&sort=nearduedate&state={{$.State}}&q={{$.Keyword}}">{{.locale.Tr "repo.issues.filter_sort.nearduedate"}}</a>
- <a class="{{if eq .SortType "farduedate"}}active {{end}}item" href="{{$.Link}}?type={{$.ViewType}}&repos=[{{range $.RepoIDs}}{{.}}%2C{{end}}]&sort=farduedate&state={{$.State}}&q={{$.Keyword}}">{{.locale.Tr "repo.issues.filter_sort.farduedate"}}</a>
+ <a class="{{if eq .SortType "recentupdate"}}active {{end}}item" href="{{$.Link}}?type={{$.ViewType}}&repos=[{{range $.RepoIDs}}{{.}}%2C{{end}}]&sort=recentupdate&state={{$.State}}&q={{$.Keyword}}">{{ctx.Locale.Tr "repo.issues.filter_sort.recentupdate"}}</a>
+ <a class="{{if eq .SortType "leastupdate"}}active {{end}}item" href="{{$.Link}}?type={{$.ViewType}}&repos=[{{range $.RepoIDs}}{{.}}%2C{{end}}]&sort=leastupdate&state={{$.State}}&q={{$.Keyword}}">{{ctx.Locale.Tr "repo.issues.filter_sort.leastupdate"}}</a>
+ <a class="{{if or (eq .SortType "latest") (not .SortType)}}active {{end}}item" href="{{$.Link}}?type={{$.ViewType}}&repos=[{{range $.RepoIDs}}{{.}}%2C{{end}}]&sort=latest&state={{$.State}}&q={{$.Keyword}}">{{ctx.Locale.Tr "repo.issues.filter_sort.latest"}}</a>
+ <a class="{{if eq .SortType "oldest"}}active {{end}}item" href="{{$.Link}}?type={{$.ViewType}}&repos=[{{range $.RepoIDs}}{{.}}%2C{{end}}]&sort=oldest&state={{$.State}}&q={{$.Keyword}}">{{ctx.Locale.Tr "repo.issues.filter_sort.oldest"}}</a>
+ <a class="{{if eq .SortType "mostcomment"}}active {{end}}item" href="{{$.Link}}?type={{$.ViewType}}&repos=[{{range $.RepoIDs}}{{.}}%2C{{end}}]&sort=mostcomment&state={{$.State}}&q={{$.Keyword}}">{{ctx.Locale.Tr "repo.issues.filter_sort.mostcomment"}}</a>
+ <a class="{{if eq .SortType "leastcomment"}}active {{end}}item" href="{{$.Link}}?type={{$.ViewType}}&repos=[{{range $.RepoIDs}}{{.}}%2C{{end}}]&sort=leastcomment&state={{$.State}}&q={{$.Keyword}}">{{ctx.Locale.Tr "repo.issues.filter_sort.leastcomment"}}</a>
+ <a class="{{if eq .SortType "nearduedate"}}active {{end}}item" href="{{$.Link}}?type={{$.ViewType}}&repos=[{{range $.RepoIDs}}{{.}}%2C{{end}}]&sort=nearduedate&state={{$.State}}&q={{$.Keyword}}">{{ctx.Locale.Tr "repo.issues.filter_sort.nearduedate"}}</a>
+ <a class="{{if eq .SortType "farduedate"}}active {{end}}item" href="{{$.Link}}?type={{$.ViewType}}&repos=[{{range $.RepoIDs}}{{.}}%2C{{end}}]&sort=farduedate&state={{$.State}}&q={{$.Keyword}}">{{ctx.Locale.Tr "repo.issues.filter_sort.farduedate"}}</a>
</div>
</div>
{{if .SingleRepoLink}}
{{if eq .SingleRepoAction "issue"}}
- <a class="ui primary button gt-ml-4" href="{{.SingleRepoLink}}/issues/new/choose">{{.locale.Tr "repo.issues.new"}}</a>
+ <a class="ui primary button gt-ml-4" href="{{.SingleRepoLink}}/issues/new/choose">{{ctx.Locale.Tr "repo.issues.new"}}</a>
{{else if eq .SingleRepoAction "pull"}}
- <a class="ui primary button gt-ml-4" href="{{.SingleRepoLink}}/compare">{{.locale.Tr "repo.pulls.new"}}</a>
+ <a class="ui primary button gt-ml-4" href="{{.SingleRepoLink}}/compare">{{ctx.Locale.Tr "repo.pulls.new"}}</a>
{{end}}
{{end}}
</div>
diff --git a/templates/user/dashboard/milestones.tmpl b/templates/user/dashboard/milestones.tmpl
index bb63994de4..a3b1a389e8 100644
--- a/templates/user/dashboard/milestones.tmpl
+++ b/templates/user/dashboard/milestones.tmpl
@@ -6,7 +6,7 @@
<div class="four wide column">
<div class="ui secondary vertical filter menu gt-bg-transparent">
<div class="item">
- {{.locale.Tr "home.issues.in_your_repos"}}
+ {{ctx.Locale.Tr "home.issues.in_your_repos"}}
<strong>{{.Total}}</strong>
</div>
<div class="divider"></div>
@@ -38,11 +38,11 @@
<div class="small-menu-items ui compact tiny menu list-header-toggle">
<a class="item{{if not .IsShowClosed}} active{{end}}" href="{{.Link}}?repos=[{{range $.RepoIDs}}{{.}}%2C{{end}}]&sort={{$.SortType}}&state=open&q={{$.Keyword}}">
{{svg "octicon-milestone" 16 "gt-mr-3"}}
- {{.locale.PrettyNumber .MilestoneStats.OpenCount}}&nbsp;{{.locale.Tr "repo.issues.open_title"}}
+ {{.locale.PrettyNumber .MilestoneStats.OpenCount}}&nbsp;{{ctx.Locale.Tr "repo.issues.open_title"}}
</a>
<a class="item{{if .IsShowClosed}} active{{end}}" href="{{.Link}}?repos=[{{range $.RepoIDs}}{{.}}%2C{{end}}]&sort={{$.SortType}}&state=closed&q={{$.Keyword}}">
{{svg "octicon-check" 16 "gt-mr-3"}}
- {{.locale.PrettyNumber .MilestoneStats.ClosedCount}}&nbsp;{{.locale.Tr "repo.issues.closed_title"}}
+ {{.locale.PrettyNumber .MilestoneStats.ClosedCount}}&nbsp;{{ctx.Locale.Tr "repo.issues.closed_title"}}
</a>
</div>
<form class="list-header-search ui form ignore-dirty">
@@ -52,22 +52,22 @@
<input type="hidden" name="sort" value="{{$.SortType}}">
<input type="hidden" name="state" value="{{$.State}}">
{{template "shared/searchinput" dict "Value" $.Keyword}}
- <button class="ui small icon button" type="submit" aria-label="{{.locale.Tr "explore.search"}}">{{svg "octicon-search"}}</button>
+ <button class="ui small icon button" type="submit" aria-label="{{ctx.Locale.Tr "explore.search"}}">{{svg "octicon-search"}}</button>
</div>
</form>
<!-- Sort -->
<div class="list-header-sort ui dropdown type jump item">
<span class="text">
- {{.locale.Tr "repo.issues.filter_sort"}}
+ {{ctx.Locale.Tr "repo.issues.filter_sort"}}
</span>
{{svg "octicon-triangle-down" 14 "dropdown icon"}}
<div class="menu">
- <a class="{{if or (eq .SortType "closestduedate") (not .SortType)}}active {{end}}item" href="{{$.Link}}?repos=[{{range $.RepoIDs}}{{.}}%2C{{end}}]&sort=closestduedate&state={{$.State}}&q={{$.Keyword}}">{{.locale.Tr "repo.milestones.filter_sort.closest_due_date"}}</a>
- <a class="{{if eq .SortType "furthestduedate"}}active {{end}}item" href="{{$.Link}}?repos=[{{range $.RepoIDs}}{{.}}%2C{{end}}]&sort=furthestduedate&state={{$.State}}&q={{$.Keyword}}">{{.locale.Tr "repo.milestones.filter_sort.furthest_due_date"}}</a>
- <a class="{{if eq .SortType "leastcomplete"}}active {{end}}item" href="{{$.Link}}?repos=[{{range $.RepoIDs}}{{.}}%2C{{end}}]&sort=leastcomplete&state={{$.State}}&q={{$.Keyword}}">{{.locale.Tr "repo.milestones.filter_sort.least_complete"}}</a>
- <a class="{{if eq .SortType "mostcomplete"}}active {{end}}item" href="{{$.Link}}?repos=[{{range $.RepoIDs}}{{.}}%2C{{end}}]&sort=mostcomplete&state={{$.State}}&q={{$.Keyword}}">{{.locale.Tr "repo.milestones.filter_sort.most_complete"}}</a>
- <a class="{{if eq .SortType "mostissues"}}active {{end}}item" href="{{$.Link}}?repos=[{{range $.RepoIDs}}{{.}}%2C{{end}}]&sort=mostissues&state={{$.State}}&q={{$.Keyword}}">{{.locale.Tr "repo.milestones.filter_sort.most_issues"}}</a>
- <a class="{{if eq .SortType "leastissues"}}active {{end}}item" href="{{$.Link}}?repos=[{{range $.RepoIDs}}{{.}}%2C{{end}}]&sort=leastissues&state={{$.State}}&q={{$.Keyword}}">{{.locale.Tr "repo.milestones.filter_sort.least_issues"}}</a>
+ <a class="{{if or (eq .SortType "closestduedate") (not .SortType)}}active {{end}}item" href="{{$.Link}}?repos=[{{range $.RepoIDs}}{{.}}%2C{{end}}]&sort=closestduedate&state={{$.State}}&q={{$.Keyword}}">{{ctx.Locale.Tr "repo.milestones.filter_sort.closest_due_date"}}</a>
+ <a class="{{if eq .SortType "furthestduedate"}}active {{end}}item" href="{{$.Link}}?repos=[{{range $.RepoIDs}}{{.}}%2C{{end}}]&sort=furthestduedate&state={{$.State}}&q={{$.Keyword}}">{{ctx.Locale.Tr "repo.milestones.filter_sort.furthest_due_date"}}</a>
+ <a class="{{if eq .SortType "leastcomplete"}}active {{end}}item" href="{{$.Link}}?repos=[{{range $.RepoIDs}}{{.}}%2C{{end}}]&sort=leastcomplete&state={{$.State}}&q={{$.Keyword}}">{{ctx.Locale.Tr "repo.milestones.filter_sort.least_complete"}}</a>
+ <a class="{{if eq .SortType "mostcomplete"}}active {{end}}item" href="{{$.Link}}?repos=[{{range $.RepoIDs}}{{.}}%2C{{end}}]&sort=mostcomplete&state={{$.State}}&q={{$.Keyword}}">{{ctx.Locale.Tr "repo.milestones.filter_sort.most_complete"}}</a>
+ <a class="{{if eq .SortType "mostissues"}}active {{end}}item" href="{{$.Link}}?repos=[{{range $.RepoIDs}}{{.}}%2C{{end}}]&sort=mostissues&state={{$.State}}&q={{$.Keyword}}">{{ctx.Locale.Tr "repo.milestones.filter_sort.most_issues"}}</a>
+ <a class="{{if eq .SortType "leastissues"}}active {{end}}item" href="{{$.Link}}?repos=[{{range $.RepoIDs}}{{.}}%2C{{end}}]&sort=leastissues&state={{$.State}}&q={{$.Keyword}}">{{ctx.Locale.Tr "repo.milestones.filter_sort.least_issues"}}</a>
</div>
</div>
</div>
@@ -91,11 +91,11 @@
<div class="group">
<div class="flex-text-block">
{{svg "octicon-issue-opened" 14}}
- {{$.locale.PrettyNumber .NumOpenIssues}}&nbsp;{{$.locale.Tr "repo.issues.open_title"}}
+ {{$.locale.PrettyNumber .NumOpenIssues}}&nbsp;{{ctx.Locale.Tr "repo.issues.open_title"}}
</div>
<div class="flex-text-block">
{{svg "octicon-check" 14}}
- {{$.locale.PrettyNumber .NumClosedIssues}}&nbsp;{{$.locale.Tr "repo.issues.closed_title"}}
+ {{$.locale.PrettyNumber .NumClosedIssues}}&nbsp;{{ctx.Locale.Tr "repo.issues.closed_title"}}
</div>
{{if .TotalTrackedTime}}
<div class="flex-text-block">
@@ -106,14 +106,14 @@
{{if .UpdatedUnix}}
<div class="flex-text-block">
{{svg "octicon-clock"}}
- {{$.locale.Tr "repo.milestones.update_ago" (TimeSinceUnix .UpdatedUnix $.locale) | Safe}}
+ {{ctx.Locale.Tr "repo.milestones.update_ago" (TimeSinceUnix .UpdatedUnix $.locale) | Safe}}
</div>
{{end}}
<div class="flex-text-block">
{{if .IsClosed}}
{{$closedDate:= TimeSinceUnix .ClosedDateUnix $.locale}}
{{svg "octicon-clock" 14}}
- {{$.locale.Tr "repo.milestones.closed" $closedDate | Safe}}
+ {{ctx.Locale.Tr "repo.milestones.closed" $closedDate | Safe}}
{{else}}
{{if .DeadlineString}}
<span{{if .IsOverdue}} class="text red"{{end}}>
@@ -122,20 +122,20 @@
</span>
{{else}}
{{svg "octicon-calendar" 14}}
- {{$.locale.Tr "repo.milestones.no_due_date"}}
+ {{ctx.Locale.Tr "repo.milestones.no_due_date"}}
{{end}}
{{end}}
</div>
</div>
{{if and (or $.CanWriteIssues $.CanWritePulls) (not $.Repository.IsArchived)}}
<div class="group">
- <a class="flex-text-inline" href="{{$.Link}}/{{.ID}}/edit">{{svg "octicon-pencil" 14}}{{$.locale.Tr "repo.issues.label_edit"}}</a>
+ <a class="flex-text-inline" href="{{$.Link}}/{{.ID}}/edit">{{svg "octicon-pencil" 14}}{{ctx.Locale.Tr "repo.issues.label_edit"}}</a>
{{if .IsClosed}}
- <a class="link-action flex-text-inline" href data-url="{{$.Link}}/{{.ID}}/open">{{svg "octicon-check" 14}}{{$.locale.Tr "repo.milestones.open"}}</a>
+ <a class="link-action flex-text-inline" href data-url="{{$.Link}}/{{.ID}}/open">{{svg "octicon-check" 14}}{{ctx.Locale.Tr "repo.milestones.open"}}</a>
{{else}}
- <a class="link-action flex-text-inline" href data-url="{{$.Link}}/{{.ID}}/close">{{svg "octicon-x" 14}}{{$.locale.Tr "repo.milestones.close"}}</a>
+ <a class="link-action flex-text-inline" href data-url="{{$.Link}}/{{.ID}}/close">{{svg "octicon-x" 14}}{{ctx.Locale.Tr "repo.milestones.close"}}</a>
{{end}}
- <a class="delete-button flex-text-inline" href="#" data-url="{{$.RepoLink}}/milestones/delete" data-id="{{.ID}}">{{svg "octicon-trash" 14}}{{$.locale.Tr "repo.issues.label_delete"}}</a>
+ <a class="delete-button flex-text-inline" href="#" data-url="{{$.RepoLink}}/milestones/delete" data-id="{{.ID}}">{{svg "octicon-trash" 14}}{{ctx.Locale.Tr "repo.issues.label_delete"}}</a>
</div>
{{end}}
</div>
diff --git a/templates/user/dashboard/navbar.tmpl b/templates/user/dashboard/navbar.tmpl
index f9c6a29513..af07897e2c 100644
--- a/templates/user/dashboard/navbar.tmpl
+++ b/templates/user/dashboard/navbar.tmpl
@@ -6,22 +6,22 @@
{{ctx.AvatarUtils.Avatar .ContextUser}}
<span class="truncated-item-name">{{.ContextUser.ShortName 40}}</span>
<span class="org-visibility">
- {{if .ContextUser.Visibility.IsLimited}}<div class="ui basic tiny horizontal label">{{.locale.Tr "org.settings.visibility.limited_shortname"}}</div>{{end}}
- {{if .ContextUser.Visibility.IsPrivate}}<div class="ui basic tiny horizontal label">{{.locale.Tr "org.settings.visibility.private_shortname"}}</div>{{end}}
+ {{if .ContextUser.Visibility.IsLimited}}<div class="ui basic tiny horizontal label">{{ctx.Locale.Tr "org.settings.visibility.limited_shortname"}}</div>{{end}}
+ {{if .ContextUser.Visibility.IsPrivate}}<div class="ui basic tiny horizontal label">{{ctx.Locale.Tr "org.settings.visibility.private_shortname"}}</div>{{end}}
</span>
{{svg "octicon-triangle-down" 14 "dropdown icon"}}
</span>
<div class="context user overflow menu">
<div class="ui header">
- {{.locale.Tr "home.switch_dashboard_context"}}
+ {{ctx.Locale.Tr "home.switch_dashboard_context"}}
</div>
<div class="scrolling menu items">
<a class="{{if eq .ContextUser.ID .SignedUser.ID}}active selected{{end}} item truncated-item-container" href="{{AppSubUrl}}/{{if .PageIsIssues}}issues{{else if .PageIsPulls}}pulls{{else if .PageIsMilestonesDashboard}}milestones{{end}}">
{{ctx.AvatarUtils.Avatar .SignedUser}}
<span class="truncated-item-name">{{.SignedUser.ShortName 40}}</span>
<span class="org-visibility">
- {{if .SignedUser.Visibility.IsLimited}}<div class="ui basic tiny horizontal label">{{$.locale.Tr "org.settings.visibility.limited_shortname"}}</div>{{end}}
- {{if .SignedUser.Visibility.IsPrivate}}<div class="ui basic tiny horizontal label">{{$.locale.Tr "org.settings.visibility.private_shortname"}}</div>{{end}}
+ {{if .SignedUser.Visibility.IsLimited}}<div class="ui basic tiny horizontal label">{{ctx.Locale.Tr "org.settings.visibility.limited_shortname"}}</div>{{end}}
+ {{if .SignedUser.Visibility.IsPrivate}}<div class="ui basic tiny horizontal label">{{ctx.Locale.Tr "org.settings.visibility.private_shortname"}}</div>{{end}}
</span>
</a>
{{range .Orgs}}
@@ -29,15 +29,15 @@
{{ctx.AvatarUtils.Avatar .}}
<span class="truncated-item-name">{{.ShortName 40}}</span>
<span class="org-visibility">
- {{if .Visibility.IsLimited}}<div class="ui basic tiny horizontal label">{{$.locale.Tr "org.settings.visibility.limited_shortname"}}</div>{{end}}
- {{if .Visibility.IsPrivate}}<div class="ui basic tiny horizontal label">{{$.locale.Tr "org.settings.visibility.private_shortname"}}</div>{{end}}
+ {{if .Visibility.IsLimited}}<div class="ui basic tiny horizontal label">{{ctx.Locale.Tr "org.settings.visibility.limited_shortname"}}</div>{{end}}
+ {{if .Visibility.IsPrivate}}<div class="ui basic tiny horizontal label">{{ctx.Locale.Tr "org.settings.visibility.private_shortname"}}</div>{{end}}
</span>
</a>
{{end}}
</div>
{{if .SignedUser.CanCreateOrganization}}
<a class="item" href="{{AppSubUrl}}/org/create">
- {{svg "octicon-plus"}}&nbsp;&nbsp;&nbsp;{{.locale.Tr "new_org"}}
+ {{svg "octicon-plus"}}&nbsp;&nbsp;&nbsp;{{ctx.Locale.Tr "new_org"}}
</a>
{{end}}
</div>
@@ -51,17 +51,17 @@
{{if .Team}}
{{.Team.Name}}
{{else}}
- {{.locale.Tr "org.teams"}}
+ {{ctx.Locale.Tr "org.teams"}}
{{end}}
</span>
{{svg "octicon-triangle-down" 14 "dropdown icon"}}
<div class="context user overflow menu">
<div class="ui header">
- {{.locale.Tr "home.filter_by_team_repositories"}}
+ {{ctx.Locale.Tr "home.filter_by_team_repositories"}}
</div>
<div class="scrolling menu items">
- <a class="{{if not $.Team}}active selected{{end}} item" title="{{.locale.Tr "all"}}" href="{{$.Org.OrganisationLink}}/{{if $.PageIsIssues}}issues{{else if $.PageIsPulls}}pulls{{else if $.PageIsMilestonesDashboard}}milestones{{else}}dashboard{{end}}">
- {{.locale.Tr "all"}}
+ <a class="{{if not $.Team}}active selected{{end}} item" title="{{ctx.Locale.Tr "all"}}" href="{{$.Org.OrganisationLink}}/{{if $.PageIsIssues}}issues{{else if $.PageIsPulls}}pulls{{else if $.PageIsMilestonesDashboard}}milestones{{else}}dashboard{{end}}">
+ {{ctx.Locale.Tr "all"}}
</a>
{{range .Teams}}
{{if not .IncludesAllRepositories}}
@@ -79,26 +79,26 @@
{{if .ContextUser.IsOrganization}}
<div class="right menu">
<a class="{{if .PageIsNews}}active {{end}}item gt-ml-auto" href="{{.ContextUser.DashboardLink}}{{if .Team}}/{{PathEscape .Team.Name}}{{end}}">
- {{svg "octicon-rss"}}&nbsp;{{.locale.Tr "activities"}}
+ {{svg "octicon-rss"}}&nbsp;{{ctx.Locale.Tr "activities"}}
</a>
{{if not .UnitIssuesGlobalDisabled}}
<a class="{{if .PageIsIssues}}active {{end}}item" href="{{.ContextUser.OrganisationLink}}/issues{{if .Team}}/{{PathEscape .Team.Name}}{{end}}">
- {{svg "octicon-issue-opened"}}&nbsp;{{.locale.Tr "issues"}}
+ {{svg "octicon-issue-opened"}}&nbsp;{{ctx.Locale.Tr "issues"}}
</a>
{{end}}
{{if not .UnitPullsGlobalDisabled}}
<a class="{{if .PageIsPulls}}active {{end}}item" href="{{.ContextUser.OrganisationLink}}/pulls{{if .Team}}/{{PathEscape .Team.Name}}{{end}}">
- {{svg "octicon-git-pull-request"}}&nbsp;{{.locale.Tr "pull_requests"}}
+ {{svg "octicon-git-pull-request"}}&nbsp;{{ctx.Locale.Tr "pull_requests"}}
</a>
{{end}}
{{if and .ShowMilestonesDashboardPage (not (and .UnitIssuesGlobalDisabled .UnitPullsGlobalDisabled))}}
<a class="{{if .PageIsMilestonesDashboard}}active {{end}}item" href="{{.ContextUser.OrganisationLink}}/milestones{{if .Team}}/{{PathEscape .Team.Name}}{{end}}">
- {{svg "octicon-milestone"}}&nbsp;{{.locale.Tr "milestones"}}
+ {{svg "octicon-milestone"}}&nbsp;{{ctx.Locale.Tr "milestones"}}
</a>
{{end}}
<div class="item">
- <a class="ui primary basic button" href="{{.ContextUser.HomeLink}}" title="{{.locale.Tr "home.view_home" .ContextUser.Name}}">
- {{.locale.Tr "home.view_home" (.ContextUser.ShortName 40)}}
+ <a class="ui primary basic button" href="{{.ContextUser.HomeLink}}" title="{{ctx.Locale.Tr "home.view_home" .ContextUser.Name}}">
+ {{ctx.Locale.Tr "home.view_home" (.ContextUser.ShortName 40)}}
</a>
</div>
</div>
diff --git a/templates/user/dashboard/repolist.tmpl b/templates/user/dashboard/repolist.tmpl
index 44542d579d..ed6f906822 100644
--- a/templates/user/dashboard/repolist.tmpl
+++ b/templates/user/dashboard/repolist.tmpl
@@ -5,39 +5,39 @@ const data = {
isMirrorsEnabled: {{.MirrorsEnabled}},
isStarsEnabled: {{not .IsDisableStars}},
- textRepository: {{.locale.Tr "repository"}},
- textOrganization: {{.locale.Tr "organization"}},
- textMyRepos: {{.locale.Tr "home.my_repos"}},
- textNewRepo: {{.locale.Tr "new_repo"}},
- textSearchRepos: {{.locale.Tr "home.search_repos"}},
- textFilter: {{.locale.Tr "home.filter"}},
- textShowArchived: {{.locale.Tr "home.show_archived"}},
- textShowPrivate: {{.locale.Tr "home.show_private"}},
-
- textShowBothArchivedUnarchived: {{.locale.Tr "home.show_both_archived_unarchived"}},
- textShowOnlyUnarchived: {{.locale.Tr "home.show_only_unarchived"}},
- textShowOnlyArchived: {{.locale.Tr "home.show_only_archived"}},
-
- textShowBothPrivatePublic: {{.locale.Tr "home.show_both_private_public"}},
- textShowOnlyPublic: {{.locale.Tr "home.show_only_public"}},
- textShowOnlyPrivate: {{.locale.Tr "home.show_only_private"}},
-
- textAll: {{.locale.Tr "all"}},
- textSources: {{.locale.Tr "sources"}},
- textForks: {{.locale.Tr "forks"}},
- textMirrors: {{.locale.Tr "mirrors"}},
- textCollaborative: {{.locale.Tr "collaborative"}},
-
- textFirstPage: {{.locale.Tr "admin.first_page"}},
- textPreviousPage: {{.locale.Tr "repo.issues.previous"}},
- textNextPage: {{.locale.Tr "repo.issues.next"}},
- textLastPage: {{.locale.Tr "admin.last_page"}},
-
- textMyOrgs: {{.locale.Tr "home.my_orgs"}},
- textNewOrg: {{.locale.Tr "new_org"}},
-
- textOrgVisibilityLimited: {{.locale.Tr "org.settings.visibility.limited_shortname"}},
- textOrgVisibilityPrivate: {{.locale.Tr "org.settings.visibility.private_shortname"}},
+ textRepository: {{ctx.Locale.Tr "repository"}},
+ textOrganization: {{ctx.Locale.Tr "organization"}},
+ textMyRepos: {{ctx.Locale.Tr "home.my_repos"}},
+ textNewRepo: {{ctx.Locale.Tr "new_repo"}},
+ textSearchRepos: {{ctx.Locale.Tr "home.search_repos"}},
+ textFilter: {{ctx.Locale.Tr "home.filter"}},
+ textShowArchived: {{ctx.Locale.Tr "home.show_archived"}},
+ textShowPrivate: {{ctx.Locale.Tr "home.show_private"}},
+
+ textShowBothArchivedUnarchived: {{ctx.Locale.Tr "home.show_both_archived_unarchived"}},
+ textShowOnlyUnarchived: {{ctx.Locale.Tr "home.show_only_unarchived"}},
+ textShowOnlyArchived: {{ctx.Locale.Tr "home.show_only_archived"}},
+
+ textShowBothPrivatePublic: {{ctx.Locale.Tr "home.show_both_private_public"}},
+ textShowOnlyPublic: {{ctx.Locale.Tr "home.show_only_public"}},
+ textShowOnlyPrivate: {{ctx.Locale.Tr "home.show_only_private"}},
+
+ textAll: {{ctx.Locale.Tr "all"}},
+ textSources: {{ctx.Locale.Tr "sources"}},
+ textForks: {{ctx.Locale.Tr "forks"}},
+ textMirrors: {{ctx.Locale.Tr "mirrors"}},
+ textCollaborative: {{ctx.Locale.Tr "collaborative"}},
+
+ textFirstPage: {{ctx.Locale.Tr "admin.first_page"}},
+ textPreviousPage: {{ctx.Locale.Tr "repo.issues.previous"}},
+ textNextPage: {{ctx.Locale.Tr "repo.issues.next"}},
+ textLastPage: {{ctx.Locale.Tr "admin.last_page"}},
+
+ textMyOrgs: {{ctx.Locale.Tr "home.my_orgs"}},
+ textNewOrg: {{ctx.Locale.Tr "new_org"}},
+
+ textOrgVisibilityLimited: {{ctx.Locale.Tr "org.settings.visibility.limited_shortname"}},
+ textOrgVisibilityPrivate: {{ctx.Locale.Tr "org.settings.visibility.private_shortname"}},
};
{{if .Team}}
diff --git a/templates/user/heatmap.tmpl b/templates/user/heatmap.tmpl
index 3bf7e6cbbc..fa107e01d5 100644
--- a/templates/user/heatmap.tmpl
+++ b/templates/user/heatmap.tmpl
@@ -1,10 +1,10 @@
{{if .HeatmapData}}
<div id="user-heatmap" class="is-loading"
data-heatmap-data="{{JsonUtils.EncodeToString .HeatmapData}}"
- data-locale-total-contributions="{{$.locale.Tr "heatmap.number_of_contributions_in_the_last_12_months" ($.locale.PrettyNumber .HeatmapTotalContributions)}}"
- data-locale-no-contributions="{{.locale.Tr "heatmap.no_contributions"}}"
- data-locale-more="{{.locale.Tr "heatmap.more"}}"
- data-locale-less="{{.locale.Tr "heatmap.less"}}"
+ data-locale-total-contributions="{{ctx.Locale.Tr "heatmap.number_of_contributions_in_the_last_12_months" ($.locale.PrettyNumber .HeatmapTotalContributions)}}"
+ data-locale-no-contributions="{{ctx.Locale.Tr "heatmap.no_contributions"}}"
+ data-locale-more="{{ctx.Locale.Tr "heatmap.more"}}"
+ data-locale-less="{{ctx.Locale.Tr "heatmap.less"}}"
></div>
<div class="divider"></div>
{{end}}
diff --git a/templates/user/notification/notification_div.tmpl b/templates/user/notification/notification_div.tmpl
index 415051ae95..8bbc67cc69 100644
--- a/templates/user/notification/notification_div.tmpl
+++ b/templates/user/notification/notification_div.tmpl
@@ -4,18 +4,18 @@
<div class="gt-df gt-ac gt-sb gt-mb-4">
<div class="small-menu-items ui compact tiny menu">
<a class="{{if eq .Status 1}}active {{end}}item" href="{{AppSubUrl}}/notifications?q=unread">
- {{.locale.Tr "notification.unread"}}
+ {{ctx.Locale.Tr "notification.unread"}}
<div class="notifications-unread-count ui label {{if not $notificationUnreadCount}}gt-hidden{{end}}">{{$notificationUnreadCount}}</div>
</a>
<a class="{{if eq .Status 2}}active {{end}}item" href="{{AppSubUrl}}/notifications?q=read">
- {{.locale.Tr "notification.read"}}
+ {{ctx.Locale.Tr "notification.read"}}
</a>
</div>
{{if and (eq .Status 1)}}
<form action="{{AppSubUrl}}/notifications/purge" method="post">
{{$.CsrfTokenHtml}}
<div class="{{if not $notificationUnreadCount}}gt-hidden{{end}}">
- <button class="ui mini button primary gt-mr-0" title="{{$.locale.Tr "notification.mark_all_as_read"}}">
+ <button class="ui mini button primary gt-mr-0" title="{{ctx.Locale.Tr "notification.mark_all_as_read"}}">
{{svg "octicon-checklist"}}
</button>
</div>
@@ -28,9 +28,9 @@
<div class="gt-df gt-ac gt-fc gt-p-4">
{{svg "octicon-inbox" 56 "gt-mb-4"}}
{{if eq .Status 1}}
- {{.locale.Tr "notification.no_unread"}}
+ {{ctx.Locale.Tr "notification.no_unread"}}
{{else}}
- {{.locale.Tr "notification.no_read"}}
+ {{ctx.Locale.Tr "notification.no_read"}}
{{end}}
</div>
{{else}}
@@ -74,7 +74,7 @@
{{$.CsrfTokenHtml}}
<input type="hidden" name="notification_id" value="{{.ID}}">
<input type="hidden" name="status" value="pinned">
- <button class="btn interact-bg gt-p-3" title="{{$.locale.Tr "notification.pin"}}"
+ <button class="btn interact-bg gt-p-3" title="{{ctx.Locale.Tr "notification.pin"}}"
data-url="{{AppSubUrl}}/notifications/status"
data-status="pinned"
data-page="{{$.Page.Paginater.Current}}"
@@ -90,7 +90,7 @@
<input type="hidden" name="notification_id" value="{{.ID}}">
<input type="hidden" name="status" value="read">
<input type="hidden" name="page" value="{{$.Page.Paginater.Current}}">
- <button class="btn interact-bg gt-p-3" title="{{$.locale.Tr "notification.mark_as_read"}}"
+ <button class="btn interact-bg gt-p-3" title="{{ctx.Locale.Tr "notification.mark_as_read"}}"
data-url="{{AppSubUrl}}/notifications/status"
data-status="read"
data-page="{{$.Page.Paginater.Current}}"
@@ -105,7 +105,7 @@
<input type="hidden" name="notification_id" value="{{.ID}}">
<input type="hidden" name="status" value="unread">
<input type="hidden" name="page" value="{{$.Page.Paginater.Current}}">
- <button class="btn interact-bg gt-p-3" title="{{$.locale.Tr "notification.mark_as_unread"}}"
+ <button class="btn interact-bg gt-p-3" title="{{ctx.Locale.Tr "notification.mark_as_unread"}}"
data-url="{{AppSubUrl}}/notifications/status"
data-status="unread"
data-page="{{$.Page.Paginater.Current}}"
diff --git a/templates/user/notification/notification_subscriptions.tmpl b/templates/user/notification/notification_subscriptions.tmpl
index 6d3f9759f8..03dbd7c3a7 100644
--- a/templates/user/notification/notification_subscriptions.tmpl
+++ b/templates/user/notification/notification_subscriptions.tmpl
@@ -3,10 +3,10 @@
<div class="ui container">
<div class="ui top attached tabular menu">
<a href="{{AppSubUrl}}/notifications/subscriptions" class="{{if eq .Status 1}}active {{end}}item">
- {{.locale.Tr "notification.subscriptions"}}
+ {{ctx.Locale.Tr "notification.subscriptions"}}
</a>
<a href="{{AppSubUrl}}/notifications/watching" class="{{if eq .Status 2}}active {{end}}item">
- {{.locale.Tr "notification.watching"}}
+ {{ctx.Locale.Tr "notification.watching"}}
</a>
</div>
<div class="ui bottom attached active tab segment">
@@ -15,15 +15,15 @@
<div class="gt-df">
<div class="small-menu-items ui compact tiny menu">
<a class="{{if eq .State "all"}}active {{end}}item" href="{{$.Link}}?sort={{$.SortType}}&state=all&issueType={{$.IssueType}}&labels={{$.Labels}}">
- {{.locale.Tr "all"}}
+ {{ctx.Locale.Tr "all"}}
</a>
<a class="{{if eq .State "open"}}active {{end}}item" href="{{$.Link}}?sort={{$.SortType}}&state=open&issueType={{$.IssueType}}&labels={{$.Labels}}">
{{svg "octicon-issue-opened" 16 "gt-mr-3"}}
- {{.locale.Tr "repo.issues.open_title"}}
+ {{ctx.Locale.Tr "repo.issues.open_title"}}
</a>
<a class="{{if eq .State "closed"}}active {{end}}item" href="{{$.Link}}?sort={{$.SortType}}&state=closed&issueType={{$.IssueType}}&labels={{$.Labels}}">
{{svg "octicon-issue-closed" 16 "gt-mr-3"}}
- {{.locale.Tr "repo.issues.closed_title"}}
+ {{ctx.Locale.Tr "repo.issues.closed_title"}}
</a>
</div>
</div>
@@ -32,31 +32,31 @@
<!-- Type -->
<div class="ui dropdown type jump item">
<span class="text">
- {{.locale.Tr "repo.issues.filter_type"}}
+ {{ctx.Locale.Tr "repo.issues.filter_type"}}
</span>
{{svg "octicon-triangle-down" 14 "dropdown icon"}}
<div class="menu">
- <a class="{{if or (eq .IssueType "all") (not .IssueType)}}active {{end}}item" href="{{$.Link}}?sort={{$.SortType}}&state={{$.State}}&issueType=all&labels={{$.Labels}}">{{.locale.Tr "all"}}</a>
- <a class="{{if eq .IssueType "issues"}}active {{end}}item" href="{{$.Link}}?sort={{$.SortType}}&state={{$.State}}&issueType=issues&labels={{$.Labels}}">{{.locale.Tr "issues"}}</a>
- <a class="{{if eq .IssueType "pulls"}}active {{end}}item" href="{{$.Link}}?sort={{$.SortType}}&state={{$.State}}&issueType=pulls&labels={{$.Labels}}">{{.locale.Tr "pull_requests"}}</a>
+ <a class="{{if or (eq .IssueType "all") (not .IssueType)}}active {{end}}item" href="{{$.Link}}?sort={{$.SortType}}&state={{$.State}}&issueType=all&labels={{$.Labels}}">{{ctx.Locale.Tr "all"}}</a>
+ <a class="{{if eq .IssueType "issues"}}active {{end}}item" href="{{$.Link}}?sort={{$.SortType}}&state={{$.State}}&issueType=issues&labels={{$.Labels}}">{{ctx.Locale.Tr "issues"}}</a>
+ <a class="{{if eq .IssueType "pulls"}}active {{end}}item" href="{{$.Link}}?sort={{$.SortType}}&state={{$.State}}&issueType=pulls&labels={{$.Labels}}">{{ctx.Locale.Tr "pull_requests"}}</a>
</div>
</div>
<!-- Sort -->
<div class="ui dropdown type jump item">
<span class="text">
- {{.locale.Tr "repo.issues.filter_sort"}}
+ {{ctx.Locale.Tr "repo.issues.filter_sort"}}
</span>
{{svg "octicon-triangle-down" 14 "dropdown icon"}}
<div class="menu">
- <a class="{{if or (eq .SortType "latest") (not .SortType)}}active {{end}}item" href="{{$.Link}}?sort=latest&state={{$.State}}&issueType={{$.IssueType}}&labels={{$.Labels}}">{{.locale.Tr "repo.issues.filter_sort.latest"}}</a>
- <a class="{{if eq .SortType "oldest"}}active {{end}}item" href="{{$.Link}}?sort=oldest&state={{$.State}}&issueType={{$.IssueType}}&labels={{$.Labels}}">{{.locale.Tr "repo.issues.filter_sort.oldest"}}</a>
- <a class="{{if eq .SortType "recentupdate"}}active {{end}}item" href="{{$.Link}}?sort=recentupdate&state={{$.State}}&issueType={{$.IssueType}}&labels={{$.Labels}}">{{.locale.Tr "repo.issues.filter_sort.recentupdate"}}</a>
- <a class="{{if eq .SortType "leastupdate"}}active {{end}}item" href="{{$.Link}}?sort=leastupdate&state={{$.State}}&issueType={{$.IssueType}}&labels={{$.Labels}}">{{.locale.Tr "repo.issues.filter_sort.leastupdate"}}</a>
- <a class="{{if eq .SortType "mostcomment"}}active {{end}}item" href="{{$.Link}}?sort=mostcomment&state={{$.State}}&issueType={{$.IssueType}}&labels={{$.Labels}}">{{.locale.Tr "repo.issues.filter_sort.mostcomment"}}</a>
- <a class="{{if eq .SortType "leastcomment"}}active {{end}}item" href="{{$.Link}}?sort=leastcomment&state={{$.State}}&issueType={{$.IssueType}}&labels={{$.Labels}}">{{.locale.Tr "repo.issues.filter_sort.leastcomment"}}</a>
- <a class="{{if eq .SortType "nearduedate"}}active {{end}}item" href="{{$.Link}}?sort=nearduedate&state={{$.State}}&issueType={{$.IssueType}}&labels={{$.Labels}}">{{.locale.Tr "repo.issues.filter_sort.nearduedate"}}</a>
- <a class="{{if eq .SortType "farduedate"}}active {{end}}item" href="{{$.Link}}?sort=farduedate&state={{$.State}}&issueType={{$.IssueType}}&labels={{$.Labels}}">{{.locale.Tr "repo.issues.filter_sort.farduedate"}}</a>
+ <a class="{{if or (eq .SortType "latest") (not .SortType)}}active {{end}}item" href="{{$.Link}}?sort=latest&state={{$.State}}&issueType={{$.IssueType}}&labels={{$.Labels}}">{{ctx.Locale.Tr "repo.issues.filter_sort.latest"}}</a>
+ <a class="{{if eq .SortType "oldest"}}active {{end}}item" href="{{$.Link}}?sort=oldest&state={{$.State}}&issueType={{$.IssueType}}&labels={{$.Labels}}">{{ctx.Locale.Tr "repo.issues.filter_sort.oldest"}}</a>
+ <a class="{{if eq .SortType "recentupdate"}}active {{end}}item" href="{{$.Link}}?sort=recentupdate&state={{$.State}}&issueType={{$.IssueType}}&labels={{$.Labels}}">{{ctx.Locale.Tr "repo.issues.filter_sort.recentupdate"}}</a>
+ <a class="{{if eq .SortType "leastupdate"}}active {{end}}item" href="{{$.Link}}?sort=leastupdate&state={{$.State}}&issueType={{$.IssueType}}&labels={{$.Labels}}">{{ctx.Locale.Tr "repo.issues.filter_sort.leastupdate"}}</a>
+ <a class="{{if eq .SortType "mostcomment"}}active {{end}}item" href="{{$.Link}}?sort=mostcomment&state={{$.State}}&issueType={{$.IssueType}}&labels={{$.Labels}}">{{ctx.Locale.Tr "repo.issues.filter_sort.mostcomment"}}</a>
+ <a class="{{if eq .SortType "leastcomment"}}active {{end}}item" href="{{$.Link}}?sort=leastcomment&state={{$.State}}&issueType={{$.IssueType}}&labels={{$.Labels}}">{{ctx.Locale.Tr "repo.issues.filter_sort.leastcomment"}}</a>
+ <a class="{{if eq .SortType "nearduedate"}}active {{end}}item" href="{{$.Link}}?sort=nearduedate&state={{$.State}}&issueType={{$.IssueType}}&labels={{$.Labels}}">{{ctx.Locale.Tr "repo.issues.filter_sort.nearduedate"}}</a>
+ <a class="{{if eq .SortType "farduedate"}}active {{end}}item" href="{{$.Link}}?sort=farduedate&state={{$.State}}&issueType={{$.IssueType}}&labels={{$.Labels}}">{{ctx.Locale.Tr "repo.issues.filter_sort.farduedate"}}</a>
</div>
</div>
</div>
@@ -64,7 +64,7 @@
</div>
{{if eq (len .Issues) 0}}
<div class="divider"></div>
- {{.locale.Tr "notification.no_subscriptions"}}
+ {{ctx.Locale.Tr "notification.no_subscriptions"}}
{{else}}
{{template "shared/issuelist" dict "." . "listType" "dashboard"}}
{{end}}
diff --git a/templates/user/overview/header.tmpl b/templates/user/overview/header.tmpl
index 895f1efb38..69a4e9a856 100644
--- a/templates/user/overview/header.tmpl
+++ b/templates/user/overview/header.tmpl
@@ -1,41 +1,41 @@
<div class="ui secondary stackable pointing menu">
{{if .HasProfileReadme}}
<a class="{{if eq .TabName "overview"}}active {{end}}item" href="{{.ContextUser.HomeLink}}?tab=overview">
- {{svg "octicon-info"}} {{.locale.Tr "user.overview"}}
+ {{svg "octicon-info"}} {{ctx.Locale.Tr "user.overview"}}
</a>
{{end}}
<a class="{{if eq .TabName "repositories"}}active {{end}} item" href="{{.ContextUser.HomeLink}}?tab=repositories">
- {{svg "octicon-repo"}} {{.locale.Tr "user.repositories"}}
+ {{svg "octicon-repo"}} {{ctx.Locale.Tr "user.repositories"}}
{{if .RepoCount}}
<div class="ui small label">{{.RepoCount}}</div>
{{end}}
</a>
{{if or .ContextUser.IsIndividual (and .ContextUser.IsOrganization .CanReadProjects)}}
<a href="{{.ContextUser.HomeLink}}/-/projects" class="{{if .PageIsViewProjects}}active {{end}}item">
- {{svg "octicon-project-symlink"}} {{.locale.Tr "user.projects"}}
+ {{svg "octicon-project-symlink"}} {{ctx.Locale.Tr "user.projects"}}
</a>
{{end}}
{{if and .IsPackageEnabled (or .ContextUser.IsIndividual (and .ContextUser.IsOrganization .CanReadPackages))}}
<a href="{{.ContextUser.HomeLink}}/-/packages" class="{{if .IsPackagesPage}}active {{end}}item">
- {{svg "octicon-package"}} {{.locale.Tr "packages.title"}}
+ {{svg "octicon-package"}} {{ctx.Locale.Tr "packages.title"}}
</a>
{{end}}
{{if and .IsRepoIndexerEnabled (or .ContextUser.IsIndividual (and .ContextUser.IsOrganization .CanReadCode))}}
<a href="{{.ContextUser.HomeLink}}/-/code" class="{{if .IsCodePage}}active {{end}}item">
- {{svg "octicon-code"}} {{.locale.Tr "user.code"}}
+ {{svg "octicon-code"}} {{ctx.Locale.Tr "user.code"}}
</a>
{{end}}
{{if .ContextUser.IsOrganization}}
{{if .IsOrganizationMember}}
<a class="item" href="{{$.OrgLink}}/members">
- {{svg "octicon-person"}}&nbsp;{{$.locale.Tr "org.members"}}
+ {{svg "octicon-person"}}&nbsp;{{ctx.Locale.Tr "org.members"}}
{{if .NumMembers}}
<div class="ui small label">{{.NumMembers}}</div>
{{end}}
</a>
<a class="item" href="{{$.OrgLink}}/teams">
- {{svg "octicon-people"}}&nbsp;{{$.locale.Tr "org.teams"}}
+ {{svg "octicon-people"}}&nbsp;{{ctx.Locale.Tr "org.teams"}}
{{if .NumTeams}}
<div class="ui small label">{{.NumTeams}}</div>
{{end}}
@@ -45,24 +45,24 @@
{{if .IsOrganizationOwner}}
<div class="right menu">
<a class="item" href="{{.OrgLink}}/settings">
- {{svg "octicon-tools"}} {{.locale.Tr "repo.settings"}}
+ {{svg "octicon-tools"}} {{ctx.Locale.Tr "repo.settings"}}
</a>
</div>
{{end}}
{{else}}
<a class="{{if eq .TabName "activity"}}active {{end}}item" href="{{.ContextUser.HomeLink}}?tab=activity">
- {{svg "octicon-rss"}} {{.locale.Tr "user.activity"}}
+ {{svg "octicon-rss"}} {{ctx.Locale.Tr "user.activity"}}
</a>
{{if not .DisableStars}}
<a class="{{if eq .TabName "stars"}}active {{end}}item" href="{{.ContextUser.HomeLink}}?tab=stars">
- {{svg "octicon-star"}} {{.locale.Tr "user.starred"}}
+ {{svg "octicon-star"}} {{ctx.Locale.Tr "user.starred"}}
{{if .ContextUser.NumStars}}
<div class="ui small label">{{.ContextUser.NumStars}}</div>
{{end}}
</a>
{{else}}
<a class="{{if eq .TabName "watching"}}active {{end}}item" href="{{.ContextUser.HomeLink}}?tab=watching">
- {{svg "octicon-eye"}} {{.locale.Tr "user.watched"}}
+ {{svg "octicon-eye"}} {{ctx.Locale.Tr "user.watched"}}
</a>
{{end}}
{{end}}
diff --git a/templates/user/profile.tmpl b/templates/user/profile.tmpl
index 2b81a23492..426b5f042a 100644
--- a/templates/user/profile.tmpl
+++ b/templates/user/profile.tmpl
@@ -13,7 +13,7 @@
{{if eq .TabName "activity"}}
{{if .ContextUser.KeepActivityPrivate}}
<div class="ui info message">
- <p>{{.locale.Tr "user.disabled_public_activity"}}</p>
+ <p>{{ctx.Locale.Tr "user.disabled_public_activity"}}</p>
</div>
{{end}}
{{template "user/heatmap" .}}
diff --git a/templates/user/settings/account.tmpl b/templates/user/settings/account.tmpl
index 173cd5e991..6e8386988a 100644
--- a/templates/user/settings/account.tmpl
+++ b/templates/user/settings/account.tmpl
@@ -1,7 +1,7 @@
{{template "user/settings/layout_head" (dict "ctxData" . "pageClass" "user settings account")}}
<div class="user-setting-content">
<h4 class="ui top attached header">
- {{.locale.Tr "settings.password"}}
+ {{ctx.Locale.Tr "settings.password"}}
</h4>
<div class="ui attached segment">
{{if or (.SignedUser.IsLocal) (.SignedUser.IsOAuth2)}}
@@ -10,39 +10,39 @@
{{.CsrfTokenHtml}}
{{if .SignedUser.IsPasswordSet}}
<div class="required field {{if .Err_OldPassword}}error{{end}}">
- <label for="old_password">{{.locale.Tr "settings.old_password"}}</label>
+ <label for="old_password">{{ctx.Locale.Tr "settings.old_password"}}</label>
<input id="old_password" name="old_password" type="password" autocomplete="current-password" autofocus required>
</div>
{{end}}
<div class="required field {{if .Err_Password}}error{{end}}">
- <label for="password">{{.locale.Tr "settings.new_password"}}</label>
+ <label for="password">{{ctx.Locale.Tr "settings.new_password"}}</label>
<input id="password" name="password" type="password" autocomplete="new-password" required>
</div>
<div class="required field {{if .Err_Password}}error{{end}}">
- <label for="retype">{{.locale.Tr "settings.retype_new_password"}}</label>
+ <label for="retype">{{ctx.Locale.Tr "settings.retype_new_password"}}</label>
<input id="retype" name="retype" type="password" autocomplete="new-password" required>
</div>
<div class="field">
- <button class="ui primary button">{{$.locale.Tr "settings.change_password"}}</button>
- <a href="{{AppSubUrl}}/user/forgot_password?email={{.Email}}">{{.locale.Tr "auth.forgot_password"}}</a>
+ <button class="ui primary button">{{ctx.Locale.Tr "settings.change_password"}}</button>
+ <a href="{{AppSubUrl}}/user/forgot_password?email={{.Email}}">{{ctx.Locale.Tr "auth.forgot_password"}}</a>
</div>
</form>
{{else}}
<div class="ui info message">
- <p class="text left">{{$.locale.Tr "settings.password_change_disabled"}}</p>
+ <p class="text left">{{ctx.Locale.Tr "settings.password_change_disabled"}}</p>
</div>
{{end}}
</div>
<h4 class="ui top attached header">
- {{.locale.Tr "settings.manage_emails"}}
+ {{ctx.Locale.Tr "settings.manage_emails"}}
</h4>
<div class="ui attached segment">
<div class="ui list">
{{if $.EnableNotifyMail}}
<div class="item">
- <div class="gt-mb-3">{{.locale.Tr "settings.email_desc"}}</div>
+ <div class="gt-mb-3">{{ctx.Locale.Tr "settings.email_desc"}}</div>
<form action="{{AppSubUrl}}/user/settings/account/email" class="ui form" method="post">
{{$.CsrfTokenHtml}}
<input name="_method" type="hidden" value="NOTIFICATION">
@@ -52,13 +52,13 @@
{{svg "octicon-triangle-down" 14 "dropdown icon"}}
<div class="text"></div>
<div class="menu">
- <div data-value="enabled" class="{{if eq .EmailNotificationsPreference "enabled"}}active selected {{end}}item">{{$.locale.Tr "settings.email_notifications.enable"}}</div>
- <div data-value="andyourown" class="{{if eq .EmailNotificationsPreference "andyourown"}}active selected {{end}}item">{{$.locale.Tr "settings.email_notifications.andyourown"}}</div>
- <div data-value="onmention" class="{{if eq .EmailNotificationsPreference "onmention"}}active selected {{end}}item">{{$.locale.Tr "settings.email_notifications.onmention"}}</div>
- <div data-value="disabled" class="{{if eq .EmailNotificationsPreference "disabled"}}active selected {{end}}item">{{$.locale.Tr "settings.email_notifications.disable"}}</div>
+ <div data-value="enabled" class="{{if eq .EmailNotificationsPreference "enabled"}}active selected {{end}}item">{{ctx.Locale.Tr "settings.email_notifications.enable"}}</div>
+ <div data-value="andyourown" class="{{if eq .EmailNotificationsPreference "andyourown"}}active selected {{end}}item">{{ctx.Locale.Tr "settings.email_notifications.andyourown"}}</div>
+ <div data-value="onmention" class="{{if eq .EmailNotificationsPreference "onmention"}}active selected {{end}}item">{{ctx.Locale.Tr "settings.email_notifications.onmention"}}</div>
+ <div data-value="disabled" class="{{if eq .EmailNotificationsPreference "disabled"}}active selected {{end}}item">{{ctx.Locale.Tr "settings.email_notifications.disable"}}</div>
</div>
</div>
- <button class="ui primary button">{{$.locale.Tr "settings.email_notifications.submit"}}</button>
+ <button class="ui primary button">{{ctx.Locale.Tr "settings.email_notifications.submit"}}</button>
</div>
</form>
</div>
@@ -68,7 +68,7 @@
{{if not .IsPrimary}}
<div class="right floated content">
<button class="ui red tiny button delete-button" data-modal-id="delete-email" data-url="{{AppSubUrl}}/user/settings/account/email/delete" data-id="{{.ID}}">
- {{$.locale.Tr "settings.delete_email"}}
+ {{ctx.Locale.Tr "settings.delete_email"}}
</button>
</div>
{{if .CanBePrimary}}
@@ -77,7 +77,7 @@
{{$.CsrfTokenHtml}}
<input name="_method" type="hidden" value="PRIMARY">
<input name="id" type="hidden" value="{{.ID}}">
- <button class="ui primary tiny button">{{$.locale.Tr "settings.primary_email"}}</button>
+ <button class="ui primary tiny button">{{ctx.Locale.Tr "settings.primary_email"}}</button>
</form>
</div>
{{end}}
@@ -89,9 +89,9 @@
<input name="_method" type="hidden" value="SENDACTIVATION">
<input name="id" type="hidden" value="{{.ID}}">
{{if $.ActivationsPending}}
- <button disabled class="ui primary tiny button">{{$.locale.Tr "settings.activations_pending"}}</button>
+ <button disabled class="ui primary tiny button">{{ctx.Locale.Tr "settings.activations_pending"}}</button>
{{else}}
- <button class="ui primary tiny button">{{$.locale.Tr "settings.activate_email"}}</button>
+ <button class="ui primary tiny button">{{ctx.Locale.Tr "settings.activate_email"}}</button>
{{end}}
</form>
</div>
@@ -99,12 +99,12 @@
<div class="content gt-py-3">
<strong>{{.Email}}</strong>
{{if .IsPrimary}}
- <div class="ui primary label">{{$.locale.Tr "settings.primary"}}</div>
+ <div class="ui primary label">{{ctx.Locale.Tr "settings.primary"}}</div>
{{end}}
{{if .IsActivated}}
- <div class="ui green label">{{$.locale.Tr "settings.activated"}}</div>
+ <div class="ui green label">{{ctx.Locale.Tr "settings.activated"}}</div>
{{else}}
- <div class="ui label">{{$.locale.Tr "settings.requires_activation"}}</div>
+ <div class="ui label">{{ctx.Locale.Tr "settings.requires_activation"}}</div>
{{end}}
</div>
</div>
@@ -115,41 +115,41 @@
<form class="ui form" action="{{AppSubUrl}}/user/settings/account/email" method="post">
{{.CsrfTokenHtml}}
<div class="required field {{if .Err_Email}}error{{end}}">
- <label for="email">{{.locale.Tr "settings.add_new_email"}}</label>
+ <label for="email">{{ctx.Locale.Tr "settings.add_new_email"}}</label>
<input id="email" name="email" type="email" required {{if not .CanAddEmails}}disabled{{end}}>
</div>
<button class="ui primary button" {{if not .CanAddEmails}}disabled{{end}}>
- {{.locale.Tr "settings.add_email"}}
+ {{ctx.Locale.Tr "settings.add_email"}}
</button>
</form>
{{/* if ActivationsPending is false, then CanAddEmails must be true, so if CanAddEmails is false, ActivationsPending must be true */}}
{{if not .CanAddEmails}}
- <div class="ui warning message">{{.locale.Tr "settings.can_not_add_email_activations_pending"}}</div>
+ <div class="ui warning message">{{ctx.Locale.Tr "settings.can_not_add_email_activations_pending"}}</div>
{{end}}
</div>
<h4 class="ui top attached error header">
- {{.locale.Tr "settings.delete_account"}}
+ {{ctx.Locale.Tr "settings.delete_account"}}
</h4>
<div class="ui attached error segment">
<div class="ui red message">
- <p class="text left">{{svg "octicon-alert"}} {{.locale.Tr "settings.delete_prompt" | Str2html}}</p>
+ <p class="text left">{{svg "octicon-alert"}} {{ctx.Locale.Tr "settings.delete_prompt" | Str2html}}</p>
{{if .UserDeleteWithComments}}
- <p class="text left gt-font-semibold">{{.locale.Tr "settings.delete_with_all_comments" .UserDeleteWithCommentsMaxTime | Str2html}}</p>
+ <p class="text left gt-font-semibold">{{ctx.Locale.Tr "settings.delete_with_all_comments" .UserDeleteWithCommentsMaxTime | Str2html}}</p>
{{end}}
</div>
<form class="ui form ignore-dirty" id="delete-form" action="{{AppSubUrl}}/user/settings/account/delete" method="post">
{{template "base/disable_form_autofill"}}
{{.CsrfTokenHtml}}
<div class="required field {{if .Err_Password}}error{{end}}">
- <label for="password-confirmation">{{.locale.Tr "password"}}</label>
+ <label for="password-confirmation">{{ctx.Locale.Tr "password"}}</label>
<input id="password-confirmation" name="password" type="password" autocomplete="off" required>
</div>
<div class="field">
<button class="ui red button delete-button" data-modal-id="delete-account" data-type="form" data-form="#delete-form">
- {{.locale.Tr "settings.confirm_delete_account"}}
+ {{ctx.Locale.Tr "settings.confirm_delete_account"}}
</button>
- <a href="{{AppSubUrl}}/user/forgot_password?email={{.Email}}">{{.locale.Tr "auth.forgot_password"}}</a>
+ <a href="{{AppSubUrl}}/user/forgot_password?email={{.Email}}">{{ctx.Locale.Tr "auth.forgot_password"}}</a>
</div>
</form>
</div>
@@ -158,10 +158,10 @@
<div class="ui g-modal-confirm delete modal" id="delete-email">
<div class="header">
{{svg "octicon-trash"}}
- {{.locale.Tr "settings.email_deletion"}}
+ {{ctx.Locale.Tr "settings.email_deletion"}}
</div>
<div class="content">
- <p>{{.locale.Tr "settings.email_deletion_desc"}}</p>
+ <p>{{ctx.Locale.Tr "settings.email_deletion_desc"}}</p>
</div>
{{template "base/modal_actions_confirm" .}}
</div>
@@ -169,10 +169,10 @@
<div class="ui g-modal-confirm delete modal" id="delete-account">
<div class="header">
{{svg "octicon-trash"}}
- {{.locale.Tr "settings.delete_account_title"}}
+ {{ctx.Locale.Tr "settings.delete_account_title"}}
</div>
<div class="content">
- <p>{{.locale.Tr "settings.delete_account_desc"}}</p>
+ <p>{{ctx.Locale.Tr "settings.delete_account_desc"}}</p>
</div>
{{template "base/modal_actions_confirm" .}}
</div>
diff --git a/templates/user/settings/appearance.tmpl b/templates/user/settings/appearance.tmpl
index ca7ef15de5..0997d721e1 100644
--- a/templates/user/settings/appearance.tmpl
+++ b/templates/user/settings/appearance.tmpl
@@ -3,18 +3,18 @@
<!-- Theme -->
<h4 class="ui top attached header">
- {{.locale.Tr "settings.manage_themes"}}
+ {{ctx.Locale.Tr "settings.manage_themes"}}
</h4>
<div class="ui attached segment">
<div class="ui email list">
<div class="item">
- {{.locale.Tr "settings.theme_desc"}}
+ {{ctx.Locale.Tr "settings.theme_desc"}}
</div>
<form class="ui form" action="{{.Link}}/theme" method="post">
{{.CsrfTokenHtml}}
<div class="field">
- <label for="ui">{{.locale.Tr "settings.ui"}}</label>
+ <label for="ui">{{ctx.Locale.Tr "settings.ui"}}</label>
<div class="ui selection dropdown" id="ui">
<input name="theme" type="hidden" value="{{.SignedUser.Theme}}">
{{svg "octicon-triangle-down" 14 "dropdown icon"}}
@@ -35,7 +35,7 @@
</div>
<div class="field">
- <button class="ui primary button">{{$.locale.Tr "settings.update_theme"}}</button>
+ <button class="ui primary button">{{ctx.Locale.Tr "settings.update_theme"}}</button>
</div>
</form>
</div>
@@ -43,7 +43,7 @@
<!-- Language -->
<h4 class="ui top attached header">
- {{.locale.Tr "settings.language"}}
+ {{ctx.Locale.Tr "settings.language"}}
</h4>
<div class="ui attached segment">
<form class="ui form" action="{{.Link}}/language" method="post">
@@ -61,108 +61,108 @@
</div>
</div>
<div class="field">
- <button class="ui primary button">{{$.locale.Tr "settings.update_language"}}</button>
+ <button class="ui primary button">{{ctx.Locale.Tr "settings.update_language"}}</button>
</div>
</form>
</div>
<!-- Shown comment event types -->
<h4 class="ui top attached header">
- {{.locale.Tr "settings.hidden_comment_types"}}
+ {{ctx.Locale.Tr "settings.hidden_comment_types"}}
</h4>
<div class="ui attached segment">
<p class="help">
- {{.locale.Tr "settings.hidden_comment_types_description"}}
+ {{ctx.Locale.Tr "settings.hidden_comment_types_description"}}
</p>
<form class="ui form" action="{{.Link}}/hidden_comments" method="post">
{{.CsrfTokenHtml}}
<div class="inline field">
- <div class="ui checkbox" data-tooltip-content="{{.locale.Tr "settings.hidden_comment_types.ref_tooltip"}}">
+ <div class="ui checkbox" data-tooltip-content="{{ctx.Locale.Tr "settings.hidden_comment_types.ref_tooltip"}}">
<input name="reference" type="checkbox" {{if(call .IsCommentTypeGroupChecked "reference")}}checked{{end}}>
- <label>{{.locale.Tr "settings.comment_type_group_reference"}}</label>
+ <label>{{ctx.Locale.Tr "settings.comment_type_group_reference"}}</label>
</div>
</div>
<div class="inline field">
<div class="ui checkbox">
<input name="label" type="checkbox" {{if (call .IsCommentTypeGroupChecked "label")}}checked{{end}}>
- <label>{{.locale.Tr "settings.comment_type_group_label"}}</label>
+ <label>{{ctx.Locale.Tr "settings.comment_type_group_label"}}</label>
</div>
</div>
<div class="inline field">
<div class="ui checkbox">
<input name="milestone" type="checkbox" {{if (call .IsCommentTypeGroupChecked "milestone")}}checked{{end}}>
- <label>{{.locale.Tr "settings.comment_type_group_milestone"}}</label>
+ <label>{{ctx.Locale.Tr "settings.comment_type_group_milestone"}}</label>
</div>
</div>
<div class="inline field">
<div class="ui checkbox">
<input name="assignee" type="checkbox" {{if (call .IsCommentTypeGroupChecked "assignee")}}checked{{end}}>
- <label>{{.locale.Tr "settings.comment_type_group_assignee"}}</label>
+ <label>{{ctx.Locale.Tr "settings.comment_type_group_assignee"}}</label>
</div>
</div>
<div class="inline field">
<div class="ui checkbox">
<input name="title" type="checkbox" {{if (call .IsCommentTypeGroupChecked "title")}}checked{{end}}>
- <label>{{.locale.Tr "settings.comment_type_group_title"}}</label>
+ <label>{{ctx.Locale.Tr "settings.comment_type_group_title"}}</label>
</div>
</div>
<div class="inline field">
<div class="ui checkbox">
<input name="branch" type="checkbox" {{if (call .IsCommentTypeGroupChecked "branch")}}checked{{end}}>
- <label>{{.locale.Tr "settings.comment_type_group_branch"}}</label>
+ <label>{{ctx.Locale.Tr "settings.comment_type_group_branch"}}</label>
</div>
</div>
<div class="inline field">
<div class="ui checkbox">
<input name="time_tracking" type="checkbox" {{if (call .IsCommentTypeGroupChecked "time_tracking")}}checked{{end}}>
- <label>{{.locale.Tr "settings.comment_type_group_time_tracking"}}</label>
+ <label>{{ctx.Locale.Tr "settings.comment_type_group_time_tracking"}}</label>
</div>
</div>
<div class="inline field">
<div class="ui checkbox">
<input name="deadline" type="checkbox" {{if (call .IsCommentTypeGroupChecked "deadline")}}checked{{end}}>
- <label>{{.locale.Tr "settings.comment_type_group_deadline"}}</label>
+ <label>{{ctx.Locale.Tr "settings.comment_type_group_deadline"}}</label>
</div>
</div>
<div class="inline field">
<div class="ui checkbox">
<input name="dependency" type="checkbox" {{if (call .IsCommentTypeGroupChecked "dependency")}}checked{{end}}>
- <label>{{.locale.Tr "settings.comment_type_group_dependency"}}</label>
+ <label>{{ctx.Locale.Tr "settings.comment_type_group_dependency"}}</label>
</div>
</div>
<div class="inline field">
<div class="ui checkbox">
<input name="lock" type="checkbox" {{if (call .IsCommentTypeGroupChecked "lock")}}checked{{end}}>
- <label>{{.locale.Tr "settings.comment_type_group_lock"}}</label>
+ <label>{{ctx.Locale.Tr "settings.comment_type_group_lock"}}</label>
</div>
</div>
<div class="inline field">
<div class="ui checkbox">
<input name="review_request" type="checkbox" {{if (call .IsCommentTypeGroupChecked "review_request")}}checked{{end}}>
- <label>{{.locale.Tr "settings.comment_type_group_review_request"}}</label>
+ <label>{{ctx.Locale.Tr "settings.comment_type_group_review_request"}}</label>
</div>
</div>
<div class="inline field">
<div class="ui checkbox">
<input name="pull_request_push" type="checkbox" {{if (call .IsCommentTypeGroupChecked "pull_request_push")}}checked{{end}}>
- <label>{{.locale.Tr "settings.comment_type_group_pull_request_push"}}</label>
+ <label>{{ctx.Locale.Tr "settings.comment_type_group_pull_request_push"}}</label>
</div>
</div>
<div class="inline field">
<div class="ui checkbox">
<input name="project" type="checkbox" {{if (call .IsCommentTypeGroupChecked "project")}}checked{{end}}>
- <label>{{.locale.Tr "settings.comment_type_group_project"}}</label>
+ <label>{{ctx.Locale.Tr "settings.comment_type_group_project"}}</label>
</div>
</div>
<div class="inline field">
- <div class="ui checkbox" data-tooltip-content="{{.locale.Tr "settings.hidden_comment_types.issue_ref_tooltip"}}">
+ <div class="ui checkbox" data-tooltip-content="{{ctx.Locale.Tr "settings.hidden_comment_types.issue_ref_tooltip"}}">
<input name="issue_ref" type="checkbox" {{if (call .IsCommentTypeGroupChecked "issue_ref")}}checked{{end}}>
- <label>{{.locale.Tr "settings.comment_type_group_issue_ref"}}</label>
+ <label>{{ctx.Locale.Tr "settings.comment_type_group_issue_ref"}}</label>
</div>
</div>
<div class="field">
- <button class="ui primary button">{{$.locale.Tr "save"}}</button>
+ <button class="ui primary button">{{ctx.Locale.Tr "save"}}</button>
</div>
</form>
</div>
diff --git a/templates/user/settings/applications.tmpl b/templates/user/settings/applications.tmpl
index 0d37e717e6..f3b2a9d8af 100644
--- a/templates/user/settings/applications.tmpl
+++ b/templates/user/settings/applications.tmpl
@@ -1,17 +1,17 @@
{{template "user/settings/layout_head" (dict "ctxData" . "pageClass" "user settings applications")}}
<div class="user-setting-content">
<h4 class="ui top attached header">
- {{.locale.Tr "settings.manage_access_token"}}
+ {{ctx.Locale.Tr "settings.manage_access_token"}}
</h4>
<div class="ui attached segment">
<div class="flex-list">
<div class="flex-item">
- {{.locale.Tr "settings.tokens_desc"}}
+ {{ctx.Locale.Tr "settings.tokens_desc"}}
</div>
{{range .Tokens}}
<div class="flex-item">
<div class="flex-item-leading">
- <span class="text {{if .HasRecentActivity}}green{{end}}" {{if .HasRecentActivity}}data-tooltip-content="{{$.locale.Tr "settings.token_state_desc"}}"{{end}}>
+ <span class="text {{if .HasRecentActivity}}green{{end}}" {{if .HasRecentActivity}}data-tooltip-content="{{ctx.Locale.Tr "settings.token_state_desc"}}"{{end}}>
{{svg "fontawesome-send" 32}}
</span>
</div>
@@ -19,14 +19,14 @@
<details>
<summary><span class="flex-item-title">{{.Name}}</span></summary>
<p class="gt-my-2">
- {{$.locale.Tr "settings.repo_and_org_access"}}:
+ {{ctx.Locale.Tr "settings.repo_and_org_access"}}:
{{if .DisplayPublicOnly}}
- {{$.locale.Tr "settings.permissions_public_only"}}
+ {{ctx.Locale.Tr "settings.permissions_public_only"}}
{{else}}
- {{$.locale.Tr "settings.permissions_access_all"}}
+ {{ctx.Locale.Tr "settings.permissions_access_all"}}
{{end}}
</p>
- <p class="gt-my-2">{{$.locale.Tr "settings.permissions_list"}}</p>
+ <p class="gt-my-2">{{ctx.Locale.Tr "settings.permissions_list"}}</p>
<ul class="gt-my-2">
{{range .Scope.StringSlice}}
{{if (ne . $.AccessTokenScopePublicOnly)}}
@@ -36,13 +36,13 @@
</ul>
</details>
<div class="flex-item-body">
- <i>{{$.locale.Tr "settings.added_on" (DateTime "short" .CreatedUnix) | Safe}} — {{svg "octicon-info"}} {{if .HasUsed}}{{$.locale.Tr "settings.last_used"}} <span {{if .HasRecentActivity}}class="text green"{{end}}>{{DateTime "short" .UpdatedUnix}}</span>{{else}}{{$.locale.Tr "settings.no_activity"}}{{end}}</i>
+ <i>{{ctx.Locale.Tr "settings.added_on" (DateTime "short" .CreatedUnix) | Safe}} — {{svg "octicon-info"}} {{if .HasUsed}}{{ctx.Locale.Tr "settings.last_used"}} <span {{if .HasRecentActivity}}class="text green"{{end}}>{{DateTime "short" .UpdatedUnix}}</span>{{else}}{{$.locale.Tr "settings.no_activity"}}{{end}}</i>
</div>
</div>
<div class="flex-item-trailing">
<button class="ui red tiny button delete-button" data-modal-id="delete-token" data-url="{{$.Link}}/delete" data-id="{{.ID}}">
{{svg "octicon-trash" 16 "gt-mr-2"}}
- {{$.locale.Tr "settings.delete_token"}}
+ {{ctx.Locale.Tr "settings.delete_token"}}
</button>
</div>
</div>
@@ -51,47 +51,47 @@
</div>
<div class="ui attached bottom segment">
<h5 class="ui top header">
- {{.locale.Tr "settings.generate_new_token"}}
+ {{ctx.Locale.Tr "settings.generate_new_token"}}
</h5>
<form id="scoped-access-form" class="ui form ignore-dirty" action="{{.Link}}" method="post">
{{.CsrfTokenHtml}}
<div class="field {{if .Err_Name}}error{{end}}">
- <label for="name">{{.locale.Tr "settings.token_name"}}</label>
+ <label for="name">{{ctx.Locale.Tr "settings.token_name"}}</label>
<input id="name" name="name" value="{{.name}}" autofocus required maxlength="255">
</div>
<div class="field">
- <label>{{.locale.Tr "settings.repo_and_org_access"}}</label>
+ <label>{{ctx.Locale.Tr "settings.repo_and_org_access"}}</label>
<label class="gt-cursor-pointer">
<input class="enable-system gt-mt-2 gt-mr-2" type="radio" name="scope" value="{{$.AccessTokenScopePublicOnly}}">
- {{.locale.Tr "settings.permissions_public_only"}}
+ {{ctx.Locale.Tr "settings.permissions_public_only"}}
</label>
<label class="gt-cursor-pointer">
<input class="enable-system gt-mt-2 gt-mr-2" type="radio" name="scope" value="" checked>
- {{.locale.Tr "settings.permissions_access_all"}}
+ {{ctx.Locale.Tr "settings.permissions_access_all"}}
</label>
</div>
<details class="ui optional field">
<summary class="gt-pb-4 gt-pl-2">
- {{.locale.Tr "settings.select_permissions"}}
+ {{ctx.Locale.Tr "settings.select_permissions"}}
</summary>
<p class="activity meta">
- <i>{{$.locale.Tr "settings.access_token_desc" (printf `href="/api/swagger" target="_blank"`) (printf `href="https://docs.gitea.com/development/oauth2-provider#scopes" target="_blank"`) | Str2html}}</i>
+ <i>{{ctx.Locale.Tr "settings.access_token_desc" (printf `href="/api/swagger" target="_blank"`) (printf `href="https://docs.gitea.com/development/oauth2-provider#scopes" target="_blank"`) | Str2html}}</i>
</p>
<div class="scoped-access-token-mount">
<scoped-access-token-selector
:is-admin="{{if .IsAdmin}}true{{else}}false{{end}}"
- no-access-label="{{.locale.Tr "settings.permission_no_access"}}"
- read-label="{{.locale.Tr "settings.permission_read"}}"
- write-label="{{.locale.Tr "settings.permission_write"}}"
+ no-access-label="{{ctx.Locale.Tr "settings.permission_no_access"}}"
+ read-label="{{ctx.Locale.Tr "settings.permission_read"}}"
+ write-label="{{ctx.Locale.Tr "settings.permission_write"}}"
></scoped-access-token-selector>
</div>
</details>
<button id="scoped-access-submit" class="ui primary button">
- {{.locale.Tr "settings.generate_token"}}
+ {{ctx.Locale.Tr "settings.generate_token"}}
</button>
</form>{{/* Fomantic ".ui.form .warning.message" is hidden by default, so put the warning message out of the form*/}}
<div id="scoped-access-warning" class="ui warning message center gt-hidden">
- {{.locale.Tr "settings.at_least_one_permission"}}
+ {{ctx.Locale.Tr "settings.at_least_one_permission"}}
</div>
</div>
@@ -104,10 +104,10 @@
<div class="ui g-modal-confirm delete modal" id="delete-token">
<div class="header">
{{svg "octicon-trash"}}
- {{.locale.Tr "settings.access_token_deletion"}}
+ {{ctx.Locale.Tr "settings.access_token_deletion"}}
</div>
<div class="content">
- <p>{{.locale.Tr "settings.access_token_deletion_desc"}}</p>
+ <p>{{ctx.Locale.Tr "settings.access_token_deletion_desc"}}</p>
</div>
{{template "base/modal_actions_confirm" (dict "ModalButtonColors" "yellow")}}
</div>
diff --git a/templates/user/settings/applications_oauth2.tmpl b/templates/user/settings/applications_oauth2.tmpl
index 47d8dfc2de..866a1f87d3 100644
--- a/templates/user/settings/applications_oauth2.tmpl
+++ b/templates/user/settings/applications_oauth2.tmpl
@@ -1,5 +1,5 @@
<h4 class="ui top attached header">
- {{.locale.Tr "settings.manage_oauth2_applications"}}
+ {{ctx.Locale.Tr "settings.manage_oauth2_applications"}}
</h4>
{{template "user/settings/applications_oauth2_list" .}}
diff --git a/templates/user/settings/applications_oauth2_edit_form.tmpl b/templates/user/settings/applications_oauth2_edit_form.tmpl
index 1437277009..c0bddd55b3 100644
--- a/templates/user/settings/applications_oauth2_edit_form.tmpl
+++ b/templates/user/settings/applications_oauth2_edit_form.tmpl
@@ -1,23 +1,23 @@
<h4 class="ui top attached header">
- {{.locale.Tr "settings.edit_oauth2_application"}}
+ {{ctx.Locale.Tr "settings.edit_oauth2_application"}}
</h4>
<div class="ui attached segment">
- <p>{{.locale.Tr "settings.oauth2_application_create_description"}}</p>
+ <p>{{ctx.Locale.Tr "settings.oauth2_application_create_description"}}</p>
</div>
<div class="ui attached segment form ignore-dirty">
{{.CsrfTokenHtml}}
<div class="field">
- <label for="client-id">{{.locale.Tr "settings.oauth2_client_id"}}</label>
+ <label for="client-id">{{ctx.Locale.Tr "settings.oauth2_client_id"}}</label>
<input id="client-id" readonly value="{{.App.ClientID}}">
</div>
{{if .ClientSecret}}
<div class="field">
- <label for="client-secret">{{.locale.Tr "settings.oauth2_client_secret"}}</label>
+ <label for="client-secret">{{ctx.Locale.Tr "settings.oauth2_client_secret"}}</label>
<input id="client-secret" type="text" readonly value="{{.ClientSecret}}">
</div>
{{else}}
<div class="field">
- <label for="client-secret">{{.locale.Tr "settings.oauth2_client_secret"}}</label>
+ <label for="client-secret">{{ctx.Locale.Tr "settings.oauth2_client_secret"}}</label>
<input id="client-secret" type="password" readonly value="averysecuresecret">
</div>
{{end}}
@@ -25,8 +25,8 @@
<!-- TODO add regenerate secret functionality */ -->
<form class="ui form ignore-dirty" action="{{.FormActionPath}}/regenerate_secret" method="post">
{{.CsrfTokenHtml}}
- {{.locale.Tr "settings.oauth2_regenerate_secret_hint"}}
- <button class="ui mini button gt-ml-3" type="submit">{{.locale.Tr "settings.oauth2_regenerate_secret"}}</button>
+ {{ctx.Locale.Tr "settings.oauth2_regenerate_secret_hint"}}
+ <button class="ui mini button gt-ml-3" type="submit">{{ctx.Locale.Tr "settings.oauth2_regenerate_secret"}}</button>
</form>
</div>
</div>
@@ -34,19 +34,19 @@
<form class="ui form ignore-dirty" action="{{.FormActionPath}}" method="post">
{{.CsrfTokenHtml}}
<div class="field {{if .Err_AppName}}error{{end}}">
- <label for="application-name">{{.locale.Tr "settings.oauth2_application_name"}}</label>
+ <label for="application-name">{{ctx.Locale.Tr "settings.oauth2_application_name"}}</label>
<input id="application-name" value="{{.App.Name}}" name="application_name" required maxlength="255">
</div>
<div class="field {{if .Err_RedirectURI}}error{{end}}">
- <label for="redirect-uris">{{.locale.Tr "settings.oauth2_redirect_uris"}}</label>
+ <label for="redirect-uris">{{ctx.Locale.Tr "settings.oauth2_redirect_uris"}}</label>
<textarea name="redirect_uris" id="redirect-uris" required>{{StringUtils.Join .App.RedirectURIs "\n"}}</textarea>
</div>
<div class="field ui checkbox {{if .Err_ConfidentialClient}}error{{end}}">
- <label>{{.locale.Tr "settings.oauth2_confidential_client"}}</label>
+ <label>{{ctx.Locale.Tr "settings.oauth2_confidential_client"}}</label>
<input type="checkbox" name="confidential_client" {{if .App.ConfidentialClient}}checked{{end}}>
</div>
<button class="ui primary button">
- {{.locale.Tr "settings.save_application"}}
+ {{ctx.Locale.Tr "settings.save_application"}}
</button>
</form>
</div>
diff --git a/templates/user/settings/applications_oauth2_list.tmpl b/templates/user/settings/applications_oauth2_list.tmpl
index a92909f77f..bf6b28ec5f 100644
--- a/templates/user/settings/applications_oauth2_list.tmpl
+++ b/templates/user/settings/applications_oauth2_list.tmpl
@@ -1,7 +1,7 @@
<div class="ui attached segment">
<div class="flex-list">
<div class="flex-item">
- {{.locale.Tr "settings.oauth2_application_create_description"}}
+ {{ctx.Locale.Tr "settings.oauth2_application_create_description"}}
</div>
{{range .Applications}}
<div class="flex-item gt-ac">
@@ -11,23 +11,23 @@
<div class="flex-item-main">
<div class="flex-item-title">{{.Name}}</div>
<div class="flex-item-body">
- {{$.locale.Tr "settings.oauth2_client_id"}}
+ {{ctx.Locale.Tr "settings.oauth2_client_id"}}
<span class="ui label">{{.ClientID}}</span>
</div>
</div>
{{$isBuiltin := and $.BuiltinApplications (index $.BuiltinApplications .ClientID)}}
<div class="flex-item-trailing">
{{if $isBuiltin}}
- <span class="ui basic label" data-tooltip-content="{{$.locale.Tr "settings.oauth2_application_locked"}}">{{ctx.Locale.Tr "locked"}}</span>
+ <span class="ui basic label" data-tooltip-content="{{ctx.Locale.Tr "settings.oauth2_application_locked"}}">{{ctx.Locale.Tr "locked"}}</span>
{{else}}
<a href="{{$.Link}}/oauth2/{{.ID}}" class="ui primary tiny button">
{{svg "octicon-pencil" 16 "gt-mr-2"}}
- {{$.locale.Tr "settings.oauth2_application_edit"}}
+ {{ctx.Locale.Tr "settings.oauth2_application_edit"}}
</a>
<button class="ui red tiny button delete-button" data-modal-id="remove-gitea-oauth2-application"
data-url="{{$.Link}}/oauth2/{{.ID}}/delete">
{{svg "octicon-trash" 16 "gt-mr-2"}}
- {{$.locale.Tr "settings.delete_key"}}
+ {{ctx.Locale.Tr "settings.delete_key"}}
</button>
{{end}}
</div>
@@ -38,10 +38,10 @@
<div class="ui g-modal-confirm delete modal" id="remove-gitea-oauth2-application">
<div class="header">
{{svg "octicon-trash"}}
- {{.locale.Tr "settings.remove_oauth2_application"}}
+ {{ctx.Locale.Tr "settings.remove_oauth2_application"}}
</div>
<div class="content">
- <p>{{.locale.Tr "settings.oauth2_application_remove_description"}}</p>
+ <p>{{ctx.Locale.Tr "settings.oauth2_application_remove_description"}}</p>
</div>
{{template "base/modal_actions_confirm" .}}
</div>
@@ -49,24 +49,24 @@
<div class="ui attached bottom segment">
<h5 class="ui top header">
- {{.locale.Tr "settings.create_oauth2_application"}}
+ {{ctx.Locale.Tr "settings.create_oauth2_application"}}
</h5>
<form class="ui form ignore-dirty" action="{{.Link}}/oauth2" method="post">
{{.CsrfTokenHtml}}
<div class="field {{if .Err_AppName}}error{{end}}">
- <label for="application-name">{{.locale.Tr "settings.oauth2_application_name"}}</label>
+ <label for="application-name">{{ctx.Locale.Tr "settings.oauth2_application_name"}}</label>
<input id="application-name" name="application_name" value="{{.application_name}}" required maxlength="255">
</div>
<div class="field {{if .Err_RedirectURI}}error{{end}}">
- <label for="redirect-uris">{{.locale.Tr "settings.oauth2_redirect_uris"}}</label>
+ <label for="redirect-uris">{{ctx.Locale.Tr "settings.oauth2_redirect_uris"}}</label>
<textarea name="redirect_uris" id="redirect-uris"></textarea>
</div>
<div class="field ui checkbox {{if .Err_ConfidentialClient}}error{{end}}">
- <label>{{.locale.Tr "settings.oauth2_confidential_client"}}</label>
+ <label>{{ctx.Locale.Tr "settings.oauth2_confidential_client"}}</label>
<input type="checkbox" name="confidential_client" checked>
</div>
<button class="ui primary button">
- {{.locale.Tr "settings.create_oauth2_application_button"}}
+ {{ctx.Locale.Tr "settings.create_oauth2_application_button"}}
</button>
</form>
</div>
diff --git a/templates/user/settings/grants_oauth2.tmpl b/templates/user/settings/grants_oauth2.tmpl
index dbe7d0409f..3c4c6e80d4 100644
--- a/templates/user/settings/grants_oauth2.tmpl
+++ b/templates/user/settings/grants_oauth2.tmpl
@@ -1,10 +1,10 @@
<h4 class="ui top attached header">
- {{.locale.Tr "settings.authorized_oauth2_applications"}}
+ {{ctx.Locale.Tr "settings.authorized_oauth2_applications"}}
</h4>
<div class="ui attached segment">
<div class="flex-list">
<div class="flex-item">
- {{.locale.Tr "settings.authorized_oauth2_applications_description"}}
+ {{ctx.Locale.Tr "settings.authorized_oauth2_applications_description"}}
</div>
{{range .Grants}}
<div class="flex-item">
@@ -14,13 +14,13 @@
<div class="flex-item-main">
<div class="flex-item-title">{{.Application.Name}}</div>
<div class="flex-item-body">
- <i>{{$.locale.Tr "settings.added_on" (DateTime "short" .CreatedUnix) | Safe}}</i>
+ <i>{{ctx.Locale.Tr "settings.added_on" (DateTime "short" .CreatedUnix) | Safe}}</i>
</div>
</div>
<div class="flex-item-trailing">
<button class="ui red tiny button delete-button" data-modal-id="revoke-gitea-oauth2-grant"
data-url="{{AppSubUrl}}/user/settings/applications/oauth2/{{.ApplicationID}}/revoke/{{.ID}}">
- {{$.locale.Tr "settings.revoke_key"}}
+ {{ctx.Locale.Tr "settings.revoke_key"}}
</button>
</div>
</div>
@@ -30,10 +30,10 @@
<div class="ui g-modal-confirm delete modal" id="revoke-gitea-oauth2-grant">
<div class="header">
{{svg "octicon-shield" 16 "gt-mr-2"}}
- {{.locale.Tr "settings.revoke_oauth2_grant"}}
+ {{ctx.Locale.Tr "settings.revoke_oauth2_grant"}}
</div>
<div class="content">
- <p>{{.locale.Tr "settings.revoke_oauth2_grant_description"}}</p>
+ <p>{{ctx.Locale.Tr "settings.revoke_oauth2_grant_description"}}</p>
</div>
{{template "base/modal_actions_confirm" .}}
</div>
diff --git a/templates/user/settings/hook_new.tmpl b/templates/user/settings/hook_new.tmpl
index 9a857db85c..be21f59b9c 100644
--- a/templates/user/settings/hook_new.tmpl
+++ b/templates/user/settings/hook_new.tmpl
@@ -1,7 +1,7 @@
{{template "user/settings/layout_head" (dict "ctxData" . "pageClass" "user settings new webhook")}}
<div class="user-setting-content">
- {{$CustomHeaderTitle := .locale.Tr "repo.settings.update_webhook"}}
- {{if .PageIsSettingsHooksNew}}{{$CustomHeaderTitle = .locale.Tr "repo.settings.add_webhook"}}{{end}}
+ {{$CustomHeaderTitle := ctx.Locale.Tr "repo.settings.update_webhook"}}
+ {{if .PageIsSettingsHooksNew}}{{$CustomHeaderTitle = ctx.Locale.Tr "repo.settings.add_webhook"}}{{end}}
{{template "webhook/new" (dict "ctxData" . "CustomHeaderTitle" $CustomHeaderTitle)}}
</div>
{{template "user/settings/layout_footer" .}}
diff --git a/templates/user/settings/keys_gpg.tmpl b/templates/user/settings/keys_gpg.tmpl
index 467b275d35..bd560fa325 100644
--- a/templates/user/settings/keys_gpg.tmpl
+++ b/templates/user/settings/keys_gpg.tmpl
@@ -1,7 +1,7 @@
<h4 class="ui top attached header">
- {{.locale.Tr "settings.manage_gpg_keys"}}
+ {{ctx.Locale.Tr "settings.manage_gpg_keys"}}
<div class="ui right">
- <button class="ui primary tiny show-panel toggle button" data-panel="#add-gpg-key-panel">{{.locale.Tr "settings.add_key"}}</button>
+ <button class="ui primary tiny show-panel toggle button" data-panel="#add-gpg-key-panel">{{ctx.Locale.Tr "settings.add_key"}}</button>
</div>
</h4>
<div class="ui attached segment">
@@ -10,40 +10,40 @@
{{.CsrfTokenHtml}}
<input type="hidden" name="title" value="none">
<div class="field {{if .Err_Content}}error{{end}}">
- <label for="content">{{.locale.Tr "settings.key_content"}}</label>
- <textarea id="gpg-key-content" name="content" placeholder="{{.locale.Tr "settings.key_content_gpg_placeholder"}}" required>{{.content}}</textarea>
+ <label for="content">{{ctx.Locale.Tr "settings.key_content"}}</label>
+ <textarea id="gpg-key-content" name="content" placeholder="{{ctx.Locale.Tr "settings.key_content_gpg_placeholder"}}" required>{{.content}}</textarea>
</div>
{{if .Err_Signature}}
<div class="ui error message">
- <p>{{.locale.Tr "settings.gpg_token_required"}}</p>
+ <p>{{ctx.Locale.Tr "settings.gpg_token_required"}}</p>
</div>
<div class="field">
- <label for="token">{{.locale.Tr "settings.gpg_token"}}</label>
+ <label for="token">{{ctx.Locale.Tr "settings.gpg_token"}}</label>
<input readonly="" value="{{.TokenToSign}}">
<div class="help">
- <p>{{.locale.Tr "settings.gpg_token_help"}}</p>
- <p><code>{{$.locale.Tr "settings.gpg_token_code" .TokenToSign .PaddedKeyID}}</code></p>
+ <p>{{ctx.Locale.Tr "settings.gpg_token_help"}}</p>
+ <p><code>{{ctx.Locale.Tr "settings.gpg_token_code" .TokenToSign .PaddedKeyID}}</code></p>
</div>
</div>
<div class="field">
- <label for="signature">{{.locale.Tr "settings.gpg_token_signature"}}</label>
- <textarea id="gpg-key-signature" name="signature" placeholder="{{.locale.Tr "settings.key_signature_gpg_placeholder"}}" required>{{.signature}}</textarea>
+ <label for="signature">{{ctx.Locale.Tr "settings.gpg_token_signature"}}</label>
+ <textarea id="gpg-key-signature" name="signature" placeholder="{{ctx.Locale.Tr "settings.key_signature_gpg_placeholder"}}" required>{{.signature}}</textarea>
</div>
{{end}}
<input name="type" type="hidden" value="gpg">
<button class="ui primary button">
- {{.locale.Tr "settings.add_key"}}
+ {{ctx.Locale.Tr "settings.add_key"}}
</button>
<button class="ui hide-panel button" data-panel="#add-gpg-key-panel">
- {{.locale.Tr "cancel"}}
+ {{ctx.Locale.Tr "cancel"}}
</button>
</form>
</div>
<div class="flex-list">
<div class="flex-item">
<p>
- {{.locale.Tr "settings.gpg_desc"}}<br>
- {{.locale.Tr "settings.gpg_helper" "https://docs.github.com/en/free-pro-team@latest/github/authenticating-to-github/about-commit-signature-verification#gpg-commit-signature-verification" | Str2html}}
+ {{ctx.Locale.Tr "settings.gpg_desc"}}<br>
+ {{ctx.Locale.Tr "settings.gpg_helper" "https://docs.github.com/en/free-pro-team@latest/github/authenticating-to-github/about-commit-signature-verification#gpg-commit-signature-verification" | Str2html}}
</p>
</div>
{{range .GPGKeys}}
@@ -53,57 +53,57 @@
</div>
<div class="flex-item-main">
{{if .Verified}}
- <span class="flex-text-block" data-tooltip-content="{{$.locale.Tr "settings.gpg_key_verified_long"}}">{{svg "octicon-verified"}} <strong>{{$.locale.Tr "settings.gpg_key_verified"}}</strong></span>
+ <span class="flex-text-block" data-tooltip-content="{{ctx.Locale.Tr "settings.gpg_key_verified_long"}}">{{svg "octicon-verified"}} <strong>{{ctx.Locale.Tr "settings.gpg_key_verified"}}</strong></span>
{{end}}
{{if gt (len .Emails) 0}}
- <span class="flex-text-block" data-tooltip-content="{{$.locale.Tr "settings.gpg_key_matched_identities_long"}}">{{svg "octicon-mail"}} {{$.locale.Tr "settings.gpg_key_matched_identities"}} {{range .Emails}}<strong>{{.Email}} </strong>{{end}}</span>
+ <span class="flex-text-block" data-tooltip-content="{{ctx.Locale.Tr "settings.gpg_key_matched_identities_long"}}">{{svg "octicon-mail"}} {{ctx.Locale.Tr "settings.gpg_key_matched_identities"}} {{range .Emails}}<strong>{{.Email}} </strong>{{end}}</span>
{{end}}
<div class="flex-item-body">
- <b>{{$.locale.Tr "settings.key_id"}}:</b> {{.PaddedKeyID}}
- <b>{{$.locale.Tr "settings.subkeys"}}:</b> {{range .SubsKey}} {{.PaddedKeyID}} {{end}}
+ <b>{{ctx.Locale.Tr "settings.key_id"}}:</b> {{.PaddedKeyID}}
+ <b>{{ctx.Locale.Tr "settings.subkeys"}}:</b> {{range .SubsKey}} {{.PaddedKeyID}} {{end}}
</div>
<div class="flex-item-body">
- <i>{{$.locale.Tr "settings.added_on" (DateTime "short" .AddedUnix) | Safe}}</i>
+ <i>{{ctx.Locale.Tr "settings.added_on" (DateTime "short" .AddedUnix) | Safe}}</i>
-
- <i>{{if not .ExpiredUnix.IsZero}}{{$.locale.Tr "settings.valid_until_date" (DateTime "short" .ExpiredUnix) | Safe}}{{else}}{{$.locale.Tr "settings.valid_forever"}}{{end}}</i>
+ <i>{{if not .ExpiredUnix.IsZero}}{{ctx.Locale.Tr "settings.valid_until_date" (DateTime "short" .ExpiredUnix) | Safe}}{{else}}{{ctx.Locale.Tr "settings.valid_forever"}}{{end}}</i>
</div>
</div>
<div class="flex-item-trailing">
<button class="ui red tiny button delete-button" data-modal-id="delete-gpg" data-url="{{$.Link}}/delete?type=gpg" data-id="{{.ID}}">
- {{$.locale.Tr "settings.delete_key"}}
+ {{ctx.Locale.Tr "settings.delete_key"}}
</button>
{{if and (not .Verified) (ne $.VerifyingID .KeyID)}}
- <a class="ui primary tiny button" href="{{$.Link}}?verify_gpg={{.KeyID}}">{{$.locale.Tr "settings.gpg_key_verify"}}</a>
+ <a class="ui primary tiny button" href="{{$.Link}}?verify_gpg={{.KeyID}}">{{ctx.Locale.Tr "settings.gpg_key_verify"}}</a>
{{end}}
</div>
</div>
{{if and (not .Verified) (eq $.VerifyingID .KeyID)}}
<div class="ui segment">
- <h4>{{$.locale.Tr "settings.gpg_token_required"}}</h4>
+ <h4>{{ctx.Locale.Tr "settings.gpg_token_required"}}</h4>
<form class="ui form{{if $.HasGPGVerifyError}} error{{end}}" action="{{$.Link}}" method="post">
{{$.CsrfTokenHtml}}
<input type="hidden" name="title" value="none">
<input type="hidden" name="content" value="{{.KeyID}}">
<input type="hidden" name="key_id" value="{{.KeyID}}">
<div class="field">
- <label for="token">{{$.locale.Tr "settings.gpg_token"}}</label>
+ <label for="token">{{ctx.Locale.Tr "settings.gpg_token"}}</label>
<input readonly="" value="{{$.TokenToSign}}">
<div class="help">
- <p>{{$.locale.Tr "settings.gpg_token_help"}}</p>
- <p><code>{{$.locale.Tr "settings.gpg_token_code" $.TokenToSign .PaddedKeyID}}</code></p>
+ <p>{{ctx.Locale.Tr "settings.gpg_token_help"}}</p>
+ <p><code>{{ctx.Locale.Tr "settings.gpg_token_code" $.TokenToSign .PaddedKeyID}}</code></p>
</div>
<br>
</div>
<div class="field">
- <label for="signature">{{$.locale.Tr "settings.gpg_token_signature"}}</label>
- <textarea id="gpg-key-signature" name="signature" placeholder="{{$.locale.Tr "settings.key_signature_gpg_placeholder"}}" required>{{$.signature}}</textarea>
+ <label for="signature">{{ctx.Locale.Tr "settings.gpg_token_signature"}}</label>
+ <textarea id="gpg-key-signature" name="signature" placeholder="{{ctx.Locale.Tr "settings.key_signature_gpg_placeholder"}}" required>{{$.signature}}</textarea>
</div>
<input name="type" type="hidden" value="verify_gpg">
<button class="ui primary button">
- {{$.locale.Tr "settings.gpg_key_verify"}}
+ {{ctx.Locale.Tr "settings.gpg_key_verify"}}
</button>
<a class="ui red button" href="{{$.Link}}">
- {{$.locale.Tr "settings.cancel"}}
+ {{ctx.Locale.Tr "settings.cancel"}}
</a>
</form>
</div>
@@ -113,10 +113,10 @@
<div class="ui g-modal-confirm delete modal" id="delete-gpg">
<div class="header">
{{svg "octicon-trash"}}
- {{.locale.Tr "settings.gpg_key_deletion"}}
+ {{ctx.Locale.Tr "settings.gpg_key_deletion"}}
</div>
<div class="content">
- <p>{{.locale.Tr "settings.gpg_key_deletion_desc"}}</p>
+ <p>{{ctx.Locale.Tr "settings.gpg_key_deletion_desc"}}</p>
</div>
{{template "base/modal_actions_confirm" .}}
</div>
diff --git a/templates/user/settings/keys_principal.tmpl b/templates/user/settings/keys_principal.tmpl
index d9cc8fb823..4f6ce297cb 100644
--- a/templates/user/settings/keys_principal.tmpl
+++ b/templates/user/settings/keys_principal.tmpl
@@ -1,33 +1,33 @@
{{if .AllowPrincipals}}
<h4 class="ui top attached header">
- {{.locale.Tr "settings.manage_ssh_principals"}}
+ {{ctx.Locale.Tr "settings.manage_ssh_principals"}}
<div class="ui right">
{{if not .DisableSSH}}
- <button class="ui primary tiny show-panel button" data-panel="#add-ssh-principal-panel">{{.locale.Tr "settings.add_new_principal"}}</button>
+ <button class="ui primary tiny show-panel button" data-panel="#add-ssh-principal-panel">{{ctx.Locale.Tr "settings.add_new_principal"}}</button>
{{else}}
- <button class="ui primary tiny button disabled">{{.locale.Tr "settings.ssh_disabled"}}</button>
+ <button class="ui primary tiny button disabled">{{ctx.Locale.Tr "settings.ssh_disabled"}}</button>
{{end}}
</div>
</h4>
<div class="ui attached segment">
<div class="flex-list">
<div class="flex-item">
- {{.locale.Tr "settings.principal_desc"}}
+ {{ctx.Locale.Tr "settings.principal_desc"}}
</div>
{{range .Principals}}
<div class="flex-item">
<div class="flex-item-leading">
- <span class="text {{if .HasRecentActivity}}green{{end}}" {{if .HasRecentActivity}}data-tooltip-content="{{$.locale.Tr "settings.principal_state_desc"}}"{{end}}>{{svg "octicon-key" 32}}</span>
+ <span class="text {{if .HasRecentActivity}}green{{end}}" {{if .HasRecentActivity}}data-tooltip-content="{{ctx.Locale.Tr "settings.principal_state_desc"}}"{{end}}>{{svg "octicon-key" 32}}</span>
</div>
<div class="flex-item-main">
<div class="flex-item-title">{{.Name}}</div>
<div class="flex-item-body">
- <i>{{$.locale.Tr "settings.added_on" (DateTime "short" .CreatedUnix) | Safe}} — {{svg "octicon-info" 16}} {{if .HasUsed}}{{$.locale.Tr "settings.last_used"}} <span {{if .HasRecentActivity}}class="green"{{end}}>{{DateTime "short" .UpdatedUnix}}</span>{{else}}{{$.locale.Tr "settings.no_activity"}}{{end}}</i>
+ <i>{{ctx.Locale.Tr "settings.added_on" (DateTime "short" .CreatedUnix) | Safe}} — {{svg "octicon-info" 16}} {{if .HasUsed}}{{ctx.Locale.Tr "settings.last_used"}} <span {{if .HasRecentActivity}}class="green"{{end}}>{{DateTime "short" .UpdatedUnix}}</span>{{else}}{{$.locale.Tr "settings.no_activity"}}{{end}}</i>
</div>
</div>
<div class="flex-item-trailing">
<button class="ui red tiny button delete-button" data-modal-id="delete-principal" data-url="{{$.Link}}/delete?type=principal" data-id="{{.ID}}">
- {{$.locale.Tr "settings.delete_key"}}
+ {{ctx.Locale.Tr "settings.delete_key"}}
</button>
</div>
</div>
@@ -38,19 +38,19 @@
<div {{if not .HasPrincipalError}}class="gt-hidden"{{end}} id="add-ssh-principal-panel">
<h4 class="ui top attached header">
- {{.locale.Tr "settings.add_new_principal"}}
+ {{ctx.Locale.Tr "settings.add_new_principal"}}
</h4>
<div class="ui attached segment">
<form class="ui form" action="{{.Link}}" method="post">
{{.CsrfTokenHtml}}
<div class="field {{if .Err_Content}}error{{end}}">
- <label for="content">{{.locale.Tr "settings.principal_content"}}</label>
+ <label for="content">{{ctx.Locale.Tr "settings.principal_content"}}</label>
<input id="ssh-principal-content" name="content" value="{{.content}}" autofocus required>
</div>
<input name="title" type="hidden" value="principal">
<input name="type" type="hidden" value="principal">
<button class="ui primary button">
- {{.locale.Tr "settings.add_new_principal"}}
+ {{ctx.Locale.Tr "settings.add_new_principal"}}
</button>
</form>
</div>
@@ -59,10 +59,10 @@
<div class="ui g-modal-confirm delete modal" id="delete-principal">
<div class="header">
{{svg "octicon-trash"}}
- {{.locale.Tr "settings.ssh_principal_deletion"}}
+ {{ctx.Locale.Tr "settings.ssh_principal_deletion"}}
</div>
<div class="content">
- <p>{{.locale.Tr "settings.ssh_principal_deletion_desc"}}</p>
+ <p>{{ctx.Locale.Tr "settings.ssh_principal_deletion_desc"}}</p>
</div>
{{template "base/modal_actions_confirm" .}}
</div>
diff --git a/templates/user/settings/keys_ssh.tmpl b/templates/user/settings/keys_ssh.tmpl
index 626d34fd33..7d523c240d 100644
--- a/templates/user/settings/keys_ssh.tmpl
+++ b/templates/user/settings/keys_ssh.tmpl
@@ -1,8 +1,8 @@
<h4 class="ui top attached header">
- {{.locale.Tr "settings.manage_ssh_keys"}}
+ {{ctx.Locale.Tr "settings.manage_ssh_keys"}}
<div class="ui right">
<button id="add-ssh-button" class="ui primary tiny show-panel toggle button" data-panel="#add-ssh-key-panel">
- {{.locale.Tr "settings.add_key"}}
+ {{ctx.Locale.Tr "settings.add_key"}}
</button>
</div>
</h4>
@@ -11,87 +11,87 @@
<form class="ui form" action="{{.Link}}" method="post">
{{.CsrfTokenHtml}}
<div class="field {{if .Err_Title}}error{{end}}">
- <label for="title">{{.locale.Tr "settings.key_name"}}</label>
+ <label for="title">{{ctx.Locale.Tr "settings.key_name"}}</label>
<input id="ssh-key-title" name="title" value="{{.title}}" autofocus required maxlength="50">
</div>
<div class="field {{if .Err_Content}}error{{end}}">
- <label for="content">{{.locale.Tr "settings.key_content"}}</label>
- <textarea id="ssh-key-content" name="content" class="js-quick-submit" placeholder="{{.locale.Tr "settings.key_content_ssh_placeholder"}}" required>{{.content}}</textarea>
+ <label for="content">{{ctx.Locale.Tr "settings.key_content"}}</label>
+ <textarea id="ssh-key-content" name="content" class="js-quick-submit" placeholder="{{ctx.Locale.Tr "settings.key_content_ssh_placeholder"}}" required>{{.content}}</textarea>
</div>
<input name="type" type="hidden" value="ssh">
<button class="ui primary button">
- {{.locale.Tr "settings.add_key"}}
+ {{ctx.Locale.Tr "settings.add_key"}}
</button>
<button id="cancel-ssh-button" class="ui hide-panel button" data-panel="#add-ssh-key-panel">
- {{.locale.Tr "cancel"}}
+ {{ctx.Locale.Tr "cancel"}}
</button>
</form>
</div>
<div id="keys-ssh" class="flex-list">
<div class="flex-item">
<p>
- {{.locale.Tr "settings.ssh_desc"}}<br>
- {{.locale.Tr "settings.ssh_helper" "https://docs.github.com/en/free-pro-team@latest/github/authenticating-to-github/connecting-to-github-with-ssh" "https://docs.github.com/en/free-pro-team@latest/github/authenticating-to-github/troubleshooting-ssh" | Str2html}}
+ {{ctx.Locale.Tr "settings.ssh_desc"}}<br>
+ {{ctx.Locale.Tr "settings.ssh_helper" "https://docs.github.com/en/free-pro-team@latest/github/authenticating-to-github/connecting-to-github-with-ssh" "https://docs.github.com/en/free-pro-team@latest/github/authenticating-to-github/troubleshooting-ssh" | Str2html}}
</p>
</div>
{{if .DisableSSH}}
<div class="flex-item">
- {{.locale.Tr "settings.ssh_signonly"}}
+ {{ctx.Locale.Tr "settings.ssh_signonly"}}
</div>
{{end}}
{{range $index, $key := .Keys}}
<div class="flex-item">
<div class="flex-item-leading">
- <span class="text {{if .HasRecentActivity}}green{{end}}" {{if .HasRecentActivity}}data-tooltip-content="{{$.locale.Tr "settings.key_state_desc"}}"{{end}}>{{svg "octicon-key" 32}}</span>
+ <span class="text {{if .HasRecentActivity}}green{{end}}" {{if .HasRecentActivity}}data-tooltip-content="{{ctx.Locale.Tr "settings.key_state_desc"}}"{{end}}>{{svg "octicon-key" 32}}</span>
</div>
<div class="flex-item-main">
{{if .Verified}}
- <div class="flex-item-title flex-text-block" data-tooltip-content="{{$.locale.Tr "settings.ssh_key_verified_long"}}">{{svg "octicon-verified"}}{{$.locale.Tr "settings.ssh_key_verified"}}</div>
+ <div class="flex-item-title flex-text-block" data-tooltip-content="{{ctx.Locale.Tr "settings.ssh_key_verified_long"}}">{{svg "octicon-verified"}}{{ctx.Locale.Tr "settings.ssh_key_verified"}}</div>
{{end}}
<div class="flex-item-title">{{.Name}}</div>
<div class="flex-item-body">
{{.Fingerprint}}
</div>
<div class="flex-item-body">
- <i>{{$.locale.Tr "settings.added_on" (DateTime "short" .CreatedUnix) | Safe}} — {{svg "octicon-info"}} {{if .HasUsed}}{{$.locale.Tr "settings.last_used"}} <span {{if .HasRecentActivity}}class="text green"{{end}}>{{DateTime "short" .UpdatedUnix}}</span>{{else}}{{$.locale.Tr "settings.no_activity"}}{{end}}</i>
+ <i>{{ctx.Locale.Tr "settings.added_on" (DateTime "short" .CreatedUnix) | Safe}} — {{svg "octicon-info"}} {{if .HasUsed}}{{ctx.Locale.Tr "settings.last_used"}} <span {{if .HasRecentActivity}}class="text green"{{end}}>{{DateTime "short" .UpdatedUnix}}</span>{{else}}{{$.locale.Tr "settings.no_activity"}}{{end}}</i>
</div>
</div>
<div class="flex-item-trailing">
- <button class="ui red tiny button delete-button{{if index $.ExternalKeys $index}} disabled{{end}}" data-modal-id="delete-ssh" data-url="{{$.Link}}/delete?type=ssh" data-id="{{.ID}}"{{if index $.ExternalKeys $index}} title="{{$.locale.Tr "settings.ssh_externally_managed"}}"{{end}}>
- {{$.locale.Tr "settings.delete_key"}}
+ <button class="ui red tiny button delete-button{{if index $.ExternalKeys $index}} disabled{{end}}" data-modal-id="delete-ssh" data-url="{{$.Link}}/delete?type=ssh" data-id="{{.ID}}"{{if index $.ExternalKeys $index}} title="{{ctx.Locale.Tr "settings.ssh_externally_managed"}}"{{end}}>
+ {{ctx.Locale.Tr "settings.delete_key"}}
</button>
{{if and (not .Verified) (ne $.VerifyingFingerprint .Fingerprint)}}
- <a class="ui primary tiny button" href="{{$.Link}}?verify_ssh={{.Fingerprint}}">{{$.locale.Tr "settings.ssh_key_verify"}}</a>
+ <a class="ui primary tiny button" href="{{$.Link}}?verify_ssh={{.Fingerprint}}">{{ctx.Locale.Tr "settings.ssh_key_verify"}}</a>
{{end}}
</div>
</div>
{{if and (not .Verified) (eq $.VerifyingFingerprint .Fingerprint)}}
<div class="ui segment">
- <h4>{{$.locale.Tr "settings.ssh_token_required"}}</h4>
+ <h4>{{ctx.Locale.Tr "settings.ssh_token_required"}}</h4>
<form class="ui form{{if $.HasSSHVerifyError}} error{{end}}" action="{{$.Link}}" method="post">
{{$.CsrfTokenHtml}}
<input type="hidden" name="title" value="none">
<input type="hidden" name="content" value="{{.Content}}">
<input type="hidden" name="fingerprint" value="{{.Fingerprint}}">
<div class="field">
- <label for="token">{{$.locale.Tr "settings.ssh_token"}}</label>
+ <label for="token">{{ctx.Locale.Tr "settings.ssh_token"}}</label>
<input readonly="" value="{{$.TokenToSign}}">
<div class="help">
- <p>{{$.locale.Tr "settings.ssh_token_help"}}</p>
+ <p>{{ctx.Locale.Tr "settings.ssh_token_help"}}</p>
<p><code>{{printf "echo -n '%s' | ssh-keygen -Y sign -n gitea -f /path_to_your_privkey" $.TokenToSign}}</code></p>
</div>
<br>
</div>
<div class="field">
- <label for="signature">{{$.locale.Tr "settings.ssh_token_signature"}}</label>
- <textarea id="ssh-key-signature" name="signature" class="js-quick-submit" placeholder="{{$.locale.Tr "settings.key_signature_ssh_placeholder"}}" required>{{$.signature}}</textarea>
+ <label for="signature">{{ctx.Locale.Tr "settings.ssh_token_signature"}}</label>
+ <textarea id="ssh-key-signature" name="signature" class="js-quick-submit" placeholder="{{ctx.Locale.Tr "settings.key_signature_ssh_placeholder"}}" required>{{$.signature}}</textarea>
</div>
<input name="type" type="hidden" value="verify_ssh">
<button class="ui primary button">
- {{$.locale.Tr "settings.ssh_key_verify"}}
+ {{ctx.Locale.Tr "settings.ssh_key_verify"}}
</button>
<a class="ui red button" href="{{$.Link}}">
- {{$.locale.Tr "settings.cancel"}}
+ {{ctx.Locale.Tr "settings.cancel"}}
</a>
</form>
</div>
@@ -101,10 +101,10 @@
<div class="ui g-modal-confirm delete modal" id="delete-ssh">
<div class="header">
{{svg "octicon-trash"}}
- {{.locale.Tr "settings.ssh_key_deletion"}}
+ {{ctx.Locale.Tr "settings.ssh_key_deletion"}}
</div>
<div class="content">
- <p>{{.locale.Tr "settings.ssh_key_deletion_desc"}}</p>
+ <p>{{ctx.Locale.Tr "settings.ssh_key_deletion_desc"}}</p>
</div>
{{template "base/modal_actions_confirm" .}}
</div>
diff --git a/templates/user/settings/navbar.tmpl b/templates/user/settings/navbar.tmpl
index ac9ef26022..a690d00352 100644
--- a/templates/user/settings/navbar.tmpl
+++ b/templates/user/settings/navbar.tmpl
@@ -1,55 +1,55 @@
<div class="flex-container-nav">
<div class="ui fluid vertical menu">
- <div class="header item">{{.locale.Tr "user.settings"}}</div>
+ <div class="header item">{{ctx.Locale.Tr "user.settings"}}</div>
<a class="{{if .PageIsSettingsProfile}}active {{end}}item" href="{{AppSubUrl}}/user/settings">
- {{.locale.Tr "settings.profile"}}
+ {{ctx.Locale.Tr "settings.profile"}}
</a>
<a class="{{if .PageIsSettingsAccount}}active {{end}}item" href="{{AppSubUrl}}/user/settings/account">
- {{.locale.Tr "settings.account"}}
+ {{ctx.Locale.Tr "settings.account"}}
</a>
<a class="{{if .PageIsSettingsAppearance}}active {{end}}item" href="{{AppSubUrl}}/user/settings/appearance">
- {{.locale.Tr "settings.appearance"}}
+ {{ctx.Locale.Tr "settings.appearance"}}
</a>
<a class="{{if .PageIsSettingsSecurity}}active {{end}}item" href="{{AppSubUrl}}/user/settings/security">
- {{.locale.Tr "settings.security"}}
+ {{ctx.Locale.Tr "settings.security"}}
</a>
<a class="{{if .PageIsSettingsApplications}}active {{end}}item" href="{{AppSubUrl}}/user/settings/applications">
- {{.locale.Tr "settings.applications"}}
+ {{ctx.Locale.Tr "settings.applications"}}
</a>
<a class="{{if .PageIsSettingsKeys}}active {{end}}item" href="{{AppSubUrl}}/user/settings/keys">
- {{.locale.Tr "settings.ssh_gpg_keys"}}
+ {{ctx.Locale.Tr "settings.ssh_gpg_keys"}}
</a>
{{if .EnableActions}}
<details class="item toggleable-item" {{if or .PageIsSharedSettingsRunners .PageIsSharedSettingsSecrets .PageIsSharedSettingsVariables}}open{{end}}>
- <summary>{{.locale.Tr "actions.actions"}}</summary>
+ <summary>{{ctx.Locale.Tr "actions.actions"}}</summary>
<div class="menu">
<a class="{{if .PageIsSharedSettingsRunners}}active {{end}}item" href="{{AppSubUrl}}/user/settings/actions/runners">
- {{.locale.Tr "actions.runners"}}
+ {{ctx.Locale.Tr "actions.runners"}}
</a>
<a class="{{if .PageIsSharedSettingsSecrets}}active {{end}}item" href="{{AppSubUrl}}/user/settings/actions/secrets">
- {{.locale.Tr "secrets.secrets"}}
+ {{ctx.Locale.Tr "secrets.secrets"}}
</a>
<a class="{{if .PageIsSharedSettingsVariables}}active {{end}}item" href="{{AppSubUrl}}/user/settings/actions/variables">
- {{.locale.Tr "actions.variables"}}
+ {{ctx.Locale.Tr "actions.variables"}}
</a>
</div>
</details>
{{end}}
{{if .EnablePackages}}
<a class="{{if .PageIsSettingsPackages}}active {{end}}item" href="{{AppSubUrl}}/user/settings/packages">
- {{.locale.Tr "packages.title"}}
+ {{ctx.Locale.Tr "packages.title"}}
</a>
{{end}}
{{if not DisableWebhooks}}
<a class="{{if .PageIsSettingsHooks}}active {{end}}item" href="{{AppSubUrl}}/user/settings/hooks">
- {{.locale.Tr "repo.settings.hooks"}}
+ {{ctx.Locale.Tr "repo.settings.hooks"}}
</a>
{{end}}
<a class="{{if .PageIsSettingsOrganization}}active {{end}}item" href="{{AppSubUrl}}/user/settings/organization">
- {{.locale.Tr "settings.organization"}}
+ {{ctx.Locale.Tr "settings.organization"}}
</a>
<a class="{{if .PageIsSettingsRepos}}active {{end}}item" href="{{AppSubUrl}}/user/settings/repos">
- {{.locale.Tr "settings.repos"}}
+ {{ctx.Locale.Tr "settings.repos"}}
</a>
</div>
</div>
diff --git a/templates/user/settings/organization.tmpl b/templates/user/settings/organization.tmpl
index be986cd8cf..8079521984 100644
--- a/templates/user/settings/organization.tmpl
+++ b/templates/user/settings/organization.tmpl
@@ -1,10 +1,10 @@
{{template "user/settings/layout_head" (dict "ctxData" . "pageClass" "user settings organization")}}
<div class="user-setting-content">
<h4 class="ui top attached header">
- {{.locale.Tr "settings.orgs"}}
+ {{ctx.Locale.Tr "settings.orgs"}}
{{if .SignedUser.CanCreateOrganization}}
<div class="ui right">
- <a class="ui primary tiny button" href="{{AppSubUrl}}/org/create">{{.locale.Tr "admin.orgs.new_orga"}}</a>
+ <a class="ui primary tiny button" href="{{AppSubUrl}}/org/create">{{ctx.Locale.Tr "admin.orgs.new_orga"}}</a>
</div>
{{end}}
</h4>
@@ -28,7 +28,7 @@
<button class="ui red button delete-button" data-modal-id="leave-organization"
data-url="{{.OrganisationLink}}/members/action/leave" data-datauid="{{$.SignedUser.ID}}"
data-name="{{$.SignedUser.DisplayName}}"
- data-data-organization-name="{{.DisplayName}}">{{$.locale.Tr "org.members.leave"}}
+ data-data-organization-name="{{.DisplayName}}">{{ctx.Locale.Tr "org.members.leave"}}
</button>
</form>
</div>
@@ -37,17 +37,17 @@
</div>
{{template "base/paginate" .}}
{{else}}
- {{.locale.Tr "settings.orgs_none"}}
+ {{ctx.Locale.Tr "settings.orgs_none"}}
{{end}}
</div>
</div>
<div class="ui g-modal-confirm delete modal" id="leave-organization">
<div class="header">
- {{$.locale.Tr "org.members.leave"}}
+ {{ctx.Locale.Tr "org.members.leave"}}
</div>
<div class="content">
- <p>{{$.locale.Tr "org.members.leave.detail" `<span class="dataOrganizationName"></span>` | Safe}}</p>
+ <p>{{ctx.Locale.Tr "org.members.leave.detail" `<span class="dataOrganizationName"></span>` | Safe}}</p>
</div>
{{template "base/modal_actions_confirm" .}}
</div>
diff --git a/templates/user/settings/packages.tmpl b/templates/user/settings/packages.tmpl
index f4933d3dae..1de20fe729 100644
--- a/templates/user/settings/packages.tmpl
+++ b/templates/user/settings/packages.tmpl
@@ -4,19 +4,19 @@
{{template "package/shared/cargo" .}}
<h4 class="ui top attached header">
- {{.locale.Tr "packages.owner.settings.chef.title"}}
+ {{ctx.Locale.Tr "packages.owner.settings.chef.title"}}
</h4>
<div class="ui attached segment">
<div class="ui form">
<div class="field">
- <label>{{$.locale.Tr "packages.owner.settings.chef.keypair.description"}}</label>
+ <label>{{ctx.Locale.Tr "packages.owner.settings.chef.keypair.description"}}</label>
</div>
<form class="field" action="{{.Link}}/chef/regenerate_keypair" method="post">
{{.CsrfTokenHtml}}
- <button class="ui primary button">{{$.locale.Tr "packages.owner.settings.chef.keypair"}}</button>
+ <button class="ui primary button">{{ctx.Locale.Tr "packages.owner.settings.chef.keypair"}}</button>
</form>
<div class="field">
- <label>{{.locale.Tr "packages.registry.documentation" "Chef" "https://docs.gitea.com/usage/packages/chef/" | Safe}}</label>
+ <label>{{ctx.Locale.Tr "packages.registry.documentation" "Chef" "https://docs.gitea.com/usage/packages/chef/" | Safe}}</label>
</div>
</div>
</div>
diff --git a/templates/user/settings/profile.tmpl b/templates/user/settings/profile.tmpl
index 34c790065a..6280cf1b44 100644
--- a/templates/user/settings/profile.tmpl
+++ b/templates/user/settings/profile.tmpl
@@ -1,70 +1,70 @@
{{template "user/settings/layout_head" (dict "ctxData" . "pageClass" "user settings profile")}}
<div class="user-setting-content">
<h4 class="ui top attached header">
- {{.locale.Tr "settings.public_profile"}}
+ {{ctx.Locale.Tr "settings.public_profile"}}
</h4>
<div class="ui attached segment">
- <p>{{.locale.Tr "settings.profile_desc"}}</p>
+ <p>{{ctx.Locale.Tr "settings.profile_desc"}}</p>
<form class="ui form" action="{{.Link}}" method="post">
{{.CsrfTokenHtml}}
<div class="required field {{if .Err_Name}}error{{end}}">
- <label for="username">{{.locale.Tr "username"}}
- <span class="text red gt-hidden" id="name-change-prompt"> {{.locale.Tr "settings.change_username_prompt"}}</span>
- <span class="text red gt-hidden" id="name-change-redirect-prompt"> {{.locale.Tr "settings.change_username_redirect_prompt"}}</span>
+ <label for="username">{{ctx.Locale.Tr "username"}}
+ <span class="text red gt-hidden" id="name-change-prompt"> {{ctx.Locale.Tr "settings.change_username_prompt"}}</span>
+ <span class="text red gt-hidden" id="name-change-redirect-prompt"> {{ctx.Locale.Tr "settings.change_username_redirect_prompt"}}</span>
</label>
<input id="username" name="name" value="{{.SignedUser.Name}}" data-name="{{.SignedUser.Name}}" autofocus required {{if or (not .SignedUser.IsLocal) .IsReverseProxy}}disabled{{end}} maxlength="40">
{{if or (not .SignedUser.IsLocal) .IsReverseProxy}}
- <p class="help text blue">{{$.locale.Tr "settings.password_username_disabled"}}</p>
+ <p class="help text blue">{{ctx.Locale.Tr "settings.password_username_disabled"}}</p>
{{end}}
</div>
<div class="field {{if .Err_FullName}}error{{end}}">
- <label for="full_name">{{.locale.Tr "settings.full_name"}}</label>
+ <label for="full_name">{{ctx.Locale.Tr "settings.full_name"}}</label>
<input id="full_name" name="full_name" value="{{.SignedUser.FullName}}" maxlength="100">
</div>
<div class="field {{if .Err_Email}}error{{end}}">
- <label for="email">{{.locale.Tr "email"}}</label>
+ <label for="email">{{ctx.Locale.Tr "email"}}</label>
<p>{{.SignedUser.Email}}</p>
</div>
<div class="field {{if .Err_Description}}error{{end}}">
- <label for="description">{{$.locale.Tr "user.user_bio"}}</label>
- <textarea id="description" name="description" rows="2" placeholder="{{.locale.Tr "settings.biography_placeholder"}}" maxlength="255">{{.SignedUser.Description}}</textarea>
+ <label for="description">{{ctx.Locale.Tr "user.user_bio"}}</label>
+ <textarea id="description" name="description" rows="2" placeholder="{{ctx.Locale.Tr "settings.biography_placeholder"}}" maxlength="255">{{.SignedUser.Description}}</textarea>
</div>
<div class="field {{if .Err_Website}}error{{end}}">
- <label for="website">{{.locale.Tr "settings.website"}}</label>
+ <label for="website">{{ctx.Locale.Tr "settings.website"}}</label>
<input id="website" name="website" type="url" value="{{.SignedUser.Website}}" maxlength="255">
</div>
<div class="field">
- <label for="location">{{.locale.Tr "settings.location"}}</label>
- <input id="location" name="location" placeholder="{{.locale.Tr "settings.location_placeholder"}}" value="{{.SignedUser.Location}}" maxlength="50">
+ <label for="location">{{ctx.Locale.Tr "settings.location"}}</label>
+ <input id="location" name="location" placeholder="{{ctx.Locale.Tr "settings.location_placeholder"}}" value="{{.SignedUser.Location}}" maxlength="50">
</div>
<div class="divider"></div>
<!-- private block -->
<div class="field" id="privacy-user-settings">
- <label for="security-private"><strong>{{.locale.Tr "settings.privacy"}}</strong></label>
+ <label for="security-private"><strong>{{ctx.Locale.Tr "settings.privacy"}}</strong></label>
</div>
<div class="inline field {{if .Err_Visibility}}error{{end}}">
- <span class="inline required field"><label for="visibility">{{.locale.Tr "settings.visibility"}}</label></span>
+ <span class="inline required field"><label for="visibility">{{ctx.Locale.Tr "settings.visibility"}}</label></span>
<div class="ui selection type dropdown">
{{if .SignedUser.Visibility.IsPublic}}<input type="hidden" id="visibility" name="visibility" value="0">{{end}}
{{if .SignedUser.Visibility.IsLimited}}<input type="hidden" id="visibility" name="visibility" value="1">{{end}}
{{if .SignedUser.Visibility.IsPrivate}}<input type="hidden" id="visibility" name="visibility" value="2">{{end}}
<div class="text">
- {{if .SignedUser.Visibility.IsPublic}}{{.locale.Tr "settings.visibility.public"}}{{end}}
- {{if .SignedUser.Visibility.IsLimited}}{{.locale.Tr "settings.visibility.limited"}}{{end}}
- {{if .SignedUser.Visibility.IsPrivate}}{{.locale.Tr "settings.visibility.private"}}{{end}}
+ {{if .SignedUser.Visibility.IsPublic}}{{ctx.Locale.Tr "settings.visibility.public"}}{{end}}
+ {{if .SignedUser.Visibility.IsLimited}}{{ctx.Locale.Tr "settings.visibility.limited"}}{{end}}
+ {{if .SignedUser.Visibility.IsPrivate}}{{ctx.Locale.Tr "settings.visibility.private"}}{{end}}
</div>
{{svg "octicon-triangle-down" 14 "dropdown icon"}}
<div class="menu">
{{range $mode := .AllowedUserVisibilityModes}}
{{if $mode.IsPublic}}
- <div class="item" data-tooltip-content="{{$.locale.Tr "settings.visibility.public_tooltip"}}" data-value="0">{{$.locale.Tr "settings.visibility.public"}}</div>
+ <div class="item" data-tooltip-content="{{ctx.Locale.Tr "settings.visibility.public_tooltip"}}" data-value="0">{{ctx.Locale.Tr "settings.visibility.public"}}</div>
{{else if $mode.IsLimited}}
- <div class="item" data-tooltip-content="{{$.locale.Tr "settings.visibility.limited_tooltip"}}" data-value="1">{{$.locale.Tr "settings.visibility.limited"}}</div>
+ <div class="item" data-tooltip-content="{{ctx.Locale.Tr "settings.visibility.limited_tooltip"}}" data-value="1">{{ctx.Locale.Tr "settings.visibility.limited"}}</div>
{{else if $mode.IsPrivate}}
- <div class="item" data-tooltip-content="{{$.locale.Tr "settings.visibility.private_tooltip"}}" data-value="2">{{$.locale.Tr "settings.visibility.private"}}</div>
+ <div class="item" data-tooltip-content="{{ctx.Locale.Tr "settings.visibility.private_tooltip"}}" data-value="2">{{ctx.Locale.Tr "settings.visibility.private"}}</div>
{{end}}
{{end}}
</div>
@@ -73,14 +73,14 @@
<div class="field">
<div class="ui checkbox">
- <label data-tooltip-content="{{.locale.Tr "settings.keep_email_private_popup"}}"><strong>{{.locale.Tr "settings.keep_email_private"}}</strong></label>
+ <label data-tooltip-content="{{ctx.Locale.Tr "settings.keep_email_private_popup"}}"><strong>{{.locale.Tr "settings.keep_email_private"}}</strong></label>
<input name="keep_email_private" type="checkbox" {{if .SignedUser.KeepEmailPrivate}}checked{{end}}>
</div>
</div>
<div class="field">
<div class="ui checkbox" id="keep-activity-private">
- <label data-tooltip-content="{{.locale.Tr "settings.keep_activity_private_popup"}}"><strong>{{.locale.Tr "settings.keep_activity_private"}}</strong></label>
+ <label data-tooltip-content="{{ctx.Locale.Tr "settings.keep_activity_private_popup"}}"><strong>{{.locale.Tr "settings.keep_activity_private"}}</strong></label>
<input name="keep_activity_private" type="checkbox" {{if .SignedUser.KeepActivityPrivate}}checked{{end}}>
</div>
</div>
@@ -88,13 +88,13 @@
<div class="divider"></div>
<div class="field">
- <button class="ui primary button">{{$.locale.Tr "settings.update_profile"}}</button>
+ <button class="ui primary button">{{ctx.Locale.Tr "settings.update_profile"}}</button>
</div>
</form>
</div>
<h4 class="ui top attached header">
- {{.locale.Tr "settings.avatar"}}
+ {{ctx.Locale.Tr "settings.avatar"}}
</h4>
<div class="ui attached segment">
<form class="ui form" action="{{.Link}}/avatar" method="post" enctype="multipart/form-data">
@@ -103,11 +103,11 @@
<div class="inline field">
<div class="ui radio checkbox">
<input name="source" value="lookup" type="radio" {{if not .SignedUser.UseCustomAvatar}}checked{{end}}>
- <label>{{.locale.Tr "settings.lookup_avatar_by_mail"}}</label>
+ <label>{{ctx.Locale.Tr "settings.lookup_avatar_by_mail"}}</label>
</div>
</div>
<div class="field gt-pl-4 {{if .Err_Gravatar}}error{{end}}">
- <label for="gravatar">Avatar {{.locale.Tr "email"}}</label>
+ <label for="gravatar">Avatar {{ctx.Locale.Tr "email"}}</label>
<input id="gravatar" name="gravatar" value="{{.SignedUser.AvatarEmail}}">
</div>
{{end}}
@@ -115,18 +115,18 @@
<div class="inline field">
<div class="ui radio checkbox">
<input name="source" value="local" type="radio" {{if .SignedUser.UseCustomAvatar}}checked{{end}}>
- <label>{{.locale.Tr "settings.enable_custom_avatar"}}</label>
+ <label>{{ctx.Locale.Tr "settings.enable_custom_avatar"}}</label>
</div>
</div>
<div class="inline field gt-pl-4">
- <label for="avatar">{{.locale.Tr "settings.choose_new_avatar"}}</label>
+ <label for="avatar">{{ctx.Locale.Tr "settings.choose_new_avatar"}}</label>
<input name="avatar" type="file" accept="image/png,image/jpeg,image/gif,image/webp">
</div>
<div class="field">
- <button class="ui primary button">{{$.locale.Tr "settings.update_avatar"}}</button>
- <button class="ui red button link-action" data-url="{{.Link}}/avatar/delete">{{$.locale.Tr "settings.delete_current_avatar"}}</button>
+ <button class="ui primary button">{{ctx.Locale.Tr "settings.update_avatar"}}</button>
+ <button class="ui red button link-action" data-url="{{.Link}}/avatar/delete">{{ctx.Locale.Tr "settings.delete_current_avatar"}}</button>
</div>
</form>
</div>
diff --git a/templates/user/settings/repos.tmpl b/templates/user/settings/repos.tmpl
index db912770d2..5aabec547a 100644
--- a/templates/user/settings/repos.tmpl
+++ b/templates/user/settings/repos.tmpl
@@ -1,7 +1,7 @@
{{template "user/settings/layout_head" (dict "ctxData" . "pageClass" "user settings repos")}}
<div class="user-setting-content">
<h4 class="ui top attached header">
- {{.locale.Tr "settings.repos"}}
+ {{ctx.Locale.Tr "settings.repos"}}
</h4>
<div class="ui attached segment">
{{if or .allowAdopt .allowDelete}}
@@ -26,7 +26,7 @@
<a class="muted name" href="{{$repo.Link}}">{{$repo.OwnerName}}/{{$repo.Name}}</a>
<span class="text light-3" {{if not (eq $repo.Size 0)}} data-tooltip-content="{{$repo.SizeDetailsString}}"{{end}}>{{FileSize $repo.Size}}</span>
{{if $repo.IsFork}}
- {{$.locale.Tr "repo.forked_from"}}
+ {{ctx.Locale.Tr "repo.forked_from"}}
<span><a href="{{$repo.BaseRepo.Link}}">{{$repo.BaseRepo.OwnerName}}/{{$repo.BaseRepo.Name}}</a></span>
{{end}}
{{else}}
@@ -34,13 +34,13 @@
<span class="name gt-dib gt-pt-3">{{$.ContextUser.Name}}/{{$dir}}</span>
<div class="gt-float-right">
{{if $.allowAdopt}}
- <button class="ui button primary show-modal gt-p-3" data-modal="#adopt-unadopted-modal-{{$dirI}}"><span class="icon">{{svg "octicon-plus"}}</span><span class="label">{{$.locale.Tr "repo.adopt_preexisting_label"}}</span></button>
+ <button class="ui button primary show-modal gt-p-3" data-modal="#adopt-unadopted-modal-{{$dirI}}"><span class="icon">{{svg "octicon-plus"}}</span><span class="label">{{ctx.Locale.Tr "repo.adopt_preexisting_label"}}</span></button>
<div class="ui g-modal-confirm modal" id="adopt-unadopted-modal-{{$dirI}}">
<div class="header">
- <span class="label">{{$.locale.Tr "repo.adopt_preexisting"}}</span>
+ <span class="label">{{ctx.Locale.Tr "repo.adopt_preexisting"}}</span>
</div>
<div class="content">
- <p>{{$.locale.Tr "repo.adopt_preexisting_content" $dir}}</p>
+ <p>{{ctx.Locale.Tr "repo.adopt_preexisting_content" $dir}}</p>
</div>
<form class="ui form" method="post" action="{{AppSubUrl}}/user/settings/repos/unadopted">
{{$.CsrfTokenHtml}}
@@ -51,13 +51,13 @@
</div>
{{end}}
{{if $.allowDelete}}
- <button class="ui button red show-modal gt-p-3" data-modal="#delete-unadopted-modal-{{$dirI}}"><span class="icon">{{svg "octicon-x"}}</span><span class="label">{{$.locale.Tr "repo.delete_preexisting_label"}}</span></button>
+ <button class="ui button red show-modal gt-p-3" data-modal="#delete-unadopted-modal-{{$dirI}}"><span class="icon">{{svg "octicon-x"}}</span><span class="label">{{ctx.Locale.Tr "repo.delete_preexisting_label"}}</span></button>
<div class="ui g-modal-confirm modal" id="delete-unadopted-modal-{{$dirI}}">
<div class="header">
- <span class="label">{{$.locale.Tr "repo.delete_preexisting"}}</span>
+ <span class="label">{{ctx.Locale.Tr "repo.delete_preexisting"}}</span>
</div>
<div class="content">
- <p>{{$.locale.Tr "repo.delete_preexisting_content" $dir}}</p>
+ <p>{{ctx.Locale.Tr "repo.delete_preexisting_content" $dir}}</p>
</div>
<form class="ui form" method="post" action="{{AppSubUrl}}/user/settings/repos/unadopted">
{{$.CsrfTokenHtml}}
@@ -76,7 +76,7 @@
{{template "base/paginate" .}}
{{else}}
<div class="item">
- {{.locale.Tr "settings.repos_none"}}
+ {{ctx.Locale.Tr "settings.repos_none"}}
</div>
{{end}}
{{else}}
@@ -99,7 +99,7 @@
<a class="name" href="{{.Link}}">{{.OwnerName}}/{{.Name}}</a>
<span>{{FileSize .Size}}</span>
{{if .IsFork}}
- {{$.locale.Tr "repo.forked_from"}}
+ {{ctx.Locale.Tr "repo.forked_from"}}
<span><a href="{{.BaseRepo.Link}}">{{.BaseRepo.OwnerName}}/{{.BaseRepo.Name}}</a></span>
{{end}}
</div>
@@ -109,7 +109,7 @@
{{template "base/paginate" .}}
{{else}}
<div class="item">
- {{.locale.Tr "settings.repos_none"}}
+ {{ctx.Locale.Tr "settings.repos_none"}}
</div>
{{end}}
{{end}}
@@ -119,10 +119,10 @@
<div class="ui g-modal-confirm delete modal">
<div class="header">
{{svg "octicon-trash"}}
- {{.locale.Tr "settings.remove_account_link"}}
+ {{ctx.Locale.Tr "settings.remove_account_link"}}
</div>
<div class="content">
- <p>{{.locale.Tr "settings.remove_account_link_desc"}}</p>
+ <p>{{ctx.Locale.Tr "settings.remove_account_link_desc"}}</p>
</div>
{{template "base/modal_actions_confirm" .}}
</div>
diff --git a/templates/user/settings/security/accountlinks.tmpl b/templates/user/settings/security/accountlinks.tmpl
index 7fbd39cbd4..73b2735650 100644
--- a/templates/user/settings/security/accountlinks.tmpl
+++ b/templates/user/settings/security/accountlinks.tmpl
@@ -1,11 +1,11 @@
{{/* No account links, no way to add account links: Menu will not be shown. */}}
{{if or .AccountLinks .OrderedOAuth2Names}}
<h4 class="ui top attached header">
- {{.locale.Tr "settings.manage_account_links"}}
+ {{ctx.Locale.Tr "settings.manage_account_links"}}
{{if .OrderedOAuth2Names}}
<div class="ui right">
<div class="ui dropdown">
- <div class="ui primary tiny button">{{.locale.Tr "settings.link_account"}}</div>
+ <div class="ui primary tiny button">{{ctx.Locale.Tr "settings.link_account"}}</div>
<div class="menu">
{{range $key := .OrderedOAuth2Names}}
{{$provider := index $.OAuth2Providers $key}}
@@ -23,7 +23,7 @@
<div class="ui attached segment">
<div class="flex-list">
<div class="flex-item">
- {{.locale.Tr "settings.manage_account_links_desc"}}
+ {{ctx.Locale.Tr "settings.manage_account_links_desc"}}
</div>
{{range $loginSource, $provider := .AccountLinks}}
<div class="flex-item">
@@ -36,12 +36,12 @@
{{$loginSource.Name}}
</span>
{{if $loginSource.IsActive}}
- <span class="flex-text-body text primary">{{$.locale.Tr "repo.settings.active"}}</span>
+ <span class="flex-text-body text primary">{{ctx.Locale.Tr "repo.settings.active"}}</span>
{{end}}
</div>
<div class="flex-item-trailing">
<button class="ui red tiny button delete-button" data-modal-id="delete-account-link" data-url="{{AppSubUrl}}/user/settings/security/account_link" data-id="{{$loginSource.ID}}">
- {{$.locale.Tr "settings.delete_key"}}
+ {{ctx.Locale.Tr "settings.delete_key"}}
</button>
</div>
</div>
@@ -51,10 +51,10 @@
<div class="ui g-modal-confirm delete modal" id="delete-account-link">
<div class="header">
{{svg "octicon-trash"}}
- {{.locale.Tr "settings.remove_account_link"}}
+ {{ctx.Locale.Tr "settings.remove_account_link"}}
</div>
<div class="content">
- <p>{{.locale.Tr "settings.remove_account_link_desc"}}</p>
+ <p>{{ctx.Locale.Tr "settings.remove_account_link_desc"}}</p>
</div>
{{template "base/modal_actions_confirm" .}}
</div>
diff --git a/templates/user/settings/security/openid.tmpl b/templates/user/settings/security/openid.tmpl
index f22b02c898..0e9b4adcbe 100644
--- a/templates/user/settings/security/openid.tmpl
+++ b/templates/user/settings/security/openid.tmpl
@@ -1,10 +1,10 @@
<h4 class="ui top attached header">
- {{.locale.Tr "settings.manage_openid"}}
+ {{ctx.Locale.Tr "settings.manage_openid"}}
</h4>
<div class="ui attached segment">
<div class="flex-list">
<div class="flex-item">
- {{.locale.Tr "settings.openid_desc"}}
+ {{ctx.Locale.Tr "settings.openid_desc"}}
</div>
{{range .OpenIDs}}
<div class="flex-item gt-ac">
@@ -21,17 +21,17 @@
{{if .Show}}
<button class="ui tiny button">
{{svg "octicon-eye" 16 "icon"}}
- {{$.locale.Tr "settings.hide_openid"}}
+ {{ctx.Locale.Tr "settings.hide_openid"}}
</button>
{{else}}
<button class="ui tiny button">
{{svg "octicon-eye-closed" 16 "icon"}}
- {{$.locale.Tr "settings.show_openid"}}
+ {{ctx.Locale.Tr "settings.show_openid"}}
</button>
{{end}}
</form>
<button class="ui red tiny button delete-button" data-modal-id="delete-openid" data-url="{{AppSubUrl}}/user/settings/security/openid/delete" data-id="{{.ID}}">
- {{$.locale.Tr "settings.delete_key"}}
+ {{ctx.Locale.Tr "settings.delete_key"}}
</button>
</div>
</div>
@@ -42,21 +42,21 @@
<form class="ui form" action="{{AppSubUrl}}/user/settings/security/openid" method="post">
{{.CsrfTokenHtml}}
<div class="required field {{if .Err_OpenID}}error{{end}}">
- <label for="openid">{{.locale.Tr "settings.add_new_openid"}}</label>
+ <label for="openid">{{ctx.Locale.Tr "settings.add_new_openid"}}</label>
<input id="openid" name="openid" type="text" required>
</div>
<button class="ui primary button">
- {{.locale.Tr "settings.add_openid"}}
+ {{ctx.Locale.Tr "settings.add_openid"}}
</button>
</form>
<div class="ui g-modal-confirm delete modal" id="delete-openid">
<div class="header">
{{svg "octicon-trash"}}
- {{.locale.Tr "settings.openid_deletion"}}
+ {{ctx.Locale.Tr "settings.openid_deletion"}}
</div>
<div class="content">
- <p>{{.locale.Tr "settings.openid_deletion_desc"}}</p>
+ <p>{{ctx.Locale.Tr "settings.openid_deletion_desc"}}</p>
</div>
{{template "base/modal_actions_confirm" .}}
</div>
diff --git a/templates/user/settings/security/twofa.tmpl b/templates/user/settings/security/twofa.tmpl
index dbf395c4b1..9e58a647d2 100644
--- a/templates/user/settings/security/twofa.tmpl
+++ b/templates/user/settings/security/twofa.tmpl
@@ -1,34 +1,34 @@
<h4 class="ui top attached header">
- {{.locale.Tr "settings.twofa"}}
+ {{ctx.Locale.Tr "settings.twofa"}}
</h4>
<div class="ui attached segment">
- <p>{{.locale.Tr "settings.twofa_desc"}}</p>
+ <p>{{ctx.Locale.Tr "settings.twofa_desc"}}</p>
{{if .TOTPEnrolled}}
- <p>{{$.locale.Tr "settings.twofa_is_enrolled" | Str2html}}</p>
+ <p>{{ctx.Locale.Tr "settings.twofa_is_enrolled" | Str2html}}</p>
<form class="ui form" action="{{AppSubUrl}}/user/settings/security/two_factor/regenerate_scratch" method="post" enctype="multipart/form-data">
{{.CsrfTokenHtml}}
- <p>{{.locale.Tr "settings.regenerate_scratch_token_desc"}}</p>
- <button class="ui primary button">{{$.locale.Tr "settings.twofa_scratch_token_regenerate"}}</button>
+ <p>{{ctx.Locale.Tr "settings.regenerate_scratch_token_desc"}}</p>
+ <button class="ui primary button">{{ctx.Locale.Tr "settings.twofa_scratch_token_regenerate"}}</button>
</form>
<form class="ui form" action="{{AppSubUrl}}/user/settings/security/two_factor/disable" method="post" enctype="multipart/form-data" id="disable-form">
{{.CsrfTokenHtml}}
- <p>{{.locale.Tr "settings.twofa_disable_note"}}</p>
- <button class="ui red button delete-button" data-modal-id="disable-twofa" data-type="form" data-form="#disable-form">{{$.locale.Tr "settings.twofa_disable"}}</button>
+ <p>{{ctx.Locale.Tr "settings.twofa_disable_note"}}</p>
+ <button class="ui red button delete-button" data-modal-id="disable-twofa" data-type="form" data-form="#disable-form">{{ctx.Locale.Tr "settings.twofa_disable"}}</button>
</form>
{{else}}
- <p>{{.locale.Tr "settings.twofa_not_enrolled"}}</p>
+ <p>{{ctx.Locale.Tr "settings.twofa_not_enrolled"}}</p>
<div class="inline field">
- <a class="ui primary button" href="{{AppSubUrl}}/user/settings/security/two_factor/enroll">{{$.locale.Tr "settings.twofa_enroll"}}</a>
+ <a class="ui primary button" href="{{AppSubUrl}}/user/settings/security/two_factor/enroll">{{ctx.Locale.Tr "settings.twofa_enroll"}}</a>
</div>
{{end}}
<div class="ui g-modal-confirm delete modal" id="disable-twofa">
<div class="header">
{{svg "octicon-trash"}}
- {{.locale.Tr "settings.twofa_disable"}}
+ {{ctx.Locale.Tr "settings.twofa_disable"}}
</div>
<div class="content">
- <p>{{.locale.Tr "settings.twofa_disable_desc"}}</p>
+ <p>{{ctx.Locale.Tr "settings.twofa_disable_desc"}}</p>
</div>
{{template "base/modal_actions_confirm" .}}
</div>
diff --git a/templates/user/settings/security/twofa_enroll.tmpl b/templates/user/settings/security/twofa_enroll.tmpl
index 9235e4f614..d6bfadf084 100644
--- a/templates/user/settings/security/twofa_enroll.tmpl
+++ b/templates/user/settings/security/twofa_enroll.tmpl
@@ -1,22 +1,22 @@
{{template "user/settings/layout_head" (dict "ctxData" . "pageClass" "user settings twofa")}}
<div class="user-setting-content">
<h4 class="ui top attached header">
- {{.locale.Tr "settings.twofa_enroll"}}
+ {{ctx.Locale.Tr "settings.twofa_enroll"}}
</h4>
<div class="ui attached segment">
- <p>{{.locale.Tr "settings.scan_this_image"}}</p>
+ <p>{{ctx.Locale.Tr "settings.scan_this_image"}}</p>
<img src="{{.QrUri}}" alt="{{.TwofaSecret}}">
- <p>{{.locale.Tr "settings.or_enter_secret" .TwofaSecret}}</p>
- <p>{{.locale.Tr "settings.then_enter_passcode"}}</p>
+ <p>{{ctx.Locale.Tr "settings.or_enter_secret" .TwofaSecret}}</p>
+ <p>{{ctx.Locale.Tr "settings.then_enter_passcode"}}</p>
<form class="ui form" action="{{.Link}}" method="post">
{{.CsrfTokenHtml}}
<div class="inline required field {{if .Err_Passcode}}error{{end}}">
- <label for="passcode">{{.locale.Tr "passcode"}}</label>
+ <label for="passcode">{{ctx.Locale.Tr "passcode"}}</label>
<input id="passcode" name="passcode" autofocus required>
</div>
<div class="inline field">
<label></label>
- <button class="ui primary button">{{.locale.Tr "auth.verify"}}</button>
+ <button class="ui primary button">{{ctx.Locale.Tr "auth.verify"}}</button>
</div>
</form>
</div>
diff --git a/templates/user/settings/security/webauthn.tmpl b/templates/user/settings/security/webauthn.tmpl
index 6a74b8770a..213e10cbaf 100644
--- a/templates/user/settings/security/webauthn.tmpl
+++ b/templates/user/settings/security/webauthn.tmpl
@@ -1,6 +1,6 @@
-<h4 class="ui top attached header">{{.locale.Tr "settings.webauthn"}}</h4>
+<h4 class="ui top attached header">{{ctx.Locale.Tr "settings.webauthn"}}</h4>
<div class="ui attached segment">
- <p>{{.locale.Tr "settings.webauthn_desc" | Str2html}}</p>
+ <p>{{ctx.Locale.Tr "settings.webauthn_desc" | Str2html}}</p>
{{template "user/auth/webauthn_error" .}}
<div class="flex-list">
{{range .WebAuthnCredentials}}
@@ -14,7 +14,7 @@
</div>
<div class="flex-item-trailing">
<button class="ui red tiny button delete-button" data-modal-id="delete-registration" data-url="{{$.Link}}/webauthn/delete" data-id="{{.ID}}">
- {{$.locale.Tr "settings.delete_key"}}
+ {{ctx.Locale.Tr "settings.delete_key"}}
</button>
</div>
</div>
@@ -22,18 +22,18 @@
</div>
<div class="ui form">
<div class="required field">
- <label for="nickname">{{.locale.Tr "settings.webauthn_nickname"}}</label>
+ <label for="nickname">{{ctx.Locale.Tr "settings.webauthn_nickname"}}</label>
<input id="nickname" name="nickname" type="text" required>
</div>
- <button id="register-webauthn" class="ui primary button">{{svg "octicon-key"}} {{.locale.Tr "settings.webauthn_register_key"}}</button>
+ <button id="register-webauthn" class="ui primary button">{{svg "octicon-key"}} {{ctx.Locale.Tr "settings.webauthn_register_key"}}</button>
</div>
<div class="ui g-modal-confirm delete modal" id="delete-registration">
<div class="header">
{{svg "octicon-trash"}}
- {{.locale.Tr "settings.webauthn_delete_key"}}
+ {{ctx.Locale.Tr "settings.webauthn_delete_key"}}
</div>
<div class="content">
- <p>{{.locale.Tr "settings.webauthn_delete_key_desc"}}</p>
+ <p>{{ctx.Locale.Tr "settings.webauthn_delete_key_desc"}}</p>
</div>
{{template "base/modal_actions_confirm" .}}
</div>