2014-07-26 00:24:27 -04:00
home = Home
dashboard = Dashboard
explore = Explore
help = Help
2022-06-05 05:41:51 -04:00
logo = Logo
2014-07-26 00:24:27 -04:00
sign_in = Sign In
2023-06-08 12:35:29 -04:00
sign_in_with_provider = Sign in with %s
sign_in_or = or
2014-07-26 00:24:27 -04:00
sign_out = Sign Out
2018-04-19 10:24:31 -04:00
sign_up = Register
2017-02-22 02:14:37 -05:00
link_account = Link Account
2014-07-26 00:24:27 -04:00
register = Register
version = Version
2020-01-04 15:27:19 -05:00
powered_by = Powered by %s
2014-07-26 00:24:27 -04:00
page = Page
template = Template
language = Language
2016-12-30 13:49:54 -05:00
notifications = Notifications
2021-01-21 09:51:52 -05:00
active_stopwatch = Active Time Tracker
2018-02-16 09:02:40 -05:00
create_new = Create…
2018-04-19 10:24:31 -04:00
user_profile_and_more = Profile and Settings…
2015-08-10 10:59:12 -04:00
signed_in_as = Signed in as
2023-03-24 06:35:52 -04:00
enable_javascript = This website requires JavaScript.
2020-04-24 09:22:36 -04:00
toc = Table of Contents
2020-06-12 07:26:37 -04:00
licenses = Licenses
2020-08-26 12:39:45 -04:00
return_to_gitea = Return to Gitea
2014-07-26 00:24:27 -04:00
username = Username
2018-04-19 10:24:31 -04:00
email = Email Address
2014-07-26 00:24:27 -04:00
password = Password
2020-08-27 21:36:37 -04:00
access_token = Access Token
2018-04-19 10:24:31 -04:00
re_type = Re-Type Password
captcha = CAPTCHA
twofa = Two-Factor Authentication
twofa_scratch = Two-Factor Scratch Code
2017-01-15 21:14:29 -05:00
passcode = Passcode
2014-07-26 00:24:27 -04:00
2022-01-14 10:03:31 -05:00
webauthn_insert_key = Insert your security key
webauthn_sign_in = Press the button on your security key. If your security key has no button, re-insert it.
webauthn_press_button = Please press the button on your security key…
webauthn_use_twofa = Use a two-factor code from your phone
webauthn_error = Could not read your security key.
webauthn_unsupported_browser = Your browser does not currently support WebAuthn.
webauthn_error_unknown = An unknown error occurred. Please retry.
webauthn_error_insecure = WebAuthn only supports secure connections. For testing over HTTP, you can use the origin "localhost" or "127.0.0.1"
webauthn_error_unable_to_process = The server could not process your request.
webauthn_error_duplicated = The security key is not permitted for this request. Please make sure that the key is not already registered.
webauthn_error_empty = You must set a name for this key.
webauthn_error_timeout = Timeout reached before your key could be read. Please reload this page and retry.
webauthn_reload = Reload
2018-05-19 10:12:37 -04:00
2014-07-26 00:24:27 -04:00
repository = Repository
organization = Organization
mirror = Mirror
new_repo = New Repository
new_migrate = New Migration
2015-12-09 11:24:56 -05:00
new_mirror = New Mirror
2017-03-09 08:24:57 -05:00
new_fork = New Repository Fork
2014-07-26 00:24:27 -04:00
new_org = New Organization
2020-08-16 23:07:38 -04:00
new_project = New Project
2023-02-24 18:10:50 -05:00
new_project_column = New Column
2014-07-26 00:24:27 -04:00
manage_org = Manage Organizations
2018-04-19 10:24:31 -04:00
admin_panel = Site Administration
2014-07-26 00:24:27 -04:00
account_settings = Account Settings
settings = Settings
2018-04-19 10:24:31 -04:00
your_profile = Profile
your_starred = Starred
your_settings = Settings
2014-07-26 00:24:27 -04:00
2017-08-16 21:31:34 -04:00
all = All
sources = Sources
mirrors = Mirrors
collaborative = Collaborative
2017-08-18 02:56:04 -04:00
forks = Forks
2017-08-16 21:31:34 -04:00
2016-02-14 20:26:49 -05:00
activities = Activities
2014-07-26 00:24:27 -04:00
pull_requests = Pull Requests
issues = Issues
2019-12-15 09:20:08 -05:00
milestones = Milestones
2014-07-26 00:24:27 -04:00
2021-02-11 12:32:25 -05:00
ok = OK
2014-07-26 00:24:27 -04:00
cancel = Cancel
2023-05-08 19:59:59 -04:00
rerun = Re-run
2023-05-22 00:17:24 -04:00
rerun_all = Re-run all jobs
2020-06-11 17:06:20 -04:00
save = Save
2019-11-08 19:39:37 -05:00
add = Add
add_all = Add All
remove = Remove
remove_all = Remove All
Use a general approch to improve a11y for all checkboxes and dropdowns. (#23542)
This PR follows #22599 and #23450
The major improvements:
1. The `aria-*.js` are totally transparent now, no need to call
`attachDropdownAria` explicitly anymore.
* It hooks the `$.fn.checkbox` and `$.fn.dropdown`, then our patch
works.
* It makes all dynamically generated checkbox/dropdown work with a11y
without any change
* eg: the `conversation.find('.dropdown').dropdown();` in `repo-diff.js`
2. Since it's totally transparent now, it could be easier to modify or
remove in the future.
3. It handles all selection labels as well (by onLabelCreate), so it
supports "multiple selection dropdown" now.
* It partially completes one of my TODOs: `TODO: multiple selection is
not supported yet.`
4. The code structure is clearer, code blocks are splitted into
different functions.
* The old `attachOneDropdownAria` was splitted into separate functions.
* It makes it easier to add more fine tunes in the future, and co-work
with contributors.
6. The code logic is similar as before, only two new parts:
1. the `ariaCheckboxFn` and `ariaDropdownFn` functions
2. the `onLabelCreate` and `updateSelectionLabel` functions
In `aria-dropdown.js` I had to mix jQuery and Vanilla JS somewhat, I
think the code is still understandable, otherwise the code would be much
more complex to read.
Thanks to fsologureng for the idea about "improving the 'delete icon'
with aria attributes".
If there is anything unclear or incorrect, feel free to ask and discuss,
or propose new PRs for it.
2023-03-21 22:52:01 -04:00
remove_label_str = Remove item "%s"
2021-06-25 10:28:55 -04:00
edit = Edit
2014-07-26 00:24:27 -04:00
2022-11-20 09:08:38 -05:00
enabled = Enabled
disabled = Disabled
2021-11-16 03:16:05 -05:00
copy = Copy
copy_url = Copy URL
2022-11-04 15:33:50 -04:00
copy_content = Copy content
2021-11-16 03:16:05 -05:00
copy_branch = Copy branch name
copy_success = Copied!
copy_error = Copy failed
2023-01-08 13:25:28 -05:00
copy_type_unsupported = This file type cannot be copied
2021-11-16 03:16:05 -05:00
2018-08-06 00:43:22 -04:00
write = Write
preview = Preview
loading = Loading…
2020-12-09 21:59:05 -05:00
step1 = Step 1:
step2 = Step 2:
2021-06-14 13:20:43 -04:00
error = Error
2020-02-10 14:23:35 -05:00
error404 = The page you are trying to reach either <strong>does not exist</strong> or <strong>you are not authorized</strong> to view it.
2021-06-14 13:20:43 -04:00
never = Never
2023-04-27 04:44:38 -04:00
unknown = Unknown
2021-06-14 13:20:43 -04:00
2022-04-24 16:03:39 -04:00
rss_feed = RSS Feed
2023-05-25 09:17:19 -04:00
pin = Pin
unpin = Unpin
2023-05-19 09:37:57 -04:00
artifacts = Artifacts
2023-05-12 04:43:27 -04:00
concept_system_global = Global
concept_user_individual = Individual
concept_code_repository = Repository
concept_user_organization = Organization
2023-05-30 16:38:55 -04:00
show_timestamps = Show timestamps
show_log_seconds = Show seconds
show_full_screen = Show full screen
2023-01-28 20:29:10 -05:00
[aria]
navbar = Navigation Bar
footer = Footer
footer.software = About Software
footer.links = Links
2023-04-17 14:26:01 -04:00
[heatmap]
number_of_contributions_in_the_last_12_months = %s contributions in the last 12 months
no_contributions = No contributions
less = Less
more = More
2023-04-11 03:26:18 -04:00
[editor]
buttons.heading.tooltip = Add heading
buttons.bold.tooltip = Add bold text
buttons.italic.tooltip = Add italic text
buttons.quote.tooltip = Quote text
buttons.code.tooltip = Add code
buttons.link.tooltip = Add a link
buttons.list.unordered.tooltip = Add a bullet list
buttons.list.ordered.tooltip = Add a numbered list
buttons.list.task.tooltip = Add a list of tasks
buttons.mention.tooltip = Mention a user or team
buttons.ref.tooltip = Reference an issue or pull request
buttons.switch_to_legacy.tooltip = Use the legacy editor instead
2023-04-13 15:05:06 -04:00
buttons.enable_monospace_font = Enable monospace font
buttons.disable_monospace_font = Disable monospace font
2023-04-11 03:26:18 -04:00
2022-10-22 21:18:15 -04:00
[filter]
string.asc = A - Z
string.desc = Z - A
2020-04-27 19:03:15 -04:00
[error]
2021-12-28 08:28:27 -05:00
occurred = An error occurred
report_message = If you are sure this is a Gitea bug, please search for issues on <a href="https://github.com/go-gitea/gitea/issues" target="_blank">GitHub</a> or open a new issue if necessary.
2021-07-08 09:57:24 -04:00
missing_csrf = Bad Request: no CSRF token present
2021-12-28 08:28:27 -05:00
invalid_csrf = Bad Request: invalid CSRF token
not_found = The target couldn't be found.
network_error = Network error
2020-04-27 19:03:15 -04:00
2019-10-20 05:06:53 -04:00
[startpage]
app_desc = A painless, self-hosted Git service
install = Easy to install
2020-05-13 05:08:44 -04:00
install_desc = Simply <a target="_blank" rel="noopener noreferrer" href="https://docs.gitea.io/en-us/install-from-binary/">run the binary</a> for your platform, ship it with <a target="_blank" rel="noopener noreferrer" href="https://github.com/go-gitea/gitea/tree/master/docker">Docker</a>, or get it <a target="_blank" rel="noopener noreferrer" href="https://docs.gitea.io/en-us/install-from-package/">packaged</a>.
2019-10-20 05:06:53 -04:00
platform = Cross-platform
platform_desc = Gitea runs anywhere <a target="_blank" rel="noopener noreferrer" href="http://golang.org/">Go</a> can compile for: Windows, macOS, Linux, ARM, etc. Choose the one you love!
lightweight = Lightweight
lightweight_desc = Gitea has low minimal requirements and can run on an inexpensive Raspberry Pi. Save your machine energy!
license = Open Source
license_desc = Go get <a target="_blank" rel="noopener noreferrer" href="https://code.gitea.io/gitea">code.gitea.io/gitea</a>! Join us by <a target="_blank" rel="noopener noreferrer" href="https://github.com/go-gitea/gitea">contributing</a> to make this project even better. Don't be shy to be a contributor!
2014-09-07 19:02:58 -04:00
[install]
install = Installation
2018-04-19 10:24:31 -04:00
title = Initial Configuration
2018-07-03 19:52:36 -04:00
docker_helper = If you run Gitea inside Docker, please read the <a target="_blank" rel="noopener noreferrer" href="%s">documentation</a> before changing any settings.
2021-12-07 00:44:08 -05:00
require_db_desc = Gitea requires MySQL, PostgreSQL, MSSQL, SQLite3 or TiDB (MySQL protocol).
2015-07-07 13:09:03 -04:00
db_title = Database Settings
2014-09-07 19:02:58 -04:00
db_type = Database Type
host = Host
2018-04-19 10:24:31 -04:00
user = Username
2014-09-07 19:02:58 -04:00
password = Password
db_name = Database Name
2019-05-24 00:15:26 -04:00
db_helper = Note to MySQL users: please use the InnoDB storage engine and if you use "utf8mb4", your InnoDB version must be greater than 5.6 .
2020-01-20 10:45:14 -05:00
db_schema = Schema
db_schema_helper = Leave blank for database default ("public").
2018-04-19 10:24:31 -04:00
ssl_mode = SSL
2019-05-24 00:15:26 -04:00
charset = Charset
2014-09-07 19:02:58 -04:00
path = Path
2018-09-11 10:42:40 -04:00
sqlite_helper = File path for the SQLite3 database.<br>Enter an absolute path if you run Gitea as a service.
2021-12-01 02:50:01 -05:00
reinstall_error = You are trying to install into an existing Gitea database
reinstall_confirm_message = Re-installing with an existing Gitea database can cause multiple problems. In most cases, you should use your existing "app.ini" to run Gitea. If you know what you are doing, confirm the following:
reinstall_confirm_check_1 = The data encrypted by the SECRET_KEY in app.ini may be lost: users may not be able to log in with 2FA/OTP & mirrors may not function correctly. By checking this box you confirm that the current app.ini file contains the correct the SECRET_KEY.
reinstall_confirm_check_2 = The repositories and settings may need to be re-synchronized. By checking this box you confirm that you will resynchronize the hooks for the repositories and authorized_keys file manually. You confirm that you will ensure that repository and mirror settings are correct.
2021-12-04 10:24:10 -05:00
reinstall_confirm_check_3 = You confirm that you are absolutely sure that this Gitea is running with the correct app.ini location and that you are sure that you have to re-install. You confirm that you acknowledge the above risks.
2018-09-11 10:42:40 -04:00
err_empty_db_path = The SQLite3 database path cannot be empty.
2018-04-19 10:24:31 -04:00
no_admin_and_disable_registration = You cannot disable user self-registration without creating an administrator account.
err_empty_admin_password = The administrator password cannot be empty.
2019-05-28 02:18:40 -04:00
err_empty_admin_email = The administrator email cannot be empty.
err_admin_name_is_reserved = Administrator Username is invalid, username is reserved
2020-01-15 04:53:30 -05:00
err_admin_name_pattern_not_allowed = Administrator username is invalid, the username matches a reserved pattern
2019-05-28 02:18:40 -04:00
err_admin_name_is_invalid = Administrator Username is invalid
2018-04-19 10:24:31 -04:00
general_title = General Settings
app_name = Site Title
2018-05-10 02:58:49 -04:00
app_name_helper = You can enter your company name here.
2014-09-07 19:02:58 -04:00
repo_path = Repository Root Path
2018-04-19 10:24:31 -04:00
repo_path_helper = Remote Git repositories will be saved to this directory.
lfs_path = Git LFS Root Path
lfs_path_helper = Files tracked by Git LFS will be stored in this directory. Leave empty to disable.
run_user = Run As Username
run_user_helper = Enter the operating system username that Gitea runs as. Note that this user must have access to the repository root path.
2021-11-05 15:23:55 -04:00
domain = Server Domain
domain_helper = Domain or host address for the server.
2018-04-19 10:24:31 -04:00
ssh_port = SSH Server Port
ssh_port_helper = Port number your SSH server listens on. Leave empty to disable.
http_port = Gitea HTTP Listen Port
http_port_helper = Port number the Giteas web server will listen on.
app_url = Gitea Base URL
app_url_helper = Base address for HTTP(S) clone URLs and email notifications.
2016-02-12 09:19:45 -05:00
log_root_path = Log Path
2018-04-19 10:24:31 -04:00
log_root_path_helper = Log files will be written to this directory.
2015-07-08 07:47:56 -04:00
optional_title = Optional Settings
2018-04-19 10:24:31 -04:00
email_title = Email Settings
Rework mailer settings (#18982)
* `PROTOCOL`: can be smtp, smtps, smtp+startls, smtp+unix, sendmail, dummy
* `SMTP_ADDR`: domain for SMTP, or path to unix socket
* `SMTP_PORT`: port for SMTP; defaults to 25 for `smtp`, 465 for `smtps`, and 587 for `smtp+startls`
* `ENABLE_HELO`, `HELO_HOSTNAME`: reverse `DISABLE_HELO` to `ENABLE_HELO`; default to false + system hostname
* `FORCE_TRUST_SERVER_CERT`: replace the unclear `SKIP_VERIFY`
* `CLIENT_CERT_FILE`, `CLIENT_KEY_FILE`, `USE_CLIENT_CERT`: clarify client certificates here
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
2022-08-02 01:24:18 -04:00
smtp_addr = SMTP Host
smtp_port = SMTP Port
2018-04-19 10:24:31 -04:00
smtp_from = Send Email As
smtp_from_helper = Email address Gitea will use. Enter a plain email address or use the "Name" <email@example.com> format.
mailer_user = SMTP Username
mailer_password = SMTP Password
register_confirm = Require Email Confirmation to Register
mail_notify = Enable Email Notifications
server_service_title = Server and Third-Party Service Settings
offline_mode = Enable Local Mode
offline_mode_popup = Disable third-party content delivery networks and serve all resources locally.
disable_gravatar = Disable Gravatar
disable_gravatar_popup = Disable Gravatar and third-party avatar sources. A default avatar will be used unless a user locally uploads an avatar.
federated_avatar_lookup = Enable Federated Avatars
2017-02-06 10:17:18 -05:00
federated_avatar_lookup_popup = Enable federated avatar lookup using Libravatar.
2018-04-19 10:24:31 -04:00
disable_registration = Disable Self-Registration
disable_registration_popup = Disable user self-registration. Only administrators will be able to create new user accounts.
2018-07-20 12:40:08 -04:00
allow_only_external_registration_popup = Allow Registration Only Through External Services
2017-08-19 11:34:49 -04:00
openid_signin = Enable OpenID Sign-In
2018-04-19 10:24:31 -04:00
openid_signin_popup = Enable user sign-in via OpenID.
openid_signup = Enable OpenID Self-Registration
openid_signup_popup = Enable OpenID-based user self-registration.
2020-05-29 04:36:51 -04:00
enable_captcha = Enable registration CAPTCHA
2017-02-06 10:17:18 -05:00
enable_captcha_popup = Require a CAPTCHA for user self-registration.
2018-04-19 10:24:31 -04:00
require_sign_in_view = Require Sign-In to View Pages
2023-03-23 13:27:03 -04:00
require_sign_in_view_popup = Limit page access to signed-in users. Visitors will only see the sign-in and registration pages.
2018-04-19 10:24:31 -04:00
admin_setting_desc = Creating an administrator account is optional. The first registered user will automatically become an administrator.
admin_title = Administrator Account Settings
admin_name = Administrator Username
2014-09-07 19:02:58 -04:00
admin_password = Password
confirm_password = Confirm Password
2018-04-19 10:24:31 -04:00
admin_email = Email Address
2016-12-21 07:13:17 -05:00
install_btn_confirm = Install Gitea
2017-02-06 10:17:18 -05:00
test_git_failed = Could not test 'git' command: %v
2018-04-19 10:24:31 -04:00
sqlite3_not_available = This Gitea version does not support SQLite3. Please download the official binary version from %s (not the 'gobuild' version).
invalid_db_setting = The database settings are invalid: %v
2023-04-17 18:04:26 -04:00
invalid_db_table = The database table "%s" is invalid: %v
2018-04-19 10:24:31 -04:00
invalid_repo_path = The repository root path is invalid: %v
2021-12-01 02:50:01 -05:00
invalid_app_data_path = The app data path is invalid: %v
2018-04-19 10:24:31 -04:00
run_user_not_match = The 'run as' username is not the current username: %s -> %s
2021-12-01 02:50:01 -05:00
internal_token_failed = Failed to generate internal token: %v
secret_key_failed = Failed to generate secret key: %v
2017-05-17 21:03:43 -04:00
save_config_failed = Failed to save configuration: %v
2018-04-19 10:24:31 -04:00
invalid_admin_setting = Administrator account setting is invalid: %v
invalid_log_root_path = The log path is invalid: %v
default_keep_email_private = Hide Email Addresses by Default
default_keep_email_private_popup = Hide email addresses of new user accounts by default.
default_allow_create_organization = Allow Creation of Organizations by Default
default_allow_create_organization_popup = Allow new user accounts to create organizations by default.
default_enable_timetracking = Enable Time Tracking by Default
default_enable_timetracking_popup = Enable time tracking for new repositories by default.
no_reply_address = Hidden Email Domain
no_reply_address_helper = Domain name for users with a hidden email address. For example, the username 'joe' will be logged in Git as 'joe@noreply.example.org' if the hidden email domain is set to 'noreply.example.org'.
2021-02-16 17:37:20 -05:00
password_algorithm = Password Hash Algorithm
2023-03-03 21:12:02 -05:00
invalid_password_algorithm = Invalid password hash algorithm
2023-03-23 13:27:03 -04:00
password_algorithm_helper = Set the password hashing algorithm. Algorithms have differing requirements and strength. The argon2 algorithm is rather secure but uses a lot of memory and may be inappropriate for small systems.
2022-11-01 15:23:56 -04:00
enable_update_checker = Enable Update Checker
enable_update_checker_helper = Checks for new version releases periodically by connecting to gitea.io.
2014-09-07 19:02:58 -04:00
2014-07-26 00:24:27 -04:00
[home]
2018-04-19 10:24:31 -04:00
uname_holder = Username or Email Address
2014-07-26 00:24:27 -04:00
password_holder = Password
switch_dashboard_context = Switch Dashboard Context
2018-05-21 16:07:34 -04:00
my_repos = Repositories
2018-02-16 09:02:40 -05:00
show_more_repos = Show more repositories…
2014-07-26 00:24:27 -04:00
collaborative_repos = Collaborative Repositories
my_orgs = My Organizations
my_mirrors = My Mirrors
2015-08-25 12:01:06 -04:00
view_home = View %s
2018-02-16 09:02:40 -05:00
search_repos = Find a repository…
2020-05-16 16:07:01 -04:00
filter = Other Filters
2020-12-27 14:58:03 -05:00
filter_by_team_repositories = Filter by team repositories
2021-10-16 10:21:16 -04:00
feed_of = Feed of "%s"
2020-05-16 16:07:01 -04:00
show_archived = Archived
show_both_archived_unarchived = Showing both archived and unarchived
show_only_archived = Showing only archived
show_only_unarchived = Showing only unarchived
show_private = Private
show_both_private_public = Showing both public and private
show_only_private = Showing only private
show_only_public = Showing only public
2014-07-26 00:24:27 -04:00
2015-08-25 10:58:34 -04:00
issues.in_your_repos = In your repositories
2014-09-05 17:28:09 -04:00
[explore]
repos = Repositories
2016-03-11 15:33:12 -05:00
users = Users
2016-09-01 09:08:05 -04:00
organizations = Organizations
2016-03-11 15:33:12 -05:00
search = Search
2023-05-07 11:44:16 -04:00
go_to = Go to
2018-03-16 10:04:33 -04:00
code = Code
2022-10-10 19:12:03 -04:00
search.type.tooltip = Search type
2021-01-27 05:00:35 -05:00
search.fuzzy = Fuzzy
2022-10-10 19:12:03 -04:00
search.fuzzy.tooltip = Include results that also matches the search term closely
2021-01-27 05:00:35 -05:00
search.match = Match
2022-10-10 19:12:03 -04:00
search.match.tooltip = Include only results that matches the exact search term
2022-01-27 03:30:51 -05:00
code_search_unavailable = Currently code search is not available. Please contact your site administrator.
2018-04-19 10:24:31 -04:00
repo_no_results = No matching repositories found.
user_no_results = No matching users found.
org_no_results = No matching organizations found.
code_no_results = No source code matching your search term found.
2023-04-17 18:04:26 -04:00
code_search_results = Search results for "%s"
2020-02-20 14:53:55 -05:00
code_last_indexed_at = Last indexed %s
2022-08-25 14:38:41 -04:00
relevant_repositories_tooltip = Repositories that are forks or that have no topic, no icon, and no description are hidden.
relevant_repositories = Only relevant repositories are being shown, <a href="%s">show unfiltered results</a>.
2014-09-05 17:28:09 -04:00
2014-07-26 00:24:27 -04:00
[auth]
2018-04-19 10:24:31 -04:00
create_new_account = Register Account
2017-02-07 10:30:20 -05:00
register_helper_msg = Already have an account? Sign in now!
2018-04-19 10:24:31 -04:00
social_register_helper_msg = Already have an account? Link it now!
disable_register_prompt = Registration is disabled. Please contact your site administrator.
disable_register_mail = Email confirmation for registration is disabled.
2022-03-18 05:57:07 -04:00
manual_activation_only = Contact your site administrator to complete activation.
2023-01-10 04:43:54 -05:00
remember_me = Remember This Device
2017-02-20 13:27:20 -05:00
forgot_password_title = Forgot Password
forgot_password = Forgot password?
2018-04-19 10:24:31 -04:00
sign_up_now = Need an account? Register now.
2018-08-11 15:33:19 -04:00
sign_up_successful = Account was successfully created.
2017-05-29 03:35:47 -04:00
confirmation_mail_sent_prompt = A new confirmation email has been sent to <b>%s</b>. Please check your inbox within the next %s to complete the registration process.
2018-09-13 08:04:25 -04:00
must_change_password = Update your password
2018-09-13 12:34:36 -04:00
allow_password_change = Require user to change password (recommended)
2019-04-18 03:23:59 -04:00
reset_password_mail_sent_prompt = A confirmation email has been sent to <b>%s</b>. Please check your inbox within the next %s to complete the account recovery process.
2014-08-10 00:02:00 -04:00
active_your_account = Activate Your Account
2018-07-25 13:54:56 -04:00
account_activated = Account has been activated
2018-04-19 10:24:31 -04:00
prohibit_login = Sign In Prohibited
prohibit_login_desc = Your account is prohibited to sign in, please contact your site administrator.
resent_limit_prompt = You have already requested an activation email recently. Please wait 3 minutes and try again.
2015-12-01 23:21:24 -05:00
has_unconfirmed_mail = Hi %s, you have an unconfirmed email address (<b>%s</b>). If you haven't received a confirmation email or need to resend a new one, please click on the button below.
resend_mail = Click here to resend your activation email
2017-05-17 21:03:43 -04:00
email_not_associate = The email address is not associated with any account.
2019-04-18 03:23:59 -04:00
send_reset_mail = Send Account Recovery Email
reset_password = Account Recovery
2018-04-19 10:24:31 -04:00
invalid_code = Your confirmation code is invalid or has expired.
2023-01-28 02:59:46 -05:00
invalid_password = Your password does not match the password that was used to create the account.
2019-04-18 03:23:59 -04:00
reset_password_helper = Recover Account
reset_password_wrong_user = You are signed in as %s, but the account recovery link is for %s
2018-06-11 03:12:38 -04:00
password_too_short = Password length cannot be less than %d characters.
2023-01-08 13:25:28 -05:00
non_local_account = Non-local users cannot update their password through the Gitea web interface.
2017-01-15 21:14:29 -05:00
verify = Verify
scratch_code = Scratch code
use_scratch_code = Use a scratch code
twofa_scratch_used = You have used your scratch code. You have been redirected to the two-factor settings page so you may remove your device enrollment or generate a new scratch code.
2018-04-19 10:24:31 -04:00
twofa_passcode_incorrect = Your passcode is incorrect. If you misplaced your device, use your scratch code to sign in.
2017-06-01 20:41:52 -04:00
twofa_scratch_token_incorrect = Your scratch code is incorrect.
2018-04-19 10:24:31 -04:00
login_userpass = Sign In
2017-03-17 10:16:08 -04:00
login_openid = OpenID
2018-10-28 18:46:16 -04:00
oauth_signup_tab = Register New Account
2020-11-20 22:32:27 -05:00
oauth_signup_title = Complete New Account
2018-10-28 18:46:16 -04:00
oauth_signup_submit = Complete Account
oauth_signin_tab = Link to Existing Account
oauth_signin_title = Sign In to Authorize Linked Account
oauth_signin_submit = Link Account
2022-01-07 16:02:09 -05:00
oauth.signin.error = There was an error processing the authorization request. If this error persists, please contact the site administrator.
oauth.signin.error.access_denied = The authorization request was denied.
oauth.signin.error.temporarily_unavailable = Authorization failed because the authentication server is temporarily unavailable. Please try again later.
2017-03-17 10:16:08 -04:00
openid_connect_submit = Connect
openid_connect_title = Connect to an existing account
2018-04-19 10:24:31 -04:00
openid_connect_desc = The chosen OpenID URI is unknown. Associate it with a new account here.
2017-03-17 10:16:08 -04:00
openid_register_title = Create new account
2018-04-19 10:24:31 -04:00
openid_register_desc = The chosen OpenID URI is unknown. Associate it with a new account here.
openid_signin_desc = Enter your OpenID URI. For example: https://anne.me, bob.openid.org.cn or gnusocial.net/carry.
2021-06-26 00:16:36 -04:00
disable_forgot_password_mail = Account recovery is disabled because no email is set up. Please contact your site administrator.
disable_forgot_password_mail_admin = Account recovery is only available when email is set up. Please set up email to enable account recovery.
2018-11-14 20:00:04 -05:00
email_domain_blacklisted = You cannot register with your email address.
2019-03-08 11:42:50 -05:00
authorize_application = Authorize Application
2019-10-23 17:04:22 -04:00
authorize_redirect_notice = You will be redirected to %s if you authorize this application.
2019-03-08 11:42:50 -05:00
authorize_application_created_by = This application was created by %s.
authorize_application_description = If you grant the access, it will be able to access and write to all your account information, including private repos and organisations.
authorize_title = Authorize "%s" to access your account?
authorization_failed = Authorization failed
authorization_failed_desc = The authorization failed because we detected an invalid request. Please contact the maintainer of the app you've tried to authorize.
2019-11-22 18:33:31 -05:00
sspi_auth_failed = SSPI authentication failed
2020-09-08 18:06:39 -04:00
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.
password_pwned_err = Could not complete request to HaveIBeenPwned
2014-07-26 00:24:27 -04:00
2015-09-17 01:54:12 -04:00
[mail]
2021-06-23 08:33:21 -04:00
view_it_on = View it on %s
2023-01-16 15:58:01 -05:00
reply = or reply to this email directly
2021-06-23 08:33:21 -04:00
link_not_working_do_paste = Not working? Try copying and pasting it to your browser.
hi_user_x = Hi <b>%s</b>,
2015-09-17 01:54:12 -04:00
activate_account = Please activate your account
2021-06-23 08:33:21 -04:00
activate_account.title = %s, please activate your account
2021-07-10 13:40:14 -04:00
activate_account.text_1 = Hi <b>%[1]s</b>, thanks for registering at %[2]s!
activate_account.text_2 = Please click the following link to activate your account within <b>%s</b>:
2021-06-23 08:33:21 -04:00
2015-12-01 23:21:24 -05:00
activate_email = Verify your email address
2021-06-23 08:33:21 -04:00
activate_email.title = %s, please verify your e-mail address
activate_email.text = Please click the following link to verify your email address within <b>%s</b>:
register_notify = Welcome to Gitea
register_notify.title = %[1]s, welcome to %[2]s
register_notify.text_1 = this is your registration confirmation email for %s!
register_notify.text_2 = You can now login via username: %s.
register_notify.text_3 = If this account has been created for you, please <a href="%s">set your password</a> first.
2019-04-18 03:23:59 -04:00
reset_password = Recover your account
2021-06-23 08:33:21 -04:00
reset_password.title = %s, you have requested to recover your account
reset_password.text = Please click the following link to recover your account within <b>%s</b>:
2017-03-09 08:24:57 -05:00
register_success = Registration successful
2021-06-23 08:33:21 -04:00
2021-09-29 19:20:18 -04:00
issue_assigned.pull = @%[1]s assigned you to pull request %[2]s in repository %[3]s.
issue_assigned.issue = @%[1]s assigned you to issue %[2]s in repository %[3]s.
2021-06-23 08:33:21 -04:00
issue.x_mentioned_you = <b>@%s</b> mentioned you:
issue.action.force_push = <b>%[1]s</b> force-pushed the <b>%[2]s</b> from %[3]s to %[4]s.
2021-07-14 09:06:09 -04:00
issue.action.push_1 = <b>@%[1]s</b> pushed %[3]d commit to %[2]s
2021-06-23 13:43:33 -04:00
issue.action.push_n = <b>@%[1]s</b> pushed %[3]d commits to %[2]s
2021-06-23 08:33:21 -04:00
issue.action.close = <b>@%[1]s</b> closed #%[2]d.
issue.action.reopen = <b>@%[1]s</b> reopened #%[2]d.
2021-06-23 13:43:33 -04:00
issue.action.merge = <b>@%[1]s</b> merged #%[2]d into %[3]s.
2021-06-23 08:33:21 -04:00
issue.action.approve = <b>@%[1]s</b> approved this pull request.
issue.action.reject = <b>@%[1]s</b> requested changes on this pull request.
issue.action.review = <b>@%[1]s</b> commented on this pull request.
issue.action.review_dismissed = <b>@%[1]s</b> dismissed last review from %[2]s for this pull request.
issue.action.ready_for_review = <b>@%[1]s</b> marked this pull request ready for review.
2021-06-23 13:43:33 -04:00
issue.action.new = <b>@%[1]s</b> created #%[2]d.
2021-06-23 08:33:21 -04:00
issue.in_tree_path = In %s:
2015-09-17 01:54:12 -04:00
2021-04-02 06:25:13 -04:00
release.new.subject = %s in %s released
2021-06-23 08:33:21 -04:00
release.new.text = <b>@%[1]s</b> released %[2]s in %[3]s
release.title = Title: %s
release.note = Note:
release.downloads = Downloads:
release.download.zip = Source Code (ZIP)
release.download.targz = Source Code (TAR.GZ)
2021-04-02 06:25:13 -04:00
repo.transfer.subject_to = %s would like to transfer "%s" to %s
repo.transfer.subject_to_you = %s would like to transfer "%s" to you
repo.transfer.to_you = you
2021-06-23 08:33:21 -04:00
repo.transfer.body = To accept or reject it visit %s or just ignore it.
2021-04-02 06:25:13 -04:00
repo.collaborator.added.subject = %s added you to %s
2021-06-23 08:33:21 -04:00
repo.collaborator.added.text = You have been added as a collaborator of repository:
2021-04-02 06:25:13 -04:00
2022-10-19 08:40:28 -04:00
team_invite.subject = %[1]s has invited you to join the %[2]s organization
team_invite.text_1 = %[1]s has invited you to join team %[2]s in organization %[3]s.
team_invite.text_2 = Please click the following link to join the team:
team_invite.text_3 = Note: This invitation was intended for %[1]s. If you were not expecting this invitation, you can ignore this email.
2015-07-24 11:13:42 -04:00
[modal]
yes = Yes
no = No
2023-04-23 05:24:19 -04:00
confirm = Confirm
cancel = Cancel
2018-04-19 10:24:31 -04:00
modify = Update
2015-07-24 11:13:42 -04:00
2014-07-26 00:24:27 -04:00
[form]
UserName = Username
2014-08-02 13:47:33 -04:00
RepoName = Repository name
2015-12-01 23:21:24 -05:00
Email = Email address
2014-07-26 00:24:27 -04:00
Password = Password
2018-04-19 10:24:31 -04:00
Retype = Re-Type Password
2014-07-26 00:24:27 -04:00
SSHTitle = SSH key name
2014-08-01 00:06:19 -04:00
HttpsUrl = HTTPS URL
2014-08-09 18:40:10 -04:00
PayloadUrl = Payload URL
2014-08-16 04:21:17 -04:00
TeamName = Team name
2014-08-29 08:50:43 -04:00
AuthName = Authorization name
2015-12-01 23:21:24 -05:00
AdminEmail = Admin email
2014-07-26 00:24:27 -04:00
2016-08-11 08:48:08 -04:00
NewBranchName = New branch name
CommitSummary = Commit summary
CommitMessage = Commit message
CommitChoice = Commit choice
TreeName = File path
Content = Content
2019-11-22 18:33:31 -05:00
SSPISeparatorReplacement = Separator
SSPIDefaultLanguage = Default Language
2014-07-26 00:24:27 -04:00
require_error = ` cannot be empty.`
2018-04-19 10:24:31 -04:00
alpha_dash_error = ` should contain only alphanumeric, dash ('-') and underscore ('_') characters.`
alpha_dash_dot_error = ` should contain only alphanumeric, dash ('-'), underscore ('_') and dot ('.') characters.`
git_ref_name_error = ` must be a well-formed Git reference name.`
2017-05-10 21:03:34 -04:00
size_error = ` must be size %s.`
2014-07-26 00:24:27 -04:00
min_size_error = ` must contain at least %s characters.`
max_size_error = ` must contain at most %s characters.`
2015-12-01 23:21:24 -05:00
email_error = ` is not a valid email address.`
2023-04-17 18:04:26 -04:00
url_error = `"%s" is not a valid URL.`
include_error = ` must contain substring "%s".`
2019-09-09 01:48:21 -04:00
glob_pattern_error = ` glob pattern is invalid: %s.`
2021-06-25 10:28:55 -04:00
regex_pattern_error = ` regex pattern is invalid: %s.`
2022-11-04 05:04:08 -04:00
username_error = ` can only contain alphanumeric chars ('0-9','a-z','A-Z'), dash ('-'), underscore ('_') and dot ('.'). It cannot begin or end with non-alphanumeric chars, and consecutive non-alphanumeric chars are also forbidden.`
2023-02-08 01:44:42 -05:00
invalid_group_team_map_error = ` mapping is invalid: %s`
2014-07-26 00:24:27 -04:00
unknown_error = Unknown error:
2018-04-19 10:24:31 -04:00
captcha_incorrect = The CAPTCHA code is incorrect.
password_not_match = The passwords do not match.
2019-11-22 18:33:31 -05:00
lang_select_error = Select a language from the list.
2018-04-19 10:24:31 -04:00
username_been_taken = The username is already taken.
2021-01-10 07:14:02 -05:00
username_change_not_local_user = Non-local users are not allowed to change their username.
2023-05-21 11:13:47 -04:00
username_has_not_been_changed = Username has not been changed
2018-04-19 10:24:31 -04:00
repo_name_been_taken = The repository name is already used.
2021-12-14 00:08:09 -05:00
repository_force_private = Force Private is enabled: private repositories cannot be made public.
2020-09-25 00:09:23 -04:00
repository_files_already_exist = Files already exist for this repository. Contact the system administrator.
repository_files_already_exist.adopt = Files already exist for this repository and can only be Adopted.
repository_files_already_exist.delete = Files already exist for this repository. You must delete them.
repository_files_already_exist.adopt_or_delete = Files already exist for this repository. Either adopt them or delete them.
2019-05-06 21:12:51 -04:00
visit_rate_limit = Remote visit addressed rate limitation.
2fa_auth_required = Remote visit required two factors authentication.
2018-04-19 10:24:31 -04:00
org_name_been_taken = The organization name is already taken.
team_name_been_taken = The team name is already taken.
team_no_units_error = Allow access to at least one repository section.
email_been_used = The email address is already used.
2020-11-14 11:53:43 -05:00
email_invalid = The email address is invalid.
2023-04-17 18:04:26 -04:00
openid_been_used = The OpenID address "%s" is already used.
2018-04-19 10:24:31 -04:00
username_password_incorrect = Username or password is incorrect.
2019-11-19 17:44:58 -05:00
password_complexity = Password does not pass complexity requirements:
password_lowercase_one = At least one lowercase character
password_uppercase_one = At least one uppercase character
password_digit_one = At least one digit
password_special_one = At least one special character (punctuation, brackets, quotes, etc.)
2018-04-19 10:24:31 -04:00
enterred_invalid_repo_name = The repository name you entered is incorrect.
2021-03-01 09:33:05 -05:00
enterred_invalid_org_name = The organization name you entered is incorrect.
2018-04-19 10:24:31 -04:00
enterred_invalid_owner_name = The new owner name is not valid.
enterred_invalid_password = The password you entered is incorrect.
2017-05-17 21:03:43 -04:00
user_not_exist = The user does not exist.
2019-09-23 16:08:03 -04:00
team_not_exist = The team does not exist.
2020-08-28 10:39:50 -04:00
last_org_owner = You cannot remove the last user from the 'owners' team. There must be at least one owner for an organization.
2018-04-19 10:24:31 -04:00
cannot_add_org_to_team = An organization cannot be added as a team member.
2022-10-19 08:40:28 -04:00
duplicate_invite_to_team = The user was already invited as a team member.
2022-11-30 04:00:00 -05:00
organization_leave_success = You have successfully left the organization %s.
2017-05-17 21:03:43 -04:00
2023-01-08 13:25:28 -05:00
invalid_ssh_key = Cannot verify your SSH key: %s
invalid_gpg_key = Cannot verify your GPG key: %s
2020-10-10 20:38:09 -04:00
invalid_ssh_principal = Invalid principal: %s
2023-02-02 13:25:54 -05:00
must_use_public_key = The key you provided is a private key. Please do not upload your private key anywhere. Use your public key instead.
2023-03-23 13:27:03 -04:00
unable_verify_ssh_key = "Cannot verify the SSH key, double-check it for mistakes."
2014-08-01 00:06:19 -04:00
auth_failed = Authentication failed: %v
2014-07-26 00:24:27 -04:00
2023-03-23 13:27:03 -04:00
still_own_repo = "Your account owns one or more repositories, delete or transfer them first."
still_has_org = "Your account is a member of one or more organizations, leave them first."
still_own_packages = "Your account owns one or more packages, delete them first."
org_still_own_repo = "This organization still owns one or more repositories, delete or transfer them first."
org_still_own_packages = "This organization still owns one or more packages, delete them first."
2014-07-26 00:24:27 -04:00
2015-03-19 15:26:04 -04:00
target_branch_not_exist = Target branch does not exist.
2014-11-06 22:06:41 -05:00
2014-09-25 19:33:39 -04:00
[user]
2018-04-19 10:24:31 -04:00
change_avatar = Change your avatar…
2023-05-06 06:10:30 -04:00
joined_on = Joined on %s
2014-09-25 19:33:39 -04:00
repositories = Repositories
activity = Public Activity
followers = Followers
2018-04-19 10:24:31 -04:00
starred = Starred Repositories
2021-04-15 12:53:57 -04:00
watched = Watched Repositories
2022-10-10 19:12:03 -04:00
code = Code
2020-08-16 23:07:38 -04:00
projects = Projects
2023-05-09 01:57:24 -04:00
overview = Overview
2014-09-25 19:33:39 -04:00
following = Following
2015-12-21 07:24:11 -05:00
follow = Follow
unfollow = Unfollow
2018-10-22 22:57:42 -04:00
heatmap.loading = Loading Heatmap…
2019-03-18 22:28:10 -04:00
user_bio = Biography
2020-06-05 16:01:53 -04:00
disabled_public_activity = This user has disabled the public visibility of the activity.
2023-04-08 06:05:21 -04:00
email_visibility.limited = Your email address is visible to all authenticated users
email_visibility.private = Your email address is only visible to you and administrators
2014-09-25 19:33:39 -04:00
2023-04-17 18:04:26 -04:00
form.name_reserved = The username "%s" is reserved.
form.name_pattern_not_allowed = The pattern "%s" is not allowed in a username.
form.name_chars_not_allowed = User name "%s" contains invalid characters.
2015-03-26 17:11:47 -04:00
2014-07-26 00:24:27 -04:00
[settings]
profile = Profile
2018-05-15 06:07:32 -04:00
account = Account
2021-10-27 11:40:08 -04:00
appearance = Appearance
2014-07-26 00:24:27 -04:00
password = Password
2017-10-16 05:14:12 -04:00
security = Security
2016-08-07 13:27:38 -04:00
avatar = Avatar
2017-04-26 09:10:43 -04:00
ssh_gpg_keys = SSH / GPG Keys
2014-07-26 00:24:27 -04:00
social = Social Accounts
2018-05-15 06:07:32 -04:00
applications = Applications
2018-04-19 10:24:31 -04:00
orgs = Manage Organizations
2017-09-14 07:46:14 -04:00
repos = Repositories
2014-08-14 04:51:55 -04:00
delete = Delete Account
2017-01-15 21:14:29 -05:00
twofa = Two-Factor Authentication
2018-04-19 10:24:31 -04:00
account_link = Linked Accounts
organization = Organizations
2014-09-13 22:12:11 -04:00
uid = Uid
2022-01-14 10:03:31 -05:00
webauthn = Security Keys
2014-07-26 00:24:27 -04:00
public_profile = Public Profile
2020-09-10 10:29:26 -04:00
biography_placeholder = Tell us a little bit about yourself
2018-04-19 10:24:31 -04:00
profile_desc = Your email address will be used for notifications and other operations.
password_username_disabled = Non-local users are not allowed to change their username. Please contact your site administrator for more details.
2014-07-26 00:24:27 -04:00
full_name = Full Name
website = Website
location = Location
2019-01-09 12:22:57 -05:00
update_theme = Update Theme
2014-07-26 00:24:27 -04:00
update_profile = Update Profile
2021-10-27 11:40:08 -04:00
update_language = Update Language
2023-04-17 18:04:26 -04:00
update_language_not_found = Language "%s" is not available.
2021-10-27 11:40:08 -04:00
update_language_success = Language has been updated.
2017-05-17 21:03:43 -04:00
update_profile_success = Your profile has been updated.
2018-04-19 10:24:31 -04:00
change_username = Your username has been changed.
change_username_prompt = Note: username changes also change your account URL.
2021-01-24 10:23:05 -05:00
change_username_redirect_prompt = The old username will redirect until it is claimed.
2014-09-26 22:33:30 -04:00
continue = Continue
cancel = Cancel
2018-05-04 20:28:30 -04:00
language = Language
2019-01-09 12:22:57 -05:00
ui = Theme
2022-01-21 12:59:26 -05:00
hidden_comment_types = Hidden comment types
2023-04-12 07:59:17 -04:00
hidden_comment_types_description = Comment types checked here will not be shown inside issue pages. Checking "Label" for example removes all "<user> added/removed <label>" comments.
hidden_comment_types.ref_tooltip = Comments where this issue was referenced from another issue/commit/…
hidden_comment_types.issue_ref_tooltip = Comments where the user changes the branch/tag associated with the issue
2022-01-21 12:59:26 -05:00
comment_type_group_reference = Reference
comment_type_group_label = Label
comment_type_group_milestone = Milestone
comment_type_group_assignee = Assignee
comment_type_group_title = Title
comment_type_group_branch = Branch
comment_type_group_time_tracking = Time Tracking
comment_type_group_deadline = Deadline
comment_type_group_dependency = Dependency
comment_type_group_lock = Lock Status
comment_type_group_review_request = Review request
comment_type_group_pull_request_push = Added commits
comment_type_group_project = Project
comment_type_group_issue_ref = Issue reference
saved_successfully = Your settings were saved successfully.
2020-06-05 16:01:53 -04:00
privacy = Privacy
keep_activity_private = Hide the activity from the profile page
keep_activity_private_popup = Makes the activity visible only for you and the admins
2014-11-21 12:51:36 -05:00
2018-04-19 10:24:31 -04:00
lookup_avatar_by_mail = Look Up Avatar by Email Address
2016-08-07 13:27:38 -04:00
federated_avatar_lookup = Federated Avatar Lookup
enable_custom_avatar = Use Custom Avatar
2014-11-21 10:58:08 -05:00
choose_new_avatar = Choose new avatar
2018-04-19 10:24:31 -04:00
update_avatar = Update Avatar
2016-03-05 00:51:51 -05:00
delete_current_avatar = Delete Current Avatar
2018-04-19 10:24:31 -04:00
uploaded_avatar_not_a_image = The uploaded file is not an image.
2019-05-29 22:22:26 -04:00
uploaded_avatar_is_too_big = The uploaded file has exceeded the maximum size.
2018-04-19 10:24:31 -04:00
update_avatar_success = Your avatar has been updated.
2021-11-16 14:13:13 -05:00
update_user_avatar_success = The user's avatar has been updated.
2014-07-26 00:24:27 -04:00
2018-04-19 10:24:31 -04:00
change_password = Update Password
2014-07-26 00:24:27 -04:00
old_password = Current Password
new_password = New Password
2018-04-19 10:24:31 -04:00
retype_new_password = Re-Type New Password
password_incorrect = The current password is incorrect.
change_password_success = Your password has been updated. Sign in using your new password from now on.
2023-01-08 13:25:28 -05:00
password_change_disabled = Non-local users cannot update their password through the Gitea web interface.
2014-07-26 00:24:27 -04:00
2015-12-01 23:21:24 -05:00
emails = Email Addresses
2018-04-19 10:24:31 -04:00
manage_emails = Manage Email Addresses
2019-01-09 12:22:57 -05:00
manage_themes = Select default theme
2018-04-19 10:24:31 -04:00
manage_openid = Manage OpenID Addresses
2015-12-01 23:21:24 -05:00
email_desc = Your primary email address will be used for notifications and other operations.
2019-01-09 12:22:57 -05:00
theme_desc = This will be your default theme across the site.
2014-12-22 02:41:29 -05:00
primary = Primary
2020-03-02 13:25:36 -05:00
activated = Activated
requires_activation = Requires activation
2018-04-19 10:24:31 -04:00
primary_email = Make Primary
2020-03-02 13:25:36 -05:00
activate_email = Send Activation
activations_pending = Activations Pending
2018-04-19 10:24:31 -04:00
delete_email = Remove
email_deletion = Remove Email Address
email_deletion_desc = The email address and related information will be removed from your account. Git commits by this email address will remain unchanged. Continue?
email_deletion_success = The email address has been removed.
2019-01-09 12:22:57 -05:00
theme_update_success = Your theme was updated.
theme_update_error = The selected theme does not exist.
2018-04-19 10:24:31 -04:00
openid_deletion = Remove OpenID Address
openid_deletion_desc = Removing this OpenID address from your account will prevent you from signing in with it. Continue?
openid_deletion_success = The OpenID address has been removed.
add_new_email = Add New Email Address
add_new_openid = Add New OpenID URI
add_email = Add Email Address
2017-03-17 10:16:08 -04:00
add_openid = Add OpenID URI
2023-04-17 18:04:26 -04:00
add_email_confirmation_sent = A confirmation email has been sent to "%s". Please check your inbox within the next %s to confirm your email address.
2018-04-19 10:24:31 -04:00
add_email_success = The new email address has been added.
2020-04-09 13:22:17 -04:00
email_preference_set_success = Email preference has been set successfully.
2018-04-19 10:24:31 -04:00
add_openid_success = The new OpenID address has been added.
keep_email_private = Hide Email Address
2023-04-08 06:05:21 -04:00
keep_email_private_popup = Your email address will only be visible to you and the administrators
2018-04-19 10:24:31 -04:00
openid_desc = OpenID lets you delegate authentication to an external provider.
2014-12-22 02:11:30 -05:00
2014-07-26 00:24:27 -04:00
manage_ssh_keys = Manage SSH Keys
2020-10-10 20:38:09 -04:00
manage_ssh_principals = Manage SSH Certificate Principals
2017-04-26 09:10:43 -04:00
manage_gpg_keys = Manage GPG Keys
2014-07-26 00:24:27 -04:00
add_key = Add Key
2018-04-19 10:24:31 -04:00
ssh_desc = These public SSH keys are associated with your account. The corresponding private keys allow full access to your repositories.
2020-10-10 20:38:09 -04:00
principal_desc = These SSH certificate principals are associated with your account and allow full access to your repositories.
2018-04-19 10:24:31 -04:00
gpg_desc = These public GPG keys are associated with your account. Keep your private keys safe as they allow commits to be verified.
2017-11-01 12:03:10 -04:00
ssh_helper = <strong>Need help?</strong> Have a look at GitHub's guide to <a href="%s">create your own SSH keys</a> or solve <a href="%s">common problems</a> you may encounter using SSH.
gpg_helper = <strong>Need help?</strong> Have a look at GitHub's guide <a href="%s">about GPG</a>.
2014-07-26 00:24:27 -04:00
add_new_key = Add SSH Key
2017-04-26 09:10:43 -04:00
add_new_gpg_key = Add GPG Key
2021-01-20 15:36:55 -05:00
key_content_ssh_placeholder = Begins with 'ssh-ed25519', 'ssh-rsa', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521', 'sk-ecdsa-sha2-nistp256@openssh.com', or 'sk-ssh-ed25519@openssh.com'
2020-08-20 11:51:34 -04:00
key_content_gpg_placeholder = Begins with '-----BEGIN PGP PUBLIC KEY BLOCK-----'
2020-10-10 20:38:09 -04:00
add_new_principal = Add Principal
2019-02-03 18:56:53 -05:00
ssh_key_been_used = This SSH key has already been added to the server.
2020-10-10 20:38:09 -04:00
ssh_key_name_used = An SSH key with same name already exists on your account.
ssh_principal_been_used = This principal has already been added to the server.
2018-04-19 10:24:31 -04:00
gpg_key_id_used = A public GPG key with same ID already exists.
2021-07-13 09:28:07 -04:00
gpg_no_key_email_found = This GPG key does not match any activated email address associated with your account. It may still be added if you sign the provided token.
gpg_key_matched_identities = Matched Identities:
2021-07-14 06:50:39 -04:00
gpg_key_matched_identities_long = The embedded identities in this key match the following activated email addresses for this user. Commits matching these email addresses can be verified with this key.
2021-07-13 09:28:07 -04:00
gpg_key_verified = Verified Key
gpg_key_verified_long = Key has been verified with a token and can be used to verify commits matching any activated email addresses for this user in addition to any matched identities for this key.
gpg_key_verify = Verify
gpg_invalid_token_signature = The provided GPG key, signature and token do not match or token is out-of-date.
gpg_token_required = You must provide a signature for the below token
gpg_token = Token
gpg_token_help = You can generate a signature using:
gpg_token_code = echo "%s" | gpg -a --default-key %s --detach-sig
gpg_token_signature = Armored GPG signature
key_signature_gpg_placeholder = Begins with '-----BEGIN PGP SIGNATURE-----'
2023-04-17 18:04:26 -04:00
verify_gpg_key_success = GPG key "%s" has been verified.
2021-12-19 00:37:18 -05:00
ssh_key_verified = Verified Key
ssh_key_verified_long = Key has been verified with a token and can be used to verify commits matching any activated email addresses for this user.
ssh_key_verify = Verify
ssh_invalid_token_signature = The provided SSH key, signature or token do not match or token is out-of-date.
ssh_token_required = You must provide a signature for the below token
ssh_token = Token
ssh_token_help = You can generate a signature using:
ssh_token_signature = Armored SSH signature
key_signature_ssh_placeholder = Begins with '-----BEGIN SSH SIGNATURE-----'
2023-04-17 18:04:26 -04:00
verify_ssh_key_success = SSH key "%s" has been verified.
2017-04-26 09:10:43 -04:00
subkeys = Subkeys
key_id = Key ID
2014-07-26 00:24:27 -04:00
key_name = Key Name
key_content = Content
2020-10-10 20:38:09 -04:00
principal_content = Content
2023-04-17 18:04:26 -04:00
add_key_success = The SSH key "%s" has been added.
add_gpg_key_success = The GPG key "%s" has been added.
add_principal_success = The SSH certificate principal "%s" has been added.
2018-04-19 10:24:31 -04:00
delete_key = Remove
ssh_key_deletion = Remove SSH Key
gpg_key_deletion = Remove GPG Key
2020-10-10 20:38:09 -04:00
ssh_principal_deletion = Remove SSH Certificate Principal
2018-04-19 10:24:31 -04:00
ssh_key_deletion_desc = Removing an SSH key revokes its access to your account. Continue?
gpg_key_deletion_desc = Removing a GPG key un-verifies commits signed by it. Continue?
2020-10-10 20:38:09 -04:00
ssh_principal_deletion_desc = Removing a SSH Certificate Principal revokes its access to your account. Continue?
2018-04-19 10:24:31 -04:00
ssh_key_deletion_success = The SSH key has been removed.
gpg_key_deletion_success = The GPG key has been removed.
2020-10-10 20:38:09 -04:00
ssh_principal_deletion_success = The principal has been removed.
2023-05-06 09:11:27 -04:00
added_on = Added on %s
2023-05-06 08:37:02 -04:00
valid_until_date = Valid until %s
2017-06-24 02:37:03 -04:00
valid_forever = Valid forever
2014-07-26 00:24:27 -04:00
last_used = Last used on
no_activity = No recent activity
2018-01-06 17:55:53 -05:00
can_read_info = Read
can_write_info = Write
2017-05-17 21:03:43 -04:00
key_state_desc = This key has been used in the last 7 days
token_state_desc = This token has been used in the last 7 days
2020-10-10 20:38:09 -04:00
principal_state_desc = This principal has been used in the last 7 days
2017-03-20 04:31:08 -04:00
show_openid = Show on profile
hide_openid = Hide from profile
2018-04-19 10:24:31 -04:00
ssh_disabled = SSH Disabled
2023-04-10 13:22:51 -04:00
ssh_signonly = SSH is currently disabled so these keys are only used for commit signature verification.
2020-12-25 23:24:47 -05:00
ssh_externally_managed = This SSH key is externally managed for this user
2014-07-26 00:24:27 -04:00
manage_social = Manage Associated Social Accounts
2018-04-19 10:24:31 -04:00
social_desc = These social accounts are linked to your Gitea account. Make sure you recognize all of them as they can be used to sign in to your Gitea account.
unbind = Unlink
unbind_success = The social account has been unlinked from your Gitea account.
2014-08-09 20:25:02 -04:00
2018-04-19 10:24:31 -04:00
manage_access_token = Manage Access Tokens
2014-11-12 06:48:50 -05:00
generate_new_token = Generate New Token
2018-04-19 10:24:31 -04:00
tokens_desc = These tokens grant access to your account using the Gitea API.
2014-11-12 06:48:50 -05:00
token_name = Token Name
generate_token = Generate Token
2018-04-19 10:24:31 -04:00
generate_token_success = Your new token has been generated. Copy it now as it will not be shown again.
2020-04-13 15:02:48 -04:00
generate_token_name_duplicate = <strong>%s</strong> has been used as an application name already. Please use a new one.
2014-11-12 06:48:50 -05:00
delete_token = Delete
2018-04-19 10:24:31 -04:00
access_token_deletion = Delete Access Token
2022-06-07 20:28:10 -04:00
access_token_deletion_cancel_action = Cancel
access_token_deletion_confirm_action = Delete
access_token_deletion_desc = Deleting a token will revoke access to your account for applications using it. This cannot be undone. Continue?
2018-04-19 10:24:31 -04:00
delete_token_success = The token has been deleted. Applications using it no longer have access to your account.
Redesign Scoped Access Tokens (#24767)
## Changes
- Adds the following high level access scopes, each with `read` and
`write` levels:
- `activitypub`
- `admin` (hidden if user is not a site admin)
- `misc`
- `notification`
- `organization`
- `package`
- `issue`
- `repository`
- `user`
- Adds new middleware function `tokenRequiresScopes()` in addition to
`reqToken()`
- `tokenRequiresScopes()` is used for each high-level api section
- _if_ a scoped token is present, checks that the required scope is
included based on the section and HTTP method
- `reqToken()` is used for individual routes
- checks that required authentication is present (but does not check
scope levels as this will already have been handled by
`tokenRequiresScopes()`
- Adds migration to convert old scoped access tokens to the new set of
scopes
- Updates the user interface for scope selection
### User interface example
<img width="903" alt="Screen Shot 2023-05-31 at 1 56 55 PM"
src="https://github.com/go-gitea/gitea/assets/23248839/654766ec-2143-4f59-9037-3b51600e32f3">
<img width="917" alt="Screen Shot 2023-05-31 at 1 56 43 PM"
src="https://github.com/go-gitea/gitea/assets/23248839/1ad64081-012c-4a73-b393-66b30352654c">
## tokenRequiresScopes Design Decision
- `tokenRequiresScopes()` was added to more reliably cover api routes.
For an incoming request, this function uses the given scope category
(say `AccessTokenScopeCategoryOrganization`) and the HTTP method (say
`DELETE`) and verifies that any scoped tokens in use include
`delete:organization`.
- `reqToken()` is used to enforce auth for individual routes that
require it. If a scoped token is not present for a request,
`tokenRequiresScopes()` will not return an error
## TODO
- [x] Alphabetize scope categories
- [x] Change 'public repos only' to a radio button (private vs public).
Also expand this to organizations
- [X] Disable token creation if no scopes selected. Alternatively, show
warning
- [x] `reqToken()` is missing from many `POST/DELETE` routes in the api.
`tokenRequiresScopes()` only checks that a given token has the correct
scope, `reqToken()` must be used to check that a token (or some other
auth) is present.
- _This should be addressed in this PR_
- [x] The migration should be reviewed very carefully in order to
minimize access changes to existing user tokens.
- _This should be addressed in this PR_
- [x] Link to api to swagger documentation, clarify what
read/write/delete levels correspond to
- [x] Review cases where more than one scope is needed as this directly
deviates from the api definition.
- _This should be addressed in this PR_
- For example:
```go
m.Group("/users/{username}/orgs", func() {
m.Get("", reqToken(), org.ListUserOrgs)
m.Get("/{org}/permissions", reqToken(), org.GetUserOrgsPermissions)
}, tokenRequiresScopes(auth_model.AccessTokenScopeCategoryUser,
auth_model.AccessTokenScopeCategoryOrganization),
context_service.UserAssignmentAPI())
```
## Future improvements
- [ ] Add required scopes to swagger documentation
- [ ] Redesign `reqToken()` to be opt-out rather than opt-in
- [ ] Subdivide scopes like `repository`
- [ ] Once a token is created, if it has no scopes, we should display
text instead of an empty bullet point
- [ ] If the 'public repos only' option is selected, should read
categories be selected by default
Closes #24501
Closes #24799
Co-authored-by: Jonathan Tran <jon@allspice.io>
Co-authored-by: Kyle D <kdumontnu@gmail.com>
Co-authored-by: silverwind <me@silverwind.io>
2023-06-04 14:57:16 -04:00
repo_and_org_access = Repository and Organization Access
permissions_public_only = Public only
permissions_access_all = All (public, private, and limited)
select_permissions = Select permissions
scoped_token_desc = Selected token scopes limit authentication only to the corresponding <a %s>API</a> routes. Read the <a %s>documentation</a> for more information.
at_least_one_permission = You must select at least one permission to create a token
permissions_list = Permissions:
2014-11-12 06:48:50 -05:00
2019-03-08 11:42:50 -05:00
manage_oauth2_applications = Manage OAuth2 Applications
edit_oauth2_application = Edit OAuth2 Application
oauth2_applications_desc = OAuth2 applications enables your third-party application to securely authenticate users at this Gitea instance.
remove_oauth2_application = Remove OAuth2 Application
2019-06-05 10:16:06 -04:00
remove_oauth2_application_desc = Removing an OAuth2 application will revoke access to all signed access tokens. Continue?
2019-03-08 11:42:50 -05:00
remove_oauth2_application_success = The application has been deleted.
create_oauth2_application = Create a new OAuth2 Application
create_oauth2_application_button = Create Application
create_oauth2_application_success = You've successfully created a new OAuth2 application.
update_oauth2_application_success = You've successfully updated the OAuth2 application.
oauth2_application_name = Application Name
2022-10-24 03:59:24 -04:00
oauth2_confidential_client = Confidential Client. Select for apps that keep the secret confidential, such as web apps. Do not select for native apps including desktop and mobile apps.
2023-06-05 03:00:12 -04:00
oauth2_redirect_uris = Redirect URIs. Please use a new line for every URI.
2019-03-08 11:42:50 -05:00
save_application = Save
oauth2_client_id = Client ID
oauth2_client_secret = Client Secret
oauth2_regenerate_secret = Regenerate Secret
oauth2_regenerate_secret_hint = Lost your secret?
oauth2_client_secret_hint = The secret won't be visible if you revisit this page. Please save your secret.
oauth2_application_edit = Edit
oauth2_application_create_description = OAuth2 applications gives your third-party application access to user accounts on this instance.
oauth2_application_remove_description = Removing an OAuth2 application will prevent it to access authorized user accounts on this instance. Continue?
2019-04-17 04:18:16 -04:00
authorized_oauth2_applications = Authorized OAuth2 Applications
authorized_oauth2_applications_description = You've granted access to your personal Gitea account to these third party applications. Please revoke access for applications no longer needed.
revoke_key = Revoke
revoke_oauth2_grant = Revoke Access
revoke_oauth2_grant_description = Revoking access for this third party application will prevent this application from accessing your data. Are you sure?
revoke_oauth2_grant_success = You've revoked access successfully.
2018-04-19 10:24:31 -04:00
twofa_desc = Two-factor authentication enhances the security of your account.
2017-05-17 21:03:43 -04:00
twofa_is_enrolled = Your account is currently <strong>enrolled</strong> in two-factor authentication.
2017-03-09 08:24:57 -05:00
twofa_not_enrolled = Your account is not currently enrolled in two-factor authentication.
2018-04-19 10:24:31 -04:00
twofa_disable = Disable Two-Factor Authentication
twofa_scratch_token_regenerate = Regenerate Scratch Token
twofa_scratch_token_regenerated = Your scratch token is now %s. Store it in a safe place.
twofa_enroll = Enroll into Two-Factor Authentication
twofa_disable_note = You can disable two-factor authentication if needed.
twofa_disable_desc = Disabling two-factor authentication will make your account less secure. Continue?
regenerate_scratch_token_desc = If you misplaced your scratch token or have already used it to sign in you can reset it here.
2017-01-15 21:14:29 -05:00
twofa_disabled = Two-factor authentication has been disabled.
scan_this_image = Scan this image with your authentication application:
or_enter_secret = Or enter the secret: %s
2018-04-19 10:24:31 -04:00
then_enter_passcode = And enter the passcode shown in the application:
passcode_invalid = The passcode is incorrect. Try again.
twofa_enrolled = Your account has been enrolled into two-factor authentication. Store your scratch token (%s) in a safe place as it is only shown once!
2021-01-18 15:38:41 -05:00
twofa_failed_get_secret = Failed to get secret.
2017-01-15 21:14:29 -05:00
2022-01-15 11:52:56 -05:00
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.
2022-01-14 10:03:31 -05:00
webauthn_register_key = Add Security Key
webauthn_nickname = Nickname
webauthn_delete_key = Remove Security Key
webauthn_delete_key_desc = If you remove a security key you can no longer sign in with it. Continue?
2018-05-19 10:12:37 -04:00
2018-04-19 10:24:31 -04:00
manage_account_links = Manage Linked Accounts
manage_account_links_desc = These external accounts are linked to your Gitea account.
account_links_not_available = There are currently no external accounts linked to your Gitea account.
2022-05-29 04:19:56 -04:00
link_account = Link Account
2018-04-19 10:24:31 -04:00
remove_account_link = Remove Linked Account
remove_account_link_desc = Removing a linked account will revoke its access to your Gitea account. Continue?
remove_account_link_success = The linked account has been removed.
2017-02-22 02:14:37 -05:00
2023-03-10 09:28:32 -05:00
hooks.desc = Add webhooks which will be triggered for <strong>all repositories</strong> owned by this user.
2017-06-02 04:43:44 -04:00
orgs_none = You are not a member of any organizations.
2017-09-14 07:46:14 -04:00
repos_none = You do not own any repositories
2017-06-02 04:43:44 -04:00
2014-07-26 00:24:27 -04:00
delete_account = Delete Your Account
2023-01-08 13:25:28 -05:00
delete_prompt = This operation will permanently delete your user account. It <strong>CANNOT</strong> be undone.
2021-01-21 21:56:19 -05:00
delete_with_all_comments = Your account is younger than %s. To avoid ghost comments, all issue/PR comments will be deleted with it.
2014-07-26 00:24:27 -04:00
confirm_delete_account = Confirm Deletion
2018-04-19 10:24:31 -04:00
delete_account_title = Delete User Account
delete_account_desc = Are you sure you want to permanently delete this user account?
2014-07-26 00:24:27 -04:00
2019-08-29 10:05:42 -04:00
email_notifications.enable = Enable Email Notifications
email_notifications.onmention = Only Email on Mention
email_notifications.disable = Disable Email Notifications
email_notifications.submit = Set Email Preference
2022-07-28 11:28:46 -04:00
email_notifications.andyourown = And Your Own Notifications
2019-08-29 10:05:42 -04:00
2021-06-26 15:53:14 -04:00
visibility = User visibility
visibility.public = Public
2023-04-08 06:05:21 -04:00
visibility.public_tooltip = Visible to everyone
2021-06-26 15:53:14 -04:00
visibility.limited = Limited
2023-04-08 06:05:21 -04:00
visibility.limited_tooltip = Visible to authenticated users only
2021-06-26 15:53:14 -04:00
visibility.private = Private
visibility.private_tooltip = Visible only to organization members
2014-07-26 00:24:27 -04:00
[repo]
2021-02-21 04:59:31 -05:00
new_repo_helper = A repository contains all project files, including revision history. Already have it elsewhere? <a href="%s">Migrate repository.</a>
2014-07-26 00:24:27 -04:00
owner = Owner
2020-12-21 08:12:13 -05:00
owner_helper = Some organizations may not show up in the dropdown due to a maximum repository count limit.
2014-07-26 00:24:27 -04:00
repo_name = Repository Name
2018-04-19 10:24:31 -04:00
repo_name_helper = Good repository names use short, memorable and unique keywords.
2019-11-14 18:52:18 -05:00
repo_size = Repository Size
2019-11-11 10:15:29 -05:00
template = Template
template_select = Select a template.
template_helper = Make repository a template
template_description = Template repositories let users generate new repositories with the same directory structure, files, and optional settings.
2014-07-26 00:24:27 -04:00
visibility = Visibility
2019-09-05 05:13:51 -04:00
visibility_description = Only the owner or the organization members if they have rights, will be able to see it.
2018-07-04 07:43:21 -04:00
visibility_helper = Make Repository Private
visibility_helper_forced = Your site administrator forces new repositories to be private.
visibility_fork_helper = (Changing this will affect all forks.)
2018-07-03 19:52:36 -04:00
clone_helper = Need help cloning? Visit <a target="_blank" rel="noopener noreferrer" href="%s">Help</a>.
2014-11-05 23:30:04 -05:00
fork_repo = Fork Repository
fork_from = Fork From
2021-12-12 20:59:09 -05:00
already_forked = You've already forked %s
fork_to_different_account = Fork to a different account
2018-07-04 07:43:21 -04:00
fork_visibility_helper = The visibility of a forked repository cannot be changed.
2019-11-11 10:15:29 -05:00
use_template = Use this template
2021-08-12 08:21:34 -04:00
clone_in_vsc = Clone in VS Code
download_zip = Download ZIP
download_tar = Download TAR.GZ
2021-08-24 12:47:09 -04:00
download_bundle = Download BUNDLE
2019-11-11 10:15:29 -05:00
generate_repo = Generate Repository
generate_from = Generate From
2014-07-26 00:24:27 -04:00
repo_desc = Description
2021-02-21 04:59:31 -05:00
repo_desc_helper = Enter short description (optional)
2014-07-26 00:24:27 -04:00
repo_lang = Language
2018-04-19 10:24:31 -04:00
repo_gitignore_helper = Select .gitignore templates.
2021-02-21 04:59:31 -05:00
repo_gitignore_helper_desc = Choose which files not to track from a list of templates for common languages. Typical artifacts generated by each language's build tools are included on .gitignore by default.
2019-09-08 04:28:40 -04:00
issue_labels = Issue Labels
issue_labels_helper = Select an issue label set.
2014-07-26 00:24:27 -04:00
license = License
2018-04-19 10:24:31 -04:00
license_helper = Select a license file.
2021-02-21 04:59:31 -05:00
license_helper_desc = A license governs what others can and can't do with your code. Not sure which one is right for your project? See <a target="_blank" rel="noopener noreferrer" href="%s">Choose a license.</a>
2018-04-19 10:24:31 -04:00
readme = README
readme_helper = Select a README file template.
2021-02-21 04:59:31 -05:00
readme_helper_desc = This is the place where you can write a complete description for your project.
2018-04-19 10:24:31 -04:00
auto_init = Initialize Repository (Adds .gitignore, License and README)
2021-02-21 04:59:31 -05:00
trust_model_helper = Select trust model for signature verification. Possible options are:
trust_model_helper_collaborator = Collaborator: Trust signatures by collaborators
trust_model_helper_committer = Committer: Trust signatures that match committers
trust_model_helper_collaborator_committer = Collaborator+Committer: Trust signatures by collaborators which match the committer
trust_model_helper_default = Default: Use the default trust model for this installation
2014-07-26 00:24:27 -04:00
create_repo = Create Repository
2014-08-02 13:47:33 -04:00
default_branch = Default Branch
2021-02-21 04:59:31 -05:00
default_branch_helper = The default branch is the base branch for pull requests and code commits.
2016-07-09 01:42:05 -04:00
mirror_prune = Prune
2018-04-19 10:24:31 -04:00
mirror_prune_desc = Remove obsolete remote-tracking references
2022-07-08 15:45:12 -04:00
mirror_interval = Mirror Interval (valid time units are 'h', 'm', 's'). 0 to disable periodic sync. (Minimum interval: %s)
2018-04-19 10:24:31 -04:00
mirror_interval_invalid = The mirror interval is not valid.
2022-07-08 15:45:12 -04:00
mirror_sync_on_commit = Sync when commits are pushed
2018-04-19 10:24:31 -04:00
mirror_address = Clone From URL
2021-06-14 13:20:43 -04:00
mirror_address_desc = Put any required credentials in the Authorization section.
2019-04-12 16:52:57 -04:00
mirror_address_url_invalid = The provided url is invalid. You must escape all components of the url correctly.
mirror_address_protocol_invalid = The provided url is invalid. Only http(s):// or git:// locations can be mirrored from.
2021-04-09 11:00:32 -04:00
mirror_lfs = Large File Storage (LFS)
2021-04-08 18:25:57 -04:00
mirror_lfs_desc = Activate mirroring of LFS data.
mirror_lfs_endpoint = LFS Endpoint
mirror_lfs_endpoint_desc = Sync will attempt to use the clone url to <a target="_blank" rel="noopener noreferrer" href="%s">determine the LFS server</a>. You can also specify a custom endpoint if the repository LFS data is stored somewhere else.
2018-04-19 10:24:31 -04:00
mirror_last_synced = Last Synchronized
2021-05-31 06:46:20 -04:00
mirror_password_placeholder = (Unchanged)
mirror_password_blank_placeholder = (Unset)
mirror_password_help = Change the username to erase a stored password.
2015-11-16 23:28:46 -05:00
watchers = Watchers
stargazers = Stargazers
2023-06-05 09:25:43 -04:00
stars_remove_warning = This will remove all stars from this repository.
2015-11-16 23:28:46 -05:00
forks = Forks
2017-12-03 18:14:26 -05:00
reactions_more = and %d more
2020-01-17 02:34:37 -05:00
unit_disabled = The site administrator has disabled this repository section.
2020-02-11 04:34:17 -05:00
language_other = Other
2020-09-25 00:09:23 -04:00
adopt_search = Enter username to search for unadopted repositories... (leave blank to find all)
adopt_preexisting_label = Adopt Files
adopt_preexisting = Adopt pre-existing files
adopt_preexisting_content = Create repository from %s
adopt_preexisting_success = Adopted files and created repository from %s
delete_preexisting_label = Delete
delete_preexisting = Delete pre-existing files
delete_preexisting_content = Delete files in %s
delete_preexisting_success = Deleted unadopted files in %s
2021-06-27 19:13:20 -04:00
blame_prior = View blame prior to this change
2023-04-06 20:11:02 -04:00
author_search_tooltip = Shows a maximum of 30 users
2014-07-26 00:24:27 -04:00
2021-02-28 19:47:30 -05:00
transfer.accept = Accept Transfer
transfer.accept_desc = Transfer to "%s"
transfer.reject = Reject Transfer
transfer.reject_desc = Cancel transfer to "%s"
transfer.no_permission_to_accept = You do not have permission to Accept
transfer.no_permission_to_reject = You do not have permission to Reject
2020-06-22 16:20:51 -04:00
desc.private = Private
desc.public = Public
desc.private_template = Private template
desc.public_template = Template
desc.internal = Internal
desc.internal_template = Internal template
desc.archived = Archived
2019-11-11 10:15:29 -05:00
template.items = Template Items
template.git_content = Git Content (Default Branch)
2019-11-24 12:57:52 -05:00
template.git_hooks = Git Hooks
2021-12-23 22:56:57 -05:00
template.git_hooks_tooltip = You are currently unable to modify or remove Git Hooks once added. Select this only if you trust the template repository.
2019-11-24 12:57:52 -05:00
template.webhooks = Webhooks
2019-11-11 10:15:29 -05:00
template.topics = Topics
2019-11-25 00:17:51 -05:00
template.avatar = Avatar
template.issue_labels = Issue Labels
2019-11-11 10:15:29 -05:00
template.one_item = Must select at least one template item
template.invalid = Must select a template repository
2019-01-23 13:58:38 -05:00
archive.title = This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.
2023-04-26 10:46:26 -04:00
archive.title_date = This repository has been archived on %s. You can view files and clone it, but cannot push or open issues/pull-requests.
2019-01-23 13:58:38 -05:00
archive.issue.nocomment = This repo is archived. You cannot comment on issues.
archive.pull.nocomment = This repo is archived. You cannot comment on pull requests.
2022-11-11 04:19:12 -05:00
form.reach_limit_of_creation_1 = The owner has already reached the limit of %d repository.
form.reach_limit_of_creation_n = The owner has already reached the limit of %d repositories.
2023-04-17 18:04:26 -04:00
form.name_reserved = The repository name "%s" is reserved.
form.name_pattern_not_allowed = The pattern "%s" is not allowed in a repository name.
2015-03-26 17:11:47 -04:00
2021-06-14 13:20:43 -04:00
need_auth = Authorization
2020-08-27 21:36:37 -04:00
migrate_options = Migration Options
migrate_service = Migration Service
2022-07-12 05:04:15 -04:00
migrate_options_mirror_helper = This repository will be a mirror
2021-04-08 18:25:57 -04:00
migrate_options_lfs = Migrate LFS files
migrate_options_lfs_endpoint.label = LFS Endpoint
migrate_options_lfs_endpoint.description = Migration will attempt to use your Git remote to <a target="_blank" rel="noopener noreferrer" href="%s">determine the LFS server</a>. You can also specify a custom endpoint if the repository LFS data is stored somewhere else.
migrate_options_lfs_endpoint.description.local = A local server path is supported too.
migrate_options_lfs_endpoint.placeholder = Leave blank to derive from clone URL
2019-05-06 21:12:51 -04:00
migrate_items = Migration Items
migrate_items_wiki = Wiki
migrate_items_milestones = Milestones
migrate_items_labels = Labels
migrate_items_issues = Issues
migrate_items_pullrequests = Pull Requests
2020-09-09 14:29:10 -04:00
migrate_items_merge_requests = Merge Requests
2019-05-06 21:12:51 -04:00
migrate_items_releases = Releases
2014-08-01 00:06:19 -04:00
migrate_repo = Migrate Repository
2018-04-19 10:24:31 -04:00
migrate.clone_address = Migrate / Clone From URL
migrate.clone_address_desc = The HTTP(S) or Git 'clone' URL of an existing repository
2021-12-23 22:56:57 -05:00
migrate.github_token_desc = You can put one or more tokens with comma separated here to make migrating faster because of GitHub API rate limit. WARN: Abusing this feature may violate the service provider's policy and lead to account blocking.
2018-04-19 10:24:31 -04:00
migrate.clone_local_path = or a local server path
2015-11-03 18:40:52 -05:00
migrate.permission_denied = You are not allowed to import local repositories.
2023-01-08 13:25:28 -05:00
migrate.permission_denied_blocked = You cannot import from disallowed hosts, please ask the admin to check ALLOWED_DOMAINS/ALLOW_LOCALNETWORKS/BLOCKED_DOMAINS settings.
2023-03-23 13:27:03 -04:00
migrate.invalid_local_path = "The local path is invalid. It doesn't exist or is not a directory."
2021-04-08 18:25:57 -04:00
migrate.invalid_lfs_endpoint = The LFS endpoint is not valid.
2015-11-19 13:45:07 -05:00
migrate.failed = Migration failed: %v
2020-09-09 14:29:10 -04:00
migrate.migrate_items_options = Access Token is required to migrate additional items
2019-07-07 22:14:12 -04:00
migrated_from = Migrated from <a href="%[1]s">%[2]s</a>
migrated_from_fake = Migrated From %[1]s
2020-09-09 14:29:10 -04:00
migrate.migrate = Migrate From %s
2019-10-13 09:23:14 -04:00
migrate.migrating = Migrating from <b>%s</b> ...
migrate.migrating_failed = Migrating from <b>%s</b> failed.
2023-05-11 04:25:46 -04:00
migrate.migrating_failed.error = Failed to migrate: %s
2021-11-13 06:28:50 -05:00
migrate.migrating_failed_no_addr = Migration failed.
2021-12-23 22:56:57 -05:00
migrate.github.description = Migrate data from github.com or other GitHub instances.
2021-08-25 09:47:05 -04:00
migrate.git.description = Migrate a repository only from any Git service.
migrate.gitlab.description = Migrate data from gitlab.com or other GitLab instances.
migrate.gitea.description = Migrate data from gitea.com or other Gitea instances.
migrate.gogs.description = Migrate data from notabug.org or other Gogs instances.
migrate.onedev.description = Migrate data from code.onedev.io or other OneDev instances.
2021-12-02 17:24:02 -05:00
migrate.codebase.description = Migrate data from codebasehq.com.
2021-11-15 18:12:09 -05:00
migrate.gitbucket.description = Migrate data from GitBucket instances.
2021-06-16 18:02:24 -04:00
migrate.migrating_git = Migrating Git Data
migrate.migrating_topics = Migrating Topics
migrate.migrating_milestones = Migrating Milestones
migrate.migrating_labels = Migrating Labels
migrate.migrating_releases = Migrating Releases
migrate.migrating_issues = Migrating Issues
migrate.migrating_pulls = Migrating Pull Requests
2023-05-11 04:25:46 -04:00
migrate.cancel_migrating_title = Cancel Migration
migrate.cancel_migrating_confirm = Do you want to cancel this migration?
2014-08-01 00:06:19 -04:00
2016-02-01 15:59:48 -05:00
mirror_from = mirror of
2015-07-23 16:50:05 -04:00
forked_from = forked from
2019-11-11 10:15:29 -05:00
generated_from = generated from
2018-04-19 10:24:31 -04:00
fork_from_self = You cannot fork a repository you own.
2019-01-10 23:25:14 -05:00
fork_guest_user = Sign in to fork this repository.
2020-09-11 07:01:51 -04:00
watch_guest_user = Sign in to watch this repository.
star_guest_user = Sign in to star this repository.
2014-08-10 23:11:18 -04:00
unwatch = Unwatch
watch = Watch
unstar = Unstar
star = Star
fork = Fork
2018-04-19 10:24:31 -04:00
download_archive = Download Repository
2022-12-08 08:14:09 -05:00
more_operations = More Operations
2014-08-10 23:11:18 -04:00
2014-09-28 01:38:25 -04:00
no_desc = No Description
2014-08-31 09:03:16 -04:00
quick_guide = Quick Guide
clone_this_repo = Clone this repository
2022-11-11 12:02:50 -05:00
cite_this_repo = Cite this repository
2017-05-17 21:03:43 -04:00
create_new_repo_command = Creating a new repository on the command line
push_exist_repo = Pushing an existing repository from the command line
2019-01-17 19:01:04 -05:00
empty_message = This repository does not contain any content.
2021-12-23 22:56:57 -05:00
broken_message = The Git data underlying this repository cannot be read. Contact the administrator of this instance or delete this repository.
2015-10-02 19:58:36 -04:00
2015-12-02 17:00:23 -05:00
code = Code
2018-04-19 10:24:31 -04:00
code.desc = Access source code, files, commits and branches.
2014-09-23 13:47:54 -04:00
branch = Branch
tree = Tree
2020-09-08 12:29:51 -04:00
clear_ref = `Clear current reference`
2015-11-14 04:34:01 -05:00
filter_branch_and_tag = Filter branch or tag
2021-05-03 13:27:48 -04:00
find_tag = Find tag
2014-09-23 13:47:54 -04:00
branches = Branches
tags = Tags
issues = Issues
2015-09-02 16:18:09 -04:00
pulls = Pull Requests
2020-08-16 23:07:38 -04:00
project_board = Projects
2022-05-08 11:51:50 -04:00
packages = Packages
2023-04-03 00:05:37 -04:00
actions = Actions
2015-07-23 16:50:05 -04:00
labels = Labels
Add Organization Wide Labels (#10814)
* Add organization wide labels
Implement organization wide labels similar to organization wide
webhooks. This lets you create individual labels for organizations that can be used
for all repos under that organization (so being able to reuse the same
label across multiple repos).
This makes it possible for small organizations with many repos to use
labels effectively.
Fixes #7406
* Add migration
* remove comments
* fix tests
* Update options/locale/locale_en-US.ini
Removed unused translation string
* show org labels in issue search label filter
* Use more clear var name
* rename migration after merge from master
* comment typo
* update migration again after rebase with master
* check for orgID <=0 per guillep2k review
* fmt
* Apply suggestions from code review
Co-Authored-By: guillep2k <18600385+guillep2k@users.noreply.github.com>
* remove unused code
* Make sure RepoID is 0 when searching orgID per code review
* more changes/code review requests
* More descriptive translation var per code review
* func description/delete comment when issue label deleted instead of hiding it
* remove comment
* only use issues in that repo when calculating number of open issues for org label on repo label page
* Add integration test for IssuesSearch API with labels
* remove unused function
* Update models/issue_label.go
Co-Authored-By: guillep2k <18600385+guillep2k@users.noreply.github.com>
* Use subquery in GetLabelIDsInReposByNames
* Fix tests to use correct orgID
* fix more tests
* IssuesSearch api now uses new BuildLabelNamesIssueIDsCondition. Add a few more tests as well
* update comment for clarity
* Revert previous code change now that we can use the new BuildLabelNamesIssueIDsCondition
* Don't sort repos by date in IssuesSearch API
After much debugging I've found a strange issue where in some cases MySQL will return a different result than other enigines if a query is sorted by a null collumn. For example with our integration test data where we don't set updated_unix in repository fixtures:
SELECT `id`, `owner_id`, `owner_name`, `lower_name`, `name`, `description`, `website`, `original_service_type`, `original_url`, `default_branch`, `num_watches`, `num_stars`, `num_forks`, `num_issues`, `num_closed_issues`, `num_pulls`, `num_closed_pulls`, `num_milestones`, `num_closed_milestones`, `is_private`, `is_empty`, `is_archived`, `is_mirror`, `status`, `is_fork`, `fork_id`, `is_template`, `template_id`, `size`, `is_fsck_enabled`, `close_issues_via_commit_in_any_branch`, `topics`, `avatar`, `created_unix`, `updated_unix` FROM `repository` ORDER BY updated_unix DESC LIMIT 15 OFFSET 45
Returns different results for MySQL than other engines. However, the similar query:
SELECT `id`, `owner_id`, `owner_name`, `lower_name`, `name`, `description`, `website`, `original_service_type`, `original_url`, `default_branch`, `num_watches`, `num_stars`, `num_forks`, `num_issues`, `num_closed_issues`, `num_pulls`, `num_closed_pulls`, `num_milestones`, `num_closed_milestones`, `is_private`, `is_empty`, `is_archived`, `is_mirror`, `status`, `is_fork`, `fork_id`, `is_template`, `template_id`, `size`, `is_fsck_enabled`, `close_issues_via_commit_in_any_branch`, `topics`, `avatar`, `created_unix`, `updated_unix` FROM `repository` ORDER BY updated_unix DESC LIMIT 15 OFFSET 30
Returns the same results.
This causes integration tests to fail on MySQL in certain cases but would never show up in a real installation. Since this API call always returns issues based on the optionally provided repo_priority_id or the issueID itself, there is no change to results by changing the repo sorting method used to get ids earlier in the function.
* linter is back!
* code review
* remove now unused option
* Fix newline at end of files
* more unused code
* update to master
* check for matching ids before query
* Update models/issue_label.go
Co-Authored-By: 6543 <6543@obermui.de>
* Update models/issue_label.go
* update comments
* Update routers/org/setting.go
Co-authored-by: Lauris BH <lauris@nix.lv>
Co-authored-by: guillep2k <18600385+guillep2k@users.noreply.github.com>
Co-authored-by: 6543 <6543@obermui.de>
2020-04-01 00:14:46 -04:00
org_labels_desc = Organization level labels that can be used with <strong>all repositories</strong> under this organization
org_labels_desc_manage = manage
2015-07-23 16:50:05 -04:00
milestones = Milestones
2014-09-23 13:47:54 -04:00
commits = Commits
2017-12-03 15:52:30 -05:00
commit = Commit
2020-11-02 18:10:22 -05:00
release = Release
2014-09-23 13:47:54 -04:00
releases = Releases
2020-11-05 09:20:42 -05:00
tag = Tag
2020-11-02 18:10:22 -05:00
released_this = released this
2023-03-27 09:41:33 -04:00
tagged_this = tagged this
2021-11-17 18:50:17 -05:00
file.title = %s at %s
2014-10-11 18:02:48 -04:00
file_raw = Raw
file_history = History
2021-01-12 22:45:19 -05:00
file_view_source = View Source
file_view_rendered = View Rendered
2014-10-11 18:02:48 -04:00
file_view_raw = View Raw
2015-05-13 18:14:24 -04:00
file_permalink = Permalink
2018-04-19 10:24:31 -04:00
file_too_large = The file is too large to be shown.
2022-08-13 14:32:34 -04:00
invisible_runes_header = `This file contains invisible Unicode characters!`
invisible_runes_description = `This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.`
ambiguous_runes_header = `This file contains ambiguous Unicode characters!`
ambiguous_runes_description = `This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.`
invisible_runes_line = `This line has invisible unicode characters`
ambiguous_runes_line = `This line has ambiguous unicode characters`
2023-05-24 10:39:33 -04:00
ambiguous_character = `%[1]c [U+%04[1]X] can be confused with %[2]c [U+%04[2]X]`
2022-01-06 20:18:52 -05:00
escape_control_characters = Escape
unescape_control_characters = Unescape
2021-10-02 03:46:43 -04:00
file_copy_permalink = Copy Permalink
2022-04-26 06:54:40 -04:00
view_git_blame = View Git Blame
2018-04-19 10:24:31 -04:00
video_not_supported_in_browser = Your browser does not support the HTML5 'video' tag.
2018-10-29 22:17:26 -04:00
audio_not_supported_in_browser = Your browser does not support the HTML5 'audio' tag.
2016-12-25 20:16:37 -05:00
stored_lfs = Stored with Git LFS
2020-02-21 18:04:20 -05:00
symbolic_link = Symbolic link
2018-04-19 10:24:31 -04:00
commit_graph = Commit Graph
2020-11-08 12:21:54 -05:00
commit_graph.select = Select branches
commit_graph.hide_pr_refs = Hide Pull Requests
2020-08-06 04:04:08 -04:00
commit_graph.monochrome = Mono
2021-10-21 17:51:03 -04:00
commit_graph.color = Color
2019-04-19 22:47:00 -04:00
blame = Blame
2021-11-14 20:05:12 -05:00
download_file = Download file
2019-04-19 22:47:00 -04:00
normal_view = Normal View
2019-10-07 19:38:41 -04:00
line = line
2019-10-07 00:59:17 -04:00
lines = lines
Append `(comment)` when a link points at a comment rather than the whole issue (#23734)
Close #23671
For the feature mentioned above, this PR append ' (comment)' to the
rendered html if it is a hashcomment.
After the PR, type in the following
```
pull request from other repo:
http://localhost:3000/testOrg/testOrgRepo/pulls/2
pull request from this repo:
http://localhost:3000/aaa/testA/pulls/2
issue comment from this repo:
http://localhost:3000/aaa/testA/issues/1#issuecomment-18
http://localhost:3000/aaa/testA/pulls/2#issue-9
issue comment from other repo:
http://localhost:3000/testOrg/testOrgRepo/pulls/2#issuecomment-24
http://localhost:3000/testOrg/testOrgRepo/pulls/2#issue
```
Gives:
<img width="687" alt="截屏2023-03-27 13 53 06"
src="https://user-images.githubusercontent.com/17645053/227852387-2b218e0d-3468-4d90-ad81-d702ddd17fd2.png">
Other than the above feature, this PR also includes two other changes:
1 Right now, the render of links from file changed tab in pull request
might not be very proper, for example, if type in the following. (not
sure if this is an issue or design, if not an issue, I will revert the
changes). example on
[try.gitea.io](https://try.gitea.io/HesterG/testrepo/pulls/1)
```
https://try.gitea.io/HesterG/testrepo/pulls/1/files#issuecomment-162725
https://try.gitea.io/HesterG/testrepo/pulls/1/files
```
it will render the following
<img width="899" alt="截屏2023-03-24 15 41 37"
src="https://user-images.githubusercontent.com/17645053/227456117-5eccedb7-9118-4540-929d-aee9a76de852.png">
In this PR, skip processing the link into a ref issue if it is a link
from files changed tab in pull request
After:
type in following
```
hash comment on files changed tab:
http://localhost:3000/testOrg/testOrgRepo/pulls/2/files#issuecomment-24
files changed link:
http://localhost:3000/testOrg/testOrgRepo/pulls/2/files
```
Gives
<img width="708" alt="截屏2023-03-27 22 09 02"
src="https://user-images.githubusercontent.com/17645053/227964273-5dc06c50-3713-489c-b05d-d95367d0ab0f.png">
2 Right now, after editing the comment area, there will not be tippys
attached to `ref-issue`; and no tippy attached on preview as well.
example:
https://user-images.githubusercontent.com/17645053/227850540-5ae34e2d-b1d7-4d0d-9726-7701bf825d1f.mov
In this PR, in frontend, make sure tippy is added after editing the
comment, and to the comment on preview tab
After:
https://user-images.githubusercontent.com/17645053/227853777-06f56b4c-1148-467c-b6f7-f79418e67504.mov
2023-04-03 04:02:57 -04:00
from_comment = (comment)
2014-09-23 13:47:54 -04:00
2022-08-07 19:15:11 -04:00
editor.add_file = Add File
2018-04-19 10:24:31 -04:00
editor.new_file = New File
editor.upload_file = Upload File
editor.edit_file = Edit File
2016-08-28 07:31:42 -04:00
editor.preview_changes = Preview Changes
2019-02-12 10:09:43 -05:00
editor.cannot_edit_lfs_files = LFS files cannot be edited in the web interface.
2018-04-19 10:24:31 -04:00
editor.cannot_edit_non_text_files = Binary files cannot be edited in the web interface.
editor.edit_this_file = Edit File
2019-10-29 17:32:21 -04:00
editor.this_file_locked = File is locked
2018-04-19 10:24:31 -04:00
editor.must_be_on_a_branch = You must be on a branch to make or propose changes to this file.
editor.fork_before_edit = You must fork this repository to make or propose changes to this file.
editor.delete_this_file = Delete File
editor.must_have_write_access = You must have write access to make or propose changes to this file.
2023-04-17 18:04:26 -04:00
editor.file_delete_success = File "%s" has been deleted.
2018-02-16 09:02:40 -05:00
editor.name_your_file = Name your file…
2018-04-19 10:24:31 -04:00
editor.filename_help = Add a directory by typing its name followed by a slash ('/'). Remove a directory by typing backspace at the beginning of the input field.
2016-08-28 07:31:42 -04:00
editor.or = or
2018-04-19 10:24:31 -04:00
editor.cancel_lower = Cancel
2020-01-15 03:32:57 -05:00
editor.commit_signed_changes = Commit Signed Changes
2016-08-28 04:41:44 -04:00
editor.commit_changes = Commit Changes
2019-04-17 12:06:35 -04:00
editor.add_tmpl = Add '<filename>'
2023-04-17 18:04:26 -04:00
editor.add = Add %s
editor.update = Update %s
editor.delete = Delete %s
2022-02-09 15:28:55 -05:00
editor.patch = Apply Patch
editor.patching = Patching:
2023-04-17 18:04:26 -04:00
editor.fail_to_apply_patch = Unable to apply patch "%s"
2022-02-09 15:28:55 -05:00
editor.new_patch = New Patch
2018-02-16 09:02:40 -05:00
editor.commit_message_desc = Add an optional extended description…
2021-01-29 03:57:45 -05:00
editor.signoff_desc = Add a Signed-off-by trailer by the committer at the end of the commit log message.
2017-11-01 12:03:10 -04:00
editor.commit_directly_to_this_branch = Commit directly to the <strong class="branch-name">%s</strong> branch.
2016-08-15 02:02:14 -04:00
editor.create_new_branch = Create a <strong>new branch</strong> for this commit and start a pull request.
2019-10-04 22:09:19 -04:00
editor.create_new_branch_np = Create a <strong>new branch</strong> for this commit.
2019-07-17 14:40:28 -04:00
editor.propose_file_change = Propose file change
2023-01-31 20:43:06 -05:00
editor.new_branch_name = Name the new branch for this commit
2018-02-16 09:02:40 -05:00
editor.new_branch_name_desc = New branch name…
2016-08-28 04:41:44 -04:00
editor.cancel = Cancel
2018-04-19 10:24:31 -04:00
editor.filename_cannot_be_empty = The filename cannot be empty.
2023-04-17 18:04:26 -04:00
editor.filename_is_invalid = The filename is invalid: "%s".
editor.branch_does_not_exist = Branch "%s" does not exist in this repository.
editor.branch_already_exists = Branch "%s" already exists in this repository.
editor.directory_is_a_file = Directory name "%s" is already used as a filename in this repository.
2023-05-04 14:46:47 -04:00
editor.file_is_a_symlink = `"%s" is a symbolic link. Symbolic links cannot be edited in the web editor`
2023-04-17 18:04:26 -04:00
editor.filename_is_a_directory = Filename "%s" is already used as a directory name in this repository.
editor.file_editing_no_longer_exists = The file being edited, "%s", no longer exists in this repository.
editor.file_deleting_no_longer_exists = The file being deleted, "%s", no longer exists in this repository.
2018-07-03 19:52:36 -04:00
editor.file_changed_while_editing = The file contents have changed since you started editing. <a target="_blank" rel="noopener noreferrer" href="%s">Click here</a> to see them or <strong>Commit Changes again</strong> to overwrite them.
2023-04-17 18:04:26 -04:00
editor.file_already_exists = A file named "%s" already exists in this repository.
2019-10-16 15:28:41 -04:00
editor.commit_empty_file_header = Commit an empty file
2020-09-06 12:24:24 -04:00
editor.commit_empty_file_text = The file you're about to commit is empty. Proceed?
2016-08-15 02:02:14 -04:00
editor.no_changes_to_show = There are no changes to show.
2023-04-17 18:04:26 -04:00
editor.fail_to_update_file = Failed to update/create file "%s".
2020-10-20 19:50:10 -04:00
editor.fail_to_update_file_summary = Error Message:
2021-12-23 22:56:57 -05:00
editor.push_rejected_no_message = The change was rejected by the server without a message. Please check Git Hooks.
editor.push_rejected = The change was rejected by the server. Please check Git Hooks.
2020-10-20 19:50:10 -04:00
editor.push_rejected_summary = Full Rejection Message:
2018-04-19 10:24:31 -04:00
editor.add_subdir = Add a directory…
2023-04-17 18:04:26 -04:00
editor.unable_to_upload_files = Failed to upload files to "%s" with error: %v
editor.upload_file_is_locked = File "%s" is locked by %s.
editor.upload_files_to_dir = Upload files to "%s"
editor.cannot_commit_to_protected_branch = Cannot commit to protected branch "%s".
2020-01-15 03:32:57 -05:00
editor.no_commit_to_branch = Unable to commit directly to branch because:
editor.user_no_push_to_branch = User cannot push to branch
editor.require_signed_commit = Branch requires a signed commit
2022-02-09 15:28:55 -05:00
editor.cherry_pick = Cherry-pick %s onto:
editor.revert = Revert %s onto:
2016-08-11 08:48:08 -04:00
2018-04-19 10:24:31 -04:00
commits.desc = Browse source code change history.
2014-09-23 15:30:04 -04:00
commits.commits = Commits
2023-04-17 18:04:26 -04:00
commits.no_commits = No commits in common. "%s" and "%s" have entirely different histories.
2021-07-28 22:32:48 -04:00
commits.nothing_to_compare = These branches are equal.
2018-04-19 10:24:31 -04:00
commits.search = Search commits…
2023-03-23 13:27:03 -04:00
commits.search.tooltip = You can prefix keywords with "author:", "committer:", "after:", or "before:", e.g. "revert author:Alice before:2019-01-13".
2017-04-05 21:32:59 -04:00
commits.find = Search
2018-04-19 10:24:31 -04:00
commits.search_all = All Branches
2014-09-23 15:30:04 -04:00
commits.author = Author
commits.message = Message
commits.date = Date
commits.older = Older
commits.newer = Newer
2017-07-09 21:46:06 -04:00
commits.signed_by = Signed by
2020-02-27 14:20:55 -05:00
commits.signed_by_untrusted_user = Signed by untrusted user
commits.signed_by_untrusted_user_unmatched = Signed by untrusted user who does not match committer
2018-04-19 10:24:31 -04:00
commits.gpg_key_id = GPG Key ID
2021-12-19 00:37:18 -05:00
commits.ssh_key_fingerprint = SSH Key Fingerprint
2014-09-23 15:30:04 -04:00
2022-12-08 08:14:09 -05:00
commit.operations = Operations
2022-02-09 15:28:55 -05:00
commit.revert = Revert
commit.revert-header = Revert: %s
commit.revert-content = Select branch to revert onto:
commit.cherry-pick = Cherry-pick
commit.cherry-pick-header = Cherry-pick: %s
commit.cherry-pick-content = Select branch to cherry-pick onto:
2022-01-04 22:37:00 -05:00
ext_issues = Access to External Issues
2018-04-19 10:24:31 -04:00
ext_issues.desc = Link to an external issue tracker.
2017-05-18 10:54:24 -04:00
2020-08-17 11:58:23 -04:00
projects = Projects
2021-02-16 17:37:20 -05:00
projects.desc = Manage issues and pulls in project boards.
2021-01-23 05:30:28 -05:00
projects.description = Description (optional)
projects.description_placeholder = Description
2020-08-16 23:07:38 -04:00
projects.create = Create Project
projects.title = Title
2023-02-24 18:10:50 -05:00
projects.new = New Project
2020-08-16 23:07:38 -04:00
projects.new_subheader = Coordinate, track, and update your work in one place, so projects stay transparent and on schedule.
2023-04-17 18:04:26 -04:00
projects.create_success = The project "%s" has been created.
2020-08-16 23:07:38 -04:00
projects.deletion = Delete Project
projects.deletion_desc = Deleting a project removes it from all related issues. Continue?
projects.deletion_success = The project has been deleted.
2023-02-24 18:10:50 -05:00
projects.edit = Edit Project
2020-08-16 23:07:38 -04:00
projects.edit_subheader = Projects organize issues and track progress.
2023-02-24 18:10:50 -05:00
projects.modify = Edit Project
2023-04-17 18:04:26 -04:00
projects.edit_success = Project "%s" has been updated.
2020-08-16 23:07:38 -04:00
projects.type.none = "None"
projects.type.basic_kanban = "Basic Kanban"
projects.type.bug_triage = "Bug Triage"
2023-02-24 18:10:50 -05:00
projects.template.desc = "Template"
2020-08-16 23:07:38 -04:00
projects.template.desc_helper = "Select a project template to get started"
projects.type.uncategorized = Uncategorized
2023-02-24 18:10:50 -05:00
projects.column.edit = "Edit Column"
projects.column.edit_title = "Name"
projects.column.new_title = "Name"
projects.column.new_submit = "Create Column"
projects.column.new = "New Column"
projects.column.set_default = "Set Default"
projects.column.set_default_desc = "Set this column as default for uncategorized issues and pulls"
2023-04-19 10:28:28 -04:00
projects.column.unset_default = "Unset Default"
projects.column.unset_default_desc = "Unset this column as default"
2023-02-24 18:10:50 -05:00
projects.column.delete = "Delete Column"
projects.column.deletion_desc = "Deleting a project column moves all related issues to 'Uncategorized'. Continue?"
projects.column.color = "Color"
2020-08-16 23:07:38 -04:00
projects.open = Open
projects.close = Close
2023-02-24 18:10:50 -05:00
projects.column.assigned_to = Assigned to
2023-02-11 03:12:41 -05:00
projects.card_type.desc = "Card Previews"
projects.card_type.images_and_text = "Images and Text"
projects.card_type.text_only = "Text Only"
2020-08-16 23:07:38 -04:00
2018-04-19 10:24:31 -04:00
issues.desc = Organize bug reports, tasks and milestones.
2020-04-04 01:39:48 -04:00
issues.filter_assignees = Filter Assignee
issues.filter_milestones = Filter Milestone
2020-08-16 23:07:38 -04:00
issues.filter_projects = Filter Project
2020-04-04 01:39:48 -04:00
issues.filter_labels = Filter Label
2020-04-06 12:33:34 -04:00
issues.filter_reviewers = Filter Reviewer
2015-07-23 16:50:05 -04:00
issues.new = New Issue
2019-01-21 06:45:32 -05:00
issues.new.title_empty = Title cannot be empty
2015-08-10 02:42:50 -04:00
issues.new.labels = Labels
2015-08-10 06:57:57 -04:00
issues.new.no_label = No Label
2015-08-10 02:42:50 -04:00
issues.new.clear_labels = Clear labels
2020-08-16 23:07:38 -04:00
issues.new.projects = Projects
issues.new.clear_projects = Clear projects
issues.new.no_projects = No project
issues.new.open_projects = Open Projects
issues.new.closed_projects = Closed Projects
2020-04-04 01:39:48 -04:00
issues.new.no_items = No items
2015-08-10 02:42:50 -04:00
issues.new.milestone = Milestone
2015-08-10 06:57:57 -04:00
issues.new.no_milestone = No Milestone
issues.new.clear_milestone = Clear milestone
issues.new.open_milestone = Open Milestones
issues.new.closed_milestone = Closed Milestones
2018-05-09 12:29:04 -04:00
issues.new.assignees = Assignees
issues.new.clear_assignees = Clear assignees
2018-07-20 12:40:08 -04:00
issues.new.no_assignees = No Assignees
2020-04-06 12:33:34 -04:00
issues.new.no_reviewers = No reviewers
2020-09-11 10:48:39 -04:00
issues.choose.get_started = Get Started
2023-03-28 14:22:07 -04:00
issues.choose.open_external_link = Open
2020-09-15 22:07:09 -04:00
issues.choose.blank = Default
2020-10-14 07:17:40 -04:00
issues.choose.blank_about = Create an issue from default template.
2022-09-02 03:58:49 -04:00
issues.choose.ignore_invalid_templates = Invalid templates have been ignored
issues.choose.invalid_templates = %v invalid template(s) found
2023-03-28 14:22:07 -04:00
issues.choose.invalid_config = The issue config contains errors:
2017-08-24 08:30:27 -04:00
issues.no_ref = No Branch/Tag Specified
2015-08-09 03:23:02 -04:00
issues.create = Create Issue
2015-07-24 09:02:49 -04:00
issues.new_label = New Label
2018-04-19 10:24:31 -04:00
issues.new_label_placeholder = Label name
issues.new_label_desc_placeholder = Description
2015-08-09 10:45:38 -04:00
issues.create_label = Create Label
2016-08-29 23:00:06 -04:00
issues.label_templates.title = Load a predefined set of labels
2018-04-19 10:24:31 -04:00
issues.label_templates.info = No labels exist yet. Create a label with 'New Label' or use a predefined label set:
2016-08-29 23:00:06 -04:00
issues.label_templates.helper = Select a label set
2018-04-19 10:24:31 -04:00
issues.label_templates.use = Use Label Set
2023-04-17 18:04:26 -04:00
issues.label_templates.fail_to_load_file = Failed to load label template file "%s": %v
2020-10-25 17:49:48 -04:00
issues.add_label = added the %s label %s
issues.add_labels = added the %s labels %s
issues.remove_label = removed the %s label %s
issues.remove_labels = removed the %s labels %s
issues.add_remove_labels = added %s and removed %s labels %s
2017-01-31 21:36:08 -05:00
issues.add_milestone_at = `added this to the <b>%s</b> milestone %s`
2020-08-16 23:07:38 -04:00
issues.add_project_at = `added this to the <b>%s</b> project %s`
2017-01-31 21:36:08 -05:00
issues.change_milestone_at = `modified the milestone from <b>%s</b> to <b>%s</b> %s`
2020-08-16 23:07:38 -04:00
issues.change_project_at = `modified the project from <b>%s</b> to <b>%s</b> %s`
2017-01-31 21:36:08 -05:00
issues.remove_milestone_at = `removed this from the <b>%s</b> milestone %s`
2020-08-16 23:07:38 -04:00
issues.remove_project_at = `removed this from the <b>%s</b> project %s`
2017-06-17 00:51:28 -04:00
issues.deleted_milestone = `(deleted)`
2020-08-16 23:07:38 -04:00
issues.deleted_project = `(deleted)`
2017-02-03 10:09:10 -05:00
issues.self_assign_at = `self-assigned this %s`
issues.add_assignee_at = `was assigned by <b>%s</b> %s`
2019-01-19 14:16:46 -05:00
issues.remove_assignee_at = `was unassigned by <b>%s</b> %s`
issues.remove_self_assignment = `removed their assignment %s`
2019-09-02 12:11:23 -04:00
issues.change_title_at = `changed title from <b><strike>%s</strike></b> to <b>%s</b> %s`
2021-11-19 04:54:31 -05:00
issues.change_ref_at = `changed reference from <b><strike>%s</strike></b> to <b>%s</b> %s`
issues.remove_ref_at = `removed reference <b>%s</b> %s`
issues.add_ref_at = `added reference <b>%s</b> %s`
2017-02-10 23:00:29 -05:00
issues.delete_branch_at = `deleted branch <b>%s</b> %s`
2015-07-23 16:50:05 -04:00
issues.filter_label = Label
2019-10-23 12:29:14 -04:00
issues.filter_label_exclude = `Use <code>alt</code> + <code>click/enter</code> to exclude labels`
2018-04-19 10:24:31 -04:00
issues.filter_label_no_select = All labels
2023-05-17 05:21:35 -04:00
issues.filter_label_select_no_label = No Label
2015-07-23 16:50:05 -04:00
issues.filter_milestone = Milestone
2023-04-30 09:12:49 -04:00
issues.filter_milestone_all = All milestones
issues.filter_milestone_none = No milestones
issues.filter_milestone_open = Open milestones
issues.filter_milestone_closed = Closed milestones
2023-01-28 22:45:29 -05:00
issues.filter_project = Project
2023-02-04 09:35:08 -05:00
issues.filter_project_all = All projects
issues.filter_project_none = No project
2015-07-23 16:50:05 -04:00
issues.filter_assignee = Assignee
2018-04-19 10:24:31 -04:00
issues.filter_assginee_no_select = All assignees
2023-05-17 05:21:35 -04:00
issues.filter_assginee_no_assignee = No assignee
2022-08-08 16:03:58 -04:00
issues.filter_poster = Author
issues.filter_poster_no_select = All authors
2015-07-23 16:50:05 -04:00
issues.filter_type = Type
issues.filter_type.all_issues = All issues
issues.filter_type.assigned_to_you = Assigned to you
issues.filter_type.created_by_you = Created by you
issues.filter_type.mentioning_you = Mentioning you
2021-01-17 11:34:19 -05:00
issues.filter_type.review_requested = Review requested
2023-02-24 21:55:50 -05:00
issues.filter_type.reviewed_by_you = Reviewed by you
2015-08-15 00:07:08 -04:00
issues.filter_sort = Sort
2015-08-15 04:30:24 -04:00
issues.filter_sort.latest = Newest
2015-08-15 00:07:08 -04:00
issues.filter_sort.oldest = Oldest
2015-08-15 04:30:24 -04:00
issues.filter_sort.recentupdate = Recently updated
issues.filter_sort.leastupdate = Least recently updated
issues.filter_sort.mostcomment = Most commented
issues.filter_sort.leastcomment = Least commented
2019-03-05 09:39:41 -05:00
issues.filter_sort.nearduedate = Nearest due date
issues.filter_sort.farduedate = Farthest due date
2018-05-23 21:03:42 -04:00
issues.filter_sort.moststars = Most stars
issues.filter_sort.feweststars = Fewest stars
issues.filter_sort.mostforks = Most forks
issues.filter_sort.fewestforks = Fewest forks
2022-01-28 08:56:31 -05:00
issues.keyword_search_unavailable = Currently searching by keyword is not available. Please contact your site administrator.
2017-03-14 21:10:35 -04:00
issues.action_open = Open
issues.action_close = Close
issues.action_label = Label
issues.action_milestone = Milestone
issues.action_milestone_no_select = No milestone
issues.action_assignee = Assignee
issues.action_assignee_no_select = No assignee
2023-01-31 20:43:06 -05:00
issues.action_check = Check/Uncheck
issues.action_check_all = Check/Uncheck all items
2017-11-01 12:03:10 -04:00
issues.opened_by = opened %[1]s by <a href="%[2]s">%[3]s</a>
2021-12-13 20:45:39 -05:00
pulls.merged_by = by <a href="%[2]s">%[3]s</a> was merged %[1]s
pulls.merged_by_fake = by %[2]s was merged %[1]s
issues.closed_by = by <a href="%[2]s">%[3]s</a> was closed %[1]s
2021-09-23 12:57:52 -04:00
issues.opened_by_fake = opened %[1]s by %[2]s
2021-12-13 20:45:39 -05:00
issues.closed_by_fake = by %[2]s was closed %[1]s
2015-07-27 15:14:37 -04:00
issues.previous = Previous
issues.next = Next
2015-08-12 05:04:23 -04:00
issues.open_title = Open
issues.closed_title = Closed
2022-07-09 18:17:04 -04:00
issues.draft_title = Draft
2015-08-12 05:04:23 -04:00
issues.num_comments = %d comments
2017-11-01 12:03:10 -04:00
issues.commented_at = `commented <a href="#%s">%s</a>`
2016-07-25 14:48:17 -04:00
issues.delete_comment_confirm = Are you sure you want to delete this comment?
2019-11-19 13:33:42 -05:00
issues.context.copy_link = Copy Link
issues.context.quote_reply = Quote Reply
2023-02-16 10:06:07 -05:00
issues.context.reference_issue = Reference in New Issue
2019-11-19 13:33:42 -05:00
issues.context.edit = Edit
issues.context.delete = Delete
2015-08-13 04:07:11 -04:00
issues.no_content = There is no content yet.
2023-03-16 11:11:31 -04:00
issues.close = Close Issue
2023-05-03 09:52:19 -04:00
issues.comment_pull_merged_at = merged commit %[1]s into %[2]s %[3]s
issues.comment_manually_pull_merged_at = manually merged commit %[1]s into %[2]s %[3]s
2018-04-19 10:24:31 -04:00
issues.close_comment_issue = Comment and Close
2015-08-13 11:21:43 -04:00
issues.reopen_issue = Reopen
2018-04-19 10:24:31 -04:00
issues.reopen_comment_issue = Comment and Reopen
2015-08-12 06:44:09 -04:00
issues.create_comment = Comment
2020-04-30 09:49:12 -04:00
issues.closed_at = `closed this issue <a id="%[1]s" href="#%[1]s">%[2]s</a>`
issues.reopened_at = `reopened this issue <a id="%[1]s" href="#%[1]s">%[2]s</a>`
2017-11-01 12:03:10 -04:00
issues.commit_ref_at = `referenced this issue from a commit <a id="%[1]s" href="#%[1]s">%[2]s</a>`
2019-11-18 08:13:07 -05:00
issues.ref_issue_from = `<a href="%[3]s">referenced this issue %[4]s</a> <a id="%[1]s" href="#%[1]s">%[2]s</a>`
issues.ref_pull_from = `<a href="%[3]s">referenced this pull request %[4]s</a> <a id="%[1]s" href="#%[1]s">%[2]s</a>`
issues.ref_closing_from = `<a href="%[3]s">referenced a pull request %[4]s that will close this issue</a> <a id="%[1]s" href="#%[1]s">%[2]s</a>`
issues.ref_reopening_from = `<a href="%[3]s">referenced a pull request %[4]s that will reopen this issue</a> <a id="%[1]s" href="#%[1]s">%[2]s</a>`
issues.ref_closed_from = `<a href="%[3]s">closed this issue %[4]s</a> <a id="%[1]s" href="#%[1]s">%[2]s</a>`
issues.ref_reopened_from = `<a href="%[3]s">reopened this issue %[4]s</a> <a id="%[1]s" href="#%[1]s">%[2]s</a>`
issues.ref_from = `from %[1]s`
2015-08-13 14:43:40 -04:00
issues.poster = Poster
2016-03-05 20:45:23 -05:00
issues.collaborator = Collaborator
2015-08-13 14:43:40 -04:00
issues.owner = Owner
2020-04-06 12:33:34 -04:00
issues.re_request_review = Re-request review
2020-09-04 12:36:37 -04:00
issues.is_stale = There have been changes to this PR since this review
2020-04-06 12:33:34 -04:00
issues.remove_request_review = Remove review request
issues.remove_request_review_block = Can't remove review request
2021-02-11 12:32:25 -05:00
issues.dismiss_review = Dismiss Review
issues.dismiss_review_warning = Are you sure you want to dismiss this review?
2017-11-01 12:03:10 -04:00
issues.sign_in_require_desc = <a href="%s">Sign in</a> to join this conversation.
2015-08-15 02:14:55 -04:00
issues.edit = Edit
2015-08-19 11:14:57 -04:00
issues.cancel = Cancel
2015-08-15 02:14:55 -04:00
issues.save = Save
Scoped labels (#22585)
Add a new "exclusive" option per label. This makes it so that when the
label is named `scope/name`, no other label with the same `scope/`
prefix can be set on an issue.
The scope is determined by the last occurence of `/`, so for example
`scope/alpha/name` and `scope/beta/name` are considered to be in
different scopes and can coexist.
Exclusive scopes are not enforced by any database rules, however they
are enforced when editing labels at the models level, automatically
removing any existing labels in the same scope when either attaching a
new label or replacing all labels.
In menus use a circle instead of checkbox to indicate they function as
radio buttons per scope. Issue filtering by label ensures that only a
single scoped label is selected at a time. Clicking with alt key can be
used to remove a scoped label, both when editing individual issues and
batch editing.
Label rendering refactor for consistency and code simplification:
* Labels now consistently have the same shape, emojis and tooltips
everywhere. This includes the label list and label assignment menus.
* In label list, show description below label same as label menus.
* Don't use exactly black/white text colors to look a bit nicer.
* Simplify text color computation. There is no point computing luminance
in linear color space, as this is a perceptual problem and sRGB is
closer to perceptually linear.
* Increase height of label assignment menus to show more labels. Showing
only 3-4 labels at a time leads to a lot of scrolling.
* Render all labels with a new RenderLabel template helper function.
Label creation and editing in multiline modal menu:
* Change label creation to open a modal menu like label editing.
* Change menu layout to place name, description and colors on separate
lines.
* Don't color cancel button red in label editing modal menu.
* Align text to the left in model menu for better readability and
consistent with settings layout elsewhere.
Custom exclusive scoped label rendering:
* Display scoped label prefix and suffix with slightly darker and
lighter background color respectively, and a slanted edge between them
similar to the `/` symbol.
* In menus exclusive labels are grouped with a divider line.
---------
Co-authored-by: Yarden Shoham <hrsi88@gmail.com>
Co-authored-by: Lauris BH <lauris@nix.lv>
2023-02-18 14:17:39 -05:00
issues.label_title = Name
issues.label_description = Description
issues.label_color = Color
issues.label_exclusive = Exclusive
issues.label_exclusive_desc = Name the label <code>scope/item</code> to make it mutually exclusive with other <code>scope/</code> labels.
issues.label_exclusive_warning = Any conflicting scoped labels will be removed when editing the labels of an issue or pull request.
2015-07-24 09:02:49 -04:00
issues.label_count = %d labels
2023-01-13 06:40:39 -05:00
issues.label_open_issues = %d open issues/pull requests
2015-07-24 09:02:49 -04:00
issues.label_edit = Edit
issues.label_delete = Delete
2018-04-19 10:24:31 -04:00
issues.label_modify = Edit Label
issues.label_deletion = Delete Label
issues.label_deletion_desc = Deleting a label removes it from all issues. Continue?
issues.label_deletion_success = The label has been deleted.
2016-12-24 09:41:09 -05:00
issues.label.filter_sort.alphabetically = Alphabetically
issues.label.filter_sort.reverse_alphabetically = Reverse alphabetically
2020-03-03 12:27:38 -05:00
issues.label.filter_sort.by_size = Smallest size
issues.label.filter_sort.reverse_by_size = Largest size
2016-02-01 20:55:12 -05:00
issues.num_participants = %d Participants
2016-08-11 19:16:36 -04:00
issues.attachment.open_tab = `Click to see "%s" in a new tab`
issues.attachment.download = `Click to download "%s"`
2017-03-30 18:10:30 -04:00
issues.subscribe = Subscribe
issues.unsubscribe = Unsubscribe
2023-05-25 09:17:19 -04:00
issues.unpin_issue = Unpin Issue
issues.max_pinned = "You can't pin more issues"
issues.pin_comment = "pinned this %s"
issues.unpin_comment = "unpinned this %s"
2019-02-18 15:55:04 -05:00
issues.lock = Lock conversation
issues.unlock = Unlock conversation
issues.lock.unknown_reason = Cannot lock an issue with an unknown reason.
issues.lock_duplicate = An issue cannot be locked twice.
issues.unlock_error = Cannot unlock an issue that is not locked.
issues.lock_with_reason = "locked as <strong>%s</strong> and limited conversation to collaborators %s"
issues.lock_no_reason = "locked and limited conversation to collaborators %s"
issues.unlock_comment = "unlocked this conversation %s"
issues.lock_confirm = Lock
issues.unlock_confirm = Unlock
issues.lock.notice_1 = - Other users can’ t add new comments to this issue.
issues.lock.notice_2 = - You and other collaborators with access to this repository can still leave comments that others can see.
issues.lock.notice_3 = - You can always unlock this issue again in the future.
issues.unlock.notice_1 = - Everyone would be able to comment on this issue once more.
issues.unlock.notice_2 = - You can always lock this issue again in the future.
issues.lock.reason = Reason for locking
issues.lock.title = Lock conversation on this issue.
issues.unlock.title = Unlock conversation on this issue.
issues.comment_on_locked = You cannot comment on a locked issue.
2022-03-08 19:38:11 -05:00
issues.delete = Delete
issues.delete.title = Delete this issue?
issues.delete.text = Do you really want to delete this issue? (This will permanently remove all content. Consider closing it instead, if you intend to keep it archived)
2018-04-19 10:24:31 -04:00
issues.tracker = Time Tracker
2021-01-21 09:51:52 -05:00
issues.start_tracking_short = Start Timer
2018-04-19 10:24:31 -04:00
issues.start_tracking = Start Time Tracking
2017-09-12 02:48:13 -04:00
issues.start_tracking_history = `started working %s`
2019-02-05 06:38:11 -05:00
issues.tracker_auto_close = Timer will be stopped automatically when this issue gets closed
2020-12-21 01:11:39 -05:00
issues.tracking_already_started = `You have already started time tracking on <a href="%s">another issue</a>!`
2021-01-21 09:51:52 -05:00
issues.stop_tracking = Stop Timer
2017-09-12 02:48:13 -04:00
issues.stop_tracking_history = `stopped working %s`
2021-01-21 09:51:52 -05:00
issues.cancel_tracking = Discard
issues.cancel_tracking_history = `cancelled time tracking %s`
2018-04-19 10:24:31 -04:00
issues.add_time = Manually Add Time
2021-02-19 05:52:11 -05:00
issues.del_time = Delete this time log
2018-04-19 10:24:31 -04:00
issues.add_time_short = Add Time
2017-09-12 02:48:13 -04:00
issues.add_time_cancel = Cancel
issues.add_time_history = `added spent time %s`
2019-12-27 15:30:58 -05:00
issues.del_time_history = `deleted spent time %s`
2017-09-12 02:48:13 -04:00
issues.add_time_hours = Hours
issues.add_time_minutes = Minutes
2018-04-19 10:24:31 -04:00
issues.add_time_sum_to_small = No time was entered.
2018-05-01 15:05:28 -04:00
issues.time_spent_total = Total Time Spent
2018-04-29 01:58:47 -04:00
issues.time_spent_from_all_authors = `Total Time Spent: %s`
2018-05-08 08:40:52 -04:00
issues.due_date = Due Date
issues.invalid_due_date_format = "Due date format must be 'yyyy-mm-dd'."
issues.error_modifying_due_date = "Failed to modify the due date."
issues.error_removing_due_date = "Failed to remove the due date."
2020-05-20 08:47:24 -04:00
issues.push_commit_1 = "added %d commit %s"
issues.push_commits_n = "added %d commits %s"
2021-04-09 22:24:59 -04:00
issues.force_push_codes = `force-pushed %[1]s from <a class="ui sha" href="%[3]s"><code>%[2]s</code></a> to <a class="ui sha" href="%[5]s"><code>%[4]s</code></a> %[6]s`
2023-03-01 14:19:47 -05:00
issues.force_push_compare = Compare
2018-05-06 17:26:40 -04:00
issues.due_date_form = "yyyy-mm-dd"
2018-05-01 15:05:28 -04:00
issues.due_date_form_add = "Add due date"
2018-08-27 14:34:12 -04:00
issues.due_date_form_edit = "Edit"
issues.due_date_form_remove = "Remove"
2018-05-08 08:40:52 -04:00
issues.due_date_not_writer = "You need repository write access to update an issue's due date."
2018-05-01 15:05:28 -04:00
issues.due_date_not_set = "No due date set."
issues.due_date_added = "added the due date %s %s"
2022-07-19 08:30:55 -04:00
issues.due_date_modified = "modified the due date from %[2]s to %[1]s %[3]s"
2018-05-01 15:05:28 -04:00
issues.due_date_remove = "removed the due date %s %s"
issues.due_date_overdue = "Overdue"
2018-07-20 12:40:08 -04:00
issues.due_date_invalid = "The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'."
2018-07-17 17:23:58 -04:00
issues.dependency.title = Dependencies
2022-03-23 12:46:50 -04:00
issues.dependency.issue_no_dependencies = No dependencies set.
issues.dependency.pr_no_dependencies = No dependencies set.
2023-03-28 13:23:25 -04:00
issues.dependency.no_permission_1 = "You do not have permission to read %d dependency"
issues.dependency.no_permission_n = "You do not have permission to read %d dependencies"
issues.dependency.no_permission.can_remove = "You do not have permission to read this dependency but can remove this dependency"
2018-09-19 05:02:08 -04:00
issues.dependency.add = Add dependency…
2018-07-17 17:23:58 -04:00
issues.dependency.cancel = Cancel
issues.dependency.remove = Remove
2018-09-06 22:32:46 -04:00
issues.dependency.remove_info = Remove this dependency
2020-04-18 20:15:07 -04:00
issues.dependency.added_dependency = `added a new dependency %s`
issues.dependency.removed_dependency = `removed a dependency %s`
2021-08-20 19:13:45 -04:00
issues.dependency.pr_closing_blockedby = Closing this pull request is blocked by the following issues
issues.dependency.issue_closing_blockedby = Closing this issue is blocked by the following issues
2018-07-17 17:23:58 -04:00
issues.dependency.issue_close_blocks = This issue blocks closing of the following issues
issues.dependency.pr_close_blocks = This pull request blocks closing of the following issues
2018-07-20 12:40:08 -04:00
issues.dependency.issue_close_blocked = You need to close all issues blocking this issue before you can close it.
2023-04-26 12:54:17 -04:00
issues.dependency.issue_batch_close_blocked = "Cannot batch close issues that you choose, because issue #%d still has open dependencies"
2018-07-20 12:40:08 -04:00
issues.dependency.pr_close_blocked = You need to close all issues blocking this pull request before you can merge it.
2018-07-17 17:23:58 -04:00
issues.dependency.blocks_short = Blocks
issues.dependency.blocked_by_short = Depends on
issues.dependency.remove_header = Remove Dependency
2018-07-20 12:40:08 -04:00
issues.dependency.issue_remove_text = This will remove the dependency from this issue. Continue?
issues.dependency.pr_remove_text = This will remove the dependency from this pull request. Continue?
issues.dependency.setting = Enable Dependencies For Issues and Pull Requests
issues.dependency.add_error_same_issue = You cannot make an issue depend on itself.
issues.dependency.add_error_dep_issue_not_exist = Dependent issue does not exist.
issues.dependency.add_error_dep_not_exist = Dependency does not exist.
issues.dependency.add_error_dep_exists = Dependency already exists.
issues.dependency.add_error_cannot_create_circular = You cannot create a dependency with two issues blocking each other.
issues.dependency.add_error_dep_not_same_repo = Both issues must be in the same repository.
2018-08-20 01:04:01 -04:00
issues.review.self.approval = You cannot approve your own pull request.
issues.review.self.rejection = You cannot request changes on your own pull request.
2018-08-06 00:43:22 -04:00
issues.review.approve = "approved these changes %s"
issues.review.comment = "reviewed %s"
2021-02-11 12:32:25 -05:00
issues.review.dismissed = "dismissed %s’ s review %s"
issues.review.dismissed_label = Dismissed
2020-04-10 18:01:41 -04:00
issues.review.left_comment = left a comment
2018-08-07 13:15:41 -04:00
issues.review.content.empty = You need to leave a comment indicating the requested change(s).
2019-01-27 12:39:49 -05:00
issues.review.reject = "requested changes %s"
2020-04-06 12:33:34 -04:00
issues.review.wait = "was requested for review %s"
issues.review.add_review_request = "requested review from %s %s"
issues.review.remove_review_request = "removed review request for %s %s"
issues.review.remove_review_request_self = "refused to review %s"
2018-08-06 00:43:22 -04:00
issues.review.pending = Pending
2023-04-17 18:04:26 -04:00
issues.review.pending.tooltip = This comment is not currently visible to other users. To submit your pending comments, select "%s" -> "%s/%s/%s" at the top of the page.
2018-08-06 00:43:22 -04:00
issues.review.review = Review
2018-11-22 08:17:36 -05:00
issues.review.reviewers = Reviewers
2020-10-15 04:17:48 -04:00
issues.review.outdated = Outdated
2018-08-06 00:43:22 -04:00
issues.review.show_outdated = Show outdated
issues.review.hide_outdated = Hide outdated
2020-04-18 09:50:25 -04:00
issues.review.show_resolved = Show resolved
issues.review.hide_resolved = Hide resolved
issues.review.resolve_conversation = Resolve conversation
issues.review.un_resolve_conversation = Unresolve conversation
issues.review.resolved_by = marked this conversation as resolved
2019-10-25 10:46:37 -04:00
issues.assignee.error = Not all assignees was added due to an unexpected error.
2021-01-21 08:51:17 -05:00
issues.reference_issue.body = Body
2021-10-10 18:40:03 -04:00
issues.content_history.deleted = deleted
issues.content_history.edited = edited
issues.content_history.created = created
issues.content_history.delete_from_history = Delete from history
issues.content_history.delete_from_history_confirm = Delete from history?
issues.content_history.options = Options
2022-05-05 14:58:37 -04:00
issues.reference_link = Reference: %s
2015-07-23 16:50:05 -04:00
2021-05-07 17:10:05 -04:00
compare.compare_base = base
compare.compare_head = compare
2019-08-27 16:33:48 -04:00
pulls.desc = Enable pull requests and code reviews.
2015-11-16 10:14:12 -05:00
pulls.new = New Pull Request
2021-12-24 07:14:42 -05:00
pulls.view = View Pull Request
2018-04-19 10:24:31 -04:00
pulls.compare_changes = New Pull Request
2022-04-28 11:45:33 -04:00
pulls.allow_edits_from_maintainers = Allow edits from maintainers
pulls.allow_edits_from_maintainers_desc = Users with write access to the base branch can also push to this branch
pulls.allow_edits_from_maintainers_err = Updating failed
2018-04-19 10:24:31 -04:00
pulls.compare_changes_desc = Select the branch to merge into and the branch to pull from.
2022-05-07 14:28:10 -04:00
pulls.has_viewed_file = Viewed
pulls.has_changed_since_last_review = Changed since your last review
pulls.viewed_files_label = %[1]d / %[2]d files viewed
2023-04-09 09:11:02 -04:00
pulls.expand_files = Expand all files
pulls.collapse_files = Collapse all files
2018-04-19 10:24:31 -04:00
pulls.compare_base = merge into
pulls.compare_compare = pull from
2021-09-27 08:19:34 -04:00
pulls.switch_comparison_type = Switch comparison type
pulls.switch_head_and_base = Switch head and base
2015-09-02 04:08:05 -04:00
pulls.filter_branch = Filter branch
2015-08-09 13:04:23 -04:00
pulls.no_results = No results found.
2018-04-19 10:24:31 -04:00
pulls.nothing_to_compare = These branches are equal. There is no need to create a pull request.
2021-03-03 22:41:23 -05:00
pulls.nothing_to_compare_and_allow_empty_pr = These branches are equal. This PR will be empty.
2021-11-16 13:18:25 -05:00
pulls.has_pull_request = `A pull request between these branches already exists: <a href="%[1]s">%[2]s#%[3]d</a>`
2015-08-31 03:24:28 -04:00
pulls.create = Create Pull Request
2019-12-16 01:20:25 -05:00
pulls.title_desc = wants to merge %[1]d commits from <code>%[2]s</code> into <code id="branch_target">%[3]s</code>
2015-09-02 09:26:56 -04:00
pulls.merged_title_desc = merged %[1]d commits from <code>%[2]s</code> into <code>%[3]s</code> %[4]s
2019-12-16 01:20:25 -05:00
pulls.change_target_branch_at = `changed target branch from <b>%s</b> to <b>%s</b> %s`
2015-09-01 19:07:02 -04:00
pulls.tab_conversation = Conversation
pulls.tab_commits = Commits
2018-04-19 10:24:31 -04:00
pulls.tab_files = Files Changed
2017-03-09 08:24:57 -05:00
pulls.reopen_to_merge = Please reopen this pull request to perform a merge.
2019-04-20 16:50:34 -04:00
pulls.cant_reopen_deleted_branch = This pull request cannot be reopened because the branch was deleted.
2015-09-02 09:26:56 -04:00
pulls.merged = Merged
2023-04-23 14:12:36 -04:00
pulls.merged_success = Pull request successfully merged and closed
pulls.closed = Pull request closed
2021-03-03 22:41:23 -05:00
pulls.manually_merged = Manually merged
2023-04-23 14:12:36 -04:00
pulls.merged_info_text = The branch %s can now be deleted.
2019-12-16 01:20:25 -05:00
pulls.is_closed = The pull request has been closed.
2018-08-13 15:04:39 -04:00
pulls.title_wip_desc = `<a href="#">Start the title with <strong>%s</strong></a> to prevent the pull request from being merged accidentally.`
2021-05-31 06:46:20 -04:00
pulls.cannot_merge_work_in_progress = This pull request is marked as a work in progress.
2021-05-27 16:02:04 -04:00
pulls.still_in_progress = Still in progress?
pulls.add_prefix = Add <strong>%s</strong> prefix
pulls.remove_prefix = Remove <strong>%s</strong> prefix
2018-04-19 10:24:31 -04:00
pulls.data_broken = This pull request is broken due to missing fork information.
2019-02-05 06:54:49 -05:00
pulls.files_conflicted = This pull request has changes conflicting with the target branch.
2018-04-19 10:24:31 -04:00
pulls.is_checking = "Merge conflict checking is in progress. Try again in few moments."
2022-07-13 04:22:51 -04:00
pulls.is_ancestor = "This branch is already included in the target branch. There is nothing to merge."
pulls.is_empty = "The changes on this branch are already on the target branch. This will be an empty commit."
2019-09-18 01:39:45 -04:00
pulls.required_status_check_failed = Some required checks were not successful.
2020-04-15 16:35:18 -04:00
pulls.required_status_check_missing = Some required checks are missing.
2019-09-18 01:39:45 -04:00
pulls.required_status_check_administrator = As an administrator, you may still merge this pull request.
2019-01-28 10:05:20 -05:00
pulls.blocked_by_approvals = "This Pull Request doesn't have enough approvals yet. %d of %d approvals granted."
2020-01-03 12:47:10 -05:00
pulls.blocked_by_rejection = "This Pull Request has changes requested by an official reviewer."
2020-11-28 14:30:46 -05:00
pulls.blocked_by_official_review_requests = "This Pull Request has official review requests."
2020-04-16 21:00:36 -04:00
pulls.blocked_by_outdated_branch = "This Pull Request is blocked because it's outdated."
2020-10-13 14:50:57 -04:00
pulls.blocked_by_changed_protected_files_1 = "This Pull Request is blocked because it changes a protected file:"
pulls.blocked_by_changed_protected_files_n = "This Pull Request is blocked because it changes protected files:"
2015-12-09 17:12:21 -05:00
pulls.can_auto_merge_desc = This pull request can be merged automatically.
2018-04-19 10:24:31 -04:00
pulls.cannot_auto_merge_desc = This pull request cannot be merged automatically due to conflicts.
pulls.cannot_auto_merge_helper = Merge manually to resolve the conflicts.
2020-02-07 11:38:18 -05:00
pulls.num_conflicting_files_1 = "%d conflicting file"
pulls.num_conflicting_files_n = "%d conflicting files"
2020-03-05 22:44:06 -05:00
pulls.approve_count_1 = "%d approval"
pulls.approve_count_n = "%d approvals"
pulls.reject_count_1 = "%d change request"
pulls.reject_count_n = "%d change requests"
2020-04-06 12:33:34 -04:00
pulls.waiting_count_1 = "%d waiting review"
pulls.waiting_count_n = "%d waiting reviews"
2021-03-03 22:41:23 -05:00
pulls.wrong_commit_id = "commit id must be a commit id on the target branch"
2020-03-05 22:44:06 -05:00
2018-04-19 10:24:31 -04:00
pulls.no_merge_desc = This pull request cannot be merged because all repository merge options are disabled.
pulls.no_merge_helper = Enable merge options in the repository settings or merge the pull request manually.
2023-01-08 13:25:28 -05:00
pulls.no_merge_wip = This pull request cannot be merged because it is marked as being a work in progress.
2020-01-11 02:29:34 -05:00
pulls.no_merge_not_ready = This pull request is not ready to be merged, check review status and status checks.
pulls.no_merge_access = You are not authorized to merge this pull request.
2021-08-02 15:23:57 -04:00
pulls.merge_pull_request = Create merge commit
pulls.rebase_merge_pull_request = Rebase then fast-forward
pulls.rebase_merge_commit_pull_request = Rebase then create merge commit
pulls.squash_merge_pull_request = Create squash commit
2021-03-03 22:41:23 -05:00
pulls.merge_manually = Manually merged
pulls.merge_commit_id = The merge commit ID
2020-01-15 03:32:57 -05:00
pulls.require_signed_wont_sign = The branch requires signed commits but this merge will not be signed
2022-06-11 10:44:20 -04:00
2018-04-19 10:24:31 -04:00
pulls.invalid_merge_option = You cannot use this merge option for this pull request.
2020-10-20 19:50:10 -04:00
pulls.merge_conflict = Merge Failed: There was a conflict whilst merging. Hint: Try a different strategy
pulls.merge_conflict_summary = Error Message
pulls.rebase_conflict = Merge Failed: There was a conflict whilst rebasing commit: %[1]s. Hint: Try a different strategy
pulls.rebase_conflict_summary = Error Message
2019-11-10 03:42:51 -05:00
pulls.unrelated_histories = Merge Failed: The merge head and base do not share a common history. Hint: Try a different strategy
pulls.merge_out_of_date = Merge Failed: Whilst generating the merge, the base was updated. Hint: Try again.
2021-12-19 19:32:54 -05:00
pulls.head_out_of_date = Merge Failed: Whilst generating the merge, the head was updated. Hint: Try again.
2021-12-23 22:56:57 -05:00
pulls.push_rejected = Merge Failed: The push was rejected. Review the Git Hooks for this repository.
2020-10-20 19:50:10 -04:00
pulls.push_rejected_summary = Full Rejection Message
2021-12-23 22:56:57 -05:00
pulls.push_rejected_no_message = Merge Failed: The push was rejected but there was no remote message.<br>Review the Git Hooks for this repository
2018-04-19 10:24:31 -04:00
pulls.open_unmerged_pull_exists = `You cannot perform a reopen operation because there is a pending pull request (#%d) with identical properties.`
2019-06-30 03:57:59 -04:00
pulls.status_checking = Some checks are pending
pulls.status_checks_success = All checks were successful
2020-04-16 15:08:20 -04:00
pulls.status_checks_warning = Some checks reported warnings
pulls.status_checks_failure = Some checks failed
pulls.status_checks_error = Some checks reported errors
2020-09-12 03:29:50 -04:00
pulls.status_checks_requested = Required
pulls.status_checks_details = Details
2021-08-31 10:03:45 -04:00
pulls.update_branch = Update branch by merge
pulls.update_branch_rebase = Update branch by rebase
2020-01-17 01:03:40 -05:00
pulls.update_branch_success = Branch update was successful
pulls.update_not_allowed = You are not allowed to update branch
pulls.outdated_with_base_branch = This branch is out-of-date with the base branch
2023-03-16 11:11:31 -04:00
pulls.close = Close Pull Request
2020-04-30 09:49:12 -04:00
pulls.closed_at = `closed this pull request <a id="%[1]s" href="#%[1]s">%[2]s</a>`
pulls.reopened_at = `reopened this pull request <a id="%[1]s" href="#%[1]s">%[2]s</a>`
2020-12-09 21:59:05 -05:00
pulls.merge_instruction_hint = `You can also view <a class="show-instruction">command line instructions</a>.`
pulls.merge_instruction_step1_desc = From your project repository, check out a new branch and test the changes.
pulls.merge_instruction_step2_desc = Merge the changes and update on Gitea.
2022-11-23 05:24:03 -05:00
pulls.clear_merge_message = Clear merge message
pulls.clear_merge_message_hint = Clearing the merge message will only remove the commit message content and keep generated git trailers such as "Co-Authored-By …".
2022-06-11 10:44:20 -04:00
pulls.auto_merge_button_when_succeed = (When checks succeed)
pulls.auto_merge_when_succeed = Auto merge when all checks succeed
pulls.auto_merge_newly_scheduled = The pull request was scheduled to merge when all checks succeed.
pulls.auto_merge_has_pending_schedule = %[1]s scheduled this pull request to auto merge when all checks succeed %[2]s.
pulls.auto_merge_cancel_schedule = Cancel auto merge
pulls.auto_merge_not_scheduled = This pull request is not scheduled to auto merge.
pulls.auto_merge_canceled_schedule = The auto merge was canceled for this pull request.
pulls.auto_merge_newly_scheduled_comment = `scheduled this pull request to auto merge when all checks succeed %[1]s`
pulls.auto_merge_canceled_schedule_comment = `canceled auto merging this pull request when all checks succeed %[1]s`
2015-08-08 10:43:14 -04:00
2022-06-19 06:05:15 -04:00
pulls.delete.title = Delete this pull request?
pulls.delete.text = Do you really want to delete this pull request? (This will permanently remove all content. Consider closing it instead, if you intend to keep it archived)
2015-08-03 05:42:09 -04:00
milestones.new = New Milestone
milestones.closed = Closed %s
2023-04-12 13:05:53 -04:00
milestones.update_ago = Updated %s
2016-01-01 18:30:00 -05:00
milestones.no_due_date = No due date
2015-08-03 05:42:09 -04:00
milestones.open = Open
milestones.close = Close
2018-04-19 10:24:31 -04:00
milestones.new_subheader = Milestones organize issues and track progress.
2023-06-05 02:25:46 -04:00
milestones.completeness = <strong>%d%%</strong> Completed
2015-08-05 03:24:26 -04:00
milestones.create = Create Milestone
milestones.title = Title
milestones.desc = Description
milestones.due_date = Due Date (optional)
2015-08-05 06:26:18 -04:00
milestones.clear = Clear
2018-04-19 10:24:31 -04:00
milestones.invalid_due_date_format = "Due date format must be 'yyyy-mm-dd'."
2023-04-17 18:04:26 -04:00
milestones.create_success = The milestone "%s" has been created.
2015-08-05 06:26:18 -04:00
milestones.edit = Edit Milestone
2018-04-19 10:24:31 -04:00
milestones.edit_subheader = Milestones organize issues and track progress.
2015-08-05 06:26:18 -04:00
milestones.cancel = Cancel
2018-04-19 10:24:31 -04:00
milestones.modify = Update Milestone
2023-04-17 18:04:26 -04:00
milestones.edit_success = Milestone "%s" has been updated.
2018-04-19 10:24:31 -04:00
milestones.deletion = Delete Milestone
milestones.deletion_desc = Deleting a milestone removes it from all related issues. Continue?
milestones.deletion_success = The milestone has been deleted.
2016-12-24 09:41:09 -05:00
milestones.filter_sort.closest_due_date = Closest due date
milestones.filter_sort.furthest_due_date = Furthest due date
milestones.filter_sort.least_complete = Least complete
milestones.filter_sort.most_complete = Most complete
milestones.filter_sort.most_issues = Most issues
milestones.filter_sort.least_issues = Least issues
2015-08-03 05:42:09 -04:00
2023-04-17 18:04:26 -04:00
signing.will_sign = This commit will be signed with key "%s"
2020-01-15 03:32:57 -05:00
signing.wont_sign.error = There was an error whilst checking if the commit could be signed
signing.wont_sign.nokey = There is no key available to sign this commit
signing.wont_sign.never = Commits are never signed
signing.wont_sign.always = Commits are always signed
signing.wont_sign.pubkey = The commit will not be signed because you do not have a public key associated with your account
signing.wont_sign.twofa = You must have two factor authentication enabled to have commits signed
signing.wont_sign.parentsigned = The commit will not be signed as the parent commit is not signed
signing.wont_sign.basesigned = The merge will not be signed as the base commit is not signed
signing.wont_sign.headsigned = The merge will not be signed as the head commit is not signed
signing.wont_sign.commitssigned = The merge will not be signed as all the associated commits are not signed
signing.wont_sign.approved = The merge will not be signed as the PR is not approved
2020-08-23 17:59:41 -04:00
signing.wont_sign.not_signed_in = You are not signed in
2020-01-15 03:32:57 -05:00
2022-01-04 22:37:00 -05:00
ext_wiki = Access to External Wiki
2018-04-19 10:24:31 -04:00
ext_wiki.desc = Link to an external wiki.
2017-05-18 10:54:24 -04:00
2015-11-25 20:10:25 -05:00
wiki = Wiki
2018-04-19 10:24:31 -04:00
wiki.welcome = Welcome to the Wiki.
wiki.welcome_desc = The wiki lets you write and share documentation with collaborators.
wiki.desc = Write and share documentation with collaborators.
wiki.create_first_page = Create the First Page
2015-11-27 01:50:38 -05:00
wiki.page = Page
wiki.filter_page = Filter page
2018-04-19 10:24:31 -04:00
wiki.new_page = Page
2023-04-10 11:56:57 -04:00
wiki.page_title = Page title
wiki.page_content = Page content
2017-03-09 08:24:57 -05:00
wiki.default_commit_message = Write a note about this page update (optional).
2015-11-25 20:10:25 -05:00
wiki.save_page = Save Page
2015-11-27 00:24:24 -05:00
wiki.last_commit_info = %s edited this page %s
2015-11-27 01:50:38 -05:00
wiki.edit_page_button = Edit
wiki.new_page_button = New Page
2019-07-08 04:20:22 -04:00
wiki.file_revision = Page Revision
wiki.wiki_page_revisions = Wiki Page Revisions
wiki.back_to_wiki = Back to wiki page
2016-03-03 17:06:50 -05:00
wiki.delete_page_button = Delete Page
2023-04-17 18:04:26 -04:00
wiki.delete_page_notice_1 = Deleting the wiki page "%s" cannot be undone. Continue?
2017-02-06 10:17:18 -05:00
wiki.page_already_exists = A wiki page with the same name already exists.
2023-04-17 18:04:26 -04:00
wiki.reserved_page = The wiki page name "%s" is reserved.
2015-11-27 02:16:12 -05:00
wiki.pages = Pages
wiki.last_updated = Last updated %s
2021-12-03 02:28:54 -05:00
wiki.page_name_desc = Enter a name for this Wiki page. Some special names are: 'Home', '_Sidebar' and '_Footer'.
2023-04-19 13:50:10 -04:00
wiki.original_git_entry_tooltip = View original Git file instead of using friendly link.
2015-11-25 20:10:25 -05:00
2017-10-14 19:17:39 -04:00
activity = Activity
activity.period.filter_label = Period:
activity.period.daily = 1 day
activity.period.halfweekly = 3 days
activity.period.weekly = 1 week
activity.period.monthly = 1 month
2019-11-05 00:45:48 -05:00
activity.period.quarterly = 3 months
activity.period.semiyearly = 6 months
activity.period.yearly = 1 year
2017-10-14 19:17:39 -04:00
activity.overview = Overview
activity.active_prs_count_1 = <strong>%d</strong> Active Pull Request
activity.active_prs_count_n = <strong>%d</strong> Active Pull Requests
activity.merged_prs_count_1 = Merged Pull Request
activity.merged_prs_count_n = Merged Pull Requests
activity.opened_prs_count_1 = Proposed Pull Request
activity.opened_prs_count_n = Proposed Pull Requests
activity.title.user_1 = %d user
activity.title.user_n = %d users
activity.title.prs_1 = %d Pull request
activity.title.prs_n = %d Pull requests
activity.title.prs_merged_by = %s merged by %s
activity.title.prs_opened_by = %s proposed by %s
activity.merged_prs_label = Merged
activity.opened_prs_label = Proposed
activity.active_issues_count_1 = <strong>%d</strong> Active Issue
activity.active_issues_count_n = <strong>%d</strong> Active Issues
activity.closed_issues_count_1 = Closed Issue
activity.closed_issues_count_n = Closed Issues
activity.title.issues_1 = %d Issue
activity.title.issues_n = %d Issues
2021-02-28 02:54:12 -05:00
activity.title.issues_closed_from = %s closed from %s
2017-10-14 19:17:39 -04:00
activity.title.issues_created_by = %s created by %s
activity.closed_issue_label = Closed
activity.new_issues_count_1 = New Issue
activity.new_issues_count_n = New Issues
activity.new_issue_label = Opened
2018-04-19 10:24:31 -04:00
activity.title.unresolved_conv_1 = %d Unresolved Conversation
activity.title.unresolved_conv_n = %d Unresolved Conversations
activity.unresolved_conv_desc = These recently changed issues and pull requests have not been resolved yet.
2017-10-14 19:17:39 -04:00
activity.unresolved_conv_label = Open
activity.title.releases_1 = %d Release
activity.title.releases_n = %d Releases
activity.title.releases_published_by = %s published by %s
activity.published_release_label = Published
2019-05-04 08:39:03 -04:00
activity.no_git_activity = There has not been any commit activity in this period.
activity.git_stats_exclude_merges = Excluding merges,
activity.git_stats_author_1 = %d author
activity.git_stats_author_n = %d authors
2019-05-04 16:32:37 -04:00
activity.git_stats_pushed_1 = has pushed
activity.git_stats_pushed_n = have pushed
2019-05-04 08:39:03 -04:00
activity.git_stats_commit_1 = %d commit
activity.git_stats_commit_n = %d commits
activity.git_stats_push_to_branch = to %s and
activity.git_stats_push_to_all_branches = to all branches.
activity.git_stats_on_default_branch = On %s,
activity.git_stats_file_1 = %d file
activity.git_stats_file_n = %d files
2019-05-04 16:32:37 -04:00
activity.git_stats_files_changed_1 = has changed
activity.git_stats_files_changed_n = have changed
activity.git_stats_additions = and there have been
2019-05-04 08:39:03 -04:00
activity.git_stats_addition_1 = %d addition
activity.git_stats_addition_n = %d additions
activity.git_stats_and_deletions = and
activity.git_stats_deletion_1 = %d deletion
activity.git_stats_deletion_n = %d deletions
2017-10-14 19:17:39 -04:00
2017-10-27 02:10:54 -04:00
search = Search
search.search_repo = Search repository
2022-10-10 19:12:03 -04:00
search.type.tooltip = Search type
2021-01-27 05:00:35 -05:00
search.fuzzy = Fuzzy
2022-10-10 19:12:03 -04:00
search.fuzzy.tooltip = Include results that also matches the search term closely
2021-01-27 05:00:35 -05:00
search.match = Match
2022-10-10 19:12:03 -04:00
search.match.tooltip = Include only results that matches the exact search term
2017-11-01 12:03:10 -04:00
search.results = Search results for "%s" in <a href="%s">%s</a>
2022-01-27 03:30:51 -05:00
search.code_no_results = No source code matching your search term found.
search.code_search_unavailable = Currently code search is not available. Please contact your site administrator.
2017-10-27 02:10:54 -04:00
2014-08-02 13:47:33 -04:00
settings = Settings
2017-05-23 04:01:27 -04:00
settings.desc = Settings is where you can manage the settings for the repository
2018-04-19 10:24:31 -04:00
settings.options = Repository
settings.collaboration = Collaborators
settings.collaboration.admin = Administrator
2016-06-27 12:22:30 -04:00
settings.collaboration.write = Write
settings.collaboration.read = Read
2019-09-23 16:08:03 -04:00
settings.collaboration.owner = Owner
2016-06-27 12:22:30 -04:00
settings.collaboration.undefined = Undefined
2014-08-02 13:47:33 -04:00
settings.hooks = Webhooks
2014-10-06 17:50:00 -04:00
settings.githooks = Git Hooks
2014-08-02 13:47:33 -04:00
settings.basic_settings = Basic Settings
2016-08-30 19:18:33 -04:00
settings.mirror_settings = Mirror Settings
2023-05-29 07:32:52 -04:00
settings.mirror_settings.docs = Set up your repository to automatically synchronize commits, tags and branches with another repository.
settings.mirror_settings.docs.disabled_pull_mirror.instructions = Set up your project to automatically push commits, tags and branches to another repository. Pull mirrors have been disabled by your site administrator.
settings.mirror_settings.docs.disabled_push_mirror.instructions = Set up your project to automatically pull commits, tags and branches from another repository.
settings.mirror_settings.docs.disabled_push_mirror.pull_mirror_warning = Right now, this can only be done in the "New Migration" menu. For more information, please consult:
settings.mirror_settings.docs.disabled_push_mirror.info = Push mirrors have been disabled by your site administrator.
settings.mirror_settings.docs.no_new_mirrors = Your repository is mirroring changes to or from another repository. Please keep in mind that you can't create any new mirrors at this time.
settings.mirror_settings.docs.can_still_use = Although you can't modify existing mirrors or create new ones, you may still use your existing mirror.
settings.mirror_settings.docs.pull_mirror_instructions = To set up a pull mirror, please consult:
settings.mirror_settings.docs.doc_link_title = How do I mirror repositories?
settings.mirror_settings.docs.pulling_remote_title = Pulling from a remote repository
2021-06-14 13:20:43 -04:00
settings.mirror_settings.mirrored_repository = Mirrored repository
settings.mirror_settings.direction = Direction
settings.mirror_settings.direction.pull = Pull
settings.mirror_settings.direction.push = Push
settings.mirror_settings.last_update = Last update
settings.mirror_settings.push_mirror.none = No push mirrors configured
settings.mirror_settings.push_mirror.remote_url = Git Remote Repository URL
settings.mirror_settings.push_mirror.add = Add Push Mirror
2018-04-19 10:24:31 -04:00
settings.sync_mirror = Synchronize Now
settings.mirror_sync_in_progress = Mirror synchronization is in progress. Check back in a minute.
settings.site = Website
2014-08-02 13:47:33 -04:00
settings.update_settings = Update Settings
2023-05-04 03:27:15 -04:00
settings.update_mirror_settings = Update Mirror Settings
2023-04-29 06:44:52 -04:00
settings.branches.switch_default_branch = Switch Default Branch
2021-05-16 14:24:47 -04:00
settings.branches.update_default_branch = Update Default Branch
2023-01-16 03:00:22 -05:00
settings.branches.add_new_rule = Add New Rule
2015-12-04 21:30:33 -05:00
settings.advanced_settings = Advanced Settings
2018-04-19 10:24:31 -04:00
settings.wiki_desc = Enable Repository Wiki
settings.use_internal_wiki = Use Built-In Wiki
settings.use_external_wiki = Use External Wiki
2015-12-11 04:55:08 -05:00
settings.external_wiki_url = External Wiki URL
2018-04-19 10:24:31 -04:00
settings.external_wiki_url_error = The external wiki URL is not a valid URL.
settings.external_wiki_url_desc = Visitors are redirected to the external wiki URL when clicking the wiki tab.
settings.issues_desc = Enable Repository Issue Tracker
settings.use_internal_issue_tracker = Use Built-In Issue Tracker
settings.use_external_issue_tracker = Use External Issue Tracker
2016-11-04 04:06:54 -04:00
settings.external_tracker_url = External Issue Tracker URL
2018-04-19 10:24:31 -04:00
settings.external_tracker_url_error = The external issue tracker URL is not a valid URL.
settings.external_tracker_url_desc = Visitors are redirected to the external issue tracker URL when clicking on the issues tab.
2015-12-04 21:30:33 -05:00
settings.tracker_url_format = External Issue Tracker URL Format
2018-08-15 02:29:37 -04:00
settings.tracker_url_format_error = The external issue tracker URL format is not a valid URL.
2018-04-19 10:24:31 -04:00
settings.tracker_issue_style = External Issue Tracker Number Format
2016-07-25 04:55:51 -04:00
settings.tracker_issue_style.numeric = Numeric
settings.tracker_issue_style.alphanumeric = Alphanumeric
2022-06-10 01:39:53 -04:00
settings.tracker_issue_style.regexp = Regular Expression
settings.tracker_issue_style.regexp_pattern = Regular Expression Pattern
settings.tracker_issue_style.regexp_pattern_desc = The first captured group will be used in place of <code>{index}</code>.
2018-04-19 10:24:31 -04:00
settings.tracker_url_format_desc = Use the placeholders <code>{user}</code>, <code>{repo}</code> and <code>{index}</code> for the username, repository name and issue index.
settings.enable_timetracker = Enable Time Tracking
settings.allow_only_contributors_to_track_time = Let Only Contributors Track Time
settings.pulls_desc = Enable Repository Pull Requests
settings.pulls.ignore_whitespace = Ignore Whitespace for Conflicts
2021-03-03 22:41:23 -05:00
settings.pulls.enable_autodetect_manual_merge = Enable autodetect manual merge (Note: In some special cases, misjudgments can occur)
2022-03-04 03:30:49 -05:00
settings.pulls.allow_rebase_update = Enable updating pull request branch by rebase
2021-07-12 19:26:25 -04:00
settings.pulls.default_delete_branch_after_merge = Delete pull request branch after merge by default
2023-02-13 01:09:52 -05:00
settings.pulls.default_allow_edits_from_maintainers = Allow edits from maintainers by default
2023-01-31 20:31:19 -05:00
settings.releases_desc = Enable Repository Releases
2022-03-30 04:42:47 -04:00
settings.packages_desc = Enable Repository Packages Registry
2020-08-16 23:07:38 -04:00
settings.projects_desc = Enable Repository Projects
Implement actions (#21937)
Close #13539.
Co-authored by: @lunny @appleboy @fuxiaohei and others.
Related projects:
- https://gitea.com/gitea/actions-proto-def
- https://gitea.com/gitea/actions-proto-go
- https://gitea.com/gitea/act
- https://gitea.com/gitea/act_runner
### Summary
The target of this PR is to bring a basic implementation of "Actions",
an internal CI/CD system of Gitea. That means even though it has been
merged, the state of the feature is **EXPERIMENTAL**, and please note
that:
- It is disabled by default;
- It shouldn't be used in a production environment currently;
- It shouldn't be used in a public Gitea instance currently;
- Breaking changes may be made before it's stable.
**Please comment on #13539 if you have any different product design
ideas**, all decisions reached there will be adopted here. But in this
PR, we don't talk about **naming, feature-creep or alternatives**.
### ⚠️ Breaking
`gitea-actions` will become a reserved user name. If a user with the
name already exists in the database, it is recommended to rename it.
### Some important reviews
- What is `DEFAULT_ACTIONS_URL` in `app.ini` for?
- https://github.com/go-gitea/gitea/pull/21937#discussion_r1055954954
- Why the api for runners is not under the normal `/api/v1` prefix?
- https://github.com/go-gitea/gitea/pull/21937#discussion_r1061173592
- Why DBFS?
- https://github.com/go-gitea/gitea/pull/21937#discussion_r1061301178
- Why ignore events triggered by `gitea-actions` bot?
- https://github.com/go-gitea/gitea/pull/21937#discussion_r1063254103
- Why there's no permission control for actions?
- https://github.com/go-gitea/gitea/pull/21937#discussion_r1090229868
### What it looks like
<details>
#### Manage runners
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205870657-c72f590e-2e08-4cd4-be7f-2e0abb299bbf.png">
#### List runs
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205872794-50fde990-2b45-48c1-a178-908e4ec5b627.png">
#### View logs
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205872501-9b7b9000-9542-4991-8f55-18ccdada77c3.png">
</details>
### How to try it
<details>
#### 1. Start Gitea
Clone this branch and [install from
source](https://docs.gitea.io/en-us/install-from-source).
Add additional configurations in `app.ini` to enable Actions:
```ini
[actions]
ENABLED = true
```
Start it.
If all is well, you'll see the management page of runners:
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205877365-8e30a780-9b10-4154-b3e8-ee6c3cb35a59.png">
#### 2. Start runner
Clone the [act_runner](https://gitea.com/gitea/act_runner), and follow
the
[README](https://gitea.com/gitea/act_runner/src/branch/main/README.md)
to start it.
If all is well, you'll see a new runner has been added:
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205878000-216f5937-e696-470d-b66c-8473987d91c3.png">
#### 3. Enable actions for a repo
Create a new repo or open an existing one, check the `Actions` checkbox
in settings and submit.
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205879705-53e09208-73c0-4b3e-a123-2dcf9aba4b9c.png">
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205879383-23f3d08f-1a85-41dd-a8b3-54e2ee6453e8.png">
If all is well, you'll see a new tab "Actions":
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205881648-a8072d8c-5803-4d76-b8a8-9b2fb49516c1.png">
#### 4. Upload workflow files
Upload some workflow files to `.gitea/workflows/xxx.yaml`, you can
follow the [quickstart](https://docs.github.com/en/actions/quickstart)
of GitHub Actions. Yes, Gitea Actions is compatible with GitHub Actions
in most cases, you can use the same demo:
```yaml
name: GitHub Actions Demo
run-name: ${{ github.actor }} is testing out GitHub Actions 🚀
on: [push]
jobs:
Explore-GitHub-Actions:
runs-on: ubuntu-latest
steps:
- run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event."
- run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by GitHub!"
- run: echo "🔎 The name of your branch is ${{ github.ref }} and your repository is ${{ github.repository }}."
- name: Check out repository code
uses: actions/checkout@v3
- run: echo "💡 The ${{ github.repository }} repository has been cloned to the runner."
- run: echo "🖥️ The workflow is now ready to test your code on the runner."
- name: List files in the repository
run: |
ls ${{ github.workspace }}
- run: echo "🍏 This job's status is ${{ job.status }}."
```
If all is well, you'll see a new run in `Actions` tab:
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205884473-79a874bc-171b-4aaf-acd5-0241a45c3b53.png">
#### 5. Check the logs of jobs
Click a run and you'll see the logs:
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205884800-994b0374-67f7-48ff-be9a-4c53f3141547.png">
#### 6. Go on
You can try more examples in [the
documents](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions)
of GitHub Actions, then you might find a lot of bugs.
Come on, PRs are welcome.
</details>
See also: [Feature Preview: Gitea
Actions](https://blog.gitea.io/2022/12/feature-preview-gitea-actions/)
---------
Co-authored-by: a1012112796 <1012112796@qq.com>
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
Co-authored-by: delvh <dev.lh@web.de>
Co-authored-by: ChristopherHX <christopher.homberger@web.de>
Co-authored-by: John Olheiser <john.olheiser@gmail.com>
2023-01-30 20:45:19 -05:00
settings.actions_desc = Enable Repository Actions
2018-04-19 10:24:31 -04:00
settings.admin_settings = Administrator Settings
settings.admin_enable_health_check = Enable Repository Health Checks (git fsck)
2021-12-16 10:55:12 -05:00
settings.admin_code_indexer = Code Indexer
settings.admin_stats_indexer = Code Statistics Indexer
settings.admin_indexer_commit_sha = Last Indexed SHA
settings.admin_indexer_unindexed = Unindexed
settings.reindex_button = Add to Reindex Queue
settings.reindex_requested = Reindex Requested
2019-02-10 14:27:19 -05:00
settings.admin_enable_close_issues_via_commit_in_any_branch = Close an issue via a commit made in a non default branch
2015-12-04 21:30:33 -05:00
settings.danger_zone = Danger Zone
2015-03-19 15:26:04 -04:00
settings.new_owner_has_same_repo = The new owner already has a repository with same name. Please choose another name.
2018-04-19 10:24:31 -04:00
settings.convert = Convert to Regular Repository
settings.convert_desc = You can convert this mirror into a regular repository. This cannot be undone.
settings.convert_notices_1 = This operation will convert the mirror into a regular repository and cannot be undone.
settings.convert_confirm = Convert Repository
settings.convert_succeed = The mirror has been converted into a regular repository.
2020-07-02 10:09:09 -04:00
settings.convert_fork = Convert to Regular Repository
settings.convert_fork_desc = You can convert this fork into a regular repository. This cannot be undone.
settings.convert_fork_notices_1 = This operation will convert the fork into a regular repository and cannot be undone.
settings.convert_fork_confirm = Convert Repository
settings.convert_fork_succeed = The fork has been converted into a regular repository.
2014-08-02 13:47:33 -04:00
settings.transfer = Transfer Ownership
2021-02-28 19:47:30 -05:00
settings.transfer.rejected = Repository transfer was rejected.
settings.transfer.success = Repository transfer was successful.
settings.transfer_abort = Cancel transfer
settings.transfer_abort_invalid = You cannot cancel a non existent repository transfer.
settings.transfer_abort_success = The repository transfer to %s was successfully cancelled.
2018-04-19 10:24:31 -04:00
settings.transfer_desc = Transfer this repository to a user or to an organization for which you have administrator rights.
2021-02-28 19:47:30 -05:00
settings.transfer_form_title = Enter the repository name as confirmation:
settings.transfer_in_progress = There is currently an ongoing transfer. Please cancel it if you will like to transfer this repository to another user.
2018-04-19 10:24:31 -04:00
settings.transfer_notices_1 = - You will lose access to the repository if you transfer it to an individual user.
settings.transfer_notices_2 = - You will keep access to the repository if you transfer it to an organization that you (co-)own.
2021-06-14 14:30:35 -04:00
settings.transfer_notices_3 = - If the repository is private and is transferred to an individual user, this action makes sure that the user does have at least read permission (and changes permissions if necessary).
2021-02-28 19:47:30 -05:00
settings.transfer_owner = New Owner
settings.transfer_perform = Perform Transfer
settings.transfer_started = This repository has been marked for transfer and awaits confirmation from "%s"
settings.transfer_succeed = The repository has been transferred.
2020-09-19 12:44:55 -04:00
settings.signing_settings = Signing Verification Settings
settings.trust_model = Signature Trust Model
settings.trust_model.default = Default Trust Model
settings.trust_model.default.desc = Use the default repository trust model for this installation.
settings.trust_model.collaborator = Collaborator
settings.trust_model.collaborator.long = Collaborator: Trust signatures by collaborators
settings.trust_model.collaborator.desc = Valid signatures by collaborators of this repository will be marked "trusted" - (whether they match the committer or not). Otherwise, valid signatures will be marked "untrusted" if the signature matches the committer and "unmatched" if not.
settings.trust_model.committer = Committer
settings.trust_model.committer.long = Committer: Trust signatures that match committers (This matches GitHub and will force Gitea signed commits to have Gitea as the committer)
2023-03-23 13:27:03 -04:00
settings.trust_model.committer.desc = Valid signatures will only be marked "trusted" if they match the committer, otherwise they will be marked "unmatched". This forces Gitea to be the committer on signed commits with the actual committer marked as Co-authored-by: and Co-committed-by: trailer in the commit. The default Gitea key must match a User in the database.
2020-09-19 12:44:55 -04:00
settings.trust_model.collaboratorcommitter = Collaborator+Committer
settings.trust_model.collaboratorcommitter.long = Collaborator+Committer: Trust signatures by collaborators which match the committer
2020-10-14 07:17:40 -04:00
settings.trust_model.collaboratorcommitter.desc = Valid signatures by collaborators of this repository will be marked "trusted" if they match the committer. Otherwise, valid signatures will be marked "untrusted" if the signature matches the committer and "unmatched" otherwise. This will force Gitea to be marked as the committer on signed commits with the actual committer marked as Co-Authored-By: and Co-Committed-By: trailer in the commit. The default Gitea key must match a User in the database.
2018-04-19 10:24:31 -04:00
settings.wiki_delete = Delete Wiki Data
settings.wiki_delete_desc = Deleting repository wiki data is permanent and cannot be undone.
settings.wiki_delete_notices_1 = - This will permanently delete and disable the repository wiki for %s.
settings.confirm_wiki_delete = Delete Wiki Data
settings.wiki_deletion_success = The repository wiki data has been deleted.
2016-02-14 16:40:39 -05:00
settings.delete = Delete This Repository
2018-04-19 10:24:31 -04:00
settings.delete_desc = Deleting a repository is permanent and cannot be undone.
2015-09-01 06:31:47 -04:00
settings.delete_notices_1 = - This operation <strong>CANNOT</strong> be undone.
2018-04-19 10:24:31 -04:00
settings.delete_notices_2 = - This operation will permanently delete the <strong>%s</strong> repository including code, issues, comments, wiki data and collaborator settings.
settings.delete_notices_fork_1 = - Forks of this repository will become independent after deletion.
settings.deletion_success = The repository has been deleted.
settings.update_settings_success = The repository settings have been updated.
2023-05-06 05:39:06 -04:00
settings.update_settings_no_unit = The repository should allow at least some sort of interaction.
2018-04-19 10:24:31 -04:00
settings.confirm_delete = Delete Repository
settings.add_collaborator = Add Collaborator
settings.add_collaborator_success = The collaborator has been added.
2023-01-08 13:25:28 -05:00
settings.add_collaborator_inactive_user = Cannot add an inactive user as a collaborator.
settings.add_collaborator_owner = Cannot add an owner as a collaborator.
2018-08-07 06:01:06 -04:00
settings.add_collaborator_duplicate = The collaborator is already added to this repository.
2018-04-19 10:24:31 -04:00
settings.delete_collaborator = Remove
settings.collaborator_deletion = Remove Collaborator
settings.collaborator_deletion_desc = Removing a collaborator will revoke their access to this repository. Continue?
settings.remove_collaborator_success = The collaborator has been removed.
2018-02-16 09:02:40 -05:00
settings.search_user_placeholder = Search user…
2018-04-19 10:24:31 -04:00
settings.org_not_allowed_to_be_collaborator = Organizations cannot be added as a collaborator.
2019-09-23 16:08:03 -04:00
settings.change_team_access_not_allowed = Changing team access for repository has been restricted to organization owner
settings.team_not_in_organization = The team is not in the same organization as the repository
2020-05-08 08:39:17 -04:00
settings.teams = Teams
settings.add_team = Add Team
2019-09-23 16:08:03 -04:00
settings.add_team_duplicate = Team already has the repository
settings.add_team_success = The team now have access to the repository.
2020-05-08 08:39:17 -04:00
settings.search_team = Search Team…
settings.change_team_permission_tip = Team's permission is set on the team setting page and can't be changed per repository
settings.delete_team_tip = This team has access to all repositories and can't be removed
2019-09-23 16:08:03 -04:00
settings.remove_team_success = The team's access to the repository has been removed.
2014-08-09 13:29:51 -04:00
settings.add_webhook = Add Webhook
2018-09-10 10:31:08 -04:00
settings.add_webhook.invalid_channel_name = Webhook channel name cannot be empty and cannot contain only a # character.
2018-07-03 19:52:36 -04:00
settings.hooks_desc = Webhooks automatically make HTTP POST requests to a server when certain Gitea events trigger. Read more in the <a target="_blank" rel="noopener noreferrer" href="%s">webhooks guide</a>.
2018-04-19 10:24:31 -04:00
settings.webhook_deletion = Remove Webhook
settings.webhook_deletion_desc = Removing a webhook deletes its settings and delivery history. Continue?
settings.webhook_deletion_success = The webhook has been removed.
2015-12-05 13:24:13 -05:00
settings.webhook.test_delivery = Test Delivery
2018-04-19 10:24:31 -04:00
settings.webhook.test_delivery_desc = Test this webhook with a fake event.
2015-08-27 11:06:14 -04:00
settings.webhook.request = Request
settings.webhook.response = Response
settings.webhook.headers = Headers
2018-04-19 10:24:31 -04:00
settings.webhook.payload = Content
2015-08-27 11:06:14 -04:00
settings.webhook.body = Body
2022-01-05 16:00:20 -05:00
settings.webhook.replay.description = Replay this webhook.
settings.webhook.delivery.success = An event has been added to the delivery queue. It may take few seconds before it shows up in the delivery history.
2021-12-23 22:56:57 -05:00
settings.githooks_desc = "Git Hooks are powered by Git itself. You can edit hook files below to set up custom operations."
2015-03-19 15:26:04 -04:00
settings.githook_edit_desc = If the hook is inactive, sample content will be presented. Leaving content to an empty value will disable this hook.
2014-10-06 17:50:00 -04:00
settings.githook_name = Hook Name
settings.githook_content = Hook Content
settings.update_githook = Update Hook
2018-07-03 19:52:36 -04:00
settings.add_webhook_desc = Gitea will send <code>POST</code> requests with a specified content type to the target URL. Read more in the <a target="_blank" rel="noopener noreferrer" href="%s">webhooks guide</a>.
2018-04-19 10:24:31 -04:00
settings.payload_url = Target URL
2019-05-05 14:09:02 -04:00
settings.http_method = HTTP Method
2018-04-19 10:24:31 -04:00
settings.content_type = POST Content Type
2014-08-09 18:40:10 -04:00
settings.secret = Secret
2015-08-28 23:49:59 -04:00
settings.slack_username = Username
settings.slack_icon_url = Icon URL
2021-10-21 17:51:03 -04:00
settings.slack_color = Color
2017-08-28 01:06:45 -04:00
settings.discord_username = Username
settings.discord_icon_url = Icon URL
2018-04-19 10:24:31 -04:00
settings.event_desc = Trigger On:
settings.event_push_only = Push Events
settings.event_send_everything = All Events
settings.event_choose = Custom Events…
2020-03-06 00:10:48 -05:00
settings.event_header_repository = Repository Events
2015-08-28 11:36:13 -04:00
settings.event_create = Create
2018-04-19 10:24:31 -04:00
settings.event_create_desc = Branch or tag created.
2018-05-16 10:01:55 -04:00
settings.event_delete = Delete
2020-03-06 00:10:48 -05:00
settings.event_delete_desc = Branch or tag deleted.
2018-05-16 10:01:55 -04:00
settings.event_fork = Fork
2020-03-06 00:10:48 -05:00
settings.event_fork_desc = Repository forked.
2022-09-04 15:54:23 -04:00
settings.event_wiki = Wiki
settings.event_wiki_desc = Wiki page created, renamed, edited or deleted.
2018-05-16 10:01:55 -04:00
settings.event_release = Release
2018-05-20 22:28:29 -04:00
settings.event_release_desc = Release published, updated or deleted in a repository.
2015-08-28 11:36:13 -04:00
settings.event_push = Push
2018-04-19 10:24:31 -04:00
settings.event_push_desc = Git push to a repository.
2017-09-03 04:20:24 -04:00
settings.event_repository = Repository
2018-04-19 10:24:31 -04:00
settings.event_repository_desc = Repository created or deleted.
2020-03-06 00:10:48 -05:00
settings.event_header_issue = Issue Events
settings.event_issues = Issues
settings.event_issues_desc = Issue opened, closed, reopened, or edited.
settings.event_issue_assign = Issue Assigned
settings.event_issue_assign_desc = Issue assigned or unassigned.
settings.event_issue_label = Issue Labeled
settings.event_issue_label_desc = Issue labels updated or cleared.
settings.event_issue_milestone = Issue Milestoned
settings.event_issue_milestone_desc = Issue milestoned or demilestoned.
settings.event_issue_comment = Issue Comment
settings.event_issue_comment_desc = Issue comment created, edited, or deleted.
settings.event_header_pull_request = Pull Request Events
settings.event_pull_request = Pull Request
settings.event_pull_request_desc = Pull request opened, closed, reopened, or edited.
settings.event_pull_request_assign = Pull Request Assigned
settings.event_pull_request_assign_desc = Pull request assigned or unassigned.
settings.event_pull_request_label = Pull Request Labeled
settings.event_pull_request_label_desc = Pull request labels updated or cleared.
settings.event_pull_request_milestone = Pull Request Milestoned
settings.event_pull_request_milestone_desc = Pull request milestoned or demilestoned.
settings.event_pull_request_comment = Pull Request Comment
settings.event_pull_request_comment_desc = Pull request comment created, edited, or deleted.
settings.event_pull_request_review = Pull Request Reviewed
settings.event_pull_request_review_desc = Pull request approved, rejected, or review comment.
settings.event_pull_request_sync = Pull Request Synchronized
settings.event_pull_request_sync_desc = Pull request synchronized.
2023-05-24 22:06:27 -04:00
settings.event_pull_request_review_request = Pull Request Review Requested
settings.event_pull_request_review_request_desc = Pull request review requested or review request removed.
2023-04-29 06:44:52 -04:00
settings.event_pull_request_approvals = Pull Request Approvals
settings.event_pull_request_merge = Pull Request Merge
2022-03-30 04:42:47 -04:00
settings.event_package = Package
settings.event_package_desc = Package created or deleted in a repository.
2020-03-06 00:10:48 -05:00
settings.branch_filter = Branch filter
2021-06-25 10:28:55 -04:00
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>.
2022-11-03 14:23:20 -04:00
settings.authorization_header = Authorization Header
settings.authorization_header_desc = Will be included as authorization header for requests when present. Examples: %s.
2018-08-15 07:55:17 -04:00
settings.active = Active
settings.active_helper = Information about triggered events will be sent to this webhook URL.
2018-04-19 10:24:31 -04:00
settings.add_hook_success = The webhook has been added.
2014-08-09 18:40:10 -04:00
settings.update_webhook = Update Webhook
2018-04-19 10:24:31 -04:00
settings.update_hook_success = The webhook has been updated.
settings.delete_webhook = Remove Webhook
2014-08-09 18:40:10 -04:00
settings.recent_deliveries = Recent Deliveries
2014-08-24 08:59:47 -04:00
settings.hook_type = Hook Type
settings.slack_token = Token
settings.slack_domain = Domain
settings.slack_channel = Channel
2022-01-24 06:36:54 -05:00
settings.add_web_hook_desc = Integrate <a target="_blank" rel="noreferrer" href="%s">%s</a> into your repository.
settings.web_hook_name_gitea = Gitea
settings.web_hook_name_gogs = Gogs
settings.web_hook_name_slack = Slack
settings.web_hook_name_discord = Discord
settings.web_hook_name_dingtalk = DingTalk
settings.web_hook_name_telegram = Telegram
settings.web_hook_name_matrix = Matrix
settings.web_hook_name_msteams = Microsoft Teams
settings.web_hook_name_feishu_or_larksuite = Feishu / Lark Suite
settings.web_hook_name_feishu = Feishu
settings.web_hook_name_larksuite = Lark Suite
settings.web_hook_name_wechatwork = WeCom (Wechat Work)
settings.web_hook_name_packagist = Packagist
2022-01-23 08:46:30 -05:00
settings.packagist_username = Packagist username
settings.packagist_api_token = API token
settings.packagist_package_url = Packagist package URL
2015-08-06 10:48:11 -04:00
settings.deploy_keys = Deploy Keys
settings.add_deploy_key = Add Deploy Key
2018-04-19 10:24:31 -04:00
settings.deploy_key_desc = Deploy keys have read-only pull access to the repository.
settings.is_writable = Enable Write Access
settings.is_writable_info = Allow this deploy key to <strong>push</strong> to the repository.
settings.no_deploy_keys = There are no deploy keys yet.
2015-08-06 10:48:11 -04:00
settings.title = Title
settings.deploy_key_content = Content
2018-04-19 10:24:31 -04:00
settings.key_been_used = A deploy key with identical content is already in use.
settings.key_name_used = A deploy key with the same name already exists.
2023-04-17 18:04:26 -04:00
settings.add_key_success = The deploy key "%s" has been added.
2018-04-19 10:24:31 -04:00
settings.deploy_key_deletion = Remove Deploy Key
settings.deploy_key_deletion_desc = Removing a deploy key will revoke its access to this repository. Continue?
settings.deploy_key_deletion_success = The deploy key has been removed.
settings.branches = Branches
settings.protected_branch = Branch Protection
2023-01-16 03:00:22 -05:00
settings.protected_branch.save_rule = Save Rule
settings.protected_branch.delete_rule = Delete Rule
2018-04-19 10:24:31 -04:00
settings.protected_branch_can_push = Allow push?
settings.protected_branch_can_push_yes = You can push
2023-01-08 13:25:28 -05:00
settings.protected_branch_can_push_no = You cannot push
2023-04-29 06:44:52 -04:00
settings.branch_protection = Branch Protection Rules for Branch '<b>%s</b>'
2018-04-19 10:24:31 -04:00
settings.protect_this_branch = Enable Branch Protection
2019-12-03 20:08:56 -05:00
settings.protect_this_branch_desc = Prevents deletion and restricts Git pushing and merging to the branch.
settings.protect_disable_push = Disable Push
settings.protect_disable_push_desc = No pushing will be allowed to this branch.
settings.protect_enable_push = Enable Push
settings.protect_enable_push_desc = Anyone with write access will be allowed to push to this branch (but not force push).
2023-04-29 06:44:52 -04:00
settings.protect_enable_merge = Enable Merge
settings.protect_enable_merge_desc = Anyone with write access will be allowed to merge the pull requests into this branch.
2019-12-03 20:08:56 -05:00
settings.protect_whitelist_committers = Whitelist Restricted Push
settings.protect_whitelist_committers_desc = Only whitelisted users or teams will be allowed to push to this branch (but not force push).
2020-06-27 07:11:35 -04:00
settings.protect_whitelist_deploy_keys = Whitelist deploy keys with write access to push.
2018-04-19 10:24:31 -04:00
settings.protect_whitelist_users = Whitelisted users for pushing:
settings.protect_whitelist_search_users = Search users…
settings.protect_whitelist_teams = Whitelisted teams for pushing:
settings.protect_whitelist_search_teams = Search teams…
settings.protect_merge_whitelist_committers = Enable Merge Whitelist
settings.protect_merge_whitelist_committers_desc = Allow only whitelisted users or teams to merge pull requests into this branch.
settings.protect_merge_whitelist_users = Whitelisted users for merging:
settings.protect_merge_whitelist_teams = Whitelisted teams for merging:
2019-09-18 01:39:45 -04:00
settings.protect_check_status_contexts = Enable Status Check
2023-05-17 04:11:13 -04:00
settings.protect_status_check_patterns = Status check patterns:
settings.protect_status_check_patterns_desc = Enter patterns to specify which status checks must pass before branches can be merged into a branch that matches this rule. Each line specifies a pattern. Patterns cannot be empty.
settings.protect_check_status_contexts_desc = Require status checks to pass before merging. When enabled, commits must first be pushed to another branch, then merged or pushed directly to a branch that matches this rule after status checks have passed. If no contexts are matched, the last commit must be successful regardless of context.
2019-09-18 01:39:45 -04:00
settings.protect_check_status_contexts_list = Status checks found in the last week for this repository
2023-05-17 04:11:13 -04:00
settings.protect_status_check_matched = Matched
settings.protect_invalid_status_check_pattern = Invalid status check pattern: "%s".
settings.protect_no_valid_status_check_patterns = No valid status check patterns.
2018-12-11 06:28:37 -05:00
settings.protect_required_approvals = Required approvals:
2019-12-03 20:08:56 -05:00
settings.protect_required_approvals_desc = Allow only to merge pull request with enough positive reviews.
settings.protect_approvals_whitelist_enabled = Restrict approvals to whitelisted users or teams
2020-01-07 06:23:09 -05:00
settings.protect_approvals_whitelist_enabled_desc = Only reviews from whitelisted users or teams will count to the required approvals. Without approval whitelist, reviews from anyone with write access count to the required approvals.
2018-12-11 06:28:37 -05:00
settings.protect_approvals_whitelist_users = Whitelisted reviewers:
settings.protect_approvals_whitelist_teams = Whitelisted teams for reviews:
2020-01-08 20:47:45 -05:00
settings.dismiss_stale_approvals = Dismiss stale approvals
settings.dismiss_stale_approvals_desc = When new commits that change the content of the pull request are pushed to the branch, old approvals will be dismissed.
2020-01-15 03:32:57 -05:00
settings.require_signed_commits = Require Signed Commits
2020-06-27 07:11:35 -04:00
settings.require_signed_commits_desc = Reject pushes to this branch if they are unsigned or unverifiable.
2023-01-16 03:00:22 -05:00
settings.protect_branch_name_pattern = Protected Branch Name Pattern
2023-04-29 06:44:52 -04:00
settings.protect_patterns = Patterns
2023-03-31 00:16:41 -04:00
settings.protect_protected_file_patterns = "Protected file patterns (separated using semicolon ';'):"
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>."
settings.protect_unprotected_file_patterns = "Unprotected file patterns (separated using semicolon ';'):"
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>."
2018-04-19 10:24:31 -04:00
settings.add_protected_branch = Enable protection
settings.delete_protected_branch = Disable protection
2023-04-17 18:04:26 -04:00
settings.update_protect_branch_success = Branch protection for rule "%s" has been updated.
settings.remove_protected_branch_success = Branch protection for rule "%s" has been removed.
settings.remove_protected_branch_failed = Removing branch protection rule "%s" failed.
2023-01-16 03:00:22 -05:00
settings.protected_branch_deletion = Delete Branch Protection
2018-04-19 10:24:31 -04:00
settings.protected_branch_deletion_desc = Disabling branch protection allows users with write permission to push to the branch. Continue?
2020-01-03 12:47:10 -05:00
settings.block_rejected_reviews = Block merge on rejected reviews
settings.block_rejected_reviews_desc = Merging will not be possible when changes are requested by official reviewers, even if there are enough approvals.
2020-11-28 14:30:46 -05:00
settings.block_on_official_review_requests = Block merge on official review requests
settings.block_on_official_review_requests_desc = Merging will not be possible when it has official review requests, even if there are enough approvals.
2020-04-16 21:00:36 -04:00
settings.block_outdated_branch = Block merge if pull request is outdated
settings.block_outdated_branch_desc = Merging will not be possible when head branch is behind base branch.
2018-04-19 10:24:31 -04:00
settings.default_branch_desc = Select a default repository branch for pull requests and code commits:
2023-02-13 01:09:52 -05:00
settings.merge_style_desc = Merge Styles
settings.default_merge_style_desc = Default Merge Style
2018-02-16 09:02:40 -05:00
settings.choose_branch = Choose a branch…
2018-04-19 10:24:31 -04:00
settings.no_protected_branch = There are no protected branches.
2018-07-13 16:57:20 -04:00
settings.edit_protected_branch = Edit
2023-01-16 03:00:22 -05:00
settings.protected_branch_required_rule_name = Required rule name
2023-02-20 06:30:41 -05:00
settings.protected_branch_duplicate_rule_name = Duplicate rule name
2018-12-11 06:28:37 -05:00
settings.protected_branch_required_approvals_min = Required approvals cannot be negative.
2021-06-25 10:28:55 -04:00
settings.tags = Tags
settings.tags.protection = Tag Protection
settings.tags.protection.pattern = Tag Pattern
settings.tags.protection.allowed = Allowed
settings.tags.protection.allowed.users = Allowed users
settings.tags.protection.allowed.teams = Allowed teams
settings.tags.protection.allowed.noone = No One
settings.tags.protection.create = Protect Tag
settings.tags.protection.none = There are no protected tags.
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://docs.gitea.io/en-us/protected-tags/">protected tags guide</a>.
2019-04-18 22:45:02 -04:00
settings.bot_token = Bot Token
settings.chat_id = Chat ID
2020-03-28 09:09:55 -04:00
settings.matrix.homeserver_url = Homeserver URL
settings.matrix.room_id = Room ID
settings.matrix.message_type = Message Type
2019-01-23 13:58:38 -05:00
settings.archive.button = Archive Repo
settings.archive.header = Archive This Repo
settings.archive.text = Archiving the repo will make it entirely read-only. It is hidden from the dashboard, cannot be committed to and no issues or pull-requests can be created.
settings.archive.success = The repo was successfully archived.
2019-06-05 10:16:06 -04:00
settings.archive.error = An error occurred while trying to archive the repo. See the log for more details.
2019-01-23 13:58:38 -05:00
settings.archive.error_ismirror = You cannot archive a mirrored repo.
settings.archive.branchsettings_unavailable = Branch settings are not available if the repo is archived.
2021-06-25 10:28:55 -04:00
settings.archive.tagsettings_unavailable = Tag settings are not available if the repo is archived.
2019-01-23 13:58:38 -05:00
settings.unarchive.button = Un-Archive Repo
settings.unarchive.header = Un-Archive This Repo
2019-06-05 10:16:06 -04:00
settings.unarchive.text = Un-Archiving the repo will restore its ability to receive commits and pushes, as well as new issues and pull-requests.
2019-01-23 13:58:38 -05:00
settings.unarchive.success = The repo was successfully un-archived.
2019-06-05 10:16:06 -04:00
settings.unarchive.error = An error occurred while trying to un-archive the repo. See the log for more details.
2019-05-29 22:22:26 -04:00
settings.update_avatar_success = The repository avatar has been updated.
2019-10-28 14:31:55 -04:00
settings.lfs = LFS
settings.lfs_filelist = LFS files stored in this repository
settings.lfs_no_lfs_files = No LFS files stored in this repository
settings.lfs_findcommits = Find commits
settings.lfs_lfs_file_no_commits = No Commits found for this LFS file
2019-12-12 08:18:07 -05:00
settings.lfs_noattribute = This path does not have the lockable attribute in the default branch
2019-10-28 14:31:55 -04:00
settings.lfs_delete = Delete LFS file with OID %s
settings.lfs_delete_warning = Deleting an LFS file may cause 'object does not exist' errors on checkout. Are you sure?
settings.lfs_findpointerfiles = Find pointer files
2019-12-12 08:18:07 -05:00
settings.lfs_locks = Locks
settings.lfs_invalid_locking_path = Invalid path: %s
settings.lfs_invalid_lock_directory = Cannot lock directory: %s
settings.lfs_lock_already_exists = Lock already exists: %s
settings.lfs_lock = Lock
settings.lfs_lock_path = Filepath to lock...
settings.lfs_locks_no_locks = No Locks
settings.lfs_lock_file_no_exist = Locked file does not exist in default branch
settings.lfs_force_unlock = Force Unlock
2019-10-28 14:31:55 -04:00
settings.lfs_pointers.found = Found %d blob pointer(s) - %d associated, %d unassociated (%d missing from store)
settings.lfs_pointers.sha = Blob SHA
settings.lfs_pointers.oid = OID
settings.lfs_pointers.inRepo = In Repo
settings.lfs_pointers.exists = Exists in store
settings.lfs_pointers.accessible = Accessible to User
settings.lfs_pointers.associateAccessible = Associate accessible %d OIDs
2021-10-08 13:03:04 -04:00
settings.rename_branch_failed_exist = Cannot rename branch because target branch %s exists.
settings.rename_branch_failed_not_exist = Cannot rename branch %s because it does not exist.
settings.rename_branch_success = Branch %s was successfully renamed to %s.
settings.rename_branch_from = old branch name
settings.rename_branch_to = new branch name
settings.rename_branch = Rename branch
2014-08-02 13:47:33 -04:00
2014-10-10 21:40:51 -04:00
diff.browse_source = Browse Source
diff.parent = parent
diff.commit = commit
2019-05-24 03:52:05 -04:00
diff.git-notes = Notes
2017-05-10 21:03:34 -04:00
diff.data_not_available = Diff Content Not Available
2019-10-15 06:44:36 -04:00
diff.options_button = Diff Options
diff.show_diff_stats = Show Stats
diff.download_patch = Download Patch File
diff.download_diff = Download Diff File
2016-01-01 18:30:00 -05:00
diff.show_split_view = Split View
2016-01-02 17:13:47 -05:00
diff.show_unified_view = Unified View
2018-08-14 13:49:33 -04:00
diff.whitespace_button = Whitespace
diff.whitespace_show_everything = Show all changes
diff.whitespace_ignore_all_whitespace = Ignore whitespace when comparing lines
diff.whitespace_ignore_amount_changes = Ignore changes in amount of whitespace
diff.whitespace_ignore_at_eol = Ignore changes in whitespace at EOL
2014-10-10 21:40:51 -04:00
diff.stats_desc = <strong> %d changed files</strong> with <strong>%d additions</strong> and <strong>%d deletions</strong>
2020-12-11 20:06:22 -05:00
diff.stats_desc_file = %d changes: %d additions and %d deletions
2014-10-10 21:40:51 -04:00
diff.bin = BIN
2021-03-29 16:44:28 -04:00
diff.bin_not_shown = Binary file not shown.
2014-10-10 21:40:51 -04:00
diff.view_file = View File
2019-09-16 05:03:22 -04:00
diff.file_before = Before
diff.file_after = After
diff.file_image_width = Width
diff.file_image_height = Height
diff.file_byte_size = Size
2016-07-09 11:59:13 -04:00
diff.file_suppressed = File diff suppressed because it is too large
2021-05-04 08:58:49 -04:00
diff.file_suppressed_line_too_long = File diff suppressed because one or more lines are too long
2021-10-15 12:05:33 -04:00
diff.too_many_files = Some files were not shown because too many files have changed in this diff
diff.show_more = Show More
2021-11-21 11:51:08 -05:00
diff.load = Load Diff
2021-09-09 16:13:36 -04:00
diff.generated = generated
diff.vendored = vendored
2018-08-06 00:43:22 -04:00
diff.comment.placeholder = Leave a comment
diff.comment.markdown_info = Styling with markdown is supported.
diff.comment.add_single_comment = Add single comment
diff.comment.add_review_comment = Add comment
diff.comment.start_review = Start review
diff.comment.reply = Reply
diff.review = Review
diff.review.header = Submit review
diff.review.placeholder = Review comment
diff.review.comment = Comment
diff.review.approve = Approve
2023-03-20 17:54:23 -04:00
diff.review.self_reject = Pull request authors can't request changes on their own pull request
2019-01-26 12:20:56 -05:00
diff.review.reject = Request changes
2023-03-20 17:54:23 -04:00
diff.review.self_approve = Pull request authors can't approve their own pull request
2020-06-02 22:40:08 -04:00
diff.committed_by = committed by
2020-10-13 14:50:57 -04:00
diff.protected = Protected
2021-02-27 12:25:00 -05:00
diff.image.side_by_side = Side by Side
diff.image.swipe = Swipe
diff.image.overlay = Overlay
2022-01-06 20:18:52 -05:00
diff.has_escaped = This line has hidden Unicode characters
2023-03-30 08:06:10 -04:00
diff.show_file_tree = Show file tree
diff.hide_file_tree = Hide file tree
2014-10-10 21:40:51 -04:00
2018-04-19 10:24:31 -04:00
releases.desc = Track project versions and downloads.
2014-12-10 16:37:54 -05:00
release.releases = Releases
2020-11-02 18:10:22 -05:00
release.detail = Release details
release.tags = Tags
2014-12-10 16:37:54 -05:00
release.new_release = New Release
release.draft = Draft
release.prerelease = Pre-Release
release.stable = Stable
2021-05-03 13:27:48 -04:00
release.compare = Compare
2014-12-10 16:37:54 -05:00
release.edit = edit
2020-06-05 14:44:54 -04:00
release.ahead.commits = <strong>%d</strong> commits
release.ahead.target = to %s since this release
2023-03-27 09:41:33 -04:00
tag.ahead.target = to %s since this tag
2014-12-10 16:37:54 -05:00
release.source_code = Source Code
2018-04-19 10:24:31 -04:00
release.new_subheader = Releases organize project versions.
release.edit_subheader = Releases organize project versions.
2014-12-10 16:37:54 -05:00
release.tag_name = Tag name
release.target = Target
2018-04-19 10:24:31 -04:00
release.tag_helper = Choose an existing tag or create a new tag.
2023-03-10 11:42:38 -05:00
release.tag_helper_new = New tag. This tag will be created from the target.
release.tag_helper_existing = Existing tag.
2023-04-10 11:56:57 -04:00
release.title = Release title
2023-04-06 21:44:52 -04:00
release.title_empty = Title cannot be empty.
2023-04-10 11:56:57 -04:00
release.message = Describe this release
2018-04-19 10:24:31 -04:00
release.prerelease_desc = Mark as Pre-Release
release.prerelease_helper = Mark this release unsuitable for production use.
2015-11-15 23:52:46 -05:00
release.cancel = Cancel
2014-12-10 16:37:54 -05:00
release.publish = Publish Release
release.save_draft = Save Draft
2018-04-19 10:24:31 -04:00
release.edit_release = Update Release
release.delete_release = Delete Release
2020-11-02 18:10:22 -05:00
release.delete_tag = Delete Tag
2018-04-19 10:24:31 -04:00
release.deletion = Delete Release
2020-11-02 18:10:22 -05:00
release.deletion_desc = Deleting a release only removes it from Gitea. Git tag, repository contents and history remain unchanged. Continue?
2017-05-17 21:03:43 -04:00
release.deletion_success = The release has been deleted.
2020-11-02 18:10:22 -05:00
release.deletion_tag_desc = Will delete this tag from repository. Repository contents and history remain unchanged. Continue?
release.deletion_tag_success = The tag has been deleted.
2018-04-19 10:24:31 -04:00
release.tag_name_already_exist = A release with this tag name already exists.
release.tag_name_invalid = The tag name is not valid.
2021-06-25 10:28:55 -04:00
release.tag_name_protected = The tag name is protected.
2020-11-02 18:10:22 -05:00
release.tag_already_exist = This tag name already exists.
2015-11-15 23:52:46 -05:00
release.downloads = Downloads
2020-02-03 14:50:37 -05:00
release.download_count = Downloads: %s
2021-02-28 14:57:45 -05:00
release.add_tag_msg = Use the title and content of release as tag message.
release.add_tag = Create Tag Only
2022-12-21 16:06:26 -05:00
release.releases_for = Releases for %s
release.tags_for = Tags for %s
2014-12-10 16:37:54 -05:00
2018-04-19 10:24:31 -04:00
branch.name = Branch Name
2017-10-25 20:49:16 -04:00
branch.search = Search branches
2023-04-17 18:04:26 -04:00
branch.already_exists = A branch named "%s" already exists.
2017-10-25 20:49:16 -04:00
branch.delete_head = Delete
2023-04-17 18:04:26 -04:00
branch.delete = Delete Branch "%s"
2017-10-25 20:49:16 -04:00
branch.delete_html = Delete Branch
2023-04-28 02:32:32 -04:00
branch.delete_desc = Deleting a branch is permanent. Although the deleted branch may exist for a short time before cleaning up, in most cases it CANNOT be undone. Continue?
2023-04-17 18:04:26 -04:00
branch.deletion_success = Branch "%s" has been deleted.
branch.deletion_failed = Failed to delete branch "%s".
branch.delete_branch_has_new_commits = Branch "%s" cannot be deleted because new commits have been added after merging.
2017-10-15 15:59:24 -04:00
branch.create_branch = Create branch <strong>%s</strong>
2023-04-17 18:04:26 -04:00
branch.create_from = from "%s"
branch.create_success = Branch "%s" has been created.
branch.branch_already_exists = Branch "%s" already exists in this repository.
branch.branch_name_conflict = Branch name "%s" conflicts with the already existing branch "%s".
branch.tag_collision = Branch "%s" cannot be created as a tag with same name already exists in the repository.
2017-10-25 20:49:16 -04:00
branch.deleted_by = Deleted by %s
2023-04-17 18:04:26 -04:00
branch.restore_success = Branch "%s" has been restored.
branch.restore_failed = Failed to restore branch "%s".
branch.protected_deletion_failed = Branch "%s" is protected. It cannot be deleted.
branch.default_deletion_failed = Branch "%s" is the default branch. It cannot be deleted.
branch.restore = Restore Branch "%s"
branch.download = Download Branch "%s"
2023-04-30 11:08:51 -04:00
branch.rename = Rename Branch "%s"
2019-10-14 18:40:17 -04:00
branch.included_desc = This branch is part of the default branch
branch.included = Included
2021-05-24 10:57:46 -04:00
branch.create_new_branch = Create branch from branch:
branch.confirm_create_branch = Create branch
2023-05-04 18:54:38 -04:00
branch.warning_rename_default_branch = You are renaming the default branch.
2023-04-30 11:08:51 -04:00
branch.rename_branch_to = Rename "%s" to:
branch.confirm_rename_branch = Rename branch
2022-02-09 15:28:55 -05:00
branch.create_branch_operation = Create branch
2021-05-24 10:57:46 -04:00
branch.new_branch = Create new branch
2023-04-17 18:04:26 -04:00
branch.new_branch_from = Create new branch from "%s"
2021-10-08 13:03:04 -04:00
branch.renamed = Branch %s was renamed to %s.
2016-12-25 11:19:25 -05:00
2021-02-28 14:57:45 -05:00
tag.create_tag = Create tag <strong>%s</strong>
2022-02-09 15:28:55 -05:00
tag.create_tag_operation = Create tag
tag.confirm_create_tag = Create tag
2023-04-17 18:04:26 -04:00
tag.create_tag_from = Create new tag from "%s"
2022-02-09 15:28:55 -05:00
2023-04-17 18:04:26 -04:00
tag.create_success = Tag "%s" has been created.
2021-02-28 14:57:45 -05:00
2018-04-10 22:51:44 -04:00
topic.manage_topics = Manage Topics
topic.done = Done
2023-01-08 13:25:28 -05:00
topic.count_prompt = You cannot select more than 25 topics
2018-07-20 12:40:08 -04:00
topic.format_prompt = Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2018-04-10 22:51:44 -04:00
2022-06-09 07:15:08 -04:00
find_file.go_to_file = Go to file
find_file.no_matching = No matching file found
2021-03-29 16:44:28 -04:00
error.csv.too_large = Can't render this file because it is too large.
error.csv.unexpected = Can't render this file because it contains an unexpected character in line %d and column %d.
error.csv.invalid_field_count = Can't render this file because it has a wrong number of fields in line %d.
2014-07-26 23:53:16 -04:00
[org]
org_name_holder = Organization Name
2015-11-03 14:34:21 -05:00
org_full_name_holder = Organization Full Name
2018-04-19 10:24:31 -04:00
org_name_helper = Organization names should be short and memorable.
2014-07-26 23:53:16 -04:00
create_org = Create Organization
2014-08-10 23:11:18 -04:00
repo_updated = Updated
2023-02-18 08:41:31 -05:00
members = Members
2014-08-10 23:11:18 -04:00
teams = Teams
2022-10-10 19:12:03 -04:00
code = Code
2014-08-10 23:11:18 -04:00
lower_members = members
lower_repositories = repositories
2018-03-09 12:37:24 -05:00
create_new_team = New Team
create_team = Create Team
2014-08-14 02:12:21 -04:00
org_desc = Description
2014-08-16 04:21:17 -04:00
team_name = Team Name
team_desc = Description
2018-04-19 10:24:31 -04:00
team_name_helper = Team names should be short and memorable.
team_desc_helper = Describe the purpose or role of the team.
2019-11-06 04:37:14 -05:00
team_access_desc = Repository access
2018-04-19 10:24:31 -04:00
team_permission_desc = Permission
team_unit_desc = Allow Access to Repository Sections
2020-01-17 02:34:37 -05:00
team_unit_disabled = (Disabled)
2014-08-14 02:12:21 -04:00
2023-04-17 18:04:26 -04:00
form.name_reserved = The organization name "%s" is reserved.
form.name_pattern_not_allowed = The pattern "%s" is not allowed in an organization name.
2018-04-19 10:24:31 -04:00
form.create_org_not_allowed = You are not allowed to create an organization.
2015-03-26 17:11:47 -04:00
2014-08-14 02:12:21 -04:00
settings = Settings
2018-04-19 10:24:31 -04:00
settings.options = Organization
2014-08-14 02:12:21 -04:00
settings.full_name = Full Name
settings.website = Website
settings.location = Location
2019-09-23 16:08:03 -04:00
settings.permission = Permissions
settings.repoadminchangeteam = Repository admin can add and remove access for teams
2019-02-18 11:00:27 -05:00
settings.visibility = Visibility
settings.visibility.public = Public
2023-04-08 06:05:21 -04:00
settings.visibility.limited = Limited (Visible to authenticated users only)
2020-10-06 02:25:43 -04:00
settings.visibility.limited_shortname = Limited
2019-02-18 11:00:27 -05:00
settings.visibility.private = Private (Visible only to organization members)
2020-10-06 02:25:43 -04:00
settings.visibility.private_shortname = Private
2019-02-18 11:00:27 -05:00
2014-08-14 02:12:21 -04:00
settings.update_settings = Update Settings
2017-05-17 21:03:43 -04:00
settings.update_setting_success = Organization settings have been updated.
2018-04-19 10:24:31 -04:00
settings.change_orgname_prompt = Note: changing the organization name also changes the organization's URL.
2021-01-24 10:23:05 -05:00
settings.change_orgname_redirect_prompt = The old name will redirect until it is claimed.
2018-04-19 10:24:31 -04:00
settings.update_avatar_success = The organization's avatar has been updated.
2015-03-26 17:11:47 -04:00
settings.delete = Delete Organization
2014-08-14 02:12:21 -04:00
settings.delete_account = Delete This Organization
2018-04-19 10:24:31 -04:00
settings.delete_prompt = The organization will be permanently removed. This <strong>CANNOT</strong> be undone!
2014-08-14 02:12:21 -04:00
settings.confirm_delete_account = Confirm Deletion
2018-04-19 10:24:31 -04:00
settings.delete_org_title = Delete Organization
settings.delete_org_desc = This organization will be deleted permanently. Continue?
2017-07-11 22:25:45 -04:00
settings.hooks_desc = Add webhooks which will be triggered for <strong>all repositories</strong> under this organization.
2014-07-26 23:53:16 -04:00
Add Organization Wide Labels (#10814)
* Add organization wide labels
Implement organization wide labels similar to organization wide
webhooks. This lets you create individual labels for organizations that can be used
for all repos under that organization (so being able to reuse the same
label across multiple repos).
This makes it possible for small organizations with many repos to use
labels effectively.
Fixes #7406
* Add migration
* remove comments
* fix tests
* Update options/locale/locale_en-US.ini
Removed unused translation string
* show org labels in issue search label filter
* Use more clear var name
* rename migration after merge from master
* comment typo
* update migration again after rebase with master
* check for orgID <=0 per guillep2k review
* fmt
* Apply suggestions from code review
Co-Authored-By: guillep2k <18600385+guillep2k@users.noreply.github.com>
* remove unused code
* Make sure RepoID is 0 when searching orgID per code review
* more changes/code review requests
* More descriptive translation var per code review
* func description/delete comment when issue label deleted instead of hiding it
* remove comment
* only use issues in that repo when calculating number of open issues for org label on repo label page
* Add integration test for IssuesSearch API with labels
* remove unused function
* Update models/issue_label.go
Co-Authored-By: guillep2k <18600385+guillep2k@users.noreply.github.com>
* Use subquery in GetLabelIDsInReposByNames
* Fix tests to use correct orgID
* fix more tests
* IssuesSearch api now uses new BuildLabelNamesIssueIDsCondition. Add a few more tests as well
* update comment for clarity
* Revert previous code change now that we can use the new BuildLabelNamesIssueIDsCondition
* Don't sort repos by date in IssuesSearch API
After much debugging I've found a strange issue where in some cases MySQL will return a different result than other enigines if a query is sorted by a null collumn. For example with our integration test data where we don't set updated_unix in repository fixtures:
SELECT `id`, `owner_id`, `owner_name`, `lower_name`, `name`, `description`, `website`, `original_service_type`, `original_url`, `default_branch`, `num_watches`, `num_stars`, `num_forks`, `num_issues`, `num_closed_issues`, `num_pulls`, `num_closed_pulls`, `num_milestones`, `num_closed_milestones`, `is_private`, `is_empty`, `is_archived`, `is_mirror`, `status`, `is_fork`, `fork_id`, `is_template`, `template_id`, `size`, `is_fsck_enabled`, `close_issues_via_commit_in_any_branch`, `topics`, `avatar`, `created_unix`, `updated_unix` FROM `repository` ORDER BY updated_unix DESC LIMIT 15 OFFSET 45
Returns different results for MySQL than other engines. However, the similar query:
SELECT `id`, `owner_id`, `owner_name`, `lower_name`, `name`, `description`, `website`, `original_service_type`, `original_url`, `default_branch`, `num_watches`, `num_stars`, `num_forks`, `num_issues`, `num_closed_issues`, `num_pulls`, `num_closed_pulls`, `num_milestones`, `num_closed_milestones`, `is_private`, `is_empty`, `is_archived`, `is_mirror`, `status`, `is_fork`, `fork_id`, `is_template`, `template_id`, `size`, `is_fsck_enabled`, `close_issues_via_commit_in_any_branch`, `topics`, `avatar`, `created_unix`, `updated_unix` FROM `repository` ORDER BY updated_unix DESC LIMIT 15 OFFSET 30
Returns the same results.
This causes integration tests to fail on MySQL in certain cases but would never show up in a real installation. Since this API call always returns issues based on the optionally provided repo_priority_id or the issueID itself, there is no change to results by changing the repo sorting method used to get ids earlier in the function.
* linter is back!
* code review
* remove now unused option
* Fix newline at end of files
* more unused code
* update to master
* check for matching ids before query
* Update models/issue_label.go
Co-Authored-By: 6543 <6543@obermui.de>
* Update models/issue_label.go
* update comments
* Update routers/org/setting.go
Co-authored-by: Lauris BH <lauris@nix.lv>
Co-authored-by: guillep2k <18600385+guillep2k@users.noreply.github.com>
Co-authored-by: 6543 <6543@obermui.de>
2020-04-01 00:14:46 -04:00
settings.labels_desc = Add labels which can be used on issues for <strong>all repositories</strong> under this organization.
2015-11-22 01:32:09 -05:00
members.membership_visibility = Membership Visibility:
2018-04-19 10:24:31 -04:00
members.public = Visible
members.public_helper = make hidden
members.private = Hidden
members.private_helper = make visible
2015-11-22 01:32:09 -05:00
members.member_role = Member Role:
2014-08-15 06:29:41 -04:00
members.owner = Owner
members.member = Member
members.remove = Remove
2021-08-26 22:57:40 -04:00
members.remove.detail = Remove %[1]s from %[2]s?
2014-08-16 04:21:17 -04:00
members.leave = Leave
2021-08-26 22:57:40 -04:00
members.leave.detail = Leave %s?
2015-11-22 01:32:09 -05:00
members.invite_desc = Add a new member to %s:
2014-08-15 06:29:41 -04:00
members.invite_now = Invite Now
2014-08-16 04:21:17 -04:00
teams.join = Join
teams.leave = Leave
2021-08-26 22:57:40 -04:00
teams.leave.detail = Leave %s?
2019-11-20 06:27:49 -05:00
teams.can_create_org_repo = Create repositories
teams.can_create_org_repo_helper = Members can create new repositories in organization. Creator will get administrator access to the new repository.
2022-01-04 22:37:00 -05:00
teams.none_access = No Access
2023-02-01 03:14:40 -05:00
teams.none_access_helper = Members cannot view or do any other action on this unit. It has no effect for public repositories.
2022-01-04 22:37:00 -05:00
teams.general_access = General Access
teams.general_access_helper = Members permissions will be decided by below permission table.
teams.read_access = Read
2018-04-19 10:24:31 -04:00
teams.read_access_helper = Members can view and clone team repositories.
2022-01-04 22:37:00 -05:00
teams.write_access = Write
2018-04-19 10:24:31 -04:00
teams.write_access_helper = Members can read and push to team repositories.
teams.admin_access = Administrator Access
teams.admin_access_helper = Members can pull and push to team repositories and add collaborators to them.
2014-08-23 08:24:02 -04:00
teams.no_desc = This team has no description
teams.settings = Settings
2018-04-19 10:24:31 -04:00
teams.owners_permission_desc = Owners have full access to <strong>all repositories</strong> and have <strong>administrator access</strong> to the organization.
2014-08-23 08:24:02 -04:00
teams.members = Team Members
2014-08-24 09:09:05 -04:00
teams.update_settings = Update Settings
2018-04-19 10:24:31 -04:00
teams.delete_team = Delete Team
2014-08-24 09:09:05 -04:00
teams.add_team_member = Add Team Member
2022-10-19 08:40:28 -04:00
teams.invite_team_member = Invite to %s
teams.invite_team_member.list = Pending Invitations
2018-04-19 10:24:31 -04:00
teams.delete_team_title = Delete Team
teams.delete_team_desc = Deleting a team revokes repository access from its members. Continue?
2017-05-17 21:03:43 -04:00
teams.delete_team_success = The team has been deleted.
2018-04-19 10:24:31 -04:00
teams.read_permission_desc = This team grants <strong>Read</strong> access: members can view and clone team repositories.
teams.write_permission_desc = This team grants <strong>Write</strong> access: members can read from and push to team repositories.
teams.admin_permission_desc = This team grants <strong>Admin</strong> access: members can read from, push to and add collaborators to team repositories.
2019-11-20 06:27:49 -05:00
teams.create_repo_permission_desc = Additionally, this team grants <strong>Create repository</strong> permission: members can create new repositories in organization.
2014-08-26 06:11:15 -04:00
teams.repositories = Team Repositories
2018-02-16 09:02:40 -05:00
teams.search_repo_placeholder = Search repository…
2019-11-08 19:39:37 -05:00
teams.remove_all_repos_title = Remove all team repositories
teams.remove_all_repos_desc = This will remove all repositories from the team.
teams.add_all_repos_title = Add all repositories
teams.add_all_repos_desc = This will add all the organization's repositories to the team.
2023-03-23 13:27:03 -04:00
teams.add_nonexistent_repo = "The repository you're trying to add doesn't exist, please create it first."
2018-08-19 14:49:19 -04:00
teams.add_duplicate_users = User is already a team member.
2018-12-09 01:42:11 -05:00
teams.repos.none = No repositories could be accessed by this team.
teams.members.none = No members on this team.
2019-11-06 04:37:14 -05:00
teams.specific_repositories = Specific repositories
teams.specific_repositories_helper = Members will only have access to repositories explicitly added to the team. Selecting this <strong>will not</strong> automatically remove repositories already added with <i>All repositories</i>.
teams.all_repositories = All repositories
teams.all_repositories_helper = Team has access to all repositories. Selecting this will <strong>add all existing</strong> repositories to the team.
teams.all_repositories_read_permission_desc = This team grants <strong>Read</strong> access to <strong>all repositories</strong>: members can view and clone repositories.
teams.all_repositories_write_permission_desc = This team grants <strong>Write</strong> access to <strong>all repositories</strong>: members can read from and push to repositories.
teams.all_repositories_admin_permission_desc = This team grants <strong>Admin</strong> access to <strong>all repositories</strong>: members can read from, push to and add collaborators to repositories.
2022-10-19 08:40:28 -04:00
teams.invite.title = You've been invited to join team <strong>%s</strong> in organization <strong>%s</strong>.
teams.invite.by = Invited by %s
teams.invite.description = Please click the button below to join the team.
2014-08-16 04:21:17 -04:00
2014-08-28 10:29:00 -04:00
[admin]
dashboard = Dashboard
2018-04-19 10:24:31 -04:00
users = User Accounts
2014-08-28 10:29:00 -04:00
organizations = Organizations
repositories = Repositories
2021-01-14 18:24:03 -05:00
hooks = Webhooks
2018-04-19 10:24:31 -04:00
authentication = Authentication Sources
2020-03-02 13:25:36 -05:00
emails = User Emails
2014-08-28 10:29:00 -04:00
config = Configuration
2014-10-08 18:29:18 -04:00
notices = System Notices
2014-08-28 10:29:00 -04:00
monitor = Monitoring
2015-09-11 20:42:26 -04:00
first_page = First
last_page = Last
2015-09-10 15:45:03 -04:00
total = Total: %d
2014-08-28 10:29:00 -04:00
2023-03-23 13:27:03 -04:00
dashboard.new_version_hint = Gitea %s is now available, you are running %s. Check <a target="_blank" rel="noreferrer" href="https://blog.gitea.io">the blog</a> for more details.
2018-04-19 10:24:31 -04:00
dashboard.statistic = Summary
dashboard.operations = Maintenance Operations
dashboard.system_status = System Status
2014-08-28 10:29:00 -04:00
dashboard.operation_name = Operation Name
dashboard.operation_switch = Switch
dashboard.operation_run = Run
2017-05-17 21:03:43 -04:00
dashboard.clean_unbind_oauth = Clean unbound OAuth connections
dashboard.clean_unbind_oauth_success = All unbound OAuth connections have been deleted.
2020-07-05 15:38:03 -04:00
dashboard.task.started = Started Task: %[1]s
dashboard.task.process = Task: %[1]s
dashboard.task.cancelled = Task: %[1]s cancelled: %[3]s
dashboard.task.error = Error in Task: %[1]s: %[3]s
dashboard.task.finished = Task: %[1]s started by %[2]s has finished
dashboard.task.unknown = Unknown task: %[1]s
2020-05-16 19:31:38 -04:00
dashboard.cron.started = Started Cron: %[1]s
dashboard.cron.process = Cron: %[1]s
2020-05-17 05:18:59 -04:00
dashboard.cron.cancelled = Cron: %s cancelled: %[3]s
2020-05-16 19:31:38 -04:00
dashboard.cron.error = Error in Cron: %s: %[3]s
dashboard.cron.finished = Cron: %[1]s has finished
dashboard.delete_inactive_accounts = Delete all unactivated accounts
dashboard.delete_inactive_accounts.started = Delete all unactivated accounts task started.
2021-02-19 01:24:51 -05:00
dashboard.delete_repo_archives = "Delete all repositories' archives (ZIP, TAR.GZ, etc..)"
2020-05-16 19:31:38 -04:00
dashboard.delete_repo_archives.started = Delete all repository archives task started.
2018-04-19 10:24:31 -04:00
dashboard.delete_missing_repos = Delete all repositories missing their Git files
2020-05-16 19:31:38 -04:00
dashboard.delete_missing_repos.started = Delete all repositories missing their Git files task started.
2019-06-02 02:40:12 -04:00
dashboard.delete_generated_repository_avatars = Delete generated repository avatars
2020-05-16 19:31:38 -04:00
dashboard.update_mirrors = Update Mirrors
dashboard.repo_health_check = Health check all repositories
dashboard.check_repo_stats = Check all repository statistics
dashboard.archive_cleanup = Delete old repository archives
dashboard.deleted_branches_cleanup = Clean-up deleted branches
dashboard.update_migration_poster_id = Update migration poster IDs
2018-04-19 10:24:31 -04:00
dashboard.git_gc_repos = Garbage collect all repositories
2020-05-16 19:31:38 -04:00
dashboard.resync_all_sshkeys = Update the '.ssh/authorized_keys' file with Gitea SSH keys.
dashboard.resync_all_sshkeys.desc = (Not needed for the built-in SSH server.)
2020-10-10 20:38:09 -04:00
dashboard.resync_all_sshprincipals = Update the '.ssh/authorized_principals' file with Gitea SSH principals.
dashboard.resync_all_sshprincipals.desc = (Not needed for the built-in SSH server.)
2018-04-19 10:24:31 -04:00
dashboard.resync_all_hooks = Resynchronize pre-receive, update and post-receive hooks of all repositories.
2017-07-11 22:25:45 -04:00
dashboard.reinit_missing_repos = Reinitialize all missing Git repositories for which records exist
2017-05-10 09:10:18 -04:00
dashboard.sync_external_users = Synchronize external user data
2021-01-26 16:02:42 -05:00
dashboard.cleanup_hook_task_table = Cleanup hook_task table
2022-03-30 04:42:47 -04:00
dashboard.cleanup_packages = Cleanup expired packages
2014-08-28 10:29:00 -04:00
dashboard.server_uptime = Server Uptime
dashboard.current_goroutine = Current Goroutines
dashboard.current_memory_usage = Current Memory Usage
dashboard.total_memory_allocated = Total Memory Allocated
dashboard.memory_obtained = Memory Obtained
dashboard.pointer_lookup_times = Pointer Lookup Times
2018-04-19 10:24:31 -04:00
dashboard.memory_allocate_times = Memory Allocations
dashboard.memory_free_times = Memory Frees
2014-08-28 10:29:00 -04:00
dashboard.current_heap_usage = Current Heap Usage
dashboard.heap_memory_obtained = Heap Memory Obtained
dashboard.heap_memory_idle = Heap Memory Idle
dashboard.heap_memory_in_use = Heap Memory In Use
dashboard.heap_memory_released = Heap Memory Released
dashboard.heap_objects = Heap Objects
dashboard.bootstrap_stack_usage = Bootstrap Stack Usage
dashboard.stack_memory_obtained = Stack Memory Obtained
dashboard.mspan_structures_usage = MSpan Structures Usage
dashboard.mspan_structures_obtained = MSpan Structures Obtained
dashboard.mcache_structures_usage = MCache Structures Usage
dashboard.mcache_structures_obtained = MCache Structures Obtained
dashboard.profiling_bucket_hash_table_obtained = Profiling Bucket Hash Table Obtained
2015-12-16 16:52:38 -05:00
dashboard.gc_metadata_obtained = GC Metadata Obtained
2014-08-28 10:29:00 -04:00
dashboard.other_system_allocation_obtained = Other System Allocation Obtained
dashboard.next_gc_recycle = Next GC Recycle
dashboard.last_gc_time = Since Last GC Time
dashboard.total_gc_time = Total GC Pause
dashboard.total_gc_pause = Total GC Pause
dashboard.last_gc_pause = Last GC Pause
dashboard.gc_times = GC Times
2021-05-01 08:17:02 -04:00
dashboard.delete_old_actions = Delete all old actions from database
dashboard.delete_old_actions.started = Delete all old actions from database started.
2022-02-07 02:43:53 -05:00
dashboard.update_checker = Update checker
2022-03-28 08:54:59 -04:00
dashboard.delete_old_system_notices = Delete all old system notices from database
2023-01-16 14:50:53 -05:00
dashboard.gc_lfs = Garbage collect LFS meta objects
Implement actions (#21937)
Close #13539.
Co-authored by: @lunny @appleboy @fuxiaohei and others.
Related projects:
- https://gitea.com/gitea/actions-proto-def
- https://gitea.com/gitea/actions-proto-go
- https://gitea.com/gitea/act
- https://gitea.com/gitea/act_runner
### Summary
The target of this PR is to bring a basic implementation of "Actions",
an internal CI/CD system of Gitea. That means even though it has been
merged, the state of the feature is **EXPERIMENTAL**, and please note
that:
- It is disabled by default;
- It shouldn't be used in a production environment currently;
- It shouldn't be used in a public Gitea instance currently;
- Breaking changes may be made before it's stable.
**Please comment on #13539 if you have any different product design
ideas**, all decisions reached there will be adopted here. But in this
PR, we don't talk about **naming, feature-creep or alternatives**.
### ⚠️ Breaking
`gitea-actions` will become a reserved user name. If a user with the
name already exists in the database, it is recommended to rename it.
### Some important reviews
- What is `DEFAULT_ACTIONS_URL` in `app.ini` for?
- https://github.com/go-gitea/gitea/pull/21937#discussion_r1055954954
- Why the api for runners is not under the normal `/api/v1` prefix?
- https://github.com/go-gitea/gitea/pull/21937#discussion_r1061173592
- Why DBFS?
- https://github.com/go-gitea/gitea/pull/21937#discussion_r1061301178
- Why ignore events triggered by `gitea-actions` bot?
- https://github.com/go-gitea/gitea/pull/21937#discussion_r1063254103
- Why there's no permission control for actions?
- https://github.com/go-gitea/gitea/pull/21937#discussion_r1090229868
### What it looks like
<details>
#### Manage runners
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205870657-c72f590e-2e08-4cd4-be7f-2e0abb299bbf.png">
#### List runs
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205872794-50fde990-2b45-48c1-a178-908e4ec5b627.png">
#### View logs
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205872501-9b7b9000-9542-4991-8f55-18ccdada77c3.png">
</details>
### How to try it
<details>
#### 1. Start Gitea
Clone this branch and [install from
source](https://docs.gitea.io/en-us/install-from-source).
Add additional configurations in `app.ini` to enable Actions:
```ini
[actions]
ENABLED = true
```
Start it.
If all is well, you'll see the management page of runners:
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205877365-8e30a780-9b10-4154-b3e8-ee6c3cb35a59.png">
#### 2. Start runner
Clone the [act_runner](https://gitea.com/gitea/act_runner), and follow
the
[README](https://gitea.com/gitea/act_runner/src/branch/main/README.md)
to start it.
If all is well, you'll see a new runner has been added:
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205878000-216f5937-e696-470d-b66c-8473987d91c3.png">
#### 3. Enable actions for a repo
Create a new repo or open an existing one, check the `Actions` checkbox
in settings and submit.
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205879705-53e09208-73c0-4b3e-a123-2dcf9aba4b9c.png">
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205879383-23f3d08f-1a85-41dd-a8b3-54e2ee6453e8.png">
If all is well, you'll see a new tab "Actions":
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205881648-a8072d8c-5803-4d76-b8a8-9b2fb49516c1.png">
#### 4. Upload workflow files
Upload some workflow files to `.gitea/workflows/xxx.yaml`, you can
follow the [quickstart](https://docs.github.com/en/actions/quickstart)
of GitHub Actions. Yes, Gitea Actions is compatible with GitHub Actions
in most cases, you can use the same demo:
```yaml
name: GitHub Actions Demo
run-name: ${{ github.actor }} is testing out GitHub Actions 🚀
on: [push]
jobs:
Explore-GitHub-Actions:
runs-on: ubuntu-latest
steps:
- run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event."
- run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by GitHub!"
- run: echo "🔎 The name of your branch is ${{ github.ref }} and your repository is ${{ github.repository }}."
- name: Check out repository code
uses: actions/checkout@v3
- run: echo "💡 The ${{ github.repository }} repository has been cloned to the runner."
- run: echo "🖥️ The workflow is now ready to test your code on the runner."
- name: List files in the repository
run: |
ls ${{ github.workspace }}
- run: echo "🍏 This job's status is ${{ job.status }}."
```
If all is well, you'll see a new run in `Actions` tab:
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205884473-79a874bc-171b-4aaf-acd5-0241a45c3b53.png">
#### 5. Check the logs of jobs
Click a run and you'll see the logs:
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205884800-994b0374-67f7-48ff-be9a-4c53f3141547.png">
#### 6. Go on
You can try more examples in [the
documents](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions)
of GitHub Actions, then you might find a lot of bugs.
Come on, PRs are welcome.
</details>
See also: [Feature Preview: Gitea
Actions](https://blog.gitea.io/2022/12/feature-preview-gitea-actions/)
---------
Co-authored-by: a1012112796 <1012112796@qq.com>
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
Co-authored-by: delvh <dev.lh@web.de>
Co-authored-by: ChristopherHX <christopher.homberger@web.de>
Co-authored-by: John Olheiser <john.olheiser@gmail.com>
2023-01-30 20:45:19 -05:00
dashboard.stop_zombie_tasks = Stop zombie tasks
dashboard.stop_endless_tasks = Stop endless tasks
dashboard.cancel_abandoned_jobs = Cancel abandoned jobs
2014-08-28 10:29:00 -04:00
2018-04-19 10:24:31 -04:00
users.user_manage_panel = User Account Management
users.new_account = Create User Account
users.name = Username
2020-03-02 13:25:36 -05:00
users.full_name = Full Name
2014-08-29 03:32:52 -04:00
users.activated = Activated
users.admin = Admin
2020-01-13 12:33:46 -05:00
users.restricted = Restricted
2020-08-19 21:53:49 -04:00
users.2fa = 2FA
2014-08-29 03:32:52 -04:00
users.repos = Repos
users.created = Created
2018-04-19 10:24:31 -04:00
users.last_login = Last Sign-In
users.never_login = Never Signed-In
users.send_register_notify = Send User Registration Notification
2023-04-17 18:04:26 -04:00
users.new_success = The user account "%s" has been created.
2014-08-29 03:32:52 -04:00
users.edit = Edit
2015-09-07 11:51:53 -04:00
users.auth_source = Authentication Source
2014-08-29 03:32:52 -04:00
users.local = Local
2018-04-19 10:24:31 -04:00
users.auth_login_name = Authentication Sign-In Name
users.password_helper = Leave the password empty to keep it unchanged.
users.update_profile_success = The user account has been updated.
users.edit_account = Edit User Account
2019-11-12 10:47:29 -05:00
users.max_repo_creation = Maximum Number of Repositories
2018-04-19 10:24:31 -04:00
users.max_repo_creation_desc = (Enter -1 to use the global default limit.)
users.is_activated = User Account Is Activated
users.prohibit_login = Disable Sign-In
users.is_admin = Is Administrator
2020-01-13 12:33:46 -05:00
users.is_restricted = Is Restricted
2018-04-19 10:24:31 -04:00
users.allow_git_hook = May Create Git Hooks
2020-10-07 05:55:13 -04:00
users.allow_git_hook_tooltip = Git Hooks are executed as the OS user running Gitea and will have the same level of host access. As a result, users with this special Git Hook privilege can access and modify all Gitea repositories as well as the database used by Gitea. Consequently they are also able to gain Gitea administrator privileges.
2018-04-19 10:24:31 -04:00
users.allow_import_local = May Import Local Repositories
users.allow_create_organization = May Create Organizations
users.update_profile = Update User Account
users.delete_account = Delete User Account
2022-05-08 16:22:55 -04:00
users.cannot_delete_self = "You cannot delete yourself"
2018-04-19 10:24:31 -04:00
users.still_own_repo = This user still owns one or more repositories. Delete or transfer these repositories first.
users.still_has_org = This user is a member of an organization. Remove the user from any organizations first.
2022-07-14 03:22:09 -04:00
users.purge = Purge User
users.purge_help = Forcibly delete user and any repositories, organizations, and packages owned by the user. All comments will be deleted too.
2023-03-23 13:27:03 -04:00
users.still_own_packages = This user still owns one or more packages, delete these packages first.
2018-04-19 10:24:31 -04:00
users.deletion_success = The user account has been deleted.
2021-01-05 08:54:48 -05:00
users.reset_2fa = Reset 2FA
2021-10-12 14:11:35 -04:00
users.list_status_filter.menu_text = Filter
users.list_status_filter.reset = Reset
users.list_status_filter.is_active = Active
users.list_status_filter.not_active = Inactive
users.list_status_filter.is_admin = Admin
users.list_status_filter.not_admin = Not Admin
users.list_status_filter.is_restricted = Restricted
users.list_status_filter.not_restricted = Not Restricted
users.list_status_filter.is_prohibit_login = Prohibit Login
users.list_status_filter.not_prohibit_login = Allow Login
users.list_status_filter.is_2fa_enabled = 2FA Enabled
users.list_status_filter.not_2fa_enabled = 2FA Disabled
2014-08-29 03:32:52 -04:00
2020-03-02 13:25:36 -05:00
emails.email_manage_panel = User Email Management
emails.primary = Primary
emails.activated = Activated
emails.filter_sort.email = Email
emails.filter_sort.email_reverse = Email (reverse)
emails.filter_sort.name = User Name
emails.filter_sort.name_reverse = User Name (reverse)
emails.updated = Email updated
emails.not_updated = Failed to update the requested email address: %v
emails.duplicate_active = This email address is already active for a different user.
emails.change_email_header = Update Email Properties
emails.change_email_text = Are your sure you want to update this email address?
2017-05-17 21:03:43 -04:00
orgs.org_manage_panel = Organization Management
2014-08-29 08:50:43 -04:00
orgs.name = Name
orgs.teams = Teams
orgs.members = Members
2018-04-19 10:24:31 -04:00
orgs.new_orga = New Organization
2014-08-29 08:50:43 -04:00
2017-05-17 21:03:43 -04:00
repos.repo_manage_panel = Repository Management
2020-09-25 00:09:23 -04:00
repos.unadopted = Unadopted Repositories
repos.unadopted.no_more = No more unadopted repositories found
2014-08-29 08:50:43 -04:00
repos.owner = Owner
repos.name = Name
repos.private = Private
repos.watches = Watches
repos.stars = Stars
2018-05-23 21:03:42 -04:00
repos.forks = Forks
2014-08-29 08:50:43 -04:00
repos.issues = Issues
2017-04-11 09:30:15 -04:00
repos.size = Size
2014-08-29 08:50:43 -04:00
2022-03-30 04:42:47 -04:00
packages.package_manage_panel = Package Management
packages.total_size = Total Size: %s
2023-01-18 10:52:04 -05:00
packages.unreferenced_size = Unreferenced Size: %s
2022-03-30 04:42:47 -04:00
packages.owner = Owner
packages.creator = Creator
packages.name = Name
packages.version = Version
packages.type = Type
packages.repository = Repository
packages.size = Size
packages.published = Published
2021-01-14 18:24:03 -05:00
defaulthooks = Default Webhooks
defaulthooks.desc = Webhooks automatically make HTTP POST requests to a server when certain Gitea 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://docs.gitea.io/en-us/webhooks/">webhooks guide</a>.
defaulthooks.add_webhook = Add Default Webhook
defaulthooks.update_webhook = Update Default Webhook
2019-03-18 22:33:20 -04:00
2021-01-14 18:24:03 -05:00
systemhooks = System Webhooks
systemhooks.desc = Webhooks automatically make HTTP POST requests to a server when certain Gitea 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://docs.gitea.io/en-us/webhooks/">webhooks guide</a>.
2020-03-08 18:08:05 -04:00
systemhooks.add_webhook = Add System Webhook
systemhooks.update_webhook = Update System Webhook
2018-04-19 10:24:31 -04:00
auths.auth_manage_panel = Authentication Source Management
auths.new = Add Authentication Source
2014-08-29 08:50:43 -04:00
auths.name = Name
auths.type = Type
auths.enabled = Enabled
2018-04-19 10:24:31 -04:00
auths.syncenabled = Enable User Synchronization
2014-08-29 08:50:43 -04:00
auths.updated = Updated
2015-09-07 11:51:53 -04:00
auths.auth_type = Authentication Type
auths.auth_name = Authentication Name
2016-07-07 19:25:09 -04:00
auths.security_protocol = Security Protocol
2014-08-29 08:50:43 -04:00
auths.domain = Domain
auths.host = Host
auths.port = Port
2015-08-12 19:58:27 -04:00
auths.bind_dn = Bind DN
auths.bind_password = Bind Password
auths.user_base = User Search Base
2015-09-04 23:39:23 -04:00
auths.user_dn = User DN
2018-04-19 10:24:31 -04:00
auths.attribute_username = Username Attribute
auths.attribute_username_placeholder = Leave empty to use the username entered in Gitea.
auths.attribute_name = First Name Attribute
auths.attribute_surname = Surname Attribute
auths.attribute_mail = Email Attribute
2018-05-24 00:59:02 -04:00
auths.attribute_ssh_public_key = Public SSH Key Attribute
2021-09-26 22:39:36 -04:00
auths.attribute_avatar = Avatar Attribute
2018-04-19 10:24:31 -04:00
auths.attributes_in_bind = Fetch Attributes in Bind DN Context
2020-01-19 22:47:39 -05:00
auths.allow_deactivate_all = Allow an empty search result to deactivate all users
2018-05-08 08:40:52 -04:00
auths.use_paged_search = Use Paged Search
auths.search_page_size = Page Size
2015-08-12 19:58:27 -04:00
auths.filter = User Filter
2015-08-19 00:34:03 -04:00
auths.admin_filter = Admin Filter
2020-03-05 01:30:33 -05:00
auths.restricted_filter = Restricted Filter
auths.restricted_filter_helper = Leave empty to not set any users as restricted. Use an asterisk ('*') to set all users that do not match Admin Filter as restricted.
2022-02-11 09:24:58 -05:00
auths.verify_group_membership = Verify group membership in LDAP (leave the filter empty to skip)
2020-09-10 11:30:07 -04:00
auths.group_search_base = Group Search Base DN
auths.group_attribute_list_users = Group Attribute Containing List Of Users
auths.user_attribute_in_group = User Attribute Listed In Group
2022-02-11 09:24:58 -05:00
auths.map_group_to_team = Map LDAP groups to Organization teams (leave the field empty to skip)
auths.map_group_to_team_removal = Remove users from synchronized teams if user does not belong to corresponding LDAP group
auths.enable_ldap_groups = Enable LDAP groups
2018-01-01 21:37:16 -05:00
auths.ms_ad_sa = MS AD Search Attributes
2015-09-07 11:51:53 -04:00
auths.smtp_auth = SMTP Authentication Type
2014-08-29 08:50:43 -04:00
auths.smtphost = SMTP Host
auths.smtpport = SMTP Port
2015-09-11 13:32:33 -04:00
auths.allowed_domains = Allowed Domains
2018-04-19 10:24:31 -04:00
auths.allowed_domains_helper = Leave empty to allow all domains. Separate multiple domains with a comma (',').
2015-08-29 03:45:58 -04:00
auths.skip_tls_verify = Skip TLS Verify
2021-08-11 16:42:58 -04:00
auths.force_smtps = Force SMTPS
2021-08-14 10:10:39 -04:00
auths.force_smtps_helper = SMTPS is always used on port 465. Set this to force SMTPS on other ports. (Otherwise STARTTLS will be used on other ports if it is supported by the host.)
2021-08-11 16:42:58 -04:00
auths.helo_hostname = HELO Hostname
auths.helo_hostname_helper = Hostname sent with HELO. Leave blank to send current hostname.
auths.disable_helo = Disable HELO
2015-04-23 07:58:57 -04:00
auths.pam_service_name = PAM Service Name
2021-05-13 18:11:47 -04:00
auths.pam_email_domain = PAM Email Domain (optional)
2017-05-01 09:26:53 -04:00
auths.oauth2_provider = OAuth2 Provider
2020-12-27 21:35:55 -05:00
auths.oauth2_icon_url = Icon URL
2017-02-22 02:14:37 -05:00
auths.oauth2_clientID = Client ID (Key)
auths.oauth2_clientSecret = Client Secret
2017-05-01 09:26:53 -04:00
auths.openIdConnectAutoDiscoveryURL = OpenID Connect Auto Discovery URL
2018-04-19 10:24:31 -04:00
auths.oauth2_use_custom_url = Use Custom URLs Instead of Default URLs
2017-05-01 09:26:53 -04:00
auths.oauth2_tokenURL = Token URL
auths.oauth2_authURL = Authorize URL
auths.oauth2_profileURL = Profile URL
auths.oauth2_emailURL = Email URL
2021-09-10 12:37:57 -04:00
auths.skip_local_two_fa = Skip local 2FA
auths.skip_local_two_fa_helper = Leaving unset means local users with 2FA set will still have to pass 2FA to log on
2021-08-05 21:11:08 -04:00
auths.oauth2_tenant = Tenant
2021-12-14 03:37:11 -05:00
auths.oauth2_scopes = Additional Scopes
auths.oauth2_required_claim_name = Required Claim Name
auths.oauth2_required_claim_name_helper = Set this name to restrict login from this source to users with a claim with this name
auths.oauth2_required_claim_value = Required Claim Value
auths.oauth2_required_claim_value_helper = Set this value to restrict login from this source to users with a claim with this name and value
2021-12-16 14:01:14 -05:00
auths.oauth2_group_claim_name = Claim name providing group names for this source. (Optional)
auths.oauth2_admin_group = Group Claim value for administrator users. (Optional - requires claim name above)
auths.oauth2_restricted_group = Group Claim value for restricted users. (Optional - requires claim name above)
2023-02-08 01:44:42 -05:00
auths.oauth2_map_group_to_team = Map claimed groups to Organization teams. (Optional - requires claim name above)
auths.oauth2_map_group_to_team_removal = Remove users from synchronized teams if user does not belong to corresponding group.
2014-08-29 08:50:43 -04:00
auths.enable_auto_register = Enable Auto Registration
2019-11-22 18:33:31 -05:00
auths.sspi_auto_create_users = Automatically create users
auths.sspi_auto_create_users_helper = Allow SSPI auth method to automatically create new accounts for users that login for the first time
auths.sspi_auto_activate_users = Automatically activate users
auths.sspi_auto_activate_users_helper = Allow SSPI auth method to automatically activate new users
auths.sspi_strip_domain_names = Remove domain names from usernames
auths.sspi_strip_domain_names_helper = If checked, domain names will be removed from logon names (eg. "DOMAIN\user" and "user@example.org" both will become just "user").
auths.sspi_separator_replacement = Separator to use instead of \, / and @
auths.sspi_separator_replacement_helper = The character to use to replace the separators of down-level logon names (eg. the \ in "DOMAIN\user") and user principal names (eg. the @ in "user@example.org").
auths.sspi_default_language = Default user language
auths.sspi_default_language_helper = Default language for users automatically created by SSPI auth method. Leave empty if you prefer language to be automatically detected.
2014-08-29 08:50:43 -04:00
auths.tips = Tips
2017-05-01 09:26:53 -04:00
auths.tips.oauth2.general = OAuth2 Authentication
auths.tips.oauth2.general.tip = When registering a new OAuth2 authentication, the callback/redirect URL should be: <host>/user/oauth2/<Authentication Name>/callback
auths.tip.oauth2_provider = OAuth2 Provider
2018-04-19 10:24:31 -04:00
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'
2020-03-02 22:11:45 -05:00
auths.tip.nextcloud = Register a new OAuth consumer on your instance using the following menu "Settings -> Security -> OAuth 2.0 client"
2017-10-21 09:30:21 -04:00
auths.tip.dropbox = Create a new application at https://www.dropbox.com/developers/apps
2017-11-01 12:03:10 -04:00
auths.tip.facebook = Register a new application at https://developers.facebook.com/apps and add the product "Facebook Login"
2017-05-01 09:26:53 -04:00
auths.tip.github = Register a new OAuth application on https://github.com/settings/applications/new
auths.tip.gitlab = Register a new application on https://gitlab.com/profile/applications
2018-04-19 10:24:31 -04:00
auths.tip.google_plus = Obtain OAuth2 client credentials from the Google API console at https://console.developers.google.com/
2017-05-01 09:26:53 -04:00
auths.tip.openid_connect = Use the OpenID Connect Discovery URL (<server>/.well-known/openid-configuration) to specify the endpoints
2018-04-19 10:24:31 -04:00
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
2019-01-13 14:06:22 -05:00
auths.tip.discord = Register a new application on https://discordapp.com/developers/applications/me
2019-09-12 22:15:36 -04:00
auths.tip.gitea = Register a new OAuth2 application. Guide can be found at https://docs.gitea.io/en-us/oauth2-provider/
2020-03-04 17:08:52 -05:00
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"
2020-10-25 14:21:49 -04:00
auths.tip.mastodon = Input a custom instance URL for the mastodon instance you want to authenticate with (or use the default one)
2018-04-19 10:24:31 -04:00
auths.edit = Edit Authentication Source
auths.activated = This Authentication Source is Activated
2023-04-17 18:04:26 -04:00
auths.new_success = The authentication "%s" has been added.
2018-04-19 10:24:31 -04:00
auths.update_success = The authentication source has been updated.
auths.update = Update Authentication Source
auths.delete = Delete Authentication Source
2017-05-17 21:03:43 -04:00
auths.delete_auth_title = Delete Authentication Source
2018-04-19 10:24:31 -04:00
auths.delete_auth_desc = Deleting an authentication source prevents users from using it to sign in. Continue?
auths.still_in_used = The authentication source is still in use. Convert or delete any users using this authentication source first.
auths.deletion_success = The authentication source has been deleted.
2023-04-17 18:04:26 -04:00
auths.login_source_exist = The authentication source "%s" already exists.
2019-11-22 18:33:31 -05:00
auths.login_source_of_type_exist = An authentication source of this type already exists.
2023-03-10 01:14:43 -05:00
auths.unable_to_initialize_openid = Unable to initialize OpenID Connect Provider: %s
auths.invalid_openIdConnectAutoDiscoveryURL = Invalid Auto Discovery URL (this must be a valid URL starting with http:// or https://)
2014-08-29 08:50:43 -04:00
2014-08-30 08:49:51 -04:00
config.server_config = Server Configuration
2018-04-19 10:24:31 -04:00
config.app_name = Site Title
config.app_ver = Gitea Version
config.app_url = Gitea Base URL
2017-06-22 09:21:56 -04:00
config.custom_conf = Configuration File Path
2019-03-19 18:40:13 -04:00
config.custom_file_root_path = "Custom File Root Path"
2021-11-05 15:23:55 -04:00
config.domain = Server Domain
2018-04-19 10:24:31 -04:00
config.offline_mode = Local Mode
2014-08-30 08:49:51 -04:00
config.disable_router_log = Disable Router Log
2018-04-19 10:24:31 -04:00
config.run_user = Run As Username
2014-08-30 08:49:51 -04:00
config.run_mode = Run Mode
2017-02-13 06:49:42 -05:00
config.git_version = Git Version
2014-08-30 08:49:51 -04:00
config.repo_root_path = Repository Root Path
2016-12-25 20:16:37 -05:00
config.lfs_root_path = LFS Root Path
2014-08-30 08:49:51 -04:00
config.static_file_root_path = Static File Root Path
2018-04-19 10:24:31 -04:00
config.log_file_root_path = Log Path
2014-08-30 08:49:51 -04:00
config.script_type = Script Type
config.reverse_auth_user = Reverse Authentication User
2016-02-27 20:48:39 -05:00
config.ssh_config = SSH Configuration
config.ssh_enabled = Enabled
2018-04-19 10:24:31 -04:00
config.ssh_start_builtin_server = Use Built-In Server
2021-11-05 15:23:55 -04:00
config.ssh_domain = SSH Server Domain
2016-02-27 20:48:39 -05:00
config.ssh_port = Port
config.ssh_listen_port = Listen Port
config.ssh_root_path = Root Path
config.ssh_key_test_path = Key Test Path
config.ssh_keygen_path = Keygen ('ssh-keygen') Path
config.ssh_minimum_key_size_check = Minimum Key Size Check
config.ssh_minimum_key_sizes = Minimum Key Sizes
2019-06-16 14:24:49 -04:00
config.lfs_config = LFS Configuration
config.lfs_enabled = Enabled
config.lfs_content_path = LFS Content Path
config.lfs_http_auth_expiry = LFS HTTP Auth Expiry
2014-08-30 08:49:51 -04:00
config.db_config = Database Configuration
config.db_type = Type
config.db_host = Host
config.db_name = Name
2018-04-19 10:24:31 -04:00
config.db_user = Username
2020-01-20 10:45:14 -05:00
config.db_schema = Schema
2018-04-19 10:24:31 -04:00
config.db_ssl_mode = SSL
2014-08-30 08:49:51 -04:00
config.db_path = Path
2016-08-10 14:01:42 -04:00
2014-08-30 08:49:51 -04:00
config.service_config = Service Configuration
2018-04-19 10:24:31 -04:00
config.register_email_confirm = Require Email Confirmation to Register
config.disable_register = Disable Self-Registration
2021-05-09 10:13:35 -04:00
config.allow_only_internal_registration = Allow Registration Only Through Gitea itself
2018-07-20 12:40:08 -04:00
config.allow_only_external_registration = Allow Registration Only Through External Services
2018-04-19 10:24:31 -04:00
config.enable_openid_signup = Enable OpenID Self-Registration
config.enable_openid_signin = Enable OpenID Sign-In
2015-02-05 12:10:52 -05:00
config.show_registration_button = Show Register Button
2018-04-19 10:24:31 -04:00
config.require_sign_in_view = Require Sign-In to View Pages
config.mail_notify = Enable Email Notifications
2015-09-13 11:16:29 -04:00
config.disable_key_size_check = Disable Minimum Key Size Check
2018-04-19 10:24:31 -04:00
config.enable_captcha = Enable CAPTCHA
2014-08-30 08:49:51 -04:00
config.active_code_lives = Active Code Lives
2019-04-18 03:23:59 -04:00
config.reset_password_code_lives = Recover Account Code Expiry Time
2018-04-19 10:24:31 -04:00
config.default_keep_email_private = Hide Email Addresses by Default
config.default_allow_create_organization = Allow Creation of Organizations by Default
config.enable_timetracking = Enable Time Tracking
config.default_enable_timetracking = Enable Time Tracking by Default
config.default_allow_only_contributors_to_track_time = Let Only Contributors Track Time
config.no_reply_address = Hidden Email Domain
2019-02-18 11:00:27 -05:00
config.default_visibility_organization = Default visibility for new Organizations
2018-07-20 12:40:08 -04:00
config.default_enable_dependencies = Enable Issue Dependencies by Default
2016-08-10 14:01:42 -04:00
2014-08-30 08:49:51 -04:00
config.webhook_config = Webhook Configuration
2015-07-25 14:14:07 -04:00
config.queue_length = Queue Length
2014-08-30 08:49:51 -04:00
config.deliver_timeout = Deliver Timeout
2017-05-17 21:03:43 -04:00
config.skip_tls_verify = Skip TLS Verification
2016-08-10 14:01:42 -04:00
2022-08-02 12:43:27 -04:00
config.mailer_config = Mailer Configuration
2014-08-30 08:49:51 -04:00
config.mailer_enabled = Enabled
2022-08-02 12:43:27 -04:00
config.mailer_enable_helo = Enable HELO
2014-08-30 08:49:51 -04:00
config.mailer_name = Name
2022-08-02 12:43:27 -04:00
config.mailer_protocol = Protocol
config.mailer_smtp_addr = SMTP Addr
config.mailer_smtp_port = SMTP Port
2014-08-30 08:49:51 -04:00
config.mailer_user = User
2017-10-26 04:47:16 -04:00
config.mailer_use_sendmail = Use Sendmail
config.mailer_sendmail_path = Sendmail Path
2018-04-19 10:24:31 -04:00
config.mailer_sendmail_args = Extra Arguments to Sendmail
2020-05-02 19:04:31 -04:00
config.mailer_sendmail_timeout = Sendmail Timeout
2022-08-02 12:43:27 -04:00
config.mailer_use_dummy = Dummy
2020-08-10 22:38:30 -04:00
config.test_email_placeholder = Email (e.g. test@example.com)
2018-04-19 10:24:31 -04:00
config.send_test_mail = Send Testing Email
2023-04-27 21:48:41 -04:00
config.send_test_mail_submit = Send
2023-04-17 18:04:26 -04:00
config.test_mail_failed = Failed to send a testing email to "%s": %v
config.test_mail_sent = A testing email has been sent to "%s".
2016-08-10 14:01:42 -04:00
2014-08-30 08:49:51 -04:00
config.oauth_config = OAuth Configuration
config.oauth_enabled = Enabled
2016-08-10 14:01:42 -04:00
2014-08-30 08:49:51 -04:00
config.cache_config = Cache Configuration
config.cache_adapter = Cache Adapter
config.cache_interval = Cache Interval
config.cache_conn = Cache Connection
2019-05-06 10:35:11 -04:00
config.cache_item_ttl = Cache Item TTL
2016-08-10 14:01:42 -04:00
2014-08-30 08:49:51 -04:00
config.session_config = Session Configuration
config.session_provider = Session Provider
config.provider_config = Provider Config
config.cookie_name = Cookie Name
config.gc_interval_time = GC Interval Time
config.session_life_time = Session Life Time
config.https_only = HTTPS Only
config.cookie_life_time = Cookie Life Time
2016-08-10 14:01:42 -04:00
2018-04-19 10:24:31 -04:00
config.picture_config = Picture and Avatar Configuration
2014-08-30 08:49:51 -04:00
config.picture_service = Picture Service
config.disable_gravatar = Disable Gravatar
2016-08-07 13:27:38 -04:00
config.enable_federated_avatar = Enable Federated Avatars
2016-08-10 14:01:42 -04:00
config.git_config = Git Configuration
config.git_disable_diff_highlight = Disable Diff Syntax Highlight
config.git_max_diff_lines = Max Diff Lines (for a single file)
config.git_max_diff_line_characters = Max Diff Characters (for a single line)
config.git_max_diff_files = Max Diff Files (to be shown)
config.git_gc_args = GC Arguments
config.git_migrate_timeout = Migration Timeout
config.git_mirror_timeout = Mirror Update Timeout
config.git_clone_timeout = Clone Operation Timeout
config.git_pull_timeout = Pull Operation Timeout
config.git_gc_timeout = GC Operation Timeout
2014-08-30 08:49:51 -04:00
config.log_config = Log Configuration
Rewrite logger system (#24726)
## ⚠️ Breaking
The `log.<mode>.<logger>` style config has been dropped. If you used it,
please check the new config manual & app.example.ini to make your
instance output logs as expected.
Although many legacy options still work, it's encouraged to upgrade to
the new options.
The SMTP logger is deleted because SMTP is not suitable to collect logs.
If you have manually configured Gitea log options, please confirm the
logger system works as expected after upgrading.
## Description
Close #12082 and maybe more log-related issues, resolve some related
FIXMEs in old code (which seems unfixable before)
Just like rewriting queue #24505 : make code maintainable, clear legacy
bugs, and add the ability to support more writers (eg: JSON, structured
log)
There is a new document (with examples): `logging-config.en-us.md`
This PR is safer than the queue rewriting, because it's just for
logging, it won't break other logic.
## The old problems
The logging system is quite old and difficult to maintain:
* Unclear concepts: Logger, NamedLogger, MultiChannelledLogger,
SubLogger, EventLogger, WriterLogger etc
* Some code is diffuclt to konw whether it is right:
`log.DelNamedLogger("console")` vs `log.DelNamedLogger(log.DEFAULT)` vs
`log.DelLogger("console")`
* The old system heavily depends on ini config system, it's difficult to
create new logger for different purpose, and it's very fragile.
* The "color" trick is difficult to use and read, many colors are
unnecessary, and in the future structured log could help
* It's difficult to add other log formats, eg: JSON format
* The log outputer doesn't have full control of its goroutine, it's
difficult to make outputer have advanced behaviors
* The logs could be lost in some cases: eg: no Fatal error when using
CLI.
* Config options are passed by JSON, which is quite fragile.
* INI package makes the KEY in `[log]` section visible in `[log.sub1]`
and `[log.sub1.subA]`, this behavior is quite fragile and would cause
more unclear problems, and there is no strong requirement to support
`log.<mode>.<logger>` syntax.
## The new design
See `logger.go` for documents.
## Screenshot
<details>
![image](https://github.com/go-gitea/gitea/assets/2114189/4462d713-ba39-41f5-bb08-de912e67e1ff)
![image](https://github.com/go-gitea/gitea/assets/2114189/b188035e-f691-428b-8b2d-ff7b2199b2f9)
![image](https://github.com/go-gitea/gitea/assets/2114189/132e9745-1c3b-4e00-9e0d-15eaea495dee)
</details>
## TODO
* [x] add some new tests
* [x] fix some tests
* [x] test some sub-commands (manually ....)
---------
Co-authored-by: Jason Song <i@wolfogre.com>
Co-authored-by: delvh <dev.lh@web.de>
Co-authored-by: Giteabot <teabot@gitea.io>
2023-05-21 18:35:11 -04:00
config.logger_name_fmt = Logger: %s
2019-04-02 03:48:31 -04:00
config.disabled_logger = Disabled
config.access_log_mode = Access Log Mode
Rewrite logger system (#24726)
## ⚠️ Breaking
The `log.<mode>.<logger>` style config has been dropped. If you used it,
please check the new config manual & app.example.ini to make your
instance output logs as expected.
Although many legacy options still work, it's encouraged to upgrade to
the new options.
The SMTP logger is deleted because SMTP is not suitable to collect logs.
If you have manually configured Gitea log options, please confirm the
logger system works as expected after upgrading.
## Description
Close #12082 and maybe more log-related issues, resolve some related
FIXMEs in old code (which seems unfixable before)
Just like rewriting queue #24505 : make code maintainable, clear legacy
bugs, and add the ability to support more writers (eg: JSON, structured
log)
There is a new document (with examples): `logging-config.en-us.md`
This PR is safer than the queue rewriting, because it's just for
logging, it won't break other logic.
## The old problems
The logging system is quite old and difficult to maintain:
* Unclear concepts: Logger, NamedLogger, MultiChannelledLogger,
SubLogger, EventLogger, WriterLogger etc
* Some code is diffuclt to konw whether it is right:
`log.DelNamedLogger("console")` vs `log.DelNamedLogger(log.DEFAULT)` vs
`log.DelLogger("console")`
* The old system heavily depends on ini config system, it's difficult to
create new logger for different purpose, and it's very fragile.
* The "color" trick is difficult to use and read, many colors are
unnecessary, and in the future structured log could help
* It's difficult to add other log formats, eg: JSON format
* The log outputer doesn't have full control of its goroutine, it's
difficult to make outputer have advanced behaviors
* The logs could be lost in some cases: eg: no Fatal error when using
CLI.
* Config options are passed by JSON, which is quite fragile.
* INI package makes the KEY in `[log]` section visible in `[log.sub1]`
and `[log.sub1.subA]`, this behavior is quite fragile and would cause
more unclear problems, and there is no strong requirement to support
`log.<mode>.<logger>` syntax.
## The new design
See `logger.go` for documents.
## Screenshot
<details>
![image](https://github.com/go-gitea/gitea/assets/2114189/4462d713-ba39-41f5-bb08-de912e67e1ff)
![image](https://github.com/go-gitea/gitea/assets/2114189/b188035e-f691-428b-8b2d-ff7b2199b2f9)
![image](https://github.com/go-gitea/gitea/assets/2114189/132e9745-1c3b-4e00-9e0d-15eaea495dee)
</details>
## TODO
* [x] add some new tests
* [x] fix some tests
* [x] test some sub-commands (manually ....)
---------
Co-authored-by: Jason Song <i@wolfogre.com>
Co-authored-by: delvh <dev.lh@web.de>
Co-authored-by: Giteabot <teabot@gitea.io>
2023-05-21 18:35:11 -04:00
config.access_log_template = Access Log Template
2019-04-02 03:48:31 -04:00
config.xorm_log_sql = Log SQL
2014-08-30 08:49:51 -04:00
2022-10-16 19:29:26 -04:00
config.get_setting_failed = Get setting %s failed
config.set_setting_failed = Set setting %s failed
2023-06-03 10:03:41 -04:00
monitor.stats = Stats
2014-08-30 08:49:51 -04:00
monitor.cron = Cron Tasks
monitor.name = Name
monitor.schedule = Schedule
monitor.next = Next Time
monitor.previous = Previous Time
2018-04-19 10:24:31 -04:00
monitor.execute_times = Executions
2014-08-30 08:49:51 -04:00
monitor.process = Running Processes
Improve queue & process & stacktrace (#24636)
Although some features are mixed together in this PR, this PR is not
that large, and these features are all related.
Actually there are more than 70 lines are for a toy "test queue", so
this PR is quite simple.
Major features:
1. Allow site admin to clear a queue (remove all items in a queue)
* Because there is no transaction, the "unique queue" could be corrupted
in rare cases, that's unfixable.
* eg: the item is in the "set" but not in the "list", so the item would
never be able to be pushed into the queue.
* Now site admin could simply clear the queue, then everything becomes
correct, the lost items could be re-pushed into queue by future
operations.
3. Split the "admin/monitor" to separate pages
4. Allow to download diagnosis report
* In history, there were many users reporting that Gitea queue gets
stuck, or Gitea's CPU is 100%
* With diagnosis report, maintainers could know what happens clearly
The diagnosis report sample:
[gitea-diagnosis-20230510-192913.zip](https://github.com/go-gitea/gitea/files/11441346/gitea-diagnosis-20230510-192913.zip)
, use "go tool pprof profile.dat" to view the report.
Screenshots:
![image](https://github.com/go-gitea/gitea/assets/2114189/320659b4-2eda-4def-8dc0-5ea08d578063)
![image](https://github.com/go-gitea/gitea/assets/2114189/c5c46fae-9dc0-44ca-8cd3-57beedc5035e)
![image](https://github.com/go-gitea/gitea/assets/2114189/6168a811-42a1-4e64-a263-0617a6c8c4fe)
---------
Co-authored-by: Jason Song <i@wolfogre.com>
Co-authored-by: Giteabot <teabot@gitea.io>
2023-05-11 03:45:47 -04:00
monitor.stacktrace = Stacktrace
monitor.processes_count = %d Processes
monitor.download_diagnosis_report = Download diagnosis report
2014-08-30 08:49:51 -04:00
monitor.desc = Description
monitor.start = Start Time
monitor.execute_time = Execution Time
2022-03-28 21:31:07 -04:00
monitor.last_execution_result = Result
2019-11-30 09:40:22 -05:00
monitor.process.cancel = Cancel process
monitor.process.cancel_desc = Cancelling a process may cause data loss
monitor.process.cancel_notices = Cancel: <strong>%s</strong>?
2021-11-30 15:06:32 -05:00
monitor.process.children = Children
Improve queue & process & stacktrace (#24636)
Although some features are mixed together in this PR, this PR is not
that large, and these features are all related.
Actually there are more than 70 lines are for a toy "test queue", so
this PR is quite simple.
Major features:
1. Allow site admin to clear a queue (remove all items in a queue)
* Because there is no transaction, the "unique queue" could be corrupted
in rare cases, that's unfixable.
* eg: the item is in the "set" but not in the "list", so the item would
never be able to be pushed into the queue.
* Now site admin could simply clear the queue, then everything becomes
correct, the lost items could be re-pushed into queue by future
operations.
3. Split the "admin/monitor" to separate pages
4. Allow to download diagnosis report
* In history, there were many users reporting that Gitea queue gets
stuck, or Gitea's CPU is 100%
* With diagnosis report, maintainers could know what happens clearly
The diagnosis report sample:
[gitea-diagnosis-20230510-192913.zip](https://github.com/go-gitea/gitea/files/11441346/gitea-diagnosis-20230510-192913.zip)
, use "go tool pprof profile.dat" to view the report.
Screenshots:
![image](https://github.com/go-gitea/gitea/assets/2114189/320659b4-2eda-4def-8dc0-5ea08d578063)
![image](https://github.com/go-gitea/gitea/assets/2114189/c5c46fae-9dc0-44ca-8cd3-57beedc5035e)
![image](https://github.com/go-gitea/gitea/assets/2114189/6168a811-42a1-4e64-a263-0617a6c8c4fe)
---------
Co-authored-by: Jason Song <i@wolfogre.com>
Co-authored-by: Giteabot <teabot@gitea.io>
2023-05-11 03:45:47 -04:00
2020-01-07 06:23:09 -05:00
monitor.queues = Queues
monitor.queue = Queue: %s
monitor.queue.name = Name
monitor.queue.type = Type
monitor.queue.exemplar = Exemplar Type
monitor.queue.numberworkers = Number of Workers
monitor.queue.maxnumberworkers = Max Number of Workers
2022-02-12 00:31:26 -05:00
monitor.queue.numberinqueue = Number in Queue
2020-01-07 06:23:09 -05:00
monitor.queue.review = Review Config
monitor.queue.review_add = Review/Add Workers
monitor.queue.settings.title = Pool Settings
Improve queue & process & stacktrace (#24636)
Although some features are mixed together in this PR, this PR is not
that large, and these features are all related.
Actually there are more than 70 lines are for a toy "test queue", so
this PR is quite simple.
Major features:
1. Allow site admin to clear a queue (remove all items in a queue)
* Because there is no transaction, the "unique queue" could be corrupted
in rare cases, that's unfixable.
* eg: the item is in the "set" but not in the "list", so the item would
never be able to be pushed into the queue.
* Now site admin could simply clear the queue, then everything becomes
correct, the lost items could be re-pushed into queue by future
operations.
3. Split the "admin/monitor" to separate pages
4. Allow to download diagnosis report
* In history, there were many users reporting that Gitea queue gets
stuck, or Gitea's CPU is 100%
* With diagnosis report, maintainers could know what happens clearly
The diagnosis report sample:
[gitea-diagnosis-20230510-192913.zip](https://github.com/go-gitea/gitea/files/11441346/gitea-diagnosis-20230510-192913.zip)
, use "go tool pprof profile.dat" to view the report.
Screenshots:
![image](https://github.com/go-gitea/gitea/assets/2114189/320659b4-2eda-4def-8dc0-5ea08d578063)
![image](https://github.com/go-gitea/gitea/assets/2114189/c5c46fae-9dc0-44ca-8cd3-57beedc5035e)
![image](https://github.com/go-gitea/gitea/assets/2114189/6168a811-42a1-4e64-a263-0617a6c8c4fe)
---------
Co-authored-by: Jason Song <i@wolfogre.com>
Co-authored-by: Giteabot <teabot@gitea.io>
2023-05-11 03:45:47 -04:00
monitor.queue.settings.desc = Pools dynamically grow in response to their worker queue blocking.
2020-01-07 06:23:09 -05:00
monitor.queue.settings.maxnumberworkers = Max Number of workers
monitor.queue.settings.maxnumberworkers.placeholder = Currently %[1]d
monitor.queue.settings.maxnumberworkers.error = Max number of workers must be a number
monitor.queue.settings.submit = Update Settings
monitor.queue.settings.changed = Settings Updated
Improve queue & process & stacktrace (#24636)
Although some features are mixed together in this PR, this PR is not
that large, and these features are all related.
Actually there are more than 70 lines are for a toy "test queue", so
this PR is quite simple.
Major features:
1. Allow site admin to clear a queue (remove all items in a queue)
* Because there is no transaction, the "unique queue" could be corrupted
in rare cases, that's unfixable.
* eg: the item is in the "set" but not in the "list", so the item would
never be able to be pushed into the queue.
* Now site admin could simply clear the queue, then everything becomes
correct, the lost items could be re-pushed into queue by future
operations.
3. Split the "admin/monitor" to separate pages
4. Allow to download diagnosis report
* In history, there were many users reporting that Gitea queue gets
stuck, or Gitea's CPU is 100%
* With diagnosis report, maintainers could know what happens clearly
The diagnosis report sample:
[gitea-diagnosis-20230510-192913.zip](https://github.com/go-gitea/gitea/files/11441346/gitea-diagnosis-20230510-192913.zip)
, use "go tool pprof profile.dat" to view the report.
Screenshots:
![image](https://github.com/go-gitea/gitea/assets/2114189/320659b4-2eda-4def-8dc0-5ea08d578063)
![image](https://github.com/go-gitea/gitea/assets/2114189/c5c46fae-9dc0-44ca-8cd3-57beedc5035e)
![image](https://github.com/go-gitea/gitea/assets/2114189/6168a811-42a1-4e64-a263-0617a6c8c4fe)
---------
Co-authored-by: Jason Song <i@wolfogre.com>
Co-authored-by: Giteabot <teabot@gitea.io>
2023-05-11 03:45:47 -04:00
monitor.queue.settings.remove_all_items = Remove all
monitor.queue.settings.remove_all_items_done = All items in the queue have been removed.
2014-08-30 08:49:51 -04:00
2014-10-08 18:29:18 -04:00
notices.system_notice_list = System Notices
2017-05-10 21:03:34 -04:00
notices.view_detail_header = View Notice Details
2022-12-08 08:14:09 -05:00
notices.operations = Operations
2015-12-05 01:09:14 -05:00
notices.select_all = Select All
notices.deselect_all = Deselect All
notices.inverse_selection = Inverse Selection
notices.delete_selected = Delete Selected
notices.delete_all = Delete All Notices
2014-10-08 18:29:18 -04:00
notices.type = Type
notices.type_1 = Repository
2020-05-16 19:31:38 -04:00
notices.type_2 = Task
2014-10-08 18:29:18 -04:00
notices.desc = Description
notices.op = Op.
2017-05-17 21:03:43 -04:00
notices.delete_success = The system notices have been deleted.
2014-10-08 18:29:18 -04:00
2014-07-26 00:24:27 -04:00
[action]
2017-11-01 12:03:10 -04:00
create_repo = created repository <a href="%s">%s</a>
rename_repo = renamed repository from <code>%[1]s</code> to <a href="%[2]s">%[3]s</a>
2021-11-16 13:18:25 -05:00
commit_repo = pushed to <a href="%[2]s">%[3]s</a> at <a href="%[1]s">%[4]s</a>
create_issue = `opened issue <a href="%[1]s">%[3]s#%[2]s</a>`
close_issue = `closed issue <a href="%[1]s">%[3]s#%[2]s</a>`
reopen_issue = `reopened issue <a href="%[1]s">%[3]s#%[2]s</a>`
create_pull_request = `created pull request <a href="%[1]s">%[3]s#%[2]s</a>`
close_pull_request = `closed pull request <a href="%[1]s">%[3]s#%[2]s</a>`
reopen_pull_request = `reopened pull request <a href="%[1]s">%[3]s#%[2]s</a>`
comment_issue = `commented on issue <a href="%[1]s">%[3]s#%[2]s</a>`
comment_pull = `commented on pull request <a href="%[1]s">%[3]s#%[2]s</a>`
merge_pull_request = `merged pull request <a href="%[1]s">%[3]s#%[2]s</a>`
2022-11-03 11:49:00 -04:00
auto_merge_pull_request = `automatically merged pull request <a href="%[1]s">%[3]s#%[2]s</a>`
2017-11-01 12:03:10 -04:00
transfer_repo = transferred repository <code>%s</code> to <a href="%s">%s</a>
2021-11-16 13:18:25 -05:00
push_tag = pushed tag <a href="%[2]s">%[3]s</a> to <a href="%[1]s">%[4]s</a>
2017-11-01 12:03:10 -04:00
delete_tag = deleted tag %[2]s from <a href="%[1]s">%[3]s</a>
delete_branch = deleted branch %[2]s from <a href="%[1]s">%[3]s</a>
2020-05-04 18:44:30 -04:00
compare_branch = Compare
2017-05-17 21:03:43 -04:00
compare_commits = Compare %d commits
2019-06-29 05:18:49 -04:00
compare_commits_general = Compare commits
2021-11-16 13:18:25 -05:00
mirror_sync_push = synced commits to <a href="%[2]s">%[3]s</a> at <a href="%[1]s">%[4]s</a> from mirror
mirror_sync_create = synced new reference <a href="%[2]s">%[3]s</a> to <a href="%[1]s">%[4]s</a> from mirror
2018-09-06 22:06:09 -04:00
mirror_sync_delete = synced and deleted reference <code>%[2]s</code> at <a href="%[1]s">%[3]s</a> from mirror
2021-11-16 13:18:25 -05:00
approve_pull_request = `approved <a href="%[1]s">%[3]s#%[2]s</a>`
reject_pull_request = `suggested changes for <a href="%[1]s">%[3]s#%[2]s</a>`
publish_release = `released <a href="%[2]s"> "%[4]s" </a> at <a href="%[1]s">%[3]s</a>`
review_dismissed = `dismissed review from <b>%[4]s</b> for <a href="%[1]s">%[3]s#%[2]s</a>`
2021-02-11 12:32:25 -05:00
review_dismissed_reason = Reason:
2021-11-16 13:18:25 -05:00
create_branch = created branch <a href="%[2]s">%[3]s</a> in <a href="%[1]s">%[4]s</a>
2021-10-28 03:05:00 -04:00
starred_repo = starred <a href="%[1]s">%[2]s</a>
2021-10-16 10:21:16 -04:00
watched_repo = started watching <a href="%[1]s">%[2]s</a>
2014-07-26 00:24:27 -04:00
[tool]
now = now
2017-06-28 01:43:28 -04:00
future = future
1s = 1 second
1m = 1 minute
1h = 1 hour
1d = 1 day
1w = 1 week
1mon = 1 month
1y = 1 year
seconds = %d seconds
minutes = %d minutes
hours = %d hours
days = %d days
weeks = %d weeks
months = %d months
years = %d years
2014-08-30 08:49:51 -04:00
raw_seconds = seconds
raw_minutes = minutes
2015-08-11 05:54:00 -04:00
[dropzone]
2018-04-19 10:24:31 -04:00
default_message = Drop files or click here to upload.
2023-01-08 13:25:28 -05:00
invalid_input_type = You cannot upload files of this type.
2017-03-09 08:24:57 -05:00
file_too_big = File size ({{filesize}} MB) exceeds the maximum size of ({{maxFilesize}} MB).
2015-08-12 19:58:27 -04:00
remove_file = Remove file
2016-12-30 13:49:54 -05:00
[notification]
notifications = Notifications
unread = Unread
read = Read
2018-04-19 10:24:31 -04:00
no_unread = No unread notifications.
no_read = No read notifications.
2017-03-09 08:24:57 -05:00
pin = Pin notification
2017-01-17 20:18:55 -05:00
mark_as_read = Mark as read
mark_as_unread = Mark as unread
2017-12-07 00:52:57 -05:00
mark_all_as_read = Mark all as read
2022-09-29 15:09:14 -04:00
subscriptions = Subscriptions
watching = Watching
no_subscriptions = No subscriptions
2017-03-22 06:43:54 -04:00
[gpg]
2019-10-16 09:42:42 -04:00
default_key = Signed with default key
2017-03-22 06:43:54 -04:00
error.extract_sign = Failed to extract signature
error.generate_hash = Failed to generate hash of commit
2018-04-19 10:24:31 -04:00
error.no_committer_account = No account linked to committer's email address
2017-11-01 12:03:10 -04:00
error.no_gpg_keys_found = "No known key found for this signature in database"
error.not_signed_commit = "Not a signed commit"
2018-04-19 10:24:31 -04:00
error.failed_retrieval_gpg_keys = "Failed to retrieve any key attached to the committer's account"
2019-10-16 09:42:42 -04:00
error.probable_bad_signature = "WARNING! Although there is a key with this ID in the database it does not verify this commit! This commit is SUSPICIOUS."
error.probable_bad_default_signature = "WARNING! Although the default key has this ID it does not verify this commit! This commit is SUSPICIOUS."
2017-05-18 10:54:24 -04:00
[units]
2022-01-04 22:37:00 -05:00
unit = Unit
2018-04-19 10:24:31 -04:00
error.no_unit_allowed_repo = You are not allowed to access any section of this repository.
error.unit_not_allowed = You are not allowed to access this repository section.
2022-03-30 04:42:47 -04:00
[packages]
title = Packages
desc = Manage repository packages.
empty = There are no packages yet.
2023-05-01 03:17:27 -04:00
empty.documentation = For more information on the package registry, see <a target="_blank" rel="noopener noreferrer" href="%s">the documentation</a>.
2022-07-27 07:58:21 -04:00
empty.repo = Did you upload a package, but it's not shown here? Go to <a href="%[1]s">package settings</a> and link it to this repo.
2022-03-30 04:42:47 -04:00
filter.type = Type
filter.type.all = All
filter.no_result = Your filter produced no results.
filter.container.tagged = Tagged
filter.container.untagged = Untagged
published_by = Published %[1]s by <a href="%[2]s">%[3]s</a>
published_by_in = Published %[1]s by <a href="%[2]s">%[3]s</a> in <a href="%[4]s"><strong>%[5]s</strong></a>
installation = Installation
about = About this package
requirements = Requirements
dependencies = Dependencies
keywords = Keywords
details = Details
details.author = Author
details.project_site = Project Site
2023-02-05 20:49:21 -05:00
details.repository_site = Repository Site
details.documentation_site = Documentation Site
2022-03-30 04:42:47 -04:00
details.license = License
assets = Assets
versions = Versions
versions.view_all = View all
dependency.id = ID
dependency.version = Version
2023-05-12 13:27:50 -04:00
alpine.registry = Setup this registry by adding the url in your <code>/etc/apk/repositories</code> file:
alpine.registry.key = Download the registry public RSA key into the <code>/etc/apk/keys/</code> folder to verify the index signature:
alpine.registry.info = Choose $branch and $repository from the list below.
alpine.install = To install the package, run the following command:
alpine.documentation = For more information on the Alpine registry, see <a target="_blank" rel="noopener noreferrer" href="%s">the documentation</a>.
alpine.repository = Repository Info
alpine.repository.branches = Branches
alpine.repository.repositories = Repositories
alpine.repository.architectures = Architectures
2023-02-05 05:12:31 -05:00
cargo.registry = Setup this registry in the Cargo configuration file (for example <code>~/.cargo/config.toml</code>):
cargo.install = To install the package using Cargo, run the following command:
2023-05-01 03:17:27 -04:00
cargo.documentation = For more information on the Cargo registry, see <a target="_blank" rel="noopener noreferrer" href="%s">the documentation</a>.
2023-02-05 05:12:31 -05:00
cargo.details.repository_site = Repository Site
cargo.details.documentation_site = Documentation Site
2023-02-05 20:49:21 -05:00
chef.registry = Setup this registry in your <code>~/.chef/config.rb</code> file:
chef.install = To install the package, run the following command:
2023-05-01 03:17:27 -04:00
chef.documentation = For more information on the Chef registry, see <a target="_blank" rel="noopener noreferrer" href="%s">the documentation</a>.
2022-03-30 04:42:47 -04:00
composer.registry = Setup this registry in your <code>~/.composer/config.json</code> file:
composer.install = To install the package using Composer, run the following command:
2023-05-01 03:17:27 -04:00
composer.documentation = For more information on the Composer registry, see <a target="_blank" rel="noopener noreferrer" href="%s">the documentation</a>.
2022-03-30 04:42:47 -04:00
composer.dependencies = Dependencies
composer.dependencies.development = Development Dependencies
conan.details.repository = Repository
conan.registry = Setup this registry from the command line:
conan.install = To install the package using Conan, run the following command:
2023-05-01 03:17:27 -04:00
conan.documentation = For more information on the Conan registry, see <a target="_blank" rel="noopener noreferrer" href="%s">the documentation</a>.
2023-02-01 13:30:39 -05:00
conda.registry = Setup this registry as a Conda repository in your <code>.condarc</code> file:
conda.install = To install the package using Conda, run the following command:
2023-05-01 03:17:27 -04:00
conda.documentation = For more information on the Conda registry, see <a target="_blank" rel="noopener noreferrer" href="%s">the documentation</a>.
2023-02-01 13:30:39 -05:00
conda.details.repository_site = Repository Site
conda.details.documentation_site = Documentation Site
2022-03-30 04:42:47 -04:00
container.details.type = Image Type
container.details.platform = Platform
container.pull = Pull the image from the command line:
2022-09-14 16:45:13 -04:00
container.digest = Digest:
2023-05-01 03:17:27 -04:00
container.documentation = For more information on the Container registry, see <a target="_blank" rel="noopener noreferrer" href="%s">the documentation</a>.
2022-03-30 04:42:47 -04:00
container.multi_arch = OS / Arch
container.layers = Image Layers
container.labels = Labels
container.labels.key = Key
container.labels.value = Value
2023-05-21 22:57:49 -04:00
cran.registry = Setup this registry in your <code>Rprofile.site</code> file:
cran.install = To install the package, run the following command:
cran.documentation = For more information on the CRAN registry, see <a target="_blank" rel="noopener noreferrer" href="https://docs.gitea.io/en-us/packages/cran/">the documentation</a>.
2023-05-02 12:31:35 -04:00
debian.registry = Setup this registry from the command line:
debian.registry.info = Choose $distribution and $component from the list below.
debian.install = To install the package, run the following command:
debian.documentation = For more information on the Debian registry, see <a target="_blank" rel="noopener noreferrer" href="%s">the documentation</a>.
debian.repository = Repository Info
debian.repository.distributions = Distributions
debian.repository.components = Components
debian.repository.architectures = Architectures
2022-03-30 04:42:47 -04:00
generic.download = Download package from the command line:
2023-05-01 03:17:27 -04:00
generic.documentation = For more information on the generic registry, see <a target="_blank" rel="noopener noreferrer" href="%s">the documentation</a>.
2023-05-14 11:38:40 -04:00
go.install = Install the package from the command line:
go.documentation = For more information on the Go registry, see <a target="_blank" rel="noopener noreferrer" href="%s">the documentation</a>.
2022-04-19 12:55:35 -04:00
helm.registry = Setup this registry from the command line:
helm.install = To install the package, run the following command:
2023-05-01 03:17:27 -04:00
helm.documentation = For more information on the Helm registry, see <a target="_blank" rel="noopener noreferrer" href="%s">the documentation</a>.
2022-03-30 04:42:47 -04:00
maven.registry = Setup this registry in your project <code>pom.xml</code> file:
maven.install = To use the package include the following in the <code>dependencies</code> block in the <code>pom.xml</code> file:
maven.install2 = Run via command line:
maven.download = To download the dependency, run via command line:
2023-05-01 03:17:27 -04:00
maven.documentation = For more information on the Maven registry, see <a target="_blank" rel="noopener noreferrer" href="%s">the documentation</a>.
2022-03-30 04:42:47 -04:00
nuget.registry = Setup this registry from the command line:
nuget.install = To install the package using NuGet, run the following command:
2023-05-01 03:17:27 -04:00
nuget.documentation = For more information on the NuGet registry, see <a target="_blank" rel="noopener noreferrer" href="%s">the documentation</a>.
2022-03-30 04:42:47 -04:00
nuget.dependency.framework = Target Framework
npm.registry = Setup this registry in your project <code>.npmrc</code> file:
npm.install = To install the package using npm, run the following command:
npm.install2 = or add it to the package.json file:
2023-05-01 03:17:27 -04:00
npm.documentation = For more information on the npm registry, see <a target="_blank" rel="noopener noreferrer" href="%s">the documentation</a>.
2022-03-30 04:42:47 -04:00
npm.dependencies = Dependencies
npm.dependencies.development = Development Dependencies
npm.dependencies.peer = Peer Dependencies
npm.dependencies.optional = Optional Dependencies
npm.details.tag = Tag
2022-08-07 06:09:54 -04:00
pub.install = To install the package using Dart, run the following command:
2023-05-01 03:17:27 -04:00
pub.documentation = For more information on the Pub registry, see <a target="_blank" rel="noopener noreferrer" href="%s">the documentation</a>.
2022-03-30 04:42:47 -04:00
pypi.requires = Requires Python
pypi.install = To install the package using pip, run the following command:
2023-05-01 03:17:27 -04:00
pypi.documentation = For more information on the PyPI registry, see <a target="_blank" rel="noopener noreferrer" href="%s">the documentation</a>.
2023-05-05 16:33:37 -04:00
rpm.registry = Setup this registry from the command line:
rpm.install = To install the package, run the following command:
rpm.documentation = For more information on the RPM registry, see <a target="_blank" rel="noopener noreferrer" href="%s">the documentation</a>.
2022-03-30 04:42:47 -04:00
rubygems.install = To install the package using gem, run the following command:
rubygems.install2 = or add it to the Gemfile:
rubygems.dependencies.runtime = Runtime Dependencies
rubygems.dependencies.development = Development Dependencies
rubygems.required.ruby = Requires Ruby version
rubygems.required.rubygems = Requires RubyGem version
2023-05-01 03:17:27 -04:00
rubygems.documentation = For more information on the RubyGems registry, see <a target="_blank" rel="noopener noreferrer" href="%s">the documentation</a>.
2023-03-13 16:28:39 -04:00
swift.registry = Setup this registry from the command line:
swift.install = Add the package in your <code>Package.swift</code> file:
swift.install2 = and run the following command:
2023-05-01 03:17:27 -04:00
swift.documentation = For more information on the Swift registry, see <a target="_blank" rel="noopener noreferrer" href="%s">the documentation</a>.
2022-08-29 03:04:45 -04:00
vagrant.install = To add a Vagrant box, run the following command:
2023-05-01 03:17:27 -04:00
vagrant.documentation = For more information on the Vagrant registry, see <a target="_blank" rel="noopener noreferrer" href="%s">the documentation</a>.
2022-03-30 04:42:47 -04:00
settings.link = Link this package to a repository
settings.link.description = If you link a package with a repository, the package is listed in the repository's package list.
settings.link.select = Select Repository
settings.link.button = Update Repository Link
2022-04-26 06:54:40 -04:00
settings.link.success = Repository link was successfully updated.
2022-03-30 04:42:47 -04:00
settings.link.error = Failed to update repository link.
settings.delete = Delete package
settings.delete.description = Deleting a package is permanent and cannot be undone.
settings.delete.notice = You are about to delete %s (%s). This operation is irreversible, are you sure?
settings.delete.success = The package has been deleted.
2022-03-30 15:17:05 -04:00
settings.delete.error = Failed to delete the package.
2023-02-05 05:12:31 -05:00
owner.settings.cargo.title = Cargo Registry Index
owner.settings.cargo.initialize = Initialize Index
owner.settings.cargo.initialize.description = To use the Cargo registry a special index git repository is needed. Here you can (re)create it with the required config.
owner.settings.cargo.initialize.error = Failed to initialize Cargo index: %v
owner.settings.cargo.initialize.success = The Cargo index was successfully created.
owner.settings.cargo.rebuild = Rebuild Index
owner.settings.cargo.rebuild.description = If the index is out of sync with the cargo packages stored you can rebuild it here.
owner.settings.cargo.rebuild.error = Failed to rebuild Cargo index: %v
owner.settings.cargo.rebuild.success = The Cargo index was successfully rebuild.
2022-11-20 09:08:38 -05:00
owner.settings.cleanuprules.title = Manage Cleanup Rules
owner.settings.cleanuprules.add = Add Cleanup Rule
owner.settings.cleanuprules.edit = Edit Cleanup Rule
owner.settings.cleanuprules.none = No cleanup rules available. Read the docs to learn more.
owner.settings.cleanuprules.preview = Cleanup Rule Preview
owner.settings.cleanuprules.preview.overview = %d packages are scheduled to be removed.
owner.settings.cleanuprules.preview.none = Cleanup rule does not match any packages.
owner.settings.cleanuprules.enabled = Enabled
owner.settings.cleanuprules.pattern_full_match = Apply pattern to full package name
owner.settings.cleanuprules.keep.title = Versions that match these rules are kept, even if they match a removal rule below.
owner.settings.cleanuprules.keep.count = Keep the most recent
owner.settings.cleanuprules.keep.count.1 = 1 version per package
owner.settings.cleanuprules.keep.count.n = %d versions per package
owner.settings.cleanuprules.keep.pattern = Keep versions matching
owner.settings.cleanuprules.keep.pattern.container = The <code>latest</code> version is always kept for Container packages.
owner.settings.cleanuprules.remove.title = Versions that match these rules are removed, unless a rule above says to keep them.
owner.settings.cleanuprules.remove.days = Remove versions older than
owner.settings.cleanuprules.remove.pattern = Remove versions matching
owner.settings.cleanuprules.success.update = Cleanup rule has been updated.
owner.settings.cleanuprules.success.delete = Cleanup rule has been deleted.
2023-02-05 20:49:21 -05:00
owner.settings.chef.title = Chef Registry
owner.settings.chef.keypair = Generate key pair
owner.settings.chef.keypair.description = Generate a key pair used to authenticate against the Chef registry. The previous key can not be used afterwards.
2022-12-20 04:07:13 -05:00
[secrets]
secrets = Secrets
description = Secrets will be passed to certain actions and cannot be read otherwise.
none = There are no secrets yet.
value = Value
name = Name
creation = Add Secret
creation.name_placeholder = case-insensitive, alphanumeric characters or underscores only, cannot start with GITEA_ or GITHUB_
creation.value_placeholder = Input any content. Whitespace at the start and end will be omitted.
2023-04-17 18:04:26 -04:00
creation.success = The secret "%s" has been added.
2022-12-20 04:07:13 -05:00
creation.failed = Failed to add secret.
deletion = Remove secret
2023-02-01 07:53:04 -05:00
deletion.description = Removing a secret is permanent and cannot be undone. Continue?
2022-12-20 04:07:13 -05:00
deletion.success = The secret has been removed.
deletion.failed = Failed to remove secret.
2023-04-27 20:08:47 -04:00
management = Secrets Management
Implement actions (#21937)
Close #13539.
Co-authored by: @lunny @appleboy @fuxiaohei and others.
Related projects:
- https://gitea.com/gitea/actions-proto-def
- https://gitea.com/gitea/actions-proto-go
- https://gitea.com/gitea/act
- https://gitea.com/gitea/act_runner
### Summary
The target of this PR is to bring a basic implementation of "Actions",
an internal CI/CD system of Gitea. That means even though it has been
merged, the state of the feature is **EXPERIMENTAL**, and please note
that:
- It is disabled by default;
- It shouldn't be used in a production environment currently;
- It shouldn't be used in a public Gitea instance currently;
- Breaking changes may be made before it's stable.
**Please comment on #13539 if you have any different product design
ideas**, all decisions reached there will be adopted here. But in this
PR, we don't talk about **naming, feature-creep or alternatives**.
### ⚠️ Breaking
`gitea-actions` will become a reserved user name. If a user with the
name already exists in the database, it is recommended to rename it.
### Some important reviews
- What is `DEFAULT_ACTIONS_URL` in `app.ini` for?
- https://github.com/go-gitea/gitea/pull/21937#discussion_r1055954954
- Why the api for runners is not under the normal `/api/v1` prefix?
- https://github.com/go-gitea/gitea/pull/21937#discussion_r1061173592
- Why DBFS?
- https://github.com/go-gitea/gitea/pull/21937#discussion_r1061301178
- Why ignore events triggered by `gitea-actions` bot?
- https://github.com/go-gitea/gitea/pull/21937#discussion_r1063254103
- Why there's no permission control for actions?
- https://github.com/go-gitea/gitea/pull/21937#discussion_r1090229868
### What it looks like
<details>
#### Manage runners
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205870657-c72f590e-2e08-4cd4-be7f-2e0abb299bbf.png">
#### List runs
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205872794-50fde990-2b45-48c1-a178-908e4ec5b627.png">
#### View logs
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205872501-9b7b9000-9542-4991-8f55-18ccdada77c3.png">
</details>
### How to try it
<details>
#### 1. Start Gitea
Clone this branch and [install from
source](https://docs.gitea.io/en-us/install-from-source).
Add additional configurations in `app.ini` to enable Actions:
```ini
[actions]
ENABLED = true
```
Start it.
If all is well, you'll see the management page of runners:
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205877365-8e30a780-9b10-4154-b3e8-ee6c3cb35a59.png">
#### 2. Start runner
Clone the [act_runner](https://gitea.com/gitea/act_runner), and follow
the
[README](https://gitea.com/gitea/act_runner/src/branch/main/README.md)
to start it.
If all is well, you'll see a new runner has been added:
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205878000-216f5937-e696-470d-b66c-8473987d91c3.png">
#### 3. Enable actions for a repo
Create a new repo or open an existing one, check the `Actions` checkbox
in settings and submit.
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205879705-53e09208-73c0-4b3e-a123-2dcf9aba4b9c.png">
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205879383-23f3d08f-1a85-41dd-a8b3-54e2ee6453e8.png">
If all is well, you'll see a new tab "Actions":
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205881648-a8072d8c-5803-4d76-b8a8-9b2fb49516c1.png">
#### 4. Upload workflow files
Upload some workflow files to `.gitea/workflows/xxx.yaml`, you can
follow the [quickstart](https://docs.github.com/en/actions/quickstart)
of GitHub Actions. Yes, Gitea Actions is compatible with GitHub Actions
in most cases, you can use the same demo:
```yaml
name: GitHub Actions Demo
run-name: ${{ github.actor }} is testing out GitHub Actions 🚀
on: [push]
jobs:
Explore-GitHub-Actions:
runs-on: ubuntu-latest
steps:
- run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event."
- run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by GitHub!"
- run: echo "🔎 The name of your branch is ${{ github.ref }} and your repository is ${{ github.repository }}."
- name: Check out repository code
uses: actions/checkout@v3
- run: echo "💡 The ${{ github.repository }} repository has been cloned to the runner."
- run: echo "🖥️ The workflow is now ready to test your code on the runner."
- name: List files in the repository
run: |
ls ${{ github.workspace }}
- run: echo "🍏 This job's status is ${{ job.status }}."
```
If all is well, you'll see a new run in `Actions` tab:
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205884473-79a874bc-171b-4aaf-acd5-0241a45c3b53.png">
#### 5. Check the logs of jobs
Click a run and you'll see the logs:
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205884800-994b0374-67f7-48ff-be9a-4c53f3141547.png">
#### 6. Go on
You can try more examples in [the
documents](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions)
of GitHub Actions, then you might find a lot of bugs.
Come on, PRs are welcome.
</details>
See also: [Feature Preview: Gitea
Actions](https://blog.gitea.io/2022/12/feature-preview-gitea-actions/)
---------
Co-authored-by: a1012112796 <1012112796@qq.com>
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
Co-authored-by: delvh <dev.lh@web.de>
Co-authored-by: ChristopherHX <christopher.homberger@web.de>
Co-authored-by: John Olheiser <john.olheiser@gmail.com>
2023-01-30 20:45:19 -05:00
[actions]
actions = Actions
unit.desc = Manage actions
status.unknown = "Unknown"
status.waiting = "Waiting"
status.running = "Running"
status.success = "Success"
status.failure = "Failure"
status.cancelled = "Cancelled"
status.skipped = "Skipped"
status.blocked = "Blocked"
runners = Runners
runners.runner_manage_panel = Runners Management
runners.new = Create new Runner
runners.new_notice = How to start a runner
runners.status = Status
runners.id = ID
runners.name = Name
runners.owner_type = Type
runners.description = Description
runners.labels = Labels
runners.last_online = Last Online Time
runners.agent_labels = Agent Labels
runners.custom_labels = Custom Labels
runners.custom_labels_helper = Custom labels are labels that are added manually by an administrator. A comma separates labels, whitespace at the start and end of each label is ignored.
runners.runner_title = Runner
runners.task_list = Recent tasks on this runner
runners.task_list.run = Run
runners.task_list.status = Status
runners.task_list.repository = Repository
runners.task_list.commit = Commit
runners.task_list.done_at = Done At
runners.edit_runner = Edit Runner
runners.update_runner = Update Changes
runners.update_runner_success = Runner updated successfully
runners.update_runner_failed = Failed to update runner
runners.delete_runner = Delete this runner
runners.delete_runner_success = Runner deleted successfully
runners.delete_runner_failed = Failed to delete runner
runners.delete_runner_header = Confirm to delete this runner
runners.delete_runner_notice = If a task is running on this runner, it will be terminated and mark as failed. It may break building workflow.
runners.none = No runners available
runners.status.unspecified = Unknown
runners.status.idle = Idle
runners.status.active = Active
runners.status.offline = Offline
2023-03-19 22:19:40 -04:00
runners.version = Version
2023-03-28 21:20:48 -04:00
runners.reset_registration_token_success = Runner registration token reset successfully
Implement actions (#21937)
Close #13539.
Co-authored by: @lunny @appleboy @fuxiaohei and others.
Related projects:
- https://gitea.com/gitea/actions-proto-def
- https://gitea.com/gitea/actions-proto-go
- https://gitea.com/gitea/act
- https://gitea.com/gitea/act_runner
### Summary
The target of this PR is to bring a basic implementation of "Actions",
an internal CI/CD system of Gitea. That means even though it has been
merged, the state of the feature is **EXPERIMENTAL**, and please note
that:
- It is disabled by default;
- It shouldn't be used in a production environment currently;
- It shouldn't be used in a public Gitea instance currently;
- Breaking changes may be made before it's stable.
**Please comment on #13539 if you have any different product design
ideas**, all decisions reached there will be adopted here. But in this
PR, we don't talk about **naming, feature-creep or alternatives**.
### ⚠️ Breaking
`gitea-actions` will become a reserved user name. If a user with the
name already exists in the database, it is recommended to rename it.
### Some important reviews
- What is `DEFAULT_ACTIONS_URL` in `app.ini` for?
- https://github.com/go-gitea/gitea/pull/21937#discussion_r1055954954
- Why the api for runners is not under the normal `/api/v1` prefix?
- https://github.com/go-gitea/gitea/pull/21937#discussion_r1061173592
- Why DBFS?
- https://github.com/go-gitea/gitea/pull/21937#discussion_r1061301178
- Why ignore events triggered by `gitea-actions` bot?
- https://github.com/go-gitea/gitea/pull/21937#discussion_r1063254103
- Why there's no permission control for actions?
- https://github.com/go-gitea/gitea/pull/21937#discussion_r1090229868
### What it looks like
<details>
#### Manage runners
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205870657-c72f590e-2e08-4cd4-be7f-2e0abb299bbf.png">
#### List runs
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205872794-50fde990-2b45-48c1-a178-908e4ec5b627.png">
#### View logs
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205872501-9b7b9000-9542-4991-8f55-18ccdada77c3.png">
</details>
### How to try it
<details>
#### 1. Start Gitea
Clone this branch and [install from
source](https://docs.gitea.io/en-us/install-from-source).
Add additional configurations in `app.ini` to enable Actions:
```ini
[actions]
ENABLED = true
```
Start it.
If all is well, you'll see the management page of runners:
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205877365-8e30a780-9b10-4154-b3e8-ee6c3cb35a59.png">
#### 2. Start runner
Clone the [act_runner](https://gitea.com/gitea/act_runner), and follow
the
[README](https://gitea.com/gitea/act_runner/src/branch/main/README.md)
to start it.
If all is well, you'll see a new runner has been added:
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205878000-216f5937-e696-470d-b66c-8473987d91c3.png">
#### 3. Enable actions for a repo
Create a new repo or open an existing one, check the `Actions` checkbox
in settings and submit.
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205879705-53e09208-73c0-4b3e-a123-2dcf9aba4b9c.png">
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205879383-23f3d08f-1a85-41dd-a8b3-54e2ee6453e8.png">
If all is well, you'll see a new tab "Actions":
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205881648-a8072d8c-5803-4d76-b8a8-9b2fb49516c1.png">
#### 4. Upload workflow files
Upload some workflow files to `.gitea/workflows/xxx.yaml`, you can
follow the [quickstart](https://docs.github.com/en/actions/quickstart)
of GitHub Actions. Yes, Gitea Actions is compatible with GitHub Actions
in most cases, you can use the same demo:
```yaml
name: GitHub Actions Demo
run-name: ${{ github.actor }} is testing out GitHub Actions 🚀
on: [push]
jobs:
Explore-GitHub-Actions:
runs-on: ubuntu-latest
steps:
- run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event."
- run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by GitHub!"
- run: echo "🔎 The name of your branch is ${{ github.ref }} and your repository is ${{ github.repository }}."
- name: Check out repository code
uses: actions/checkout@v3
- run: echo "💡 The ${{ github.repository }} repository has been cloned to the runner."
- run: echo "🖥️ The workflow is now ready to test your code on the runner."
- name: List files in the repository
run: |
ls ${{ github.workspace }}
- run: echo "🍏 This job's status is ${{ job.status }}."
```
If all is well, you'll see a new run in `Actions` tab:
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205884473-79a874bc-171b-4aaf-acd5-0241a45c3b53.png">
#### 5. Check the logs of jobs
Click a run and you'll see the logs:
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205884800-994b0374-67f7-48ff-be9a-4c53f3141547.png">
#### 6. Go on
You can try more examples in [the
documents](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions)
of GitHub Actions, then you might find a lot of bugs.
Come on, PRs are welcome.
</details>
See also: [Feature Preview: Gitea
Actions](https://blog.gitea.io/2022/12/feature-preview-gitea-actions/)
---------
Co-authored-by: a1012112796 <1012112796@qq.com>
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
Co-authored-by: delvh <dev.lh@web.de>
Co-authored-by: ChristopherHX <christopher.homberger@web.de>
Co-authored-by: John Olheiser <john.olheiser@gmail.com>
2023-01-30 20:45:19 -05:00
runs.all_workflows = All Workflows
runs.commit = Commit
runs.pushed_by = Pushed by
2023-03-14 03:27:03 -04:00
runs.invalid_workflow_helper = Workflow config file is invalid. Please check your config file: %s
2023-04-19 08:51:20 -04:00
runs.no_matching_runner_helper = No matching runner: %s
2023-02-24 02:58:49 -05:00
need_approval_desc = Need approval to run workflows for fork pull request.
2023-04-21 17:15:17 -04:00
[projects]
type-1.display_name = Individual Project
type-2.display_name = Repository Project
type-3.display_name = Organization Project