loading up the forgejo repo on tangled to test page performance
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Remove urls from translations (#31950)

Part of #27700

Removes all URLs from translation strings to easy up changing them in
the future and to exclude people injecting malicious URLs through
translations. First measure as long as #24402 is out of scope.

(cherry picked from commit 83f37f630246e381eefd650fc2d4b1f3976ea882)
Signed-off-by: Gergely Nagy <forgejo@gergo.csillger.hu>

Conflicts:
- options/locale/locale_en-US.ini
Resolved by manually applying the URL->%s changes to our translations.
- routers/web/admin/hooks.go
templates/repo/settings/protected_branch.tmpl
templates/status/500.tmpl
Manually resolved.
- templates/repo/settings/webhook/settings.tmpl
Applied the change to templates/webhook/shared-settings.tmpl
instead

Additional changes: Gitea-specific URLs have been replaced by their
Forgejo counterparts, lifted from the original translation text.

authored by

Denys Konovalov and committed by
0ko
8857da87 32320bbf

+52 -52
+23 -23
options/locale/locale_en-US.ini
··· 230 230 231 231 [error] 232 232 occurred = An error occurred 233 - report_message = If you believe that this is a Forgejo bug, please search for issues on <a href="https://codeberg.org/forgejo/forgejo/issues" target="_blank">Codeberg</a> or open a new issue if necessary. 233 + report_message = If you believe that this is a Forgejo bug, please search for issues on <a href="%s" target="_blank">Codeberg</a> or open a new issue if necessary. 234 234 invalid_csrf = Bad Request: invalid CSRF token 235 235 not_found = The target couldn't be found. 236 236 network_error = Network error ··· 239 239 [startpage] 240 240 app_desc = A painless, self-hosted Git service 241 241 install = Easy to install 242 - install_desc = Simply <a target="_blank" rel="noopener noreferrer" href="https://forgejo.org/download/#installation-from-binary">run the binary</a> for your platform, ship it with <a target="_blank" rel="noopener noreferrer" href="https://forgejo.org/download/#container-image">Docker</a>, or get it <a target="_blank" rel="noopener noreferrer" href="https://forgejo.org/download">packaged</a>. 242 + install_desc = Simply <a target="_blank" rel="noopener noreferrer" href="%[1]s">run the binary</a> for your platform, ship it with <a target="_blank" rel="noopener noreferrer" href="%[2]s">Docker</a>, or get it <a target="_blank" rel="noopener noreferrer" href="%[3]s">packaged</a>. 243 243 platform = Cross-platform 244 244 platform_desc = Forgejo is confirmed to run on libre operating systems like Linux and FreeBSD, as well as different CPU architectures. Choose the one you love! 245 245 lightweight = Lightweight 246 246 lightweight_desc = Forgejo has low minimal requirements and can run on an inexpensive Raspberry Pi. Save your machine energy! 247 247 license = Open Source 248 - license_desc = Go get <a target="_blank" rel="noopener noreferrer" href="https://forgejo.org/download">Forgejo</a>! Join us by <a target="_blank" rel="noopener noreferrer" href="https://codeberg.org/forgejo/forgejo">contributing</a> to make this project even better. Don't be shy to be a contributor! 248 + license_desc = Go get <a target="_blank" rel="noopener noreferrer" href="%[1]s">Forgejo</a>! Join us by <a target="_blank" rel="noopener noreferrer" href="%[2]s">contributing</a> to make this project even better. Don't be shy to be a contributor! 249 249 250 250 [install] 251 251 install = Installation ··· 468 468 authorize_title = Authorize "%s" to access your account? 469 469 authorization_failed = Authorization failed 470 470 authorization_failed_desc = The authorization failed because we detected an invalid request. Please contact the maintainer of the app you have tried to authorize. 471 - password_pwned = The password you chose is on a <a target="_blank" rel="noopener noreferrer" href="https://haveibeenpwned.com/Passwords">list of stolen passwords</a> previously exposed in public data breaches. Please try again with a different password and consider changing this password elsewhere too. 471 + password_pwned = The password you chose is on a <a target="_blank" rel="noopener noreferrer" href="%s">list of stolen passwords</a> previously exposed in public data breaches. Please try again with a different password and consider changing this password elsewhere too. 472 472 password_pwned_err = Could not complete request to HaveIBeenPwned 473 473 last_admin = You cannot remove the last admin. There must be at least one admin. 474 474 back_to_sign_in = Back to Sign in ··· 983 983 twofa_enrolled = Your account has been successfully enrolled. Store your single-use recovery key (%s) in a safe place, as it will not be shown again. 984 984 twofa_failed_get_secret = Failed to get secret. 985 985 986 - webauthn_desc = Security keys are hardware devices containing cryptographic keys. They can be used for two-factor authentication. Security keys must support the <a rel="noreferrer" target="_blank" href="https://w3c.github.io/webauthn/#webauthn-authenticator">WebAuthn Authenticator</a> standard. 986 + webauthn_desc = Security keys are hardware devices containing cryptographic keys. They can be used for two-factor authentication. Security keys must support the <a rel="noreferrer" target="_blank" href="%s">WebAuthn Authenticator</a> standard. 987 987 webauthn_register_key = Add security key 988 988 webauthn_nickname = Nickname 989 989 webauthn_delete_key = Remove security key ··· 2409 2409 settings.event_package = Package 2410 2410 settings.event_package_desc = Package created or deleted in a repository. 2411 2411 settings.branch_filter = Branch filter 2412 - settings.branch_filter_desc = Branch whitelist for push, branch creation and branch deletion events, specified as glob pattern. If empty or <code>*</code>, events for all branches are reported. See <a href="https://pkg.go.dev/github.com/gobwas/glob#Compile">github.com/gobwas/glob</a> documentation for syntax. Examples: <code>master</code>, <code>{master,release*}</code>. 2412 + settings.branch_filter_desc = Branch whitelist for push, branch creation and branch deletion events, specified as glob pattern. If empty or <code>*</code>, events for all branches are reported. See <a href="%[1]s">%[2]s</a> documentation for syntax. Examples: <code>master</code>, <code>{master,release*}</code>. 2413 2413 settings.authorization_header = Authorization header 2414 2414 settings.authorization_header_desc = Will be included as authorization header for requests when present. Examples: %s. 2415 2415 settings.active = Active ··· 2504 2504 settings.require_signed_commits = Require signed commits 2505 2505 settings.require_signed_commits_desc = Reject pushes to this branch if they are unsigned or unverifiable. 2506 2506 settings.protect_branch_name_pattern = Protected branch name pattern 2507 - settings.protect_branch_name_pattern_desc = Protected branch name patterns. See <a href="https://github.com/gobwas/glob">the documentation</a> for pattern syntax. Examples: main, release/** 2507 + settings.protect_branch_name_pattern_desc = Protected branch name patterns. See <a href="%s">the documentation</a> for pattern syntax. Examples: main, release/** 2508 2508 settings.protect_patterns = Patterns 2509 2509 settings.protect_protected_file_patterns = Protected file patterns (separated using semicolon ";") 2510 - settings.protect_protected_file_patterns_desc = Protected files are not allowed to be changed directly even if user has rights to add, edit, or delete files in this branch. Multiple patterns can be separated using semicolon (";"). See <a href="https://pkg.go.dev/github.com/gobwas/glob#Compile">github.com/gobwas/glob</a> documentation for pattern syntax. Examples: <code>.drone.yml</code>, <code>/docs/**/*.txt</code>. 2510 + settings.protect_protected_file_patterns_desc = Protected files are not allowed to be changed directly even if user has rights to add, edit, or delete files in this branch. Multiple patterns can be separated using semicolon (";"). See <a href="%[1]s">%[2]s</a> documentation for pattern syntax. Examples: <code>.drone.yml</code>, <code>/docs/**/*.txt</code>. 2511 2511 settings.protect_unprotected_file_patterns = Unprotected file patterns (separated using semicolon ";") 2512 - settings.protect_unprotected_file_patterns_desc = Unprotected files that are allowed to be changed directly if user has write access, bypassing push restriction. Multiple patterns can be separated using semicolon (";"). See <a href="https://pkg.go.dev/github.com/gobwas/glob#Compile">github.com/gobwas/glob</a> documentation for pattern syntax. Examples: <code>.drone.yml</code>, <code>/docs/**/*.txt</code>. 2512 + settings.protect_unprotected_file_patterns_desc = Unprotected files that are allowed to be changed directly if user has write access, bypassing push restriction. Multiple patterns can be separated using semicolon (";"). See <a href="%[1]s">%[2]s</a> documentation for pattern syntax. Examples: <code>.drone.yml</code>, <code>/docs/**/*.txt</code>. 2513 2513 settings.update_protect_branch_success = Branch protection for rule "%s" has been updated. 2514 2514 settings.remove_protected_branch_success = Branch protection for rule "%s" has been removed. 2515 2515 settings.remove_protected_branch_failed = Removing branch protection rule "%s" failed. ··· 2541 2541 settings.tags.protection.allowed.noone = No one 2542 2542 settings.tags.protection.create = Add rule 2543 2543 settings.tags.protection.none = There are no protected tags. 2544 - settings.tags.protection.pattern.description = You can use a single name or a glob pattern or regular expression to match multiple tags. Read more in the <a target="_blank" rel="noopener" href="https://forgejo.org/docs/latest/user/protection/#protected-tags">protected tags guide</a>. 2544 + settings.tags.protection.pattern.description = You can use a single name or a glob pattern or regular expression to match multiple tags. Read more in the <a target="_blank" rel="noopener" href="%s">protected tags guide</a>. 2545 2545 settings.bot_token = Bot token 2546 2546 settings.chat_id = Chat ID 2547 2547 settings.thread_id = Thread ID ··· 2916 2916 total = Total: %d 2917 2917 settings = Admin settings 2918 2918 2919 - dashboard.new_version_hint = Forgejo %s is now available, you are running %s. Check <a target="_blank" rel="noreferrer" href="https://forgejo.org/news">the blog</a> for more details. 2919 + dashboard.new_version_hint = Forgejo %[1]s is now available, you are running %s. Check <a target="_blank" rel="noreferrer" href="%[2]s">the blog</a> for more details. 2920 2920 dashboard.statistic = Summary 2921 2921 dashboard.operations = Maintenance operations 2922 2922 dashboard.system_status = System status ··· 3113 3113 packages.published = Published 3114 3114 3115 3115 defaulthooks = Default webhooks 3116 - defaulthooks.desc = Webhooks automatically make HTTP POST requests to a server when certain Forgejo events trigger. Webhooks defined here are defaults and will be copied into all new repositories. Read more in the <a target="_blank" rel="noopener" href="https://forgejo.org/docs/latest/user/webhooks/">webhooks guide</a>. 3116 + defaulthooks.desc = Webhooks automatically make HTTP POST requests to a server when certain Forgejo events trigger. Webhooks defined here are defaults and will be copied into all new repositories. Read more in the <a target="_blank" rel="noopener" href="%s">webhooks guide</a>. 3117 3117 defaulthooks.add_webhook = Add Default Webhook 3118 3118 defaulthooks.update_webhook = Update Default Webhook 3119 3119 3120 3120 systemhooks = System webhooks 3121 - systemhooks.desc = Webhooks automatically make HTTP POST requests to a server when certain Forgejo events trigger. Webhooks defined here will act on all repositories on the system, so please consider any performance implications this may have. Read more in the <a target="_blank" rel="noopener" href="https://forgejo.org/docs/latest/user/webhooks/">webhooks guide</a>. 3121 + systemhooks.desc = Webhooks automatically make HTTP POST requests to a server when certain Forgejo events trigger. Webhooks defined here will act on all repositories on the system, so please consider any performance implications this may have. Read more in the <a target="_blank" rel="noopener" href="%s">webhooks guide</a>. 3122 3122 systemhooks.add_webhook = Add System Webhook 3123 3123 systemhooks.update_webhook = Update System Webhook 3124 3124 ··· 3214 3214 auths.tips.oauth2.general = OAuth2 authentication 3215 3215 auths.tips.oauth2.general.tip = When registering a new OAuth2 authentication, the callback/redirect URL should be: 3216 3216 auths.tip.oauth2_provider = OAuth2 provider 3217 - auths.tip.bitbucket = Register a new OAuth consumer on https://bitbucket.org/account/user/<your username>/oauth-consumers/new and add the permission "Account" - "Read" 3217 + auths.tip.bitbucket = Register a new OAuth consumer on %s and add the permission "Account" - "Read" 3218 3218 auths.tip.nextcloud = Register a new OAuth consumer on your instance using the following menu "Settings -> Security -> OAuth 2.0 client" 3219 - auths.tip.dropbox = Create a new application at https://www.dropbox.com/developers/apps 3220 - auths.tip.facebook = Register a new application at https://developers.facebook.com/apps and add the product "Facebook Login" 3221 - auths.tip.github = Register a new OAuth application on https://github.com/settings/applications/new 3222 - auths.tip.gitlab_new = Register a new application on https://gitlab.com/-/profile/applications 3223 - auths.tip.google_plus = Obtain OAuth2 client credentials from the Google API console at https://console.developers.google.com/ 3219 + auths.tip.dropbox = Create a new application at %s 3220 + auths.tip.facebook = Register a new application at %s and add the product "Facebook Login" 3221 + auths.tip.github = Register a new OAuth application on %s 3222 + auths.tip.gitlab_new = Register a new application on %s 3223 + auths.tip.google_plus = Obtain OAuth2 client credentials from the Google API console at %s 3224 3224 auths.tip.openid_connect = Use the OpenID Connect Discovery URL (<server>/.well-known/openid-configuration) to specify the endpoints 3225 - auths.tip.twitter = Go to https://dev.twitter.com/apps, create an application and ensure that the “Allow this application to be used to Sign in with Twitter” option is enabled 3226 - auths.tip.discord = Register a new application on https://discordapp.com/developers/applications/me 3227 - auths.tip.gitea = Register a new OAuth2 application. Guide can be found at https://forgejo.org/docs/latest/user/oauth2-provider 3228 - auths.tip.yandex = Create a new application at https://oauth.yandex.com/client/new. Select following permissions from the "Yandex.Passport API" section: "Access to email address", "Access to user avatar" and "Access to username, first name and surname, gender" 3225 + auths.tip.twitter = Go to %s, create an application and ensure that the “Allow this application to be used to Sign in with Twitter” option is enabled 3226 + auths.tip.discord = Register a new application on %s 3227 + auths.tip.gitea = Register a new OAuth2 application. Guide can be found at %s 3228 + auths.tip.yandex = Create a new application at %s. Select following permissions from the "Yandex.Passport API" section: "Access to email address", "Access to user avatar" and "Access to username, first name and surname, gender" 3229 3229 auths.tip.mastodon = Input a custom instance URL for the mastodon instance you want to authenticate with (or use the default one) 3230 3230 auths.edit = Edit authentication source 3231 3231 auths.activated = This authentication source is activated
+2 -2
routers/web/admin/hooks.go
··· 34 34 } 35 35 36 36 sys["Title"] = ctx.Tr("admin.systemhooks") 37 - sys["Description"] = ctx.Tr("admin.systemhooks.desc") 37 + sys["Description"] = ctx.Tr("admin.systemhooks.desc", "https://forgejo.org/docs/latest/user/webhooks/") 38 38 sys["Webhooks"], err = webhook.GetSystemWebhooks(ctx, false) 39 39 sys["BaseLink"] = setting.AppSubURL + "/admin/hooks" 40 40 sys["BaseLinkNew"] = setting.AppSubURL + "/admin/system-hooks" ··· 45 45 } 46 46 47 47 def["Title"] = ctx.Tr("admin.defaulthooks") 48 - def["Description"] = ctx.Tr("admin.defaulthooks.desc") 48 + def["Description"] = ctx.Tr("admin.defaulthooks.desc", "https://forgejo.org/docs/latest/user/webhooks/") 49 49 def["Webhooks"], err = webhook.GetDefaultWebhooks(ctx) 50 50 def["BaseLink"] = setting.AppSubURL + "/admin/hooks" 51 51 def["BaseLinkNew"] = setting.AppSubURL + "/admin/default-hooks"
+2 -2
routers/web/admin/users.go
··· 166 166 } 167 167 if err := password.IsPwned(ctx, form.Password); err != nil { 168 168 ctx.Data["Err_Password"] = true 169 - errMsg := ctx.Tr("auth.password_pwned") 169 + errMsg := ctx.Tr("auth.password_pwned", "https://haveibeenpwned.com/Passwords") 170 170 if password.IsErrIsPwnedRequest(err) { 171 171 log.Error(err.Error()) 172 172 errMsg = ctx.Tr("auth.password_pwned_err") ··· 401 401 ctx.RenderWithErr(password.BuildComplexityError(ctx.Locale), tplUserEdit, &form) 402 402 case errors.Is(err, password.ErrIsPwned): 403 403 ctx.Data["Err_Password"] = true 404 - ctx.RenderWithErr(ctx.Tr("auth.password_pwned"), tplUserEdit, &form) 404 + ctx.RenderWithErr(ctx.Tr("auth.password_pwned", "https://haveibeenpwned.com/Passwords"), tplUserEdit, &form) 405 405 case password.IsErrIsPwnedRequest(err): 406 406 ctx.Data["Err_Password"] = true 407 407 ctx.RenderWithErr(ctx.Tr("auth.password_pwned_err"), tplUserEdit, &form)
+1 -1
routers/web/auth/auth.go
··· 500 500 return 501 501 } 502 502 if err := password.IsPwned(ctx, form.Password); err != nil { 503 - errMsg := ctx.Tr("auth.password_pwned") 503 + errMsg := ctx.Tr("auth.password_pwned", "https://haveibeenpwned.com/Passwords") 504 504 if password.IsErrIsPwnedRequest(err) { 505 505 log.Error(err.Error()) 506 506 errMsg = ctx.Tr("auth.password_pwned_err")
+2 -2
routers/web/auth/password.go
··· 212 212 case errors.Is(err, password.ErrComplexity): 213 213 ctx.RenderWithErr(password.BuildComplexityError(ctx.Locale), tplResetPassword, nil) 214 214 case errors.Is(err, password.ErrIsPwned): 215 - ctx.RenderWithErr(ctx.Tr("auth.password_pwned"), tplResetPassword, nil) 215 + ctx.RenderWithErr(ctx.Tr("auth.password_pwned", "https://haveibeenpwned.com/Passwords"), tplResetPassword, nil) 216 216 case password.IsErrIsPwnedRequest(err): 217 217 ctx.RenderWithErr(ctx.Tr("auth.password_pwned_err"), tplResetPassword, nil) 218 218 default: ··· 295 295 ctx.RenderWithErr(password.BuildComplexityError(ctx.Locale), tplMustChangePassword, &form) 296 296 case errors.Is(err, password.ErrIsPwned): 297 297 ctx.Data["Err_Password"] = true 298 - ctx.RenderWithErr(ctx.Tr("auth.password_pwned"), tplMustChangePassword, &form) 298 + ctx.RenderWithErr(ctx.Tr("auth.password_pwned", "https://haveibeenpwned.com/Passwords"), tplMustChangePassword, &form) 299 299 case password.IsErrIsPwnedRequest(err): 300 300 ctx.Data["Err_Password"] = true 301 301 ctx.RenderWithErr(ctx.Tr("auth.password_pwned_err"), tplMustChangePassword, &form)
+1 -1
routers/web/user/setting/account.go
··· 72 72 case errors.Is(err, password.ErrComplexity): 73 73 ctx.Flash.Error(password.BuildComplexityError(ctx.Locale)) 74 74 case errors.Is(err, password.ErrIsPwned): 75 - ctx.Flash.Error(ctx.Tr("auth.password_pwned")) 75 + ctx.Flash.Error(ctx.Tr("auth.password_pwned", "https://haveibeenpwned.com/Passwords")) 76 76 case password.IsErrIsPwnedRequest(err): 77 77 ctx.Flash.Error(ctx.Tr("auth.password_pwned_err")) 78 78 default:
+10 -10
templates/admin/auth/new.tmpl
··· 91 91 <h5 class="ui top attached header">{{ctx.Locale.Tr "admin.auths.tip.oauth2_provider"}}</h5> 92 92 <div class="ui attached segment"> 93 93 <li>Bitbucket</li> 94 - <span>{{ctx.Locale.Tr "admin.auths.tip.bitbucket"}}</span> 94 + <span>{{ctx.Locale.Tr "admin.auths.tip.bitbucket" "https://bitbucket.org/account/user/{your-username}/oauth-consumers/new"}}</span> 95 95 <li>Dropbox</li> 96 - <span>{{ctx.Locale.Tr "admin.auths.tip.dropbox"}}</span> 96 + <span>{{ctx.Locale.Tr "admin.auths.tip.dropbox" "https://www.dropbox.com/developers/apps"}}</span> 97 97 <li>Facebook</li> 98 - <span>{{ctx.Locale.Tr "admin.auths.tip.facebook"}}</span> 98 + <span>{{ctx.Locale.Tr "admin.auths.tip.facebook" "https://developers.facebook.com/apps"}}</span> 99 99 <li>GitHub</li> 100 - <span>{{ctx.Locale.Tr "admin.auths.tip.github"}}</span> 100 + <span>{{ctx.Locale.Tr "admin.auths.tip.github" "https://github.com/settings/applications/new"}}</span> 101 101 <li>GitLab</li> 102 - <span>{{ctx.Locale.Tr "admin.auths.tip.gitlab_new"}}</span> 102 + <span>{{ctx.Locale.Tr "admin.auths.tip.gitlab_new" "https://gitlab.com/-/profile/applications"}}</span> 103 103 <li>Google</li> 104 - <span>{{ctx.Locale.Tr "admin.auths.tip.google_plus"}}</span> 104 + <span>{{ctx.Locale.Tr "admin.auths.tip.google_plus" "https://console.developers.google.com/"}}</span> 105 105 <li>OpenID Connect</li> 106 106 <span>{{ctx.Locale.Tr "admin.auths.tip.openid_connect"}}</span> 107 107 <li>Twitter</li> 108 - <span>{{ctx.Locale.Tr "admin.auths.tip.twitter"}}</span> 108 + <span>{{ctx.Locale.Tr "admin.auths.tip.twitter" "https://dev.twitter.com/apps"}}</span> 109 109 <li>Discord</li> 110 - <span>{{ctx.Locale.Tr "admin.auths.tip.discord"}}</span> 110 + <span>{{ctx.Locale.Tr "admin.auths.tip.discord" "https://discordapp.com/developers/applications/me"}}</span> 111 111 <li>Gitea</li> 112 - <span>{{ctx.Locale.Tr "admin.auths.tip.gitea"}}</span> 112 + <span>{{ctx.Locale.Tr "admin.auths.tip.gitea" "https://forgejo.org/docs/latest/user/oauth2-provider"}}</span> 113 113 <li>Nextcloud</li> 114 114 <span>{{ctx.Locale.Tr "admin.auths.tip.nextcloud"}}</span> 115 115 <li>Yandex</li> 116 - <span>{{ctx.Locale.Tr "admin.auths.tip.yandex"}}</span> 116 + <span>{{ctx.Locale.Tr "admin.auths.tip.yandex" "https://oauth.yandex.com/client/new"}}</span> 117 117 <li>Mastodon</li> 118 118 <span>{{ctx.Locale.Tr "admin.auths.tip.mastodon"}}</span> 119 119 </div>
+1 -1
templates/admin/dashboard.tmpl
··· 2 2 <div class="admin-setting-content"> 3 3 {{if .NeedUpdate}} 4 4 <div class="ui negative message flash-error"> 5 - <p>{{ctx.Locale.Tr "admin.dashboard.new_version_hint" .RemoteVersion AppVer}}</p> 5 + <p>{{ctx.Locale.Tr "admin.dashboard.new_version_hint" .RemoteVersion AppVer "https://forgejo.org/news"}}</p> 6 6 </div> 7 7 {{end}} 8 8 <h4 class="ui top attached header">
+3 -3
templates/home.tmpl
··· 17 17 {{svg "octicon-flame"}} {{ctx.Locale.Tr "startpage.install"}} 18 18 </h1> 19 19 <p class="large"> 20 - {{ctx.Locale.Tr "startpage.install_desc"}} 20 + {{ctx.Locale.Tr "startpage.install_desc" "https://forgejo.org/download/#installation-from-binary" "https://forgejo.org/download/#container-image" "https://forgejo.org/download"}} 21 21 </p> 22 22 </div> 23 23 <div class="eight wide center column"> ··· 25 25 {{svg "octicon-device-desktop"}} {{ctx.Locale.Tr "startpage.platform"}} 26 26 </h1> 27 27 <p class="large"> 28 - {{ctx.Locale.Tr "startpage.platform_desc"}} 28 + {{ctx.Locale.Tr "startpage.platform_desc" "https://go.dev/"}} 29 29 </p> 30 30 </div> 31 31 </div> ··· 43 43 {{svg "octicon-code"}} {{ctx.Locale.Tr "startpage.license"}} 44 44 </h1> 45 45 <p class="large"> 46 - {{ctx.Locale.Tr "startpage.license_desc"}} 46 + {{ctx.Locale.Tr "startpage.license_desc" "https://forgejo.org/download" "https://codeberg.org/forgejo/forgejo"}} 47 47 </p> 48 48 </div> 49 49 </div>
+3 -3
templates/repo/settings/protected_branch.tmpl
··· 14 14 <legend>{{ctx.Locale.Tr "repo.settings.protect_patterns"}}</legend> 15 15 <label>{{ctx.Locale.Tr "repo.settings.protect_branch_name_pattern"}} 16 16 <input name="rule_name" type="text" value="{{.Rule.RuleName}}"> 17 - <span class="help">{{ctx.Locale.Tr "repo.settings.protect_branch_name_pattern_desc"}}</span> 17 + <span class="help">{{ctx.Locale.Tr "repo.settings.protect_branch_name_pattern_desc" "https://github.com/gobwas/glob"}}</span> 18 18 </label> 19 19 <label>{{ctx.Locale.Tr "repo.settings.protect_protected_file_patterns"}} 20 20 <input name="protected_file_patterns" type="text" value="{{.Rule.ProtectedFilePatterns}}"> 21 - <span class="help">{{ctx.Locale.Tr "repo.settings.protect_protected_file_patterns_desc"}}</span> 21 + <span class="help">{{ctx.Locale.Tr "repo.settings.protect_protected_file_patterns_desc" "https://pkg.go.dev/github.com/gobwas/glob#Compile" "github.com/gobwas/glob"}}</span> 22 22 </label> 23 23 <label>{{ctx.Locale.Tr "repo.settings.protect_unprotected_file_patterns"}} 24 24 <input name="unprotected_file_patterns" type="text" value="{{.Rule.UnprotectedFilePatterns}}"> 25 - <span class="help">{{ctx.Locale.Tr "repo.settings.protect_unprotected_file_patterns_desc"}}</span> 25 + <span class="help">{{ctx.Locale.Tr "repo.settings.protect_unprotected_file_patterns_desc" "https://pkg.go.dev/github.com/gobwas/glob#Compile" "github.com/gobwas/glob"}}</span> 26 26 </label> 27 27 </fieldset> 28 28
+1 -1
templates/repo/settings/tags.tmpl
··· 21 21 <div class="ui input"> 22 22 <input class="prompt" name="name_pattern" autocomplete="off" value="{{.name_pattern}}" placeholder="v*" autofocus required> 23 23 </div> 24 - <div class="help">{{ctx.Locale.Tr "repo.settings.tags.protection.pattern.description"}}</div> 24 + <div class="help">{{ctx.Locale.Tr "repo.settings.tags.protection.pattern.description" "https://forgejo.org/docs/latest/user/protection/#protected-tags"}}</div> 25 25 </div> 26 26 </div> 27 27 <div class="whitelist field">
+1 -1
templates/status/500.tmpl
··· 46 46 {{end}} 47 47 <div class="center tw-mt-8"> 48 48 {{if or .SignedUser.IsAdmin .ShowFooterVersion}}<p>{{ctx.Locale.Tr "admin.config.app_ver"}}: {{AppVer}}</p>{{end}} 49 - {{if .SignedUser.IsAdmin}}<p>{{ctx.Locale.Tr "error.report_message"}}</p>{{end}} 49 + {{if .SignedUser.IsAdmin}}<p>{{ctx.Locale.Tr "error.report_message" "https://codeberg.org/forgejo/forgejo/issues"}}</p>{{end}} 50 50 </div> 51 51 </div> 52 52 </div>
+1 -1
templates/user/settings/security/webauthn.tmpl
··· 1 1 <h4 class="ui top attached header">{{ctx.Locale.Tr "settings.webauthn"}}</h4> 2 2 <div class="ui attached segment"> 3 - <p>{{ctx.Locale.Tr "settings.webauthn_desc"}}</p> 3 + <p>{{ctx.Locale.Tr "settings.webauthn_desc" "https://w3c.github.io/webauthn/#webauthn-authenticator"}}</p> 4 4 <p>{{ctx.Locale.Tr "settings.webauthn_key_loss_warning"}} {{ctx.Locale.Tr "settings.webauthn_alternative_tip"}}</p> 5 5 {{template "user/auth/webauthn_error" .}} 6 6 <div class="flex-list">
+1 -1
templates/webhook/shared-settings.tmpl
··· 161 161 <div class="field"> 162 162 <label for="branch_filter">{{ctx.Locale.Tr "repo.settings.branch_filter"}}</label> 163 163 <input id="branch_filter" name="branch_filter" type="text" value="{{or .Webhook.BranchFilter "*"}}"> 164 - <span class="help">{{ctx.Locale.Tr "repo.settings.branch_filter_desc"}}</span> 164 + <span class="help">{{ctx.Locale.Tr "repo.settings.branch_filter_desc" "https://pkg.go.dev/github.com/gobwas/glob#Compile" "github.com/gobwas/glob"}}</span> 165 165 </div> 166 166 167 167 {{$skipAuthorizationHeader := or (eq .HookType "sourcehut_builds") (eq .HookType "matrix")}}