diff --git a/.bra.toml b/.bra.toml
deleted file mode 100644
index 3fd4e0c68ed..00000000000
--- a/.bra.toml
+++ /dev/null
@@ -1,19 +0,0 @@
-[run]
-init_cmds = [
- ["make", "build-dev"],
- ["./gogs", "web"]
-]
-watch_all = true
-watch_dirs = [
- "$WORKDIR/cmd",
- "$WORKDIR/models",
- "$WORKDIR/modules",
- "$WORKDIR/routers"
-]
-watch_exts = [".go"]
-ignore_files = [".+_test.go"]
-build_delay = 1500
-cmds = [
- ["make", "build-dev"], # TAGS=sqlite cert pam tidb
- ["./gogs", "web"]
-]
\ No newline at end of file
diff --git a/.claude/commands/ghsa.md b/.claude/commands/ghsa.md
new file mode 100644
index 00000000000..2c575628316
--- /dev/null
+++ b/.claude/commands/ghsa.md
@@ -0,0 +1,13 @@
+Analyze and help fix the GitHub Security Advisory (GHSA) at: $ARGUMENTS
+
+Steps:
+1. Fetch the GHSA page using `gh api repos/gogs/gogs/security-advisories` and understand the vulnerability details (description, severity, affected versions, CWE).
+2. Verify the reported vulnerability actually exists, and why.
+3. Identify the affected code in this repository.
+4. Propose a fix with a clear explanation of the root cause and how the fix addresses it. Check for prior art in the codebase to stay consistent with existing patterns.
+5. Implement the fix. Only add tests when there is something meaningful to test at our layer.
+6. Run all the usual build and test commands.
+7. If a changelog entry is warranted (user will specify), add it to CHANGELOG.md with a placeholder for the PR link.
+8. Create a branch named after the GHSA ID, commit, and push.
+9. Create a pull request with a proper title and description, do not reveal too much detail and link the GHSA.
+10. If a changelog entry was added, update it with the PR link, then commit and push again.
diff --git a/.codebeatignore b/.codebeatignore
deleted file mode 100644
index bfb9b911bea..00000000000
--- a/.codebeatignore
+++ /dev/null
@@ -1,7 +0,0 @@
-conf/**
-docker/**
-modules/bindata/**
-packager/**
-public/**
-scripts/**
-templates/**
\ No newline at end of file
diff --git a/.codebeatsettings b/.codebeatsettings
deleted file mode 100644
index c6ee5c9815f..00000000000
--- a/.codebeatsettings
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "GOLANG": {
- "TOTAL_LOC": [500, 999, 1999, 9999],
- "TOO_MANY_FUNCTIONS": [50, 99, 199, 999],
- "TOO_MANY_IVARS": [20, 50, 70, 99]
- }
-}
\ No newline at end of file
diff --git a/.dockerignore b/.dockerignore
index b33dbf58a80..0183843a0d7 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -1,19 +1,16 @@
-.git
-.git/**
-packager
-packager/**
scripts
scripts/**
.github/
.github/**
-config.codekit
.dockerignore
*.yml
*.md
-.bra.toml
.editorconfig
.gitignore
Dockerfile*
-vendor
-vendor/**
gogs
+node_modules
+**/node_modules
+public/dist
+**/*.tsbuildinfo
+**/.vite
diff --git a/.editorconfig b/.editorconfig
index 3fbca8424f5..850f222667e 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -4,7 +4,6 @@ root = true
[*]
charset = utf-8
-end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
@@ -16,10 +15,9 @@ indent_size = 4
indent_style = tab
indent_size = 2
-[*.{less,yml}]
+[*.{less, yml}]
indent_style = space
indent_size = 2
[*.js]
-indent_style = space
-indent_size = 4
+indent_size = 2
diff --git a/.gitattributes b/.gitattributes
index 09dfc210fc7..4b8882075cc 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1,11 +1,8 @@
-public/conf/gitignore/* linguist-vendored
-public/conf/license/* linguist-vendored
-public/assets/* linguist-vendored
-public/plugins/* linguist-vendored
-public/plugins/* linguist-vendored
-public/css/themes/* linguist-vendored
-public/css/github.min.css linguist-vendored
-public/css/semantic-2.2.1.min.css linguist-vendored
-public/js/libs/* linguist-vendored
-public/js/jquery-1.11.3.min.js linguist-vendored
-public/js/semantic-2.2.1.min.js linguist-vendored
\ No newline at end of file
+conf/gitignore/** linguist-vendored
+conf/license/** linguist-vendored
+public/assets/** linguist-vendored
+public/plugins/** linguist-vendored
+public/css/themes/** linguist-vendored
+public/css/semantic-* linguist-vendored
+public/js/libs/** linguist-vendored
+public/js/semantic-* linguist-vendored
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
new file mode 100644
index 00000000000..fe71742058d
--- /dev/null
+++ b/.github/CODEOWNERS
@@ -0,0 +1,2 @@
+# Default
+* @unknwon
diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md
index bd4ff087459..742dc641024 100644
--- a/.github/CONTRIBUTING.md
+++ b/.github/CONTRIBUTING.md
@@ -1,63 +1,77 @@
-# Contributing to Gogs
+# Welcome to Gogs contributing guide
-> This guidelines sheet is forked from [CONTRIBUTING.md](https://github.com/drone/drone/blob/8d9c7cee56d6c2eac81dc156ce27be6716d97e68/CONTRIBUTING.md).
+Thank you for investing your time in contributing to our projects!
-Gogs is not perfect, and it has bugs or incomplete features in rare cases. You're welcome to tell us, or to contribute some code. This document describes details about how can you contribute to Gogs project.
+Read our [Code of Conduct](https://go.dev/conduct) to keep our community approachable and respectable.
-## Contribution guidelines
+In this guide you will get an overview of the contribution workflow from opening an issue, creating a PR, reviewing, and merging the PR.
-Depends on the situation, you will:
+Use the table of contents icon on the top left corner of this document to get to a specific section of this guide quickly.
-- Find a bug and create an issue
-- Need more functionality and make a feature request
-- Want to contribute code and open a pull request
-- Run into issue and need help
+## New contributor guide
-### Bug Report
+To get an overview of the project, read the [README](/README.md). Here are some resources to help you get started with open source contributions:
-If you find something you consider a bug, please create a issue on [GitHub](https://github.com/gogits/gogs/issues). To avoid wasting time and reduce back-and-forth communication with team members, please include at least the following information in a form comfortable for you:
+- [Finding ways to contribute to open source on GitHub](https://docs.github.com/en/get-started/exploring-projects-on-github/finding-ways-to-contribute-to-open-source-on-github)
+- [Set up Git](https://docs.github.com/en/get-started/quickstart/set-up-git)
+- [GitHub flow](https://docs.github.com/en/get-started/quickstart/github-flow)
+- [Collaborating with pull requests](https://docs.github.com/en/github/collaborating-with-pull-requests)
+- [How to Contribute to Open Source](https://opensource.guide/how-to-contribute/)
+- [Talk, then code](https://www.craft.do/s/kyHVs6OoE4Dj5V)
-- Bug Description
-- Gogs Version
-- Git Version
-- System Type
-- Error Log
-- Other information
+In addition to the general guides with open source contributions, you would also need to:
-Please take a moment to check that an issue on [GitHub](https://github.com/gogits/gogs/issues) doesn't already exist documenting your bug report or improvement proposal. If it does, it never hurts to add a quick "+1" or "I have this problem too". This will help prioritize the most common problems and requests.
+- Have basic knowledge about web applications development, database management systems and programming in [Go](https://go.dev/).
+- Have a working local development setup with a reasonable good IDE or editor like [Visual Studio Code](https://code.visualstudio.com/docs/languages/go), [GoLand](https://www.jetbrains.com/go/) or [Vim](https://github.com/fatih/vim-go).
+- [Set up your development environment](/docs/dev/local_development.md).
-#### Bug Report Example
+## Issues
-Gogs crashed when creating a repository with a license, using v0.5.13.0207, SQLite3, Git 1.9.0, Ubuntu 12.04.
+### Ask for help
-Error log:
+Before opening an issue, please make sure the problem you're encountering isn't already addressed on the [Troubleshooting](https://gogs.io/asking/troubleshooting) and [FAQs](https://gogs.io/asking/faq) pages.
-```
-2014/09/01 07:21:49 [E] nil pointer
-```
+### Create a new issue
-### Feature Request
+- For questions, ask in [Discussions](https://github.com/gogs/gogs/discussions).
+- [Check to make sure](https://docs.github.com/en/github/searching-for-information-on-github/searching-on-github/searching-issues-and-pull-requests#search-by-the-title-body-or-comments) someone hasn't already opened a similar [issue](https://github.com/gogs/gogs/issues).
+- If a similar issue doesn't exist, open a new issue using a relevant [issue form](https://github.com/gogs/gogs/issues/new/choose).
+- Blank issues that are not coming from maintainers will be closed without a response.
-There is no standard form of making a feature request. Just try to describe the feature as clearly as possible, because team members may not have experience with the functionality you're talking about.
+### Pick up an issue to solve
-### Pull Request
+- Scan through our [existing issues](https://github.com/gogs/gogs/issues) to find one that interests you.
+- The [👋 good first issue](https://github.com/gogs/gogs/issues?q=is%3Aissue+is%3Aopen+label%3A%22%F0%9F%91%8B+good+first+issue%22) is a good place to start exploring issues that are well-groomed for newcomers.
+- Do not hesitate to ask for more details or clarifying questions on the issue!
+- Communicate on the issue you are intended to pick up _before_ starting working on it.
+- Every issue that gets picked up will have an expected timeline for the implementation, the issue may be reassigned after the expected timeline. Please be responsible and proactive on the communication 🙇♂️
-Please read detailed information on [Wiki](https://github.com/gogits/gogs/wiki/Contributing-Code).
+## Add new features or make big changes
-### Ask For Help
+New features or big changes require proposals before we may be able to accept any contribution. Proposals should be posted to the [Discussions - Proposal](https://github.com/gogs/gogs/discussions/categories/proposal) category for review and discussions. GitHub Discussions provides sub-threading which is much more suitable than GitHub Issues for discussions to happen. Please read [Write a proposal for open source contributions](https://unknwon.io/posts/220210-write-a-proposal-for-open-source-contributions/) to begin with.
-Before opening an issue, please make sure your problem isn't already addressed on the [Troubleshooting](https://gogs.io/docs/intro/troubleshooting.html) and [FAQs](https://gogs.io/docs/intro/faqs.html) pages.
+## Pull requests
-## Code of conduct
+When you're finished with the changes, create a pull request, or a series of pull requests if necessary.
-As contributors and maintainers of this project, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities.
+Contributing to another codebase is not as simple as code changes, it is also about contributing influence to the design. Therefore, we kindly ask you that:
-We are committed to making participation in this project a harassment-free experience for everyone, regardless of level of experience, gender, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, age, or religion.
+- Please acknowledge that no pull request is guaranteed to be merged.
+- Please always do a self-review before requesting reviews from others.
+- Please expect code review to be strict and may have multiple rounds.
+- Please make self-contained incremental changes, pull requests with huge diff may be rejected for review.
+- Please use English in code comments and docstring.
+- Please do not force push unless absolutely necessary. Force pushes make review much harder in multiple rounds, and we use [Squash and merge](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/about-pull-request-merges#squash-and-merge-your-pull-request-commits) so you don't need to worry about messy commits and just focus on the changes.
-Examples of unacceptable behavior by participants include the use of sexual language or imagery, derogatory comments or personal attacks, trolling, public or private harassment, insults, or other unprofessional conduct.
+### Things we do not accept
-Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct. Project maintainers who do not follow the Code of Conduct may be removed from the project team.
+1. Updates to locale files (`conf/locale_xx-XX.ini`) other than the `conf/locale_en-US.ini`. Please read the [guide for localizing Gogs](https://gogs.io/advancing/localization).
+1. Docker compose files.
-Instances of abusive, harassing, or otherwise unacceptable behavior can be reported by emailing u@gogs.io
+### Coding guidelines
-This Code of Conduct is adapted from the [Contributor Covenant](http:contributor-covenant.org), version 1.0.0, available at [http://contributor-covenant.org/version/1/0/0/](http://contributor-covenant.org/version/1/0/0/)
+1. Please read the Sourcegraph's [Go style guide](https://github.com/sourcegraph/sourcegraph-public-snapshot/blob/main/doc/dev/background-information/languages/go.md).
+
+## Your PR is merged!
+
+Congratulations 🎉🎉 Thanks again for taking the effort to have this journey with us 🌟
diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md
deleted file mode 100644
index da434e203c0..00000000000
--- a/.github/ISSUE_TEMPLATE.md
+++ /dev/null
@@ -1,25 +0,0 @@
-The issue will be closed without any reasons if it does not satisfy any of following requirements:
-
-1. Please speak English, we have forum in [Chinese](https://discuss.gogs.io/c/getting-help/getting-help-chinese).
-2. Please post questions or config/deploy problems on our forum: https://discuss.gogs.io, here are bugs and feature requests only.
-3. Please take a moment to search that an issue doesn't already exist.
-4. Please give all relevant information below for bug reports; incomplete details considered invalid report.
-
-**You MUST delete above content including this line before posting; too lazy to take this action considered invalid report.**
-
-- Gogs version (or commit ref):
-- Git version:
-- Operating system:
-- Database (use `[x]`):
- - [ ] PostgreSQL
- - [ ] MySQL
- - [ ] SQLite
-- Can you reproduce the bug at https://try.gogs.io:
- - [ ] Yes (provide example URL)
- - [ ] No
- - [ ] Not relevant
-- Log gist:
-
-## Description
-
-...
diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml
new file mode 100644
index 00000000000..75cadc947d8
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug_report.yml
@@ -0,0 +1,82 @@
+name: Bug report
+description: File a bug report to help us improve
+labels: ["\U0001F48A bug"]
+body:
+ - type: markdown
+ attributes:
+ value: |
+ Thanks for taking the time to fill out this bug report!
+
+ - Please use English :)
+ - For questions, ask in [Discussions](https://github.com/gogs/gogs/discussions).
+ - Before you file an issue read the [Contributing guide](https://github.com/gogs/gogs/blob/main/.github/CONTRIBUTING.md).
+ - Check to make sure someone hasn't already opened a similar [issue](https://github.com/gogs/gogs/issues).
+ - type: input
+ attributes:
+ label: Gogs version
+ description: |
+ Please specify the exact Gogs version you're reporting for, e.g. "0.12.3". You can find the version information in the admin dashboard (`/admin`).
+
+ _Note that "gogs/gogs:latest" is not a Gogs version, it does not mean anything._
+ validations:
+ required: true
+ - type: textarea
+ attributes:
+ label: Git version
+ description: |
+ Please specify the exact Git version you're using of both server and client. You can find the version information by running `git version`.
+ value: |
+ - Server:
+ - Client:
+ validations:
+ required: true
+ - type: input
+ attributes:
+ label: Operating system
+ description: |
+ Please specify the exact operating system name and version you're reporting for, e.g. "Windows 10", "CentOS 7", "Ubuntu 20.04".
+ validations:
+ required: true
+ - type: input
+ attributes:
+ label: Database
+ description: |
+ Please specify the exact database and version you're reporting for, e.g. "PostgreSQL 9.6", "MySQL 5.7", "SQLite 3".
+ validations:
+ required: true
+ - type: textarea
+ attributes:
+ label: Describe the bug
+ description: A clear and concise description of what the bug is.
+ validations:
+ required: true
+ - type: textarea
+ attributes:
+ label: To reproduce
+ description: The steps to reproduce the problem described above.
+ validations:
+ required: true
+ - type: textarea
+ attributes:
+ label: Expected behavior
+ description: A clear and concise description of what you expected to happen.
+ validations:
+ required: true
+ - type: textarea
+ attributes:
+ label: Additional context
+ description: |
+ Links? References? Suggestions? Anything that will give us more context about the issue you are encountering!
+
+ Please include any error logs found in the `log/gogs.log` file. Otherwise, we probably won't be able to help you much.
+
+ Tip: You can attach images or log files by clicking this area to highlight it and then dragging files in.
+ validations:
+ required: false
+ - type: checkboxes
+ attributes:
+ label: Code of Conduct
+ description: By submitting this issue, you agree to follow our [Code of Conduct](https://go.dev/conduct)
+ options:
+ - label: I agree to follow this project's Code of Conduct
+ required: true
diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml
new file mode 100644
index 00000000000..0fd65e42e27
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/config.yml
@@ -0,0 +1,8 @@
+blank_issues_enabled: true
+contact_links:
+ - name: Ask questions
+ url: https://github.com/gogs/gogs/discussions
+ about: Please ask questions in Discussions.
+ - name: Make a proposal
+ url: https://github.com/gogs/gogs/discussions/categories/proposal
+ about: Please make proposals in Discussions.
diff --git a/.github/ISSUE_TEMPLATE/dev_release_minor_version.md b/.github/ISSUE_TEMPLATE/dev_release_minor_version.md
new file mode 100644
index 00000000000..5bf57d1dca9
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/dev_release_minor_version.md
@@ -0,0 +1,46 @@
+---
+name: "Dev: Release a minor version"
+about: ONLY USED BY MAINTAINERS.
+assignees: "unknwon"
+title: "Release [VERSION]"
+labels: 📸 release
+---
+
+_This is generated from the [minor release template](https://github.com/gogs/gogs/blob/main/.github/ISSUE_TEMPLATE/dev_release_minor_version.md)._
+
+## Before release
+
+On the `main` branch:
+
+- [ ] Close stale issues with the label [status: needs feedback](https://github.com/gogs/gogs/issues?q=is%3Aissue+is%3Aopen+label%3A%22status%3A+needs+feedback%22).
+- [ ] [Sync locales from Crowdin](https://github.com/gogs/gogs/blob/main/docs/dev/import_locale.md).
+- [ ] [Update CHANGELOG](https://github.com/gogs/gogs/commit/f1102a7a7c545ec221d2906f02fa19170d96f96d) to include entries for the current minor release.
+ - Do not forget adding entries for GHSA patches.
+- [ ] Cut a new release branch `release/.`, e.g. `release/0.14`.
+
+## During release
+
+On the release branch:
+
+- [ ] [Update the hard-coded version](https://github.com/gogs/gogs/commit/f0e3cd90f8d7695960eeef2e4e54b2e717302f6c) to the current release, e.g. `0.14.0+dev` -> `0.14.0`.
+- [ ] Wait for GitHub Actions to complete and no failed jobs.
+- [ ] Publish new RC releases (e.g. `v0.14.0-rc.1`, `v0.14.0-rc.2`) ⚠️ **on the release branch** ⚠️ and ensure Docker and release workflows both succeed.
+ - [ ] Pull down the Docker image and [run through application setup](https://github.com/gogs/gogs/blob/main/docker/README.md) to make sure nothing blows up.
+ - [ ] Download one of the release archives and run through application setup to make sure nothing blows up.
+- [ ] Publish a new [GitHub release](https://github.com/gogs/gogs/releases) ⚠️ **on the release branch** ⚠️ with entries from [CHANGELOG](https://github.com/gogs/gogs/blob/main/CHANGELOG.md) for the current minor release.
+- [ ] [Wait for new image tags for the current release](https://github.com/gogs/gogs/actions/workflows/docker.yml?query=event%3Arelease) to be created automatically on both [Docker Hub](https://hub.docker.com/r/gogs/gogs/tags) and [GitHub Container registry](https://github.com/gogs/gogs/pkgs/container/gogs).
+ - Pull down the Docker image and [run through application setup](https://github.com/gogs/gogs/blob/main/docker/README.md) to make sure nothing blows up.
+- [ ] Download all release archives and [generate SHA256 checksum](https://github.com/gogs/gogs/blob/main/docs/dev/release/sha256.sh) for all binaries to the file `checksum_sha256.txt`.
+- [ ] Upload all archives and `checksum_sha256.txt` to https://dl.gogs.io.
+
+## After release
+
+On the `main` branch:
+
+- [ ] Update the repository mirror on [Gitee](https://gitee.com/unknwon/gogs).
+- [ ] Create a new release announcement in [Discussions](https://github.com/gogs/gogs/discussions/categories/announcements).
+- [ ] Send a tweet on the [official Twitter account](https://twitter.com/GogsHQ) for the minor release.
+- [ ] Close the milestone for the minor release.
+- [ ] [Bump the hard-coded version](https://github.com/gogs/gogs/commit/a98968436cd5841cf691bb0b80c54c81470d1676) to the new develop version, e.g. `0.14.0+dev` -> `0.15.0+dev`.
+- [ ] Run `grep -rnw "\(LEGACY\|Deprecated\)" internal` to identify deprecated code that is aimed to be removed in current develop version.
+- [ ] **After 14 days**, publish [GitHub security advisories](https://github.com/gogs/gogs/security) for security patches included in the release.
diff --git a/.github/ISSUE_TEMPLATE/dev_release_patch_version.md b/.github/ISSUE_TEMPLATE/dev_release_patch_version.md
new file mode 100644
index 00000000000..d76e9babf29
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/dev_release_patch_version.md
@@ -0,0 +1,49 @@
+---
+name: "Dev: Release a patch version"
+about: ONLY USED BY MAINTAINERS.
+assignees: "unknwon"
+title: "Release [VERSION]"
+labels: 📸 release
+---
+
+_This is generated from the [patch release template](https://github.com/gogs/gogs/blob/main/.github/ISSUE_TEMPLATE/dev_release_patch_version.md)._
+
+## Before release
+
+On the release branch:
+
+- [ ] Make sure all commits are cherry-picked from the `main` branch by checking the patch milestone.
+ - Run `moon run gogs:build-prod --force` for every cherry-picked commit to make sure there is no compilation error.
+- [ ] [Update CHANGELOG on the `main` branch](https://github.com/gogs/gogs/commit/f1102a7a7c545ec221d2906f02fa19170d96f96d) to include entries for the current patch release.
+
+## During release
+
+On the release branch:
+
+- [ ] [Update the hard-coded version](https://github.com/gogs/gogs/commit/f0e3cd90f8d7695960eeef2e4e54b2e717302f6c) to the current release, e.g. `0.12.0` -> `0.12.1`.
+- [ ] Wait for GitHub Actions to complete and no failed jobs.
+- [ ] Publish new RC releases in [GitHub release](https://github.com/gogs/gogs/releases) (e.g. `v0.12.0-rc.1`, `v0.12.0-rc.2`) ⚠️ **on the release branch** ⚠️ and ensure Docker workflow succeeds.
+ - [ ] Pull down the Docker image and [run through application setup](https://github.com/gogs/gogs/blob/main/docker/README.md) to make sure nothing blows up.
+ - [ ] Download one of the release archives and run through application setup to make sure nothing blows up.
+- [ ] Publish a new [GitHub release](https://github.com/gogs/gogs/releases) ⚠️ **on the release branch** ⚠️ with entries from [CHANGELOG](https://github.com/gogs/gogs/blob/main/CHANGELOG.md) for the current patch release and all previous releases with same minor version.
+- [ ] Update all previous GitHub releases with same minor version with the warning:
+ ```
+ **ℹ️ Heads up! There is a new patch release [0.12.1](https://github.com/gogs/gogs/releases/tag/v0.12.1) available, we recommend directly installing or upgrading to that version.**
+ ```
+- [ ] [Wait for new image tags for the current release](https://github.com/gogs/gogs/actions/workflows/docker.yml?query=event%3Arelease) to be created automatically on both [Docker Hub](https://hub.docker.com/r/gogs/gogs/tags) and [GitHub Container registry](https://github.com/gogs/gogs/pkgs/container/gogs).
+ - Pull down the Docker image and [run through application setup](https://github.com/gogs/gogs/blob/main/docker/README.md) to make sure nothing blows up.
+- [ ] Download all release archives and [generate SHA256 checksum](https://github.com/gogs/gogs/blob/main/docs/dev/release/sha256.sh) for all binaries to the file `checksum_sha256.txt`.
+- [ ] Upload all archives and `checksum_sha256.txt` to https://dl.gogs.io.
+
+## After release
+
+On the `main` branch:
+
+- [ ] Post the following message on issues that are included in the patch milestone:
+ ```
+ The .. has been released that includes the patch of the reported issue.
+ ```
+- [ ] Create a new release announcement in [Discussions](https://github.com/gogs/gogs/discussions/categories/announcements).
+- [ ] Send a tweet on the [official Twitter account](https://twitter.com/GogsHQ) for the patch release.
+- [ ] Close the milestone for the patch release.
+- [ ] **After 14 days**, publish [GitHub security advisories](https://github.com/gogs/gogs/security) for security patches included in the release.
diff --git a/.github/ISSUE_TEMPLATE/documentation.yml b/.github/ISSUE_TEMPLATE/documentation.yml
new file mode 100644
index 00000000000..99a37267c44
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/documentation.yml
@@ -0,0 +1,32 @@
+name: Improve documentation
+description: Suggest an idea or a patch for documentation
+labels: ["📖 documentation"]
+body:
+ - type: markdown
+ attributes:
+ value: |
+ Thanks for taking the time to fill out this form!
+
+ - Please use English :)
+ - For questions, ask in [Discussions](https://github.com/gogs/gogs/discussions).
+ - Before you file an issue read the [Contributing guide](https://github.com/gogs/gogs/blob/main/.github/CONTRIBUTING.md).
+ - Check to make sure someone hasn't already opened a similar [issue](https://github.com/gogs/gogs/issues).
+ - type: textarea
+ attributes:
+ label: What needs to be improved? Please describe
+ description: A clear and concise description of what is wrong or missing.
+ validations:
+ required: true
+ - type: textarea
+ attributes:
+ label: Why do you think it is important?
+ description: A clear and concise explanation of the rationale.
+ validations:
+ required: true
+ - type: checkboxes
+ attributes:
+ label: Code of Conduct
+ description: By submitting this issue, you agree to follow our [Code of Conduct](https://go.dev/conduct)
+ options:
+ - label: I agree to follow this project's Code of Conduct
+ required: true
diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml
new file mode 100644
index 00000000000..55295adc924
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/feature_request.yml
@@ -0,0 +1,47 @@
+name: Feature request
+description: Suggest an idea for this project
+labels: ["\U0001F3AF feature"]
+body:
+ - type: markdown
+ attributes:
+ value: |
+ Thanks for taking the time to fill out this form!
+
+ - Please use English :)
+ - For questions, ask in [Discussions](https://github.com/gogs/gogs/discussions).
+ - Before you file an issue read the [Contributing guide](https://github.com/gogs/gogs/blob/main/.github/CONTRIBUTING.md).
+ - Check to make sure someone hasn't already opened a similar [issue](https://github.com/gogs/gogs/issues).
+ - type: textarea
+ attributes:
+ label: Describe the feature
+ description: A clear and concise description of what the feature is, e.g. I think it is reasonable to have [...]
+ validations:
+ required: true
+ - type: textarea
+ attributes:
+ label: Describe the solution you'd like
+ description: A clear and concise description of what you want to happen.
+ validations:
+ required: true
+ - type: textarea
+ attributes:
+ label: Describe alternatives you've considered
+ description: A clear and concise description of any alternative solutions or features you've considered.
+ validations:
+ required: true
+ - type: textarea
+ attributes:
+ label: Additional context
+ description: |
+ Links? References? Suggestions? Anything that will give us more context about the feature you are requesting!
+
+ Tip: You can attach images or log files by clicking this area to highlight it and then dragging files in.
+ validations:
+ required: false
+ - type: checkboxes
+ attributes:
+ label: Code of Conduct
+ description: By submitting this issue, you agree to follow our [Code of Conduct](https://go.dev/conduct)
+ options:
+ - label: I agree to follow this project's Code of Conduct
+ required: true
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
deleted file mode 100644
index b1cf1a4ecaf..00000000000
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ /dev/null
@@ -1,9 +0,0 @@
-The pull request will be closed without any reasons if it does not satisfy any of following requirements:
-
-1. Please make sure you are targeting the `develop` branch.
-2. Please read contributing guidelines:
-https://github.com/gogits/gogs/wiki/Contributing-Code
-3. Please describe what your pull request does and which issue you're targeting
-4. ... if it is not related to any particular issues, explain why we should not reject your pull request.
-
-**You MUST delete above content including this line before posting; too lazy to take this action considered invalid pull request.**
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
new file mode 100644
index 00000000000..fb014a2362e
--- /dev/null
+++ b/.github/dependabot.yml
@@ -0,0 +1,9 @@
+# Docs: https://git.io/JCUAY
+version: 2
+updates:
+ - package-ecosystem: "gomod"
+ directory: "/"
+ schedule:
+ interval: "monthly"
+ commit-message:
+ prefix: "mod:"
diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md
new file mode 100644
index 00000000000..f3617342498
--- /dev/null
+++ b/.github/pull_request_template.md
@@ -0,0 +1,16 @@
+## Describe the pull request
+
+A clear and concise description of what the pull request is about, i.e. what problem should be fixed?
+
+Link to the issue:
+
+## Checklist
+
+- [ ] I agree to follow the [Code of Conduct](https://go.dev/conduct) by submitting this pull request.
+- [ ] I have read and acknowledge the [Contributing guide](https://github.com/gogs/gogs/blob/main/.github/CONTRIBUTING.md).
+- [ ] I have added test cases to cover the new code or have provided the test plan. (if applicable)
+- [ ] I have added an entry to [CHANGELOG](https://github.com/gogs/gogs/blob/main/CHANGELOG.md). (if applicable)
+
+## Test plan
+
+
diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml
new file mode 100644
index 00000000000..77625bf0c94
--- /dev/null
+++ b/.github/workflows/codeql.yml
@@ -0,0 +1,75 @@
+# For most projects, this workflow file will not need changing; you simply need
+# to commit it to your repository.
+#
+# You may wish to alter this file to override the set of languages analyzed,
+# or to provide custom queries or build logic.
+#
+# ******** NOTE ********
+# We have attempted to detect the languages in your repository. Please check
+# the `language` matrix defined below to confirm you have the correct set of
+# supported CodeQL languages.
+#
+name: "CodeQL"
+
+on:
+ push:
+ branches: [ main ]
+ pull_request:
+ paths:
+ - '.github/workflows/codeql.yml'
+ schedule:
+ - cron: '0 19 * * 0'
+
+permissions:
+ contents: read
+ security-events: write
+
+jobs:
+ analyze:
+ name: Analyze
+ runs-on: ubuntu-latest
+
+ strategy:
+ fail-fast: false
+ matrix:
+ language: [ 'go' ]
+ # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ]
+ # Learn more:
+ # https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed
+
+ steps:
+ - name: Check out repository
+ uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
+ with:
+ # We must fetch at least the immediate parents so that if this is
+ # a pull request then we can checkout the head.
+ fetch-depth: 2
+
+ # Initializes the CodeQL tools for scanning.
+ - name: Initialize CodeQL
+ uses: github/codeql-action/init@fdbfb4d2750291e159f0156def62b853c2798ca2 # v3.28.3
+ with:
+ languages: ${{ matrix.language }}
+ # If you wish to specify custom queries, you can do so here or in a config file.
+ # By default, queries listed here will override any specified in a config file.
+ # Prefix the list here with "+" to use these queries and those in the config file.
+ # queries: ./path/to/local/query, your-org/your-repo/queries@main
+
+ # Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
+ # If this step fails, then you should remove it and run the build manually (see below)
+ - name: Autobuild
+ uses: github/codeql-action/autobuild@fdbfb4d2750291e159f0156def62b853c2798ca2 # v3.28.3
+
+ # ℹ️ Command-line programs to run using the OS shell.
+ # 📚 https://git.io/JvXDl
+
+ # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
+ # and modify them (or add more) to build your code if your project
+ # uses a compiled language
+
+ #- run: |
+ # make bootstrap
+ # make release
+
+ - name: Perform CodeQL Analysis
+ uses: github/codeql-action/analyze@fdbfb4d2750291e159f0156def62b853c2798ca2 # v3.28.3
diff --git a/.github/workflows/digitalocean_gc.yml b/.github/workflows/digitalocean_gc.yml
new file mode 100644
index 00000000000..42344729c38
--- /dev/null
+++ b/.github/workflows/digitalocean_gc.yml
@@ -0,0 +1,26 @@
+name: DigitalOcean
+on:
+ workflow_dispatch:
+ workflow_call:
+
+jobs:
+ garbage-collection:
+ runs-on: ubuntu-latest
+ permissions:
+ contents: read
+ steps:
+ - name: Install doctl
+ uses: digitalocean/action-doctl@5727c67aa3c2c34ae9462d5a0ecfea8a1b31e5ce # v2
+ with:
+ token: ${{ secrets.DIGITALOCEAN_ACCESS_TOKEN }}
+ - name: Run garbage collection
+ run: |
+ # --force: Required for CI to skip confirmation prompts
+ # --include-untagged-manifests: Deletes unreferenced manifests to maximize space
+ doctl registry garbage-collection start --force --include-untagged-manifests
+ - name: Send email on failure
+ uses: unknwon/send-email-on-failure@89339a1bc93f4ad1d30f3b7e4911fcba985c9adb # v1
+ if: ${{ failure() }}
+ with:
+ smtp_username: ${{ secrets.SMTP_USERNAME }}
+ smtp_password: ${{ secrets.SMTP_PASSWORD }}
diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml
new file mode 100644
index 00000000000..4fc78b7e732
--- /dev/null
+++ b/.github/workflows/docker.yml
@@ -0,0 +1,397 @@
+name: Docker
+on:
+ push:
+ branches:
+ - main
+ pull_request:
+ paths:
+ - '.trivy.yaml'
+ - 'Dockerfile'
+ - 'Dockerfile.next'
+ - 'docker/**'
+ - 'docker-next/**'
+ - '.github/workflows/docker.yml'
+ release:
+ types: [ published ]
+
+jobs:
+ buildx-next:
+ if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' && github.repository == 'gogs/gogs' }}
+ concurrency:
+ group: ${{ github.workflow }}-next-${{ github.ref }}
+ cancel-in-progress: true
+ runs-on: ubuntu-latest
+ permissions:
+ actions: write
+ contents: read
+ packages: write
+ steps:
+ - name: Check out code
+ uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
+ - name: Set up QEMU
+ uses: docker/setup-qemu-action@c7c53464625b32c7a7e944ae62b3e17d2b600130 # v3.7.0
+ with:
+ platforms: linux/amd64,linux/arm64,linux/arm/v7
+ - name: Set up Docker Buildx
+ id: buildx
+ uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1
+ - name: Inspect builder
+ run: |
+ echo "Name: ${{ steps.buildx.outputs.name }}"
+ echo "Endpoint: ${{ steps.buildx.outputs.endpoint }}"
+ echo "Status: ${{ steps.buildx.outputs.status }}"
+ echo "Flags: ${{ steps.buildx.outputs.flags }}"
+ echo "Platforms: ${{ steps.buildx.outputs.platforms }}"
+ - name: Login to Docker Hub
+ uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
+ with:
+ username: ${{ secrets.DOCKERHUB_USERNAME }}
+ password: ${{ secrets.DOCKERHUB_TOKEN }}
+ - name: Login to GitHub Container registry
+ uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
+ with:
+ registry: ghcr.io
+ username: ${{ github.repository_owner }}
+ password: ${{ secrets.GITHUB_TOKEN }}
+ - name: Login to DigitalOcean Container registry
+ uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
+ with:
+ registry: registry.digitalocean.com
+ username: ${{ secrets.DIGITALOCEAN_USERNAME }}
+ password: ${{ secrets.DIGITALOCEAN_ACCESS_TOKEN }}
+ - name: Build and push next-gen images
+ uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.18.0
+ with:
+ context: .
+ file: Dockerfile.next
+ platforms: linux/amd64,linux/arm64,linux/arm/v7
+ push: true
+ tags: |
+ gogs/gogs:edge
+ ghcr.io/gogs/gogs:edge
+ registry.digitalocean.com/gogs/gogs:edge
+ - name: Scan for container vulnerabilities
+ uses: aquasecurity/trivy-action@57a97c7e7821a5776cebc9bb87c984fa69cba8f1 # 0.35.0
+ with:
+ image-ref: gogs/gogs:edge
+ exit-code: '1'
+ - name: Send email on failure
+ uses: unknwon/send-email-on-failure@89339a1bc93f4ad1d30f3b7e4911fcba985c9adb # v1
+ if: ${{ failure() }}
+ with:
+ smtp_username: ${{ secrets.SMTP_USERNAME }}
+ smtp_password: ${{ secrets.SMTP_PASSWORD }}
+
+ deploy-demo:
+ if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' && github.repository == 'gogs/gogs' }}
+ needs: buildx-next
+ runs-on: ubuntu-latest
+ permissions:
+ contents: read
+ steps:
+ - name: Configure kubectl
+ run: |
+ mkdir -p ~/.kube
+ echo "${KUBECONFIG}" | base64 -d > ~/.kube/config
+ env:
+ KUBECONFIG: ${{ secrets.DIGITALOCEAN_K8S_CLUSTER_KUBECONFIG }}
+ - name: Restart gogs-demo deployment
+ timeout-minutes: 5
+ run: |
+ set -ex
+ kubectl rollout restart deployment gogs-demo -n gogs
+ kubectl rollout status deployment gogs-demo -n gogs
+ - name: Send email on failure
+ uses: unknwon/send-email-on-failure@89339a1bc93f4ad1d30f3b7e4911fcba985c9adb # v1
+ if: ${{ failure() }}
+ with:
+ smtp_username: ${{ secrets.SMTP_USERNAME }}
+ smtp_password: ${{ secrets.SMTP_PASSWORD }}
+
+ buildx-pull-request:
+ if: ${{ github.event_name == 'pull_request'}}
+ runs-on: ubuntu-latest
+ permissions:
+ contents: read
+ steps:
+ - name: Check out code
+ uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
+ - name: Set up Docker Buildx
+ id: buildx
+ uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1
+ with:
+ config-inline: |
+ [worker.oci]
+ max-parallelism = 2
+ - name: Inspect builder
+ run: |
+ echo "Name: ${{ steps.buildx.outputs.name }}"
+ echo "Endpoint: ${{ steps.buildx.outputs.endpoint }}"
+ echo "Status: ${{ steps.buildx.outputs.status }}"
+ echo "Flags: ${{ steps.buildx.outputs.flags }}"
+ echo "Platforms: ${{ steps.buildx.outputs.platforms }}"
+ - name: Compute short commit SHA
+ id: short-sha
+ uses: benjlevesque/short-sha@599815c8ee942a9616c92bcfb4f947a3b670ab0b # v3.0
+ - name: Build and push images
+ uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.18.0
+ with:
+ context: .
+ platforms: linux/amd64
+ push: true
+ tags: |
+ ttl.sh/gogs/gogs-${{ steps.short-sha.outputs.sha }}:7d
+ - name: Scan for container vulnerabilities
+ uses: aquasecurity/trivy-action@57a97c7e7821a5776cebc9bb87c984fa69cba8f1 # 0.35.0
+ with:
+ image-ref: ttl.sh/gogs/gogs-${{ steps.short-sha.outputs.sha }}:7d
+ exit-code: '1'
+
+ buildx-next-pull-request:
+ if: ${{ github.event_name == 'pull_request'}}
+ runs-on: ubuntu-latest
+ permissions:
+ contents: read
+ steps:
+ - name: Check out code
+ uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
+ - name: Set up Docker Buildx
+ id: buildx
+ uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1
+ with:
+ config-inline: |
+ [worker.oci]
+ max-parallelism = 2
+ - name: Inspect builder
+ run: |
+ echo "Name: ${{ steps.buildx.outputs.name }}"
+ echo "Endpoint: ${{ steps.buildx.outputs.endpoint }}"
+ echo "Status: ${{ steps.buildx.outputs.status }}"
+ echo "Flags: ${{ steps.buildx.outputs.flags }}"
+ echo "Platforms: ${{ steps.buildx.outputs.platforms }}"
+ - name: Compute short commit SHA
+ id: short-sha
+ uses: benjlevesque/short-sha@599815c8ee942a9616c92bcfb4f947a3b670ab0b # v3.0
+ - name: Build and push next-gen images
+ uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.18.0
+ with:
+ context: .
+ file: Dockerfile.next
+ platforms: linux/amd64
+ push: true
+ tags: |
+ ttl.sh/gogs/gogs-next-${{ steps.short-sha.outputs.sha }}:7d
+ - name: Scan for container vulnerabilities
+ uses: aquasecurity/trivy-action@57a97c7e7821a5776cebc9bb87c984fa69cba8f1 # 0.35.0
+ with:
+ image-ref: ttl.sh/gogs/gogs-next-${{ steps.short-sha.outputs.sha }}:7d
+ exit-code: '1'
+
+ # Updates to the following section needs to be synced to all release branches within their lifecycles.
+ buildx-release:
+ if: ${{ github.event_name == 'release' }}
+ runs-on: ubuntu-latest
+ permissions:
+ actions: write
+ contents: read
+ packages: write
+ steps:
+ - name: Check out code
+ uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
+ with:
+ # Full history with tags is required so the next step can determine
+ # whether this release is the highest stable version across the repo.
+ fetch-depth: 0
+ fetch-tags: true
+ - name: Compute image tags
+ run: |
+ IMAGE_TAG=$(echo $GITHUB_REF_NAME | cut -c 2-)
+ echo "IMAGE_TAG=$IMAGE_TAG" >> $GITHUB_ENV
+
+ TAGS="gogs/gogs:$IMAGE_TAG
+ ghcr.io/gogs/gogs:$IMAGE_TAG"
+
+ # For stable releases (no prerelease suffix per semver), add the
+ # minor-version tag only if this release is the highest patch of that
+ # minor line, and add `latest` only if this release is the highest
+ # stable version across the repository. Back-patches on older lines
+ # must not clobber moving tags.
+ if [[ ! "$IMAGE_TAG" =~ - ]]; then
+ STABLE_TAGS=$(git tag --list 'v*' | sed 's/^v//' | grep -v -- '-' || true)
+ HIGHEST_STABLE=$(echo "$STABLE_TAGS" | sort -V | tail -n 1)
+ MINOR_TAG=$(echo "$IMAGE_TAG" | cut -d. -f1,2)
+ # `|| true` keeps the step running when `grep` finds no matches,
+ # since bash runs with `-e -o pipefail` in GitHub Actions.
+ HIGHEST_IN_MINOR=$(echo "$STABLE_TAGS" | { grep "^${MINOR_TAG}\." || true; } | sort -V | tail -n 1)
+
+ if [[ "$IMAGE_TAG" == "$HIGHEST_IN_MINOR" ]]; then
+ TAGS="$TAGS
+ gogs/gogs:$MINOR_TAG
+ ghcr.io/gogs/gogs:$MINOR_TAG"
+ fi
+ if [[ "$IMAGE_TAG" == "$HIGHEST_STABLE" ]]; then
+ TAGS="$TAGS
+ gogs/gogs:latest
+ ghcr.io/gogs/gogs:latest"
+ fi
+ fi
+
+ echo "TAGS<> $GITHUB_ENV
+ echo "$TAGS" >> $GITHUB_ENV
+ echo "EOF" >> $GITHUB_ENV
+ - name: Set up QEMU
+ uses: docker/setup-qemu-action@c7c53464625b32c7a7e944ae62b3e17d2b600130 # v3.7.0
+ with:
+ platforms: linux/amd64,linux/arm64,linux/arm/v7
+ - name: Set up Docker Buildx
+ id: buildx
+ uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1
+ - name: Inspect builder
+ run: |
+ echo "Name: ${{ steps.buildx.outputs.name }}"
+ echo "Endpoint: ${{ steps.buildx.outputs.endpoint }}"
+ echo "Status: ${{ steps.buildx.outputs.status }}"
+ echo "Flags: ${{ steps.buildx.outputs.flags }}"
+ echo "Platforms: ${{ steps.buildx.outputs.platforms }}"
+ - name: Login to Docker Hub
+ uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
+ with:
+ username: ${{ secrets.DOCKERHUB_USERNAME }}
+ password: ${{ secrets.DOCKERHUB_TOKEN }}
+ - name: Login to GitHub Container registry
+ uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
+ with:
+ registry: ghcr.io
+ username: ${{ github.repository_owner }}
+ password: ${{ secrets.GITHUB_TOKEN }}
+ - name: Build and push images
+ uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.18.0
+ with:
+ context: .
+ platforms: linux/amd64,linux/arm64,linux/arm/v7
+ push: true
+ tags: ${{ env.TAGS }}
+ - name: Scan for container vulnerabilities
+ uses: aquasecurity/trivy-action@57a97c7e7821a5776cebc9bb87c984fa69cba8f1 # 0.35.0
+ with:
+ image-ref: gogs/gogs:${{ env.IMAGE_TAG }}
+ exit-code: '1'
+ - name: Send email on failure
+ uses: unknwon/send-email-on-failure@89339a1bc93f4ad1d30f3b7e4911fcba985c9adb # v1
+ if: ${{ failure() }}
+ with:
+ smtp_username: ${{ secrets.SMTP_USERNAME }}
+ smtp_password: ${{ secrets.SMTP_PASSWORD }}
+
+ # Updates to the following section needs to be synced to all release branches within their lifecycles.
+ buildx-next-release:
+ if: ${{ github.event_name == 'release' }}
+ runs-on: ubuntu-latest
+ permissions:
+ actions: write
+ contents: read
+ packages: write
+ steps:
+ - name: Check out code
+ uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
+ with:
+ # Full history with tags is required so the next step can determine
+ # whether this release is the highest stable version across the repo.
+ fetch-depth: 0
+ fetch-tags: true
+ - name: Compute image tags
+ run: |
+ IMAGE_TAG=$(echo $GITHUB_REF_NAME | cut -c 2-)
+ echo "IMAGE_TAG=$IMAGE_TAG" >> $GITHUB_ENV
+
+ TAGS="gogs/gogs:next-$IMAGE_TAG
+ ghcr.io/gogs/gogs:next-$IMAGE_TAG"
+
+ # For stable releases (no prerelease suffix per semver), add the
+ # minor-version tag only if this release is the highest patch of that
+ # minor line, and add `next-latest` only if this release is the
+ # highest stable version across the repository. Back-patches on older
+ # lines must not clobber moving tags.
+ if [[ ! "$IMAGE_TAG" =~ - ]]; then
+ STABLE_TAGS=$(git tag --list 'v*' | sed 's/^v//' | grep -v -- '-' || true)
+ HIGHEST_STABLE=$(echo "$STABLE_TAGS" | sort -V | tail -n 1)
+ MINOR_TAG=$(echo "$IMAGE_TAG" | cut -d. -f1,2)
+ # `|| true` keeps the step running when `grep` finds no matches,
+ # since bash runs with `-e -o pipefail` in GitHub Actions.
+ HIGHEST_IN_MINOR=$(echo "$STABLE_TAGS" | { grep "^${MINOR_TAG}\." || true; } | sort -V | tail -n 1)
+
+ if [[ "$IMAGE_TAG" == "$HIGHEST_IN_MINOR" ]]; then
+ TAGS="$TAGS
+ gogs/gogs:next-$MINOR_TAG
+ ghcr.io/gogs/gogs:next-$MINOR_TAG"
+ fi
+ if [[ "$IMAGE_TAG" == "$HIGHEST_STABLE" ]]; then
+ TAGS="$TAGS
+ gogs/gogs:next-latest
+ ghcr.io/gogs/gogs:next-latest"
+ fi
+ fi
+
+ echo "TAGS<> $GITHUB_ENV
+ echo "$TAGS" >> $GITHUB_ENV
+ echo "EOF" >> $GITHUB_ENV
+ - name: Set up QEMU
+ uses: docker/setup-qemu-action@c7c53464625b32c7a7e944ae62b3e17d2b600130 # v3.7.0
+ with:
+ platforms: linux/amd64,linux/arm64,linux/arm/v7
+ - name: Set up Docker Buildx
+ id: buildx
+ uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1
+ - name: Inspect builder
+ run: |
+ echo "Name: ${{ steps.buildx.outputs.name }}"
+ echo "Endpoint: ${{ steps.buildx.outputs.endpoint }}"
+ echo "Status: ${{ steps.buildx.outputs.status }}"
+ echo "Flags: ${{ steps.buildx.outputs.flags }}"
+ echo "Platforms: ${{ steps.buildx.outputs.platforms }}"
+ - name: Login to Docker Hub
+ uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
+ with:
+ username: ${{ secrets.DOCKERHUB_USERNAME }}
+ password: ${{ secrets.DOCKERHUB_TOKEN }}
+ - name: Login to GitHub Container registry
+ uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
+ with:
+ registry: ghcr.io
+ username: ${{ github.repository_owner }}
+ password: ${{ secrets.GITHUB_TOKEN }}
+ - name: Build and push next-gen images
+ uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.18.0
+ with:
+ context: .
+ file: Dockerfile.next
+ platforms: linux/amd64,linux/arm64,linux/arm/v7
+ push: true
+ tags: ${{ env.TAGS }}
+ - name: Scan for container vulnerabilities
+ uses: aquasecurity/trivy-action@57a97c7e7821a5776cebc9bb87c984fa69cba8f1 # 0.35.0
+ with:
+ image-ref: gogs/gogs:next-${{ env.IMAGE_TAG }}
+ exit-code: '1'
+ - name: Send email on failure
+ uses: unknwon/send-email-on-failure@89339a1bc93f4ad1d30f3b7e4911fcba985c9adb # v1
+ if: ${{ failure() }}
+ with:
+ smtp_username: ${{ secrets.SMTP_USERNAME }}
+ smtp_password: ${{ secrets.SMTP_PASSWORD }}
+
+ digitalocean-gc:
+ if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' && github.repository == 'gogs/gogs' }}
+ needs: buildx-next
+ permissions:
+ contents: read
+ uses: ./.github/workflows/digitalocean_gc.yml
+ secrets: inherit
+
+ digitalocean-gc-pull-request:
+ if: ${{ github.event_name == 'pull_request' && github.repository == 'gogs/gogs' }}
+ needs: buildx-next-pull-request
+ permissions:
+ contents: read
+ uses: ./.github/workflows/digitalocean_gc.yml
+ secrets: inherit
diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml
new file mode 100644
index 00000000000..46b6ba22f4f
--- /dev/null
+++ b/.github/workflows/go.yml
@@ -0,0 +1,172 @@
+name: Go
+on:
+ push:
+ branches:
+ - main
+ - 'release/**'
+ paths:
+ - '**.go'
+ - 'go.mod'
+ - '.golangci.yml'
+ - '.github/workflows/go.yml'
+ pull_request:
+ paths:
+ - '**.go'
+ - 'go.mod'
+ - '.golangci.yml'
+ - '.github/workflows/go.yml'
+env:
+ GOPROXY: "https://proxy.golang.org"
+
+permissions:
+ contents: read
+
+jobs:
+ lint:
+ permissions:
+ contents: read # for actions/checkout to fetch code
+ pull-requests: read # for golangci/golangci-lint-action to fetch pull requests
+ name: Lint
+ runs-on: ubuntu-latest
+ steps:
+ - name: Check out code
+ uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
+ - name: Install Go
+ uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5.5.0
+ with:
+ go-version: 1.26.x
+ - name: Check Go module tidiness and generated files
+ shell: bash
+ run: |
+ go mod tidy
+ go generate ./...
+ STATUS=$(git status --porcelain)
+ if [ ! -z "$STATUS" ]; then
+ echo "Unstaged files:"
+ echo $STATUS
+ echo "Run 'go mod tidy' or 'go generate ./...' and commit them"
+ exit 1
+ fi
+ - name: Run golangci-lint
+ uses: golangci/golangci-lint-action@9fae48acfc02a90574d7c304a1758ef9895495fa # v7.0.1
+ with:
+ version: latest
+ args: --timeout=30m
+
+ test:
+ name: Test
+ strategy:
+ matrix:
+ go-version: [ 1.26.x ]
+ platform: [ ubuntu-latest, macos-latest ]
+ runs-on: ${{ matrix.platform }}
+ steps:
+ - name: Check out code
+ uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
+ - name: Install Go
+ uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5.5.0
+ with:
+ go-version: ${{ matrix.go-version }}
+ - name: Run tests with coverage
+ run: |
+ go test -shuffle=on -v -race -coverprofile=coverage -covermode=atomic -json ./... > test-report.json
+ go install github.com/mfridman/tparse@latest
+ tparse -all -file=test-report.json
+ - name: Send email on failure
+ uses: unknwon/send-email-on-failure@89339a1bc93f4ad1d30f3b7e4911fcba985c9adb # v1
+ if: ${{ failure() && github.event_name == 'push' && github.ref == 'refs/heads/main' }}
+ with:
+ smtp_username: ${{ secrets.SMTP_USERNAME }}
+ smtp_password: ${{ secrets.SMTP_PASSWORD }}
+
+ # Running tests with race detection consumes too much memory on Windows,
+ # see https://github.com/golang/go/issues/46099 for details.
+ test-windows:
+ name: Test Windows
+ strategy:
+ matrix:
+ go-version: [ 1.26.x ]
+ platform: [ windows-latest ]
+ runs-on: ${{ matrix.platform }}
+ steps:
+ - name: Check out code
+ uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
+ - name: Install Go
+ uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5.5.0
+ with:
+ go-version: ${{ matrix.go-version }}
+ - name: Run tests with coverage
+ run: go test -shuffle=on -v -coverprofile=coverage -covermode=atomic ./...
+ - name: Send email on failure
+ uses: unknwon/send-email-on-failure@89339a1bc93f4ad1d30f3b7e4911fcba985c9adb # v1
+ if: ${{ failure() && github.event_name == 'push' && github.ref == 'refs/heads/main' }}
+ with:
+ smtp_username: ${{ secrets.SMTP_USERNAME }}
+ smtp_password: ${{ secrets.SMTP_PASSWORD }}
+
+ postgres:
+ name: Postgres
+ strategy:
+ matrix:
+ go-version: [ 1.26.x ]
+ platform: [ ubuntu-latest ]
+ runs-on: ${{ matrix.platform }}
+ services:
+ postgres:
+ image: postgres:9.6
+ env:
+ POSTGRES_PASSWORD: postgres
+ options: >-
+ --health-cmd pg_isready
+ --health-interval 10s
+ --health-timeout 5s
+ --health-retries 5
+ ports:
+ - 5432:5432
+ steps:
+ - name: Check out code
+ uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
+ - name: Install Go
+ uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5.5.0
+ with:
+ go-version: ${{ matrix.go-version }}
+ - name: Run tests with coverage
+ run: |
+ go test -shuffle=on -v -race -coverprofile=coverage -covermode=atomic -json ./internal/database/... > test-report.json
+ go install github.com/mfridman/tparse@latest
+ tparse -all -file=test-report.json
+ env:
+ GOGS_DATABASE_TYPE: postgres
+ PGPORT: 5432
+ PGHOST: localhost
+ PGUSER: postgres
+ PGPASSWORD: postgres
+ PGSSLMODE: disable
+
+ mysql:
+ name: MySQL
+ strategy:
+ matrix:
+ go-version: [ 1.26.x ]
+ platform: [ ubuntu-22.04 ] # Use the lowest version possible for backwards compatibility
+ runs-on: ${{ matrix.platform }}
+ steps:
+ - name: Start MySQL server
+ run: sudo systemctl start mysql
+ - name: Check out code
+ uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
+ - name: Install Go
+ uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5.5.0
+ with:
+ go-version: ${{ matrix.go-version }}
+ - name: Run tests with coverage
+ run: |
+ go test -shuffle=on -v -race -coverprofile=coverage -covermode=atomic -json ./internal/database/... > test-report.json
+ go install github.com/mfridman/tparse@latest
+ tparse -all -file=test-report.json
+ env:
+ GOGS_DATABASE_TYPE: mysql
+ MYSQL_USER: root
+ MYSQL_PASSWORD: root
+ MYSQL_HOST: localhost
+ MYSQL_PORT: 3306
diff --git a/.github/workflows/lock.yml b/.github/workflows/lock.yml
new file mode 100644
index 00000000000..431efde3da9
--- /dev/null
+++ b/.github/workflows/lock.yml
@@ -0,0 +1,25 @@
+name: 'Lock Threads'
+
+on:
+ schedule:
+ - cron: '0 0 * * *'
+ workflow_dispatch:
+
+permissions:
+ issues: write
+ pull-requests: write
+
+concurrency:
+ group: lock
+
+jobs:
+ action:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: dessant/lock-threads@1bf7ec25051fe7c00bdd17e6a7cf3d7bfb7dc771 # v5.0.1
+ with:
+ github-token: ${{ github.token }}
+ issue-inactive-days: '90'
+ issue-lock-reason: 'resolved'
+ pr-inactive-days: '365'
+ pr-lock-reason: 'resolved'
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
new file mode 100644
index 00000000000..edf577ee4d9
--- /dev/null
+++ b/.github/workflows/release.yml
@@ -0,0 +1,157 @@
+name: Release
+
+on:
+ release:
+ types: [published]
+ push:
+ branches:
+ - main
+ pull_request:
+ paths:
+ - '.github/workflows/release.yml'
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.ref }}
+ cancel-in-progress: true
+
+env:
+ GOPROXY: "https://proxy.golang.org"
+
+permissions:
+ contents: write
+
+jobs:
+ build:
+ name: Build ${{ matrix.goos }}/${{ matrix.goarch }}${{ matrix.suffix }}
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ matrix:
+ include:
+ - {goos: linux, goarch: amd64}
+ - {goos: linux, goarch: arm64}
+ - {goos: linux, goarch: "386"}
+ - {goos: darwin, goarch: amd64}
+ - {goos: darwin, goarch: arm64}
+ - {goos: windows, goarch: amd64}
+ - {goos: windows, goarch: arm64}
+ - {goos: windows, goarch: "386"}
+ - {goos: windows, goarch: amd64, suffix: "_mws", tags: minwinsvc}
+ - {goos: windows, goarch: arm64, suffix: "_mws", tags: minwinsvc}
+ - {goos: windows, goarch: "386", suffix: "_mws", tags: minwinsvc}
+ steps:
+ - name: Check out code
+ uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
+ - name: Set up Go
+ uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5.5.0
+ with:
+ go-version: 1.26.x
+ - name: Set up pnpm
+ uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8
+ - name: Set up Node
+ uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
+ with:
+ node-version: 24
+ cache: pnpm
+ - name: Build web assets
+ run: |
+ pnpm install --frozen-lockfile
+ pnpm --filter gogs-web run build
+ - name: Determine version
+ id: version
+ run: |
+ if [ "${{ github.event_name }}" = "release" ]; then
+ echo "version=${{ github.event.release.tag_name }}" | sed 's/version=v/version=/' >> "$GITHUB_OUTPUT"
+ echo "release_tag=${{ github.event.release.tag_name }}" >> "$GITHUB_OUTPUT"
+ elif [ "${{ github.event_name }}" = "push" ] && [ "${{ github.ref }}" = "refs/heads/main" ]; then
+ echo "version=$(git rev-parse --short HEAD)" >> "$GITHUB_OUTPUT"
+ echo "release_tag=latest-commit-build" >> "$GITHUB_OUTPUT"
+ else
+ echo "version=$(git rev-parse --short HEAD)" >> "$GITHUB_OUTPUT"
+ echo "release_tag=release-archive-testing" >> "$GITHUB_OUTPUT"
+ fi
+ - name: Build binary
+ env:
+ GOOS: ${{ matrix.goos }}
+ GOARCH: ${{ matrix.goarch }}
+ CGO_ENABLED: "0"
+ run: |
+ BINARY_NAME="gogs"
+ if [ "${{ matrix.goos }}" = "windows" ]; then
+ BINARY_NAME="gogs.exe"
+ fi
+
+ TAGS="prod"
+ if [ -n "${{ matrix.tags }}" ]; then
+ TAGS="$TAGS ${{ matrix.tags }}"
+ fi
+
+ go build -v \
+ -ldflags "
+ -X \"gogs.io/gogs/internal/conf.BuildTime=$(date -u '+%Y-%m-%d %I:%M:%S %Z')\"
+ -X \"gogs.io/gogs/internal/conf.BuildCommit=$(git rev-parse HEAD)\"
+ " \
+ -tags "$TAGS" \
+ -trimpath -o "$BINARY_NAME" ./cmd/gogs
+ - name: Prepare archive contents
+ run: |
+ mkdir -p dist/gogs
+ BINARY_NAME="gogs"
+ if [ "${{ matrix.goos }}" = "windows" ]; then
+ BINARY_NAME="gogs.exe"
+ fi
+ cp "$BINARY_NAME" dist/gogs/
+ cp LICENSE README.md dist/gogs/
+ cp -r scripts dist/gogs/
+ - name: Create archives
+ working-directory: dist
+ run: |
+ VERSION="${{ steps.version.outputs.version }}"
+ ARCHIVE_BASE="gogs_${VERSION}_${{ matrix.goos }}_${{ matrix.goarch }}${{ matrix.suffix }}"
+
+ zip -r "${ARCHIVE_BASE}.zip" gogs
+
+ if [ "${{ matrix.goos }}" = "linux" ]; then
+ tar -czvf "${ARCHIVE_BASE}.tar.gz" gogs
+ fi
+ - name: Upload to release
+ env:
+ GH_TOKEN: ${{ github.token }}
+ run: |
+ RELEASE_TAG="${{ steps.version.outputs.release_tag }}"
+
+ if [ "${{ github.event_name }}" != "release" ]; then
+ git tag -f "$RELEASE_TAG"
+ git push origin "$RELEASE_TAG" --force || true
+
+ RELEASE_TITLE="Release archive testing"
+ RELEASE_NOTES="Automated testing release for workflow development."
+ if [ "$RELEASE_TAG" = "latest-commit-build" ]; then
+ RELEASE_TITLE="Latest commit build"
+ RELEASE_NOTES="Automated build from the latest commit on main branch. This release is updated automatically with every push to main."
+ fi
+
+ gh release view "$RELEASE_TAG" || gh release create "$RELEASE_TAG" --title "$RELEASE_TITLE" --notes "$RELEASE_NOTES" --prerelease
+ fi
+
+ PATTERN="_${{ matrix.goos }}_${{ matrix.goarch }}${{ matrix.suffix }}\."
+ gh release view "$RELEASE_TAG" --json assets --jq ".assets[].name" | grep "$PATTERN" | while read -r asset; do
+ gh release delete-asset "$RELEASE_TAG" "$asset" --yes || true
+ done
+
+ gh release upload "$RELEASE_TAG" dist/gogs_*.zip --clobber
+ if [ "${{ matrix.goos }}" = "linux" ]; then
+ gh release upload "$RELEASE_TAG" dist/gogs_*.tar.gz --clobber
+ fi
+
+ notify-failure:
+ name: Notify on failure
+ runs-on: ubuntu-latest
+ needs: [build]
+ if: ${{ failure() && github.event_name == 'push' && github.ref == 'refs/heads/main' }}
+ steps:
+ - name: Send email on failure
+ uses: unknwon/send-email-on-failure@89339a1bc93f4ad1d30f3b7e4911fcba985c9adb # v1
+ with:
+ smtp_username: ${{ secrets.SMTP_USERNAME }}
+ smtp_password: ${{ secrets.SMTP_PASSWORD }}
diff --git a/.github/workflows/shell.yml b/.github/workflows/shell.yml
new file mode 100644
index 00000000000..d7c0e0b4699
--- /dev/null
+++ b/.github/workflows/shell.yml
@@ -0,0 +1,17 @@
+name: Shell
+on:
+ push:
+ branches: [ main ]
+ pull_request:
+
+permissions:
+ contents: read
+
+jobs:
+ shellcheck:
+ name: Shellcheck
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
+ - name: Run ShellCheck
+ uses: ludeeus/action-shellcheck@00cae500b08a931fb5698e11e79bfbd38e612a38 # 2.0.0
diff --git a/.github/workflows/web.yml b/.github/workflows/web.yml
new file mode 100644
index 00000000000..76b3ddeb00d
--- /dev/null
+++ b/.github/workflows/web.yml
@@ -0,0 +1,54 @@
+name: Web
+on:
+ push:
+ branches:
+ - main
+ - 'release/**'
+ paths:
+ - 'web/**'
+ - 'pnpm-lock.yaml'
+ - 'pnpm-workspace.yaml'
+ - 'package.json'
+ - 'conf/locale/locale_*.ini'
+ - '.github/workflows/web.yml'
+ pull_request:
+ paths:
+ - 'web/**'
+ - 'pnpm-lock.yaml'
+ - 'pnpm-workspace.yaml'
+ - 'package.json'
+ - 'conf/locale/locale_*.ini'
+ - '.github/workflows/web.yml'
+
+permissions:
+ contents: read
+
+jobs:
+ web:
+ name: Lint and build
+ runs-on: ubuntu-latest
+ env:
+ MOON_COLOR: "true"
+ FORCE_COLOR: "1"
+ steps:
+ - name: Check out code
+ uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
+ with:
+ fetch-depth: 0
+ - name: Set up pnpm
+ uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8
+ - name: Set up Node
+ uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
+ with:
+ node-version: 24
+ cache: pnpm
+ - name: Set up moon
+ uses: moonrepo/setup-toolchain@261c62cb5b0f580c7be7c8cd0f023a2e96756095 # v0.6.4
+ with:
+ auto-install: false
+ - name: Lint
+ run: moon run web:lint
+ - name: Build
+ run: moon run web:build
+ - name: Check for uncommitted changes
+ run: git diff --exit-code --stat
diff --git a/.gitignore b/.gitignore
index a13d3460ff1..9f09adfc14c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,20 +1,19 @@
-.DS_Store
-*.db
-*.log
+# Build artifacts and cache
+.bin/
+dist/
+.moon/cache/
+node_modules/
+.agents/skills/
+.claude/skills
+
+# Runtime data
log/
custom/
data/
-.vendor/
+
+# Configuration and application files
.idea/
-*.iml
-public/img/avatar/
-*.exe
-*.exe~
-/gogs
-profile/
-*.pem
-output*
-gogs.sublime-project
-gogs.sublime-workspace
-/release
-vendor
+.envrc
+
+# System junk
+.DS_Store
diff --git a/.golangci.yml b/.golangci.yml
new file mode 100644
index 00000000000..c426559c4df
--- /dev/null
+++ b/.golangci.yml
@@ -0,0 +1,42 @@
+version: "2"
+linters:
+ enable:
+ - nakedret
+ - rowserrcheck
+ - unconvert
+ - unparam
+ settings:
+ govet:
+ disable:
+ # printf: non-constant format string in call to fmt.Errorf (govet)
+ # showing up since golangci-lint version 1.60.1
+ - printf
+ staticcheck:
+ checks:
+ - all
+ - "-SA1019" # This project is under active refactoring and not all code is up to date.
+ - "-QF1001" # I'm a math noob
+ - "-ST1016" # Some legit code uses this pattern
+ nakedret:
+ max-func-lines: 0 # Disallow any unnamed return statement
+ exclusions:
+ generated: lax
+ presets:
+ - comments
+ - common-false-positives
+ - legacy
+ - std-error-handling
+ paths:
+ - third_party$
+ - builtin$
+ - examples$
+formatters:
+ enable:
+ - gofmt
+ - goimports
+ exclusions:
+ generated: lax
+ paths:
+ - third_party$
+ - builtin$
+ - examples$
diff --git a/.gopmfile b/.gopmfile
deleted file mode 100644
index eb6a28a4f7d..00000000000
--- a/.gopmfile
+++ /dev/null
@@ -1,60 +0,0 @@
-[target]
-path = github.com/gogits/gogs
-
-[deps]
-github.com/bradfitz/gomemcache = commit:fb1f79c
-github.com/urfave/cli = commit:1efa31f
-github.com/go-macaron/binding = commit:9440f33
-github.com/go-macaron/cache = commit:5617353
-github.com/go-macaron/captcha = commit:8aa5919
-github.com/go-macaron/csrf = commit:6a9a7df
-github.com/go-macaron/gzip = commit:cad1c65
-github.com/go-macaron/i18n = commit:ef57533
-github.com/go-macaron/inject = commit:c5ab7bf
-github.com/go-macaron/session = commit:66031fc
-github.com/go-macaron/toolbox = commit:82b5115
-github.com/go-sql-driver/mysql = commit:0b58b37
-github.com/go-xorm/builder = commit:cd42e83
-github.com/go-xorm/core = commit:2ec3936
-github.com/go-xorm/xorm = commit:311abf2
-github.com/gogits/chardet = commit:2404f77
-github.com/gogits/cron = commit:7f3990a
-github.com/gogits/git-module = commit:5e0c133
-github.com/gogits/go-gogs-client = commit:c52f7ee
-github.com/gogits/go-libravatar = commit:cd1abbd
-github.com/issue9/identicon = commit:d36b545
-github.com/jaytaylor/html2text = commit:52d9b78
-github.com/kardianos/minwinsvc = commit:cad6b2b
-github.com/klauspost/compress = commit:14eb9c4
-github.com/klauspost/cpuid = commit:09cded8
-github.com/klauspost/crc32 = commit:19b0b33
-github.com/lib/pq = commit:80f8150
-github.com/mattn/go-sqlite3 = commit:e118d44
-github.com/mcuadros/go-version = commit:d52711f
-github.com/microcosm-cc/bluemonday = commit:9dc1992
-github.com/msteinert/pam = commit:02ccfbf
-github.com/nfnt/resize = commit:891127d
-github.com/russross/blackfriday = commit:93622da
-github.com/satori/go.uuid = commit:0aa62d5
-github.com/sergi/go-diff = commit:ec7fdbb
-github.com/shurcooL/sanitized_anchor_name = commit:10ef21a
-github.com/Unknwon/cae = commit:7f5e046
-github.com/Unknwon/com = commit:28b053d
-github.com/Unknwon/i18n = commit:39d6f27
-github.com/Unknwon/paginater = commit:7748a72
-golang.org/x/crypto = commit:bc89c49
-golang.org/x/net = commit:57bfaa8
-golang.org/x/sys = commit:a646d33
-golang.org/x/text = commit:2910a50
-gopkg.in/alexcesaro/quotedprintable.v3 = commit:2caba25
-gopkg.in/asn1-ber.v1 = commit:4e86f43
-gopkg.in/bufio.v1 = commit:567b2bf
-gopkg.in/editorconfig/editorconfig-core-go.v1 = commit:a872f05
-gopkg.in/gomail.v2 = commit:81ebce5
-gopkg.in/ini.v1 = commit:cf53f92
-gopkg.in/ldap.v2 = commit:d0a5ced
-gopkg.in/macaron.v1 = commit:826ddf1
-gopkg.in/redis.v2 = commit:e617904
-
-[res]
-include = public|scripts|templates
diff --git a/.mailmap b/.mailmap
index 88ff1591a4a..968e4a73648 100644
--- a/.mailmap
+++ b/.mailmap
@@ -1,2 +1,4 @@
-Unknwon
-Unknwon 无闻
+Joe Chen Unknwon
+Joe Chen 无闻
+Joe Chen ᴜɴᴋɴᴡᴏɴ
+Joe Chen ᴜɴᴋɴᴡᴏɴ
diff --git a/.moon/tasks.yml b/.moon/tasks.yml
new file mode 100644
index 00000000000..01c1edaffd2
--- /dev/null
+++ b/.moon/tasks.yml
@@ -0,0 +1,4 @@
+$schema: "https://moonrepo.dev/schemas/tasks.json"
+
+taskOptions:
+ outputStyle: "stream"
diff --git a/.moon/workspace.yml b/.moon/workspace.yml
new file mode 100644
index 00000000000..01c79131eb9
--- /dev/null
+++ b/.moon/workspace.yml
@@ -0,0 +1,9 @@
+$schema: "https://moonrepo.dev/schemas/workspace.json"
+
+projects:
+ gogs: "."
+ web: "web"
+
+vcs:
+ client: "git"
+ defaultBranch: "main"
diff --git a/.pkgr.yml b/.pkgr.yml
deleted file mode 100644
index 9fa60ccbac2..00000000000
--- a/.pkgr.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-targets:
- debian-7: &debian
- build_dependencies:
- - libpam0g-dev
- dependencies:
- - libpam0g
- - git
- debian-8:
- <<: *debian
- ubuntu-14.04:
- <<: *debian
- ubuntu-12.04:
- <<: *debian
- centos-6: &el
- build_dependencies:
- - pam-devel
- dependencies:
- - pam
- - git
- centos-7:
- <<: *el
-before:
- - mv packager/Procfile .
- - mv packager/.godir .
-after:
- - mv bin/main gogs
-after_install: ./packager/hooks/postinst
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index 6eba760d65a..00000000000
--- a/.travis.yml
+++ /dev/null
@@ -1,29 +0,0 @@
-language: go
-
-go:
- - 1.5
- - 1.6
- - 1.7
-
-before_install:
- - sudo apt-get update -qq
- - sudo apt-get install -y libpam-dev
- - go get github.com/msteinert/pam
-
-install:
- - go get -t -v ./...
-
-script:
- - go build -v -tags "pam"
- - go test -v -cover -race ./...
-
-notifications:
- email:
- - u@gogs.io
- slack: gophercn:o5pSanyTeNhnfYc3QnG0X7Wx
- webhooks:
- urls:
- - https://webhooks.gitter.im/e/b590f8e03882f7aedc3e
- on_success: change
- on_failure: always
- on_start: never
diff --git a/AGENTS.md b/AGENTS.md
new file mode 100644
index 00000000000..a3b1592ed10
--- /dev/null
+++ b/AGENTS.md
@@ -0,0 +1,46 @@
+## Core principles
+
+- Stop telling me "You're right", it just shows how incompetent you are. Do it right on your first try, fact-check and review after changes. If you are not sure, ask for help.
+- When you see changes made outside your knowledge, use the current version as your new starting point. Do not blindly overwrite those changes or you suck. Even if you have to update the code, always respect the pattern in the surrounding context!
+
+## Style and mechanics
+
+This applies to all texts, including but not limited to UI, documentation, code comments.
+
+- Use sentence case. Preserve original casing for brand names.
+- End with a period for a full sentence.
+- Never use em dashes (`—`) or en dashes (`–`) in prose. Rewrite the sentence with a comma, period, colon, or parentheses instead. Exception: em/en dashes are allowed as visual separators in UI design (e.g., between a title and description, in a terminal prompt label) where they function as a graphic element rather than punctuation.
+- Do not overuse semicolons. Two short sentences are almost always clearer than one sentence joined by a semicolon. Reserve the semicolon for the rare case where the two clauses are so tightly coupled that splitting them loses meaning, never as a default em-dash replacement or a way to chain related thoughts.
+- Do not add comments that repeat what the code is doing, always prefer more descriptive names. Do add comments for intentions that aren't obvious via reading the code alone. This rule takes precedence over matching existing patterns.
+
+## Coding guidelines
+
+- Use `github.com/cockroachdb/errors` for error handling.
+- Use `github.com/stretchr/testify` for assertions in tests. Be mindful about the choice of `require` and `assert`, the former should be used when the test cannot proceed meaningfully after a failed assertion.
+
+## Localization
+
+- Only edit `conf/locale/locale_en-US.ini`. The other `locale_*.ini` files are community-maintained translations. Do not add, remove, or rewrite keys in them, even when removing keys that are dead on the Go/template side.
+
+## UI guidelines
+
+- Design mobile-friendly. Every UI must look and work well on narrow viewports before adding desktop refinements via responsive breakpoints. Test at ~375px width before considering a UI done.
+- Meet WCAG 2.2 AA at minimum. Specifically: every interactive control has a discernible accessible name (visible label or `aria-label`); color is never the sole carrier of information (pair with text, icon, or shape); text and meaningful icons meet 4.5:1 contrast against their background (3:1 for large text and UI components); focus is always visible and never trapped; touch targets are at least 24×24 CSS px (40×40 preferred). When unsure, lean toward more contrast, larger targets, and explicit labels.
+- For work under `web/`, follow the patterns in [`web/DESIGN.md`](web/DESIGN.md) (typography, color hierarchy, surface chrome, file naming, accessibility specifics). Update that doc when a pattern is used in two places.
+- When a page needs server data to render, fetch it in the TanStack Router route's `loader` so the page only mounts after the response arrives. Do not fire that fetch from a `useEffect` inside the page component, which causes a flash of empty UI before the data lands.
+
+## Build instructions
+
+- Prefer `moon run :` over vanilla `go` or `pnpm` commands when available (e.g. `moon run gogs:build`, `moon run web:dev`). Pass `--force` to bypass cache when necessary.
+- Run `moon run gogs:lint` after every time you finish changing Go code, and `moon run web:lint` after changing frontend code; fix all linter errors.
+
+## Tool-use guidance
+
+- Use `gh` CLI to access information on github.com that is not publicly available.
+
+## Source code control
+
+- When pushing changes to a pull request from a fork, use SSH address and do not add remote.
+- Never commit on the `main` branch directly unless being explicitly asked to do so. A single ask only grants a single commit action on the `main` branch.
+- Never amend commits unless being explicitly asked to do so.
+- When creating a git worktree, the worktree directory name must match its branch name. Do not use random or generated suffixes.
diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 00000000000..93619099697
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,332 @@
+# Changelog
+
+All notable changes to Gogs are documented in this file.
+
+## 0.15.0+dev (`main`)
+
+### Changed
+
+- Docker builds from `main` are now published only as `gogs/gogs:edge`, using the next-generation `Dockerfile.next`. The legacy `Dockerfile` no longer produces `main` builds. The `gogs/gogs:latest` and `gogs/gogs:next-latest` tags now always point to the highest published stable release, never to a back-patch on an older line. [#8278](https://github.com/gogs/gogs/pull/8278)
+
+### Fixed
+
+- _Security:_ Denial of service in repository and wiki file listing pages via crafted file names. [#8116](https://github.com/gogs/gogs/pull/8116) - [GHSA-3qq3-668m-v9mj](https://github.com/gogs/gogs/security/advisories/GHSA-3qq3-668m-v9mj)
+- _Security:_ Reverse proxy authentication header was honored from any remote address, allowing user impersonation when Gogs was reachable directly. The header is now only trusted from addresses listed in `[auth] TRUSTED_PROXY_IPS`. [#8264](https://github.com/gogs/gogs/pull/8264) - [GHSA-w6j9-vw59-27wv](https://github.com/gogs/gogs/security/advisories/GHSA-w6j9-vw59-27wv)
+- _Security:_ Server-side request forgery in webhook deliveries via HTTP redirects to local network addresses. [#8263](https://github.com/gogs/gogs/pull/8263) - [GHSA-c4v7-xg93-qf8g](https://github.com/gogs/gogs/security/advisories/GHSA-c4v7-xg93-qf8g)
+- _Security:_ The "remember me" auto-login cookie was derived from database columns, so an attacker with a database dump could forge a valid cookie for any user. The auto-login cookie path has been removed entirely. Persistence is now provided by the server-issued session cookie. [#8289](https://github.com/gogs/gogs/pull/8289) - [GHSA-4pph-25p3-pw73](https://github.com/gogs/gogs/security/advisories/GHSA-4pph-25p3-pw73)
+
+### Removed
+
+- The `gogs cert` subcommand. [#8153](https://github.com/gogs/gogs/pull/8153)
+- The `[email] DISABLE_HELO` configuration option. HELO/EHLO is now always sent during SMTP handshake. [#8164](https://github.com/gogs/gogs/pull/8164)
+- Support for MSSQL as the database backend. Stay on 0.14 for continued usage. [#8173](https://github.com/gogs/gogs/pull/8173)
+- Support for `memcache` as the cache adapter. Stay on 0.14 for continued usage. [#8270](https://github.com/gogs/gogs/pull/8270)
+- The `/debug`, `/debug/pprof/*`, `/debug/profile/*`, and `/urlmap.json` endpoints. [#8271](https://github.com/gogs/gogs/pull/8271)
+
+## 0.14.2
+
+### Fixed
+
+- _Security:_ Cross-repository LFS object overwrite via missing content hash verification. [#8166](https://github.com/gogs/gogs/pull/8166) - [GHSA-gmf8-978x-2fg2](https://github.com/gogs/gogs/security/advisories/GHSA-gmf8-978x-2fg2)
+- _Security:_ Stored XSS via data URI in issue comments. [#8174](https://github.com/gogs/gogs/pull/8174) - [GHSA-xrcr-gmf5-2r8j](https://github.com/gogs/gogs/security/advisories/GHSA-xrcr-gmf5-2r8j)
+- _Security:_ Release tag option injection in release deletion. [#8175](https://github.com/gogs/gogs/pull/8175) - [GHSA-v9vm-r24h-6rqm](https://github.com/gogs/gogs/security/advisories/GHSA-v9vm-r24h-6rqm)
+- _Security:_ Stored XSS in branch and wiki views through author and committer names. [#8176](https://github.com/gogs/gogs/pull/8176) - [GHSA-vgvf-m4fw-938j](https://github.com/gogs/gogs/security/advisories/GHSA-vgvf-m4fw-938j)
+- _Security:_ DOM-based XSS via issue meta selection on the issue page. [#8178](https://github.com/gogs/gogs/pull/8178) - [GHSA-vgjm-2cpf-4g7c](https://github.com/gogs/gogs/security/advisories/GHSA-vgjm-2cpf-4g7c)
+- Unable to update files via web editor and API. [#8184](https://github.com/gogs/gogs/pull/8184)
+
+### Removed
+
+- Support for passing API access tokens via URL query parameters (`token`, `access_token`). Use the `Authorization` header instead. [#8177](https://github.com/gogs/gogs/pull/8177) - [GHSA-x9p5-w45c-7ffc](https://github.com/gogs/gogs/security/advisories/GHSA-x9p5-w45c-7ffc)
+
+## 0.14.1
+
+### Added
+
+- Support comparing tags in addition to branches. [#6141](https://github.com/gogs/gogs/issues/6141)
+- Show file name in browser tab title when viewing files. [#5896](https://github.com/gogs/gogs/pull/5896)
+- Support using TLS for Redis session provider using `[session] PROVIDER_CONFIG = ...,tls=true`. [#7860](https://github.com/gogs/gogs/pull/7860)
+- Support expanading values in `app.ini` from environment variables, e.g. `[database] PASSWORD = ${DATABASE_PASSWORD}`. [#8057](https://github.com/gogs/gogs/pull/8057)
+- Support custom logout URL that users get redirected to after sign out using `[auth] CUSTOM_LOGOUT_URL`. [#8089](https://github.com/gogs/gogs/pull/8089)
+- Start publishing next-generation, security-focused Docker image via `gogs/gogs:next-latest`, which will become the default image distribution (`gogs/gogs:latest`) starting 0.16.0. While not all container options support have been added in the next-generation image, the use of current legacy Docker image is deprecated, it will be published as `gogs/gogs:legacy-latest` starting 0.16.0, and be completely removed no earlier than 0.17.0. [#8061](https://github.com/gogs/gogs/pull/8061)
+
+### Changed
+
+- The required Go version to compile source code changed to 1.25.
+- The build tag `cert` has been removed, and the `gogs cert` subcommand is now always available. [#7883](https://github.com/gogs/gogs/pull/7883)
+- Switched to pure-Go SQLite driver, CGO is no longer required to compile Gogs. [#7882](https://github.com/gogs/gogs/issues/7882)
+- Updated Mermaid JS to 11.9.0. [#8009](https://github.com/gogs/gogs/pull/8009)
+- Halt the repository creation and leave the directory untouched if the repository root already exists. [#8091](https://github.com/gogs/gogs/pull/8091)
+
+### Fixed
+
+- _Security:_ Unauthenticated file upload. [#8128](https://github.com/gogs/gogs/pull/8128) - [GHSA-fc3h-92p8-h36f](https://github.com/gogs/gogs/security/advisories/GHSA-fc3h-92p8-h36f)
+- _Security:_ Protected branch bypass in web UI. [#8124](https://github.com/gogs/gogs/pull/8124) - [GHSA-2c6v-8r3v-gh6p](https://github.com/gogs/gogs/security/advisories/GHSA-2c6v-8r3v-gh6p)
+- _Security:_ Authorization bypass allows cross-repository label modification. [#8123](https://github.com/gogs/gogs/pull/8123) - [GHSA-cv22-72px-f4gh](https://github.com/gogs/gogs/security/advisories/GHSA-cv22-72px-f4gh)
+- _Security:_ Cross-repository comment deletion. [#8119](https://github.com/gogs/gogs/pull/8119) - [GHSA-jj5m-h57j-5gv7](https://github.com/gogs/gogs/security/advisories/GHSA-jj5m-h57j-5gv7)
+- 500 error on repository watchers and stargazers pages when using MSSQL. [#5482](https://github.com/gogs/gogs/issues/5482)
+- Submodules using `ssh://` protocol and a port number are not rendered correctly. [#4941](https://github.com/gogs/gogs/issues/4941)
+- Missing link to user profile on the first commit in commits history page. [#7404](https://github.com/gogs/gogs/issues/7404)
+- Unable to delete or display files with special characters in their names. [#7596](https://github.com/gogs/gogs/issues/7596)
+- Docker healthcheck fails when `HTTP_PROXY` or `HTTPS_PROXY` environment variables are set. [#7529](https://github.com/gogs/gogs/issues/7529)
+
+## 0.13.4
+
+### Fixed
+
+- _Security:_ DoS in repository mirror sync. [#8065](https://github.com/gogs/gogs/pull/8065) - [GHSA-cr88-6mqm-4g57](https://github.com/gogs/gogs/security/advisories/GHSA-cr88-6mqm-4g57)
+- _Security:_ RCE in repository put contents API. [#8082](https://github.com/gogs/gogs/pull/8082) - [GHSA-gg64-xxr9-qhjp](https://github.com/gogs/gogs/security/advisories/GHSA-gg64-xxr9-qhjp)
+- _Security:_ Arbitrary file deletion via path traversal in wiki page update. [#8099](https://github.com/gogs/gogs/pull/8099) - [GHSA-jp7c-wj6q-3qf2](https://github.com/gogs/gogs/security/advisories/GHSA-jp7c-wj6q-3qf2)
+- _Security:_ 2FA bypass via recovery code. [#8100](https://github.com/gogs/gogs/pull/8100) - [GHSA-p6x6-9mx6-26wj](https://github.com/gogs/gogs/security/advisories/GHSA-p6x6-9mx6-26wj)
+- _Security:_ Authorization bypass in repository deletion API. [#8101](https://github.com/gogs/gogs/pull/8101) - [GHSA-rjv5-9px2-fqw6](https://github.com/gogs/gogs/security/advisories/GHSA-rjv5-9px2-fqw6)
+- _Security:_ Update repository content via API with read-only permission. [#8102](https://github.com/gogs/gogs/pull/8102) - [GHSA-5qhx-gwfj-6jqr](https://github.com/gogs/gogs/security/advisories/GHSA-5qhx-gwfj-6jqr)
+- _Security:_ Arbitrary file read/write via path traversal in Git hook editing. [#8103](https://github.com/gogs/gogs/pull/8103) - [GHSA-mrph-w4hh-gx3g](https://github.com/gogs/gogs/security/advisories/GHSA-mrph-w4hh-gx3g)
+- _Security:_ Stored XSS via Mermaid diagrams. [`2c88cd4`](https://github.com/gogs/gogs/commit/2c88cd4d9fdc346d8e06d82f5368d657c10e79c2) - [GHSA-26gq-grmh-6xm6](https://github.com/gogs/gogs/security/advisories/GHSA-26gq-grmh-6xm6)
+- Route `GET /api/v1/user/repos` responses 500 when accessible repositories contain forks. [#8069](https://github.com/gogs/gogs/pull/8069)
+- Newer Git versions that uses default branch `main` cause wiki initialization to fail. [#8094](https://github.com/gogs/gogs/pull/8094)
+
+## 0.13.3
+
+### Fixed
+
+- _Security:_ Stored XSS in PDF renderer. [GHSA-xh32-cx6c-cp4v](https://github.com/gogs/gogs/security/advisories/GHSA-xh32-cx6c-cp4v)
+- _Security:_ Path Traversal in file editing UI. [GHSA-wj44-9vcg-wjq7](https://github.com/gogs/gogs/security/advisories/GHSA-wj44-9vcg-wjq7)
+- Randomly timeout on repository file uploads. [#7890](https://github.com/gogs/gogs/pull/7890)
+- Unable to override email templates in custom directory. [#7905](https://github.com/gogs/gogs/pull/7905)
+
+## 0.13.2
+
+### Fixed
+
+- _Security:_ Path Traversal in file editing UI. [GHSA-r7j8-5h9c-f6fx](https://github.com/gogs/gogs/security/advisories/GHSA-r7j8-5h9c-f6fx)
+- _Security:_ Path Traversal in file update API. [GHSA-qf5v-rp47-55gg](https://github.com/gogs/gogs/security/advisories/GHSA-qf5v-rp47-55gg)
+- _Security:_ Argument Injection in the built-in SSH server. [GHSA-vm62-9jw3-c8w3](https://github.com/gogs/gogs/security/advisories/GHSA-vm62-9jw3-c8w3)
+- _Security:_ Deletion of internal files. [GHSA-ccqv-43vm-4f3w](https://github.com/gogs/gogs/security/advisories/GHSA-ccqv-43vm-4f3w)
+- _Security:_ Argument Injection during changes preview. [GHSA-9pp6-wq8c-3w2c](https://github.com/gogs/gogs/security/advisories/GHSA-9pp6-wq8c-3w2c)
+- _Security:_ Argument Injection when tagging new releases. [GHSA-m27m-h5gj-wwmg](https://github.com/gogs/gogs/security/advisories/GHSA-m27m-h5gj-wwmg)
+- Use the non-deprecated section name `[email]` during installation for email settings. [#7704](https://github.com/gogs/gogs/pull/7704)
+- Use the non-deprecated section name `[email] PASSWORD` during installation for email password. [#7807](https://github.com/gogs/gogs/pull/7807)
+- Make purple template label color to actually use the hexcode of purple. [#7722](https://github.com/gogs/gogs/pull/7722)
+
+## 0.13.0
+
+### Added
+
+- Support using personal access token in the password field. [#3866](https://github.com/gogs/gogs/issues/3866)
+- An unlisted option is added when create or migrate a repository. Unlisted repositories are public but not being listed for users without direct access in the UI. [#5733](https://github.com/gogs/gogs/issues/5733)
+- New API endpoint `PUT /repos/:owner/:repo/contents/:path` for creating and update repository contents. [#5967](https://github.com/gogs/gogs/issues/5967)
+- New configuration option `[git.timeout] DIFF` for customizing operation timeout of `git diff`. [#6315](https://github.com/gogs/gogs/issues/6315)
+- New configuration option `[server] SSH_SERVER_MACS` for setting list of accepted MACs for connections to builtin SSH server. [#6434](https://github.com/gogs/gogs/issues/6434)
+- New configuration option `[repository] DEFAULT_BRANCH` for setting default branch name for new repositories. [#7291](https://github.com/gogs/gogs/issues/7291)
+- New configuration option `[server] SSH_SERVER_ALGORITHMS` for specifying the list of accepted key exchange algorithms for connections to builtin SSH server. [#7345](https://github.com/gogs/gogs/pull/7345)
+- Support specifying custom schema for PostgreSQL. [#6695](https://github.com/gogs/gogs/pull/6695)
+- Support rendering Mermaid diagrams in Markdown. [#6776](https://github.com/gogs/gogs/pull/6776)
+- Docker: Allow passing extra arguments to the `backup` command. [#7060](https://github.com/gogs/gogs/pull/7060)
+- New languages support: Mongolian, Romanian. [#6510](https://github.com/gogs/gogs/pull/6510) [#7082](https://github.com/gogs/gogs/pull/7082)
+
+### Changed
+
+- The default branch has been changed to `main`. [#6285](https://github.com/gogs/gogs/pull/6285)
+- MSSQL as database backend is deprecated, installation page no longer shows it as an option. Existing installations and manually craft configuration file continue to work. [#6295](https://github.com/gogs/gogs/pull/6295)
+- Use [Task](https://github.com/go-task/task) as the build tool. [#6297](https://github.com/gogs/gogs/pull/6297)
+- The required Go version to compile source code changed to 1.18.
+- Access tokens are now stored using their SHA256 hashes instead of raw values. [#7008](https://github.com/gogs/gogs/pull/7008)
+
+### Fixed
+
+- Unable to use LDAP authentication on ARM machines. [#6761](https://github.com/gogs/gogs/issues/6761)
+- Unable to choose "Lookup Avatar by mail" in user settings without deleting custom avatar. [#7267](https://github.com/gogs/gogs/pull/7267)
+- Mistakenly include the "data" directory under the custom directory in the Docker setup. [#7343](https://github.com/gogs/gogs/pull/7343)
+- Unable to start after data recovery with an outdated migration version. [#7125](https://github.com/gogs/gogs/issues/7125)
+
+### Removed
+
+- ⚠️ Migrations before 0.12 are removed, installations not on 0.12 should upgrade to it to run the migrations and then upgrade to 0.13.
+- Configuration section `[mailer]` is no longer used, please use `[email]`.
+- Configuration section `[service]` is no longer used, please use `[auth]`.
+- Configuration option `APP_NAME` is no longer used, please use `BRAND_NAME`.
+- Configuration option `[security] REVERSE_PROXY_AUTHENTICATION_USER` is no longer used, please use `[auth] REVERSE_PROXY_AUTHENTICATION_HEADER`.
+- Configuration option `[auth] ACTIVE_CODE_LIVE_MINUTES` is no longer used, please use `[auth] ACTIVATE_CODE_LIVES`.
+- Configuration option `[auth] RESET_PASSWD_CODE_LIVE_MINUTES` is no longer used, please use `[auth] RESET_PASSWORD_CODE_LIVES`.
+- Configuration option `[auth] ENABLE_CAPTCHA` is no longer used, please use `[auth] ENABLE_REGISTRATION_CAPTCHA`.
+- Configuration option `[auth] ENABLE_NOTIFY_MAIL` is no longer used, please use `[user] ENABLE_EMAIL_NOTIFICATION`.
+- Configuration option `[auth] REGISTER_EMAIL_CONFIRM` is no longer used, please use `[auth] REQUIRE_EMAIL_CONFIRMATION`.
+- Configuration option `[session] GC_INTERVAL_TIME` is no longer used, please use `[session] GC_INTERVAL`.
+- Configuration option `[session] SESSION_LIFE_TIME` is no longer used, please use `[session] MAX_LIFE_TIME`.
+- Configuration option `[server] ROOT_URL` is no longer used, please use `[server] EXTERNAL_URL`.
+- Configuration option `[server] LANDING_PAGE` is no longer used, please use `[server] LANDING_URL`.
+- Configuration option `[database] DB_TYPE` is no longer used, please use `[database] TYPE`.
+- Configuration option `[database] PASSWD` is no longer used, please use `[database] PASSWORD`.
+- Remove option to use Makefile as the build tool. [#6980](https://github.com/gogs/gogs/pull/6980)
+
+## 0.12.11
+
+### Fixed
+
+- _Security:_ Stored XSS for issue assignees. [#7145](https://github.com/gogs/gogs/issues/7145)
+- _Security:_ OS Command Injection in repo editor on case-insensitive file systems. [#7030](https://github.com/gogs/gogs/issues/7030)
+- Unable to render repository pages with implicit submodules (e.g. `get submodule "REDACTED": revision does not exist`). [#6436](https://github.com/gogs/gogs/issues/6436)
+
+## 0.12.10
+
+### Changed
+
+- Support using `[security] LOCAL_NETWORK_ALLOWLIST = *` to allow all hostnames. [#7111](https://github.com/gogs/gogs/pull/7111)
+
+### Fixed
+
+- Unable to send webhooks to local network addresses after configured `[security] LOCAL_NETWORK_ALLOWLIST`. [#7074](https://github.com/gogs/gogs/issues/7074)
+
+## 0.12.9
+
+### Fixed
+
+- _Security:_ OS Command Injection in file editor. [#7000](https://github.com/gogs/gogs/issues/7000)
+- _Security:_ Sanitize `DisplayName` in repository issue list. [#7009](https://github.com/gogs/gogs/pull/7009)
+- _Security:_ Path Traversal in file editor on Windows. [#7001](https://github.com/gogs/gogs/issues/7001)
+- _Security:_ Path Traversal in Git HTTP endpoints. [#7002](https://github.com/gogs/gogs/issues/7002)
+- Unable to init repository during creation on Windows. [#6967](https://github.com/gogs/gogs/issues/6967)
+- Mysterious panic on `Value not found for type *repo.HTTPContext`. [#6963](https://github.com/gogs/gogs/issues/6963)
+
+## 0.12.8
+
+### Changed
+
+- All users (including admins) need to use the configuration option `[security] LOCAL_NETWORK_ALLOWLIST` to allow repository migration and webhooks to be able to access local network addresses, which is a comma separated list of hostnames. [#6988](https://github.com/gogs/gogs/pull/6988)
+
+### Fixed
+
+- _Security:_ SSRF in webhook. [#6901](https://github.com/gogs/gogs/issues/6901)
+- _Security:_ XSS in cookies. [#6953](https://github.com/gogs/gogs/issues/6953)
+- _Security:_ OS Command Injection in file uploading. [#6968](https://github.com/gogs/gogs/issues/6968)
+- _Security:_ Remote Command Execution in file editing. [#6555](https://github.com/gogs/gogs/issues/6555)
+
+## 0.12.7
+
+### Fixed
+
+- _Security:_ Stored XSS in issues. [#6919](https://github.com/gogs/gogs/issues/6919)
+- Invalid character in `Access-Control-Allow-Credentials` response header. [#4983](https://github.com/gogs/gogs/issues/4983)
+- Mysterious `ssh: overflow reading version string` errors from builtin SSH server. [#6882](https://github.com/gogs/gogs/issues/6882)
+
+## 0.12.6
+
+### Fixed
+
+- _Security:_ Remote command execution in file uploading. [#6833](https://github.com/gogs/gogs/issues/6833)
+- _Regression:_ Unable to migrate repository from other local Git hosting. Added a new configuration option `[security] LOCAL_NETWORK_ALLOWLIST`, which is a comma separated list of hostnames that are explicitly allowed to be accessed within the local network. [#6841](https://github.com/gogs/gogs/issues/6841)
+- Slow start of Docker containers using NAS devices. [#6554](https://github.com/gogs/gogs/issues/6554)
+
+## 0.12.5
+
+### Fixed
+
+- _Security:_ Potential SSRF in repository migration. [#6754](https://github.com/gogs/gogs/issues/6754)
+- _Security:_ Improper PAM authorization handling. [#6810](https://github.com/gogs/gogs/issues/6810)
+
+## 0.12.4
+
+### Fixed
+
+- _Security:_ Potential SSRF attack by CRLF injection via repository migration. [#6413](https://github.com/gogs/gogs/issues/6413)
+- _Regression:_ Fixed smart links for issues stops rendering. [#6506](https://github.com/gogs/gogs/issues/6506)
+- Added `X-Frame-Options` header to prevent Clickjacking. [#6409](https://github.com/gogs/gogs/issues/6409)
+
+## 0.12.3
+
+### Fixed
+
+- _Regression:_ When running Gogs on Windows, push commits no longer fail on a daily basis with the error "pre-receive hook declined". [#6316](https://github.com/gogs/gogs/issues/6316)
+- Auto-linked commit SHAs now have correct links. [#6300](https://github.com/gogs/gogs/issues/6300)
+- Git LFS client (with version >= 2.5.0) wasn't able to upload files with known format (e.g. PNG, JPEG), and the server is expecting the HTTP Header `Content-Type` to be `application/octet-stream`. The server now tells the LFS client to always use `Content-Type: application/octet-stream` when upload files.
+
+## 0.12.2
+
+### Fixed
+
+- _Regression:_ Pages are correctly rendered when requesting `?go-get=1` for subdirectories. [#6314](https://github.com/gogs/gogs/issues/6314)
+- _Regression:_ Submodule with a relative path is linked correctly. [#6319](https://github.com/gogs/gogs/issues/6319)
+- Backup can be processed when `--target` is specified on Windows. [#6339](https://github.com/gogs/gogs/issues/6339)
+- Commit message contains keywords look like an issue reference no longer fails the push entirely. [#6289](https://github.com/gogs/gogs/issues/6289)
+
+## 0.12.1
+
+### Fixed
+
+- The `updated_at` field is now correctly updated when updates an issue. [#6209](https://github.com/gogs/gogs/issues/6209)
+- Fixed a regression which created `login_source.cfg` column to have `VARCHAR(255)` instead of `TEXT` in MySQL. [#6280](https://github.com/gogs/gogs/issues/6280)
+
+## 0.12.0
+
+### Added
+
+- Support for Git LFS, you can read documentation for both [user](https://github.com/gogs/gogs/blob/main/docs/user/lfs.md) and [admin](https://github.com/gogs/gogs/blob/main/docs/admin/lfs.md). [#1322](https://github.com/gogs/gogs/issues/1322)
+- Allow admin to remove observers from the repository. [#5803](https://github.com/gogs/gogs/pull/5803)
+- Use `Last-Modified` HTTP header for raw files. [#5811](https://github.com/gogs/gogs/issues/5811)
+- Support syntax highlighting for SAS code files (i.e. `.r`, `.sas`, `.tex`, `.yaml`). [#5856](https://github.com/gogs/gogs/pull/5856)
+- Able to fill in pull request title with a template. [#5901](https://github.com/gogs/gogs/pull/5901)
+- Able to override static files under `public/` directory, please refer to [documentation](https://gogs.io/docs/features/custom_template) for usage. [#5920](https://github.com/gogs/gogs/pull/5920)
+- New API endpoint `GET /admin/teams/:teamid/members` to list members of a team. [#5877](https://github.com/gogs/gogs/issues/5877)
+- Support backup with retention policy for Docker deployments. [#6140](https://github.com/gogs/gogs/pull/6140)
+
+### Changed
+
+- The organization profile page has changed to display at most 12 members. [#5506](https://github.com/gogs/gogs/issues/5506)
+- The required Go version to compile source code changed to 1.14.
+- All assets are now embedded into binary and served from memory by default. Set `[server] LOAD_ASSETS_FROM_DISK = true` to load them from disk. [#5920](https://github.com/gogs/gogs/pull/5920)
+- Application and Go versions are removed from page footer and only show in the admin dashboard.
+- Build tag for running as Windows Service has been changed from `miniwinsvc` to `minwinsvc`.
+- Configuration option `APP_NAME` is deprecated and will end support in 0.13.0, please start using `BRAND_NAME`.
+- Configuration option `[server] ROOT_URL` is deprecated and will end support in 0.13.0, please start using `[server] EXTERNAL_URL`.
+- Configuration option `[server] LANDING_PAGE` is deprecated and will end support in 0.13.0, please start using `[server] LANDING_URL`.
+- Configuration option `[database] DB_TYPE` is deprecated and will end support in 0.13.0, please start using `[database] TYPE`.
+- Configuration option `[database] PASSWD` is deprecated and will end support in 0.13.0, please start using `[database] PASSWORD`.
+- Configuration option `[security] REVERSE_PROXY_AUTHENTICATION_USER` is deprecated and will end support in 0.13.0, please start using `[auth] REVERSE_PROXY_AUTHENTICATION_HEADER`.
+- Configuration section `[mailer]` is deprecated and will end support in 0.13.0, please start using `[email]`.
+- Configuration section `[service]` is deprecated and will end support in 0.13.0, please start using `[auth]`.
+- Configuration option `[auth] ACTIVE_CODE_LIVE_MINUTES` is deprecated and will end support in 0.13.0, please start using `[auth] ACTIVATE_CODE_LIVES`.
+- Configuration option `[auth] RESET_PASSWD_CODE_LIVE_MINUTES` is deprecated and will end support in 0.13.0, please start using `[auth] RESET_PASSWORD_CODE_LIVES`.
+- Configuration option `[auth] REGISTER_EMAIL_CONFIRM` is deprecated and will end support in 0.13.0, please start using `[auth] REQUIRE_EMAIL_CONFIRMATION`.
+- Configuration option `[auth] ENABLE_CAPTCHA` is deprecated and will end support in 0.13.0, please start using `[auth] ENABLE_REGISTRATION_CAPTCHA`.
+- Configuration option `[auth] ENABLE_NOTIFY_MAIL` is deprecated and will end support in 0.13.0, please start using `[user] ENABLE_EMAIL_NOTIFICATION`.
+- Configuration option `[session] GC_INTERVAL_TIME` is deprecated and will end support in 0.13.0, please start using `[session] GC_INTERVAL`.
+- Configuration option `[session] SESSION_LIFE_TIME` is deprecated and will end support in 0.13.0, please start using `[session] MAX_LIFE_TIME`.
+- The name `-` is reserved and cannot be used for users or organizations.
+
+### Fixed
+
+- [Security] Potential open redirection with i18n.
+- [Security] Potential ability to delete files outside a repository.
+- [Security] Potential ability to set primary email on others' behalf from their verified emails.
+- [Security] Potential XSS attack via `.ipynb`. [#5170](https://github.com/gogs/gogs/issues/5170)
+- [Security] Potential SSRF attack via webhooks. [#5366](https://github.com/gogs/gogs/issues/5366)
+- [Security] Potential CSRF attack in admin panel. [#5367](https://github.com/gogs/gogs/issues/5367)
+- [Security] Potential stored XSS attack in some browsers. [#5397](https://github.com/gogs/gogs/issues/5397)
+- [Security] Potential RCE on mirror repositories. [#5767](https://github.com/gogs/gogs/issues/5767)
+- [Security] Potential XSS attack with raw markdown API. [#5907](https://github.com/gogs/gogs/pull/5907)
+- File both modified and renamed within a commit treated as separate files. [#5056](https://github.com/gogs/gogs/issues/5056)
+- Unable to restore the database backup to MySQL 8.0 with syntax error. [#5602](https://github.com/gogs/gogs/issues/5602)
+- Open/close milestone redirects to a 404 page. [#5677](https://github.com/gogs/gogs/issues/5677)
+- Disallow multiple tokens with same name. [#5587](https://github.com/gogs/gogs/issues/5587) [#5820](https://github.com/gogs/gogs/pull/5820)
+- Enable Federated Avatar Lookup could cause server to crash. [#5848](https://github.com/gogs/gogs/issues/5848)
+- Private repositories are hidden in the organization's view. [#5869](https://github.com/gogs/gogs/issues/5869)
+- Users have access to base repository cannot view commits in forks. [#5878](https://github.com/gogs/gogs/issues/5878)
+- Server error when changing email address in user settings page. [#5899](https://github.com/gogs/gogs/issues/5899)
+- Fall back to use RFC 3339 as time layout when misconfigured. [#6098](https://github.com/gogs/gogs/issues/6098)
+- Unable to update team with server error. [#6185](https://github.com/gogs/gogs/issues/6185)
+- Webhooks are not fired after push when `[service] REQUIRE_SIGNIN_VIEW = true`.
+- Files with identical content are randomly displayed one of them.
+
+### Removed
+
+- Configuration option `[other] SHOW_FOOTER_VERSION`
+- Configuration option `[server] STATIC_ROOT_PATH`
+- Configuration option `[repository] MIRROR_QUEUE_LENGTH`
+- Configuration option `[repository] PULL_REQUEST_QUEUE_LENGTH`
+- Configuration option `[session] ENABLE_SET_COOKIE`
+- Configuration option `[release.attachment] PATH`
+- Configuration option `[webhook] QUEUE_LENGTH`
+- Build tag `sqlite`, which means CGO is now required.
+
+---
+
+**Older change logs can be found on [GitHub](https://github.com/gogs/gogs/releases?after=v0.12.0).**
diff --git a/CLAUDE.md b/CLAUDE.md
new file mode 120000
index 00000000000..47dc3e3d863
--- /dev/null
+++ b/CLAUDE.md
@@ -0,0 +1 @@
+AGENTS.md
\ No newline at end of file
diff --git a/CODEOWNERS b/CODEOWNERS
new file mode 100644
index 00000000000..dd3d002b026
--- /dev/null
+++ b/CODEOWNERS
@@ -0,0 +1,2 @@
+# Default
+* @gogs/core
diff --git a/Dockerfile b/Dockerfile
index 3a3c4051183..821d89f1a13 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,22 +1,56 @@
-FROM alpine:3.3
-MAINTAINER jp@roemer.im
+FROM --platform=$BUILDPLATFORM node:24-alpine AS webbuilder
+RUN corepack enable
+WORKDIR /src
+COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./
+COPY web ./web
+COPY conf/locale ./conf/locale
+RUN pnpm install --frozen-lockfile
+RUN pnpm --filter gogs-web run build
-# Install system utils & Gogs runtime dependencies
-ADD https://github.com/tianon/gosu/releases/download/1.9/gosu-amd64 /usr/sbin/gosu
-RUN chmod +x /usr/sbin/gosu \
- && apk --no-cache --no-progress add ca-certificates bash git linux-pam s6 curl openssh socat tzdata
+FROM golang:1.26-alpine3.23 AS binarybuilder
+RUN apk --no-cache --no-progress add --virtual \
+ build-deps \
+ build-base \
+ git \
+ linux-pam-dev
-ENV GOGS_CUSTOM /data/gogs
+WORKDIR /gogs.io/gogs
+COPY . .
+COPY --from=webbuilder /src/public/dist ./public/dist
-COPY . /app/gogs/
-WORKDIR /app/gogs/
-RUN ./docker/build.sh
+RUN go build -v -trimpath -tags "pam prod" \
+ -ldflags "-X 'gogs.io/gogs/internal/conf.BuildTime=$(date -u '+%Y-%m-%d %I:%M:%S %Z')' -X 'gogs.io/gogs/internal/conf.BuildCommit=$(git rev-parse HEAD)'" \
+ -o .bin/gogs ./cmd/gogs
-# Configure LibC Name Service
+FROM alpine:3.23
+RUN apk --no-cache --no-progress add \
+ bash \
+ ca-certificates \
+ curl \
+ git \
+ linux-pam \
+ openssh \
+ s6 \
+ shadow \
+ socat \
+ tzdata \
+ rsync \
+ "zlib>1.3.2"
+
+ENV GOGS_CUSTOM=/data/gogs
+
+# Configure LibC Name Service
COPY docker/nsswitch.conf /etc/nsswitch.conf
-# Configure Docker Container
-VOLUME ["/data"]
+WORKDIR /app/gogs
+COPY docker ./docker
+COPY --from=binarybuilder /gogs.io/gogs/.bin/gogs .
+
+RUN ./docker/build/finalize.sh
+
+# Configure Docker Container
+VOLUME ["/data", "/backup"]
EXPOSE 22 3000
-ENTRYPOINT ["docker/start.sh"]
-CMD ["/bin/s6-svscan", "/app/gogs/docker/s6/"]
+HEALTHCHECK CMD (curl --noproxy localhost -o /dev/null -sS http://localhost:3000/healthcheck) || exit 1
+ENTRYPOINT ["/app/gogs/docker/start.sh"]
+CMD ["/usr/bin/s6-svscan", "/app/gogs/docker/s6/"]
diff --git a/Dockerfile.next b/Dockerfile.next
new file mode 100644
index 00000000000..e2f9694934d
--- /dev/null
+++ b/Dockerfile.next
@@ -0,0 +1,62 @@
+FROM --platform=$BUILDPLATFORM node:24-alpine AS webbuilder
+RUN corepack enable
+WORKDIR /src
+COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./
+COPY web ./web
+COPY conf/locale ./conf/locale
+RUN pnpm install --frozen-lockfile
+RUN pnpm --filter gogs-web run build
+
+FROM golang:1.26-alpine3.23 AS binarybuilder
+RUN apk --no-cache --no-progress add --virtual \
+ build-deps \
+ build-base \
+ git \
+ linux-pam-dev
+
+WORKDIR /gogs.io/gogs
+COPY . .
+COPY --from=webbuilder /src/public/dist ./public/dist
+
+RUN go build -v -trimpath -tags "pam prod" \
+ -ldflags "-X 'gogs.io/gogs/internal/conf.BuildTime=$(date -u '+%Y-%m-%d %I:%M:%S %Z')' -X 'gogs.io/gogs/internal/conf.BuildCommit=$(git rev-parse HEAD)'" \
+ -o .bin/gogs ./cmd/gogs
+
+FROM alpine:3.23
+
+# Create git user and group with fixed UID/GID at build time for better K8s security context support.
+# Using 1000:1000 as it's a common non-root UID/GID that works well with most volume permission setups.
+ARG GOGS_UID=1000
+ARG GOGS_GID=1000
+RUN addgroup -g ${GOGS_GID} -S git && \
+ adduser -u ${GOGS_UID} -G git -H -D -g 'Gogs Git User' -h /data/git -s /bin/sh git
+
+RUN apk --no-cache --no-progress add \
+ bash \
+ ca-certificates \
+ curl \
+ git \
+ linux-pam \
+ openssh-keygen \
+ "zlib>1.3.2"
+
+ENV GOGS_CUSTOM=/data/gogs
+
+WORKDIR /app/gogs
+COPY --from=binarybuilder /gogs.io/gogs/.bin/gogs .
+COPY docker-next/start.sh .
+RUN chmod +x start.sh && \
+ mkdir -p /data && \
+ ln -s /data/git /home/git && \
+ chown -R git:git /app/gogs /data
+
+# Configure Docker Container
+VOLUME ["/data", "/backup"]
+EXPOSE 22 3000
+HEALTHCHECK CMD (curl --noproxy localhost -o /dev/null -sS http://localhost:3000/healthcheck) || exit 1
+
+# Run as non-root user by default for better K8s security context support.
+USER git:git
+
+ENTRYPOINT ["/app/gogs/start.sh"]
+CMD ["/app/gogs/gogs", "web"]
diff --git a/Dockerfile.rpi b/Dockerfile.rpi
deleted file mode 100644
index 8fbe8252b69..00000000000
--- a/Dockerfile.rpi
+++ /dev/null
@@ -1,25 +0,0 @@
-FROM hypriot/rpi-alpine-scratch:v3.2
-MAINTAINER jp@roemer.im, raxetul@gmail.com
-
-# Install system utils & Gogs runtime dependencies
-ADD https://github.com/tianon/gosu/releases/download/1.9/gosu-armhf /usr/sbin/gosu
-RUN chmod +x /usr/sbin/gosu \
- && echo "http://dl-4.alpinelinux.org/alpine/v3.3/main/" | tee /etc/apk/repositories \
- && echo "http://dl-4.alpinelinux.org/alpine/v3.3/community/" | tee -a /etc/apk/repositories \
- && apk -U --no-progress upgrade && rm -f /var/cache/apk/APKINDEX.* \
- && apk --no-cache --no-progress add ca-certificates bash git linux-pam s6 curl openssh socat tzdata
-
-ENV GOGS_CUSTOM /data/gogs
-
-COPY . /app/gogs/
-WORKDIR /app/gogs/
-RUN ./docker/build.sh
-
-# Configure LibC Name Service
-COPY docker/nsswitch.conf /etc/nsswitch.conf
-
-# Configure Docker Container
-VOLUME ["/data"]
-EXPOSE 22 3000
-ENTRYPOINT ["docker/start.sh"]
-CMD ["/bin/s6-svscan", "/app/gogs/docker/s6/"]
diff --git a/Makefile b/Makefile
deleted file mode 100644
index c321f82badf..00000000000
--- a/Makefile
+++ /dev/null
@@ -1,74 +0,0 @@
-LDFLAGS += -X "github.com/gogits/gogs/modules/setting.BuildTime=$(shell date -u '+%Y-%m-%d %I:%M:%S %Z')"
-LDFLAGS += -X "github.com/gogits/gogs/modules/setting.BuildGitHash=$(shell git rev-parse HEAD)"
-
-DATA_FILES := $(shell find conf | sed 's/ /\\ /g')
-LESS_FILES := $(wildcard public/less/gogs.less public/less/_*.less)
-GENERATED := modules/bindata/bindata.go public/css/gogs.css
-
-TAGS = ""
-BUILD_FLAGS = "-v"
-
-RELEASE_ROOT = "release"
-RELEASE_GOGS = "release/gogs"
-NOW = $(shell date -u '+%Y%m%d%I%M%S')
-GOVET = go tool vet -composites=false -methods=false -structtags=false
-
-.PHONY: build pack release bindata clean
-
-.IGNORE: public/css/gogs.css
-
-all: build
-
-check: test
-
-dist: release
-
-govet:
- $(GOVET) gogs.go
- $(GOVET) models modules routers
-
-build: $(GENERATED)
- go install $(BUILD_FLAGS) -ldflags '$(LDFLAGS)' -tags '$(TAGS)'
- cp '$(GOPATH)/bin/gogs' .
-
-build-dev: $(GENERATED) govet
- go install $(BUILD_FLAGS) -tags '$(TAGS)'
- cp '$(GOPATH)/bin/gogs' .
-
-build-dev-race: $(GENERATED) govet
- go install $(BUILD_FLAGS) -race -tags '$(TAGS)'
- cp '$(GOPATH)/bin/gogs' .
-
-pack:
- rm -rf $(RELEASE_GOGS)
- mkdir -p $(RELEASE_GOGS)
- cp -r gogs LICENSE README.md README_ZH.md templates public scripts $(RELEASE_GOGS)
- rm -rf $(RELEASE_GOGS)/public/config.codekit $(RELEASE_GOGS)/public/less
- cd $(RELEASE_ROOT) && zip -r gogs.$(NOW).zip "gogs"
-
-release: build pack
-
-bindata: modules/bindata/bindata.go
-
-modules/bindata/bindata.go: $(DATA_FILES)
- go-bindata -o=$@ -ignore="\\.DS_Store|README.md|TRANSLATORS" -pkg=bindata conf/...
-
-less: public/css/gogs.css
-
-public/css/gogs.css: $(LESS_FILES)
- lessc $< $@
-
-clean:
- go clean -i ./...
-
-clean-mac: clean
- find . -name ".DS_Store" -print0 | xargs -0 rm
-
-test:
- go test -cover -race ./...
-
-fixme:
- grep -rnw "FIXME" routers models modules
-
-todo:
- grep -rnw "TODO" routers models modules
diff --git a/README.md b/README.md
index 8e10c59af8d..f381854e9e3 100644
--- a/README.md
+++ b/README.md
@@ -1,138 +1,111 @@
-Gogs - Go Git Service [](https://travis-ci.org/gogits/gogs) [](https://crowdin.com/project/gogs) [](https://gitter.im/gogits/gogs?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
-=====================
-
-
-##### Current tip version: 0.9.100 (see [Releases](https://github.com/gogits/gogs/releases) for binary versions or submit a task on [alpha stage automated binary building system](https://build.gogs.io/))
-
-| Web | UI | Preview |
-|:-------------:|:-------:|:-------:|
-||||
-||||
-||||
-
-### Important Notes
-
-1. **YOU MUST READ [Contributing Code](https://github.com/gogits/gogs/wiki/Contributing-Code) BEFORE STARTING TO WORK ON A PULL REQUEST**.
-2. Due to testing purpose, data of [try.gogs.io](https://try.gogs.io) was reset in **Jan 28, 2015** and will reset multiple times after. Please do **NOT** put your important data on the site.
-3. The demo site [try.gogs.io](https://try.gogs.io) is running under `develop` branch.
-4. If you think there are vulnerabilities in the project, please talk privately to **u@gogs.io**. Thanks!
-5. If you're interested in using APIs, we have experimental support with [documentation](https://github.com/gogits/go-gogs-client/wiki).
-6. If your team/company is using Gogs and would like to put your logo on [our website](https://gogs.io), contact us by any means.
-
-[简体中文](README_ZH.md)
-
-## Purpose
-
-The goal of this project is to make the easiest, fastest, and most painless way of setting up a self-hosted Git service. With Go, this can be done with an independent binary distribution across **ALL platforms** that Go supports, including Linux, Mac OS X, Windows and ARM.
-
-## Overview
-
-- Please see the [Documentation](https://gogs.io/docs/intro) for common usages and change log.
-- See the [Trello Board](https://trello.com/b/uxAoeLUl/gogs-go-git-service) to follow the develop team.
+
+
+## 🔮 Vision
+
+The Gogs (`/gɑgz/`) project aims to build a simple, stable and extensible self-hosted Git service that can be set up in the most painless way. With Go, this can be done with an independent binary distribution across all platforms that Go supports, including Linux, macOS, Windows and ARM-based systems.
+
+## 📡 Overview
+
+- Please visit [our home page](https://gogs.io) for user documentation.
+- Please refer to [CHANGELOG.md](CHANGELOG.md) for list of changes in each releases.
- Want to try it before doing anything else? Do it [online](https://try.gogs.io/gogs/gogs)!
-- Having trouble? Get help with [Troubleshooting](https://gogs.io/docs/intro/troubleshooting.html) or [User Forum](https://discuss.gogs.io/).
-- Want to help with localization? Check out the [guide](https://gogs.io/docs/features/i18n.html)!
-
-## Features
-
-- Activity timeline
-- SSH and HTTP/HTTPS protocols
-- SMTP/LDAP/Reverse proxy authentication
-- Reverse proxy with sub-path
-- Account/Organization/Repository management
-- Add/Remove repository collaborators
-- Repository/Organization webhooks (including Slack)
-- Repository Git hooks/deploy keys
-- Repository issues, pull requests and wiki
-- Migrate and mirror repository and its wiki
-- Web editor for repository files and wiki
-- Gravatar and Federated avatar with custom source
-- Mail service
-- Administration panel
-- Supports MySQL, PostgreSQL, SQLite3 and [TiDB](https://github.com/pingcap/tidb) (experimental)
-- Multi-language support ([20 languages](https://crowdin.com/project/gogs))
-
-## System Requirements
-
-- A cheap Raspberry Pi is powerful enough for basic functionality.
-- 2 CPU cores and 1GB RAM would be the baseline for teamwork.
-
-## Browser Support
+- Having trouble? Help yourself with [troubleshooting](https://gogs.io/asking/troubleshooting) or ask questions in [Discussions](https://github.com/gogs/gogs/discussions).
+- Want to help with localization? Check out the [localization documentation](https://gogs.io/advancing/localization).
+- Ready to get hands dirty? Read our [contributing guide](.github/CONTRIBUTING.md).
+- Hmm... What about APIs? We have experimental support with [documentation](https://gogs.io/api-reference).
+
+## 💌 Features
+
+- User dashboard, user profile and activity timeline.
+- Access repositories via SSH, HTTP and HTTPS protocols.
+- User, organization and repository management.
+- Repository and organization webhooks, including Slack, Discord and Dingtalk.
+- Repository Git hooks, deploy keys and Git LFS.
+- Repository issues, pull requests, wiki, protected branches and collaboration.
+- Migrate and mirror repositories with wiki from other code hosts.
+- Web editor for quick editing repository files and wiki.
+- Jupyter Notebook and PDF rendering.
+- Authentication via SMTP, LDAP, reverse proxy, GitHub.com and GitHub Enterprise with 2FA.
+- Customize HTML templates, static files and many others.
+- Rich database backend support, including PostgreSQL, MySQL, SQLite3 or any database backend that speaks one of those protocols.
+- Have localization over [31 languages](https://crowdin.com/project/gogs).
+
+## 💾 Hardware requirements
+
+- A Raspberry Pi or $5 Digital Ocean Droplet is more than enough to get you started. Some even use 64MB RAM Docker [CaaS](https://www.docker.com/blog/containers-as-a-service-caas/).
+- 2 CPU cores and 512MB RAM would be the baseline for teamwork.
+- Increase CPU cores when your team size gets significantly larger, memory footprint remains low.
+
+## 💻 Browser support
- Please see [Semantic UI](https://github.com/Semantic-Org/Semantic-UI#browser-support) for specific versions of supported browsers.
-- The official support minimal size is **1024*768**, UI may still looks right in smaller size but no promises and fixes.
+- The smallest resolution officially supported is **1024*768**, however the UI may still look right in smaller resolutions, but no promises or fixes.
-## Installation
+## 📜 Installation
-Make sure you install the [prerequisites](https://gogs.io/docs/installation) first.
+Please follow [the guide in our documentation](https://gogs.io/getting-started/installation).
-There are 5 ways to install Gogs:
+### Deploy to cloud
-- [Install from binary](https://gogs.io/docs/installation/install_from_binary.html)
-- [Install from source](https://gogs.io/docs/installation/install_from_source.html)
-- [Install from packages](https://gogs.io/docs/installation/install_from_packages.html)
-- [Ship with Docker](https://github.com/gogits/gogs/tree/master/docker)
-- [Install with Vagrant](https://github.com/geerlingguy/ansible-vagrant-examples/tree/master/gogs)
+- [Cloudron](https://www.cloudron.io/store/io.gogs.cloudronapp.html)
+- [YunoHost](https://github.com/YunoHost-Apps/gogs_ynh)
+- [alwaysdata](https://www.alwaysdata.com/en/marketplace/gogs/)
### Tutorials
+- [Private Git Web Portal in Raspberry PI With Gogs](https://peppe8o.com/private-git-web-portal-in-raspberry-pi-with-gogs/)
- [How To Set Up Gogs on Ubuntu 14.04](https://www.digitalocean.com/community/tutorials/how-to-set-up-gogs-on-ubuntu-14-04)
-- [Run your own GitHub-like service with the help of Docker](http://blog.hypriot.com/post/run-your-own-github-like-service-with-docker/)
-- [Dockerized Gogs git server and alpine postgres in 20 minutes or less](http://garthwaite.org/docker-gogs.html)
-- [Host Your Own Private GitHub with Gogs.io](https://eladnava.com/host-your-own-private-github-with-gogs-io/)
-- [使用 Gogs 搭建自己的 Git 服务器](https://mynook.info/blog/post/host-your-own-git-server-using-gogs) (Chinese)
-- [阿里云上 Ubuntu 14.04 64 位安装 Gogs](http://my.oschina.net/luyao/blog/375654) (Chinese)
+- [Run your own GitHub-like service with the help of Docker](https://blog.hypriot.com/post/run-your-own-github-like-service-with-docker/)
+- [Dockerized Gogs git server and alpine postgres in 20 minutes or less](https://garthwaite.org/docker-gogs.html)
+- [Host Your Own Private GitHub with Gogs](https://eladnava.com/host-your-own-private-github-with-gogs-io/)
+- [使用 Gogs 搭建自己的 Git 服务器](https://blog.mynook.info/post/host-your-own-git-server-using-gogs/) (Chinese)
+- [阿里云上 Ubuntu 14.04 64 位安装 Gogs](https://my.oschina.net/luyao/blog/375654) (Chinese)
- [Installing Gogs on FreeBSD](https://www.codejam.info/2015/03/installing-gogs-on-freebsd.html)
-- [Gogs on Raspberry Pi](http://blog.meinside.pe.kr/Gogs-on-Raspberry-Pi/)
-- [Cloudflare Full SSL with GOGS (Go Git Service) using NGINX](http://www.listekconsulting.com/articles/cloudflare-full-ssl-with-gogs-go-git-service-using-nginx/)
-
-### Screencasts
-
- [How to install Gogs on a Linux Server (DigitalOcean)](https://www.youtube.com/watch?v=deSfX0gqefE)
-- [Instalando Gogs no Ubuntu](https://www.youtube.com/watch?v=4UkHAR1F7ZA) (Português)
-
-### Deploy to Cloud
-- [OpenShift](https://github.com/tkisme/gogs-openshift)
-- [Cloudron](https://cloudron.io/appstore.html#io.gogs.cloudronapp)
-- [Scaleway](https://www.scaleway.com/imagehub/gogs/)
-- [Portal](https://portaldemo.xyz/cloud/)
-- [Sandstorm](https://github.com/cem/gogs-sandstorm)
-- [sloppy.io](https://github.com/sloppyio/quickstarters/tree/master/gogs)
-- [YunoHost](https://github.com/mbugeia/gogs_ynh)
-- [DPlatform](https://github.com/j8r/DPlatform)
+## 📦 Software, service and product support
-## Software and Service Support
-
-- [Drone](https://github.com/drone/drone) (CI)
-- [Fabric8](http://fabric8.io/) (DevOps)
-- [Taiga](https://taiga.io/) (Project Management)
-- [Puppet](https://forge.puppetlabs.com/Siteminds/gogs) (IT)
-- [Kanboard](http://kanboard.net/plugin/gogs-webhook) (Project Management)
-- [BearyChat](https://bearychat.com/) (Team Communication)
-- [HiWork](http://www.hiwork.cc/) (Team Communication)
+- [Jenkins](https://plugins.jenkins.io/gogs-webhook/) (CI)
+- [Puppet](https://forge.puppet.com/modules/Siteminds/gogs) (IT)
+- [Synology](https://www.synology.com) (Docker)
+- [Syncloud](https://syncloud.org/) (App Store)
-### Product Support
+## 🙇♂️ Acknowledgments
-- [Synology](https://www.synology.com) (Docker)
-- [One Space](http://www.onespace.cc) (App Store)
+
-## Acknowledgments
+Other acknowledgments:
-- Router and middleware mechanism of [Macaron](https://github.com/go-macaron/macaron).
-- System Monitor Status is inspired by [GoBlog](https://github.com/fuxiaohei/goblog).
-- Thanks [Rocker](http://weibo.com/rocker1989) for designing Logo.
-- Thanks [Crowdin](https://crowdin.com/project/gogs) for providing open source translation plan.
-- Thanks [DigitalOcean](https://www.digitalocean.com) for hosting home and demo sites.
-- Thanks [KeyCDN](https://www.keycdn.com/) and [QiNiu](http://www.qiniu.com/) for providing CDN service.
+- Thanks [Egon Elbre](https://twitter.com/egonelbre) for designing the original version of the logo.
+- Thanks [Mintlify](https://mintlify.com) for sponsoring open source documentation plan.
+- Thanks [Crowdin](https://crowdin.com) for sponsoring open source translation plan.
+- Thanks [Buildkite](https://buildkite.com) for sponsoring open source CI/CD plan.
-## Contributors
+## 👋 Contributors
-- Ex-team members [@lunny](https://github.com/lunny), [@fuxiaohei](https://github.com/fuxiaohei) and [@slene](https://github.com/slene).
-- See [contributors page](https://github.com/gogits/gogs/graphs/contributors) for full list of contributors.
+- See [contributors page](https://github.com/gogs/gogs/graphs/contributors) for top 100 contributors.
- See [TRANSLATORS](conf/locale/TRANSLATORS) for public list of translators.
-## License
+## ⚖️ License
-This project is under the MIT License. See the [LICENSE](https://github.com/gogits/gogs/blob/master/LICENSE) file for the full license text.
+This project is under the MIT License. See the [LICENSE](https://github.com/gogs/gogs/blob/main/LICENSE) file for the full license text.
diff --git a/README_ZH.md b/README_ZH.md
deleted file mode 100644
index fd02e986569..00000000000
--- a/README_ZH.md
+++ /dev/null
@@ -1,107 +0,0 @@
-Gogs - Go Git Service [](https://travis-ci.org/gogits/gogs)
-=====================
-
-Gogs (Go Git Service) 是一款极易搭建的自助 Git 服务。
-
-## 开发目的
-
-Gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建自助 Git 服务。使用 Go 语言开发使得 Gogs 能够通过独立的二进制分发,并且支持 Go 语言支持的 **所有平台**,包括 Linux、Mac OS X、Windows 以及 ARM 平台。
-
-## 项目概览
-
-- 有关基本用法和变更日志,请通过 [使用手册](https://gogs.io/docs/intro/) 查看。
-- 您可以到 [Trello Board](https://trello.com/b/uxAoeLUl/gogs-go-git-service) 跟随开发团队的脚步。
-- 想要先睹为快?直接去 [在线体验](https://try.gogs.io/gogs/gogs) 。
-- 使用过程中遇到问题?尝试从 [故障排查](https://gogs.io/docs/intro/troubleshooting.html) 页面或 [用户论坛](https://discuss.gogs.io/) 获取帮助。
-- 希望帮助多国语言界面的翻译吗?请立即访问 [详情页面](https://gogs.io/docs/features/i18n.html)!
-
-## 功能特性
-
-- 支持活动时间线
-- 支持 SSH 以及 HTTP/HTTPS 协议
-- 支持 SMTP、LDAP 和反向代理的用户认证
-- 支持反向代理子路径
-- 支持用户、组织和仓库管理系统
-- 支持添加和删除仓库协作者
-- 支持仓库和组织级别 Web 钩子(包括 Slack 集成)
-- 支持仓库 Git 钩子和部署密钥
-- 支持仓库工单(Issue)、合并请求(Pull Request)以及 Wiki
-- 支持迁移和镜像仓库以及它的 Wiki
-- 支持在线编辑仓库文件和 Wiki
-- 支持自定义源的 Gravatar 和 Federated Avatar
-- 支持邮件服务
-- 支持后台管理面板
-- 支持 MySQL、PostgreSQL、SQLite3 和 [TiDB](https://github.com/pingcap/tidb)(实验性支持) 数据库
-- 支持多语言本地化([20 种语言]([more](https://crowdin.com/project/gogs)))
-
-## 系统要求
-
-- 最低的系统硬件要求为一个廉价的树莓派
-- 如果用于团队项目,建议使用 2 核 CPU 及 1GB 内存
-
-## 浏览器支持
-
-- 请根据 [Semantic UI](https://github.com/Semantic-Org/Semantic-UI#browser-support) 查看具体支持的浏览器版本。
-- 官方支持的最小 UI 尺寸为 **1024*768**,UI 不一定会在更小尺寸的设备上被破坏,但我们无法保证且不会修复。
-
-## 安装部署
-
-在安装 Gogs 之前,您需要先安装 [基本环境](https://gogs.io/docs/installation)。
-
-然后,您可以通过以下 5 种方式来安装 Gogs:
-
-- [二进制安装](https://gogs.io/docs/installation/install_from_binary.html)
-- [源码安装](https://gogs.io/docs/installation/install_from_source.html)
-- [包管理安装](https://gogs.io/docs/installation/install_from_packages.html)
-- [采用 Docker 部署](https://github.com/gogits/gogs/tree/master/docker)
-- [通过 Vagrant 安装](https://github.com/geerlingguy/ansible-vagrant-examples/tree/master/gogs)
-
-### 使用教程
-
-- [使用 Gogs 搭建自己的 Git 服务器](https://mynook.info/blog/post/host-your-own-git-server-using-gogs)
-- [阿里云上 Ubuntu 14.04 64 位安装 Gogs](http://my.oschina.net/luyao/blog/375654)
-
-### 云端部署
-
-- [OpenShift](https://github.com/tkisme/gogs-openshift)
-- [Cloudron](https://cloudron.io/appstore.html#io.gogs.cloudronapp)
-- [Scaleway](https://www.scaleway.com/imagehub/gogs/)
-- [Portal](https://portaldemo.xyz/cloud/)
-- [Sandstorm](https://github.com/cem/gogs-sandstorm)
-- [sloppy.io](https://github.com/sloppyio/quickstarters/tree/master/gogs)
-- [YunoHost](https://github.com/mbugeia/gogs_ynh)
-- [DPlatform](https://github.com/j8r/DPlatform)
-
-## 软件及服务支持
-
-- [Drone](https://github.com/drone/drone)(CI)
-- [Fabric8](http://fabric8.io/)(DevOps)
-- [Taiga](https://taiga.io/)(项目管理)
-- [Puppet](https://forge.puppetlabs.com/Siteminds/gogs)(IT)
-- [Kanboard](http://kanboard.net/plugin/gogs-webhook)(项目管理)
-- [BearyChat](https://bearychat.com/)(团队交流)
-- [HiWork](http://www.hiwork.cc/)(团队交流)
-
-### 产品支持
-
-- [Synology](https://www.synology.com)(Docker)
-- [One Space](http://www.onespace.cc)(应用商店)
-
-## 特别鸣谢
-
-- 基于 [Macaron](https://github.com/go-macaron/macaron) 的路由与中间件机制。
-- 基于 [GoBlog](https://github.com/fuxiaohei/goblog) 修改的系统监视状态。
-- 感谢 [Rocker](http://weibo.com/rocker1989) 设计的 Logo。
-- 感谢 [Crowdin](https://crowdin.com/project/gogs) 提供免费的开源项目本地化支持。
-- 感谢 [DigitalOcean](https://www.digitalocean.com) 提供主站和体验站点的服务器赞助。
-- 感谢 [KeyCDN](https://www.keycdn.com/) 和 [七牛云存储](http://www.qiniu.com/) 提供 CDN 服务赞助。
-
-## 贡献成员
-
-- 前团队成员 [@lunny](https://github.com/lunny)、[@fuxiaohei](https://github.com/fuxiaohei) 和 [@slene](https://github.com/slene)。
-- 您可以通过查看 [贡献者页面](https://github.com/gogits/gogs/graphs/contributors) 获取完整的贡献者列表。
-- 您可以通过查看 [TRANSLATORS](conf/locale/TRANSLATORS) 文件获取公开的翻译人员列表。
-
-## 授权许可
-
-本项目采用 MIT 开源授权许可证,完整的授权说明已放置在 [LICENSE](https://github.com/gogits/gogs/blob/master/LICENSE) 文件中。
diff --git a/SECURITY.md b/SECURITY.md
new file mode 100644
index 00000000000..cccfb3cfd94
--- /dev/null
+++ b/SECURITY.md
@@ -0,0 +1,27 @@
+# Security policy
+
+## Supported versions
+
+Only the latest minor version releases are supported (e.g., 0.14) for patching vulnerabilities. You can find the latest minor version in the [GitHub releases](https://github.com/gogs/gogs/releases) page.
+
+Existing vulnerability reports are being tracked in [GitHub Security Advisories](https://github.com/gogs/gogs/security/advisories). Not all accepted GHSA are published.
+
+## Vulnerability lifecycle
+
+> [!important]
+> Starting **Nov 9, 2023 00:00 UTC**, only security vulnerabilities reported through [GitHub Security Advisories](https://github.com/gogs/gogs/security/advisories/new) are accepted.
+> Pre-existing vulnerability reported through https://huntr.dev/ or email (`security@gogs.io`) will continue to be worked through.
+
+1. Report an advisory for the vulnerability.
+ - Please be aware that **only advisories reported in plain English** will be reviewed.
+ - We DO NOT accept vulnerabilities cannot be reproduced on the latest `main` commit.
+1. Project maintainers review the advisory:
+ - Ask clarifying questions
+ - Make sure there was no prior advisory exists for the same vulnerability
+ - Confirm or deny the vulnerability
+1. Once the advisory is accepted, the reporter may submit a patch or wait for project maintainers to patch.
+ - The latter is usually significantly slower.
+1. Patch releases will be made for the supported versions.
+1. After 14 days of the release, publish the corresponding advisory on [GitHub Security Advisories](https://github.com/gogs/gogs/security/advisories).
+
+Thank you for making open source community a better place!
diff --git a/cmd/admin.go b/cmd/admin.go
deleted file mode 100644
index bad36b1c85c..00000000000
--- a/cmd/admin.go
+++ /dev/null
@@ -1,70 +0,0 @@
-// Copyright 2016 The Gogs Authors. All rights reserved.
-// Use of this source code is governed by a MIT-style
-// license that can be found in the LICENSE file.
-
-package cmd
-
-import (
- "fmt"
-
- "github.com/urfave/cli"
-
- "github.com/gogits/gogs/models"
- "github.com/gogits/gogs/modules/setting"
-)
-
-var (
- CmdAdmin = cli.Command{
- Name: "admin",
- Usage: "Preform admin operations on command line",
- Description: `Allow using internal logic of Gogs without hacking into the source code
-to make automatic initialization process more smoothly`,
- Subcommands: []cli.Command{
- subcmdCreateUser,
- },
- }
-
- subcmdCreateUser = cli.Command{
- Name: "create-user",
- Usage: "Create a new user in database",
- Action: runCreateUser,
- Flags: []cli.Flag{
- stringFlag("name", "", "Username"),
- stringFlag("password", "", "User password"),
- stringFlag("email", "", "User email address"),
- boolFlag("admin", "User is an admin"),
- stringFlag("config, c", "custom/conf/app.ini", "Custom configuration file path"),
- },
- }
-)
-
-func runCreateUser(c *cli.Context) error {
- if !c.IsSet("name") {
- return fmt.Errorf("Username is not specified")
- } else if !c.IsSet("password") {
- return fmt.Errorf("Password is not specified")
- } else if !c.IsSet("email") {
- return fmt.Errorf("Email is not specified")
- }
-
- if c.IsSet("config") {
- setting.CustomConf = c.String("config")
- }
-
- setting.NewContext()
- models.LoadConfigs()
- models.SetEngine()
-
- if err := models.CreateUser(&models.User{
- Name: c.String("name"),
- Email: c.String("email"),
- Passwd: c.String("password"),
- IsActive: true,
- IsAdmin: c.Bool("admin"),
- }); err != nil {
- return fmt.Errorf("CreateUser: %v", err)
- }
-
- fmt.Printf("New user '%s' has been successfully created!\n", c.String("name"))
- return nil
-}
diff --git a/cmd/cert.go b/cmd/cert.go
deleted file mode 100644
index 6cd5bfade4f..00000000000
--- a/cmd/cert.go
+++ /dev/null
@@ -1,163 +0,0 @@
-// +build cert
-
-// Copyright 2009 The Go Authors. All rights reserved.
-// Copyright 2014 The Gogs Authors. All rights reserved.
-// Use of this source code is governed by a MIT-style
-// license that can be found in the LICENSE file.
-
-package cmd
-
-import (
- "crypto/ecdsa"
- "crypto/elliptic"
- "crypto/rand"
- "crypto/rsa"
- "crypto/x509"
- "crypto/x509/pkix"
- "encoding/pem"
- "log"
- "math/big"
- "net"
- "os"
- "strings"
- "time"
-
- "github.com/urfave/cli"
-)
-
-var CmdCert = cli.Command{
- Name: "cert",
- Usage: "Generate self-signed certificate",
- Description: `Generate a self-signed X.509 certificate for a TLS server.
-Outputs to 'cert.pem' and 'key.pem' and will overwrite existing files.`,
- Action: runCert,
- Flags: []cli.Flag{
- stringFlag("host", "", "Comma-separated hostnames and IPs to generate a certificate for"),
- stringFlag("ecdsa-curve", "", "ECDSA curve to use to generate a key. Valid values are P224, P256, P384, P521"),
- intFlag("rsa-bits", 2048, "Size of RSA key to generate. Ignored if --ecdsa-curve is set"),
- stringFlag("start-date", "", "Creation date formatted as Jan 1 15:04:05 2011"),
- durationFlag("duration", 365*24*time.Hour, "Duration that certificate is valid for"),
- boolFlag("ca", "whether this cert should be its own Certificate Authority"),
- },
-}
-
-func publicKey(priv interface{}) interface{} {
- switch k := priv.(type) {
- case *rsa.PrivateKey:
- return &k.PublicKey
- case *ecdsa.PrivateKey:
- return &k.PublicKey
- default:
- return nil
- }
-}
-
-func pemBlockForKey(priv interface{}) *pem.Block {
- switch k := priv.(type) {
- case *rsa.PrivateKey:
- return &pem.Block{Type: "RSA PRIVATE KEY", Bytes: x509.MarshalPKCS1PrivateKey(k)}
- case *ecdsa.PrivateKey:
- b, err := x509.MarshalECPrivateKey(k)
- if err != nil {
- log.Fatalf("Unable to marshal ECDSA private key: %v\n", err)
- }
- return &pem.Block{Type: "EC PRIVATE KEY", Bytes: b}
- default:
- return nil
- }
-}
-
-func runCert(ctx *cli.Context) error {
- if len(ctx.String("host")) == 0 {
- log.Fatal("Missing required --host parameter")
- }
-
- var priv interface{}
- var err error
- switch ctx.String("ecdsa-curve") {
- case "":
- priv, err = rsa.GenerateKey(rand.Reader, ctx.Int("rsa-bits"))
- case "P224":
- priv, err = ecdsa.GenerateKey(elliptic.P224(), rand.Reader)
- case "P256":
- priv, err = ecdsa.GenerateKey(elliptic.P256(), rand.Reader)
- case "P384":
- priv, err = ecdsa.GenerateKey(elliptic.P384(), rand.Reader)
- case "P521":
- priv, err = ecdsa.GenerateKey(elliptic.P521(), rand.Reader)
- default:
- log.Fatalf("Unrecognized elliptic curve: %q", ctx.String("ecdsa-curve"))
- }
- if err != nil {
- log.Fatalf("Failed to generate private key: %s", err)
- }
-
- var notBefore time.Time
- if len(ctx.String("start-date")) == 0 {
- notBefore = time.Now()
- } else {
- notBefore, err = time.Parse("Jan 2 15:04:05 2006", ctx.String("start-date"))
- if err != nil {
- log.Fatalf("Failed to parse creation date: %s", err)
- }
- }
-
- notAfter := notBefore.Add(ctx.Duration("duration"))
-
- serialNumberLimit := new(big.Int).Lsh(big.NewInt(1), 128)
- serialNumber, err := rand.Int(rand.Reader, serialNumberLimit)
- if err != nil {
- log.Fatalf("Failed to generate serial number: %s", err)
- }
-
- template := x509.Certificate{
- SerialNumber: serialNumber,
- Subject: pkix.Name{
- Organization: []string{"Acme Co"},
- CommonName: "Gogs",
- },
- NotBefore: notBefore,
- NotAfter: notAfter,
-
- KeyUsage: x509.KeyUsageKeyEncipherment | x509.KeyUsageDigitalSignature,
- ExtKeyUsage: []x509.ExtKeyUsage{x509.ExtKeyUsageServerAuth},
- BasicConstraintsValid: true,
- }
-
- hosts := strings.Split(ctx.String("host"), ",")
- for _, h := range hosts {
- if ip := net.ParseIP(h); ip != nil {
- template.IPAddresses = append(template.IPAddresses, ip)
- } else {
- template.DNSNames = append(template.DNSNames, h)
- }
- }
-
- if ctx.Bool("ca") {
- template.IsCA = true
- template.KeyUsage |= x509.KeyUsageCertSign
- }
-
- derBytes, err := x509.CreateCertificate(rand.Reader, &template, &template, publicKey(priv), priv)
- if err != nil {
- log.Fatalf("Failed to create certificate: %s", err)
- }
-
- certOut, err := os.Create("cert.pem")
- if err != nil {
- log.Fatalf("Failed to open cert.pem for writing: %s", err)
- }
- pem.Encode(certOut, &pem.Block{Type: "CERTIFICATE", Bytes: derBytes})
- certOut.Close()
- log.Println("Written cert.pem")
-
- keyOut, err := os.OpenFile("key.pem", os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0600)
- if err != nil {
- log.Fatalf("Failed to open key.pem for writing: %v\n", err)
- }
- pem.Encode(keyOut, pemBlockForKey(priv))
- keyOut.Close()
- log.Println("Written key.pem")
-
- return nil
-}
diff --git a/cmd/cert_stub.go b/cmd/cert_stub.go
deleted file mode 100644
index 1c076f64952..00000000000
--- a/cmd/cert_stub.go
+++ /dev/null
@@ -1,28 +0,0 @@
-// +build !cert
-
-// Copyright 2009 The Go Authors. All rights reserved.
-// Copyright 2014 The Gogs Authors. All rights reserved.
-// Use of this source code is governed by a MIT-style
-// license that can be found in the LICENSE file.
-package cmd
-
-import (
- "fmt"
- "os"
-
- "github.com/urfave/cli"
-)
-
-var CmdCert = cli.Command{
- Name: "cert",
- Usage: "Generate self-signed certificate",
- Description: `Please use build tags "cert" to rebuild Gogs in order to have this ability`,
- Action: runCert,
-}
-
-func runCert(ctx *cli.Context) error {
- fmt.Println("Command cert not available, please use build tags 'cert' to rebuild.")
- os.Exit(1)
-
- return nil
-}
diff --git a/cmd/cmd.go b/cmd/cmd.go
deleted file mode 100644
index 29afa625d39..00000000000
--- a/cmd/cmd.go
+++ /dev/null
@@ -1,42 +0,0 @@
-// Copyright 2015 The Gogs Authors. All rights reserved.
-// Use of this source code is governed by a MIT-style
-// license that can be found in the LICENSE file.
-
-package cmd
-
-import (
- "time"
-
- "github.com/urfave/cli"
-)
-
-func stringFlag(name, value, usage string) cli.StringFlag {
- return cli.StringFlag{
- Name: name,
- Value: value,
- Usage: usage,
- }
-}
-
-func boolFlag(name, usage string) cli.BoolFlag {
- return cli.BoolFlag{
- Name: name,
- Usage: usage,
- }
-}
-
-func intFlag(name string, value int, usage string) cli.IntFlag {
- return cli.IntFlag{
- Name: name,
- Value: value,
- Usage: usage,
- }
-}
-
-func durationFlag(name string, value time.Duration, usage string) cli.DurationFlag {
- return cli.DurationFlag{
- Name: name,
- Value: value,
- Usage: usage,
- }
-}
diff --git a/cmd/dump.go b/cmd/dump.go
deleted file mode 100644
index c1361f93285..00000000000
--- a/cmd/dump.go
+++ /dev/null
@@ -1,108 +0,0 @@
-// Copyright 2014 The Gogs Authors. All rights reserved.
-// Use of this source code is governed by a MIT-style
-// license that can be found in the LICENSE file.
-
-package cmd
-
-import (
- "fmt"
- "log"
- "os"
- "path"
- "time"
-
- "io/ioutil"
-
- "github.com/Unknwon/cae/zip"
- "github.com/urfave/cli"
-
- "github.com/gogits/gogs/models"
- "github.com/gogits/gogs/modules/setting"
-)
-
-var CmdDump = cli.Command{
- Name: "dump",
- Usage: "Dump Gogs files and database",
- Description: `Dump compresses all related files and database into zip file.
-It can be used for backup and capture Gogs server image to send to maintainer`,
- Action: runDump,
- Flags: []cli.Flag{
- stringFlag("config, c", "custom/conf/app.ini", "Custom configuration file path"),
- boolFlag("verbose, v", "Show process details"),
- stringFlag("tempdir, t", os.TempDir(), "Temporary dir path"),
- },
-}
-
-func runDump(ctx *cli.Context) error {
- if ctx.IsSet("config") {
- setting.CustomConf = ctx.String("config")
- }
- setting.NewContext()
- models.LoadConfigs()
- models.SetEngine()
-
- tmpDir := ctx.String("tempdir")
- if _, err := os.Stat(tmpDir); os.IsNotExist(err) {
- log.Fatalf("Path does not exist: %s", tmpDir)
- }
- TmpWorkDir, err := ioutil.TempDir(tmpDir, "gogs-dump-")
- if err != nil {
- log.Fatalf("Fail to create tmp work directory: %v", err)
- }
- log.Printf("Creating tmp work dir: %s", TmpWorkDir)
-
- reposDump := path.Join(TmpWorkDir, "gogs-repo.zip")
- dbDump := path.Join(TmpWorkDir, "gogs-db.sql")
-
- log.Printf("Dumping local repositories...%s", setting.RepoRootPath)
- zip.Verbose = ctx.Bool("verbose")
- if err := zip.PackTo(setting.RepoRootPath, reposDump, true); err != nil {
- log.Fatalf("Fail to dump local repositories: %v", err)
- }
-
- log.Printf("Dumping database...")
- if err := models.DumpDatabase(dbDump); err != nil {
- log.Fatalf("Fail to dump database: %v", err)
- }
-
- fileName := fmt.Sprintf("gogs-dump-%d.zip", time.Now().Unix())
- log.Printf("Packing dump files...")
- z, err := zip.Create(fileName)
- if err != nil {
- os.Remove(fileName)
- log.Fatalf("Fail to create %s: %v", fileName, err)
- }
-
- if err := z.AddFile("gogs-repo.zip", reposDump); err != nil {
- log.Fatalf("Fail to include gogs-repo.zip: %v", err)
- }
- if err := z.AddFile("gogs-db.sql", dbDump); err != nil {
- log.Fatalf("Fail to include gogs-db.sql: %v", err)
- }
- customDir, err := os.Stat(setting.CustomPath)
- if err == nil && customDir.IsDir() {
- if err := z.AddDir("custom", setting.CustomPath); err != nil {
- log.Fatalf("Fail to include custom: %v", err)
- }
- } else {
- log.Printf("Custom dir %s doesn't exist, skipped", setting.CustomPath)
- }
- if err := z.AddDir("log", setting.LogRootPath); err != nil {
- log.Fatalf("Fail to include log: %v", err)
- }
- // FIXME: SSH key file.
- if err = z.Close(); err != nil {
- os.Remove(fileName)
- log.Fatalf("Fail to save %s: %v", fileName, err)
- }
-
- if err := os.Chmod(fileName, 0600); err != nil {
- log.Printf("Can't change file access permissions mask to 0600: %v", err)
- }
-
- log.Printf("Removing tmp work dir: %s", TmpWorkDir)
- os.RemoveAll(TmpWorkDir)
- log.Printf("Finish dumping in file %s", fileName)
-
- return nil
-}
diff --git a/cmd/gogs/admin.go b/cmd/gogs/admin.go
new file mode 100644
index 00000000000..b596a81a584
--- /dev/null
+++ b/cmd/gogs/admin.go
@@ -0,0 +1,189 @@
+package main
+
+import (
+ "context"
+ "fmt"
+ "reflect"
+ "runtime"
+
+ "github.com/cockroachdb/errors"
+ "github.com/urfave/cli/v3"
+
+ "gogs.io/gogs/internal/conf"
+ "gogs.io/gogs/internal/database"
+)
+
+var (
+ adminCommand = cli.Command{
+ Name: "admin",
+ Usage: "Perform admin operations on command line",
+ Description: `Allow using internal logic of Gogs without hacking into the source code
+to make automatic initialization process more smoothly`,
+ Commands: []*cli.Command{
+ &subcmdCreateUser,
+ &subcmdDeleteInactivateUsers,
+ &subcmdDeleteRepositoryArchives,
+ &subcmdDeleteMissingRepositories,
+ &subcmdGitGcRepos,
+ &subcmdRewriteAuthorizedKeys,
+ &subcmdSyncRepositoryHooks,
+ &subcmdReinitMissingRepositories,
+ },
+ }
+
+ subcmdCreateUser = cli.Command{
+ Name: "create-user",
+ Usage: "Create a new user in database",
+ Action: runCreateUser,
+ Flags: []cli.Flag{
+ stringFlag("name", "", "Username"),
+ stringFlag("password", "", "User password"),
+ stringFlag("email", "", "User email address"),
+ boolFlag("admin", "User is an admin"),
+ stringFlag("config, c", "", "Custom configuration file path"),
+ },
+ }
+
+ subcmdDeleteInactivateUsers = cli.Command{
+ Name: "delete-inactive-users",
+ Usage: "Delete all inactive accounts",
+ Action: adminDashboardOperation(
+ func() error { return database.Handle.Users().DeleteInactivated() },
+ "All inactivated accounts have been deleted successfully",
+ ),
+ Flags: []cli.Flag{
+ stringFlag("config, c", "", "Custom configuration file path"),
+ },
+ }
+
+ subcmdDeleteRepositoryArchives = cli.Command{
+ Name: "delete-repository-archives",
+ Usage: "Delete all repositories archives",
+ Action: adminDashboardOperation(
+ database.DeleteRepositoryArchives,
+ "All repositories archives have been deleted successfully",
+ ),
+ Flags: []cli.Flag{
+ stringFlag("config, c", "", "Custom configuration file path"),
+ },
+ }
+
+ subcmdDeleteMissingRepositories = cli.Command{
+ Name: "delete-missing-repositories",
+ Usage: "Delete all repository records that lost Git files",
+ Action: adminDashboardOperation(
+ database.DeleteMissingRepositories,
+ "All repositories archives have been deleted successfully",
+ ),
+ Flags: []cli.Flag{
+ stringFlag("config, c", "", "Custom configuration file path"),
+ },
+ }
+
+ subcmdGitGcRepos = cli.Command{
+ Name: "collect-garbage",
+ Usage: "Do garbage collection on repositories",
+ Action: adminDashboardOperation(
+ database.GitGcRepos,
+ "All repositories have done garbage collection successfully",
+ ),
+ Flags: []cli.Flag{
+ stringFlag("config, c", "", "Custom configuration file path"),
+ },
+ }
+
+ subcmdRewriteAuthorizedKeys = cli.Command{
+ Name: "rewrite-authorized-keys",
+ Usage: "Rewrite '.ssh/authorized_keys' file (caution: non-Gogs keys will be lost)",
+ Action: adminDashboardOperation(
+ database.RewriteAuthorizedKeys,
+ "All public keys have been rewritten successfully",
+ ),
+ Flags: []cli.Flag{
+ stringFlag("config, c", "", "Custom configuration file path"),
+ },
+ }
+
+ subcmdSyncRepositoryHooks = cli.Command{
+ Name: "resync-hooks",
+ Usage: "Resync pre-receive, update and post-receive hooks",
+ Action: adminDashboardOperation(
+ database.SyncRepositoryHooks,
+ "All repositories' pre-receive, update and post-receive hooks have been resynced successfully",
+ ),
+ Flags: []cli.Flag{
+ stringFlag("config, c", "", "Custom configuration file path"),
+ },
+ }
+
+ subcmdReinitMissingRepositories = cli.Command{
+ Name: "reinit-missing-repositories",
+ Usage: "Reinitialize all repository records that lost Git files",
+ Action: adminDashboardOperation(
+ database.ReinitMissingRepositories,
+ "All repository records that lost Git files have been reinitialized successfully",
+ ),
+ Flags: []cli.Flag{
+ stringFlag("config, c", "", "Custom configuration file path"),
+ },
+ }
+)
+
+func runCreateUser(ctx context.Context, cmd *cli.Command) error {
+ if !cmd.IsSet("name") {
+ return errors.New("Username is not specified")
+ } else if !cmd.IsSet("password") {
+ return errors.New("Password is not specified")
+ } else if !cmd.IsSet("email") {
+ return errors.New("Email is not specified")
+ }
+
+ err := conf.Init(configFromLineage(cmd))
+ if err != nil {
+ return errors.Wrap(err, "init configuration")
+ }
+ conf.InitLogging(true)
+
+ if _, err = database.SetEngine(); err != nil {
+ return errors.Wrap(err, "set engine")
+ }
+
+ user, err := database.Handle.Users().Create(
+ ctx,
+ cmd.String("name"),
+ cmd.String("email"),
+ database.CreateUserOptions{
+ Password: cmd.String("password"),
+ Activated: true,
+ Admin: cmd.Bool("admin"),
+ },
+ )
+ if err != nil {
+ return errors.Wrap(err, "create user")
+ }
+
+ fmt.Printf("New user %q has been successfully created!\n", user.Name)
+ return nil
+}
+
+func adminDashboardOperation(operation func() error, successMessage string) func(context.Context, *cli.Command) error {
+ return func(_ context.Context, cmd *cli.Command) error {
+ err := conf.Init(configFromLineage(cmd))
+ if err != nil {
+ return errors.Wrap(err, "init configuration")
+ }
+ conf.InitLogging(true)
+
+ if _, err = database.SetEngine(); err != nil {
+ return errors.Wrap(err, "set engine")
+ }
+
+ if err := operation(); err != nil {
+ functionName := runtime.FuncForPC(reflect.ValueOf(operation).Pointer()).Name()
+ return errors.Newf("%s: %v", functionName, err)
+ }
+
+ fmt.Printf("%s\n", successMessage)
+ return nil
+ }
+}
diff --git a/cmd/gogs/backup.go b/cmd/gogs/backup.go
new file mode 100644
index 00000000000..0ba38efe2c9
--- /dev/null
+++ b/cmd/gogs/backup.go
@@ -0,0 +1,194 @@
+package main
+
+import (
+ "context"
+ "fmt"
+ "os"
+ "path"
+ "path/filepath"
+ "strconv"
+ "time"
+
+ "github.com/cockroachdb/errors"
+ "github.com/unknwon/cae/zip"
+ "github.com/urfave/cli/v3"
+ "gopkg.in/ini.v1"
+ log "unknwon.dev/clog/v2"
+
+ "gogs.io/gogs/internal/conf"
+ "gogs.io/gogs/internal/database"
+ "gogs.io/gogs/internal/osx"
+)
+
+var backupCommand = cli.Command{
+ Name: "backup",
+ Usage: "Backup files and database",
+ Description: `Backup dumps and compresses all related files and database into zip file,
+which can be used for migrating Gogs to another server. The output format is meant to be
+portable among all supported database engines.`,
+ Action: runBackup,
+ Flags: []cli.Flag{
+ stringFlag("config, c", "", "Custom configuration file path"),
+ boolFlag("verbose, v", "Show process details"),
+ stringFlag("tempdir, t", os.TempDir(), "Temporary directory path"),
+ stringFlag("target", "./", "Target directory path to save backup archive"),
+ stringFlag("archive-name", fmt.Sprintf("gogs-backup-%s.zip", time.Now().Format("20060102150405")), "Name of backup archive"),
+ boolFlag("database-only", "Only dump database"),
+ boolFlag("exclude-mirror-repos", "Exclude mirror repositories"),
+ boolFlag("exclude-repos", "Exclude repositories"),
+ },
+}
+
+const (
+ currentBackupFormatVersion = 1
+ archiveRootDir = "gogs-backup"
+)
+
+func runBackup(ctx context.Context, cmd *cli.Command) error {
+ zip.Verbose = cmd.Bool("verbose")
+
+ err := conf.Init(configFromLineage(cmd))
+ if err != nil {
+ return errors.Wrap(err, "init configuration")
+ }
+ conf.InitLogging(true)
+
+ conn, err := database.SetEngine()
+ if err != nil {
+ return errors.Wrap(err, "set engine")
+ }
+
+ tmpDir := cmd.String("tempdir")
+ if !osx.Exist(tmpDir) {
+ log.Fatal("'--tempdir' does not exist: %s", tmpDir)
+ }
+ rootDir, err := os.MkdirTemp(tmpDir, "gogs-backup-")
+ if err != nil {
+ log.Fatal("Failed to create backup root directory '%s': %v", rootDir, err)
+ }
+ log.Info("Backup root directory: %s", rootDir)
+
+ // Metadata
+ metaFile := path.Join(rootDir, "metadata.ini")
+ metadata := ini.Empty()
+ metadata.Section("").Key("VERSION").SetValue(strconv.Itoa(currentBackupFormatVersion))
+ metadata.Section("").Key("DATE_TIME").SetValue(time.Now().String())
+ metadata.Section("").Key("GOGS_VERSION").SetValue(conf.App.Version)
+ if err = metadata.SaveTo(metaFile); err != nil {
+ log.Fatal("Failed to save metadata '%s': %v", metaFile, err)
+ }
+
+ archiveName := filepath.Join(cmd.String("target"), cmd.String("archive-name"))
+ log.Info("Packing backup files to: %s", archiveName)
+
+ z, err := zip.Create(archiveName)
+ if err != nil {
+ log.Fatal("Failed to create backup archive '%s': %v", archiveName, err)
+ }
+ if err = z.AddFile(archiveRootDir+"/metadata.ini", metaFile); err != nil {
+ log.Fatal("Failed to include 'metadata.ini': %v", err)
+ }
+
+ // Database
+ dbDir := filepath.Join(rootDir, "db")
+ if err = database.DumpDatabase(ctx, conn, dbDir, cmd.Bool("verbose")); err != nil {
+ log.Fatal("Failed to dump database: %v", err)
+ }
+ if err = z.AddDir(archiveRootDir+"/db", dbDir); err != nil {
+ log.Fatal("Failed to include 'db': %v", err)
+ }
+
+ if !cmd.Bool("database-only") {
+ // Custom files
+ err = addCustomDirToBackup(z)
+ if err != nil {
+ log.Fatal("Failed to add custom directory to backup: %v", err)
+ }
+
+ // Data files
+ for _, dir := range []string{"ssh", "attachments", "avatars", "repo-avatars"} {
+ dirPath := filepath.Join(conf.Server.AppDataPath, dir)
+ if !osx.IsDir(dirPath) {
+ continue
+ }
+
+ if err = z.AddDir(path.Join(archiveRootDir+"/data", dir), dirPath); err != nil {
+ log.Fatal("Failed to include 'data': %v", err)
+ }
+ }
+ }
+
+ // Repositories
+ if !cmd.Bool("exclude-repos") && !cmd.Bool("database-only") {
+ reposDump := filepath.Join(rootDir, "repositories.zip")
+ log.Info("Dumping repositories in %q", conf.Repository.Root)
+ if cmd.Bool("exclude-mirror-repos") {
+ repos, err := database.GetNonMirrorRepositories()
+ if err != nil {
+ log.Fatal("Failed to get non-mirror repositories: %v", err)
+ }
+ reposZip, err := zip.Create(reposDump)
+ if err != nil {
+ log.Fatal("Failed to create %q: %v", reposDump, err)
+ }
+ baseDir := filepath.Base(conf.Repository.Root)
+ for _, r := range repos {
+ name := r.FullName() + ".git"
+ if err := reposZip.AddDir(filepath.Join(baseDir, name), filepath.Join(conf.Repository.Root, name)); err != nil {
+ log.Fatal("Failed to add %q: %v", name, err)
+ }
+ }
+ if err = reposZip.Close(); err != nil {
+ log.Fatal("Failed to save %q: %v", reposDump, err)
+ }
+ } else {
+ if err = zip.PackTo(conf.Repository.Root, reposDump, true); err != nil {
+ log.Fatal("Failed to dump repositories: %v", err)
+ }
+ }
+ log.Info("Repositories dumped to: %s", reposDump)
+
+ if err = z.AddFile(archiveRootDir+"/repositories.zip", reposDump); err != nil {
+ log.Fatal("Failed to include %q: %v", reposDump, err)
+ }
+ }
+
+ if err = z.Close(); err != nil {
+ log.Fatal("Failed to save backup archive '%s': %v", archiveName, err)
+ }
+
+ _ = os.RemoveAll(rootDir)
+ log.Info("Backup succeed! Archive is located at: %s", archiveName)
+ log.Stop()
+ return nil
+}
+
+func addCustomDirToBackup(z *zip.ZipArchive) error {
+ customDir := conf.CustomDir()
+ entries, err := os.ReadDir(customDir)
+ if err != nil {
+ return errors.Wrap(err, "list custom directory entries")
+ }
+
+ for _, e := range entries {
+ if e.Name() == "data" {
+ // Skip the "data" directory because it lives under the "custom" directory in
+ // the Docker setup and will be backed up separately.
+ log.Trace(`Skipping "data" directory in custom directory`)
+ continue
+ }
+
+ add := z.AddFile
+ if e.IsDir() {
+ add = z.AddDir
+ }
+ err = add(
+ fmt.Sprintf("%s/custom/%s", archiveRootDir, e.Name()),
+ filepath.Join(customDir, e.Name()),
+ )
+ if err != nil {
+ return errors.Wrapf(err, "add %q", e.Name())
+ }
+ }
+ return nil
+}
diff --git a/cmd/gogs/cmd.go b/cmd/gogs/cmd.go
new file mode 100644
index 00000000000..7331b0c2d9a
--- /dev/null
+++ b/cmd/gogs/cmd.go
@@ -0,0 +1,56 @@
+package main
+
+import (
+ "strings"
+
+ "github.com/urfave/cli/v3"
+)
+
+func stringFlag(name, value, usage string) *cli.StringFlag {
+ parts := strings.SplitN(name, ", ", 2)
+ f := &cli.StringFlag{
+ Name: parts[0],
+ Value: value,
+ Usage: usage,
+ }
+ if len(parts) > 1 {
+ f.Aliases = []string{parts[1]}
+ }
+ return f
+}
+
+// configFromLineage walks the command lineage to find the --config flag value.
+// This is needed because subcommands may not directly see flags set on parent commands.
+func configFromLineage(cmd *cli.Command) string {
+ for _, c := range cmd.Lineage() {
+ if c.IsSet("config") {
+ return c.String("config")
+ }
+ }
+ return ""
+}
+
+func intFlag(name string, value int, usage string) *cli.IntFlag {
+ parts := strings.SplitN(name, ", ", 2)
+ f := &cli.IntFlag{
+ Name: parts[0],
+ Value: value,
+ Usage: usage,
+ }
+ if len(parts) > 1 {
+ f.Aliases = []string{parts[1]}
+ }
+ return f
+}
+
+func boolFlag(name, usage string) *cli.BoolFlag {
+ parts := strings.SplitN(name, ", ", 2)
+ f := &cli.BoolFlag{
+ Name: parts[0],
+ Usage: usage,
+ }
+ if len(parts) > 1 {
+ f.Aliases = []string{parts[1]}
+ }
+ return f
+}
diff --git a/cmd/gogs/hook.go b/cmd/gogs/hook.go
new file mode 100644
index 00000000000..8c31797ddec
--- /dev/null
+++ b/cmd/gogs/hook.go
@@ -0,0 +1,273 @@
+package main
+
+import (
+ "bufio"
+ "bytes"
+ "context"
+ "crypto/tls"
+ "fmt"
+ "net/url"
+ "os"
+ "os/exec"
+ "path/filepath"
+ "strconv"
+ "strings"
+
+ "github.com/urfave/cli/v3"
+ log "unknwon.dev/clog/v2"
+
+ "github.com/gogs/git-module"
+
+ "gogs.io/gogs/internal/conf"
+ "gogs.io/gogs/internal/database"
+ "gogs.io/gogs/internal/email"
+ "gogs.io/gogs/internal/httplib"
+ "gogs.io/gogs/internal/osx"
+)
+
+var (
+ hookCommand = cli.Command{
+ Name: "hook",
+ Usage: "Delegate commands to corresponding Git hooks",
+ Description: "All sub-commands should only be called by Git",
+ Flags: []cli.Flag{
+ stringFlag("config, c", "", "Custom configuration file path"),
+ },
+ Commands: []*cli.Command{
+ &subcmdHookPreReceive,
+ &subcmdHookUpadte,
+ &subcmdHookPostReceive,
+ },
+ }
+
+ subcmdHookPreReceive = cli.Command{
+ Name: "pre-receive",
+ Usage: "Delegate pre-receive Git hook",
+ Description: "This command should only be called by Git",
+ Action: runHookPreReceive,
+ }
+ subcmdHookUpadte = cli.Command{
+ Name: "update",
+ Usage: "Delegate update Git hook",
+ Description: "This command should only be called by Git",
+ Action: runHookUpdate,
+ }
+ subcmdHookPostReceive = cli.Command{
+ Name: "post-receive",
+ Usage: "Delegate post-receive Git hook",
+ Description: "This command should only be called by Git",
+ Action: runHookPostReceive,
+ }
+)
+
+func runHookPreReceive(_ context.Context, cmd *cli.Command) error {
+ if os.Getenv("SSH_ORIGINAL_COMMAND") == "" {
+ return nil
+ }
+ setup(cmd, "pre-receive.log", true)
+
+ isWiki := strings.Contains(os.Getenv(database.EnvRepoCustomHooksPath), ".wiki.git/")
+
+ buf := bytes.NewBuffer(nil)
+ scanner := bufio.NewScanner(os.Stdin)
+ for scanner.Scan() {
+ buf.Write(scanner.Bytes())
+ buf.WriteByte('\n')
+
+ if isWiki {
+ continue
+ }
+
+ fields := bytes.Fields(scanner.Bytes())
+ if len(fields) != 3 {
+ continue
+ }
+ oldCommitID := string(fields[0])
+ newCommitID := string(fields[1])
+ branchName := git.RefShortName(string(fields[2]))
+
+ // Branch protection
+ repoID, _ := strconv.ParseInt(os.Getenv(database.EnvRepoID), 10, 64)
+ protectBranch, err := database.GetProtectBranchOfRepoByName(repoID, branchName)
+ if err != nil {
+ if database.IsErrBranchNotExist(err) {
+ continue
+ }
+ fail("Internal error", "GetProtectBranchOfRepoByName [repo_id: %d, branch: %s]: %v", repoID, branchName, err)
+ }
+ if !protectBranch.Protected {
+ continue
+ }
+
+ // Whitelist users can bypass require pull request check
+ bypassRequirePullRequest := false
+
+ // Check if user is in whitelist when enabled
+ userID, _ := strconv.ParseInt(os.Getenv(database.EnvAuthUserID), 10, 64)
+ if protectBranch.EnableWhitelist {
+ if !database.IsUserInProtectBranchWhitelist(repoID, userID, branchName) {
+ fail(fmt.Sprintf("Branch '%s' is protected and you are not in the push whitelist", branchName), "")
+ }
+
+ bypassRequirePullRequest = true
+ }
+
+ // Check if branch allows direct push
+ if !bypassRequirePullRequest && protectBranch.RequirePullRequest {
+ fail(fmt.Sprintf("Branch '%s' is protected and commits must be merged through pull request", branchName), "")
+ }
+
+ // check and deletion
+ if newCommitID == git.EmptyID {
+ fail(fmt.Sprintf("Branch '%s' is protected from deletion", branchName), "")
+ }
+
+ // Check force push
+ output, err := git.NewCommand("rev-list", "--max-count=1", oldCommitID, "^"+newCommitID).
+ RunInDir(database.RepoPath(os.Getenv(database.EnvRepoOwnerName), os.Getenv(database.EnvRepoName)))
+ if err != nil {
+ fail("Internal error", "Failed to detect force push: %v", err)
+ } else if len(output) > 0 {
+ fail(fmt.Sprintf("Branch '%s' is protected from force push", branchName), "")
+ }
+ }
+
+ customHooksPath := filepath.Join(os.Getenv(database.EnvRepoCustomHooksPath), "pre-receive")
+ if !osx.IsFile(customHooksPath) {
+ return nil
+ }
+
+ var hookCmd *exec.Cmd
+ if conf.IsWindowsRuntime() {
+ hookCmd = exec.Command("bash.exe", "custom_hooks/pre-receive")
+ } else {
+ hookCmd = exec.Command(customHooksPath)
+ }
+ hookCmd.Dir = database.RepoPath(os.Getenv(database.EnvRepoOwnerName), os.Getenv(database.EnvRepoName))
+ hookCmd.Stdout = os.Stdout
+ hookCmd.Stdin = buf
+ hookCmd.Stderr = os.Stderr
+ if err := hookCmd.Run(); err != nil {
+ fail("Internal error", "Failed to execute custom pre-receive hook: %v", err)
+ }
+ return nil
+}
+
+func runHookUpdate(_ context.Context, cmd *cli.Command) error {
+ if os.Getenv("SSH_ORIGINAL_COMMAND") == "" {
+ return nil
+ }
+ setup(cmd, "update.log", false)
+
+ args := cmd.Args().Slice()
+ if len(args) != 3 {
+ fail("Arguments received are not equal to three", "Arguments received are not equal to three")
+ } else if args[0] == "" {
+ fail("First argument 'refName' is empty", "First argument 'refName' is empty")
+ }
+
+ customHooksPath := filepath.Join(os.Getenv(database.EnvRepoCustomHooksPath), "update")
+ if !osx.IsFile(customHooksPath) {
+ return nil
+ }
+
+ var hookCmd *exec.Cmd
+ if conf.IsWindowsRuntime() {
+ hookCmd = exec.Command("bash.exe", append([]string{"custom_hooks/update"}, args...)...)
+ } else {
+ hookCmd = exec.Command(customHooksPath, args...)
+ }
+ hookCmd.Dir = database.RepoPath(os.Getenv(database.EnvRepoOwnerName), os.Getenv(database.EnvRepoName))
+ hookCmd.Stdout = os.Stdout
+ hookCmd.Stdin = os.Stdin
+ hookCmd.Stderr = os.Stderr
+ if err := hookCmd.Run(); err != nil {
+ fail("Internal error", "Failed to execute custom pre-receive hook: %v", err)
+ }
+ return nil
+}
+
+func runHookPostReceive(_ context.Context, cmd *cli.Command) error {
+ if os.Getenv("SSH_ORIGINAL_COMMAND") == "" {
+ return nil
+ }
+ setup(cmd, "post-receive.log", true)
+
+ // Post-receive hook does more than just gather Git information,
+ // so we need to setup additional services for email notifications.
+ email.NewContext()
+
+ isWiki := strings.Contains(os.Getenv(database.EnvRepoCustomHooksPath), ".wiki.git/")
+
+ buf := bytes.NewBuffer(nil)
+ scanner := bufio.NewScanner(os.Stdin)
+ for scanner.Scan() {
+ buf.Write(scanner.Bytes())
+ buf.WriteByte('\n')
+
+ // TODO: support news feeds for wiki
+ if isWiki {
+ continue
+ }
+
+ fields := bytes.Fields(scanner.Bytes())
+ if len(fields) != 3 {
+ continue
+ }
+
+ pusherID, _ := strconv.ParseInt(os.Getenv(database.EnvAuthUserID), 10, 64)
+ options := database.PushUpdateOptions{
+ OldCommitID: string(fields[0]),
+ NewCommitID: string(fields[1]),
+ FullRefspec: string(fields[2]),
+ PusherID: pusherID,
+ PusherName: os.Getenv(database.EnvAuthUserName),
+ RepoUserName: os.Getenv(database.EnvRepoOwnerName),
+ RepoName: os.Getenv(database.EnvRepoName),
+ }
+ if err := database.PushUpdate(options); err != nil {
+ log.Error("PushUpdate: %v", err)
+ }
+
+ // Ask for running deliver hook and test pull request tasks
+ q := make(url.Values)
+ q.Add("branch", git.RefShortName(options.FullRefspec))
+ q.Add("secret", os.Getenv(database.EnvRepoOwnerSaltMd5))
+ q.Add("pusher", os.Getenv(database.EnvAuthUserID))
+ reqURL := fmt.Sprintf("%s%s/%s/tasks/trigger?%s", conf.Server.LocalRootURL, options.RepoUserName, options.RepoName, q.Encode())
+ log.Trace("Trigger task: %s", reqURL)
+
+ resp, err := httplib.Get(reqURL).
+ SetTLSClientConfig(&tls.Config{
+ InsecureSkipVerify: true,
+ }).Response()
+ if err == nil {
+ _ = resp.Body.Close()
+ if resp.StatusCode/100 != 2 {
+ log.Error("Failed to trigger task: unsuccessful response code %d", resp.StatusCode)
+ }
+ } else {
+ log.Error("Failed to trigger task: %v", err)
+ }
+ }
+
+ customHooksPath := filepath.Join(os.Getenv(database.EnvRepoCustomHooksPath), "post-receive")
+ if !osx.IsFile(customHooksPath) {
+ return nil
+ }
+
+ var hookCmd *exec.Cmd
+ if conf.IsWindowsRuntime() {
+ hookCmd = exec.Command("bash.exe", "custom_hooks/post-receive")
+ } else {
+ hookCmd = exec.Command(customHooksPath)
+ }
+ hookCmd.Dir = database.RepoPath(os.Getenv(database.EnvRepoOwnerName), os.Getenv(database.EnvRepoName))
+ hookCmd.Stdout = os.Stdout
+ hookCmd.Stdin = buf
+ hookCmd.Stderr = os.Stderr
+ if err := hookCmd.Run(); err != nil {
+ fail("Internal error", "Failed to execute custom post-receive hook: %v", err)
+ }
+ return nil
+}
diff --git a/cmd/gogs/import.go b/cmd/gogs/import.go
new file mode 100644
index 00000000000..fe40a58c63d
--- /dev/null
+++ b/cmd/gogs/import.go
@@ -0,0 +1,108 @@
+package main
+
+import (
+ "bufio"
+ "bytes"
+ "context"
+ "fmt"
+ "os"
+ "path/filepath"
+ "time"
+
+ "github.com/cockroachdb/errors"
+ "github.com/urfave/cli/v3"
+
+ "gogs.io/gogs/internal/conf"
+ "gogs.io/gogs/internal/osx"
+)
+
+var (
+ importCommand = cli.Command{
+ Name: "import",
+ Usage: "Import portable data as local Gogs data",
+ Description: `Allow user import data from other Gogs installations to local instance
+without manually hacking the data files`,
+ Commands: []*cli.Command{
+ &subcmdImportLocale,
+ },
+ }
+
+ subcmdImportLocale = cli.Command{
+ Name: "locale",
+ Usage: "Import locale files to local repository",
+ Action: runImportLocale,
+ Flags: []cli.Flag{
+ stringFlag("source", "", "Source directory that stores new locale files"),
+ stringFlag("target", "", "Target directory that stores old locale files"),
+ stringFlag("config, c", "", "Custom configuration file path"),
+ },
+ }
+)
+
+func runImportLocale(_ context.Context, cmd *cli.Command) error {
+ if !cmd.IsSet("source") {
+ return errors.New("source directory is not specified")
+ } else if !cmd.IsSet("target") {
+ return errors.New("target directory is not specified")
+ }
+ if !osx.IsDir(cmd.String("source")) {
+ return errors.Newf("source directory %q does not exist or is not a directory", cmd.String("source"))
+ } else if !osx.IsDir(cmd.String("target")) {
+ return errors.Newf("target directory %q does not exist or is not a directory", cmd.String("target"))
+ }
+
+ err := conf.Init(configFromLineage(cmd))
+ if err != nil {
+ return errors.Wrap(err, "init configuration")
+ }
+
+ now := time.Now()
+
+ var line []byte
+ badChars := []byte(`="`)
+ escapedQuotes := []byte(`\"`)
+ regularQuotes := []byte(`"`)
+ // Cut out en-US.
+ for _, lang := range conf.I18n.Langs[1:] {
+ name := fmt.Sprintf("locale_%s.ini", lang)
+ source := filepath.Join(cmd.String("source"), name)
+ target := filepath.Join(cmd.String("target"), name)
+ if !osx.IsFile(source) {
+ continue
+ }
+
+ // Crowdin surrounds double quotes for strings contain quotes inside,
+ // this breaks INI parser, we need to fix that.
+ sr, err := os.Open(source)
+ if err != nil {
+ return errors.Newf("open: %v", err)
+ }
+
+ tw, err := os.Create(target)
+ if err != nil {
+ return errors.Newf("create: %v", err)
+ }
+
+ scanner := bufio.NewScanner(sr)
+ for scanner.Scan() {
+ line = scanner.Bytes()
+ idx := bytes.Index(line, badChars)
+ if idx > -1 && line[len(line)-1] == '"' {
+ // We still want the "=" sign
+ line = append(line[:idx+1], line[idx+2:len(line)-1]...)
+ line = bytes.ReplaceAll(line, escapedQuotes, regularQuotes)
+ }
+ _, _ = tw.Write(line)
+ _, _ = tw.WriteString("\n")
+ }
+ _ = sr.Close()
+ _ = tw.Close()
+
+ // Modification time of files from Crowdin often ahead of current,
+ // so we need to set back to current.
+ _ = os.Chtimes(target, now, now)
+ }
+
+ fmt.Println("Locale files has been successfully imported!")
+ return nil
+}
diff --git a/cmd/gogs/internal/web/web.go b/cmd/gogs/internal/web/web.go
new file mode 100644
index 00000000000..218360fefa9
--- /dev/null
+++ b/cmd/gogs/internal/web/web.go
@@ -0,0 +1,843 @@
+package web
+
+import (
+ "crypto/tls"
+ "encoding/json"
+ "fmt"
+ "io"
+ "net"
+ "net/http"
+ "net/http/fcgi"
+ "os"
+ "path/filepath"
+ "strconv"
+ "strings"
+
+ "github.com/cockroachdb/errors"
+ "github.com/flamego/flamego"
+ "github.com/go-macaron/binding"
+ "github.com/go-macaron/cache"
+ "github.com/go-macaron/captcha"
+ "github.com/go-macaron/csrf"
+ "github.com/go-macaron/gzip"
+ "github.com/go-macaron/i18n"
+ "github.com/go-macaron/session"
+ "github.com/prometheus/client_golang/prometheus/promhttp"
+ "gopkg.in/macaron.v1"
+ log "unknwon.dev/clog/v2"
+
+ embedConf "gogs.io/gogs/conf"
+ "gogs.io/gogs/internal/app"
+ "gogs.io/gogs/internal/conf"
+ "gogs.io/gogs/internal/context"
+ "gogs.io/gogs/internal/database"
+ "gogs.io/gogs/internal/form"
+ "gogs.io/gogs/internal/osx"
+ "gogs.io/gogs/internal/route"
+ "gogs.io/gogs/internal/route/admin"
+ apiv1 "gogs.io/gogs/internal/route/api/v1"
+ "gogs.io/gogs/internal/route/dev"
+ "gogs.io/gogs/internal/route/lfs"
+ "gogs.io/gogs/internal/route/org"
+ "gogs.io/gogs/internal/route/repo"
+ "gogs.io/gogs/internal/route/user"
+ "gogs.io/gogs/internal/template"
+ "gogs.io/gogs/public"
+ "gogs.io/gogs/templates"
+)
+
+// Run starts the web server with the given configuration path and port override.
+func Run(configPath string, portOverride int) error {
+ err := route.GlobalInit(configPath)
+ if err != nil {
+ return errors.Wrap(err, "initialize application")
+ }
+
+ m, err := newMacaron()
+ if err != nil {
+ return errors.Wrap(err, "initialize macaron")
+ }
+
+ webHandler, err := newRoutingHandler()
+ if err != nil {
+ return errors.Wrap(err, "initialize web handler")
+ }
+
+ reqSignIn := context.Toggle(&context.ToggleOptions{SignInRequired: true})
+ ignSignIn := context.Toggle(&context.ToggleOptions{SignInRequired: conf.Auth.RequireSigninView})
+ reqSignOut := context.Toggle(&context.ToggleOptions{SignOutRequired: true})
+
+ bindIgnErr := binding.BindIgnErr
+
+ m.SetAutoHead(true)
+
+ m.Group("", func() {
+ m.Get("/", ignSignIn, route.Home)
+ m.Group("/explore", func() {
+ m.Get("", func(c *context.Context) {
+ c.Redirect(conf.Server.Subpath + "/explore/repos")
+ })
+ m.Get("/repos", route.ExploreRepos)
+ m.Get("/users", route.ExploreUsers)
+ m.Get("/organizations", route.ExploreOrganizations)
+ }, ignSignIn)
+ m.Combo("/install", route.InstallInit).Get(route.Install).
+ Post(bindIgnErr(form.Install{}), route.InstallPost)
+ m.Get("/^:type(issues|pulls)$", reqSignIn, user.Issues)
+
+ // ***** START: User *****
+ m.Group("/user", func() {
+ m.Get("/sign_up", user.SignUp)
+ m.Post("/sign_up", bindIgnErr(form.Register{}), user.SignUpPost)
+ m.Get("/reset_password", user.ResetPasswd)
+ m.Post("/reset_password", user.ResetPasswdPost)
+ }, reqSignOut)
+
+ m.Group("/user/settings", func() {
+ m.Get("", user.Settings)
+ m.Post("", bindIgnErr(form.UpdateProfile{}), user.SettingsPost)
+ m.Combo("/avatar").Get(user.SettingsAvatar).
+ Post(binding.MultipartForm(form.Avatar{}), user.SettingsAvatarPost)
+ m.Post("/avatar/delete", user.SettingsDeleteAvatar)
+ m.Combo("/email").Get(user.SettingsEmails).
+ Post(bindIgnErr(form.AddEmail{}), user.SettingsEmailPost)
+ m.Post("/email/delete", user.DeleteEmail)
+ m.Get("/password", user.SettingsPassword)
+ m.Post("/password", bindIgnErr(form.ChangePassword{}), user.SettingsPasswordPost)
+ m.Combo("/ssh").Get(user.SettingsSSHKeys).
+ Post(bindIgnErr(form.AddSSHKey{}), user.SettingsSSHKeysPost)
+ m.Post("/ssh/delete", user.DeleteSSHKey)
+ m.Group("/security", func() {
+ m.Get("", user.SettingsSecurity)
+ m.Combo("/two_factor_enable").Get(user.SettingsTwoFactorEnable).
+ Post(user.SettingsTwoFactorEnablePost)
+ m.Combo("/two_factor_recovery_codes").Get(user.SettingsTwoFactorRecoveryCodes).
+ Post(user.SettingsTwoFactorRecoveryCodesPost)
+ m.Post("/two_factor_disable", user.SettingsTwoFactorDisable)
+ })
+ m.Group("/repositories", func() {
+ m.Get("", user.SettingsRepos)
+ m.Post("/leave", user.SettingsLeaveRepo)
+ })
+ m.Group("/organizations", func() {
+ m.Get("", user.SettingsOrganizations)
+ m.Post("/leave", user.SettingsLeaveOrganization)
+ })
+
+ settingsHandler := user.NewSettingsHandler(user.NewSettingsStore())
+ m.Combo("/applications").Get(settingsHandler.Applications()).
+ Post(bindIgnErr(form.NewAccessToken{}), settingsHandler.ApplicationsPost())
+ m.Post("/applications/delete", settingsHandler.DeleteApplication())
+ m.Route("/delete", "GET,POST", user.SettingsDelete)
+ }, reqSignIn, func(c *context.Context) {
+ c.Data["PageIsUserSettings"] = true
+ })
+
+ m.Group("/user", func() {
+ m.Any("/activate", user.Activate)
+ m.Any("/activate_email", user.ActivateEmail)
+ m.Get("/email2user", user.Email2User)
+ m.Get("/forget_password", user.ForgotPasswd)
+ m.Post("/forget_password", user.ForgotPasswdPost)
+ m.Post("/logout", user.SignOut)
+ })
+ // ***** END: User *****
+
+ reqAdmin := context.Toggle(&context.ToggleOptions{SignInRequired: true, AdminRequired: true})
+
+ // ***** START: Admin *****
+ m.Group("/admin", func() {
+ m.Combo("").Get(admin.Dashboard).Post(admin.Operation) // "/admin"
+ m.Get("/config", admin.Config)
+ m.Post("/config/test_mail", admin.SendTestMail)
+ m.Get("/monitor", admin.Monitor)
+
+ m.Group("/users", func() {
+ m.Get("", admin.Users)
+ m.Combo("/new").Get(admin.NewUser).Post(bindIgnErr(form.AdminCrateUser{}), admin.NewUserPost)
+ m.Combo("/:userid").Get(admin.EditUser).Post(bindIgnErr(form.AdminEditUser{}), admin.EditUserPost)
+ m.Post("/:userid/delete", admin.DeleteUser)
+ })
+
+ m.Group("/orgs", func() {
+ m.Get("", admin.Organizations)
+ })
+
+ m.Group("/repos", func() {
+ m.Get("", admin.Repos)
+ m.Post("/delete", admin.DeleteRepo)
+ })
+
+ m.Group("/auths", func() {
+ m.Get("", admin.Authentications)
+ m.Combo("/new").Get(admin.NewAuthSource).Post(bindIgnErr(form.Authentication{}), admin.NewAuthSourcePost)
+ m.Combo("/:authid").Get(admin.EditAuthSource).
+ Post(bindIgnErr(form.Authentication{}), admin.EditAuthSourcePost)
+ m.Post("/:authid/delete", admin.DeleteAuthSource)
+ })
+
+ m.Group("/notices", func() {
+ m.Get("", admin.Notices)
+ m.Post("/delete", admin.DeleteNotices)
+ m.Get("/empty", admin.EmptyNotices)
+ })
+ }, reqAdmin)
+ // ***** END: Admin *****
+
+ m.Group("", func() {
+ m.Group("/:username", func() {
+ m.Get("", user.Profile)
+ m.Get("/followers", user.Followers)
+ m.Get("/following", user.Following)
+ m.Get("/stars", user.Stars)
+ }, context.InjectParamsUser())
+
+ m.Get("/attachments/:uuid", func(c *context.Context) {
+ attach, err := database.GetAttachmentByUUID(c.Params(":uuid"))
+ if err != nil {
+ c.NotFoundOrError(err, "get attachment by UUID")
+ return
+ } else if !osx.IsFile(attach.LocalPath()) {
+ c.NotFound()
+ return
+ }
+
+ fr, err := os.Open(attach.LocalPath())
+ if err != nil {
+ c.Error(err, "open attachment file")
+ return
+ }
+ defer fr.Close()
+
+ c.Header().Set("Content-Security-Policy", "default-src 'none'; style-src 'unsafe-inline'; sandbox")
+ c.Header().Set("Cache-Control", "public,max-age=86400")
+ c.Header().Set("Content-Disposition", fmt.Sprintf(`inline; filename="%s"`, attach.Name))
+
+ if _, err = io.Copy(c.Resp, fr); err != nil {
+ c.Error(err, "copy from file to response")
+ return
+ }
+ })
+ }, ignSignIn)
+
+ m.Group("", func() {
+ m.Post("/issues/attachments", repo.UploadIssueAttachment)
+ m.Post("/releases/attachments", repo.UploadReleaseAttachment)
+ }, reqSignIn)
+
+ m.Group("/:username", func() {
+ m.Post("/action/:action", user.Action)
+ }, reqSignIn, context.InjectParamsUser())
+
+ if macaron.Env == macaron.DEV {
+ m.Get("/template/*", dev.TemplatePreview)
+ }
+
+ reqRepoAdmin := context.RequireRepoAdmin()
+ reqRepoWriter := context.RequireRepoWriter()
+
+ webhookRoutes := func() {
+ m.Group("", func() {
+ m.Get("", repo.Webhooks)
+ m.Post("/delete", repo.DeleteWebhook)
+ m.Get("/:type/new", repo.WebhooksNew)
+ m.Post("/gogs/new", bindIgnErr(form.NewWebhook{}), repo.WebhooksNewPost)
+ m.Post("/slack/new", bindIgnErr(form.NewSlackHook{}), repo.WebhooksSlackNewPost)
+ m.Post("/discord/new", bindIgnErr(form.NewDiscordHook{}), repo.WebhooksDiscordNewPost)
+ m.Post("/dingtalk/new", bindIgnErr(form.NewDingtalkHook{}), repo.WebhooksDingtalkNewPost)
+ m.Get("/:id", repo.WebhooksEdit)
+ m.Post("/gogs/:id", bindIgnErr(form.NewWebhook{}), repo.WebhooksEditPost)
+ m.Post("/slack/:id", bindIgnErr(form.NewSlackHook{}), repo.WebhooksSlackEditPost)
+ m.Post("/discord/:id", bindIgnErr(form.NewDiscordHook{}), repo.WebhooksDiscordEditPost)
+ m.Post("/dingtalk/:id", bindIgnErr(form.NewDingtalkHook{}), repo.WebhooksDingtalkEditPost)
+ }, repo.InjectOrgRepoContext())
+ }
+
+ // ***** START: Organization *****
+ m.Group("/org", func() {
+ m.Group("", func() {
+ m.Get("/create", org.Create)
+ m.Post("/create", bindIgnErr(form.CreateOrg{}), org.CreatePost)
+ }, func(c *context.Context) {
+ if !c.User.CanCreateOrganization() {
+ c.NotFound()
+ }
+ })
+
+ m.Group("/:org", func() {
+ m.Get("/dashboard", user.Dashboard)
+ m.Get("/^:type(issues|pulls)$", user.Issues)
+ m.Get("/members", org.Members)
+ m.Get("/members/action/:action", org.MembersAction)
+
+ m.Get("/teams", org.Teams)
+ }, context.OrgAssignment(true))
+
+ m.Group("/:org", func() {
+ m.Get("/teams/:team", org.TeamMembers)
+ m.Get("/teams/:team/repositories", org.TeamRepositories)
+ m.Route("/teams/:team/action/:action", "GET,POST", org.TeamsAction)
+ m.Route("/teams/:team/action/repo/:action", "GET,POST", org.TeamsRepoAction)
+ }, context.OrgAssignment(true, false, true))
+
+ m.Group("/:org", func() {
+ m.Get("/teams/new", org.NewTeam)
+ m.Post("/teams/new", bindIgnErr(form.CreateTeam{}), org.NewTeamPost)
+ m.Get("/teams/:team/edit", org.EditTeam)
+ m.Post("/teams/:team/edit", bindIgnErr(form.CreateTeam{}), org.EditTeamPost)
+ m.Post("/teams/:team/delete", org.DeleteTeam)
+
+ m.Group("/settings", func() {
+ m.Combo("").Get(org.Settings).
+ Post(bindIgnErr(form.UpdateOrgSetting{}), org.SettingsPost)
+ m.Post("/avatar", binding.MultipartForm(form.Avatar{}), org.SettingsAvatar)
+ m.Post("/avatar/delete", org.SettingsDeleteAvatar)
+ m.Group("/hooks", webhookRoutes)
+ m.Route("/delete", "GET,POST", org.SettingsDelete)
+ })
+
+ m.Route("/invitations/new", "GET,POST", org.Invitation)
+ }, context.OrgAssignment(true, true))
+ }, reqSignIn)
+ // ***** END: Organization *****
+
+ // ***** START: Repository *****
+ m.Group("/repo", func() {
+ m.Get("/create", repo.Create)
+ m.Post("/create", bindIgnErr(form.CreateRepo{}), repo.CreatePost)
+ m.Get("/migrate", repo.Migrate)
+ m.Post("/migrate", bindIgnErr(form.MigrateRepo{}), repo.MigratePost)
+ m.Combo("/fork/:repoid").Get(repo.Fork).
+ Post(bindIgnErr(form.CreateRepo{}), repo.ForkPost)
+ }, reqSignIn)
+
+ m.Group("/:username/:reponame", func() {
+ m.Group("/settings", func() {
+ m.Combo("").Get(repo.Settings).
+ Post(bindIgnErr(form.RepoSetting{}), repo.SettingsPost)
+ m.Combo("/avatar").Get(repo.SettingsAvatar).
+ Post(binding.MultipartForm(form.Avatar{}), repo.SettingsAvatarPost)
+ m.Post("/avatar/delete", repo.SettingsDeleteAvatar)
+ m.Group("/collaboration", func() {
+ m.Combo("").Get(repo.SettingsCollaboration).Post(repo.SettingsCollaborationPost)
+ m.Post("/access_mode", repo.ChangeCollaborationAccessMode)
+ m.Post("/delete", repo.DeleteCollaboration)
+ })
+ m.Group("/branches", func() {
+ m.Get("", repo.SettingsBranches)
+ m.Post("/default_branch", repo.UpdateDefaultBranch)
+ m.Combo("/*").Get(repo.SettingsProtectedBranch).
+ Post(bindIgnErr(form.ProtectBranch{}), repo.SettingsProtectedBranchPost)
+ }, func(c *context.Context) {
+ if c.Repo.Repository.IsMirror {
+ c.NotFound()
+ return
+ }
+ })
+
+ m.Group("/hooks", func() {
+ webhookRoutes()
+
+ m.Group("/:id", func() {
+ m.Post("/test", repo.TestWebhook)
+ m.Post("/redelivery", repo.RedeliveryWebhook)
+ })
+
+ m.Group("/git", func() {
+ m.Get("", repo.SettingsGitHooks)
+ m.Combo("/:name").Get(repo.SettingsGitHooksEdit).
+ Post(repo.SettingsGitHooksEditPost)
+ }, context.GitHookService())
+ })
+
+ m.Group("/keys", func() {
+ m.Combo("").Get(repo.SettingsDeployKeys).
+ Post(bindIgnErr(form.AddSSHKey{}), repo.SettingsDeployKeysPost)
+ m.Post("/delete", repo.DeleteDeployKey)
+ })
+ }, func(c *context.Context) {
+ c.Data["PageIsSettings"] = true
+ })
+ }, reqSignIn, context.RepoAssignment(), reqRepoAdmin, context.RepoRef())
+
+ m.Post("/:username/:reponame/action/:action", reqSignIn, context.RepoAssignment(), repo.Action)
+ m.Group("/:username/:reponame", func() {
+ m.Get("/issues", repo.RetrieveLabels, repo.Issues)
+ m.Get("/issues/:index", repo.ViewIssue)
+ m.Get("/labels/", repo.RetrieveLabels, repo.Labels)
+ m.Get("/milestones", repo.Milestones)
+ }, ignSignIn, context.RepoAssignment(true))
+ m.Group("/:username/:reponame", func() {
+ // FIXME: should use different URLs but mostly same logic for comments of issue and pull request.
+ // So they can apply their own enable/disable logic on routers.
+ m.Group("/issues", func() {
+ m.Combo("/new", repo.MustEnableIssues).Get(context.RepoRef(), repo.NewIssue).
+ Post(bindIgnErr(form.NewIssue{}), repo.NewIssuePost)
+
+ m.Group("/:index", func() {
+ m.Post("/title", repo.UpdateIssueTitle)
+ m.Post("/content", repo.UpdateIssueContent)
+ m.Combo("/comments").Post(bindIgnErr(form.CreateComment{}), repo.NewComment)
+ })
+ })
+ m.Group("/comments/:id", func() {
+ m.Post("", repo.UpdateCommentContent)
+ m.Post("/delete", repo.DeleteComment)
+ })
+ }, reqSignIn, context.RepoAssignment(true))
+ m.Group("/:username/:reponame", func() {
+ m.Group("/wiki", func() {
+ m.Get("/?:page", repo.Wiki)
+ m.Get("/_pages", repo.WikiPages)
+ }, repo.MustEnableWiki, context.RepoRef())
+ }, ignSignIn, context.RepoAssignment(false, true))
+
+ m.Group("/:username/:reponame", func() {
+ // FIXME: should use different URLs but mostly same logic for comments of issue and pull request.
+ // So they can apply their own enable/disable logic on routers.
+ m.Group("/issues", func() {
+ m.Group("/:index", func() {
+ m.Post("/label", repo.UpdateIssueLabel)
+ m.Post("/milestone", repo.UpdateIssueMilestone)
+ m.Post("/assignee", repo.UpdateIssueAssignee)
+ }, reqRepoWriter)
+ })
+ m.Group("/labels", func() {
+ m.Post("/new", bindIgnErr(form.CreateLabel{}), repo.NewLabel)
+ m.Post("/edit", bindIgnErr(form.CreateLabel{}), repo.UpdateLabel)
+ m.Post("/delete", repo.DeleteLabel)
+ m.Post("/initialize", bindIgnErr(form.InitializeLabels{}), repo.InitializeLabels)
+ }, reqRepoWriter, context.RepoRef())
+ m.Group("/milestones", func() {
+ m.Combo("/new").Get(repo.NewMilestone).
+ Post(bindIgnErr(form.CreateMilestone{}), repo.NewMilestonePost)
+ m.Get("/:id/edit", repo.EditMilestone)
+ m.Post("/:id/edit", bindIgnErr(form.CreateMilestone{}), repo.EditMilestonePost)
+ m.Get("/:id/:action", repo.ChangeMilestonStatus)
+ m.Post("/delete", repo.DeleteMilestone)
+ }, reqRepoWriter, context.RepoRef())
+
+ m.Group("/releases", func() {
+ m.Get("/new", repo.NewRelease)
+ m.Post("/new", bindIgnErr(form.NewRelease{}), repo.NewReleasePost)
+ m.Post("/delete", repo.DeleteRelease)
+ m.Get("/edit/*", repo.EditRelease)
+ m.Post("/edit/*", bindIgnErr(form.EditRelease{}), repo.EditReleasePost)
+ }, repo.MustBeNotBare, reqRepoWriter, func(c *context.Context) {
+ c.Data["PageIsViewFiles"] = true
+ })
+
+ // FIXME: Should use c.Repo.PullRequest to unify template, currently we have inconsistent URL
+ // for PR in same repository. After select branch on the page, the URL contains redundant head user name.
+ // e.g. /org1/test-repo/compare/master...org1:develop
+ // which should be /org1/test-repo/compare/master...develop
+ m.Combo("/compare/*", repo.MustAllowPulls).Get(repo.CompareAndPullRequest).
+ Post(bindIgnErr(form.NewIssue{}), repo.CompareAndPullRequestPost)
+
+ m.Group("", func() {
+ m.Combo("/_edit/*").Get(repo.EditFile).
+ Post(bindIgnErr(form.EditRepoFile{}), repo.EditFilePost)
+ m.Combo("/_new/*").Get(repo.NewFile).
+ Post(bindIgnErr(form.EditRepoFile{}), repo.NewFilePost)
+ m.Post("/_preview/*", bindIgnErr(form.EditPreviewDiff{}), repo.DiffPreviewPost)
+ m.Combo("/_delete/*").Get(repo.DeleteFile).
+ Post(bindIgnErr(form.DeleteRepoFile{}), repo.DeleteFilePost)
+
+ m.Group("", func() {
+ m.Combo("/_upload/*").Get(repo.UploadFile).
+ Post(bindIgnErr(form.UploadRepoFile{}), repo.UploadFilePost)
+ m.Post("/upload-file", repo.UploadFileToServer)
+ m.Post("/upload-remove", bindIgnErr(form.RemoveUploadFile{}), repo.RemoveUploadFileFromServer)
+ }, func(c *context.Context) {
+ if !conf.Repository.Upload.Enabled {
+ c.NotFound()
+ return
+ }
+ })
+ }, repo.MustBeNotBare, reqRepoWriter, context.RepoRef(), func(c *context.Context) {
+ if !c.Repo.CanEnableEditor() {
+ c.NotFound()
+ return
+ }
+
+ c.Data["PageIsViewFiles"] = true
+ })
+ }, reqSignIn, context.RepoAssignment())
+
+ m.Group("/:username/:reponame", func() {
+ m.Group("", func() {
+ m.Get("/releases", repo.MustBeNotBare, repo.Releases)
+ m.Get("/pulls", repo.RetrieveLabels, repo.Pulls)
+ m.Get("/pulls/:index", repo.ViewPull)
+ }, context.RepoRef())
+
+ m.Group("/branches", func() {
+ m.Get("", repo.Branches)
+ m.Get("/all", repo.AllBranches)
+ m.Post("/delete/*", reqSignIn, reqRepoWriter, repo.DeleteBranchPost)
+ }, repo.MustBeNotBare, func(c *context.Context) {
+ c.Data["PageIsViewFiles"] = true
+ })
+
+ m.Group("/wiki", func() {
+ m.Group("", func() {
+ m.Combo("/_new").Get(repo.NewWiki).
+ Post(bindIgnErr(form.NewWiki{}), repo.NewWikiPost)
+ m.Combo("/:page/_edit").Get(repo.EditWiki).
+ Post(bindIgnErr(form.NewWiki{}), repo.EditWikiPost)
+ m.Post("/:page/delete", repo.DeleteWikiPagePost)
+ }, reqSignIn, reqRepoWriter)
+ }, repo.MustEnableWiki, context.RepoRef())
+
+ m.Get("/archive/*", repo.MustBeNotBare, repo.Download)
+
+ m.Group("/pulls/:index", func() {
+ m.Get("/commits", context.RepoRef(), repo.ViewPullCommits)
+ m.Get("/files", context.RepoRef(), repo.ViewPullFiles)
+ m.Post("/merge", reqRepoWriter, repo.MergePullRequest)
+ }, repo.MustAllowPulls)
+
+ m.Group("", func() {
+ m.Get("/src/*", repo.Home)
+ m.Get("/raw/*", repo.SingleDownload)
+ m.Get("/commits/*", repo.RefCommits)
+ m.Get("/commit/:sha([a-f0-9]{7,40})$", repo.Diff)
+ m.Get("/forks", repo.Forks)
+ }, repo.MustBeNotBare, context.RepoRef())
+ m.Get("/commit/:sha([a-f0-9]{7,40})\\.:ext(patch|diff)", repo.MustBeNotBare, repo.RawDiff)
+
+ m.Get("/compare/:before([a-z0-9]{40})\\.\\.\\.:after([a-z0-9]{40})", repo.MustBeNotBare, context.RepoRef(), repo.CompareDiff)
+ }, ignSignIn, context.RepoAssignment())
+ m.Group("/:username/:reponame", func() {
+ m.Get("", repo.Home)
+ m.Get("/stars", repo.Stars)
+ m.Get("/watchers", repo.Watchers)
+ }, context.ServeGoGet(), ignSignIn, context.RepoAssignment(), context.RepoRef())
+ // ***** END: Repository *****
+
+ // **********************
+ // ----- API routes -----
+ // **********************
+
+ // TODO: Without session and CSRF
+ m.Group("/api", func() {
+ apiv1.RegisterRoutes(m)
+ }, ignSignIn)
+
+ m.Any("/api/web/*", bridgeToWebAPI(webHandler))
+ m.Get("/redirect", bridgeToWebAPI(webHandler))
+ m.Any("/*", func(c *context.Context) { c.ServeWeb() })
+ },
+ session.Sessioner(session.Options{
+ Provider: conf.Session.Provider,
+ ProviderConfig: conf.Session.ProviderConfig,
+ CookieName: conf.Session.CookieName,
+ CookiePath: conf.Server.Subpath,
+ Gclifetime: conf.Session.GCInterval,
+ Maxlifetime: conf.Session.MaxLifeTime,
+ Secure: conf.Session.CookieSecure,
+ CookieLifeTime: 86400 * conf.Security.LoginRememberDays,
+ }),
+ csrf.Csrfer(csrf.Options{
+ Secret: conf.Security.SecretKey,
+ Header: "X-CSRF-Token",
+ Cookie: conf.Session.CSRFCookieName,
+ CookieDomain: conf.Server.URL.Hostname(),
+ CookiePath: conf.Server.Subpath,
+ CookieHttpOnly: true,
+ SetCookie: true,
+ Secure: conf.Server.URL.Scheme == "https",
+ }),
+ context.Contexter(context.NewStore(), webHandler),
+ )
+
+ // ***************************
+ // ----- HTTP Git routes -----
+ // ***************************
+
+ m.Group("/:username/:reponame", func() {
+ m.Get("/tasks/trigger", repo.TriggerTask)
+
+ m.Group("/info/lfs", func() {
+ lfs.RegisterRoutes(m.Router)
+ })
+
+ gitHTTP := []macaron.Handler{context.ServeGoGet(), repo.HTTPContexter(repo.NewStore()), repo.HTTP}
+ m.Route("/info/refs", "GET,OPTIONS", gitHTTP...)
+ m.Route("/HEAD", "GET,OPTIONS", gitHTTP...)
+ m.Route("/git-upload-pack", "POST,OPTIONS", gitHTTP...)
+ m.Route("/git-receive-pack", "POST,OPTIONS", gitHTTP...)
+ m.Route("/objects/info/alternates", "GET,OPTIONS", gitHTTP...)
+ m.Route("/objects/info/http-alternates", "GET,OPTIONS", gitHTTP...)
+ m.Route("/objects/info/packs", "GET,OPTIONS", gitHTTP...)
+ m.Route("/objects/info/*", "GET,OPTIONS", gitHTTP...)
+ m.Route("/objects/:prefix([0-9a-f]{2})/:suffix([0-9a-f]{38})", "GET,OPTIONS", gitHTTP...)
+ m.Route("/objects/pack/pack-:sha([0-9a-f]{40}).pack", "GET,OPTIONS", gitHTTP...)
+ m.Route("/objects/pack/pack-:sha([0-9a-f]{40}).idx", "GET,OPTIONS", gitHTTP...)
+ })
+
+ // ***************************
+ // ----- Internal routes -----
+ // ***************************
+
+ m.Group("/-", func() {
+ m.Get("/metrics", app.MetricsFilter(), promhttp.Handler()) // "/-/metrics"
+
+ m.Group("/api", func() {
+ m.Post("/sanitize_ipynb", app.SanitizeIpynb()) // "/-/api/sanitize_ipynb"
+ })
+ })
+
+ // **********************
+ // ----- robots.txt -----
+ // **********************
+
+ m.Get("/robots.txt", func(w http.ResponseWriter, r *http.Request) {
+ if conf.HasRobotsTxt {
+ http.ServeFile(w, r, filepath.Join(conf.CustomDir(), "robots.txt"))
+ } else {
+ w.WriteHeader(http.StatusNotFound)
+ }
+ })
+
+ // Flag for port number in case first time run conflict.
+ if portOverride > 0 {
+ port := strconv.Itoa(portOverride)
+ conf.Server.URL.Host = strings.Replace(conf.Server.URL.Host, ":"+conf.Server.URL.Port(), ":"+port, 1)
+ conf.Server.ExternalURL = conf.Server.URL.String()
+ conf.Server.HTTPPort = portOverride
+ }
+
+ var listenAddr string
+ if conf.Server.Protocol == "unix" {
+ listenAddr = conf.Server.HTTPAddr
+ } else {
+ listenAddr = fmt.Sprintf("%s:%d", conf.Server.HTTPAddr, conf.Server.HTTPPort)
+ }
+ log.Info("Available on %s", conf.Server.ExternalURL)
+
+ switch conf.Server.Protocol {
+ case "http":
+ err = http.ListenAndServe(listenAddr, m)
+
+ case "https":
+ tlsMinVersion := tls.VersionTLS12
+ switch conf.Server.TLSMinVersion {
+ case "TLS13":
+ tlsMinVersion = tls.VersionTLS13
+ case "TLS12":
+ tlsMinVersion = tls.VersionTLS12
+ case "TLS11":
+ tlsMinVersion = tls.VersionTLS11
+ case "TLS10":
+ tlsMinVersion = tls.VersionTLS10
+ }
+ server := &http.Server{
+ Addr: listenAddr,
+ TLSConfig: &tls.Config{
+ MinVersion: uint16(tlsMinVersion),
+ CurvePreferences: []tls.CurveID{tls.X25519, tls.CurveP256, tls.CurveP384, tls.CurveP521},
+ PreferServerCipherSuites: true,
+ CipherSuites: []uint16{
+ tls.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,
+ tls.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,
+ tls.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,
+ tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,
+ tls.TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305,
+ tls.TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305,
+ },
+ }, Handler: m,
+ }
+ err = server.ListenAndServeTLS(conf.Server.CertFile, conf.Server.KeyFile)
+
+ case "fcgi":
+ err = fcgi.Serve(nil, m)
+
+ case "unix":
+ if osx.Exist(listenAddr) {
+ err = os.Remove(listenAddr)
+ if err != nil {
+ return errors.Wrap(err, "remove existing Unix domain socket")
+ }
+ }
+
+ var listener *net.UnixListener
+ listener, err = net.ListenUnix("unix", &net.UnixAddr{Name: listenAddr, Net: "unix"})
+ if err != nil {
+ return errors.Wrap(err, "listen on Unix network")
+ }
+
+ // FIXME: add proper implementation of signal capture on all protocols
+ // execute this on SIGTERM or SIGINT: listener.Close()
+ if err = os.Chmod(listenAddr, conf.Server.UnixSocketMode); err != nil {
+ return errors.Wrap(err, "change permission of Unix domain socket")
+ }
+ err = http.Serve(listener, m)
+
+ default:
+ return errors.Newf("unexpected server protocol: %s", conf.Server.Protocol)
+ }
+
+ if err != nil {
+ return errors.Wrap(err, "start server")
+ }
+
+ return nil
+}
+
+func newRoutingHandler() (http.Handler, error) {
+ f := flamego.New()
+ f.Use(flamego.Recovery())
+
+ mountWebAPIRoutes(f)
+
+ if err := mountWebRoutes(f); err != nil {
+ return nil, errors.Wrap(err, "mount web routes")
+ }
+ return f, nil
+}
+
+// newMacaron initializes Macaron instance.
+func newMacaron() (*macaron.Macaron, error) {
+ m := macaron.New()
+ if !conf.Server.DisableRouterLog {
+ m.Use(macaron.Logger())
+ }
+ m.Use(macaron.Recovery())
+ if conf.Server.EnableGzip {
+ m.Use(gzip.Gziper())
+ }
+ if conf.Server.Protocol == "fcgi" {
+ m.SetURLPrefix(conf.Server.Subpath)
+ }
+
+ // Register custom middleware first to make it possible to override files under "public".
+ m.Use(macaron.Static(
+ filepath.Join(conf.CustomDir(), "public"),
+ macaron.StaticOptions{
+ SkipLogging: conf.Server.DisableRouterLog,
+ },
+ ))
+ var publicFs http.FileSystem
+ if !conf.Server.LoadAssetsFromDisk {
+ publicFs = http.FS(public.Files)
+ }
+ m.Use(macaron.Static(
+ filepath.Join(conf.WorkDir(), "public"),
+ macaron.StaticOptions{
+ ETag: true,
+ SkipLogging: conf.Server.DisableRouterLog,
+ FileSystem: publicFs,
+ },
+ ))
+
+ m.Use(macaron.Static(
+ conf.Picture.AvatarUploadPath,
+ macaron.StaticOptions{
+ ETag: true,
+ Prefix: conf.UsersAvatarPathPrefix,
+ SkipLogging: conf.Server.DisableRouterLog,
+ },
+ ))
+ m.Use(macaron.Static(
+ conf.Picture.RepositoryAvatarUploadPath,
+ macaron.StaticOptions{
+ ETag: true,
+ Prefix: database.RepoAvatarURLPrefix,
+ SkipLogging: conf.Server.DisableRouterLog,
+ },
+ ))
+
+ customDir := filepath.Join(conf.CustomDir(), "templates")
+ renderOpt := macaron.RenderOptions{
+ Directory: filepath.Join(conf.WorkDir(), "templates"),
+ AppendDirectories: []string{customDir},
+ Funcs: template.FuncMap(),
+ IndentJSON: macaron.Env != macaron.PROD,
+ }
+ if !conf.Server.LoadAssetsFromDisk {
+ renderOpt.TemplateFileSystem = templates.NewTemplateFileSystem("", customDir)
+ }
+ m.Use(macaron.Renderer(renderOpt))
+
+ localeNames, err := embedConf.FileNames("locale")
+ if err != nil {
+ return nil, errors.Wrap(err, "list locale files")
+ }
+ localeFiles := make(map[string][]byte)
+ for _, name := range localeNames {
+ localeFiles[name], err = embedConf.Files.ReadFile("locale/" + name)
+ if err != nil {
+ return nil, errors.Wrapf(err, "read locale file %q", name)
+ }
+ }
+ m.Use(i18n.I18n(i18n.Options{
+ SubURL: conf.Server.Subpath,
+ Files: localeFiles,
+ CustomDirectory: filepath.Join(conf.CustomDir(), "conf", "locale"),
+ Langs: conf.I18n.Langs,
+ Names: conf.I18n.Names,
+ DefaultLang: "en-US",
+ Redirect: true,
+ }))
+ m.Use(cache.Cacher(cache.Options{
+ Adapter: conf.Cache.Adapter,
+ AdapterConfig: conf.Cache.Host,
+ Interval: conf.Cache.Interval,
+ }))
+ m.Use(captcha.Captchaer(captcha.Options{
+ SubURL: conf.Server.Subpath,
+ }))
+ m.Route("/healthcheck", http.MethodHead+","+http.MethodGet, healthCheck)
+ return m, nil
+}
+
+// renderIndex returns the index.html shell with per-request substitutions
+// applied for the given WebContext.
+func renderIndex(index []byte, wc context.WebContext) ([]byte, error) {
+ // json.Marshal escapes <, >, and & to their \uXXXX forms by default, so
+ // the payload cannot break out of the surrounding "
+ // even if a field carries attacker-influenced text.
+ payload, err := json.Marshal(struct {
+ Lang string `json:"lang"`
+ SubURL string `json:"subURL"`
+ }{
+ Lang: wc.Lang,
+ SubURL: wc.SubURL,
+ })
+ if err != nil {
+ return nil, errors.Wrap(err, "marshal web context")
+ }
+ script := ``
+
+ pairs := []string{
+ "{{.WebContext}}", script,
+ }
+ if wc.SubURL != "" {
+ // Vite bakes absolute root paths into the bundle output. Prefix them
+ // with the subpath so they resolve correctly under non-root mounts.
+ pairs = append(pairs,
+ `src="/assets/`, `src="`+wc.SubURL+`/assets/`,
+ `href="/assets/`, `href="`+wc.SubURL+`/assets/`,
+ `src="/src/`, `src="`+wc.SubURL+`/src/`,
+ `href="/img/`, `href="`+wc.SubURL+`/img/`,
+ )
+ }
+ return []byte(strings.NewReplacer(pairs...).Replace(string(index))), nil
+}
+
+func healthCheck(w http.ResponseWriter, r *http.Request) {
+ if err := database.Ping(); err != nil {
+ w.Header().Set("Content-Type", "text/plain; charset=utf-8")
+ w.WriteHeader(http.StatusServiceUnavailable)
+ _, _ = fmt.Fprintf(w, "* Database connection: %s\n", err)
+ return
+ }
+ w.Header().Set("Content-Type", "text/plain; charset=utf-8")
+ w.WriteHeader(http.StatusOK)
+ if r.Method == http.MethodHead {
+ return
+ }
+ _, _ = w.Write([]byte("* Database connection: OK\n"))
+}
diff --git a/cmd/gogs/internal/web/web_dev.go b/cmd/gogs/internal/web/web_dev.go
new file mode 100644
index 00000000000..635e335ec85
--- /dev/null
+++ b/cmd/gogs/internal/web/web_dev.go
@@ -0,0 +1,62 @@
+//go:build !prod
+
+package web
+
+import (
+ "bytes"
+ "io"
+ "net/http"
+ "net/http/httputil"
+ "net/url"
+ "strconv"
+ "strings"
+
+ "github.com/cockroachdb/errors"
+ "github.com/flamego/flamego"
+ log "unknwon.dev/clog/v2"
+
+ "gogs.io/gogs/internal/context"
+)
+
+func mountWebRoutes(f *flamego.Flame) error {
+ viteURL, err := url.Parse("http://localhost:5173")
+ if err != nil {
+ return errors.Wrap(err, "parse Vite URL")
+ }
+ proxy := httputil.NewSingleHostReverseProxy(viteURL)
+ proxy.ModifyResponse = func(resp *http.Response) error {
+ if !strings.HasPrefix(resp.Header.Get("Content-Type"), "text/html") {
+ return nil
+ }
+ raw, err := io.ReadAll(resp.Body)
+ if err != nil {
+ return errors.Wrap(err, "read Vite response body")
+ }
+ _ = resp.Body.Close()
+ wc := context.WebContextFrom(resp.Request)
+ body, err := renderIndex(raw, wc)
+ if err != nil {
+ log.Error("Failed to render index: %v", err)
+ body = []byte("Internal Server Error\n")
+ resp.StatusCode = http.StatusInternalServerError
+ resp.Status = http.StatusText(http.StatusInternalServerError)
+ resp.Header.Set("Content-Type", "text/plain; charset=utf-8")
+ } else if wc.StatusCode > 0 {
+ resp.StatusCode = wc.StatusCode
+ resp.Status = http.StatusText(wc.StatusCode)
+ }
+ resp.Body = io.NopCloser(bytes.NewReader(body))
+ resp.ContentLength = int64(len(body))
+ resp.Header.Set("Content-Length", strconv.Itoa(len(body)))
+ // The upstream validators describe the unmodified body. Drop them
+ // so the browser does not satisfy a conditional request from a
+ // cached copy that has a stale injected lang attribute.
+ resp.Header.Del("ETag")
+ resp.Header.Del("Last-Modified")
+ return nil
+ }
+ f.Any("/{**}", func(w http.ResponseWriter, r *http.Request) {
+ proxy.ServeHTTP(w, r)
+ })
+ return nil
+}
diff --git a/cmd/gogs/internal/web/web_prod.go b/cmd/gogs/internal/web/web_prod.go
new file mode 100644
index 00000000000..35f711cbdd3
--- /dev/null
+++ b/cmd/gogs/internal/web/web_prod.go
@@ -0,0 +1,68 @@
+//go:build prod
+
+package web
+
+import (
+ "io/fs"
+ "net/http"
+
+ "github.com/cockroachdb/errors"
+ "github.com/flamego/flamego"
+ log "unknwon.dev/clog/v2"
+
+ "gogs.io/gogs/internal/conf"
+ "gogs.io/gogs/internal/context"
+ "gogs.io/gogs/public"
+)
+
+func mountWebRoutes(f *flamego.Flame) error {
+ webFS, err := fs.Sub(public.WebAssets, "dist")
+ if err != nil {
+ return errors.Wrap(err, "load embedded web assets")
+ }
+ // Prefix matches the path rewrites renderIndex applies to the index
+ // shell. Without it the browser fetches //assets/... and the
+ // static handler looks them up in webFS at "/assets/...",
+ // which has no directory, so every asset would 404 and fall
+ // through to the wildcard handler as text/html.
+ //
+ // Index is set to a sentinel that does not exist in the FS so flamego.Static
+ // never serves the raw index.html for "/" requests. The catch-all below
+ // always renders the shell through renderIndex instead, ensuring template
+ // substitutions are applied.
+ f.Use(flamego.Static(flamego.StaticOptions{
+ FileSystem: http.FS(webFS),
+ Prefix: conf.Server.Subpath,
+ Index: "__disabled__",
+ }))
+
+ index, err := public.WebAssets.ReadFile("dist/index.html")
+ if err != nil {
+ return errors.Wrap(err, `read "dist/index.html"`)
+ }
+
+ f.Get("/{**}", func(w http.ResponseWriter, r *http.Request) {
+ wc := context.WebContextFrom(r)
+ body, err := renderIndex(index, wc)
+ if err != nil {
+ log.Error("Failed to render index: %v", err)
+ http.Error(w, "Internal Server Error", http.StatusInternalServerError)
+ return
+ }
+ w.Header().Set("Content-Type", "text/html; charset=utf-8")
+ // The body is rewritten per request (lang injection, future
+ // runtime config), so caching it would serve stale content to
+ // any user whose request resolves to a different locale. Use
+ // no-store rather than no-cache so the browser cannot keep a
+ // copy at all, not even for revalidation. Static assets keep
+ // their normal caching via flamego.Static.
+ w.Header().Set("Cache-Control", "no-store")
+ status := wc.StatusCode
+ if status <= 0 {
+ status = http.StatusOK
+ }
+ w.WriteHeader(status)
+ _, _ = w.Write(body)
+ })
+ return nil
+}
diff --git a/cmd/gogs/internal/web/webapi.go b/cmd/gogs/internal/web/webapi.go
new file mode 100644
index 00000000000..5a1d92dbf19
--- /dev/null
+++ b/cmd/gogs/internal/web/webapi.go
@@ -0,0 +1,404 @@
+package web
+
+import (
+ stdctx "context"
+ "encoding/json"
+ "net/http"
+ "reflect"
+ "strings"
+
+ "github.com/cockroachdb/errors"
+ "github.com/flamego/binding"
+ "github.com/flamego/flamego"
+ "github.com/flamego/validator"
+ "github.com/go-macaron/cache"
+ "github.com/go-macaron/i18n"
+ "github.com/go-macaron/session"
+ "gopkg.in/macaron.v1"
+ log "unknwon.dev/clog/v2"
+
+ "gogs.io/gogs/internal/auth"
+ "gogs.io/gogs/internal/conf"
+ "gogs.io/gogs/internal/context"
+ "gogs.io/gogs/internal/database"
+ "gogs.io/gogs/internal/urlx"
+ "gogs.io/gogs/internal/userx"
+)
+
+type (
+ webAPIUserKey struct{}
+ webAPISessionKey struct{}
+ webAPIMacaronKey struct{}
+ webAPILocaleKey struct{}
+ webAPICacheKey struct{}
+)
+
+func bridgeToWebAPI(webHandler http.Handler) func(c *context.Context, l i18n.Locale, ca cache.Cache) {
+ return func(c *context.Context, l i18n.Locale, ca cache.Cache) {
+ ctx := c.Req.Context()
+ ctx = stdctx.WithValue(ctx, webAPIUserKey{}, c.User)
+ ctx = stdctx.WithValue(ctx, webAPISessionKey{}, c.Session)
+ ctx = stdctx.WithValue(ctx, webAPIMacaronKey{}, c.Context)
+ ctx = stdctx.WithValue(ctx, webAPILocaleKey{}, l)
+ ctx = stdctx.WithValue(ctx, webAPICacheKey{}, ca)
+ webHandler.ServeHTTP(c.Resp, c.Req.WithContext(ctx))
+ }
+}
+
+func webAPIInjector(c flamego.Context) {
+ ctx := c.Request().Context()
+ user, _ := ctx.Value(webAPIUserKey{}).(*database.User)
+ sess, _ := ctx.Value(webAPISessionKey{}).(session.Store)
+ mc, _ := ctx.Value(webAPIMacaronKey{}).(*macaron.Context)
+ l, _ := ctx.Value(webAPILocaleKey{}).(i18n.Locale)
+ ca, _ := ctx.Value(webAPICacheKey{}).(cache.Cache)
+ c.Map(user, sess, mc, l, ca)
+}
+
+func webAPIBodyLimiter(c flamego.Context) {
+ r := c.Request().Request
+ r.Body = http.MaxBytesReader(c.ResponseWriter(), r.Body, 4*1024) // 4 KiB
+}
+
+// webAPIValidator is the shared validator instance used by every webapi
+// binding. Registering the json-tag name function makes validation errors
+// carry the wire field name (e.g. "recoveryCode") via ve.Field(), so the
+// 400 payload keys match what the React client sends and reads.
+var webAPIValidator = func() *validator.Validate {
+ v := validator.New()
+ v.RegisterTagNameFunc(func(fld reflect.StructField) string {
+ name := strings.SplitN(fld.Tag.Get("json"), ",", 2)[0]
+ if name == "-" {
+ return ""
+ }
+ return name
+ })
+ return v
+}()
+
+// bindJSON binds the request body to T. On binding or validation failure it
+// short-circuits with a 400 carrying the standard renderBindingErrors payload,
+// so downstream handlers can drop the `if len(bindErrs) > 0` boilerplate and
+// the binding.Errors parameter entirely.
+func bindJSON(model any) flamego.Handler {
+ return binding.JSON(model, binding.Options{
+ Validator: webAPIValidator,
+ ErrorHandler: func(c flamego.Context, l i18n.Locale, errs binding.Errors) {
+ w := c.ResponseWriter()
+ w.Header().Set("Cache-Control", "no-store")
+ w.Header().Set("Content-Type", "application/json; charset=utf-8")
+ w.WriteHeader(http.StatusBadRequest)
+ _ = json.NewEncoder(w).Encode(renderBindingErrors(l, errs))
+ },
+ })
+}
+
+func mountWebAPIRoutes(f *flamego.Flame) {
+ f.ReturnHandler(func(c flamego.Context, statusCode int, resp any, err error) {
+ w := c.ResponseWriter()
+ w.Header().Set("Cache-Control", "no-store")
+ if err != nil {
+ msg := err.Error()
+ if statusCode >= http.StatusInternalServerError && conf.IsProdMode() {
+ msg = "Internal server error"
+ }
+ resp = map[string]any{"error": msg}
+ }
+ if resp == nil {
+ w.WriteHeader(statusCode)
+ return
+ }
+ w.Header().Set("Content-Type", "application/json; charset=utf-8")
+ w.WriteHeader(statusCode)
+ _ = json.NewEncoder(w).Encode(resp)
+ })
+
+ f.Group("/api/web", func() {
+ f.Group("/user", func() {
+ f.Get("/info", getUserInfo)
+ f.Combo("/sign-in").
+ Get(getUserSignIn).
+ Post(bindJSON(userSignInRequest{}), postUserSignIn)
+ f.Group("/mfa", func() {
+ f.Combo("").
+ Get(getUserMFA).
+ Post(bindJSON(userMFARequest{}), postUserMFA)
+ f.Post("/recovery", bindJSON(userMFARecoveryRequest{}), postUserMFARecovery)
+ })
+ f.Post("/sign-out", postUserSignOut)
+ })
+ }, webAPIBodyLimiter, webAPIInjector)
+
+ f.Get("/redirect", getRedirect)
+}
+
+func getRedirect(c flamego.Context) {
+ to := c.Request().URL.Query().Get("to")
+ if !urlx.IsSameSite(to) {
+ to = conf.Server.Subpath + "/"
+ }
+ c.Redirect(to, http.StatusSeeOther)
+}
+
+// fieldErrors maps JSON field names to per-field localized messages. A non-nil
+// value renders inline under the input. A nil value marks the input as
+// invalid (highlight + focus eligibility) without duplicating text. Used in
+// concert with bindingErrorResponse.Error to surface one banner message while
+// highlighting multiple inputs.
+type fieldErrors map[string]*string
+
+// bindingErrorResponse carries form-validation failures. Error is the top-level
+// message shown as a banner above the form (used when the failure is not tied
+// to a specific input, e.g. malformed body, bad credentials).
+type bindingErrorResponse struct {
+ Error string `json:"error,omitempty"`
+ Fields fieldErrors `json:"fields,omitempty"`
+}
+
+// ruleSuffixKeys maps a validator tag to the shared "form.*_error" suffix key
+// (e.g. "max" -> "form.max_size_error"). Messages are composed as
+// + , mirroring the legacy Macaron binding behavior.
+var ruleSuffixKeys = map[string]string{
+ "required": "form.require_error",
+ "max": "form.max_size_error",
+ "min": "form.min_size_error",
+ "len": "form.size_error",
+ "email": "form.email_error",
+ "url": "form.url_error",
+}
+
+// renderBindingErrors maps binding.Errors to the response shape, looking up
+// localized messages via the request's locale. The per-field label comes from
+// "form." (e.g. "form.UserName"); the rule suffix comes from
+// ruleSuffixKeys. Rule parameters (e.g. "254" for `max=254`) are passed
+// through to the suffix translation for %s expansion. Always HTTP 400.
+func renderBindingErrors(l i18n.Locale, errs binding.Errors) *bindingErrorResponse {
+ for _, e := range errs {
+ if e.Category == binding.ErrorCategoryDeserialization {
+ return &bindingErrorResponse{Error: l.Tr("form.invalid_request") + ": " + e.Err.Error()}
+ }
+ }
+
+ out := make(fieldErrors)
+ for _, e := range errs {
+ var ves validator.ValidationErrors
+ ok := errors.As(e.Err, &ves)
+ if !ok {
+ continue
+ }
+ for _, ve := range ves {
+ field := ve.Field()
+ if _, exists := out[field]; exists {
+ // Keep the first rule that failed for a given field so the client renders one
+ // message per input. Subsequent rules surface only after the first is fixed.
+ continue
+ }
+ label := l.Tr("form." + ve.StructField())
+ suffixKey, known := ruleSuffixKeys[ve.Tag()]
+ var msg string
+ switch {
+ case !known:
+ msg = l.Tr("form.unknown_error") + " " + ve.Tag()
+ case ve.Param() != "":
+ msg = label + l.Tr(suffixKey, ve.Param())
+ default:
+ msg = label + l.Tr(suffixKey)
+ }
+ out[field] = &msg
+ }
+ }
+ return &bindingErrorResponse{Fields: out}
+}
+
+type loginSource struct {
+ ID int64 `json:"id"`
+ Name string `json:"name"`
+ IsDefault bool `json:"isDefault"`
+}
+
+type userSignInPageResponse struct {
+ LoginSources []loginSource `json:"loginSources"`
+}
+
+func getUserSignIn(r *http.Request) (statusCode int, resp *userSignInPageResponse, err error) {
+ sources, err := database.Handle.LoginSources().List(r.Context(), database.ListLoginSourceOptions{OnlyActivated: true})
+ if err != nil {
+ log.Error("getUserSignIn: list activated login sources: %v", err)
+ return http.StatusInternalServerError, nil, errors.Wrap(err, "list activated login sources")
+ }
+ loginSources := make([]loginSource, 0, len(sources))
+ for _, s := range sources {
+ loginSources = append(loginSources, loginSource{ID: s.ID, Name: s.Name, IsDefault: s.IsDefault})
+ }
+ return http.StatusOK, &userSignInPageResponse{LoginSources: loginSources}, nil
+}
+
+type userSignInRequest struct {
+ Username string `json:"username" validate:"required,max=254"`
+ Password string `json:"password" validate:"required,max=255"`
+ LoginSource int64 `json:"loginSource"`
+}
+
+type userSignInResponse struct {
+ // MFA is true when the account has MFA enabled and the password step
+ // succeeded but a second factor is still required. The client should
+ // navigate to /user/mfa to complete the challenge.
+ MFA bool `json:"mfa,omitempty"`
+}
+
+func postUserSignIn(r *http.Request, sess session.Store, mc *macaron.Context, l i18n.Locale, req userSignInRequest) (statusCode int, resp any, err error) {
+ u, err := database.Handle.Users().Authenticate(r.Context(), req.Username, req.Password, req.LoginSource)
+ if err != nil {
+ switch {
+ case auth.IsErrBadCredentials(err):
+ return http.StatusUnauthorized, &bindingErrorResponse{
+ Error: l.Tr("form.username_password_incorrect"),
+ Fields: fieldErrors{"username": nil, "password": nil},
+ }, nil
+ case database.IsErrLoginSourceMismatch(err):
+ return http.StatusUnprocessableEntity, nil, errors.New(l.Tr("form.auth_source_mismatch"))
+ default:
+ log.Error("postUserSignIn: authenticate user %q: %v", req.Username, err)
+ return http.StatusInternalServerError, nil, errors.Wrap(err, "authenticate user")
+ }
+ }
+
+ if database.Handle.TwoFactors().IsEnabled(r.Context(), u.ID) {
+ _ = sess.Set("mfaUserID", u.ID)
+ return http.StatusOK, &userSignInResponse{MFA: true}, nil
+ }
+
+ completeSignIn(sess, mc, u)
+ return http.StatusOK, &userSignInResponse{}, nil
+}
+
+// completeSignIn finalizes the sign-in session for u: writes the auth session,
+// clears any in-flight MFA state, and sets the login-status cookie. The
+// caller is responsible for navigating to a post-login destination via
+// /redirect?to=.
+func completeSignIn(sess session.Store, mc *macaron.Context, u *database.User) {
+ _ = sess.Set("uid", u.ID)
+ _ = sess.Set("uname", u.Name)
+ _ = sess.Delete("mfaUserID")
+
+ mc.SetCookie(conf.Session.CSRFCookieName, "", -1, conf.Server.Subpath)
+ if conf.Security.EnableLoginStatusCookie {
+ mc.SetCookie(conf.Security.LoginStatusCookieName, "true", 0, conf.Server.Subpath)
+ }
+}
+
+func getUserMFA(sess session.Store) (statusCode int, resp any, err error) {
+ if _, ok := sess.Get("mfaUserID").(int64); !ok {
+ return http.StatusNotFound, nil, nil
+ }
+ return http.StatusNoContent, nil, nil
+}
+
+type userMFARequest struct {
+ Passcode string `json:"passcode" validate:"required,len=6"`
+}
+
+type userMFAResponse struct{}
+
+func postUserMFA(r *http.Request, sess session.Store, mc *macaron.Context, ca cache.Cache, l i18n.Locale, req userMFARequest) (statusCode int, resp any, err error) {
+ userID, ok := sess.Get("mfaUserID").(int64)
+ if !ok {
+ return http.StatusUnauthorized, &bindingErrorResponse{Error: l.Tr("auth.mfa_session_expired")}, nil
+ }
+
+ t, err := database.Handle.TwoFactors().GetByUserID(r.Context(), userID)
+ if err != nil {
+ log.Error("postUserMFA: get two factor by user ID %d: %v", userID, err)
+ return http.StatusInternalServerError, nil, errors.Wrap(err, "get two factor by user ID")
+ }
+
+ valid, err := t.ValidateTOTP(req.Passcode)
+ if err != nil {
+ log.Error("postUserMFA: validate TOTP for user %d: %v", userID, err)
+ return http.StatusInternalServerError, nil, errors.Wrap(err, "validate TOTP")
+ }
+ if !valid {
+ msg := l.Tr("auth.mfa_invalid_passcode")
+ return http.StatusUnauthorized, &bindingErrorResponse{
+ Fields: fieldErrors{"passcode": &msg},
+ }, nil
+ }
+
+ if ca.IsExist(userx.TwoFactorCacheKey(userID, req.Passcode)) {
+ msg := l.Tr("auth.mfa_reused_passcode")
+ return http.StatusUnauthorized, &bindingErrorResponse{
+ Fields: fieldErrors{"passcode": &msg},
+ }, nil
+ }
+ if err = ca.Put(userx.TwoFactorCacheKey(userID, req.Passcode), 1, 60); err != nil {
+ log.Error("postUserMFA: cache two factor passcode for user %d: %v", userID, err)
+ }
+
+ u, err := database.Handle.Users().GetByID(r.Context(), userID)
+ if err != nil {
+ log.Error("postUserMFA: get user by ID %d: %v", userID, err)
+ return http.StatusInternalServerError, nil, errors.Wrap(err, "get user by ID")
+ }
+
+ completeSignIn(sess, mc, u)
+ return http.StatusOK, &userMFAResponse{}, nil
+}
+
+type userMFARecoveryRequest struct {
+ RecoveryCode string `json:"recoveryCode" validate:"required,len=11"`
+}
+
+func postUserMFARecovery(r *http.Request, sess session.Store, mc *macaron.Context, l i18n.Locale, req userMFARecoveryRequest) (statusCode int, resp any, err error) {
+ userID, ok := sess.Get("mfaUserID").(int64)
+ if !ok {
+ return http.StatusUnauthorized, &bindingErrorResponse{Error: l.Tr("auth.mfa_session_expired")}, nil
+ }
+
+ if err := database.Handle.TwoFactors().UseRecoveryCode(r.Context(), userID, req.RecoveryCode); err != nil {
+ if database.IsTwoFactorRecoveryCodeNotFound(err) {
+ msg := l.Tr("auth.mfa_invalid_recovery_code")
+ return http.StatusUnauthorized, &bindingErrorResponse{
+ Fields: fieldErrors{"recoveryCode": &msg},
+ }, nil
+ }
+ log.Error("postUserMFARecovery: use recovery code for user %d: %v", userID, err)
+ return http.StatusInternalServerError, nil, errors.Wrap(err, "use recovery code")
+ }
+
+ u, err := database.Handle.Users().GetByID(r.Context(), userID)
+ if err != nil {
+ log.Error("postUserMFARecovery: get user by ID %d: %v", userID, err)
+ return http.StatusInternalServerError, nil, errors.Wrap(err, "get user by ID")
+ }
+
+ completeSignIn(sess, mc, u)
+ return http.StatusOK, &userMFAResponse{}, nil
+}
+
+type userInfo struct {
+ Username string `json:"username"`
+ AvatarURL string `json:"avatarURL"`
+ IsAdmin bool `json:"isAdmin"`
+ CanCreateOrganization bool `json:"canCreateOrganization"`
+}
+
+func getUserInfo(user *database.User) (statusCode int, resp *userInfo, err error) {
+ if user == nil {
+ return http.StatusNoContent, nil, nil
+ }
+ return http.StatusOK,
+ &userInfo{
+ Username: user.Name,
+ AvatarURL: user.AvatarURL(),
+ IsAdmin: user.IsAdmin,
+ CanCreateOrganization: user.CanCreateOrganization(),
+ },
+ nil
+}
+
+func postUserSignOut(sess session.Store, mc *macaron.Context) (statusCode int, resp any, err error) {
+ _ = sess.Flush()
+ _ = sess.Destory(mc)
+ mc.SetCookie(conf.Session.CSRFCookieName, "", -1, conf.Server.Subpath)
+ return http.StatusNoContent, nil, nil
+}
diff --git a/cmd/gogs/main.go b/cmd/gogs/main.go
new file mode 100644
index 00000000000..45d40c89cf2
--- /dev/null
+++ b/cmd/gogs/main.go
@@ -0,0 +1,55 @@
+// Gogs is a painless self-hosted Git Service.
+package main
+
+import (
+ "context"
+ "os"
+ "path/filepath"
+
+ "github.com/urfave/cli/v3"
+ log "unknwon.dev/clog/v2"
+
+ "gogs.io/gogs/cmd/gogs/internal/web"
+ "gogs.io/gogs/internal/conf"
+)
+
+func init() {
+ conf.App.Version = "0.15.0+dev"
+}
+
+var webCommand = cli.Command{
+ Name: "web",
+ Usage: "Start the web server",
+ Description: "Serves the web interface, API, and HTTP Git endpoints.",
+ Action: func(_ context.Context, cmd *cli.Command) error {
+ var portOverride int
+ if cmd.IsSet("port") {
+ portOverride = cmd.Int("port")
+ }
+ return web.Run(configFromLineage(cmd), portOverride)
+ },
+ Flags: []cli.Flag{
+ intFlag("port, p", 3000, "Alternative listening port to use"),
+ stringFlag("config, c", filepath.Join(conf.CustomDir(), "conf", "app.ini"), "Custom configuration file path"),
+ },
+}
+
+func main() {
+ cmd := &cli.Command{
+ Name: "Gogs",
+ Usage: "The painless way to host your own Git service",
+ Version: conf.App.Version,
+ Commands: []*cli.Command{
+ &webCommand,
+ &servCommand,
+ &hookCommand,
+ &adminCommand,
+ &importCommand,
+ &backupCommand,
+ &restoreCommand,
+ },
+ }
+ if err := cmd.Run(context.Background(), os.Args); err != nil {
+ log.Fatal("Failed to start application: %v", err)
+ }
+}
diff --git a/cmd/gogs/restore.go b/cmd/gogs/restore.go
new file mode 100644
index 00000000000..53b9a015c1f
--- /dev/null
+++ b/cmd/gogs/restore.go
@@ -0,0 +1,161 @@
+package main
+
+import (
+ "context"
+ "os"
+ "path"
+ "path/filepath"
+
+ "github.com/cockroachdb/errors"
+ "github.com/unknwon/cae/zip"
+ "github.com/urfave/cli/v3"
+ "gopkg.in/ini.v1"
+ log "unknwon.dev/clog/v2"
+
+ "gogs.io/gogs/internal/conf"
+ "gogs.io/gogs/internal/database"
+ "gogs.io/gogs/internal/osx"
+ "gogs.io/gogs/internal/semverx"
+)
+
+var restoreCommand = cli.Command{
+ Name: "restore",
+ Usage: "Restore files and database from backup",
+ Description: `Restore imports all related files and database from a backup archive.
+The backup version must lower or equal to current Gogs version. You can also import
+backup from other database engines, which is useful for database migrating.
+
+If corresponding files or database tables are not presented in the archive, they will
+be skipped and remain unchanged.`,
+ Action: runRestore,
+ Flags: []cli.Flag{
+ stringFlag("config, c", "", "Custom configuration file path"),
+ boolFlag("verbose, v", "Show process details"),
+ stringFlag("tempdir, t", os.TempDir(), "Temporary directory path"),
+ stringFlag("from", "", "Path to backup archive"),
+ boolFlag("database-only", "Only import database"),
+ boolFlag("exclude-repos", "Exclude repositories"),
+ },
+}
+
+// lastSupportedVersionOfFormat returns the last supported version of the backup archive
+// format that is able to import.
+var lastSupportedVersionOfFormat = map[int]string{}
+
+func runRestore(ctx context.Context, cmd *cli.Command) error {
+ zip.Verbose = cmd.Bool("verbose")
+
+ tmpDir := cmd.String("tempdir")
+ if !osx.IsDir(tmpDir) {
+ log.Fatal("'--tempdir' does not exist: %s", tmpDir)
+ }
+ archivePath := path.Join(tmpDir, archiveRootDir)
+
+ // Make sure there was no leftover and also clean up afterwards
+ err := os.RemoveAll(archivePath)
+ if err != nil {
+ log.Fatal("Failed to clean up previous leftover in %q: %v", archivePath, err)
+ }
+ defer func() { _ = os.RemoveAll(archivePath) }()
+
+ log.Info("Restoring backup from: %s", cmd.String("from"))
+ err = zip.ExtractTo(cmd.String("from"), tmpDir)
+ if err != nil {
+ log.Fatal("Failed to extract backup archive: %v", err)
+ }
+
+ // Check backup version
+ metaFile := filepath.Join(archivePath, "metadata.ini")
+ if !osx.IsFile(metaFile) {
+ log.Fatal("File 'metadata.ini' is missing")
+ }
+ metadata, err := ini.Load(metaFile)
+ if err != nil {
+ log.Fatal("Failed to load metadata '%s': %v", metaFile, err)
+ }
+ backupVersion := metadata.Section("").Key("GOGS_VERSION").MustString("999.0")
+ if semverx.Compare(conf.App.Version, "<", backupVersion) {
+ log.Fatal("Current Gogs version is lower than backup version: %s < %s", conf.App.Version, backupVersion)
+ }
+ formatVersion := metadata.Section("").Key("VERSION").MustInt()
+ if formatVersion == 0 {
+ log.Fatal("Failed to determine the backup format version from metadata '%s': %s", metaFile, "VERSION is not presented")
+ }
+ if formatVersion != currentBackupFormatVersion {
+ log.Fatal("Backup format version found is %d but this binary only supports %d\nThe last known version that is able to import your backup is %s",
+ formatVersion, currentBackupFormatVersion, lastSupportedVersionOfFormat[formatVersion])
+ }
+
+ // If config file is not present in backup, user must set this file via flag.
+ // Otherwise, it's optional to set config file flag.
+ configFile := filepath.Join(archivePath, "custom", "conf", "app.ini")
+ var customConf string
+ if lineageConf := configFromLineage(cmd); lineageConf != "" {
+ customConf = lineageConf
+ } else if !osx.IsFile(configFile) {
+ log.Fatal("'--config' is not specified and custom config file is not found in backup")
+ } else {
+ customConf = configFile
+ }
+
+ err = conf.Init(customConf)
+ if err != nil {
+ return errors.Wrap(err, "init configuration")
+ }
+ conf.InitLogging(true)
+
+ conn, err := database.SetEngine()
+ if err != nil {
+ return errors.Wrap(err, "set engine")
+ }
+
+ // Database
+ dbDir := path.Join(archivePath, "db")
+ if err = database.ImportDatabase(ctx, conn, dbDir, cmd.Bool("verbose")); err != nil {
+ log.Fatal("Failed to import database: %v", err)
+ }
+
+ if !cmd.Bool("database-only") {
+ // Custom files
+ if osx.IsDir(conf.CustomDir()) {
+ if err = os.Rename(conf.CustomDir(), conf.CustomDir()+".bak"); err != nil {
+ log.Fatal("Failed to backup current 'custom': %v", err)
+ }
+ }
+ if err = os.Rename(filepath.Join(archivePath, "custom"), conf.CustomDir()); err != nil {
+ log.Fatal("Failed to import 'custom': %v", err)
+ }
+
+ // Data files
+ _ = os.MkdirAll(conf.Server.AppDataPath, os.ModePerm)
+ for _, dir := range []string{"attachments", "avatars", "repo-avatars"} {
+ // Skip if backup archive does not have corresponding data
+ srcPath := filepath.Join(archivePath, "data", dir)
+ if !osx.IsDir(srcPath) {
+ continue
+ }
+
+ dirPath := filepath.Join(conf.Server.AppDataPath, dir)
+ if osx.IsDir(dirPath) {
+ if err = os.Rename(dirPath, dirPath+".bak"); err != nil {
+ log.Fatal("Failed to backup current 'data': %v", err)
+ }
+ }
+ if err = os.Rename(srcPath, dirPath); err != nil {
+ log.Fatal("Failed to import 'data': %v", err)
+ }
+ }
+ }
+
+ // Repositories
+ reposPath := filepath.Join(archivePath, "repositories.zip")
+ if !cmd.Bool("exclude-repos") && !cmd.Bool("database-only") && osx.IsFile(reposPath) {
+ if err := zip.ExtractTo(reposPath, filepath.Dir(conf.Repository.Root)); err != nil {
+ log.Fatal("Failed to extract 'repositories.zip': %v", err)
+ }
+ }
+
+ log.Info("Restore succeed!")
+ log.Stop()
+ return nil
+}
diff --git a/cmd/gogs/serv.go b/cmd/gogs/serv.go
new file mode 100644
index 00000000000..f81ce772f9a
--- /dev/null
+++ b/cmd/gogs/serv.go
@@ -0,0 +1,274 @@
+package main
+
+import (
+ "context"
+ "fmt"
+ "os"
+ "os/exec"
+ "path/filepath"
+ "strconv"
+ "strings"
+ "time"
+
+ "github.com/urfave/cli/v3"
+ log "unknwon.dev/clog/v2"
+
+ "gogs.io/gogs/internal/conf"
+ "gogs.io/gogs/internal/database"
+)
+
+const (
+ accessDeniedMessage = "Repository does not exist or you do not have access"
+)
+
+var servCommand = cli.Command{
+ Name: "serv",
+ Usage: "This command should only be called by SSH shell",
+ Description: `Serv provide access auth for repositories`,
+ Action: runServ,
+ Flags: []cli.Flag{
+ stringFlag("config, c", "", "Custom configuration file path"),
+ },
+}
+
+// fail prints user message to the Git client (i.e. os.Stderr) and
+// logs error message on the server side. When not in "prod" mode,
+// error message is also printed to the client for easier debugging.
+func fail(userMessage, errMessage string, args ...any) {
+ _, _ = fmt.Fprintln(os.Stderr, "Gogs:", userMessage)
+
+ if len(errMessage) > 0 {
+ if !conf.IsProdMode() {
+ fmt.Fprintf(os.Stderr, errMessage+"\n", args...)
+ }
+ log.Error(errMessage, args...)
+ }
+
+ log.Stop()
+ os.Exit(1)
+}
+
+func setup(cmd *cli.Command, logFile string, connectDB bool) {
+ conf.HookMode = true
+
+ customConf := configFromLineage(cmd)
+
+ err := conf.Init(customConf)
+ if err != nil {
+ fail("Internal error", "Failed to init configuration: %v", err)
+ }
+ conf.InitLogging(true)
+
+ level := log.LevelTrace
+ if conf.IsProdMode() {
+ level = log.LevelError
+ }
+
+ err = log.NewFile(log.FileConfig{
+ Level: level,
+ Filename: filepath.Join(conf.Log.RootPath, "hooks", logFile),
+ FileRotationConfig: log.FileRotationConfig{
+ Rotate: true,
+ Daily: true,
+ MaxDays: 3,
+ },
+ })
+ if err != nil {
+ fail("Internal error", "Failed to init file logger: %v", err)
+ }
+ log.Remove(log.DefaultConsoleName) // Remove the primary logger
+
+ if !connectDB {
+ return
+ }
+
+ if conf.UseSQLite3 {
+ _ = os.Chdir(conf.WorkDir())
+ }
+
+ if _, err := database.SetEngine(); err != nil {
+ fail("Internal error", "Failed to set database engine: %v", err)
+ }
+}
+
+func parseSSHCmd(cmd string) (string, string) {
+ ss := strings.SplitN(cmd, " ", 2)
+ if len(ss) != 2 {
+ return "", ""
+ }
+ return ss[0], strings.Replace(ss[1], "'/", "'", 1)
+}
+
+func checkDeployKey(key *database.PublicKey, repo *database.Repository) {
+ // Check if this deploy key belongs to current repository.
+ if !database.HasDeployKey(key.ID, repo.ID) {
+ fail("Key access denied", "Deploy key access denied: [key_id: %d, repo_id: %d]", key.ID, repo.ID)
+ }
+
+ // Update deploy key activity.
+ deployKey, err := database.GetDeployKeyByRepo(key.ID, repo.ID)
+ if err != nil {
+ fail("Internal error", "GetDeployKey: %v", err)
+ }
+
+ deployKey.Updated = time.Now()
+ if err = database.UpdateDeployKey(deployKey); err != nil {
+ fail("Internal error", "UpdateDeployKey: %v", err)
+ }
+}
+
+var allowedCommands = map[string]database.AccessMode{
+ "git-upload-pack": database.AccessModeRead,
+ "git-upload-archive": database.AccessModeRead,
+ "git-receive-pack": database.AccessModeWrite,
+}
+
+func runServ(ctx context.Context, cmd *cli.Command) error {
+ setup(cmd, "serv.log", true)
+
+ if conf.SSH.Disabled {
+ println("Gogs: SSH has been disabled")
+ return nil
+ }
+
+ if cmd.Args().Len() < 1 {
+ fail("Not enough arguments", "Not enough arguments")
+ }
+
+ sshCmd := os.Getenv("SSH_ORIGINAL_COMMAND")
+ if sshCmd == "" {
+ println("Hi there, You've successfully authenticated, but Gogs does not provide shell access.")
+ println("If this is unexpected, please log in with password and setup Gogs under another user.")
+ return nil
+ }
+
+ verb, args := parseSSHCmd(sshCmd)
+ repoFullName := strings.ToLower(strings.Trim(args, "'"))
+ repoFields := strings.SplitN(repoFullName, "/", 2)
+ if len(repoFields) != 2 {
+ fail("Invalid repository path", "Invalid repository path: %v", args)
+ }
+ ownerName := strings.ToLower(repoFields[0])
+ repoName := strings.TrimSuffix(strings.ToLower(repoFields[1]), ".git")
+ repoName = strings.TrimSuffix(repoName, ".wiki")
+
+ owner, err := database.Handle.Users().GetByUsername(ctx, ownerName)
+ if err != nil {
+ if database.IsErrUserNotExist(err) {
+ fail("Repository owner does not exist", "Unregistered owner: %s", ownerName)
+ }
+ fail("Internal error", "Failed to get repository owner '%s': %v", ownerName, err)
+ }
+
+ repo, err := database.GetRepositoryByName(owner.ID, repoName)
+ if err != nil {
+ if database.IsErrRepoNotExist(err) {
+ fail(accessDeniedMessage, "Repository does not exist: %s/%s", owner.Name, repoName)
+ }
+ fail("Internal error", "Failed to get repository: %v", err)
+ }
+ repo.Owner = owner
+
+ requestMode, ok := allowedCommands[verb]
+ if !ok {
+ fail("Unknown git command", "Unknown git command '%s'", verb)
+ }
+
+ // Prohibit push to mirror repositories.
+ if requestMode > database.AccessModeRead && repo.IsMirror {
+ fail("Mirror repository is read-only", "")
+ }
+
+ // Allow anonymous (user is nil) clone for public repositories.
+ var user *database.User
+
+ keyID, _ := strconv.ParseInt(strings.TrimPrefix(cmd.Args().Get(0), "key-"), 10, 64)
+ key, err := database.GetPublicKeyByID(keyID)
+ if err != nil {
+ fail("Invalid key ID", "Invalid key ID '%s': %v", cmd.Args().Get(0), err)
+ }
+
+ if requestMode == database.AccessModeWrite || repo.IsPrivate {
+ // Check deploy key or user key.
+ if key.IsDeployKey() {
+ if key.Mode < requestMode {
+ fail("Key permission denied", "Cannot push with deployment key: %d", key.ID)
+ }
+ checkDeployKey(key, repo)
+ } else {
+ user, err = database.Handle.Users().GetByKeyID(ctx, key.ID)
+ if err != nil {
+ fail("Internal error", "Failed to get user by key ID '%d': %v", key.ID, err)
+ }
+
+ mode := database.Handle.Permissions().AccessMode(ctx, user.ID, repo.ID,
+ database.AccessModeOptions{
+ OwnerID: repo.OwnerID,
+ Private: repo.IsPrivate,
+ },
+ )
+ if mode < requestMode {
+ clientMessage := accessDeniedMessage
+ if mode >= database.AccessModeRead {
+ clientMessage = "You do not have sufficient authorization for this action"
+ }
+ fail(clientMessage,
+ "User '%s' does not have level '%v' access to repository '%s'",
+ user.Name, requestMode, repoFullName)
+ }
+ }
+ } else {
+ // Check if the key can access to the repository in case of it is a deploy key (a deploy keys != user key).
+ // A deploy key doesn't represent a signed in user, so in a site with Auth.RequireSignInView enabled,
+ // we should give read access only in repositories where this deploy key is in use. In other cases,
+ // a server or system using an active deploy key can get read access to all repositories on a Gogs instance.
+ if key.IsDeployKey() && conf.Auth.RequireSigninView {
+ checkDeployKey(key, repo)
+ }
+ }
+
+ // Update user key activity.
+ if key.ID > 0 {
+ key, err := database.GetPublicKeyByID(key.ID)
+ if err != nil {
+ fail("Internal error", "GetPublicKeyByID: %v", err)
+ }
+
+ key.Updated = time.Now()
+ if err = database.UpdatePublicKey(key); err != nil {
+ fail("Internal error", "UpdatePublicKey: %v", err)
+ }
+ }
+
+ // Special handle for Windows.
+ if conf.IsWindowsRuntime() {
+ verb = strings.Replace(verb, "-", " ", 1)
+ }
+
+ var gitCmd *exec.Cmd
+ verbs := strings.Split(verb, " ")
+ if len(verbs) == 2 {
+ gitCmd = exec.Command(verbs[0], verbs[1], repoFullName)
+ } else {
+ gitCmd = exec.Command(verb, repoFullName)
+ }
+ if requestMode == database.AccessModeWrite {
+ gitCmd.Env = append(os.Environ(), database.ComposeHookEnvs(database.ComposeHookEnvsOptions{
+ AuthUser: user,
+ OwnerName: owner.Name,
+ OwnerSalt: owner.Salt,
+ RepoID: repo.ID,
+ RepoName: repo.Name,
+ RepoPath: repo.RepoPath(),
+ })...)
+ }
+ gitCmd.Dir = conf.Repository.Root
+ gitCmd.Stdout = os.Stdout
+ gitCmd.Stdin = os.Stdin
+ gitCmd.Stderr = os.Stderr
+ if err = gitCmd.Run(); err != nil {
+ fail("Internal error", "Failed to execute git command: %v", err)
+ }
+
+ return nil
+}
diff --git a/cmd/serve.go b/cmd/serve.go
deleted file mode 100644
index 53d33b2edd5..00000000000
--- a/cmd/serve.go
+++ /dev/null
@@ -1,296 +0,0 @@
-// Copyright 2014 The Gogs Authors. All rights reserved.
-// Use of this source code is governed by a MIT-style
-// license that can be found in the LICENSE file.
-
-package cmd
-
-import (
- "crypto/tls"
- "fmt"
- "os"
- "os/exec"
- "path/filepath"
- "strings"
- "time"
-
- "github.com/Unknwon/com"
- git "github.com/gogits/git-module"
- gouuid "github.com/satori/go.uuid"
- "github.com/urfave/cli"
-
- "github.com/gogits/gogs/models"
- "github.com/gogits/gogs/modules/base"
- "github.com/gogits/gogs/modules/httplib"
- "github.com/gogits/gogs/modules/log"
- "github.com/gogits/gogs/modules/setting"
-)
-
-const (
- _ACCESS_DENIED_MESSAGE = "Repository does not exist or you do not have access"
-)
-
-var CmdServ = cli.Command{
- Name: "serv",
- Usage: "This command should only be called by SSH shell",
- Description: `Serv provide access auth for repositories`,
- Action: runServ,
- Flags: []cli.Flag{
- stringFlag("config, c", "custom/conf/app.ini", "Custom configuration file path"),
- },
-}
-
-func setup(logPath string) {
- setting.NewContext()
- log.NewGitLogger(filepath.Join(setting.LogRootPath, logPath))
-
- models.LoadConfigs()
-
- if setting.UseSQLite3 || setting.UseTiDB {
- workDir, _ := setting.WorkDir()
- os.Chdir(workDir)
- }
-
- models.SetEngine()
-}
-
-func parseCmd(cmd string) (string, string) {
- ss := strings.SplitN(cmd, " ", 2)
- if len(ss) != 2 {
- return "", ""
- }
- return ss[0], strings.Replace(ss[1], "'/", "'", 1)
-}
-
-var (
- allowedCommands = map[string]models.AccessMode{
- "git-upload-pack": models.ACCESS_MODE_READ,
- "git-upload-archive": models.ACCESS_MODE_READ,
- "git-receive-pack": models.ACCESS_MODE_WRITE,
- }
-)
-
-func fail(userMessage, logMessage string, args ...interface{}) {
- fmt.Fprintln(os.Stderr, "Gogs:", userMessage)
-
- if len(logMessage) > 0 {
- if !setting.ProdMode {
- fmt.Fprintf(os.Stderr, logMessage+"\n", args...)
- }
- log.GitLogger.Fatal(3, logMessage, args...)
- return
- }
-
- log.GitLogger.Close()
- os.Exit(1)
-}
-
-func handleUpdateTask(uuid string, user, repoUser *models.User, reponame string, isWiki bool) {
- task, err := models.GetUpdateTaskByUUID(uuid)
- if err != nil {
- if models.IsErrUpdateTaskNotExist(err) {
- log.GitLogger.Trace("No update task is presented: %s", uuid)
- return
- }
- log.GitLogger.Fatal(2, "GetUpdateTaskByUUID: %v", err)
- } else if err = models.DeleteUpdateTaskByUUID(uuid); err != nil {
- log.GitLogger.Fatal(2, "DeleteUpdateTaskByUUID: %v", err)
- }
-
- if isWiki {
- return
- }
-
- if err = models.PushUpdate(models.PushUpdateOptions{
- RefFullName: task.RefName,
- OldCommitID: task.OldCommitID,
- NewCommitID: task.NewCommitID,
- PusherID: user.ID,
- PusherName: user.Name,
- RepoUserName: repoUser.Name,
- RepoName: reponame,
- }); err != nil {
- log.GitLogger.Error(2, "Update: %v", err)
- }
-
- // Ask for running deliver hook and test pull request tasks.
- reqURL := setting.LocalURL + repoUser.Name + "/" + reponame + "/tasks/trigger?branch=" +
- strings.TrimPrefix(task.RefName, git.BRANCH_PREFIX) + "&secret=" + base.EncodeMD5(repoUser.Salt) + "&pusher=" + com.ToStr(user.ID)
- log.GitLogger.Trace("Trigger task: %s", reqURL)
-
- resp, err := httplib.Head(reqURL).SetTLSClientConfig(&tls.Config{
- InsecureSkipVerify: true,
- }).Response()
- if err == nil {
- resp.Body.Close()
- if resp.StatusCode/100 != 2 {
- log.GitLogger.Error(2, "Fail to trigger task: not 2xx response code")
- }
- } else {
- log.GitLogger.Error(2, "Fail to trigger task: %v", err)
- }
-}
-
-func runServ(c *cli.Context) error {
- if c.IsSet("config") {
- setting.CustomConf = c.String("config")
- }
-
- setup("serv.log")
-
- if setting.SSH.Disabled {
- println("Gogs: SSH has been disabled")
- return nil
- }
-
- if len(c.Args()) < 1 {
- fail("Not enough arguments", "Not enough arguments")
- }
-
- cmd := os.Getenv("SSH_ORIGINAL_COMMAND")
- if len(cmd) == 0 {
- println("Hi there, You've successfully authenticated, but Gogs does not provide shell access.")
- println("If this is unexpected, please log in with password and setup Gogs under another user.")
- return nil
- }
-
- verb, args := parseCmd(cmd)
- repoPath := strings.ToLower(strings.Trim(args, "'"))
- rr := strings.SplitN(repoPath, "/", 2)
- if len(rr) != 2 {
- fail("Invalid repository path", "Invalid repository path: %v", args)
- }
- username := strings.ToLower(rr[0])
- reponame := strings.ToLower(strings.TrimSuffix(rr[1], ".git"))
-
- isWiki := false
- if strings.HasSuffix(reponame, ".wiki") {
- isWiki = true
- reponame = reponame[:len(reponame)-5]
- }
-
- repoUser, err := models.GetUserByName(username)
- if err != nil {
- if models.IsErrUserNotExist(err) {
- fail("Repository owner does not exist", "Unregistered owner: %s", username)
- }
- fail("Internal error", "Failed to get repository owner (%s): %v", username, err)
- }
-
- repo, err := models.GetRepositoryByName(repoUser.ID, reponame)
- if err != nil {
- if models.IsErrRepoNotExist(err) {
- fail(_ACCESS_DENIED_MESSAGE, "Repository does not exist: %s/%s", repoUser.Name, reponame)
- }
- fail("Internal error", "Failed to get repository: %v", err)
- }
-
- requestedMode, has := allowedCommands[verb]
- if !has {
- fail("Unknown git command", "Unknown git command %s", verb)
- }
-
- // Prohibit push to mirror repositories.
- if requestedMode > models.ACCESS_MODE_READ && repo.IsMirror {
- fail("mirror repository is read-only", "")
- }
-
- // Allow anonymous clone for public repositories.
- var (
- keyID int64
- user *models.User
- )
- if requestedMode == models.ACCESS_MODE_WRITE || repo.IsPrivate {
- keys := strings.Split(c.Args()[0], "-")
- if len(keys) != 2 {
- fail("Key ID format error", "Invalid key argument: %s", c.Args()[0])
- }
-
- key, err := models.GetPublicKeyByID(com.StrTo(keys[1]).MustInt64())
- if err != nil {
- fail("Invalid key ID", "Invalid key ID[%s]: %v", c.Args()[0], err)
- }
- keyID = key.ID
-
- // Check deploy key or user key.
- if key.Type == models.KEY_TYPE_DEPLOY {
- if key.Mode < requestedMode {
- fail("Key permission denied", "Cannot push with deployment key: %d", key.ID)
- }
- // Check if this deploy key belongs to current repository.
- if !models.HasDeployKey(key.ID, repo.ID) {
- fail("Key access denied", "Deploy key access denied: [key_id: %d, repo_id: %d]", key.ID, repo.ID)
- }
-
- // Update deploy key activity.
- deployKey, err := models.GetDeployKeyByRepo(key.ID, repo.ID)
- if err != nil {
- fail("Internal error", "GetDeployKey: %v", err)
- }
-
- deployKey.Updated = time.Now()
- if err = models.UpdateDeployKey(deployKey); err != nil {
- fail("Internal error", "UpdateDeployKey: %v", err)
- }
- } else {
- user, err = models.GetUserByKeyID(key.ID)
- if err != nil {
- fail("internal error", "Failed to get user by key ID(%d): %v", keyID, err)
- }
-
- mode, err := models.AccessLevel(user, repo)
- if err != nil {
- fail("Internal error", "Fail to check access: %v", err)
- } else if mode < requestedMode {
- clientMessage := _ACCESS_DENIED_MESSAGE
- if mode >= models.ACCESS_MODE_READ {
- clientMessage = "You do not have sufficient authorization for this action"
- }
- fail(clientMessage,
- "User %s does not have level %v access to repository %s",
- user.Name, requestedMode, repoPath)
- }
- }
- }
-
- uuid := gouuid.NewV4().String()
- os.Setenv("uuid", uuid)
-
- // Special handle for Windows.
- if setting.IsWindows {
- verb = strings.Replace(verb, "-", " ", 1)
- }
-
- var gitcmd *exec.Cmd
- verbs := strings.Split(verb, " ")
- if len(verbs) == 2 {
- gitcmd = exec.Command(verbs[0], verbs[1], repoPath)
- } else {
- gitcmd = exec.Command(verb, repoPath)
- }
- gitcmd.Dir = setting.RepoRootPath
- gitcmd.Stdout = os.Stdout
- gitcmd.Stdin = os.Stdin
- gitcmd.Stderr = os.Stderr
- if err = gitcmd.Run(); err != nil {
- fail("Internal error", "Failed to execute git command: %v", err)
- }
-
- if requestedMode == models.ACCESS_MODE_WRITE {
- handleUpdateTask(uuid, user, repoUser, reponame, isWiki)
- }
-
- // Update user key activity.
- if keyID > 0 {
- key, err := models.GetPublicKeyByID(keyID)
- if err != nil {
- fail("Internal error", "GetPublicKeyById: %v", err)
- }
-
- key.Updated = time.Now()
- if err = models.UpdatePublicKey(key); err != nil {
- fail("Internal error", "UpdatePublicKey: %v", err)
- }
- }
-
- return nil
-}
diff --git a/cmd/update.go b/cmd/update.go
deleted file mode 100644
index bebc1016093..00000000000
--- a/cmd/update.go
+++ /dev/null
@@ -1,58 +0,0 @@
-// Copyright 2014 The Gogs Authors. All rights reserved.
-// Use of this source code is governed by a MIT-style
-// license that can be found in the LICENSE file.
-
-package cmd
-
-import (
- "os"
-
- "github.com/urfave/cli"
-
- "github.com/gogits/gogs/models"
- "github.com/gogits/gogs/modules/log"
- "github.com/gogits/gogs/modules/setting"
-)
-
-var CmdUpdate = cli.Command{
- Name: "update",
- Usage: "This command should only be called by Git hook",
- Description: `Update get pushed info and insert into database`,
- Action: runUpdate,
- Flags: []cli.Flag{
- stringFlag("config, c", "custom/conf/app.ini", "Custom configuration file path"),
- },
-}
-
-func runUpdate(c *cli.Context) error {
- if c.IsSet("config") {
- setting.CustomConf = c.String("config")
- }
-
- setup("update.log")
-
- if len(os.Getenv("SSH_ORIGINAL_COMMAND")) == 0 {
- log.GitLogger.Trace("SSH_ORIGINAL_COMMAND is empty")
- return nil
- }
-
- args := c.Args()
- if len(args) != 3 {
- log.GitLogger.Fatal(2, "Arguments received are not equal to three")
- } else if len(args[0]) == 0 {
- log.GitLogger.Fatal(2, "First argument 'refName' is empty, shouldn't use")
- }
-
- task := models.UpdateTask{
- UUID: os.Getenv("uuid"),
- RefName: args[0],
- OldCommitID: args[1],
- NewCommitID: args[2],
- }
-
- if err := models.AddUpdateTask(&task); err != nil {
- log.GitLogger.Fatal(2, "AddUpdateTask: %v", err)
- }
-
- return nil
-}
diff --git a/cmd/web.go b/cmd/web.go
deleted file mode 100644
index 97f6a0f15c7..00000000000
--- a/cmd/web.go
+++ /dev/null
@@ -1,676 +0,0 @@
-// Copyright 2014 The Gogs Authors. All rights reserved.
-// Use of this source code is governed by a MIT-style
-// license that can be found in the LICENSE file.
-
-package cmd
-
-import (
- "crypto/tls"
- "fmt"
- "io/ioutil"
- "net"
- "net/http"
- "net/http/fcgi"
- "os"
- "path"
- "strings"
-
- "github.com/go-macaron/binding"
- "github.com/go-macaron/cache"
- "github.com/go-macaron/captcha"
- "github.com/go-macaron/csrf"
- "github.com/go-macaron/gzip"
- "github.com/go-macaron/i18n"
- "github.com/go-macaron/session"
- "github.com/go-macaron/toolbox"
- "github.com/go-xorm/xorm"
- "github.com/mcuadros/go-version"
- "github.com/urfave/cli"
- "gopkg.in/ini.v1"
- "gopkg.in/macaron.v1"
-
- "github.com/gogits/git-module"
- "github.com/gogits/go-gogs-client"
-
- "github.com/gogits/gogs/models"
- "github.com/gogits/gogs/modules/auth"
- "github.com/gogits/gogs/modules/bindata"
- "github.com/gogits/gogs/modules/context"
- "github.com/gogits/gogs/modules/log"
- "github.com/gogits/gogs/modules/setting"
- "github.com/gogits/gogs/modules/template"
- "github.com/gogits/gogs/routers"
- "github.com/gogits/gogs/routers/admin"
- apiv1 "github.com/gogits/gogs/routers/api/v1"
- "github.com/gogits/gogs/routers/dev"
- "github.com/gogits/gogs/routers/org"
- "github.com/gogits/gogs/routers/repo"
- "github.com/gogits/gogs/routers/user"
-)
-
-var CmdWeb = cli.Command{
- Name: "web",
- Usage: "Start Gogs web server",
- Description: `Gogs web server is the only thing you need to run,
-and it takes care of all the other things for you`,
- Action: runWeb,
- Flags: []cli.Flag{
- stringFlag("port, p", "3000", "Temporary port number to prevent conflict"),
- stringFlag("config, c", "custom/conf/app.ini", "Custom configuration file path"),
- },
-}
-
-type VerChecker struct {
- ImportPath string
- Version func() string
- Expected string
-}
-
-// checkVersion checks if binary matches the version of templates files.
-func checkVersion() {
- // Templates.
- data, err := ioutil.ReadFile(setting.StaticRootPath + "/templates/.VERSION")
- if err != nil {
- log.Fatal(4, "Fail to read 'templates/.VERSION': %v", err)
- }
- tplVer := string(data)
- if tplVer != setting.AppVer {
- if version.Compare(tplVer, setting.AppVer, ">") {
- log.Fatal(4, "Binary version is lower than template file version, did you forget to recompile Gogs?")
- } else {
- log.Fatal(4, "Binary version is higher than template file version, did you forget to update template files?")
- }
- }
-
- // Check dependency version.
- checkers := []VerChecker{
- {"github.com/go-xorm/xorm", func() string { return xorm.Version }, "0.5.5"},
- {"github.com/go-macaron/binding", binding.Version, "0.3.2"},
- {"github.com/go-macaron/cache", cache.Version, "0.1.2"},
- {"github.com/go-macaron/csrf", csrf.Version, "0.1.0"},
- {"github.com/go-macaron/i18n", i18n.Version, "0.3.0"},
- {"github.com/go-macaron/session", session.Version, "0.1.6"},
- {"github.com/go-macaron/toolbox", toolbox.Version, "0.1.0"},
- {"gopkg.in/ini.v1", ini.Version, "1.8.4"},
- {"gopkg.in/macaron.v1", macaron.Version, "1.1.7"},
- {"github.com/gogits/git-module", git.Version, "0.4.1"},
- {"github.com/gogits/go-gogs-client", gogs.Version, "0.12.1"},
- }
- for _, c := range checkers {
- if !version.Compare(c.Version(), c.Expected, ">=") {
- log.Fatal(4, `Dependency outdated!
-Package '%s' current version (%s) is below requirement (%s),
-please use following command to update this package and recompile Gogs:
-go get -u %[1]s`, c.ImportPath, c.Version(), c.Expected)
- }
- }
-}
-
-// newMacaron initializes Macaron instance.
-func newMacaron() *macaron.Macaron {
- m := macaron.New()
- if !setting.DisableRouterLog {
- m.Use(macaron.Logger())
- }
- m.Use(macaron.Recovery())
- if setting.EnableGzip {
- m.Use(gzip.Gziper())
- }
- if setting.Protocol == setting.FCGI {
- m.SetURLPrefix(setting.AppSubUrl)
- }
- m.Use(macaron.Static(
- path.Join(setting.StaticRootPath, "public"),
- macaron.StaticOptions{
- SkipLogging: setting.DisableRouterLog,
- },
- ))
- m.Use(macaron.Static(
- setting.AvatarUploadPath,
- macaron.StaticOptions{
- Prefix: "avatars",
- SkipLogging: setting.DisableRouterLog,
- },
- ))
-
- funcMap := template.NewFuncMap()
- m.Use(macaron.Renderer(macaron.RenderOptions{
- Directory: path.Join(setting.StaticRootPath, "templates"),
- AppendDirectories: []string{path.Join(setting.CustomPath, "templates")},
- Funcs: funcMap,
- IndentJSON: macaron.Env != macaron.PROD,
- }))
- models.InitMailRender(path.Join(setting.StaticRootPath, "templates/mail"),
- path.Join(setting.CustomPath, "templates/mail"), funcMap)
-
- localeNames, err := bindata.AssetDir("conf/locale")
- if err != nil {
- log.Fatal(4, "Fail to list locale files: %v", err)
- }
- localFiles := make(map[string][]byte)
- for _, name := range localeNames {
- localFiles[name] = bindata.MustAsset("conf/locale/" + name)
- }
- m.Use(i18n.I18n(i18n.Options{
- SubURL: setting.AppSubUrl,
- Files: localFiles,
- CustomDirectory: path.Join(setting.CustomPath, "conf/locale"),
- Langs: setting.Langs,
- Names: setting.Names,
- DefaultLang: "en-US",
- Redirect: true,
- }))
- m.Use(cache.Cacher(cache.Options{
- Adapter: setting.CacheAdapter,
- AdapterConfig: setting.CacheConn,
- Interval: setting.CacheInterval,
- }))
- m.Use(captcha.Captchaer(captcha.Options{
- SubURL: setting.AppSubUrl,
- }))
- m.Use(session.Sessioner(setting.SessionConfig))
- m.Use(csrf.Csrfer(csrf.Options{
- Secret: setting.SecretKey,
- Cookie: setting.CSRFCookieName,
- SetCookie: true,
- Header: "X-Csrf-Token",
- CookiePath: setting.AppSubUrl,
- }))
- m.Use(toolbox.Toolboxer(m, toolbox.Options{
- HealthCheckFuncs: []*toolbox.HealthCheckFuncDesc{
- &toolbox.HealthCheckFuncDesc{
- Desc: "Database connection",
- Func: models.Ping,
- },
- },
- }))
- m.Use(context.Contexter())
- return m
-}
-
-func runWeb(ctx *cli.Context) error {
- if ctx.IsSet("config") {
- setting.CustomConf = ctx.String("config")
- }
- routers.GlobalInit()
- checkVersion()
-
- m := newMacaron()
-
- reqSignIn := context.Toggle(&context.ToggleOptions{SignInRequired: true})
- ignSignIn := context.Toggle(&context.ToggleOptions{SignInRequired: setting.Service.RequireSignInView})
- ignSignInAndCsrf := context.Toggle(&context.ToggleOptions{DisableCSRF: true})
- reqSignOut := context.Toggle(&context.ToggleOptions{SignOutRequired: true})
-
- bindIgnErr := binding.BindIgnErr
-
- // FIXME: not all routes need go through same middlewares.
- // Especially some AJAX requests, we can reduce middleware number to improve performance.
- // Routers.
- m.Get("/", ignSignIn, routers.Home)
- m.Group("/explore", func() {
- m.Get("", func(ctx *context.Context) {
- ctx.Redirect(setting.AppSubUrl + "/explore/repos")
- })
- m.Get("/repos", routers.ExploreRepos)
- m.Get("/users", routers.ExploreUsers)
- m.Get("/organizations", routers.ExploreOrganizations)
- }, ignSignIn)
- m.Combo("/install", routers.InstallInit).Get(routers.Install).
- Post(bindIgnErr(auth.InstallForm{}), routers.InstallPost)
- m.Get("/^:type(issues|pulls)$", reqSignIn, user.Issues)
-
- // ***** START: User *****
- m.Group("/user", func() {
- m.Get("/login", user.SignIn)
- m.Post("/login", bindIgnErr(auth.SignInForm{}), user.SignInPost)
- m.Get("/sign_up", user.SignUp)
- m.Post("/sign_up", bindIgnErr(auth.RegisterForm{}), user.SignUpPost)
- m.Get("/reset_password", user.ResetPasswd)
- m.Post("/reset_password", user.ResetPasswdPost)
- }, reqSignOut)
-
- m.Group("/user/settings", func() {
- m.Get("", user.Settings)
- m.Post("", bindIgnErr(auth.UpdateProfileForm{}), user.SettingsPost)
- m.Combo("/avatar").Get(user.SettingsAvatar).
- Post(binding.MultipartForm(auth.AvatarForm{}), user.SettingsAvatarPost)
- m.Post("/avatar/delete", user.SettingsDeleteAvatar)
- m.Combo("/email").Get(user.SettingsEmails).
- Post(bindIgnErr(auth.AddEmailForm{}), user.SettingsEmailPost)
- m.Post("/email/delete", user.DeleteEmail)
- m.Get("/password", user.SettingsPassword)
- m.Post("/password", bindIgnErr(auth.ChangePasswordForm{}), user.SettingsPasswordPost)
- m.Combo("/ssh").Get(user.SettingsSSHKeys).
- Post(bindIgnErr(auth.AddSSHKeyForm{}), user.SettingsSSHKeysPost)
- m.Post("/ssh/delete", user.DeleteSSHKey)
- m.Combo("/applications").Get(user.SettingsApplications).
- Post(bindIgnErr(auth.NewAccessTokenForm{}), user.SettingsApplicationsPost)
- m.Post("/applications/delete", user.SettingsDeleteApplication)
- m.Route("/delete", "GET,POST", user.SettingsDelete)
- }, reqSignIn, func(ctx *context.Context) {
- ctx.Data["PageIsUserSettings"] = true
- })
-
- m.Group("/user", func() {
- // r.Get("/feeds", binding.Bind(auth.FeedsForm{}), user.Feeds)
- m.Any("/activate", user.Activate)
- m.Any("/activate_email", user.ActivateEmail)
- m.Get("/email2user", user.Email2User)
- m.Get("/forget_password", user.ForgotPasswd)
- m.Post("/forget_password", user.ForgotPasswdPost)
- m.Get("/logout", user.SignOut)
- })
- // ***** END: User *****
-
- adminReq := context.Toggle(&context.ToggleOptions{SignInRequired: true, AdminRequired: true})
-
- // ***** START: Admin *****
- m.Group("/admin", func() {
- m.Get("", adminReq, admin.Dashboard)
- m.Get("/config", admin.Config)
- m.Post("/config/test_mail", admin.SendTestMail)
- m.Get("/monitor", admin.Monitor)
-
- m.Group("/users", func() {
- m.Get("", admin.Users)
- m.Combo("/new").Get(admin.NewUser).Post(bindIgnErr(auth.AdminCrateUserForm{}), admin.NewUserPost)
- m.Combo("/:userid").Get(admin.EditUser).Post(bindIgnErr(auth.AdminEditUserForm{}), admin.EditUserPost)
- m.Post("/:userid/delete", admin.DeleteUser)
- })
-
- m.Group("/orgs", func() {
- m.Get("", admin.Organizations)
- })
-
- m.Group("/repos", func() {
- m.Get("", admin.Repos)
- m.Post("/delete", admin.DeleteRepo)
- })
-
- m.Group("/auths", func() {
- m.Get("", admin.Authentications)
- m.Combo("/new").Get(admin.NewAuthSource).Post(bindIgnErr(auth.AuthenticationForm{}), admin.NewAuthSourcePost)
- m.Combo("/:authid").Get(admin.EditAuthSource).
- Post(bindIgnErr(auth.AuthenticationForm{}), admin.EditAuthSourcePost)
- m.Post("/:authid/delete", admin.DeleteAuthSource)
- })
-
- m.Group("/notices", func() {
- m.Get("", admin.Notices)
- m.Post("/delete", admin.DeleteNotices)
- m.Get("/empty", admin.EmptyNotices)
- })
- }, adminReq)
- // ***** END: Admin *****
-
- m.Group("", func() {
- m.Group("/:username", func() {
- m.Get("", user.Profile)
- m.Get("/followers", user.Followers)
- m.Get("/following", user.Following)
- m.Get("/stars", user.Stars)
- })
-
- m.Get("/attachments/:uuid", func(ctx *context.Context) {
- attach, err := models.GetAttachmentByUUID(ctx.Params(":uuid"))
- if err != nil {
- if models.IsErrAttachmentNotExist(err) {
- ctx.Error(404)
- } else {
- ctx.Handle(500, "GetAttachmentByUUID", err)
- }
- return
- }
-
- fr, err := os.Open(attach.LocalPath())
- if err != nil {
- ctx.Handle(500, "Open", err)
- return
- }
- defer fr.Close()
-
- ctx.Header().Set("Cache-Control", "public,max-age=86400")
- ctx.Header().Set("Content-Disposition", fmt.Sprintf(`inline; filename="%s"`, attach.Name))
- // Fix #312. Attachments with , in their name are not handled correctly by Google Chrome.
- // We must put the name in " manually.
- if err = repo.ServeData(ctx, "\""+attach.Name+"\"", fr); err != nil {
- ctx.Handle(500, "ServeData", err)
- return
- }
- })
- m.Post("/issues/attachments", repo.UploadIssueAttachment)
- }, ignSignIn)
-
- m.Group("/:username", func() {
- m.Get("/action/:action", user.Action)
- }, reqSignIn)
-
- if macaron.Env == macaron.DEV {
- m.Get("/template/*", dev.TemplatePreview)
- }
-
- reqRepoAdmin := context.RequireRepoAdmin()
- reqRepoWriter := context.RequireRepoWriter()
-
- // ***** START: Organization *****
- m.Group("/org", func() {
- m.Get("/create", org.Create)
- m.Post("/create", bindIgnErr(auth.CreateOrgForm{}), org.CreatePost)
-
- m.Group("/:org", func() {
- m.Get("/dashboard", user.Dashboard)
- m.Get("/^:type(issues|pulls)$", user.Issues)
- m.Get("/members", org.Members)
- m.Get("/members/action/:action", org.MembersAction)
-
- m.Get("/teams", org.Teams)
- }, context.OrgAssignment(true))
-
- m.Group("/:org", func() {
- m.Get("/teams/:team", org.TeamMembers)
- m.Get("/teams/:team/repositories", org.TeamRepositories)
- m.Route("/teams/:team/action/:action", "GET,POST", org.TeamsAction)
- m.Route("/teams/:team/action/repo/:action", "GET,POST", org.TeamsRepoAction)
- }, context.OrgAssignment(true, false, true))
-
- m.Group("/:org", func() {
- m.Get("/teams/new", org.NewTeam)
- m.Post("/teams/new", bindIgnErr(auth.CreateTeamForm{}), org.NewTeamPost)
- m.Get("/teams/:team/edit", org.EditTeam)
- m.Post("/teams/:team/edit", bindIgnErr(auth.CreateTeamForm{}), org.EditTeamPost)
- m.Post("/teams/:team/delete", org.DeleteTeam)
-
- m.Group("/settings", func() {
- m.Combo("").Get(org.Settings).
- Post(bindIgnErr(auth.UpdateOrgSettingForm{}), org.SettingsPost)
- m.Post("/avatar", binding.MultipartForm(auth.AvatarForm{}), org.SettingsAvatar)
- m.Post("/avatar/delete", org.SettingsDeleteAvatar)
-
- m.Group("/hooks", func() {
- m.Get("", org.Webhooks)
- m.Post("/delete", org.DeleteWebhook)
- m.Get("/:type/new", repo.WebhooksNew)
- m.Post("/gogs/new", bindIgnErr(auth.NewWebhookForm{}), repo.WebHooksNewPost)
- m.Post("/slack/new", bindIgnErr(auth.NewSlackHookForm{}), repo.SlackHooksNewPost)
- m.Get("/:id", repo.WebHooksEdit)
- m.Post("/gogs/:id", bindIgnErr(auth.NewWebhookForm{}), repo.WebHooksEditPost)
- m.Post("/slack/:id", bindIgnErr(auth.NewSlackHookForm{}), repo.SlackHooksEditPost)
- })
-
- m.Route("/delete", "GET,POST", org.SettingsDelete)
- })
-
- m.Route("/invitations/new", "GET,POST", org.Invitation)
- }, context.OrgAssignment(true, true))
- }, reqSignIn)
- // ***** END: Organization *****
-
- // ***** START: Repository *****
- m.Group("/repo", func() {
- m.Get("/create", repo.Create)
- m.Post("/create", bindIgnErr(auth.CreateRepoForm{}), repo.CreatePost)
- m.Get("/migrate", repo.Migrate)
- m.Post("/migrate", bindIgnErr(auth.MigrateRepoForm{}), repo.MigratePost)
- m.Combo("/fork/:repoid").Get(repo.Fork).
- Post(bindIgnErr(auth.CreateRepoForm{}), repo.ForkPost)
- }, reqSignIn)
-
- m.Group("/:username/:reponame", func() {
- m.Group("/settings", func() {
- m.Combo("").Get(repo.Settings).
- Post(bindIgnErr(auth.RepoSettingForm{}), repo.SettingsPost)
- m.Group("/collaboration", func() {
- m.Combo("").Get(repo.Collaboration).Post(repo.CollaborationPost)
- m.Post("/access_mode", repo.ChangeCollaborationAccessMode)
- m.Post("/delete", repo.DeleteCollaboration)
- })
-
- m.Group("/hooks", func() {
- m.Get("", repo.Webhooks)
- m.Post("/delete", repo.DeleteWebhook)
- m.Get("/:type/new", repo.WebhooksNew)
- m.Post("/gogs/new", bindIgnErr(auth.NewWebhookForm{}), repo.WebHooksNewPost)
- m.Post("/slack/new", bindIgnErr(auth.NewSlackHookForm{}), repo.SlackHooksNewPost)
- m.Get("/:id", repo.WebHooksEdit)
- m.Post("/:id/test", repo.TestWebhook)
- m.Post("/gogs/:id", bindIgnErr(auth.NewWebhookForm{}), repo.WebHooksEditPost)
- m.Post("/slack/:id", bindIgnErr(auth.NewSlackHookForm{}), repo.SlackHooksEditPost)
-
- m.Group("/git", func() {
- m.Get("", repo.GitHooks)
- m.Combo("/:name").Get(repo.GitHooksEdit).
- Post(repo.GitHooksEditPost)
- }, context.GitHookService())
- })
-
- m.Group("/keys", func() {
- m.Combo("").Get(repo.DeployKeys).
- Post(bindIgnErr(auth.AddSSHKeyForm{}), repo.DeployKeysPost)
- m.Post("/delete", repo.DeleteDeployKey)
- })
-
- }, func(ctx *context.Context) {
- ctx.Data["PageIsSettings"] = true
- })
- }, reqSignIn, context.RepoAssignment(), reqRepoAdmin, context.RepoRef())
-
- m.Get("/:username/:reponame/action/:action", reqSignIn, context.RepoAssignment(), repo.Action)
- m.Group("/:username/:reponame", func() {
- // FIXME: should use different URLs but mostly same logic for comments of issue and pull reuqest.
- // So they can apply their own enable/disable logic on routers.
- m.Group("/issues", func() {
- m.Combo("/new", repo.MustEnableIssues).Get(context.RepoRef(), repo.NewIssue).
- Post(bindIgnErr(auth.CreateIssueForm{}), repo.NewIssuePost)
-
- m.Group("/:index", func() {
- m.Post("/label", repo.UpdateIssueLabel)
- m.Post("/milestone", repo.UpdateIssueMilestone)
- m.Post("/assignee", repo.UpdateIssueAssignee)
- }, reqRepoWriter)
-
- m.Group("/:index", func() {
- m.Post("/title", repo.UpdateIssueTitle)
- m.Post("/content", repo.UpdateIssueContent)
- m.Combo("/comments").Post(bindIgnErr(auth.CreateCommentForm{}), repo.NewComment)
- })
- })
- m.Group("/comments/:id", func() {
- m.Post("", repo.UpdateCommentContent)
- m.Post("/delete", repo.DeleteComment)
- })
- m.Group("/labels", func() {
- m.Post("/new", bindIgnErr(auth.CreateLabelForm{}), repo.NewLabel)
- m.Post("/edit", bindIgnErr(auth.CreateLabelForm{}), repo.UpdateLabel)
- m.Post("/delete", repo.DeleteLabel)
- m.Post("/initialize", bindIgnErr(auth.InitializeLabelsForm{}), repo.InitializeLabels)
- }, reqRepoWriter, context.RepoRef())
- m.Group("/milestones", func() {
- m.Combo("/new").Get(repo.NewMilestone).
- Post(bindIgnErr(auth.CreateMilestoneForm{}), repo.NewMilestonePost)
- m.Get("/:id/edit", repo.EditMilestone)
- m.Post("/:id/edit", bindIgnErr(auth.CreateMilestoneForm{}), repo.EditMilestonePost)
- m.Get("/:id/:action", repo.ChangeMilestonStatus)
- m.Post("/delete", repo.DeleteMilestone)
- }, reqRepoWriter, context.RepoRef())
-
- m.Group("/releases", func() {
- m.Get("/new", repo.NewRelease)
- m.Post("/new", bindIgnErr(auth.NewReleaseForm{}), repo.NewReleasePost)
- m.Post("/delete", repo.DeleteRelease)
- }, reqRepoWriter, context.RepoRef())
-
- m.Group("/releases", func() {
- m.Get("/edit/*", repo.EditRelease)
- m.Post("/edit/*", bindIgnErr(auth.EditReleaseForm{}), repo.EditReleasePost)
- }, reqRepoWriter, func(ctx *context.Context) {
- var err error
- ctx.Repo.Commit, err = ctx.Repo.GitRepo.GetBranchCommit(ctx.Repo.Repository.DefaultBranch)
- if err != nil {
- ctx.Handle(500, "GetBranchCommit", err)
- return
- }
- ctx.Repo.CommitsCount, err = ctx.Repo.Commit.CommitsCount()
- if err != nil {
- ctx.Handle(500, "CommitsCount", err)
- return
- }
- ctx.Data["CommitsCount"] = ctx.Repo.CommitsCount
- })
-
- m.Combo("/compare/*", repo.MustAllowPulls).Get(repo.CompareAndPullRequest).
- Post(bindIgnErr(auth.CreateIssueForm{}), repo.CompareAndPullRequestPost)
-
- m.Group("", func() {
- m.Combo("/_edit/*").Get(repo.EditFile).
- Post(bindIgnErr(auth.EditRepoFileForm{}), repo.EditFilePost)
- m.Combo("/_new/*").Get(repo.NewFile).
- Post(bindIgnErr(auth.EditRepoFileForm{}), repo.NewFilePost)
- m.Post("/_preview/*", bindIgnErr(auth.EditPreviewDiffForm{}), repo.DiffPreviewPost)
- m.Combo("/_delete/*").Get(repo.DeleteFile).
- Post(bindIgnErr(auth.DeleteRepoFileForm{}), repo.DeleteFilePost)
-
- m.Group("", func() {
- m.Combo("/_upload/*").Get(repo.UploadFile).
- Post(bindIgnErr(auth.UploadRepoFileForm{}), repo.UploadFilePost)
- m.Post("/upload-file", repo.UploadFileToServer)
- m.Post("/upload-remove", bindIgnErr(auth.RemoveUploadFileForm{}), repo.RemoveUploadFileFromServer)
- }, func(ctx *context.Context) {
- if !setting.Repository.Upload.Enabled {
- ctx.Handle(404, "", nil)
- return
- }
- })
- }, reqRepoWriter, context.RepoRef(), func(ctx *context.Context) {
- if !ctx.Repo.Repository.CanEnableEditor() || ctx.Repo.IsViewCommit {
- ctx.Handle(404, "", nil)
- return
- }
- })
- }, reqSignIn, context.RepoAssignment(), repo.MustBeNotBare)
-
- m.Group("/:username/:reponame", func() {
- m.Group("", func() {
- m.Get("/releases", repo.Releases)
- m.Get("/^:type(issues|pulls)$", repo.RetrieveLabels, repo.Issues)
- m.Get("/^:type(issues|pulls)$/:index", repo.ViewIssue)
- m.Get("/labels/", repo.RetrieveLabels, repo.Labels)
- m.Get("/milestones", repo.Milestones)
- }, context.RepoRef())
-
- // m.Get("/branches", repo.Branches)
-
- m.Group("/wiki", func() {
- m.Get("/?:page", repo.Wiki)
- m.Get("/_pages", repo.WikiPages)
-
- m.Group("", func() {
- m.Combo("/_new").Get(repo.NewWiki).
- Post(bindIgnErr(auth.NewWikiForm{}), repo.NewWikiPost)
- m.Combo("/:page/_edit").Get(repo.EditWiki).
- Post(bindIgnErr(auth.NewWikiForm{}), repo.EditWikiPost)
- m.Post("/:page/delete", repo.DeleteWikiPagePost)
- }, reqSignIn, reqRepoWriter)
- }, repo.MustEnableWiki, context.RepoRef())
-
- m.Get("/archive/*", repo.Download)
-
- m.Group("/pulls/:index", func() {
- m.Get("/commits", context.RepoRef(), repo.ViewPullCommits)
- m.Get("/files", context.RepoRef(), repo.ViewPullFiles)
- m.Post("/merge", reqRepoWriter, repo.MergePullRequest)
- }, repo.MustAllowPulls)
-
- m.Group("", func() {
- m.Get("/src/*", repo.Home)
- m.Get("/raw/*", repo.SingleDownload)
- m.Get("/commits/*", repo.RefCommits)
- m.Get("/commit/:sha([a-z0-9]{7,40})$", repo.Diff)
- m.Get("/forks", repo.Forks)
- }, context.RepoRef())
- m.Get("/commit/:sha([a-z0-9]{7,40})\\.:ext(patch|diff)", repo.RawDiff)
-
- m.Get("/compare/:before([a-z0-9]{7,40})\\.\\.\\.:after([a-z0-9]{7,40})", repo.CompareDiff)
- }, ignSignIn, context.RepoAssignment(), repo.MustBeNotBare)
- m.Group("/:username/:reponame", func() {
- m.Get("/stars", repo.Stars)
- m.Get("/watchers", repo.Watchers)
- }, ignSignIn, context.RepoAssignment(), context.RepoRef())
-
- m.Group("/:username", func() {
- m.Group("/:reponame", func() {
- m.Get("", repo.Home)
- m.Get("\\.git$", repo.Home)
- }, ignSignIn, context.RepoAssignment(true), context.RepoRef())
-
- m.Group("/:reponame", func() {
- m.Any("/*", ignSignInAndCsrf, repo.HTTP)
- m.Head("/tasks/trigger", repo.TriggerTask)
- })
- })
- // ***** END: Repository *****
-
- m.Group("/api", func() {
- apiv1.RegisterRoutes(m)
- }, ignSignIn)
-
- // robots.txt
- m.Get("/robots.txt", func(ctx *context.Context) {
- if setting.HasRobotsTxt {
- ctx.ServeFileContent(path.Join(setting.CustomPath, "robots.txt"))
- } else {
- ctx.Error(404)
- }
- })
-
- // Not found handler.
- m.NotFound(routers.NotFound)
-
- // Flag for port number in case first time run conflict.
- if ctx.IsSet("port") {
- setting.AppUrl = strings.Replace(setting.AppUrl, setting.HTTPPort, ctx.String("port"), 1)
- setting.HTTPPort = ctx.String("port")
- }
-
- var listenAddr string
- if setting.Protocol == setting.UNIX_SOCKET {
- listenAddr = fmt.Sprintf("%s", setting.HTTPAddr)
- } else {
- listenAddr = fmt.Sprintf("%s:%s", setting.HTTPAddr, setting.HTTPPort)
- }
- log.Info("Listen: %v://%s%s", setting.Protocol, listenAddr, setting.AppSubUrl)
-
- var err error
- switch setting.Protocol {
- case setting.HTTP:
- err = http.ListenAndServe(listenAddr, m)
- case setting.HTTPS:
- server := &http.Server{Addr: listenAddr, TLSConfig: &tls.Config{MinVersion: tls.VersionTLS10}, Handler: m}
- err = server.ListenAndServeTLS(setting.CertFile, setting.KeyFile)
- case setting.FCGI:
- err = fcgi.Serve(nil, m)
- case setting.UNIX_SOCKET:
- os.Remove(listenAddr)
-
- var listener *net.UnixListener
- listener, err = net.ListenUnix("unix", &net.UnixAddr{listenAddr, "unix"})
- if err != nil {
- break // Handle error after switch
- }
-
- // FIXME: add proper implementation of signal capture on all protocols
- // execute this on SIGTERM or SIGINT: listener.Close()
- if err = os.Chmod(listenAddr, os.FileMode(setting.UnixSocketPermission)); err != nil {
- log.Fatal(4, "Failed to set permission of unix socket: %v", err)
- }
- err = http.Serve(listener, m)
- default:
- log.Fatal(4, "Invalid protocol: %s", setting.Protocol)
- }
-
- if err != nil {
- log.Fatal(4, "Fail to start server: %v", err)
- }
-
- return nil
-}
diff --git a/conf/README.md b/conf/README.md
deleted file mode 100644
index ee197505aa0..00000000000
--- a/conf/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-Execute following command in ROOT directory when anything is changed:
-
-$ make bindata
\ No newline at end of file
diff --git a/conf/app.ini b/conf/app.ini
index c907bc5c0c4..303d3571ce2 100644
--- a/conf/app.ini
+++ b/conf/app.ini
@@ -1,122 +1,27 @@
-# NEVER EVER MODIFY THIS FILE
-# PLEASE MAKE CHANGES ON CORRESPONDING CUSTOM CONFIG FILE
-
-; App name that shows on every page title
-APP_NAME = Gogs: Go Git Service
-; Change it if you run locally
+# !!! NEVER EVER MODIFY THIS FILE !!!
+# !!! PLEASE MAKE CHANGES ON CORRESPONDING CUSTOM CONFIG FILE !!!
+# !!! IF YOU ARE PACKAGING PROVIDER, PLEASE MAKE OWN COPY OF IT !!!
+
+; The brand name of the application, can be your company or team name.
+BRAND_NAME = Gogs
+; The system user who should be running the applications. It has no effect on Windows,
+; otherwise, it should match the value of $USER environment variable.
RUN_USER = git
-; Either "dev", "prod" or "test", default is "dev"
+; The running mode of the application, can be either "dev", "prod" or "test".
RUN_MODE = dev
-[repository]
-ROOT =
-SCRIPT_TYPE = bash
-; Default ANSI charset
-ANSI_CHARSET =
-; Force every new repository to be private
-FORCE_PRIVATE = false
-; Global maximum creation limit of repository per user, -1 means no limit
-MAX_CREATION_LIMIT = -1
-; Mirror sync queue length, increase if mirror syncing starts hanging
-MIRROR_QUEUE_LENGTH = 1000
-; Patch test queue length, increase if pull request patch testing starts hanging
-PULL_REQUEST_QUEUE_LENGTH = 1000
-; Preferred Licenses to place at the top of the List
-; Name must match file name in conf/license or custom/conf/license
-PREFERRED_LICENSES = Apache License 2.0,MIT License
-
-[repository.editor]
-; List of file extensions that should have line wraps in the CodeMirror editor
-; Separate extensions with a comma. To line wrap files w/o extension, just put a comma
-LINE_WRAP_EXTENSIONS = .txt,.md,.markdown,.mdown,.mkd,
-; Valid file modes that have a preview API associated with them, such as api/v1/markdown
-; Separate values by commas. Preview tab in edit mode won't show if the file extension doesn't match
-PREVIEWABLE_FILE_MODES = markdown
-
-[repository.upload]
-; Whether repository file uploads are enabled. Defaults to `true`
-ENABLED = true
-; Path for uploads. Defaults to `data/tmp/uploads` (tmp gets deleted on gogs restart)
-TEMP_PATH = data/tmp/uploads
-; One or more allowed types, e.g. image/jpeg|image/png. Nothing means any file type
-ALLOWED_TYPES =
-; Max size of each file in MB. Defaults to 3MB
-FILE_MAX_SIZE = 3
-; Max number of files per upload. Defaults to 5
-MAX_FILES = 5
-
-[ui]
-; Number of repositories that are showed in one explore page
-EXPLORE_PAGING_NUM = 20
-; Number of issues that are showed in one page
-ISSUE_PAGING_NUM = 10
-; Number of maximum commits showed in one activity feed
-FEED_MAX_COMMIT_NUM = 5
-; Value of `theme-color` meta tag, used by Android >= 5.0
-; An invalid color like "none" or "disable" will have the default style
-; More info: https://developers.google.com/web/updates/2014/11/Support-for-theme-color-in-Chrome-39-for-Android
-THEME_COLOR_META_TAG = `#ff5343`
-; Max size of files to be displayed (defaults is 8MiB)
-MAX_DISPLAY_FILE_SIZE = 8388608
-
-[ui.admin]
-; Number of users that are showed in one page
-USER_PAGING_NUM = 50
-; Number of repos that are showed in one page
-REPO_PAGING_NUM = 50
-; Number of notices that are showed in one page
-NOTICE_PAGING_NUM = 25
-; Number of organization that are showed in one page
-ORG_PAGING_NUM = 50
-
-[ui.user]
-; Number of repos that are showed in one page
-REPO_PAGING_NUM = 15
-
-[markdown]
-; Enable hard line break extension
-ENABLE_HARD_LINE_BREAK = false
-; List of custom URL-Schemes that are allowed as links when rendering Markdown
-; for example git,magnet
-CUSTOM_URL_SCHEMES =
-; List of file extensions that should be rendered/edited as Markdown
-; Separate extensions with a comma. To render files w/o extension as markdown, just put a comma
-FILE_EXTENSIONS = .md,.markdown,.mdown,.mkd
-
[server]
-PROTOCOL = http
+; The public-facing URL for the application.
+EXTERNAL_URL = %(PROTOCOL)s://%(DOMAIN)s:%(HTTP_PORT)s/
+; The public-facing domain name for the application.
DOMAIN = localhost
-ROOT_URL = %(PROTOCOL)s://%(DOMAIN)s:%(HTTP_PORT)s/
+; The protocol that is used to serve direct traffic to the application.
+; Currently supports "http", "https", "fcgi" and "unix".
+PROTOCOL = http
+; The address to be listened by the application.
HTTP_ADDR = 0.0.0.0
+; The port number to be listened by the application.
HTTP_PORT = 3000
-; Permission for unix socket
-UNIX_SOCKET_PERMISSION = 666
-; Local (DMZ) URL for Gogs workers (such as SSH update) accessing web service.
-; In most cases you do not need to change the default value.
-; Alter it only if your SSH server node is not the same as HTTP node.
-LOCAL_ROOT_URL = %(PROTOCOL)s://%(HTTP_ADDR)s:%(HTTP_PORT)s/
-; Disable SSH feature when not available
-DISABLE_SSH = false
-; Whether use builtin SSH server or not.
-START_SSH_SERVER = false
-; Domain name to be exposed in clone URL
-SSH_DOMAIN = %(DOMAIN)s
-; Port number to be exposed in clone URL
-SSH_PORT = 22
-; Port number builtin SSH server listens on
-SSH_LISTEN_PORT = %(SSH_PORT)s
-; Root path of SSH directory, default is '~/.ssh', but you have to use '/home/git/.ssh'.
-SSH_ROOT_PATH =
-; Directory to create temporary files when test publick key using ssh-keygen,
-; default is system temporary directory.
-SSH_KEY_TEST_PATH =
-; Path to ssh-keygen, default is 'ssh-keygen' and let shell find out which one to call.
-SSH_KEYGEN_PATH = ssh-keygen
-; Indicate whether to check minimum key size with corresponding type
-MINIMUM_KEY_SIZE_CHECK = false
-; Disable CDN even in "prod" mode
-OFFLINE_MODE = false
-DISABLE_ROUTER_LOG = false
; Generate steps:
; $ ./gogs cert -ca=true -duration=8760h0m0s -host=myhost.example.com
;
@@ -126,224 +31,395 @@ DISABLE_ROUTER_LOG = false
; $ openssl pkcs12 -in cert.pfx -out key.pem -nocerts -nodes
CERT_FILE = custom/https/cert.pem
KEY_FILE = custom/https/key.pem
-; Upper level of template and static file path
-; default is the path where Gogs is executed
-STATIC_ROOT_PATH =
-; Default path for App data
-APP_DATA_PATH = data
-; Application level GZIP support
+; The minimum allowed TLS version, currently supports "TLS10", "TLS11", "TLS12", and "TLS13".
+TLS_MIN_VERSION = TLS12
+; File permission when serve traffic via Unix domain socket.
+UNIX_SOCKET_PERMISSION = 666
+; Local (DMZ) URL for workers (e.g. SSH update) accessing web service.
+; In most cases you do not need to change the default value.
+; Alter it only if your SSH server node is not the same as HTTP node.
+LOCAL_ROOT_URL = %(PROTOCOL)s://%(HTTP_ADDR)s:%(HTTP_PORT)s/
+
+; Whether to disable using CDN for static files regardless.
+OFFLINE_MODE = false
+; Whether to disable logging in router.
+DISABLE_ROUTER_LOG = true
+; Whether to enable application level GZIP compression.
ENABLE_GZIP = false
-; Landing page for non-logged users, can be "home" or "explore"
-LANDING_PAGE = home
-; Define allowed algorithms and their minimum key length (use -1 to disable a type)
+; The path for storing application specific data.
+APP_DATA_PATH = data
+; Whether to enable to load assets (i.e. "conf", "templates", "public") from disk instead of embedded bindata.
+LOAD_ASSETS_FROM_DISK = false
+
+; The landing page URL for anonymous users, the value should not include
+; subpath that is handled by the reverse proxy.
+LANDING_URL = /
+
+; Whether to disable SSH access to the application entirely.
+DISABLE_SSH = false
+; The domain name to be exposed in SSH clone URL.
+SSH_DOMAIN = %(DOMAIN)s
+; The port number to be exposed in SSH clone URL.
+SSH_PORT = 22
+; The path of SSH root directory, default is "$HOME/.ssh".
+SSH_ROOT_PATH =
+; The path to ssh-keygen, default is "ssh-keygen" and let shell find out which one to call.
+SSH_KEYGEN_PATH = ssh-keygen
+; The directory to create temporary files when test a public key using ssh-keygen,
+; default is the system temporary directory.
+SSH_KEY_TEST_PATH =
+; Whether to check minimum public key size with corresponding type.
+MINIMUM_KEY_SIZE_CHECK = false
+; Whether to rewrite "~/.ssh/authorized_keys" file at start, ignored when use builtin SSH server.
+REWRITE_AUTHORIZED_KEYS_AT_START = false
+; Whether to start a builtin SSH server.
+START_SSH_SERVER = false
+; The network interface for builtin SSH server to listen on.
+SSH_LISTEN_HOST = 0.0.0.0
+; The port number for builtin SSH server to listen on.
+SSH_LISTEN_PORT = %(SSH_PORT)s
+; The list of accepted ciphers for connections to builtin SSH server.
+SSH_SERVER_CIPHERS = aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, arcfour256, arcfour128
+; The list of accepted MACs for connections to builtin SSH server.
+SSH_SERVER_MACS = hmac-sha2-256-etm@openssh.com, hmac-sha2-256, hmac-sha1
+; The list of accepted key exchange algorithms for connections to builtin SSH server.
+SSH_SERVER_ALGORITHMS = rsa, ecdsa, ed25519
+
+; Define allowed algorithms and their minimum key length (use -1 to disable a type).
[ssh.minimum_key_sizes]
ED25519 = 256
ECDSA = 256
RSA = 2048
DSA = 1024
+[repository]
+; The root path for storing managed repositories, default is "~/gogs-repositories"
+ROOT =
+; The script type server supports, sometimes could be "sh".
+SCRIPT_TYPE = bash
+; Default ANSI charset for an unrecognized charset.
+ANSI_CHARSET =
+; Whether to force every new repository to be private.
+FORCE_PRIVATE = false
+; The global limit of number of repositories a user can create, -1 means no limit.
+MAX_CREATION_LIMIT = -1
+; Preferred Licenses to place at the top of the list.
+; Name must match file name in "conf/license" or "custom/conf/license".
+PREFERRED_LICENSES = Apache License 2.0, MIT License
+; Whether to disable Git interaction with repositories via HTTP/HTTPS protocol.
+DISABLE_HTTP_GIT = false
+; Whether to enable ability to migrate repository by server local path.
+ENABLE_LOCAL_PATH_MIGRATION = false
+; Whether to enable render mode for raw file. There are potential security risks.
+ENABLE_RAW_FILE_RENDER_MODE = false
+; The maximum number of goroutines that can be run at the same time for a single
+; fetch request. Usually, the value depend of how many CPU (cores) you have. If
+; the value is non-positive, it matches the number of CPUs available to the application.
+COMMITS_FETCH_CONCURRENCY = 0
+; Default branch name when creating new repositories.
+DEFAULT_BRANCH = master
+
+[repository.editor]
+; List of file extensions that should have line wraps in the CodeMirror editor.
+; Separate extensions with a comma.
+LINE_WRAP_EXTENSIONS = .txt,.md,.markdown,.mdown,.mkd
+; Valid file modes that have a preview API associated with them, such as "/api/v1/markdown".
+; Separate values by commas. Preview tab in edit mode won't show if the file extension doesn't match.
+PREVIEWABLE_FILE_MODES = markdown
+
+[repository.upload]
+; Whether to enable repository file uploads.
+ENABLED = true
+; The path to temporarily store uploads (content under this path gets wiped out on every start).
+TEMP_PATH = data/tmp/uploads
+; File types that are allowed to be uploaded, e.g. "image/jpeg|image/png". Leave empty to allow any file type.
+ALLOWED_TYPES =
+; The maximum size of each file in MB.
+FILE_MAX_SIZE = 3
+; The maximum number of files per upload.
+MAX_FILES = 5
+
[database]
-; Either "mysql", "postgres" or "sqlite3", it's your choice
-DB_TYPE = mysql
-HOST = 127.0.0.1:3306
+; The database backend, either "postgres", "mysql" or "sqlite3".
+TYPE = postgres
+HOST = 127.0.0.1:5432
NAME = gogs
-USER = root
-PASSWD =
-; For "postgres" only, either "disable", "require" or "verify-full"
+USER = gogs
+PASSWORD =
+; For "postgres" only
+SCHEMA = public
+; For "postgres" only, either "disable", "require" or "verify-full".
SSL_MODE = disable
-; For "sqlite3" and "tidb", use absolute path when you start as service
+; For "sqlite3" only, make sure to use absolute path.
PATH = data/gogs.db
-
-[admin]
+; The maximum open connections of the pool.
+MAX_OPEN_CONNS = 30
+; The maximum idle connections of the pool.
+MAX_IDLE_CONNS = 30
[security]
+; Whether to show the install page, set this to "true" to bypass it.
INSTALL_LOCK = false
+; The secret to encrypt cookie values, 2FA code, etc.
; !!CHANGE THIS TO KEEP YOUR USER DATA SAFE!!
SECRET_KEY = !#@FDEWREWR&*(
-; Auto-login remember days
+; The number of days a sign-in session persists across browser restarts.
LOGIN_REMEMBER_DAYS = 7
-COOKIE_USERNAME = gogs_awesome
-COOKIE_REMEMBER_NAME = gogs_incredible
-; Reverse proxy authentication header name of user name
-REVERSE_PROXY_AUTHENTICATION_USER = X-WEBAUTH-USER
-
-[service]
-ACTIVE_CODE_LIVE_MINUTES = 180
-RESET_PASSWD_CODE_LIVE_MINUTES = 180
-; User need to confirm e-mail for registration
-REGISTER_EMAIL_CONFIRM = false
-; Does not allow register and admin create account only
-DISABLE_REGISTRATION = false
-; User must sign in to view anything.
+; Whether to set secure cookie.
+COOKIE_SECURE = false
+; Whether to set cookie to indicate user login status.
+ENABLE_LOGIN_STATUS_COOKIE = false
+; The cookie name to store user login status.
+LOGIN_STATUS_COOKIE_NAME = login_status
+; A comma separated list of hostnames that are explicitly allowed to be accessed within the local network.
+; Use "*" to allow all hostnames.
+LOCAL_NETWORK_ALLOWLIST =
+
+[email]
+; Whether to enable the email service.
+ENABLED = false
+; The prefix prepended to the subject line.
+SUBJECT_PREFIX = `[%(BRAND_NAME)s] `
+; The SMTP server with its port, e.g. smtp.mailgun.org:587, smtp.gmail.com:587, smtp.qq.com:465
+; If the port ends is "465", SMTPS will be used. Using STARTTLS on port 587 is recommended per RFC 6409.
+; If the server supports STARTTLS it will always be used.
+HOST = smtp.mailgun.org:587
+; The email from address (RFC 5322). This can be just an email address, or the `"Name" ` format.
+FROM = noreply@gogs.localhost
+; The login user.
+USER = noreply@gogs.localhost
+; The login password.
+PASSWORD =
+
+; The custom hostname for HELO operation, default is from system.
+HELO_HOSTNAME =
+
+; Whether to skip verifying the certificate of the server. Only use this for self-signed certificates.
+SKIP_VERIFY = false
+; Whether to use client certificates.
+USE_CERTIFICATE = false
+CERT_FILE = custom/email/cert.pem
+KEY_FILE = custom/email/key.pem
+
+; Whether to use "text/plain" as content format.
+USE_PLAIN_TEXT = false
+; Whether to attach a plaintext alternative to the MIME message while sending HTML emails.
+; It is used to support older mail clients and make spam filters happier.
+ADD_PLAIN_TEXT_ALT = false
+
+[auth]
+; The valid duration of activate code in minutes.
+ACTIVATE_CODE_LIVES = 180
+; The valid duration of reset password code in minutes.
+RESET_PASSWORD_CODE_LIVES = 180
+; Whether to require email confirmation for adding new email addresses.
+; Enable this option will also require user to confirm the email for registration.
+REQUIRE_EMAIL_CONFIRMATION = false
+; Whether to disallow anonymous users visiting the site.
REQUIRE_SIGNIN_VIEW = false
-; Mail notification
-ENABLE_NOTIFY_MAIL = false
-; More detail: https://github.com/gogits/gogs/issues/165
+; Whether to disable self-registration. When disabled, accounts would have to be created by admins.
+DISABLE_REGISTRATION = false
+; Whether to enable captcha validation for registration
+ENABLE_REGISTRATION_CAPTCHA = true
+
+; Whether to enable reverse proxy authentication via HTTP header.
ENABLE_REVERSE_PROXY_AUTHENTICATION = false
+; Whether to automatically create new users for reverse proxy authentication.
ENABLE_REVERSE_PROXY_AUTO_REGISTRATION = false
-; Enable captcha validation for registration
-ENABLE_CAPTCHA = true
+; The HTTP header used as username for reverse proxy authentication.
+REVERSE_PROXY_AUTHENTICATION_HEADER = X-WEBAUTH-USER
+; Lists the IPs or CIDR ranges whose requests are allowed to set the reverse
+; proxy authentication header.
+TRUSTED_PROXY_IPS = 127.0.0.0/8,::1/128
-[webhook]
-; Hook task queue length, increase if webhook shooting starts hanging
-QUEUE_LENGTH = 1000
-; Deliver timeout in seconds
-DELIVER_TIMEOUT = 5
-; Allow insecure certification
-SKIP_TLS_VERIFY = false
-; Number of history information in each page
-PAGING_NUM = 10
+[user]
+; Whether to enable email notifications for users.
+ENABLE_EMAIL_NOTIFICATION = false
-[mailer]
-ENABLED = false
-; Buffer length of channel, keep it as it is if you don't know what it is.
-SEND_BUFFER_LEN = 100
-; Name displayed in mail title
-SUBJECT = %(APP_NAME)s
-; Mail server
-; Gmail: smtp.gmail.com:587
-; QQ: smtp.qq.com:465
-; Note, if the port ends with "465", SMTPS will be used. Using STARTTLS on port 587 is recommended per RFC 6409. If the server supports STARTTLS it will always be used.
-HOST =
-; Disable HELO operation when hostname are different.
-DISABLE_HELO =
-; Custom hostname for HELO operation, default is from system.
-HELO_HOSTNAME =
-; Do not verify the certificate of the server. Only use this for self-signed certificates
-SKIP_VERIFY =
-; Use client certificate
-USE_CERTIFICATE = false
-CERT_FILE = custom/mailer/cert.pem
-KEY_FILE = custom/mailer/key.pem
-; Mail from address, RFC 5322. This can be just an email address, or the `"Name" ` format
-FROM =
-; Mailer user name and password
-USER =
-PASSWD =
-; Use text/html as alternative format of content
-ENABLE_HTML_ALTERNATIVE = false
+[session]
+; The session provider, either "memory", "file", or "redis".
+PROVIDER = memory
+; The configuration for respective provider:
+; - memory: does not need any config yet
+; - file: session file path, e.g. `data/sessions`
+; - redis: network=tcp,addr=:6379,password=macaron,db=0,pool_size=100,idle_timeout=180,tls=true
+PROVIDER_CONFIG = data/sessions
+; The cookie name to store the session identifier.
+COOKIE_NAME = i_like_gogs
+; Whether to set cookie in HTTPS only.
+COOKIE_SECURE = false
+; The GC interval in seconds for session data.
+GC_INTERVAL = 3600
+; The maximum idle time in seconds before a session record is garbage-collected.
+; Set lower than `[security] LOGIN_REMEMBER_DAYS * 86400` to enforce a sliding
+; idle timeout. Otherwise the session lives for the full cookie lifetime.
+MAX_LIFE_TIME = 604800
+; The cookie name for CSRF token.
+CSRF_COOKIE_NAME = _csrf
[cache]
-; Either "memory", "redis", or "memcache", default is "memory"
+; The cache adapter, either "memory" or "redis".
ADAPTER = memory
-; For "memory" only, GC interval in seconds, default is 60
+; For "memory" only, GC interval in seconds.
INTERVAL = 60
-; For "redis" and "memcache", connection host address
-; redis: network=tcp,addr=:6379,password=macaron,db=0,pool_size=100,idle_timeout=180
-; memcache: `127.0.0.1:11211`
+; For "redis", connection host address:
+; - redis: network=tcp,addr=:6379,password=macaron,db=0,pool_size=100,idle_timeout=180
HOST =
-[session]
-; Either "memory", "file", or "redis", default is "memory"
-PROVIDER = memory
-; Provider config options
-; memory: not have any config yet
-; file: session file path, e.g. `data/sessions`
-; redis: network=tcp,addr=:6379,password=macaron,db=0,pool_size=100,idle_timeout=180
-; mysql: go-sql-driver/mysql dsn config string, e.g. `root:password@/session_table`
-PROVIDER_CONFIG = data/sessions
-; Session cookie name
-COOKIE_NAME = i_like_gogits
-; If you use session in https only, default is false
-COOKIE_SECURE = false
-; Enable set cookie, default is true
-ENABLE_SET_COOKIE = true
-; Session GC time interval, default is 86400
-GC_INTERVAL_TIME = 86400
-; Session life time, default is 86400
-SESSION_LIFE_TIME = 86400
+[http]
+; The value for "Access-Control-Allow-Origin" header, default is not to present.
+ACCESS_CONTROL_ALLOW_ORIGIN =
-[picture]
-AVATAR_UPLOAD_PATH = data/avatars
-; Chinese users can choose "duoshuo"
-; or a custom avatar source, like: http://cn.gravatar.com/avatar/
-GRAVATAR_SOURCE = gravatar
-; This value will be forced to be true in offline mode.
-DISABLE_GRAVATAR = false
-; Federated avatar lookup uses DNS to discover avatar associated
-; with emails, see https://www.libravatar.org
-; This value will be forced to be false in offline mode or Gravatar is disbaled.
-ENABLE_FEDERATED_AVATAR = false
+[lfs]
+; The storage backend for uploading new objects.
+STORAGE = local
+; The root path to store LFS objects on local file system.
+OBJECTS_PATH = data/lfs-objects
+; The path to temporarily store LFS objects during upload verification.
+OBJECTS_TEMP_PATH = data/tmp/lfs-objects
[attachment]
-; Whether attachments are enabled. Defaults to `true`
-ENABLE = true
-; Path for attachments. Defaults to `data/attachments`
+; Whether to enabled upload attachments in general.
+ENABLED = true
+; The path to store attachments on the file system.
PATH = data/attachments
-; One or more allowed types, e.g. image/jpeg|image/png
+; File types that are allowed to be uploaded, e.g. "image/jpeg|image/png". Leave empty to allow any file type.
ALLOWED_TYPES = image/jpeg|image/png
-; Max size of each file. Defaults to 32MB
+; The maximum size of each file in MB.
MAX_SIZE = 4
-; Max number of files per upload. Defaults to 10
+; The maximum number of files per upload.
MAX_FILES = 5
+[release.attachment]
+; Whether to enabled upload attachments for releases.
+ENABLED = true
+; File types that are allowed to be uploaded, e.g. "image/jpeg|image/png". Leave empty to allow any file type.
+ALLOWED_TYPES = */*
+; The maximum size of each file in MB.
+MAX_SIZE = 32
+; The maximum number of files per upload.
+MAX_FILES = 10
+
[time]
-; Specifies the format for fully outputed dates. Defaults to RFC1123
-; Special supported values are ANSIC, UnixDate, RubyDate, RFC822, RFC822Z, RFC850, RFC1123, RFC1123Z, RFC3339, RFC3339Nano, Kitchen, Stamp, StampMilli, StampMicro and StampNano
-; For more information about the format see http://golang.org/pkg/time/#pkg-constants
-FORMAT =
+; Specifies the format for fully outputed dates.
+; Values should be one of the following:
+; ANSIC, UnixDate, RubyDate, RFC822, RFC822Z, RFC850, RFC1123, RFC1123Z, RFC3339, RFC3339Nano, Kitchen, Stamp, StampMilli, StampMicro and StampNano.
+; For more information about the format see http://golang.org/pkg/time/#pkg-constants.
+FORMAT = RFC1123
+[picture]
+; The path to store user avatars on the file system.
+AVATAR_UPLOAD_PATH = data/avatars
+; The path to store repository avatars on the file system.
+REPOSITORY_AVATAR_UPLOAD_PATH = data/repo-avatars
+; Chinese users can use a custom avatar source, such as http://cn.gravatar.com/avatar/.
+GRAVATAR_SOURCE = gravatar
+; Whether to disable Gravatar, this value will be forced to be true in offline mode.
+DISABLE_GRAVATAR = false
+; Whether to enable federated avatar lookup uses DNS to discover avatar associated
+; with emails, see https://www.libravatar.org for details.
+; This value will be forced to be false in offline mode or when Gravatar is disabled.
+ENABLE_FEDERATED_AVATAR = false
+
+[markdown]
+; Whether to enable hard line break extension.
+ENABLE_HARD_LINE_BREAK = false
+; The list of custom URL schemes that are allowed as links when rendering Markdown.
+; For example, "git" (for "git://") and "magnet" (for "magnet://").
+CUSTOM_URL_SCHEMES =
+; The list of file extensions that should be rendered/edited as Markdown.
+; Separate extensions with a comma. To render files with no extension as markdown, just put a comma.
+FILE_EXTENSIONS = .md,.markdown,.mdown,.mkd
+
+[smartypants]
+; Whether to enable the Smartypants extension.
+ENABLED = false
+FRACTIONS = true
+DASHES = true
+LATEX_DASHES = true
+ANGLED_QUOTES = true
+
+[admin]
+; Whether to disable regular (non-admin) users to create organizations.
+DISABLE_REGULAR_ORG_CREATION = false
+
+[webhook]
+; The list of enabled types for users to use, can be "gogs", "slack", "discord", "dingtalk".
+TYPES = gogs, slack, discord, dingtalk
+; Deliver timeout in seconds.
+DELIVER_TIMEOUT = 15
+; Whether to allow insecure certification.
+SKIP_TLS_VERIFY = false
+; The number of history information in each page.
+PAGING_NUM = 10
+
+; General settings of loggers.
[log]
+; The root path for all log files, default is "log/" subdirectory.
ROOT_PATH =
-; Either "console", "file", "conn", "smtp" or "database", default is "console"
+; Can be "console", "file", "slack" and "discord".
; Use comma to separate multiple modes, e.g. "console, file"
MODE = console
; Buffer length of channel, keep it as it is if you don't know what it is.
-BUFFER_LEN = 10000
-; Either "Trace", "Debug", "Info", "Warn", "Error", "Critical", default is "Trace"
+BUFFER_LEN = 100
+; Either "Trace", "Info", "Warn", "Error", "Fatal", default is "Trace"
LEVEL = Trace
; For "console" mode only
[log.console]
-LEVEL =
+; Comment out to inherit
+; LEVEL =
; For "file" mode only
[log.file]
-LEVEL =
-; This enables automated log rotate(switch of following options), default is true
+; Comment out to inherit
+; LEVEL =
+; Whether to enable automated log rotate (switch of following options).
LOG_ROTATE = true
-; Max line number of single file, default is 1000000
-MAX_LINES = 1000000
-; Max size shift of single file, default is 28 means 1 << 28, 256MB
-MAX_SIZE_SHIFT = 28
-; Segment log daily, default is true
+; Whether to segment log files daily.
DAILY_ROTATE = true
-; Expired days of log file(delete after max days), default is 7
+; The maximum size shift of single file, default is 28 means 1 << 28 = 256MB.
+MAX_SIZE_SHIFT = 28
+; The maximum number of lines of single file.
+MAX_LINES = 1000000
+; The expired days of log file (delete after max days).
MAX_DAYS = 7
-; For "conn" mode only
-[log.conn]
-LEVEL =
-; Reconnect host for every single message, default is false
-RECONNECT_ON_MSG = false
-; Try to reconnect when connection is lost, default is false
-RECONNECT = false
-; Either "tcp", "unix" or "udp", default is "tcp"
-PROTOCOL = tcp
-; Host address
-ADDR =
-
-; For "smtp" mode only
-[log.smtp]
-LEVEL =
-; Name displayed in mail title, default is "Diagnostic message from server"
-SUBJECT = Diagnostic message from server
-; Mail server
-HOST =
-; Mailer user name and password
-USER =
-PASSWD =
-; Receivers, can be one or more, e.g. ["1@example.com","2@example.com"]
-RECEIVERS =
-
-; For "database" mode only
-[log.database]
-LEVEL =
-; Either "mysql" or "postgres"
-DRIVER =
-; Based on xorm, e.g.: root:root@localhost/gogs?charset=utf8
-CONN =
+; For "slack" mode only
+[log.slack]
+; Comment out to inherit
+; LEVEL =
+; Webhook URL
+URL =
+
+[log.discord]
+; Comment out to inherit
+; LEVEL =
+; Webhook URL
+URL =
+; The username to be displayed in notification.
+USERNAME = %(BRAND_NAME)s
+
+[log.xorm]
+; Enable file rotation
+ROTATE = true
+; Rotate every day
+ROTATE_DAILY = true
+; Rotate once file size excesses x MB
+MAX_SIZE = 100
+; Maximum days to keep logger files
+MAX_DAYS = 3
+
+[log.gorm]
+; Whether to enable file rotation.
+ROTATE = true
+; Whether to rotate file every day.
+ROTATE_DAILY = true
+; The maximum file size in MB before next rotate.
+MAX_SIZE = 100
+; The maximum days to keep files.
+MAX_DAYS = 3
[cron]
; Enable running cron tasks periodically.
@@ -351,8 +427,8 @@ ENABLED = true
; Run cron tasks when Gogs starts.
RUN_AT_START = false
-; Update mirrors
[cron.update_mirrors]
+; Defines how often the mirror syncer checks if any mirror needs to be synchronized (based on the mirror update interval).
SCHEDULE = @every 10m
; Repository health check
@@ -368,15 +444,22 @@ ARGS =
RUN_AT_START = true
SCHEDULE = @every 24h
+; Cleanup repository archives
+[cron.repo_archive_cleanup]
+RUN_AT_START = false
+SCHEDULE = @every 24h
+; Time duration to check if archive should be cleaned
+OLDER_THAN = 24h
+
[git]
; Disables highlight of added and removed changes
DISABLE_DIFF_HIGHLIGHT = false
+; Max number of files shown in diff view
+MAX_GIT_DIFF_FILES = 100
; Max number of lines allowed of a single file in diff view
MAX_GIT_DIFF_LINES = 1000
; Max number of characters of a line allowed in diff view
-MAX_GIT_DIFF_LINE_CHARACTERS = 500
-; Max number of files shown in diff view
-MAX_GIT_DIFF_FILES = 100
+MAX_GIT_DIFF_LINE_CHARACTERS = 2000
; Arguments for command 'git gc', e.g. "--aggressive --auto"
; see more on http://git-scm.com/docs/git-gc/1.7.5
GC_ARGS =
@@ -387,21 +470,70 @@ MIGRATE = 600
MIRROR = 300
CLONE = 300
PULL = 300
+DIFF = 60
GC = 60
[mirror]
-; Default interval in hours between each check
+; Defines the default interval (in hours) until the next sync for a mirror (after a successful mirror sync).
+; It can be overridden individually for each mirror repository in the settings.
DEFAULT_INTERVAL = 8
[api]
; Max number of items will response in a page
MAX_RESPONSE_ITEMS = 50
+[ui]
+; Number of repositories that are showed in one explore page
+EXPLORE_PAGING_NUM = 20
+; Number of issues that are showed in one page
+ISSUE_PAGING_NUM = 10
+; Number of maximum commits showed in one activity feed
+FEED_MAX_COMMIT_NUM = 5
+; Value of "theme-color" meta tag, used by Android >= 5.0
+; An invalid color like "none" or "disable" will have the default style
+; More info: https://developers.google.com/web/updates/2014/11/Support-for-theme-color-in-Chrome-39-for-Android
+THEME_COLOR_META_TAG = `#ff5343`
+; Max size in bytes of files to be displayed (default is 8MB)
+MAX_DISPLAY_FILE_SIZE = 8388608
+
+[ui.admin]
+; Number of users that are showed in one page
+USER_PAGING_NUM = 50
+; Number of repos that are showed in one page
+REPO_PAGING_NUM = 50
+; Number of notices that are showed in one page
+NOTICE_PAGING_NUM = 25
+; Number of organization that are showed in one page
+ORG_PAGING_NUM = 50
+
+[ui.user]
+; Number of repos that are showed in one page
+REPO_PAGING_NUM = 15
+; Number of news feeds that are showed in one page
+NEWS_FEED_PAGING_NUM = 20
+; Number of commits that are showed in one page
+COMMITS_PAGING_NUM = 30
+
+[prometheus]
+; Whether to enable Prometheus metrics.
+ENABLED = true
+; Whether to enable HTTP Basic Authentication to protect metrics data.
+ENABLE_BASIC_AUTH = false
+; The username for HTTP Basic Authentication.
+BASIC_AUTH_USERNAME =
+; The password for HTTP Basic Authentication.
+BASIC_AUTH_PASSWORD =
+
+; Extension mapping to highlight class
+; e.g. .toml=ini
+[highlight.mapping]
+
[i18n]
-LANGS = en-US,zh-CN,zh-HK,zh-TW,de-DE,fr-FR,nl-NL,lv-LV,ru-RU,ja-JP,es-ES,pt-BR,pl-PL,bg-BG,it-IT,fi-FI,tr-TR,cs-CZ,sr-SP,sv-SE
-NAMES = English,简体中文,繁體中文(香港),繁體中文(台湾),Deutsch,Français,Nederlands,Latviešu,Русский,日本語,Español,Português do Brasil,Polski,български,Italiano,Suomalainen,Türkçe,čeština,Српски,Svenska
+LANGS = en-US,zh-CN,zh-HK,zh-TW,de-DE,fr-FR,nl-NL,lv-LV,ru-RU,ja-JP,es-ES,pt-BR,pl-PL,bg-BG,it-IT,fi-FI,tr-TR,cs-CZ,sr-SP,sv-SE,ko-KR,gl-ES,uk-UA,en-GB,hu-HU,sk-SK,id-ID,fa-IR,vi-VN,pt-PT,mn-MN,ro-RO
+NAMES = English,简体中文,繁體中文(香港),繁體中文(臺灣),Deutsch,français,Nederlands,latviešu,русский,日本語,español,português do Brasil,polski,български,italiano,suomi,Türkçe,čeština,српски,svenska,한국어,galego,українська,English (United Kingdom),Magyar,Slovenčina,Indonesian,Persian,Vietnamese,Português,Монгол,Română
-; Used for datetimepicker
+; Used for jQuery DateTimePicker,
+; list of supported languages in https://xdsoft.net/jqplugins/datetimepicker/#lang
[i18n.datelang]
en-US = en
zh-CN = zh
@@ -423,14 +555,19 @@ tr-TR = tr
cs-CZ = cs-CZ
sr-SP = sr
sv-SE = sv
-
-; Extension mapping to highlight class
-; e.g. .toml=ini
-[highlight.mapping]
+ko-KR = ko
+gl-ES = gl
+uk-UA = uk
+en-GB = en-GB
+hu-HU = hu
+sk-SK = sk
+id-ID = id
+fa-IR = fa
+vi-VN = vi
+pt-PT = pt
+mn-MN = mn
+ro-RO = ro
[other]
-SHOW_FOOTER_BRANDING = false
-; Show version information about Gogs and Go in the footer
-SHOW_FOOTER_VERSION = true
; Show time of template execution in the footer
SHOW_FOOTER_TEMPLATE_LOAD_TIME = true
diff --git a/conf/auth.d/github.conf.example b/conf/auth.d/github.conf.example
new file mode 100644
index 00000000000..f222a85d8ea
--- /dev/null
+++ b/conf/auth.d/github.conf.example
@@ -0,0 +1,10 @@
+# This is an example of GitHub authentication
+#
+id = 105
+type = github
+name = GitHub
+is_activated = true
+
+[config]
+api_endpoint = https://api.github.com/
+
diff --git a/conf/auth.d/ldap_bind_dn.conf.example b/conf/auth.d/ldap_bind_dn.conf.example
new file mode 100644
index 00000000000..d2400f07099
--- /dev/null
+++ b/conf/auth.d/ldap_bind_dn.conf.example
@@ -0,0 +1,29 @@
+# This is an example of LDAP (BindDN) authentication
+#
+id = 101
+type = ldap_bind_dn
+name = LDAP BindDN
+is_activated = true
+
+[config]
+host = mydomain.com
+port = 636
+# 0 - Unencrypted, 1 - LDAPS, 2 - StartTLS
+security_protocol = 0
+skip_verify = false
+bind_dn =
+bind_password =
+user_base = ou=Users,dc=mydomain,dc=com
+attribute_username =
+attribute_name =
+attribute_surname =
+attribute_mail = mail
+attributes_in_bind = false
+filter = (&(objectClass=posixAccount)(cn=%s))
+admin_filter =
+group_enabled = false
+group_dn =
+group_filter =
+group_member_uid =
+user_uid =
+
diff --git a/conf/auth.d/ldap_simple_auth.conf.example b/conf/auth.d/ldap_simple_auth.conf.example
new file mode 100644
index 00000000000..5e50a74c57a
--- /dev/null
+++ b/conf/auth.d/ldap_simple_auth.conf.example
@@ -0,0 +1,30 @@
+# This is an example of LDAP (simple auth) authentication
+#
+id = 102
+type = ldap_simple_auth
+name = LDAP Simple Auth
+is_activated = true
+
+[config]
+host = mydomain.com
+port = 636
+# 0 - Unencrypted, 1 - LDAPS, 2 - StartTLS
+security_protocol = 0
+skip_verify = false
+bind_dn =
+bind_password =
+user_base =
+user_dn = cn=%s,ou=Users,dc=mydomain,dc=com
+attribute_username =
+attribute_name =
+attribute_surname =
+attribute_mail = mail
+attributes_in_bind = false
+filter = (&(objectClass=posixAccount)(cn=%s))
+admin_filter =
+group_enabled = false
+group_dn =
+group_filter =
+group_member_uid =
+user_uid =
+
diff --git a/conf/auth.d/pam.conf.example b/conf/auth.d/pam.conf.example
new file mode 100644
index 00000000000..12f8d58f121
--- /dev/null
+++ b/conf/auth.d/pam.conf.example
@@ -0,0 +1,10 @@
+# This is an example of PAM authentication
+#
+id = 104
+type = pam
+name = System Auth
+is_activated = true
+
+[config]
+service_name = system-auth
+
diff --git a/conf/auth.d/smtp.conf.example b/conf/auth.d/smtp.conf.example
new file mode 100644
index 00000000000..b8881daeac3
--- /dev/null
+++ b/conf/auth.d/smtp.conf.example
@@ -0,0 +1,16 @@
+# This is an example of SMTP authentication
+#
+id = 103
+type = smtp
+name = GMail
+is_activated = true
+
+[config]
+# Either "PLAIN" or "LOGIN"
+auth = PLAIN
+host = smtp.gmail.com
+port = 587
+allowed_domains =
+tls = true
+skip_verify = false
+
diff --git a/conf/embed.go b/conf/embed.go
new file mode 100644
index 00000000000..d3bb0725b43
--- /dev/null
+++ b/conf/embed.go
@@ -0,0 +1,23 @@
+package conf
+
+import (
+ "embed"
+)
+
+//go:embed app.ini **/*
+var Files embed.FS
+
+// FileNames returns a list of filenames exists in the given direction within
+// Files. The list includes names of subdirectories.
+func FileNames(dir string) ([]string, error) {
+ entries, err := Files.ReadDir(dir)
+ if err != nil {
+ return nil, err
+ }
+
+ fileNames := make([]string, 0, len(entries))
+ for _, entry := range entries {
+ fileNames = append(fileNames, entry.Name())
+ }
+ return fileNames, nil
+}
diff --git a/conf/embed_test.go b/conf/embed_test.go
new file mode 100644
index 00000000000..a93ebc4083d
--- /dev/null
+++ b/conf/embed_test.go
@@ -0,0 +1,16 @@
+package conf
+
+import (
+ "testing"
+
+ "github.com/stretchr/testify/assert"
+ "github.com/stretchr/testify/require"
+)
+
+func TestFileNames(t *testing.T) {
+ names, err := FileNames(".")
+ require.NoError(t, err)
+
+ want := []string{"app.ini", "auth.d", "gitignore", "label", "license", "locale", "readme"}
+ assert.Equal(t, want, names)
+}
diff --git a/conf/gitignore/OSX b/conf/gitignore/OSX
deleted file mode 100644
index 660b31353e8..00000000000
--- a/conf/gitignore/OSX
+++ /dev/null
@@ -1,24 +0,0 @@
-.DS_Store
-.AppleDouble
-.LSOverride
-
-# Icon must end with two \r
-Icon
-
-# Thumbnails
-._*
-
-# Files that might appear in the root of a volume
-.DocumentRevisions-V100
-.fseventsd
-.Spotlight-V100
-.TemporaryItems
-.Trashes
-.VolumeIcon.icns
-
-# Directories potentially created on remote AFP share
-.AppleDB
-.AppleDesktop
-Network Trash Folder
-Temporary Items
-.apdisk
diff --git a/conf/gitignore/PhpStorm b/conf/gitignore/PhpStorm
new file mode 100644
index 00000000000..dee8ce88ce0
--- /dev/null
+++ b/conf/gitignore/PhpStorm
@@ -0,0 +1,63 @@
+# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm
+# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
+
+# User-specific stuff:
+.idea/**/workspace.xml
+.idea/**/tasks.xml
+.idea/dictionaries
+
+# Sensitive or high-churn files:
+.idea/**/dataSources/
+.idea/**/dataSources.ids
+.idea/**/dataSources.xml
+.idea/**/dataSources.local.xml
+.idea/**/sqlDataSources.xml
+.idea/**/dynamic.xml
+.idea/**/uiDesigner.xml
+
+# Gradle:
+.idea/**/gradle.xml
+.idea/**/libraries
+
+# CMake
+cmake-build-debug/
+
+# Mongo Explorer plugin:
+.idea/**/mongoSettings.xml
+
+## File-based project format:
+*.iws
+
+## Plugin-specific files:
+
+# IntelliJ
+/out/
+
+# mpeltonen/sbt-idea plugin
+.idea_modules/
+
+# JIRA plugin
+atlassian-ide-plugin.xml
+
+# Cursive Clojure plugin
+.idea/replstate.xml
+
+# Ruby plugin and RubyMine
+/.rakeTasks
+
+# Crashlytics plugin (for Android Studio and IntelliJ)
+com_crashlytics_export_strings.xml
+crashlytics.properties
+crashlytics-build.properties
+fabric.properties
+
+### PhpStorm Patch ###
+# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721
+
+# *.iml
+# modules.xml
+# .idea/misc.xml
+# *.ipr
+
+# Sonarlint plugin
+.idea/sonarlint
\ No newline at end of file
diff --git a/conf/gitignore/UnrealEngine b/conf/gitignore/UnrealEngine
new file mode 100644
index 00000000000..19e27dcfd8e
--- /dev/null
+++ b/conf/gitignore/UnrealEngine
@@ -0,0 +1,76 @@
+# Visual Studio 2015 user specific files
+.vs/
+
+# Compiled Object files
+*.slo
+*.lo
+*.o
+*.obj
+
+# Precompiled Headers
+*.gch
+*.pch
+
+# Compiled Dynamic libraries
+*.so
+*.dylib
+*.dll
+
+# Fortran module files
+*.mod
+
+# Compiled Static libraries
+*.lai
+*.la
+*.a
+*.lib
+
+# Executables
+*.exe
+*.out
+*.app
+*.ipa
+
+# These project files can be generated by the engine
+*.xcodeproj
+*.xcworkspace
+*.sln
+*.suo
+*.opensdf
+*.sdf
+*.VC.db
+*.VC.opendb
+
+# Precompiled Assets
+SourceArt/**/*.png
+SourceArt/**/*.tga
+
+# Binary Files
+Binaries/*
+Plugins/*/Binaries/*
+
+# Builds
+Build/*
+
+# Whitelist PakBlacklist-.txt files
+!Build/*/
+Build/*/**
+!Build/*/PakBlacklist*.txt
+
+# Don't ignore icon files in Build
+!Build/**/*.ico
+
+# Built data for maps
+*_BuiltData.uasset
+
+# Configuration files generated by the Editor
+Saved/*
+
+# Compiled source files for the engine to use
+Intermediate/*
+Plugins/*/Intermediate/*
+
+# Cache files for the editor to use
+DerivedDataCache/*
+
+
diff --git a/conf/gitignore/WebStorm b/conf/gitignore/WebStorm
new file mode 100644
index 00000000000..6fd0846e24c
--- /dev/null
+++ b/conf/gitignore/WebStorm
@@ -0,0 +1,63 @@
+# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm
+# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
+
+# User-specific stuff:
+.idea/**/workspace.xml
+.idea/**/tasks.xml
+.idea/dictionaries
+
+# Sensitive or high-churn files:
+.idea/**/dataSources/
+.idea/**/dataSources.ids
+.idea/**/dataSources.xml
+.idea/**/dataSources.local.xml
+.idea/**/sqlDataSources.xml
+.idea/**/dynamic.xml
+.idea/**/uiDesigner.xml
+
+# Gradle:
+.idea/**/gradle.xml
+.idea/**/libraries
+
+# CMake
+cmake-build-debug/
+
+# Mongo Explorer plugin:
+.idea/**/mongoSettings.xml
+
+## File-based project format:
+*.iws
+
+## Plugin-specific files:
+
+# IntelliJ
+/out/
+
+# mpeltonen/sbt-idea plugin
+.idea_modules/
+
+# JIRA plugin
+atlassian-ide-plugin.xml
+
+# Cursive Clojure plugin
+.idea/replstate.xml
+
+# Ruby plugin and RubyMine
+/.rakeTasks
+
+# Crashlytics plugin (for Android Studio and IntelliJ)
+com_crashlytics_export_strings.xml
+crashlytics.properties
+crashlytics-build.properties
+fabric.properties
+
+### WebStorm Patch ###
+# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721
+
+# *.iml
+# modules.xml
+# .idea/misc.xml
+# *.ipr
+
+# Sonarlint plugin
+.idea/sonarlint
\ No newline at end of file
diff --git a/conf/gitignore/macOS b/conf/gitignore/macOS
new file mode 100644
index 00000000000..d80290051c8
--- /dev/null
+++ b/conf/gitignore/macOS
@@ -0,0 +1,25 @@
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear in the root of a volume
+.DocumentRevisions-V100
+.fseventsd
+.Spotlight-V100
+.TemporaryItems
+.Trashes
+.VolumeIcon.icns
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
diff --git a/conf/locale/TRANSLATORS b/conf/locale/TRANSLATORS
index d3538971350..9014c056867 100644
--- a/conf/locale/TRANSLATORS
+++ b/conf/locale/TRANSLATORS
@@ -7,22 +7,34 @@ Akihiro YAGASAKI
Aleksejs Grocevs
Aleksey Tarakin
Alexander Steinhöfer
+Alexandre Espinosa Menor
Alexandre Magno
+Anders B. Hansen
+András Schenkerik
Andrey Nering
+Andrey Paskal
Andrey Solomatin
Antoine GIRARD
Arthur Aslanyan
Aurelien Darragon
Barış Arda Yılmaz
+Bo-Yi Wu
+Breton Corentin
Camille Baronnet
+Changwoo Ryu
Christoph Kisfeld
Cysioland
+Damaris Padieu
Daniel Speichert
David Yzaguirre
+Denys Khomenko
Dmitriy Nogay
Enrico Testori hypertesto AT gmail DOT com
Ezequiel Gonzalez Rial
+Farhan Naysee
+Flávio Monteiro
Gabriel Dugny
+Ganesha
Gregor Santner
Halil Kaya
Hamid Feizabadi
@@ -30,33 +42,47 @@ Huimin Wang
ilko
Ilya Makarov
Jamie Mansfield
+Javier Ortiz Bultron
Jean THOMAS
+John Behm
+Jonas De Kegel
Joubert RedRat
Juraj Bubniak
Lafriks
Lauri Ojansivu
-Luc Stepniewski
Luca Bozzo
Luca Kröger
+Luc Stepniewski
+Łukasz Jan Niemier
Marc Schiller
Marvin Menzerath
+Mathias Rangel Wulff
Michael Härtl
Miguel de la Cruz
Mikhail Burdin
+Mohammad Gholami
Morten Sørensen
Muhammad Fawwaz Orabi
Nakao Takamasa
Natan Albuquerque
Odilon Junior
+Oleksandr Yermakov
+Óscar García Amor
+Pablo Saavedra
+Pierre Prinetti >meatqrawldotnet<
Richard Bukovansky
Robert Nuske
Robin Hübner
+Rste Risafov
SeongJae Park
+Sergey Stepanov
+Simona Iacob
Thomas Fanninger
Tilmann Bach
Toni Villena Jiménez
+Vincent AMSTOUTZ
Vladimir Jigulin mogaika AT yandex DOT ru
Vladimir Vissoultchev
+Vongola
YJSoft
-Łukasz Jan Niemier
-Pablo Saavedra
+Oscar Quisbert
diff --git a/conf/locale/locale_bg-BG.ini b/conf/locale/locale_bg-BG.ini
index 4fe30e31fde..a491db07b2b 100644
--- a/conf/locale/locale_bg-BG.ini
+++ b/conf/locale/locale_bg-BG.ini
@@ -9,7 +9,6 @@ sign_out=Изход
sign_up=Регистрирайте се
register=Регистрация
website=Уебсайт
-version=Версия
page=Страница
template=Шаблон
language=Език
@@ -44,23 +43,27 @@ issues=Задачи
cancel=Отказ
+[status]
+page_not_found=Страницата не е намерена
+internal_server_error=Вътрешна грешка в сървър
+
[install]
install=Инсталация
title=Стъпки за инсталиране при първоначално стартиране
docker_helper=Ако Gogs е стартиран в Docker контейнер, моля прочетете нашите указания внимателно, преди да правите промени по настройките на тази страница!
-requite_db_desc=Gogs изисква MySQL, PostgreSQL, SQLite3 или TiDB.
+requite_db_desc=Gogs изисква MySQL, PostgreSQL, SQLite3 или TiDB (през MySQL протокол).
db_title=Настройки на базата данни
db_type=Тип на база данни
host=Сървър
user=Потребител
password=Парола
db_name=Име на база данни
+db_schema=Схема
db_helper=Моля, използвайте INNODB engine с utf8_general_ci кодиране на знаци за MySQL.
ssl_mode=Режим SSL
path=Път
-sqlite_helper=Файл на SQLite3 или TiDB база данни. Моля използвайте абсолютен път до файл когато стартирате Gogs като услуга.
-err_empty_db_path=Пътят до SQLite3 или TiDB база данни не може да е празен.
-err_invalid_tidb_name=TiDB не позволява "." и "-" в името на базата данни.
+sqlite_helper=Път към файл на SQLite3 база от данни. Моля използвайте абсолютен път, когато стартирате gogs като услуга.
+err_empty_db_path=Пътят към SQLite3 базата от данни не може да бъде празен.
no_admin_and_disable_registration=Невъзможно изключване на регистрациите без предварително да е създаден поне един административен профил.
err_empty_admin_password=Паролата на администратор не може да е празна.
@@ -75,12 +78,17 @@ domain=Домейн
domain_helper=Тази настройка влияе на URL адреса за клониране чрез SSH.
ssh_port=SSH порт
ssh_port_helper=Номер на порт на SSH сървъра. Оставете празно за да изключите достъп през SSH.
+use_builtin_ssh_server=Използване на вграден SSH сървър
+use_builtin_ssh_server_popup=Стартиране на вграден SSH сървър за Git операции, различен от системния SSH демон.
http_port=HTTP порт
http_port_helper=Порт, на който приложението ще слуша.
app_url=URL адрес на приложението
app_url_helper=Този настройка променя HTTP/HTTPS адреса за клониране, а понякога и адреса на ел. поща.
log_root_path=Път към журналите
log_root_path_helper=Директория в която се записват журналите.
+enable_console_mode=Включване на конзолен режим
+enable_console_mode_popup=Изписване на логовете в конзолата, в допълнение към файловият режим.
+default_branch=Клон по подразбиране
optional_title=Опционални настройки
email_title=Настройки на пощенска услуга
@@ -104,7 +112,7 @@ enable_captcha=Включи Captcha
enable_captcha_popup=Изисква валидиране с captcha при саморегистрация на потребители.
require_sign_in_view=Включи задължително вписване за преглед на страници
require_sign_in_view_popup=Само вписани потребители могат да виждат страниците, анонимните посетители виждат само страниците за регистрация и вход.
-admin_setting_desc=Няма нужда от създаване на администраторски профил в момента, защото потребителят с първо ID в базата автоматично получава администраторски достъп.
+admin_setting_desc=Няма нужда да създавате администраторски профил в момента, защото потребителят с първо ID в базата автоматично получава администраторски достъп.
admin_title=Настройки на профил на администратора
admin_name=Потребителско име
admin_password=Парола
@@ -116,7 +124,10 @@ sqlite3_not_available=Вашата версия не поддържа SQLite3,
invalid_db_setting=Настройките на базата данни са некоректни: %v
invalid_repo_path=Основният път към хранилищата е невалиден: %v
run_user_not_match=Потребителският контекст на приложението не е на текущия потребител: %s -> %s
+smtp_host_missing_port=Липсва порт в зададения SMTP адрес.
+invalid_smtp_from=Невалидно поле От: %v
save_config_failed=Неуспешно запазване на конфигурация: %v
+init_failed=Грешка при инициализация на приложение: %v
invalid_admin_setting=Настройките на профил на администратора са невалидни: %v
install_success=Добре дошли! Радваме се, че избрахте Gogs, и Ви пожелаваме приятна работа и сърдечни поздрави!
invalid_log_root_path=Основният път към журналите е невалиден: %v
@@ -137,6 +148,7 @@ issues.in_your_repos=Във Вашите хранилища
[explore]
repos=Хранилища
users=Потребители
+organizations=Организации
search=Търсене
[auth]
@@ -145,6 +157,8 @@ register_hepler_msg=Вече имате профил? Впишете се сег
social_register_hepler_msg=Вече имате профил? Свържете се сега!
disable_register_prompt=За съжаление създаването на нови регистрации е изключено. Обърнете се към администратора на сайта.
disable_register_mail=За съжаление потвърждението на регистрации е изключено.
+auth_source=Източник за удостоверяване
+local=Локален
remember_me=Запомни ме
forgot_password=Забравена парола
forget_password=Забравена парола?
@@ -156,7 +170,6 @@ prohibit_login_desc=Вашият профил е със забрана за вл
resent_limit_prompt=За съжаление Вие съвсем наскоро изпратихте писмо за активация. Моля изчакайте 3 минути, след което опитайте отново.
has_unconfirmed_mail=Здравейте %s, имате непотвърден адрес на ел. поща (%s). Ако не сте получили писмо за потвърждение или имате нужда да се изпрати ново писмо, моля щракнете бутона по-долу.
resend_mail=Щракнете тук, за да се изпрати ново писмо за потвърждение
-email_not_associate=Този адрес на ел. поща не е свързан с никой профил.
send_reset_mail=Щракнете тук, за да получите (отново) писмо за нулиране на паролата
reset_password=Нулиране на паролата
invalid_code=За съжаление Вашия код за потвърждение е изтекъл или е невалиден.
@@ -164,6 +177,14 @@ reset_password_helper=Щракнете тук, за да нулирате пар
password_too_short=Размерът на паролата не може да бъде по-малък от 6 знака.
non_local_account=Нелокални потребители не могат да сменят паролата си през Gogs.
+login_two_factor=Двуфакторно удостоверяване
+login_two_factor_passcode=Парола за удостоверяване
+login_two_factor_enter_recovery_code=Въведете двуфакторен код за възстановяване
+login_two_factor_recovery=Двуфакторно възстановяване
+login_two_factor_recovery_code=Код за възстановяване
+login_two_factor_enter_passcode=Въведете двуфакторен код
+login_two_factor_invalid_recovery_code=Този код за възстановяване вече е бил използван или не е валиден.
+
[mail]
activate_account=Моля активирайте Вашия профил
activate_email=Провери адрес на ел. поща
@@ -199,6 +220,7 @@ Content=Съдържание
require_error=` не може да бъде празен.`
alpha_dash_error=` трябва да e валидна буква, число или тире(-_).`
alpha_dash_dot_error=` трябва да e валидна буква, число, тире(-_) или точка.`
+alpha_dash_dot_slash_error=` must be alphanumeric, dash (-_), dot or slash characters.`
size_error=` трябва да е с размер %s.`
min_size_error=` трябва да съдържа поне %s знака.`
max_size_error=` трябва да съдържа най-много %s знака.`
@@ -215,6 +237,7 @@ org_name_been_taken=Името на организацията вече се п
team_name_been_taken=Името на екипа вече се ползва.
email_been_used=Този адрес на ел. поща вече се ползва.
username_password_incorrect=Потребителското име или паролата не са верни.
+auth_source_mismatch=The authentication source selected is not associated with the user.
enterred_invalid_repo_name=Моля уверете се, че въведеното име на хранилище е вярно.
enterred_invalid_owner_name=Моля уверете се, че въведеното име на притежател е вярно.
enterred_invalid_password=Моля уверете се, че въведената парола е вярна.
@@ -232,7 +255,7 @@ org_still_own_repo=Тази организация все още притежа
target_branch_not_exist=Целевият клон не съществува.
[user]
-change_avatar=Проми своя аватар
+change_avatar=Промени своя аватар
join_on=Регистриран
repositories=Хранилища
activity=Публична дейност
@@ -242,19 +265,18 @@ following=Следване
follow=Следване
unfollow=Не следвай
-form.name_reserved=Потребителското име '%s' е запазено.
-form.name_pattern_not_allowed=Потребителското име '%s' не е допустимо.
+form.name_not_allowed=User name or pattern %q is not allowed.
[settings]
profile=Профил
password=Парола
avatar=Аватар
ssh_keys=SSH ключове
-social=Социални профили
-applications=Приложения
+security=Сигурност
+repos=Хранилища
orgs=Организации
+applications=Приложения
delete=Изтрий профил
-uid=UID
public_profile=Публичен профил
profile_desc=Вашият адрес на ел. поща е публичен и ще бъде използван за всички свързани с профила Ви уведомления и всички уеб базирани операции, направени чрез сайта.
@@ -295,6 +317,7 @@ delete_email=Изтрий
email_deletion=Изтрий ел. поща
email_deletion_desc=При изтриване на тази ел. поща ще се премахне свързаната информация от Вашия профил. Желаете ли да продължите?
email_deletion_success=Ел. пощата беше изтрита успешно!
+email_deletion_primary=Cannot delete primary email address.
add_new_email=Добавяне на нов адрес на ел. поща
add_email=Добави ел. поща
add_email_confirmation_sent=Ново писмо за потвърждение е изпратено до '%s'. Моля проверете пощенската си кутия в рамките на следващите %d часа, за да завършите процеса на регистрация.
@@ -320,14 +343,36 @@ no_activity=Няма скорошна дейност
key_state_desc=Този ключ е използван през последните 7 дни
token_state_desc=Този API ключ е използван през последните 7 дни
-manage_social=Управление на свързани профили в социалните мрежи
-social_desc=Това е списък на свързани профили в социалните мрежи. Премахнете всички, които не разпознавате.
-unbind=Освобождаване
-unbind_success=Социалния профил е освободен.
+two_factor=Two-factor Authentication
+two_factor_status=Статус:
+two_factor_on=Вкл.
+two_factor_off=Изкл.
+two_factor_enable=Активиране
+two_factor_disable=Деактивиране
+two_factor_view_recovery_codes=View and save your recovery codes in a safe place. You can use them as passcode if you lose access to your authentication application.
+two_factor_http=For HTTP/HTTPS operations, you are no longer able to use plain username and password. Please create and use Personal Access Token as your credential, e.g. %[3]s.
+two_factor_enable_title=Enable Two-factor Authentication
+two_factor_scan_qr=Please use your authentication application to scan the image:
+two_factor_or_enter_secret=Or enter the secret:
+two_factor_then_enter_passcode=След това въведете паролата:
+two_factor_verify=Потвърждаване
+two_factor_invalid_passcode=Въведената парола е невалидна! Моля опитайте отново.
+two_factor_reused_passcode=The passcode you entered has already been used, please try another one!
+two_factor_enable_error=Enable Two-factor authentication failed: %v
+two_factor_enable_success=Two-factor authentication has enabled for your account successfully!
+two_factor_recovery_codes_title=Two-factor Authentication Recovery Codes
+two_factor_recovery_codes_desc=Recovery codes are used when you temporarily lose access to your authentication application. Each recovery code can only be used once, please keep these codes in a safe place.
+two_factor_regenerate_recovery_codes=Ново генериране на кодове за възстановяване
+two_factor_regenerate_recovery_codes_error=Неуспешно генериране на кодове за възстановяване: %v
+two_factor_regenerate_recovery_codes_success=New recovery codes has been generated successfully!
+two_factor_disable_title=Disable Two-factor Authentication
+two_factor_disable_desc=Your account security level will decrease after disabled two-factor authentication. Do you want to continue?
+two_factor_disable_success=Two-factor authentication has disabled successfully!
manage_access_token=Управление на индивидуални API ключове за достъп
generate_new_token=Генериране на нов API ключ
tokens_desc=Генерирани API ключове, които могат да се използват за достъп до API на Gogs.
+access_token_tips=The personal access token may be used as either username or password. It is recommended to use the "x-access-token" as the username and the personal access token as the password for Git applications.
new_token_desc=Всеки API ключ ще има пълен достъп до Вашия профил.
token_name=Име на API ключ
generate_token=Генериране на API ключ
@@ -336,6 +381,16 @@ delete_token=Изтрий
access_token_deletion=Изтрий индивидуален API ключ за достъп
access_token_deletion_desc=При изтриване на този индивидуален API ключ за достъп ще се премахнат всички свързани права на приложението. Желаете ли да продължите?
delete_token_success=Индивидуалният API ключ за достъп е изтрит успешно! Не забравяйте да преконфигурирате приложението също.
+token_name_exists=Token with same name already exists.
+
+orgs.none=Не сте член на никоя организация.
+orgs.leave_title=Напусни организация
+orgs.leave_desc=Ще загубите достъп до всички хранилища и екипи, след като напуснете организацията. Желаете ли да продължите?
+
+repos.leave=Напускане
+repos.leave_title=Напускане на хранилище
+repos.leave_desc=You will lose access to the repository after you left. Do you want to continue?
+repos.leave_success=Вие успешно напуснахте хранилище "%s"!
delete_account=Изтриване на собствения профил
delete_prompt=Тази операция ще изтрие Вашия профил завинаги и тя НЕ МОЖЕ да бъде отменена в последствие!
@@ -348,7 +403,9 @@ owner=Притежател
repo_name=Име на хранилището
repo_name_helper=Добро име на хранилище е име, състоящо от кратки, запомнящи се и уникални ключови думи.
visibility=Видимост
+unlisted=Unlisted
visiblity_helper=Това хранилище е Частно
+unlisted_helper=This repository is Unlisted
visiblity_helper_forced=Административна настройка задължава всички нови хранилища да бъдат Частни
visiblity_fork_helper=(Промяна на тази стойност ще се отрази на всички разклонения)
clone_helper=Нуждаете се от помощ при клониране? Посетете Помощ!
@@ -374,24 +431,26 @@ mirror_last_synced=Последна синхр.
watchers=Наблюдаващи
stargazers=Харесващи
forks=Разклонения
+repo_description_helper=Description of repository. Maximum 512 characters length.
+repo_description_length=Available characters
form.reach_limit_of_creation=Притежателят е достигнал настроения лимит от %d брой хранилища.
-form.name_reserved=Името на хранилището '%s' е запазено.
-form.name_pattern_not_allowed=Име на хранилището от вида '%s' не е позволено.
+form.name_not_allowed=Repository name or pattern %q is not allowed.
need_auth=Изисква потребител и парола
migrate_type=Тип мигриране
migrate_type_helper=Това хранилище ще бъде огледало
migrate_repo=Мигрирай хранилище
migrate.clone_address=Адрес за клониране
-migrate.clone_address_desc=Това може да е HTTP/HTTPS/GIT адрес или локален път на сървъра.
+migrate.clone_address_desc=Може да използвате HTTP/HTTPS/GIT адрес.
+migrate.clone_address_desc_import_local=Можете да мигрирате хранилище от локален път на сървъра.
migrate.permission_denied=Недостатъчни права за импорт на локални хранилища.
migrate.invalid_local_path=Невалиден път - не съществува или не е директория.
+migrate.clone_address_resolved_to_blocked_local_address=Clone address resolved to a local network address that is implicitly blocked.
migrate.failed=Грешка при миграция: %v
mirror_from=огледало от
forked_from=разклонено от
-fork_from_self=Не можете да разклоните хранилище което си е Ваше!
copy_link=Копирай
copy_link_success=Копирано!
copy_link_error=Натиснете ⌘-C или Ctrl-C за да копирате
@@ -407,9 +466,9 @@ quick_guide=Бърз справочник
clone_this_repo=Клонирай хранилището
create_new_repo_command=Създай ново хранилище чрез командния ред
push_exist_repo=Предай съществуващо хранилище през командния ред
-repo_is_empty=Това хранилище е празно. Моля проверете по-късно пак!
+bare_message=Това хранилище все още не съдържа нищо.
-code=Код
+files=Файлове
branch=Клон
tree=ИН на ревизия
filter_branch_and_tag=Филтър по маркер или клон
@@ -420,12 +479,23 @@ pulls=Заявки за сливане
labels=Етикети
milestones=Етапи
commits=Ревизии
+git_branches=Клонове
releases=Версии
file_raw=Директен файл
file_history=История
file_view_raw=Виж директен файл
file_permalink=Постоянна връзка
file_too_large=Този файл е твърде голям за да се визуализира
+video_not_supported_in_browser=Вашият браузър не поддържа HTML5 видео тагове.
+
+branches.overview=Преглед
+branches.active_branches=Активни клонове
+branches.stale_branches=Застинали клонове
+branches.all=Всички клонове
+branches.updated_by=Актуализирани %[1]s от %[2]s
+branches.change_default_branch=Промяна на клон по подразбиране
+branches.default_deletion_not_allowed=Cannot delete the default branch.
+branches.protected_deletion_not_allowed=Cannot delete a protected branch.
editor.new_file=Нов файл
editor.upload_file=Качи файл
@@ -455,16 +525,19 @@ editor.cancel=Отказ
editor.filename_cannot_be_empty=Името не може да бъде празно.
editor.branch_already_exists=Клон '%s' вече съществува в това хранилище.
editor.directory_is_a_file=Частта '%s' в пътя е файл, не директория в това хранилище.
+editor.file_is_a_symlink=Файл "%s" е символна връзка, която не може да се модифицира от редактора.
editor.filename_is_a_directory=Име '%s' вече съществува като директория в това хранилище.
editor.file_editing_no_longer_exists=Файл '%s' който редактирате вече не съществува в това хранилище.
editor.file_changed_while_editing=Съдържанието на файла е било променено докато правихте редакциите. Щракнете тук за да прегледате какво е променено или натиснете Запис на ревизия отново за да презапишете чуждите промени.
editor.file_already_exists=Файл с име '%s' вече съществува в това хранилище.
editor.no_changes_to_show=Няма промени.
editor.fail_to_update_file=Невъзможно модифициране/създаване на файл '%s' заради грешка: %v
+editor.fail_to_delete_file=Failed to delete file '%s' with error: %v
editor.add_subdir=Добави поддиректория...
editor.unable_to_upload_files=Невъзможно качване на файлове в '%s' заради грешка: %v
editor.upload_files_to_dir=Качи файлове в '%s'
+commits.commit_history=Commit History
commits.commits=Ревизии
commits.search=Търсене в ревизии
commits.find=Намери
@@ -562,6 +635,7 @@ pulls.compare_compare=сравни
pulls.filter_branch=Филтър по клон
pulls.no_results=Няма резултати.
pulls.nothing_to_compare=Няма нищо за сравняване, защото родителският клон и върхът са еднакви.
+pulls.nothing_merge_base=Няма нищо за сравняване, защото двата клона имат напълно различна история.
pulls.has_pull_request=`Вече има заявка за сливане между тези две цели: %[2]s#%[3]d`
pulls.create=Създай заявка за сливане
pulls.title_desc=заяви обединяване на %[1]d ревизии от %[2]s във %[3]s
@@ -577,8 +651,13 @@ pulls.is_checking=Проверката за конфликт все още е в
pulls.can_auto_merge_desc=Може да се извърши обединяване на тази заявка за сливане.
pulls.cannot_auto_merge_desc=Не може да се извърши обединяване, защото съществуват конфликти между ревизиите.
pulls.cannot_auto_merge_helper=Моля, използвайте инструменти на командния ред за да разрешите конфликтите.
+pulls.create_merge_commit=Create a merge commit
+pulls.rebase_before_merging=Rebase before merging
+pulls.commit_description=Commit Description
pulls.merge_pull_request=Обедини заявка за сливане
pulls.open_unmerged_pull_exists=`Невъзможно повторно отваряне, защото вече съществува заявка за сливане (#%d) от същото хранилище със същата информация за обединяване, която чака да бъде извършена`
+pulls.delete_branch=Изтрий клон
+pulls.delete_branch_has_new_commits=Клонът не може да бъде изтрит, защото има ревизии след последното обединяване.
milestones.new=Нов етап
milestones.open_tab=%d отворени
@@ -629,6 +708,29 @@ settings.collaboration.admin=За администрация
settings.collaboration.write=За писане
settings.collaboration.read=За четене
settings.collaboration.undefined=Недефинирано
+settings.branches=Клонове
+settings.branches_bare=You cannot manage branches for bare repository. Please push some content first.
+settings.default_branch=Клон по подразбиране
+settings.default_branch_desc=The default branch is considered the "base" branch for code commits, pull requests and online editing.
+settings.update=Update
+settings.update_default_branch_unsupported=Промяна на клон по подразбиране не се поддържа от тази версия на Git сървъра.
+settings.update_default_branch_success=Default branch of this repository has been updated successfully!
+settings.protected_branches=Защитени клонове
+settings.protected_branches_desc=Protect branches from force pushing, accidental deletion and whitelist code committers.
+settings.choose_a_branch=Избор на клон...
+settings.branch_protection=Защита на клон
+settings.branch_protection_desc=Please choose protect options for branch %s.
+settings.protect_this_branch=Protect this branch
+settings.protect_this_branch_desc=Disable force pushes and prevent from deletion.
+settings.protect_require_pull_request=Require pull request instead direct pushing
+settings.protect_require_pull_request_desc=Enable this option to disable direct pushing to this branch. Commits have to be pushed to another non-protected branch and merged to this branch through pull request.
+settings.protect_whitelist_committers=Списък на всички, които могат да изпращат към този клон
+settings.protect_whitelist_committers_desc=Add people or teams to whitelist of direct push to this branch. Users in whitelist will bypass require pull request check.
+settings.protect_whitelist_users=Потребители, които могат да изпращат към този клон
+settings.protect_whitelist_search_users=Търсене на потребители
+settings.protect_whitelist_teams=Teams for which members of them can push to this branch
+settings.protect_whitelist_search_teams=Търсене на екипи
+settings.update_protect_branch_success=Protect options for this branch has been updated successfully!
settings.hooks=Уеб-куки
settings.githooks=Git куки
settings.basic_settings=Основни настройки
@@ -641,19 +743,26 @@ settings.change_reponame_prompt=Тази промяна ще засегне вр
settings.advanced_settings=Разширени настройки
settings.wiki_desc=Включи система за уики
settings.use_internal_wiki=Използвай вградено уики
+settings.allow_public_wiki_desc=Allow public access to wiki when repository is private
settings.use_external_wiki=Използвай външно уики
settings.external_wiki_url=URL адрес на външно уики
settings.external_wiki_url_desc=Посетителите ще бъдат пренасочени към този URL адрес от връзката за раздел уики.
settings.issues_desc=Включи система за проследяване на задачи
settings.use_internal_issue_tracker=Изполвай вградена система за проследяване на задачи
+settings.allow_public_issues_desc=Allow public access to issues when repository is private
settings.use_external_issue_tracker=Използвай външна система за проследяване на задачи
+settings.external_tracker_url=URL адрес на външна система за проследяване на задачи
+settings.external_tracker_url_desc=Посетителите ще бъдат пренасочени към този URL адрес от връзката на раздела.
settings.tracker_url_format=Формат на URL адрес на външна система за проследяване на задачи
settings.tracker_issue_style=Стил на именуване на външна система за проследяване на задачи:
settings.tracker_issue_style.numeric=Цифров
settings.tracker_issue_style.alphanumeric=Символен
settings.tracker_url_format_desc=Можете да използвате текстови маркери {user} {repo} {index} за потребителско име, име на хранилище и индекс на задача съответно.
-settings.pulls_desc=Включва заявки за сливане за да може да се приемат външни доработки
+settings.pulls_desc=Enable pull requests to accept contributions between repositories and branches
+settings.pulls.ignore_whitespace=Ignore changes in whitespace
+settings.pulls.allow_rebase_merge=Allow use rebase to merge commits
settings.danger_zone=Опасна зона
+settings.cannot_fork_to_same_owner=You cannot fork a repository to its original owner.
settings.new_owner_has_same_repo=Новият притежател вече има хранилище със същото име. Изберете друго име.
settings.convert=Промени към редовно хранилище
settings.convert_desc=Можете да промените това огледало към редовно хранилище. Конверсията не може да се отмени.
@@ -672,7 +781,7 @@ settings.wiki_deletion_success=Данните за уики на това хра
settings.delete=Изтрий това хранилище
settings.delete_desc=След като изтриете хранилището, няма връщане назад. Моля, бъдете сигурни.
settings.delete_notices_1=- Тази операция НЕ МОЖЕ да бъде отменена в последствие.
-settings.delete_notices_2=- Тази операция ще изтрие всичко от това хранилище, включително Git данни, задачи, коментари и достъпа на сътрудници.
+settings.delete_notices_2=- This operation will permanently delete everything in this repository, including Git data, issues, comments and collaborator access.
settings.delete_notices_fork_1=- Всички разклонения ще станат независими след изтриването.
settings.deletion_success=Хранилището е изтрито успешно!
settings.update_settings_success=Настройките на хранилището са запазени успешно.
@@ -688,20 +797,25 @@ settings.collaborator_deletion_desc=Този потребител няма да
settings.remove_collaborator_success=Сътрудникът е премахнат.
settings.search_user_placeholder=Име на потребител...
settings.org_not_allowed_to_be_collaborator=Невъзможно добавяне на организация като сътрудник.
-settings.user_is_org_member=Потребителят вече участва в организацията и не може да бъде добавен като сътрудник.
-settings.add_webhook=Добави уеб-кука
settings.hooks_desc=Уеб-куките много приличат на обикновен HTTP POST тригер. Когато нещо се случи в Gogs, ние ще изпратим уведомление до сървъра, който посочите. Научете повече в Ръководство за уеб-куки.
+settings.webhooks.add_new=Add a new webhook:
+settings.webhooks.choose_a_type=Choose a type...
+settings.add_webhook=Добави уеб-кука
settings.webhook_deletion=Изтрий уеб-кука
settings.webhook_deletion_desc=При изтриване на тази уеб-кука ще се премахне информацията за нея и цялата хронология на нейното изпращане. Желаете ли да продължите?
settings.webhook_deletion_success=Уеб-куката е изтрита успешно!
settings.webhook.test_delivery=Тестово изпращане
settings.webhook.test_delivery_desc=Симулира тестово изпращане за тест на настройките на уеб-куката
settings.webhook.test_delivery_success=Тестовата уеб-кука е добавена в опашката за изпращане. Може да отнеме няколко секунди преди да се появи в историята с доставени.
+settings.webhook.redelivery=Redelivery
+settings.webhook.redelivery_success=Hook task '%s' has been readded to delivery queue. It may take few seconds to update delivery status in history.
settings.webhook.request=Заявка
settings.webhook.response=Отговор
settings.webhook.headers=Заглавки
settings.webhook.payload=Съдържание
settings.webhook.body=Тяло
+settings.webhook.err_cannot_parse_payload_url=Cannot parse payload URL: %v
+settings.webhook.url_resolved_to_blocked_local_address=Payload URL resolved to a local network address that is implicitly blocked.
settings.githooks_desc=Git куките се изпълняват от Git. Вие може да промените файловете с поддържаните куки в списъка по-долу, за да изпълните външни операции.
settings.githook_edit_desc=Ако куката е неактивна, ще бъде представено примерно съдържание. Ако оставите съдържанието празно, то тази кука ще бъде изключена.
settings.githook_name=Име на куката
@@ -711,6 +825,7 @@ settings.add_webhook_desc=Gogs ще изпрати POST заявк
settings.payload_url=URL адрес на изпращане
settings.content_type=Тип на съдържанието
settings.secret=Тайна
+settings.secret_desc=Secret will be sent as SHA256 HMAC hex digest of payload via X-Gogs-Signature header.
settings.slack_username=Потребителско име
settings.slack_icon_url=URL адрес на икона
settings.slack_color=Цвят
@@ -720,10 +835,20 @@ settings.event_send_everything=При всички събити
settings.event_choose=Нека избера от какво имам нужда.
settings.event_create=Създаване
settings.event_create_desc=Създаване на клон или маркер
-settings.event_pull_request=Заявка за сливане
-settings.event_pull_request_desc=Заявка за сливане е отворена, затворена, отворена повторно, редактирана, възложена, отменена, при модифициран етикет, при премахнат етикет или е синхронизирана.
+settings.event_delete=Изтриване
+settings.event_delete_desc=Изтрит клон или етикет
+settings.event_fork=Fork
+settings.event_fork_desc=Repository forked
settings.event_push=Предаване
settings.event_push_desc=Git предаване към хранилището
+settings.event_issues=Issues
+settings.event_issues_desc=Issue opened, closed, reopened, edited, assigned, unassigned, label updated, label cleared, milestoned, or demilestoned.
+settings.event_pull_request=Заявка за сливане
+settings.event_pull_request_desc=Pull request opened, closed, reopened, edited, assigned, unassigned, label updated, label cleared, milestoned, demilestoned, or synchronized.
+settings.event_issue_comment=Issue Comment
+settings.event_issue_comment_desc=Issue comment created, edited, or deleted.
+settings.event_release=Release
+settings.event_release_desc=Release published in a repository.
settings.active=Активна
settings.active_helper=Подробности относно събитието, което е задействало куката, също ще бъдат изпратени.
settings.add_hook_success=Новата уеб-кука е добавена успешно.
@@ -733,10 +858,13 @@ settings.delete_webhook=Изтрий уеб-куката
settings.recent_deliveries=Последни изпращания
settings.hook_type=Тип на куката
settings.add_slack_hook_desc=Добавяне на интеграция със Slack във Вашето хранилище.
+settings.add_discord_hook_desc=Добавяне на интеграция с Discord към хранилището.
+settings.add_dingtalk_hook_desc=Добавяне на интеграция с Dingtalk към хранилището.
settings.slack_token=API ключ
settings.slack_domain=Домейн
settings.slack_channel=Канал
settings.deploy_keys=Ключове за внедряване
+settings.deploy_keys_helper=Common Gotcha! If you're looking for adding personal public keys, please add them in your account settings.
settings.add_deploy_key=Добави ключ за внедряване
settings.deploy_key_desc=Този ключ за внедряване има права само за четене. Това не е същото като SSH ключове на персонален потребител.
settings.no_deploy_keys=Все още няма настроен никакъв ключ за внедряване.
@@ -748,6 +876,8 @@ settings.add_key_success=Новият ключ за внедряване '%s' е
settings.deploy_key_deletion=Изтрий ключ за внедряване
settings.deploy_key_deletion_desc=При изтриването на този ключ за внедряване ще се премахнат свързаните права за достъп до това хранилище. Желаете ли да продължите?
settings.deploy_key_deletion_success=Ключът за внедряване е изтрит успешно!
+settings.description_desc=Description of repository. Maximum 512 characters length.
+settings.description_length=Available characters
diff.browse_source=Преглед на файлове
diff.parent=родител
@@ -766,7 +896,6 @@ release.releases=Версии
release.new_release=Нова версия
release.draft=Чернови
release.prerelease=Предварителни
-release.stable=Стабилни
release.edit=редактиране
release.ahead=%d ревизии на %s след тази версия
release.source_code=Изходен код
@@ -813,8 +942,8 @@ team_name_helper=Ще използвате това име при спомена
team_desc_helper=Каква е целта на този екип?
team_permission_desc=Какво ниво на достъп трябва да има този екип?
-form.name_reserved=Името на организацията '%s' е запазено.
-form.name_pattern_not_allowed=Име на организацията от вида '%s' не е разрешено.
+form.name_not_allowed=Organization name or pattern %q is not allowed.
+form.team_name_not_allowed=Team name or pattern %q is not allowed.
settings=Настройки
settings.options=Опции
@@ -886,12 +1015,19 @@ first_page=Първа
last_page=Последна
total=Общо: %d
+dashboard.build_info=Build Information
+dashboard.app_ver=Application version
+dashboard.git_version=Git version
+dashboard.go_version=Go version
+dashboard.build_time=Build time
+dashboard.build_commit=Build commit
dashboard.statistic=Статистика
dashboard.operations=Операции
dashboard.system_status=Наблюдение на системния статус
dashboard.statistic_info=Gogs базата данни има %d потребители, %d организации, %d публични ключове, %d хранилища, %d наблюдавания, %d харесвания, %d действия, %d достъпи, %d задачи, %d коментари, %d социални регистрации, %d последователи, %d огледала, %d версии, %d начини на удостоверяване, %d уеб-куки, %d етапи, %d етикети, %d задачи на куки, %d екипи, %d задачи при актуализация, %d прикачени файлове.
dashboard.operation_name=Име на операцията
dashboard.operation_switch=Превключи
+dashboard.select_operation_to_run=Please select operation to run
dashboard.operation_run=Изпълни
dashboard.clean_unbind_oauth=Почисти несвързани OAuthes
dashboard.clean_unbind_oauth_success=Всички несвързани OAuthes са изтрити успешно.
@@ -905,8 +1041,8 @@ dashboard.git_gc_repos=Почисти изтрити данни в хранил
dashboard.git_gc_repos_success=Всички хранилища са почистени от изтрити данни успешно.
dashboard.resync_all_sshkeys=Презапис на ".ssh/authorized_keys" файл (внимание: не-Gogs ключове ще бъдат загубени)
dashboard.resync_all_sshkeys_success=Всички публични ключове са презаписани успешно.
-dashboard.resync_all_update_hooks=Презапис на всички куки, закачени на актуализация на хранилищата (необходимо, когато се ползва собствен път за конфигурацията)
-dashboard.resync_all_update_hooks_success=Всички куки, закачени на актуализация на хранилищата, са презаписани успешно.
+dashboard.resync_all_hooks=Resync pre-receive, update and post-receive hooks of all repositories
+dashboard.resync_all_hooks_success=All repositories' pre-receive, update and post-receive hooks have been resynced successfully.
dashboard.reinit_missing_repos=Реинициализира всички записи за хранилища
dashboard.reinit_missing_repos_success=Всички записи за хранилища със загубени Git файлове са реинициализирани успешно.
@@ -981,12 +1117,14 @@ repos.private=Частно
repos.watches=Наблюдавания
repos.stars=Харесвания
repos.issues=Задачи
+repos.size=Размер
-auths.auth_manage_panel=Управление на удостоверявания
+auths.auth_sources=Authentication Sources
auths.new=Добави нов начин на удостоверяване
auths.name=Име
auths.type=Тип
auths.enabled=Активно
+auths.default=Default
auths.updated=Последна модификация
auths.auth_type=Тип на удостоверяване
auths.auth_name=Име на удостоверяване
@@ -995,15 +1133,21 @@ auths.domain=Домейн
auths.host=Сървър
auths.port=Порт
auths.bind_dn=Име (DN) за свръзка
+auths.bind_dn_helper=You can use '%s' as placeholder for username, e.g. DOM\%s
auths.bind_password=Парола за свръзка
auths.bind_password_helper=Внимание: Тази парола се запазва некриптирана. Моля използвайте потребител, който няма административен достъп.
auths.user_base=Базов OU за търсене
auths.user_dn=Име (DN) на потребител
auths.attribute_username=Атрибут за име
auths.attribute_username_placeholder=Оставете празно за да използва потребителското име от форма за вписване.
-auths.attribute_name=Атрибут за име
+auths.attribute_name=First Name Attribute
auths.attribute_surname=Атрибут за фамилия
auths.attribute_mail=Атрибут за ел. поща
+auths.verify_group_membership=Verify group membership
+auths.group_search_base_dn=Group Search Base DN
+auths.group_filter=Group Filter
+auths.group_attribute_contain_user_list=Group Attribute Containing List of Users
+auths.user_attribute_listed_in_group=User Attribute Listed in Group
auths.attributes_in_bind=Извличане на атрибути от контекста на име (DN) за свръзка
auths.filter=Филтър за потребител
auths.admin_filter=Филтър за администратор
@@ -1017,9 +1161,9 @@ auths.enable_tls=Включи TLS криптиране
auths.skip_tls_verify=Пропусни проверка на TLS сертификат
auths.pam_service_name=Име на PAM услуга
auths.enable_auto_register=Включи автоматична регистрация
-auths.tips=Съвети
auths.edit=Редактирай настройки за удостоверяване
auths.activated=Това удостоверяване е активно
+auths.default_auth=This authentication is default login source
auths.new_success=Новото удостоверяване '%s' е добавено успешно.
auths.update_success=Настройките за удостоверяване са запазени успешно.
auths.update=Запази настройки за удостоверяване
@@ -1028,107 +1172,189 @@ auths.delete_auth_title=Изтрий удостоверяването
auths.delete_auth_desc=Това удостоверяване ще бъде изтрито. Желаете ли да продължите?
auths.still_in_used=Това удостоверяване все още се използва от някои потребители. Моля изтрийте ги или ги конвертирайте до друг тип на влизане първо.
auths.deletion_success=Удостоверяването е изтрито успешно!
+auths.login_source_exist=Източник за валидация на потребители "%s" вече съществува.
+auths.github_api_endpoint=API Endpoint
+config.not_set=(not set)
config.server_config=Сървърни настройки
-config.app_name=Име на приложението
-config.app_ver=Версия на приложението
-config.app_url=URL адрес на приложението
-config.domain=Домейн
-config.offline_mode=Офлайн режим
-config.disable_router_log=Изключи журнал на маршрутизатора
+config.brand_name=Brand name
config.run_user=Потребителски контекст
config.run_mode=Режим на изпълнение
-config.repo_root_path=Основен път към хранилища
-config.static_file_root_path=Път към статични файлове
-config.log_file_root_path=Път към журнал
-config.script_type=Тип на скрипта
-config.reverse_auth_user=Потребителско име при обратно удостоверяване
+config.server.external_url=External URL
+config.server.domain=Domain
+config.server.protocol=Protocol
+config.server.http_addr=HTTP address
+config.server.http_port=HTTP port
+config.server.cert_file=Certificate file
+config.server.key_file=Key file
+config.server.tls_min_version=Minimum TLS version
+config.server.unix_socket_permission=Unix socket permission
+config.server.local_root_url=Local root URL
+config.server.offline_mode=Offline mode
+config.server.disable_router_log=Disable router log
+config.server.enable_gzip=Enable Gzip
+config.server.app_data_path=Application data path
+config.server.load_assets_from_disk=Load assets from disk
+config.server.landing_url=Landing URL
config.ssh_config=SSH конфигурация
-config.ssh_enabled=Активен
-config.ssh_start_builtin_server=Стартирай вграден сървър
-config.ssh_domain=Домейн
-config.ssh_port=Порт
-config.ssh_listen_port=Порт за слушане
-config.ssh_root_path=Основен път
-config.ssh_key_test_path=Път до ключове
-config.ssh_keygen_path=Път до генератор ('ssh-keygen')
-config.ssh_minimum_key_size_check=Проверка за минимален размер на ключове
-config.ssh_minimum_key_sizes=Минимален размер на ключове
+config.ssh.enabled=Enabled
+config.ssh.domain=Exposed domain
+config.ssh.port=Exposed port
+config.ssh.root_path=Root path
+config.ssh.keygen_path=Keygen path
+config.ssh.key_test_path=Key test path
+config.ssh.minimum_key_size_check=Minimum key size check
+config.ssh.minimum_key_sizes=Minimum key sizes
+config.ssh.rewrite_authorized_keys_at_start=Rewrite "authorized_keys" at start
+config.ssh.start_builtin_server=Start builtin server
+config.ssh.listen_host=Listen host
+config.ssh.listen_port=Listen port
+config.ssh.server_ciphers=Server ciphers
+config.ssh.server_macs=Server MACs
+config.ssh.server_algorithms=Server algorithms
+
+config.repo_config=Конфигурация на хранилище
+config.repo.root_path=Root path
+config.repo.script_type=Script type
+config.repo.ansi_chatset=ANSI charset
+config.repo.force_private=Force private
+config.repo.max_creation_limit=Max creation limit
+config.repo.preferred_licenses=Preferred licenses
+config.repo.disable_http_git=Disable HTTP Git
+config.repo.enable_local_path_migration=Enable local path migration
+config.repo.enable_raw_file_render_mode=Enable raw file render mode
+config.repo.commits_fetch_concurrency=Commits fetch concurrency
+config.repo.editor.line_wrap_extensions=Editor line wrap extensions
+config.repo.editor.previewable_file_modes=Editor previewable file modes
+config.repo.upload.enabled=Upload enabled
+config.repo.upload.temp_path=Upload temporary path
+config.repo.upload.allowed_types=Upload allowed types
+config.repo.upload.file_max_size=Upload file size limit
+config.repo.upload.max_files=Upload files limit
config.db_config=Настройки на базата данни
-config.db_type=Тип
-config.db_host=Сървър
-config.db_name=Име
-config.db_user=Потребител
-config.db_ssl_mode=SSL режим
-config.db_ssl_mode_helper=(само за postgres)
-config.db_path=Път
-config.db_path_helper=(за "sqlite3" и "tidb")
-
-config.service_config=Настройка на услугата
-config.register_email_confirm=Изисквай потвърждение на адреси на ел. поща
-config.disable_register=Изключи нови регистрации
-config.show_registration_button=Покажи бутон за регистрация
-config.require_sign_in_view=Изисквай вписване за преглед
-config.mail_notify=Уведомяване по ел. поща
-config.disable_key_size_check=Изключи проверка минимален размер на ключ
-config.enable_captcha=Включи Captcha
-config.active_code_lives=Кодове за активиране
-config.reset_password_code_lives=Кодове за изчистване на парола
+config.db.type=Type
+config.db.host=Host
+config.db.name=Name
+config.db.schema=Schema
+config.db.schema_helper=(for "postgres" only)
+config.db.user=User
+config.db.ssl_mode=SSL mode
+config.db.ssl_mode_helper=(for "postgres" only)
+config.db.path=Path
+config.db.path_helper=(for "sqlite3"only)
+config.db.max_open_conns=Maximum open connections
+config.db.max_idle_conns=Maximum idle connections
+
+config.security_config=Security configuration
+config.security.login_remember_days=Login remember days
+config.security.cookie_remember_name=Remember cookie
+config.security.cookie_username=Username cookie
+config.security.cookie_secure=Enable secure cookie
+config.security.reverse_proxy_auth_user=Reverse proxy authentication header
+config.security.enable_login_status_cookie=Enable login status cookie
+config.security.login_status_cookie_name=Login status cookie
+config.security.local_network_allowlist=Local network allowlist
+
+config.email_config=Email configuration
+config.email.enabled=Enabled
+config.email.subject_prefix=Subject prefix
+config.email.host=Host
+config.email.from=From
+config.email.user=User
+config.email.disable_helo=Disable HELO
+config.email.helo_hostname=HELO hostname
+config.email.skip_verify=Skip certificate verify
+config.email.use_certificate=Use custom certificate
+config.email.cert_file=Certificate file
+config.email.key_file=Key file
+config.email.use_plain_text=Use plain text
+config.email.add_plain_text_alt=Add plain text alternative
+config.email.send_test_mail=Send test email
+config.email.test_mail_failed=Failed to send test email to '%s': %v
+config.email.test_mail_sent=Test email has been sent to '%s'.
+
+config.auth_config=Authentication configuration
+config.auth_custom_logout_url=Custom logout URL
+config.auth.activate_code_lives=Activate code lives
+config.auth.reset_password_code_lives=Reset password code lives
+config.auth.require_email_confirm=Require email confirmation
+config.auth.require_sign_in_view=Require sign in view
+config.auth.disable_registration=Disable registration
+config.auth.enable_registration_captcha=Enable registration captcha
+config.auth.enable_reverse_proxy_authentication=Enable reverse proxy authentication
+config.auth.enable_reverse_proxy_auto_registration=Enable reverse proxy auto registration
+config.auth.reverse_proxy_authentication_header=Reverse proxy authentication header
+
+config.user_config=User configuration
+config.user.enable_email_notify=Enable email notification
-config.webhook_config=Конфигурация на уеб-куки
-config.queue_length=Дължина на опашка
-config.deliver_timeout=Време за отказ при изпращане
-config.skip_tls_verify=Пропусни проверка на TLS
-
-config.mailer_config=Конфигурация на мейлър
-config.mailer_enabled=Активен
-config.mailer_disable_helo=Изключи HELO
-config.mailer_name=Име
-config.mailer_host=Сървър
-config.mailer_user=Потребител
-config.send_test_mail=Изпрати тестово писмо
-config.test_mail_failed=Невъзможно изпращане на тестово писмо до '%s': %v
-config.test_mail_sent=Тестово писмо беше изпратено до '%s'.
-
-config.oauth_config=OAuth конфигурация
-config.oauth_enabled=Активна
+config.session_config=Конфигурация на сесии
+config.session.provider=Provider
+config.session.provider_config=Provider config
+config.session.cookie_name=Cookie
+config.session.https_only=HTTPS only
+config.session.gc_interval=GC interval
+config.session.max_life_time=Max life time
+config.session.csrf_cookie_name=CSRF cookie
config.cache_config=Конфигурация на кеша
-config.cache_adapter=Кеш адаптер
-config.cache_interval=Кеш интервал
-config.cache_conn=Кеш на връзката
-
-config.session_config=Конфигурация на сесии
-config.session_provider=Доставчик на сесии
-config.provider_config=Конфигурация на доставчик
-config.cookie_name=Име на бисквитката
-config.enable_set_cookie=Включи използване на бисквитки
-config.gc_interval_time=GC през интервал
-config.session_life_time=Период на валидност на сесиите
-config.https_only=HTTPS само
-config.cookie_life_time=Период на валидност на бисквитките
+config.cache.adapter=Adapter
+config.cache.interval=GC interval
+config.cache.host=Host
+
+config.http_config=Конфигуриране на HTTP
+config.http.access_control_allow_origin=Access control allow origin
+
+config.attachment_config=Attachment configuration
+config.attachment.enabled=Enabled
+config.attachment.path=Path
+config.attachment.allowed_types=Allowed types
+config.attachment.max_size=Size limit
+config.attachment.max_files=Files limit
+
+config.release_config=Release configuration
+config.release.attachment.enabled=Attachment enabled
+config.release.attachment.allowed_types=Attachment allowed types
+config.release.attachment.max_size=Attachment size limit
+config.release.attachment.max_files=Attachment files limit
config.picture_config=Конфигурация на изображения
-config.picture_service=Услуги за снимки
-config.disable_gravatar=Изключи Gravatar
-config.enable_federated_avatar=Включи външни аватари
+config.picture.avatar_upload_path=User avatar upload path
+config.picture.repo_avatar_upload_path=Repository avatar upload path
+config.picture.gravatar_source=Gravatar source
+config.picture.disable_gravatar=Disable Gravatar
+config.picture.enable_federated_avatar=Enable federated avatars
+
+config.mirror_config=Mirror configuration
+config.mirror.default_interval=Default interval
+
+config.webhook_config=Конфигурация на уеб-куки
+config.webhook.types=Types
+config.webhook.deliver_timeout=Deliver timeout
+config.webhook.skip_tls_verify=Skip TLS verify
config.git_config=Конфигурация на git
-config.git_disable_diff_highlight=Забрани оцветяване на синтаксис при преглед на разлики
-config.git_max_diff_lines=Максимален брой различни редове (за файл)
-config.git_max_diff_line_characters=Максимален брой различни символи (на ред)
-config.git_max_diff_files=Максимален брой променени файлове (при показване)
-config.git_gc_args=Аргументи на GC
-config.git_migrate_timeout=Време за отказ при миграция
-config.git_mirror_timeout=Време за отказ при синхр. на огледало
-config.git_clone_timeout=Време за отказ при клониране
-config.git_pull_timeout=Време за отказ при сливане
-config.git_gc_timeout=Време за отказ при GC
+config.git.disable_diff_highlight=Disable diff syntax highlight
+config.git.max_diff_lines=Diff lines limit (for a single file)
+config.git.max_diff_line_characters=Diff characters limit (for a single line)
+config.git.max_diff_files=Diff files limit (for a single diff)
+config.git.gc_args=GC arguments
+config.git.migrate_timeout=Migration timeout
+config.git.mirror_timeout=Mirror fetch timeout
+config.git.clone_timeout=Clone timeout
+config.git.pull_timeout=Pull timeout
+config.git.gc_timeout=GC timeout
+
+config.lfs_config=LFS configuration
+config.lfs.storage=Storage
+config.lfs.objects_path=Objects path
config.log_config=Конфигурация на журнал
-config.log_mode=Режим на журнал
+config.log_file_root_path=Път към журнал
+config.log_mode=Режим
+config.log_options=Настройки
monitor.cron=Cron задачи
monitor.name=Име
@@ -1159,17 +1385,24 @@ notices.delete_success=Системните съобщения са изтрит
create_repo=създаде хранилище %s
rename_repo=преименува хранилище от %[1]s на %[3]s
commit_repo=предаде към %[3]s в %[4]s
+compare_commits=Сравнение между тези %d ревизии
+transfer_repo=прехвърли хранилище %s към %s
create_issue=`отвори задача %s#%[2]s"`
close_issue=`затвори %s#%[2]s`
reopen_issue=`повторно отвори %s#%[2]s`
+comment_issue=`коментира задача %s#%[2]s"`
create_pull_request=`създаде заявка за сливане %s#%[2]s`
close_pull_request=`затвори заявка за сливане %s#%[2]s`
reopen_pull_request=`повторно отвори заявка за сливане %s#%[2]s`
-comment_issue=`коментира задача %s#%[2]s"`
merge_pull_request=`обедини заявка за сливане %s#%[2]s`
-transfer_repo=прехвърли хранилище %s към %s
+create_branch=създаде клон %[3]s % [4]s
+delete_branch=изтри клон %[2]s % [3]s
push_tag=предаде маркер %[2]s към [3]s
-compare_commits=Сравнение между тези %d ревизии
+delete_tag=изтри етикет %[2]s % [3]s
+fork_repo=forked a repository to %s
+mirror_sync_push=synced commits to %[3]s at %[4]s from mirror
+mirror_sync_create=synced new reference %[2]s to %[3]s from mirror
+mirror_sync_delete=synced and deleted reference %[2]s at %[3]s from mirror
[tool]
ago=преди
@@ -1191,6 +1424,7 @@ months=%[2]s %[1]d месеца
years=%[2]s %[1]d години
raw_seconds=секунди
raw_minutes=минути
+raw_hours=hours
[dropzone]
default_message=Тук пуснете файлове с влачене или просто щракнете за избор на файл за качване.
diff --git a/conf/locale/locale_cs-CZ.ini b/conf/locale/locale_cs-CZ.ini
index 73182b081f8..b6c8c7240d8 100644
--- a/conf/locale/locale_cs-CZ.ini
+++ b/conf/locale/locale_cs-CZ.ini
@@ -1,4 +1,4 @@
-app_desc=Bezbolestná soukromá Git služba
+app_desc=Snadná soukromá služba Git
home=Domů
dashboard=Přehled
@@ -9,16 +9,15 @@ sign_out=Odhlásit se
sign_up=Registrovat se
register=Registrovat se
website=Webové stránky
-version=Verze
page=Strana
template=Šablona
language=Jazyk
-create_new=Vytořit...
+create_new=Vytvořit...
user_profile_and_more=Uživatelský profil a další
signed_in_as=Přihlášen jako
username=Uživatelské jméno
-email=E-Mail
+email=E-mail
password=Heslo
re_type=Znovu zadat
captcha=CAPTCHA
@@ -27,7 +26,7 @@ repository=Repozitář
organization=Organizace
mirror=Zrcadlo
new_repo=Nový repozitář
-new_migrate=Nová migrace
+new_migrate=Nové přenesení
new_mirror=Nové zrcadlo
new_fork=Nový repositář rozštěpení
new_org=Nová organizace
@@ -39,28 +38,32 @@ your_profile=Váš profil
your_settings=Vaše nastavení
activities=Aktivity
-pull_requests=Požadavek na natažení
+pull_requests=Požadavky na natažení
issues=Úkoly
cancel=Zrušit
+[status]
+page_not_found=Page Not Found
+internal_server_error=Internal Server Error
+
[install]
install=Instalace
-title=Kroky instalace pro první běh
+title=Kroky instalace pro první spuštění
docker_helper=Spouštíte-li Gogs uvnitř Dockeru, přečtěte si prosím pečlivě návod, než něco změníte na této stránce!
-requite_db_desc=Gogs vyžaduje MySQL, PostgreSQL, SQLite3 nebo TiDB.
+requite_db_desc=Gogs requires MySQL, PostgreSQL, SQLite3 or TiDB (via MySQL protocol).
db_title=Nastavení databáze
db_type=Typ databáze
-host=Hostitel
+host=Server
user=Uživatel
password=Heslo
db_name=Název databáze
-db_helper=Prosíme, pro MySQL použijte INNODB engine se znakovou sadou utf8_general_ci.
-ssl_mode=SSL Mód
+db_schema=Schema
+db_helper=Prosím, pro MySQL použijte INNODB engine se znakovou sadou utf8_general_ci.
+ssl_mode=SSL režim
path=Cesta
-sqlite_helper=Cesta k souboru s SQLite3 nebo TiDB databází. Prosíme, použijte absolutní cestu, když startujete službu.
-err_empty_db_path=Cesty k databázovým souborům SQLite3 nebo TiDB nemohou být prázdné.
-err_invalid_tidb_name=Název databáze TiDB nemůže obsahovat znaky "." a "-".
+sqlite_helper=Cesta k SQLite3 databázi. Prosím, použijte absolutní cestu, pokud startujete Gogs jako službu.
+err_empty_db_path=Cesta k SQLite3 databázi nemůže být prázdná.
no_admin_and_disable_registration=Nemůžete vypnout registraci účtů bez vytvoření účtu správce.
err_empty_admin_password=Heslo správce nemůže být prázdné.
@@ -75,12 +78,17 @@ domain=Doména
domain_helper=Toto ovlivňuje URL klonů skrze SSH.
ssh_port=Port SSH
ssh_port_helper=Číslo portu, které používá váš SSH server. Nechte jej prázdné pro vypnutí používání SSH.
+use_builtin_ssh_server=Použít vestavěný SSH server
+use_builtin_ssh_server_popup=Pro Git operace spustit vestavěný SSH server, aby byl rozpoznán od systémové SSH služby.
http_port=Port HTTP
http_port_helper=Číslo portu, na kterém aplikace naslouchá.
app_url=URL aplikace
app_url_helper=Toto ovlivňuje URL klonů skrze HTTP/HTTPS a odkazů v e-mailech.
-log_root_path=Adresář logů
-log_root_path_helper=Adresář, kam se budou zapisovat logy.
+log_root_path=Adresář systémových záznamů
+log_root_path_helper=Adresář, kam se budou zapisovat soubory se systémovými záznamy.
+enable_console_mode=Povolit režim konzole
+enable_console_mode_popup=Mimo zápisu do souboru vytisknout systémové záznamy i do konzole.
+default_branch=Default Branch
optional_title=Dodatečná nastavení
email_title=Nastavení e-mailové služby
@@ -92,17 +100,17 @@ mailer_password=Heslo
register_confirm=Povolit potvrzení registrace
mail_notify=Povolit upozornění e-mailem
server_service_title=Nastavení serveru a ostatních služeb
-offline_mode=Zapnout režim offline
+offline_mode=Povolit režim offline
offline_mode_popup=Vypnout síť doručování obsahu (CDN) i v produkčním režimu, vše bude obslouženo místně.
disable_gravatar=Vypnout službu Gravatar
disable_gravatar_popup=Vypnout službu Gravatar a ostatní zdroje. Všechny ikony uživatelů budou nahrány uživateli nebo výchozí.
-federated_avatar_lookup=Enable Federated Avatars Lookup
-federated_avatar_lookup_popup=Enable federated avatars lookup to use federated open source service based on libravatar.
-disable_registration=Vypnout možnost se zaregistrovat
-disable_registration_popup=Vypnout možnost registrace, pouze správce může vytvořit účty.
+federated_avatar_lookup=Povolit vyhledání ikon uživatelů z veřejných zdrojů
+federated_avatar_lookup_popup=Povolit vyhledání ikon uživatelů z veřejných zdrojů pro využití služeb založených na libravatar.
+disable_registration=Vypnout možnost uživatelské registrace
+disable_registration_popup=Vypnout možnost uživatelské zaregistrovat, pouze správce může vytvořit účty.
enable_captcha=Povolit službu CAPTCHA
enable_captcha_popup=Vyžadovat správně zadaný text CAPTCHA při registraci.
-require_sign_in_view=Zapnout nutnost přihlášení pro zobrazení stránek
+require_sign_in_view=Povolit nutnost přihlášení pro zobrazení stránek
require_sign_in_view_popup=Stránky budou zobrazeny pouze přihlášeným uživatelům, ostatní návštěvníci uvidí pouze přihlašovací a registrační formulář.
admin_setting_desc=Nemusíte teď hned vytváře správce, kterýkoliv uživatel s ID=1 dostane automaticky správcovský přístup.
admin_title=Nastavení účtu správce
@@ -112,14 +120,17 @@ confirm_password=Potvrdit heslo
admin_email=E-mailová adresa správce
install_gogs=Nainstalovat Gogs
test_git_failed=Chyba při testu příkazu 'git': %v
-sqlite3_not_available=Vaše verze vydání Gogs nepodporuje SQLite3, prosíme stáhněte si oficiální binární balíček z %s, ne gobuild verzi.
+sqlite3_not_available=Vaše verze vydání Gogs nepodporuje SQLite3, prosím stáhněte si oficiální binární balíček z %s, ne gobuild verzi.
invalid_db_setting=Nastavení databáze není správné: %v
invalid_repo_path=Kořenový adresář repositáře není správný: %v
run_user_not_match=Uživatel pro spuštění není aktuální uživatel: %s -> %s
+smtp_host_missing_port=V adrese SMTP serveru chybí číslo portu.
+invalid_smtp_from=Hodnota položky SMTP Od: není zadána správně: %v
save_config_failed=Uložení konfigurace se nezdařilo: %v
+init_failed=Nepodařilo se inicializovat aplikaci: %v
invalid_admin_setting=Nastavení účtu správce není správné: %v
install_success=Vítejte! Jsme rádi, že jste si vybrali Gogs. Bavte se a opatrujte se.
-invalid_log_root_path=Kořenový adresář logů není správný: %v
+invalid_log_root_path=Kořenový adresář souborů systémových záznamů není správný: %v
[home]
uname_holder=Uživatelské jméno nebo e-mailová adresa
@@ -137,38 +148,48 @@ issues.in_your_repos=Ve vašich repositářích
[explore]
repos=Repositáře
users=Uživatelé
+organizations=Organizace
search=Vyhledat
[auth]
create_new_account=Vytvořit nový účet
register_hepler_msg=Již máte účet? Přihlašte se!
social_register_hepler_msg=Již máte účet? Připojte se!
-disable_register_prompt=Omlouváme se, ale registrace jsou vypnuty. Prosíme, spojte se správcem systému.
-disable_register_mail=Omlouváme se, potvrzovací registrační e-maily byly vypnuty.
+disable_register_prompt=Omlouváme se, ale registrace jsou vypnuty. Kontaktujte správce systému.
+disable_register_mail=Omlouváme se, ale e-mailové služby jsou vypnuté. Kontaktujte správce systému.
+auth_source=Zdroj ověření
+local=Lokální
remember_me=Zapamatovat si mne
forgot_password=Zapomenuté heslo
forget_password=Zapomněli jste heslo?
sign_up_now=Potřebujete účet? Zaregistrujte se.
-confirmation_mail_sent_prompt=Nový potvrzovací e-mail byl zaslán na %s, prosíme, zkontrolujte si vaši doručenou poštu během následující %d hodin pro dokončení registračního procesu.
+confirmation_mail_sent_prompt=Na adresu %s byl zaslán nový potvrzovací e-mail. Zkontrolujte prosím vaši doručenou poštu během následujících %d hodin pro dokončení registračního procesu.
active_your_account=Aktivujte si váš účet
prohibit_login=Přihlášení zakázáno
-prohibit_login_desc=Vašemu účtu je zakázáno se přihlásit, kontaktujte prosím správce webu.
-resent_limit_prompt=Omlouváme se, ale před chvílí jste požádal o aktivační e-mail. Prosíme, počkejte 3 minuty a pak to zkuste znovu.
-has_unconfirmed_mail=Zdravím, %s, máte nepotvrzenou e-mailovou adresu (%s). Pokud jste nedostali e-mail pro potvrzení nebo potřebujete zaslat nový, klikněte prosím na tlačítku níže.
-resend_mail=Klikněte zde pro odeslání aktivačního e-mailu
-email_not_associate=Tato e-mailová adresa není spojena s žádným účtem.
-send_reset_mail=Klikněte zde pro znovuposlání e-mailu pro změnu vašeho hesla
+prohibit_login_desc=Vašemu účtu je zakázáno se přihlásit, kontaktujte prosím správce serveru.
+resent_limit_prompt=Omlouváme se, ale před chvílí jste požádal o zaslání aktivačního e-mailu. Počkejte prosím 3 minuty a pak to zkuste znovu.
+has_unconfirmed_mail=Zdravím, %s, máte nepotvrzenou e-mailovou adresu (%s). Pokud jste nedostali potvrzovací e-mail nebo potřebujete zaslat nový, klikněte prosím na tlačítko níže.
+resend_mail=Klikněte zde pro opakované odeslání aktivačního e-mailu
+send_reset_mail=Klikněte zde pro (opakované) odeslání e-mailu pro obnovu vašeho hesla
reset_password=Obnova vašeho hesla
-invalid_code=Omlouváme se, ale kód potvrzení vašeho účtu vypršel nebo není správný.
+invalid_code=Omlouváme se, ale kód z vašeho potvrzovacího e-mailu už vypršel nebo není správný.
reset_password_helper=Klikněte zde pro obnovu vašeho hesla
password_too_short=Délka hesla musí být minimálně 6 znaků.
-non_local_account=Non-local accounts cannot change passwords through Gogs.
+non_local_account=Externí účty nemohou měnit hesla přes Gogs.
+
+login_two_factor=Dvoufaktorové ověření
+login_two_factor_passcode=Přístupový kód ověření
+login_two_factor_enter_recovery_code=Zadejte obnovovací kód dvoufaktorového ověření
+login_two_factor_recovery=Obnovení dvoufaktorového ověření
+login_two_factor_recovery_code=Obnovovací kód
+login_two_factor_enter_passcode=Zadejte přístupový kód dvoufaktorového ověření
+login_two_factor_invalid_recovery_code=Obnovovací kód již byl použit nebo není platný.
[mail]
-activate_account=Prosíme, aktivujte si váš účet
+activate_account=Prosím, aktivujte si váš účet
activate_email=Ověřte vaši e-mailovou adresu
reset_password=Obnova vašeho hesla
-register_success=Vítejte, registrace vašeho účtu se zdařila
+register_success=Vítejte, váš účet byl zaregistrován
register_notify=Vítejte
[modal]
@@ -182,7 +203,7 @@ RepoName=Název repositáře
Email=E-mailová adresa
Password=Heslo
Retype=Zadejte znovu heslo
-SSHTitle=Název klíče SSH
+SSHTitle=Název SSH klíče
HttpsUrl=HTTPS URL
PayloadUrl=URL nákladu
TeamName=Název týmu
@@ -197,17 +218,18 @@ TreeName=Cesta k souboru
Content=Obsah
require_error=` nemůže být prázdný.`
-alpha_dash_error=` musí být pouze písmena, číslice či znaky - a _ .`
-alpha_dash_dot_error=` musí být pouze písmena, číslice, tečka či znaky - a _ .`
-size_error=` musí být minimálně velikosti %s.`
+alpha_dash_error=` smí obsahovat pouze písmena, číslice, pomlčku a podtržítko.`
+alpha_dash_dot_error=` smí obsahovat pouze písmena, číslice, tečku, čárku, pomlčku a podtržítko.`
+alpha_dash_dot_slash_error=` smí obsahovat pouze písmena, číslice, tečku, čárku, pomlčku, podtržítko a lomítko.`
+size_error=` musí mít velikost %s.`
min_size_error=` musí obsahovat nejméně %s znaků.`
max_size_error=` musí obsahovat maximálně %s znaků.`
-email_error=` není správná e-mailová adresa.`
-url_error=` není správná URL.`
+email_error=` není platná e-mailová adresa.`
+url_error=` není platná URL.`
include_error=` musí obsahovat řetězec '%s'.`
unknown_error=Neznámá chyba:
captcha_incorrect=Zadaná CAPTCHA se neshoduje.
-password_not_match=Heslo a znovu zadané heslo nejsou shodné.
+password_not_match=Heslo a jeho potvrzení se neshodují.
username_been_taken=Uživatelské jméno je již obsazeno.
repo_name_been_taken=Název repositáře je již obsazen.
@@ -215,26 +237,27 @@ org_name_been_taken=Název organizace je již obsazen.
team_name_been_taken=Název týmu je již obsazen.
email_been_used=E-mailová adresa je již použita.
username_password_incorrect=Chybné uživatelské jméno nebo heslo.
+auth_source_mismatch=Vybraný zdroj ověření není propojen s uživatelem.
enterred_invalid_repo_name=Ujistěte se, prosím, že zadaný název repositáře je správný.
enterred_invalid_owner_name=Ujistěte se, prosím, že jméno vlastníka je zadáno správně.
enterred_invalid_password=Ujistěte se, prosím, že zadané heslo je správné.
user_not_exist=Zadaný uživatel neexistuje.
-last_org_owner=Odstranění posledního uživatele z týmu vlastníka není dovoleno, neboť vždy musí v každé organizaci existovat jeden vlastník.
+last_org_owner=Odstranění posledního uživatele z týmu vlastníků není dovoleno, protože každá organizace musí mít alespoň jednoho vlastníka.
-invalid_ssh_key=Omlouváme se, ale není možné ověřit váš klíč SSH: %s
-unable_verify_ssh_key=Gogs nemohl ověřit váš klíč SSH, ale předpokládáme, že je platný, nicméně zkontrolujte jej prosím.
+invalid_ssh_key=Omlouváme se, ale váš SSH klíč není možné ověřit: %s
+unable_verify_ssh_key=Gogs nemohl ověřit váš SSH klíč, ale budeme předpokládat, že je platný. Přesto ho prosím zkontrolujte.
auth_failed=Ověření selhalo: %v
-still_own_repo=Váš účet stále vlastní minimálně jeden repositář. Musíte je nejdříve smazat nebo předat.
-still_has_org=Váš účet je stále členem minimálně jedné organizace. Je nutné ji nejdříve opustit nebo smazat vaše členství.
+still_own_repo=Váš účet stále vlastní nějaké repositáře. Nejdříve je musíte smazat nebo někomu předat.
+still_has_org=Váš účet je stále členem nějaké organizace. Je nutné ji nejdříve opustit nebo se vzdát členství.
org_still_own_repo=Tato organizace stále vlastní repositáře, musíte je nejdříve smazat nebo předat.
target_branch_not_exist=Cílová větev neexistuje.
[user]
change_avatar=Změnit vaši uživatelskou ikonu
-join_on=Připojil se dne
-repositories=Repositáře
+join_on=Zaregistroval se dne
+repositories=Repozitáře
activity=Veřejná aktivita
followers=Sledující
starred=Oblíbené repositáře
@@ -242,19 +265,18 @@ following=Sledovaní
follow=Sledovat
unfollow=Přestat sledovat
-form.name_reserved=Uživatelské jméno '%s' je rezervováno.
-form.name_pattern_not_allowed=Vzor uživatelského jména '%s' není povolen.
+form.name_not_allowed=User name or pattern %q is not allowed.
[settings]
profile=Profil
password=Heslo
avatar=Uživatelská ikona
-ssh_keys=Klíče SSH
-social=Sociální účty
-applications=Aplikace
+ssh_keys=SSH klíče
+security=Bezpečnost
+repos=Repositáře
orgs=Organizace
+applications=Aplikace
delete=Smazat účet
-uid=UID
public_profile=Veřejný profil
profile_desc=Vaše e-mailová adresa je veřejná a bude použita pro upozornění vztahující se k vašemu účtu a jakékoliv operaci, která se provede pomocí systému.
@@ -263,17 +285,17 @@ full_name=Celé jméno
website=Web
location=Místo
update_profile=Změnit profil
-update_profile_success=Váš profil byl úspěšně změněn.
+update_profile_success=Váš profil byl změněn.
change_username=Uživatelské jméno změněno
change_username_prompt=Tato změna ovlivní vztah odkazů k vašemu účtu.
continue=Pokračovat
cancel=Zrušit
lookup_avatar_by_mail=Vyhledávat uživatelskou ikonu podle emailu
-federated_avatar_lookup=Federated Avatar Lookup
+federated_avatar_lookup=Vyhledání ikon uživatelů ve veřejných zdrojích
enable_custom_avatar=Povolit uživatelskou ikonu uživatele
choose_new_avatar=Vybrat novou ikonu uživatele
-update_avatar=Aktualizovat nastavení ikony uživatele
+update_avatar=Změnit nastavení ikony uživatele
delete_current_avatar=Smazat aktuální ikonu uživatele
uploaded_avatar_not_a_image=Nahraný soubor není obrázkem.
update_avatar_success=Nastavení vaší ikony uživatele bylo změněno.
@@ -281,9 +303,9 @@ update_avatar_success=Nastavení vaší ikony uživatele bylo změněno.
change_password=Změna hesla
old_password=Stávající heslo
new_password=Nové heslo
-retype_new_password=Zadat znovu heslo
+retype_new_password=Zadat znovu nové heslo
password_incorrect=Zadané heslo není správné.
-change_password_success=Vaše heslo bylo úspěšně změněno. Nyní se můžete přihlásit pomocí tohoto nového hesla.
+change_password_success=Vaše heslo bylo změněno. Nyní se můžete přihlásit pomocí tohoto nového hesla.
password_change_disabled=Uživatelé, kteří jsou ověřováni jinak než lokálně, si nemohou změnit heslo.
emails=E-mailová adresa
@@ -294,48 +316,81 @@ primary_email=Nastavit jako hlavní
delete_email=Smazat
email_deletion=Smazání e-mailové adresy
email_deletion_desc=Smazání této e-mailové adresy odstraní návazné informace z vašeho účtu. Chcete pokračovat?
-email_deletion_success=E-mailová adresa byla úspěšně smazána!
+email_deletion_success=E-mailová adresa byla smazána!
+email_deletion_primary=Cannot delete primary email address.
add_new_email=Přidat novou e-mailovou adresu
add_email=Přidat e-mailovou adresu
-add_email_confirmation_sent=Nový e-mail pro potvrzení byl odeslán na adresu '%s', prosíme zkontrolujte si vaši doručenou poštu během následujících %d hodin pro dokončení procesu potvrzení.
-add_email_success=Vaše nová e-mailová adresa byla úspěšně přidána.
+add_email_confirmation_sent=Nový potvrzovací e-mail byl odeslán na adresu '%s', prosím zkontrolujte si vaši doručenou poštu během následujících %d hodin pro dokončení procesu potvrzení.
+add_email_success=Vaše nová e-mailová adresa byla přidána.
-manage_ssh_keys=Správa klíčů SSH
+manage_ssh_keys=Správa SSH klíčů
add_key=Přidat klíč
-ssh_desc=Toto je seznam klíčů SSH vašeho účtu. Jelikož tyto samotné klíče umožňují přístup k vašim repositářům, je velmi důležité, abyste je rozpoznal.
-ssh_helper=Nevíte jak? Podívejte se do příručky GitHubu na to vytvoření vlastních klíčů SSH nebo vyřešte bežné problémy, se kterými se můžete potkat při použití SSH.
-add_new_key=Přidat klíč SSH
+ssh_desc=Toto je seznam SSH klíčů vašeho účtu. Jelikož SSH klíče umožňují komukoliv plný přístup k vašim repositářům, je velmi důležité, abyste si byli jistí, že jsou skutečně vaše.
+ssh_helper=Nevíte jak? Podívejte se do příručky GitHubu jak si vytvořit vlastní SSH klíč, nebo na řešení častých problémů, na které můžete narazit při používání SSH.
+add_new_key=Přidat SSH klíč
ssh_key_been_used=Obsah veřejného klíče byl použit.
ssh_key_name_used=Veřejný klíč se stejným jménem již existuje.
key_name=Název klíče
key_content=Obsah
-add_key_success=Nový klíč SSH '%s' byl úspěšně přidán!
+add_key_success=Byl přidán nový SSH klíč '%s'!
delete_key=Smazat
-ssh_key_deletion=Smazání klíče SSH
-ssh_key_deletion_desc=Smazání tohoto klíče SSH odstraní přístup k vašemu účtu. Chcete pokračovat?
-ssh_key_deletion_success=Klíč SSH byl úspěšně smazán!
-add_on=Přidáno dne
-last_used=Naposledy použito dne
+ssh_key_deletion=Smazání SSH klíče
+ssh_key_deletion_desc=Smazání tohoto klíče SSH odstraní všechny související přístupy k vašemu účtu. Chcete pokračovat?
+ssh_key_deletion_success=SSH klíč byl úspěšně smazán!
+add_on=Přidán dne
+last_used=Naposledy použit dne
no_activity=Žádná aktuální aktivita
key_state_desc=Tento klíč je používán posledních 7 dní
token_state_desc=Tato poukázka je používána posledních 7 dní
-manage_social=Správa propojených sociálních účtů
-social_desc=Toto je seznam propojených sociálních účtů. Odpojte kterékoliv připojení, které nepoznáváte.
-unbind=Odpojit
-unbind_success=Sociální účet byl odpojen.
+two_factor=Dvoufaktorové ověření
+two_factor_status=Stav:
+two_factor_on=Zapnuto
+two_factor_off=Vypnuto
+two_factor_enable=Povoleno
+two_factor_disable=Zakázáno
+two_factor_view_recovery_codes=Uložte vaše obnovovací kódy na bezpečném místě. Můžete je použít jako přístupové kódy v případě, kdy ztratíte přístup k vaší ověřovací aplikaci.
+two_factor_http=Již nebudete mít možnost použít vaše přihlašovací údaje pro operace přes HTTP/HTTPS. Prosíme, vytvořte a používejte osobní přístupové poukázky jako vaše přístupové údaje, např. %[3]s.
+two_factor_enable_title=Povolit dvoufaktorové ověřování
+two_factor_scan_qr=Prosím, použijte vaši ověřovací aplikaci pro naskenování tohoto obrázku:
+two_factor_or_enter_secret=Nebo zadejte tajný kód:
+two_factor_then_enter_passcode=Pak zadejte přístupový kód:
+two_factor_verify=Ověřit
+two_factor_invalid_passcode=Zadaný přístupový kód není platný, prosím, zkuste to znova!
+two_factor_reused_passcode=Kód, který jste zadali už byl použit. Prosím, zkuste jiný!
+two_factor_enable_error=Povolení dvoufaktorového ověření selhalo: %v
+two_factor_enable_success=Dvoufaktorové ověření bylo pro váš účet povoleno!
+two_factor_recovery_codes_title=Obnovovací kódy dvoufaktorového ověření
+two_factor_recovery_codes_desc=Obnovovací kódy se používají, když dočasně ztratíte přístup k vaší ověřovací aplikaci. Každý obnovovací kód může být použit pouze jednou, prosím, uchovejte tyto kódy na bezpečném míste.
+two_factor_regenerate_recovery_codes=Vygenerovat znovu obnovovací kódy
+two_factor_regenerate_recovery_codes_error=Vygenerování obnovovacích kódů selhalo: %v
+two_factor_regenerate_recovery_codes_success=Nové obnovovací kódy byly vygenerovány!
+two_factor_disable_title=Zakázat dvoufaktorové ověření
+two_factor_disable_desc=Úroveň zabezpečení vaše účtu se s vypnutím dvoufaktorového ověření sníží. Chcete pokračovat?
+two_factor_disable_success=Dvoufaktorové ověření bylo zakázáno!
manage_access_token=Správa osobních přístupových poukázek
generate_new_token=Vygenerovat novou poukázku
tokens_desc=Poukázky, které jste vygeneroval, mohou být použity pro přístup k Gogs API.
+access_token_tips=The personal access token may be used as either username or password. It is recommended to use the "x-access-token" as the username and the personal access token as the password for Git applications.
new_token_desc=Každá poukázka má úplný přístup k vašemu účtu.
token_name=Název poukázky
generate_token=Vygenerovat poukázku
-generate_token_succees=Vaše přístupová poukázka byl úspěšně vygenerován. Nyní si ji zkopírujte, neboť později to již nebude možné!
+generate_token_succees=Vaše přístupová poukázka byl vygenerována. Nyní si ji zkopírujte, neboť později to již nebude možné!
delete_token=Smazat
access_token_deletion=Smazání osobní přístupové poukázky
-access_token_deletion_desc=Smazáním této osobní přístupové poukázky odstraní všechen návazný přístup aplikace. Chcete pokračovat?
-delete_token_success=Osobní přístupová poukázka byla úspěšně odstraněna! Nezapomeňte také aktualizovat vaši aplikaci.
+access_token_deletion_desc=Smazáním této osobní přístupové poukázky odstraní všechen související přístup aplikace. Chcete pokračovat?
+delete_token_success=Osobní přístupová poukázka byla odstraněna! Nezapomeňte také změnit nastavení vaší aplikace.
+token_name_exists=Poukázka se stejným jménem již existtuje.
+
+orgs.none=Nejste členem žádné organizace.
+orgs.leave_title=Opustit organizaci
+orgs.leave_desc=Opuštěním organizace ztratíte přístup do všech jejích repositářů a k jejích týmům. Chcete pokračovat?
+
+repos.leave=Opustit
+repos.leave_title=Opustit repositář
+repos.leave_desc=Potom, co opustíte repositář, ztratíte k němu přístup. Chcete pokračovat?
+repos.leave_success=Opustil jste repositář '%s'!
delete_account=Smazat váš účet
delete_prompt=Tato operace permanentně smaže váš účet a tato změna nemůže být vrácena!
@@ -348,7 +403,9 @@ owner=Vlastník
repo_name=Název repositáře
repo_name_helper=Dobrý název repositáře se většinou skládá z krátkých, zapamatovatelných a unikátních klíčových slov.
visibility=Viditelnost
+unlisted=Unlisted
visiblity_helper=Tento repositář je soukromý
+unlisted_helper=This repository is Unlisted
visiblity_helper_forced=Správce vynutil na všech nových repositářích, aby byly soukromé
visiblity_fork_helper=(Změna této hodnoty ovlivní všechny repositáře rozštěpení)
clone_helper=Potřebujete pomoci s klonováním? Navštivte nápovědu!
@@ -362,11 +419,11 @@ license=Licence
license_helper=Vyberte licenční soubor
readme=Soubor README
readme_helper=Vyberte šablonu souboru README
-auto_init=Inicializovat tento repositář s vybranými soubory a šablonou
+auto_init=Založit tento repositář s vybranými soubory a šablonou
create_repo=Vytvořit repositář
default_branch=Výchozí větev
mirror_prune=Vyčistit
-mirror_prune_desc=Remove any remote-tracking references that no longer exist on the remote
+mirror_prune_desc=Odstranit odkazy sledování vzdálených větví, které již ve vzdáleném repositáři neexistují
mirror_interval=Odstup zrcadlení (hodina)
mirror_address=Adresa zrcadla
mirror_address_desc=Prosím, přidejte do adresy potřebné přihlašovací údaje.
@@ -374,24 +431,26 @@ mirror_last_synced=Naposledy synchronizováno
watchers=Sledující
stargazers=Sledující
forks=Rozštěpení
+repo_description_helper=Popis repozitáře. Maximální délka 512 znaků.
+repo_description_length=Dostupné znaky
form.reach_limit_of_creation=Vlastník dosáhl maximálního počtu %d vytvořených repositořů.
-form.name_reserved=Název repositáře '%s' je rezervován.
-form.name_pattern_not_allowed=Vzor názvu repositáře '%s' není povolen.
+form.name_not_allowed=Repository name or pattern %q is not allowed.
need_auth=Ověření je vyžadováno
-migrate_type=Typ migrace
+migrate_type=Typ přenesení
migrate_type_helper=Tento repositář bude zrcadlem
migrate_repo=Přenést repositář
migrate.clone_address=Naklonovat adresu
-migrate.clone_address_desc=Tím může být HTTP/HTTPS/GIT URL nebo cesta k lokálnímu serveru.
-migrate.permission_denied=Není dovoleno importovat místní repositáře.
+migrate.clone_address_desc=Toto může být HTTP/HTTPS/GIT URL.
+migrate.clone_address_desc_import_local=Máte povoleno přenést repositář pomocí lokální cesty na serveru.
+migrate.permission_denied=Není vám dovoleno importovat místní repositáře.
migrate.invalid_local_path=Neplatná místní cesta, buď neexistuje nebo není adresářem.
+migrate.clone_address_resolved_to_blocked_local_address=Clone address resolved to a local network address that is implicitly blocked.
migrate.failed=Přenesení selhalo: %v
mirror_from=zrcadlo
forked_from=rozštěpen z
-fork_from_self=Nemůžete rozštěpit repositář, který již vlastníte!
copy_link=Kopie
copy_link_success=Zkopírováno!
copy_link_error=Pro zkopírování stiskněte ⌘-C nebo Ctrl-C
@@ -406,26 +465,37 @@ no_desc=Bez popisu
quick_guide=Krátká příručka
clone_this_repo=Naklonovat tento repositář
create_new_repo_command=Vytvořit nový repositář v příkazové řádce
-push_exist_repo=Nahrát existující repositář z příkazové řádky
-repo_is_empty=Tento repositář je prázdný, prosíme, vraťte se brzo zpátky!
+push_exist_repo=Odeslat existující repositář z příkazové řádky
+bare_message=Tento repositář ještě nemá obsah.
-code=Zdrojový kód
+files=Soubory
branch=Větev
tree=Strom
filter_branch_and_tag=Filtr pro větev nebo značku
branches=Větve
tags=Značky
issues=Úkoly
-pulls=Požadavky na natažení
+pulls=Pull Requesty
labels=Štítky
-milestones=Mezníky
+milestones=Milníky
commits=Revize
+git_branches=Větve
releases=Vydání
file_raw=Surový
file_history=Historie
file_view_raw=Zobrazit v surovém stavu
file_permalink=Trvalý odkaz
file_too_large=Tento soubor je příliš velký pro zobrazení
+video_not_supported_in_browser=Váš prohlížeč nepodporuje značku pro HTML5 video.
+
+branches.overview=Přehled
+branches.active_branches=Aktivní větve
+branches.stale_branches=Zastaralé větve
+branches.all=Všechny větve
+branches.updated_by=%[2]s změnil %[1]s
+branches.change_default_branch=Změnit výchozí větev
+branches.default_deletion_not_allowed=Cannot delete the default branch.
+branches.protected_deletion_not_allowed=Cannot delete a protected branch.
editor.new_file=Nový soubor
editor.upload_file=Nahrát soubor
@@ -434,37 +504,40 @@ editor.preview_changes=Náhled změn
editor.cannot_edit_non_text_files=Netextové soubory není možné upravovat
editor.edit_this_file=Upravit tento soubor
editor.must_be_on_a_branch=Musíte mít zvolenu větev pro úpravu či návrh změn tohoto souboru
-editor.fork_before_edit=Musíte provést rozvětvení repositáře před úpravou souboru
-editor.delete_this_file=Odstranit tento soubor
+editor.fork_before_edit=Musíte provést rozštěpení repositáře před úpravou souboru
+editor.delete_this_file=Smazat tento soubor
editor.must_have_write_access=Musíte mít přístup pro zápis pro dělání či navrhování změn tohoto souboru
-editor.file_delete_success=Soubor '%s' byl úspěšně odstraněn!
+editor.file_delete_success=Soubor '%s' byl smazán!
editor.name_your_file=Pojmenujte váš soubor...
-editor.filename_help=To add directory, just type it and press /. To remove a directory, go to the beginning of the field and press backspace.
+editor.filename_help=Pro vložení adresáře prostě napište jméno a přidejte /. K odstranění adresáře běžte na začátek pole a stiskněte backspace.
editor.or=nebo
editor.cancel_lower=zrušit
-editor.commit_changes=Uložit změny revize
+editor.commit_changes=Zapsat změny revize
editor.add_tmpl=Přidat '%s/'
editor.add=Přidat '%s'
-editor.update=Aktualizovat "%s"
+editor.update=Změnit "%s"
editor.delete=Smazat '%s'
editor.commit_message_desc=Přidat dobrovolný rozšířený popis...
-editor.commit_directly_to_this_branch=Uložte změny revize přímo do větve %s.
-editor.create_new_branch=Vytvořit novou větev pro tuto revizi a spustit požadavek na stažení.
+editor.commit_directly_to_this_branch=Zapište změny revize přímo do větve %s.
+editor.create_new_branch=Vytvořit novou větev pro tuto revizi a vytvořit požadavek na natažení.
editor.new_branch_name_desc=Nový název větve...
editor.cancel=Zrušit
editor.filename_cannot_be_empty=Název souboru nemůže být prázdný.
editor.branch_already_exists=Repositář větev '%s' již obsahuje.
-editor.directory_is_a_file=Entry '%s' in the parent path is a file not a directory in this repository.
-editor.filename_is_a_directory=The filename '%s' is an existing directory in this repository.
-editor.file_editing_no_longer_exists=The file '%s' you are editing no longer exists in the repository.
-editor.file_changed_while_editing=Obsah souboru se změnil od začátku úprav. Klepnutím sem zobrazíte, co se změnilo, nebo stiskněte potvrdit znovu pro přepsání změn.
-editor.file_already_exists=A file with name '%s' already exists in this repository.
-editor.no_changes_to_show=There are no changes to show.
-editor.fail_to_update_file=Failed to update/create file '%s' with error: %v
+editor.directory_is_a_file=Položka '%s' v nadřazené cestě je v tomto repositáři soubor, ne adresář.
+editor.file_is_a_symlink=Soubor '%s' je symbolický odkaz a nemůže být změněn pomocí webového editoru.
+editor.filename_is_a_directory=Jméno souboru '%s' v tomto repositáři koliduje se jménem adresáře.
+editor.file_editing_no_longer_exists=Soubor '%s', který upravujete, již v tomto repositáři neexistuje.
+editor.file_changed_while_editing=Obsah souboru se změnil od začátku úprav. Klepnutím sem zobrazíte, co se změnilo, nebo stiskněte Znovu zapsat změny pro přepsání změn.
+editor.file_already_exists=Soubor '%s' již v tomto repositáři existuje.
+editor.no_changes_to_show=Žádné změny k zobrazení.
+editor.fail_to_update_file=Vytvoření nebo změna souboru '%s' skončila chybou: %v
+editor.fail_to_delete_file=Nepodařilo se smazat soubor '%s' kvůli chybě: %v
editor.add_subdir=Přidat podadresář...
-editor.unable_to_upload_files=Nepodařilo se nahrát soubor '%s'. Chyba: %v
+editor.unable_to_upload_files=Nepodařilo se nahrát soubor do '%s'. Chyba: %v
editor.upload_files_to_dir=Nahrát soubory do '%s'
+commits.commit_history=Historie revizí
commits.commits=Revize
commits.search=Hledání revizí
commits.find=Hledat
@@ -491,7 +564,7 @@ issues.new_label=Nový štítek
issues.new_label_placeholder=Název štítku...
issues.create_label=Vytvořit štítek
issues.label_templates.title=Nahrát předdefinovanou sadu značek
-issues.label_templates.info=Nejsou zadány žádné značky. Pro vytvoření nové klikněte na tlačítko Nová značka nebo použijte předdefinovanou sadu.
+issues.label_templates.info=Nejsou zadány žádné značky. Pro vytvoření nové klikněte na tlačítko "Nová značka" nebo použijte předdefinovanou sadu.
issues.label_templates.helper=Vyberte sadu značek
issues.label_templates.use=Použít tuto sadu značek
issues.label_templates.fail_to_load_file=Nepodařilo se nahrát soubor šablony značek '%s': %v
@@ -511,16 +584,16 @@ issues.filter_type.mentioning_you=Zmiňující vás
issues.filter_sort=Seřadit
issues.filter_sort.latest=Nejnovější
issues.filter_sort.oldest=Nejstarší
-issues.filter_sort.recentupdate=Nedávno aktualizované
-issues.filter_sort.leastupdate=Nejdřívější změny
+issues.filter_sort.recentupdate=Nedávno změněné
+issues.filter_sort.leastupdate=Poslední změny
issues.filter_sort.mostcomment=Nejvíce komentované
issues.filter_sort.leastcomment=Nejméně komentované
issues.opened_by=otevřeno %[1]s uživatelem %[3]s
issues.opened_by_fake=otevřeno %[1]s uživatelem %[2]s
issues.previous=Předchozí
issues.next=Další
-issues.open_title=otevřený
-issues.closed_title=zavřený
+issues.open_title=Otevřený
+issues.closed_title=Zavřený
issues.num_comments=%d komentářů
issues.commented_at=`okomentoval %s`
issues.delete_comment_confirm=Jste si jist, že chcete smazat tento komentář?
@@ -536,7 +609,7 @@ issues.commit_ref_at=`odkázal na tento úkol z revize Přihlašte se pro zapojení do konverzace.
+issues.sign_in_require_desc=Přihlaste se pro zapojení do konverzace.
issues.edit=Upravit
issues.cancel=Zrušit
issues.save=Uložit
@@ -549,19 +622,20 @@ issues.label_delete=Smazat
issues.label_modify=Změna štítku
issues.label_deletion=Smazání štítku
issues.label_deletion_desc=Smazání tohoto štítku jej smaže také ze všech návazných úkolech. Chcete pokračovat?
-issues.label_deletion_success=Štítek byl úspěšně smazán!
+issues.label_deletion_success=Štítek byl smazán!
issues.num_participants=%d účastníků
issues.attachment.open_tab=`Klikněte pro zobrazení "%s" v nové záložce`
issues.attachment.download=`Klikněte pro stažení "%s"`
pulls.new=Nový požadavek na natažení
pulls.compare_changes=Porovnat změny
-pulls.compare_changes_desc=Porovnat dvě větve a vytvořit pro změny žádost na natažení.
-pulls.compare_base=základní
+pulls.compare_changes_desc=Porovnat dvě větve a vytvořit pro změny požadavek na natažení.
+pulls.compare_base=základ
pulls.compare_compare=porovnat
pulls.filter_branch=Filtrovat větev
pulls.no_results=Nebyly nalezeny žádné výsledky.
-pulls.nothing_to_compare=Není co porovnávat, protože základní a hlavní větve jsou shodné.
+pulls.nothing_to_compare=Není co porovnávat, protože základ a hlavní větve jsou shodné.
+pulls.nothing_merge_base=Není co porovnávat, protože tyto dvě větve mají úplně jinou historii.
pulls.has_pull_request=`Požadavek na natažení mezi těmito větvemi již existuje: %[2]s#%[3]d`
pulls.create=Vytvořit požadavek na natažení
pulls.title_desc=chce sloučit %[1]d revizí z větve %[2]s do větve %[3]s
@@ -569,22 +643,27 @@ pulls.merged_title_desc=sloučil %[1]d revizí z větve %[2]s do v
pulls.tab_conversation=Konverzace
pulls.tab_commits=Revize
pulls.tab_files=Změněné soubory
-pulls.reopen_to_merge=Prosíme, otevřete znovu tento požadavek na natažení, aby se provedla operace sloučení.
+pulls.reopen_to_merge=Prosím, znovuotevřete tento požadavek na natažení, aby se provedla operace sloučení.
pulls.merged=Sloučený
-pulls.has_merged=Tento požadavek na natažení byl úspěšně sloučen!
-pulls.data_broken=Data této žádosti na natažení byla narušena z důvodu smazání informací o rozštěpení.
-pulls.is_checking=Kontrola konfliktů stále pokračuje, prosíme obnovte za několik okamžiků stránku.
+pulls.has_merged=Tento požadavek na natažení byl sloučen!
+pulls.data_broken=Data tohoto požadavku na natažení byla narušena z důvodu smazání informace o rozštěpení.
+pulls.is_checking=Kontrola rozporů stále pokračuje, prosím obnovte za několik okamžiků stránku.
pulls.can_auto_merge_desc=Tento požadavek na natažení může být automaticky sloučen.
-pulls.cannot_auto_merge_desc=Tento požadavek na natažení nemůže být automaticky sloučen, neboť se v něm nachází konflikty.
-pulls.cannot_auto_merge_helper=Prosíme proveďte sloučení ručně, aby byly vyřešeny konflitky.
-pulls.merge_pull_request=Sloučit požadavek na stažení
-pulls.open_unmerged_pull_exists=`Nemůžete znovuotevřít požadavek na stažení, neboť požadavek na stažení ze stejného repositáře se stejnými informacemi pro sloučení již existuje (#%d).`
+pulls.cannot_auto_merge_desc=Tento požadavek na natažení nemůže být automaticky sloučen, neboť se v něm nachází rozpory.
+pulls.cannot_auto_merge_helper=Prosím proveďte sloučení ručně, aby byly vyřešeny rozpory.
+pulls.create_merge_commit=Vytvořit slučovací commit
+pulls.rebase_before_merging=Rebase před slučováním
+pulls.commit_description=Popis Commitu
+pulls.merge_pull_request=Sloučit požadavek na natažení
+pulls.open_unmerged_pull_exists=`Nemůžete znovuotevřít požadavek na natažení, neboť požadavek na natažení ze stejného repositáře se stejnými informacemi pro sloučení již existuje (#%d) a čeká na sloučení.`
+pulls.delete_branch=Smazat větev
+pulls.delete_branch_has_new_commits=Větev nemůže být smazána, neboť po sloučení jsou v ní nové revize.
milestones.new=Nový milník
milestones.open_tab=%d otevřených
milestones.close_tab=%d zavřených
-milestones.closed=Zavřen dne %s
-milestones.no_due_date=Bez lhůty dokončení
+milestones.closed=Zavřen %s
+milestones.no_due_date=Bez termínu dokončení
milestones.open=Otevřít
milestones.close=Zavřít
milestones.new_subheader=Vytvořte milníky k organizaci vašich úkolů.
@@ -593,34 +672,34 @@ milestones.title=Název
milestones.desc=Popis
milestones.due_date=Termín (volitelný)
milestones.clear=Zrušit
-milestones.invalid_due_date_format=Formát data termínu je neplatný, musí být 'yyyy-mm-dd'.
-milestones.create_success=Milník '%s' byl úspěšně vytvořen!
+milestones.invalid_due_date_format=Formát data termínu je neplatný, musí být 'rrrr-mm-dd'.
+milestones.create_success=Milník '%s' byl vytvořen!
milestones.edit=Upravit milník
-milestones.edit_subheader=Zadejte lepší popis milníků, aby lidé nebyli zmateni.
+milestones.edit_subheader=Zadejte lepší popis milníků pro snazší orientaci ostatních.
milestones.cancel=Zrušit
milestones.modify=Změnit milník
-milestones.edit_success=Změny milníku '%s' byly úspěšně uloženy!
+milestones.edit_success=Změny milníku '%s' byly uloženy!
milestones.deletion=Smazání milníku
-milestones.deletion_desc=Smazání tohoto milníku jej smaže také ze všech návazných úkolech. Chcete pokračovat?
-milestones.deletion_success=Milník byl úspěšně smazán!
+milestones.deletion_desc=Smazání tohoto milníku jej smaže také ze všech návazných úkolů. Chcete pokračovat?
+milestones.deletion_success=Milník byl smazán!
wiki=Wiki
wiki.welcome=Vítejte ve Wiki!
-wiki.welcome_desc=Wiki je místo pro vaši společnou dokumentaci projektu a návodů jak jej zlepšit.
+wiki.welcome_desc=Wiki je místo pro vaši společnou dokumentaci projektu a návody, jak jej zlepšit.
wiki.create_first_page=Vytvořte první stránku
wiki.page=Stránka
wiki.filter_page=Filtr stránky
wiki.new_page=Vytvořit novou stránku
-wiki.default_commit_message=Napište (volitelnou) poznámku k této úpravě.
+wiki.default_commit_message=Napište (volitelnou) poznámku k této změně.
wiki.save_page=Uložit stránku
wiki.last_commit_info=%s upravil tuto stránku %s
-wiki.edit_page_button=Změnit stránku
+wiki.edit_page_button=Upravit
wiki.new_page_button=Nová stránka
wiki.delete_page_button=Smazat stránku
wiki.delete_page_notice_1=Toto smaže stránku "%s". Buďte si prosím jisti.
wiki.page_already_exists=Stránka Wiki se stejným názvem již existuje.
wiki.pages=Stránky
-wiki.last_updated=Naposledy aktualizováno: %s
+wiki.last_updated=Naposledy změněné: %s
settings=Nastavení
settings.options=Možnosti
@@ -629,6 +708,29 @@ settings.collaboration.admin=Správce
settings.collaboration.write=Zápis
settings.collaboration.read=Čtení
settings.collaboration.undefined=Neurčeno
+settings.branches=Větve
+settings.branches_bare=Nemůžete spravovat větve pro holý repositář. Prosím, odešlete nejdříve nějaký obsah.
+settings.default_branch=Výchozí větev
+settings.default_branch_desc=Výchozí větev je považována za "hlavní" větev pro zápisy změn revizí, požadavky na natažení a on-line úpravy.
+settings.update=Změnit
+settings.update_default_branch_unsupported=Změna výchozí větve není podporována verzí Gitu, která je na serveru.
+settings.update_default_branch_success=Výchozí větev tohoto repositáře byla změněna!
+settings.protected_branches=Chráněné větve
+settings.protected_branches_desc=Ochrana větví před vynuceným odesláním, náhodným smazáním a uživateli na schváleném seznamu.
+settings.choose_a_branch=Vyberte větev...
+settings.branch_protection=Ochrana větví
+settings.branch_protection_desc=Prosím vyberte možnosti ochrany větve %s.
+settings.protect_this_branch=Chránit tuto větev
+settings.protect_this_branch_desc=Vypnout vynucená odeslání a zabránit smazání.
+settings.protect_require_pull_request=Vyžaduje požadavek na natažení místo přímého odeslání
+settings.protect_require_pull_request_desc=Tato možnost zakáže přímé odeslání do větve. Revize musí být odeslány do jiné nechráněné větve a sloučeny do této větvě pomocí požadavku na natažení.
+settings.protect_whitelist_committers=Seznam uživatelů, kteří mohou odesílat do této větve
+settings.protect_whitelist_committers_desc=Přidejte uživatele a týmy, které mají povolení odesílat do této větve. Tito uživatelé mohou obejít kontrolu na požadavek na natažení.
+settings.protect_whitelist_users=Uživatelé, kteří mohou odesílat do této větvě
+settings.protect_whitelist_search_users=Vyhledat uživatele
+settings.protect_whitelist_teams=Týmy, jejichž členové mohou odesílat do této větve
+settings.protect_whitelist_search_teams=Vyhledat týmy
+settings.update_protect_branch_success=Možnosti ochrany této větve byly změněny!
settings.hooks=Webové háčky
settings.githooks=Háčky Gitu
settings.basic_settings=Základní nastavení
@@ -641,44 +743,51 @@ settings.change_reponame_prompt=Tato změna ovlivní vztah odkazů k repositář
settings.advanced_settings=Pokročilá nastavení
settings.wiki_desc=Povolit systém Wiki
settings.use_internal_wiki=Použít vestavěný systém Wiki
+settings.allow_public_wiki_desc=Povolit veřejný přístup k wiki, přestože se jedná o soukromý repositář
settings.use_external_wiki=Používat externí Wiki
settings.external_wiki_url=URL externí Wiki
-settings.external_wiki_url_desc=Návštěvníci budou při kliknutí na záložku přesměrování na tuto URL.
+settings.external_wiki_url_desc=Návštěvníci budou po kliknutí na danou záložku přesměrováni na tuto URL.
settings.issues_desc=Povolit systém úkolů
settings.use_internal_issue_tracker=Povolit věstavěný odlehčený systém úkolů
+settings.allow_public_issues_desc=Povolit veřejný přístup k úkolům, přestože se jedná o soukromý repositář
settings.use_external_issue_tracker=Použít externí systém úkolů
+settings.external_tracker_url=URL externí evidence úkolů
+settings.external_tracker_url_desc=Návštěvníci budou po kliknutí na danou záložku přesměrováni na tuto URL.
settings.tracker_url_format=Formát URL externího systému úkolů
-settings.tracker_issue_style=Styl pojmenování externího systému úkolů:
+settings.tracker_issue_style=Styl pojmenování úkolů v externím systému úkolů:
settings.tracker_issue_style.numeric=Číselný
settings.tracker_issue_style.alphanumeric=Alfanumerický
-settings.tracker_url_format_desc=Můžete použít zástupné výrazy {user} {repo} {index} pro uživatelské jméno, název repositáře a index úkolu.
-settings.pulls_desc=Povolit požadavky na stažení, aby veřejné příspěvky mohly být akceptovány
+settings.tracker_url_format_desc=Můžete použít zástupné výrazy {user} {repo} {index} pro uživatelské jméno, název repositáře a číslo úkolu.
+settings.pulls_desc=Enable pull requests to accept contributions between repositories and branches
+settings.pulls.ignore_whitespace=Ignorovat změny v netisknutelných znacích
+settings.pulls.allow_rebase_merge=Povolit použití rebase pro sloučení revizí
settings.danger_zone=Nebezpečná zóna
-settings.new_owner_has_same_repo=Nový vlastník již repositář se stejným názvem má. Vyberte, prosíme, jiné jméno.
+settings.cannot_fork_to_same_owner=Nemůžete rozštěpit repositář jejímu vlastníkovi.
+settings.new_owner_has_same_repo=Nový vlastník již repositář se stejným názvem má. Vyberte, prosím, jiné jméno.
settings.convert=Převést na běžný repositář
settings.convert_desc=Můžete převést toto zrcadlo na běžný repositář. Tato změna nemůže být vrácena.
settings.convert_notices_1=- Tato operace převede tento zrcadlový repositář na běžný repositář a tato změna nemůže být vrácena.
settings.convert_confirm=Potvrdit převod
-settings.convert_succeed=Repositář byl úspěšně převeden na běžný typ.
+settings.convert_succeed=Repositář byl převeden na běžný typ.
settings.transfer=Předat vlastnictví
settings.transfer_desc=Předat tento repositář jinému uživateli nebo organizaci, ve které jste správce.
settings.transfer_notices_1=- Ztratíte přístup, pokud nový vlastník je samostatný uživatel.
-settings.transfer_notices_2=- Přístup vám bude zachován, pokud nový vlastník je organizace a vy jste jedním z vlastníků.
+settings.transfer_notices_2=- Přístup vám bude zachován, pokud nový vlastník je organizace a vy jste jedním z jejích vlastníků.
settings.transfer_form_title=Zadejte prosím následující informace pro potvrzení operace:
settings.wiki_delete=Smazat data Wiki
settings.wiki_delete_desc=Pokud smažete data Wiki, nebude možné se vrátit. Buďte si, prosím, jist.
settings.wiki_delete_notices_1=- Toto smaže a vypne Wiki pro %s
-settings.wiki_deletion_success=Data Wiki tohoto repositáře byla úspěšně smazána.
+settings.wiki_deletion_success=Data Wiki tohoto repositáře byla smazána.
settings.delete=Smazat tento repositář
settings.delete_desc=Jakmile smažete repositář, není možné se vrátit. Buďte si, prosím, jist.
settings.delete_notices_1=- Tuto operaci nelze zvrátit.
settings.delete_notices_2=Tato operace permanentně smaže vše v tomto repositáři, včetně dat Gitu, úkolů, komentářů a přístupu spolupracovníků.
-settings.delete_notices_fork_1=- All forks will become independent after deletion.
-settings.deletion_success=Repositář byl úspěšně smazán!
-settings.update_settings_success=Možnosti repositáře byly úspěšně změněny.
+settings.delete_notices_fork_1=- Po smazání se všechny forky se stanou nezávislé.
+settings.deletion_success=Repositář byl smazán!
+settings.update_settings_success=Možnosti repositáře byly změněny.
settings.transfer_owner=Nový vlastník
settings.make_transfer=Předat
-settings.transfer_succeed=Repositář byl úspěšně předán.
+settings.transfer_succeed=Repositář byl předán.
settings.confirm_delete=Potvrdit smazání
settings.add_collaborator=Přidat nového spolupracovníka
settings.add_collaborator_success=Nový spolupracovník byl přidán.
@@ -688,66 +797,87 @@ settings.collaborator_deletion_desc=Tento uživatel po tom, co bude smazán, ji
settings.remove_collaborator_success=Spolupracovník byl smazán.
settings.search_user_placeholder=Hledat uživatele...
settings.org_not_allowed_to_be_collaborator=Není dovoleno přidat organizaci jako spolupracovníka.
-settings.user_is_org_member=Uživatel je již členem organizace, tudíž nemůže být přidán jako spolupracovník.
-settings.add_webhook=Přidat webový háček
settings.hooks_desc=Webové háčky jsou podobné základním spouštím HTTP POST událostí. Kdykoliv se něco stane v Gogs, bude postaráno o oznámení specifikovanému cílovému serveru. Více se o daném dozvíte v příručce webových háčků.
+settings.webhooks.add_new=Add a new webhook:
+settings.webhooks.choose_a_type=Choose a type...
+settings.add_webhook=Přidat webový háček
settings.webhook_deletion=Smazat webový háček
settings.webhook_deletion_desc=Smazáním tohoto webového háčku dojte také ke smazání veškerých informací o něm a také historie volání. Chcete pokračovat?
-settings.webhook_deletion_success=Webový háček byl úspěšně smazán!
+settings.webhook_deletion_success=Webový háček byl smazán!
settings.webhook.test_delivery=Test doručitelnosti
-settings.webhook.test_delivery_desc=Odeslat falešnou událost doručení nahrání pro test vašeho nastavení webových háčků
+settings.webhook.test_delivery_desc=Odeslat falešnou událost doručení odeslání pro test vašeho nastavení webových háčků
settings.webhook.test_delivery_success=Testovací webový háček byl přidán do fronty doručení. Bude to trvat několik sekund, než se ukáže v historii doručení.
+settings.webhook.redelivery=Opětovné doručení
+settings.webhook.redelivery_success=Úloha háčku '%s' byla znova přidána do doručovací fronty. Zabere to přibližně pár sekund, než bude změněn stav doručení v historii.
settings.webhook.request=Požadavek
settings.webhook.response=Odpověď
settings.webhook.headers=Hlavičky
settings.webhook.payload=Datová část
settings.webhook.body=Tělo zprávy
+settings.webhook.err_cannot_parse_payload_url=Cannot parse payload URL: %v
+settings.webhook.url_resolved_to_blocked_local_address=Payload URL resolved to a local network address that is implicitly blocked.
settings.githooks_desc=Jelikož háčky Gitu jsou spravovány Gitem samotným, můžete v seznamu níže upravit soubory podporovaných háčku k provádění uživatelských operací.
settings.githook_edit_desc=Je-li háček neaktivní, bude zobrazen vzorový obsah. Nebude-li zadán žádný obsah, háček bude vypnut.
settings.githook_name=Název háčku
settings.githook_content=Obsah háčku
-settings.update_githook=Upravit háček
+settings.update_githook=Změnit háček
settings.add_webhook_desc=Gogs zašle požadavek typu POST na zadanou URL, společně s informacemi o události, která nastala. Můžete také specifikovat, jaký datový formát se má použít po spuštění daného háčku (JSON, x-www-form-urlencoded, XML atp.). Více informací je k nalezení v našem Návodu na webové háčky.
-settings.payload_url=URL obsahu
+settings.payload_url=URL nákladu
settings.content_type=Typ obsahu
settings.secret=Tajný klíč
+settings.secret_desc=Tajný klíč bude odeslán jako SHA256 HMAC hexadecimální přehled nákladu použítím hlavičky X-Gogs-Signature.
settings.slack_username=Uživatelské jméno
settings.slack_icon_url=URL ikony uživatele
settings.slack_color=Barva
-settings.event_desc=Kdyby měl být webový háček spouštěn?
-settings.event_push_only=Jen pouze při událost nahrání.
+settings.event_desc=Kdyby měl být tento webový háček spouštěn?
+settings.event_push_only=Jen pouze při události odeslání.
settings.event_send_everything=Potřebuji vše.
settings.event_choose=Nech mne vybrat, co potřebuji.
settings.event_create=Vytvořit
settings.event_create_desc=Větev nebo značka byla vytvořena
-settings.event_pull_request=Požadavek na stažení
-settings.event_pull_request_desc=Pull request opened, closed, reopened, edited, assigned, unassigned, label updated, label cleared, or synchronized.
-settings.event_push=Nahrát
-settings.event_push_desc=Nahrání pomocí Gitu do repositáře
+settings.event_delete=Smazat
+settings.event_delete_desc=Větev nebo značka smazána
+settings.event_fork=Rozštěpení
+settings.event_fork_desc=Repositář rozštěpen
+settings.event_push=Odeslat
+settings.event_push_desc=Odeslání pomocí Gitu do repositáře
+settings.event_issues=Úkoly
+settings.event_issues_desc=Úkol, který je otevřen, uzavřen, znovuotevřen, změněn, přiřazen, nepřiřazen, mající změněn štítek, smazán štítek, mající přiřazen milník, nemající přiřazen milník.
+settings.event_pull_request=Požadavek na natažení
+settings.event_pull_request_desc=Požadavek na natažení otevřen, uzavřen, znovuotevřen, změněn, přiřazen, nepřiřazen, změněn štítek, smazán štítek, mající nastaven štítek, zrušeno nastavení štítku nebo synchronizován.
+settings.event_issue_comment=Komentář k úkolu
+settings.event_issue_comment_desc=Komentář k úkolu vytvořen, upraven nebo smazán.
+settings.event_release=Vydání
+settings.event_release_desc=Vydání vystaveno v repositáři.
settings.active=Aktivní
settings.active_helper=Podrobnosti vztahující se k události, která spustila háček, budou doručeny taktéž.
settings.add_hook_success=Nový webový háček byl přidán.
-settings.update_webhook=Upravit webový háček
-settings.update_hook_success=Webový háček byl upraven.
+settings.update_webhook=Změnit webový háček
+settings.update_hook_success=Webový háček byl změněn.
settings.delete_webhook=Smazat webový háček
settings.recent_deliveries=Nedávné dodávky
settings.hook_type=Typ háčku
settings.add_slack_hook_desc=Přidat integraci Slacku do vašeho repositáře.
+settings.add_discord_hook_desc=Přidat integraci Discord do vašeho repositáře.
+settings.add_dingtalk_hook_desc=Přidat integraci Dingtalk do vašeho repositáře.
settings.slack_token=Poukázka
settings.slack_domain=Doména
settings.slack_channel=Kanál
settings.deploy_keys=Klíče pro nasazení
+settings.deploy_keys_helper=Přichycen při činu! Pokud chcete přidat osobní veřejné klíče, zadejte je prosím v nastavení vašeho účtu.
settings.add_deploy_key=Přidat klíč pro nasazení
-settings.deploy_key_desc=Klíče pro nasazení mají pouze přístup ke čtení. Nejsou stejné jako osobní klíče SSH.
+settings.deploy_key_desc=Klíče pro nasazení mají pouze přístup ke čtení. Nejsou stejné jako SSH klíče osobního účtu.
settings.no_deploy_keys=Žádné klíče pro nasazení nebyly ještě přidány.
settings.title=Název
settings.deploy_key_content=Obsah
settings.key_been_used=Obsah klíče pro nasazení byl použit.
settings.key_name_used=Klíč pro nasazení se stejným jménem již existuje.
-settings.add_key_success=Nový klíč pro nasazení '%s' byl úspěšně přidán!
+settings.add_key_success=Nový klíč pro nasazení '%s' byl přidán!
settings.deploy_key_deletion=Smazat klíč pro nasazení
settings.deploy_key_deletion_desc=Smazání toho klíče pro nasazení smaže také veškerý k němu svázaný přístup do tohoto repositáře. Chcete pokračovat?
-settings.deploy_key_deletion_success=Klíč pro nasazení byl úspěšně smazán!
+settings.deploy_key_deletion_success=Klíč pro nasazení byl smazán!
+settings.description_desc=Popis repozitáře. Maximální délka 512 znaků.
+settings.description_length=Dostupné znaky
diff.browse_source=Procházet zdrojové kódy
diff.parent=rodič
@@ -755,18 +885,17 @@ diff.commit=revize
diff.data_not_available=Rozdílová data nejsou dostupná.
diff.show_diff_stats=Ukázat statistiku rozdílových dat
diff.show_split_view=Rozdělené zobrazení
-diff.show_unified_view=Jednotný pohled
+diff.show_unified_view=Jednotné zobrazení
diff.stats_desc= %d změnil soubory, kde provedl %d přidání a %d odebrání
diff.bin=binární
diff.view_file=Zobrazit soubor
-diff.file_suppressed=File diff suppressed because it is too large
-diff.too_many_files=Některé soubory nejsou zobrazny, neboť je v této revizi změněno mnoho souborů
+diff.file_suppressed=Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+diff.too_many_files=Některé soubory nejsou zobrazeny, neboť je v těchto rozdílových datech změněno mnoho souborů
release.releases=Vydání
release.new_release=Nové vydání
release.draft=Koncept
release.prerelease=Předběžná verze
-release.stable=Stabilní
release.edit=upravit
release.ahead=%d revizí do větve %s od tohoto vydání
release.source_code=Zdrojový kód
@@ -774,7 +903,7 @@ release.new_subheader=Pro iteraci produktu zveřejňujte vydání.
release.edit_subheader=Detailní log změn může pomoci uživatelům porozumět, co bylo vylepšeno.
release.tag_name=Název značky
release.target=Cíl
-release.tag_helper=Vyberte existující značku nebo vytvořte novou značku při vydání.
+release.tag_helper=Vyberte existující značku nebo vytvořte novou při vydání.
release.title=Název
release.content=Obsah
release.write=Zapsat
@@ -789,9 +918,9 @@ release.edit_release=Upravit vydání
release.delete_release=Smazat toto vydání
release.deletion=Smazání vydání
release.deletion_desc=Smazáním tohoto vydání se také smaže odpovídající značka. Chcete pokračovat?
-release.deletion_success=Vydání bylo úspěšně smazáno!
+release.deletion_success=Vydání bylo smazáno!
release.tag_name_already_exist=Vydání s touto značkou již existuje.
-release.tag_name_invalid=Název štítku není platný.
+release.tag_name_invalid=Název značky není platný.
release.downloads=Soubory ke stažení
[org]
@@ -799,12 +928,12 @@ org_name_holder=Název organizace
org_full_name_holder=Celý název organizace
org_name_helper=Skvělé názvy organizací jsou krátké a zapamatovatelné.
create_org=Vytvořit organizaci
-repo_updated=Upraveno
+repo_updated=Změněné
people=Lidé
invite_someone=Přizvěte někoho
teams=Týmy
lower_members=členové
-lower_repositories=repositáře
+lower_repositories=repozitáře
create_new_team=Vytvořit nový tým
org_desc=Popis
team_name=Název týmu
@@ -813,18 +942,18 @@ team_name_helper=Tento název budete používat při zmiňovaní týmu v konverz
team_desc_helper=Popište prosím tento tým
team_permission_desc=Jakou úroveň přístupu má mít tento tým?
-form.name_reserved=Název organizace '%s' je již rezervován.
-form.name_pattern_not_allowed=Vzor názvu organizace '%s' není povolen.
+form.name_not_allowed=Organization name or pattern %q is not allowed.
+form.team_name_not_allowed=Team name or pattern %q is not allowed.
settings=Nastavení
settings.options=Možnosti
settings.full_name=Celé jméno
settings.website=Webové stránky
settings.location=Umístění
-settings.update_settings=Upravit nastavení
-settings.update_setting_success=Nastavení organizace bylo úspěšně upraveno.
+settings.update_settings=Změnit nastavení
+settings.update_setting_success=Nastavení organizace bylo změněno.
settings.change_orgname_prompt=Tato změna ovlivní vztah odkazů k organizaci.
-settings.update_avatar_success=Nastavení ikony organizace bylo úspěšně změněno.
+settings.update_avatar_success=Nastavení ikony organizace bylo změněno.
settings.delete=Smazat organizaci
settings.delete_account=Smazat tuto organizaci
settings.delete_prompt=Organizace bude trvale smazána a tato změna nemůže být vrácena!
@@ -841,7 +970,7 @@ members.private_helper=označit jako veřejný
members.member_role=Role člena:
members.owner=Vlastník
members.member=Člen
-members.remove=Smazat
+members.remove=Odstranit
members.leave=Opustit
members.invite_desc=Přidat nového člena do %s:
members.invite_now=Pozvat teď
@@ -851,33 +980,33 @@ teams.leave=Opustit
teams.read_access=Právo čtení
teams.read_access_helper=Tento tým bude moci prohlížet a klonovat své repositáře.
teams.write_access=Právo zápisu
-teams.write_access_helper=Tento tým bude schopen jak číst své repositáře, tak do nich nahrávat.
+teams.write_access_helper=Tento tým bude schopen jak číst své repositáře, tak do nich odesílat.
teams.admin_access=Přístup správce
teams.admin_access_helper=Tento tým bude schopen odeslat a natáhnout změny do svých repositářů, stejně tak přidat k těmto repositářům další spolupracovníky.
teams.no_desc=Tento tým není žádný popis
teams.settings=Nastavení
teams.owners_permission_desc=Vlastníci mají plný přístup do všech repositářů a jsou správci této organizace.
teams.members=Členové týmu
-teams.update_settings=Upravit nastavení
+teams.update_settings=Změnit nastavení
teams.delete_team=Smazat tento tým
-teams.add_team_member=Přidát člena týmu
+teams.add_team_member=Přidat člena týmu
teams.delete_team_title=Smazání týmu
teams.delete_team_desc=Jelikož bude tento tým smazán, jeho členové mohou ztratit přístup do některých repositářů. Chcete pokračovat?
-teams.delete_team_success=Daný tým byl úspěšně smazán.
+teams.delete_team_success=Daný tým byl smazán.
teams.read_permission_desc=Členství v tom týmu poskytuje právo čtení: členové mohou číst z a vytvářet klony repositářů týmu.
-teams.write_permission_desc=Členství v tom týmu poskytuje právo zápisu: členové mohou číst z a nahrávat do repositářů týmu.
-teams.admin_permission_desc=Členství v tom týmu poskytuje právo správce: členové mohou číst z, nahrávat do a přidávat spolupracovníky do repositářů týmu.
-teams.repositories=Repositáře týmu
+teams.write_permission_desc=Členství v tom týmu poskytuje právo zápisu: členové mohou číst z a odesílat do repositářů týmu.
+teams.admin_permission_desc=Členství v tom týmu poskytuje právo správce: členové mohou číst z, odesílat do a přidávat spolupracovníky do repositářů týmu.
+teams.repositories=Repozitáře týmu
teams.search_repo_placeholder=Hledat repositář...
-teams.add_team_repository=Přidat repositář týmu
-teams.remove_repo=Smazat
-teams.add_nonexistent_repo=Repositář, který se snažíte přidat, neexistuje. Prosím, nejdříve jej vytvořte.
+teams.add_team_repository=Přidat repozitář týmu
+teams.remove_repo=Odstranit
+teams.add_nonexistent_repo=Repositář, který se snažíte přidat, neexistuje. Nejdříve jej vytvořte, prosím.
[admin]
dashboard=Přehled
users=Uživatelé
organizations=Organizace
-repositories=Repositáře
+repositories=Repozitáře
authentication=Způsoby ověření
config=Nastavení
notices=Systémová oznámení
@@ -886,29 +1015,36 @@ first_page=První
last_page=Poslední
total=Celkem: %d
+dashboard.build_info=Informace o sestavení
+dashboard.app_ver=Verze aplikace
+dashboard.git_version=Git verze
+dashboard.go_version=Go verze
+dashboard.build_time=Čas sestavení
+dashboard.build_commit=Commit sestavení
dashboard.statistic=Statistika
dashboard.operations=Operace
dashboard.system_status=Stav sledování systému
-dashboard.statistic_info=Databáze Gogs obsahuje %d uživatelů, %d organizací, %d veřejných klíčů, %d repositářů, %d hlídání, %d oblíbení, %d akcí, %d přístupů, %d úkolů, %d komentářů, %d sociálních účtů, %d sledování, %d zrcadel, %d vydání, %d zdrojů přihlášení, %d webových háčků, %d milníků, %d štítků, %d háčků, %d týmů, %d úkolu změn, %d příloh.
+dashboard.statistic_info=Databáze Gogs obsahuje %d uživatelů, %d organizací, %d veřejných klíčů, %d repositářů, %d hlídání, %d oblíbení, %d akcí, %d přístupů, %d úkolů, %d komentářů, %d sociálních účtů, %d sledování, %d zrcadel, %d vydání, %d zdrojů přihlášení, %d webových háčků, %d milníků, %d štítků, %d háčků, %d týmů, %d úkolů změn, %d příloh.
dashboard.operation_name=Název operace
dashboard.operation_switch=Přepnout
+dashboard.select_operation_to_run=Please select operation to run
dashboard.operation_run=Spustit
-dashboard.clean_unbind_oauth=Smazat nepřipojené asociace OAuth2
-dashboard.clean_unbind_oauth_success=Všechny nepřipojené asociace OAuth2 byly úspěšně smazány.
+dashboard.clean_unbind_oauth=Smazat odpojené asociace OAuth2
+dashboard.clean_unbind_oauth_success=Všechny odpojené asociace OAuth2 byly smazány.
dashboard.delete_inactivate_accounts=Smazat všechny neaktivní účty
-dashboard.delete_inactivate_accounts_success=Všechny neaktivní účty byly úspěšně smazány.
+dashboard.delete_inactivate_accounts_success=Všechny neaktivní účty byly smazány.
dashboard.delete_repo_archives=Smazat všechny archívy repositářů
-dashboard.delete_repo_archives_success=Všechny archívy repositářů byly úspěšně smazány.
+dashboard.delete_repo_archives_success=Všechny archívy repositářů byly smazány.
dashboard.delete_missing_repos=Smazat všechny záznamy repositářů, které ztratily soubory Gitu
-dashboard.delete_missing_repos_success=Všechny repositáře, které ztratily soubory Gity, byly úspěšně smazány.
-dashboard.git_gc_repos=Provést úklid nad repositáři
-dashboard.git_gc_repos_success=Úklid nad všemi repositáři byl úspěšně proveden.
+dashboard.delete_missing_repos_success=Všechny repositáře, které ztratily soubory Gitu, byly smazány.
+dashboard.git_gc_repos=Provést úklid GC nad repositáři
+dashboard.git_gc_repos_success=Úklid GC nad všemi repositáři byl proveden.
dashboard.resync_all_sshkeys=Přepsat soubor '.ssh/authorized_keys' (upozornění: klíče nevzniklé v Gogs budou ztraceny)
-dashboard.resync_all_sshkeys_success=Všechny veřejné klíče byly úspěšně přepsány.
-dashboard.resync_all_update_hooks=Přepsat háček úprav všech repositářů (potřebný v momentě změny cesty k uživatelskému konfiguračnímu souboru)
-dashboard.resync_all_update_hooks_success=Háček úprav všech repositářů byl úspěšně přepsán.
+dashboard.resync_all_sshkeys_success=Všechny veřejné klíče byly přepsány.
+dashboard.resync_all_hooks=Sesynchronizovat háčky před-získání, změny a po-získání pro všechny repositáře
+dashboard.resync_all_hooks_success=Všechny háčky repositáře pro před-získání, změnu a po-získání byly sesynchronizovány.
dashboard.reinit_missing_repos=Znovu inicializovat záznamy všech repositářů, které ztratily soubory Gitu
-dashboard.reinit_missing_repos_success=Záznamy všech repositářů, které ztratily soubory Gitu, byly znovu úspěšně inicializovány.
+dashboard.reinit_missing_repos_success=Záznamy všech repositářů, které ztratily soubory Gitu, byly znovu inicializovány.
dashboard.server_uptime=Doba provozu serveru
dashboard.current_goroutine=Aktuální Goroutines
@@ -940,7 +1076,7 @@ dashboard.total_gc_pause=Celková pauza GC
dashboard.last_gc_pause=Poslední pauza GC
dashboard.gc_times=Časy GC
-users.user_manage_panel=Uživatelský panel
+users.user_manage_panel=Panel správy uživatelů
users.new_account=Vytvořit nový účet
users.name=Jméno
users.activated=Aktivován
@@ -948,26 +1084,26 @@ users.admin=Správce
users.repos=Repositáře
users.created=Vytvořen
users.send_register_notify=Poslat upozornění na registraci uživateli
-users.new_success=Nový účet '%s' byl úspěšně vytvořen.
+users.new_success=Nový účet '%s' byl vytvořen.
users.edit=Upravit
users.auth_source=Zdroj způsobu ověření
users.local=Místní
users.auth_login_name=Přihlašovací jméno způsobu ověření
users.password_helper=Nechte prázdné, pokud se nemá změnit.
-users.update_profile_success=Profil účtu byl úspěšně změněn.
+users.update_profile_success=Profil účtu byl změněn.
users.edit_account=Upravit účet
users.max_repo_creation=Limit počtu vytvořených repositářů
users.max_repo_creation_desc=(Nastavte na -1 pro použití výchozího systémového limitu)
users.is_activated=Tento účet je aktivován
users.prohibit_login=Tento účet má zakázáno přihlášení
users.is_admin=Tento účet je správce
-users.allow_git_hook=Tento účet má právo vytváře háčky Gitu
+users.allow_git_hook=Tento účet má právo vytvářet háčky Gitu
users.allow_import_local=Tento účet má právo importovat místní repositáře
-users.update_profile=Upravil profil účtu
+users.update_profile=Změnit profil účtu
users.delete_account=Smazat tento účet
users.still_own_repo=Tento účet je stále vlastníkem nejméně jednoho repositáře, je potřeba repositář nejdříve smazat nebo předat.
users.still_has_org=Tento účet je členem minimálně jedné organizace, musíte nejdříve dané organizace opustit nebo je smazat.
-users.deletion_success=Účet byl úspěšně smazán!
+users.deletion_success=Účet byl smazán!
orgs.org_manage_panel=Panel správy organizací
orgs.name=Název
@@ -978,16 +1114,18 @@ repos.repo_manage_panel=Panel správy repositářů
repos.owner=Vlastník
repos.name=Název
repos.private=Soukromý
-repos.watches=Sledovače
+repos.watches=Sledujících
repos.stars=Oblíbení
repos.issues=Úkoly
+repos.size=Velikost
-auths.auth_manage_panel=Panel správy způsobů ověřování
+auths.auth_sources=Zdroje ověření
auths.new=Přidat nový zdroj
auths.name=Název
auths.type=Typ
auths.enabled=Povolený
-auths.updated=Upravený
+auths.default=Výchozí
+auths.updated=Změněné
auths.auth_type=Typ ověření
auths.auth_name=Název ověření
auths.security_protocol=Protokol zabezpečení
@@ -995,15 +1133,21 @@ auths.domain=Doména
auths.host=Server
auths.port=Port
auths.bind_dn=Připojení DN
+auths.bind_dn_helper=Můžete použít '%s' jako zástupný znak pro uživatelské jméno, například DOM\%s
auths.bind_password=Heslo připojení
auths.bind_password_helper=Upozornění: Toto heslo je ukládáno nešifrované. Nepoužívejte pro správcovské účty.
-auths.user_base=Výchozí bod hledání uživatelů
+auths.user_base=Výchozí místo hledání uživatelů
auths.user_dn=DN uživatele
auths.attribute_username=Atribut uživatelského jména
-auths.attribute_username_placeholder=Zanechat prázdné pro použití hodnoty pole uživatelského jména z přihlašovacího formuláře.
-auths.attribute_name=Křestní jméno
-auths.attribute_surname=Příjmení
-auths.attribute_mail=E-mailová adresa
+auths.attribute_username_placeholder=Nechte toto pole prázdné pro použití hodnoty pole uživatelského jména z přihlašovacího formuláře.
+auths.attribute_name=Atribut křestního jména
+auths.attribute_surname=Atribut příjmení
+auths.attribute_mail=Atribut e-mailové adresy
+auths.verify_group_membership=Ověřovat členství ve skupině
+auths.group_search_base_dn=Základní DN pro vyhledávání skupin
+auths.group_filter=Skupinový filtr
+auths.group_attribute_contain_user_list=Skupinový atribut, který obsahuje seznam uživatelů
+auths.user_attribute_listed_in_group=Atribut uživatele (ve skupině)
auths.attributes_in_bind=Vyzvednout atributy v kontextu Bind DN
auths.filter=Uživatelský filtr
auths.admin_filter=Správcovský filtr
@@ -1017,118 +1161,200 @@ auths.enable_tls=Povolit šifrování TLS
auths.skip_tls_verify=Přeskočit ověření TLS
auths.pam_service_name=Název služby PAM
auths.enable_auto_register=Povolit zaregistrování se
-auths.tips=Tipy
auths.edit=Upravit nastavení ověřování
auths.activated=Tento způsob ověřování je aktivní
-auths.new_success=Nový způsob ověřování '%s' byl úspěšně přidán.
-auths.update_success=Nastavení ověřování bylo úspěšně změněno.
+auths.default_auth=Toto ověření je výchozí zdroj přihlášení
+auths.new_success=Nový způsob ověřování '%s' byl přidán.
+auths.update_success=Nastavení ověřování bylo změněno.
auths.update=Změnit nastavení ověřování
auths.delete=Smazat tento způsob ověřování
auths.delete_auth_title=Smazání způsobu ověřování
auths.delete_auth_desc=Tento způsob ověřování bude smazán, chcete pokračovat?
auths.still_in_used=Tento způsob ověřování je stále používán některými uživateli. Prosím, nejdříve změňte u těchto uživatelů typ ověřování na jiný.
-auths.deletion_success=Způsob ověřování byl úspěšně smazán!
+auths.deletion_success=Způsob ověřování byl smazán!
+auths.login_source_exist=Zdroj přihlášení '%s' již existuje.
+auths.github_api_endpoint=Koncový bod API
+config.not_set=(není nastaveno)
config.server_config=Nastavení serveru
-config.app_name=Název aplikace
-config.app_ver=Verze aplikace
-config.app_url=URL aplikace
-config.domain=Doména
-config.offline_mode=Režim off-line
-config.disable_router_log=Vypnout log směrovače
+config.brand_name=Název značky
config.run_user=Účet pro spouštění
config.run_mode=Režim spouštění
-config.repo_root_path=Kořenový adresář repositářů
-config.static_file_root_path=Kořenový adresář statického souboru
-config.log_file_root_path=Kořenový adresář souboru logu
-config.script_type=Typ skriptu
-config.reverse_auth_user=Uživatel obráceného ověření
+config.server.external_url=Externí URL
+config.server.domain=Doména
+config.server.protocol=Protokol
+config.server.http_addr=HTTP adresa
+config.server.http_port=HTTP port
+config.server.cert_file=Soubor certifikátu
+config.server.key_file=Soubor klíče
+config.server.tls_min_version=Minimální verze TLS
+config.server.unix_socket_permission=Oprávnění Unix socket
+config.server.local_root_url=Místní URL kořenového adresáře
+config.server.offline_mode=Offline režim
+config.server.disable_router_log=Disable router log
+config.server.enable_gzip=Povolit Gzip
+config.server.app_data_path=Cesta dat aplikace
+config.server.load_assets_from_disk=Load assets from disk
+config.server.landing_url=Landing URL
config.ssh_config=Nastavení SSH
-config.ssh_enabled=Zapnutý
-config.ssh_start_builtin_server=Spustit vestavěný server
-config.ssh_domain=Doména
-config.ssh_port=Port
-config.ssh_listen_port=Port pro naslouchání
-config.ssh_root_path=Kořenová cesta
-config.ssh_key_test_path=Cesta testu klíčů
-config.ssh_keygen_path=Cesta ke generátoru klíčů ('ssh-keygen')
-config.ssh_minimum_key_size_check=Kontrola minimální velikosti klíčů
-config.ssh_minimum_key_sizes=Minimální velikost klíčů
+config.ssh.enabled=Povoleno
+config.ssh.domain=Vystavená doména
+config.ssh.port=Vystavený port
+config.ssh.root_path=Kořenová cesta
+config.ssh.keygen_path=Keygen path
+config.ssh.key_test_path=Key test path
+config.ssh.minimum_key_size_check=Kontrola minimální velikosti klíčů
+config.ssh.minimum_key_sizes=Minimální velikost klíčů
+config.ssh.rewrite_authorized_keys_at_start=Rewrite "authorized_keys" at start
+config.ssh.start_builtin_server=Start builtin server
+config.ssh.listen_host=Listen host
+config.ssh.listen_port=Listen port
+config.ssh.server_ciphers=Serverové šifry
+config.ssh.server_macs=Server MACs
+config.ssh.server_algorithms=Server algorithms
+
+config.repo_config=Nastavení repositáře
+config.repo.root_path=Kořenová cesta
+config.repo.script_type=Typ skriptu
+config.repo.ansi_chatset=ANSI charset
+config.repo.force_private=Force private
+config.repo.max_creation_limit=Max creation limit
+config.repo.preferred_licenses=Upřednostňované licence
+config.repo.disable_http_git=Disable HTTP Git
+config.repo.enable_local_path_migration=Enable local path migration
+config.repo.enable_raw_file_render_mode=Enable raw file render mode
+config.repo.commits_fetch_concurrency=Commits fetch concurrency
+config.repo.editor.line_wrap_extensions=Editor line wrap extensions
+config.repo.editor.previewable_file_modes=Editor previewable file modes
+config.repo.upload.enabled=Upload enabled
+config.repo.upload.temp_path=Upload temporary path
+config.repo.upload.allowed_types=Upload allowed types
+config.repo.upload.file_max_size=Upload file size limit
+config.repo.upload.max_files=Upload files limit
config.db_config=Nastavení databáze
-config.db_type=Typ
-config.db_host=Server
-config.db_name=Název
-config.db_user=Uživatel
-config.db_ssl_mode=Režim SSL
-config.db_ssl_mode_helper=(pouze pro 'postgres')
-config.db_path=Cesta
-config.db_path_helper=(pro "sqlite3" a "tidb")
-
-config.service_config=Nastavení služby
-config.register_email_confirm=Vyžadovat potvrzení e-mailem
-config.disable_register=Vypnout registraci
-config.show_registration_button=Ukázat tlačítko registrace
-config.require_sign_in_view=Vyžadovat zobrazení přihlášení
-config.mail_notify=Upozornění e-mailem
-config.disable_key_size_check=Vypnout kontrolu minimální velikosti klíčů
-config.enable_captcha=Povolit službu CAPTCHA
-config.active_code_lives=Doba života aktivního kódu
-config.reset_password_code_lives=Lhůta kódu pro obnovu hesla
+config.db.type=Type
+config.db.host=Host
+config.db.name=Name
+config.db.schema=Schema
+config.db.schema_helper=(for "postgres" only)
+config.db.user=User
+config.db.ssl_mode=SSL mode
+config.db.ssl_mode_helper=(for "postgres" only)
+config.db.path=Path
+config.db.path_helper=(for "sqlite3"only)
+config.db.max_open_conns=Maximum open connections
+config.db.max_idle_conns=Maximum idle connections
+
+config.security_config=Security configuration
+config.security.login_remember_days=Login remember days
+config.security.cookie_remember_name=Remember cookie
+config.security.cookie_username=Username cookie
+config.security.cookie_secure=Enable secure cookie
+config.security.reverse_proxy_auth_user=Reverse proxy authentication header
+config.security.enable_login_status_cookie=Enable login status cookie
+config.security.login_status_cookie_name=Login status cookie
+config.security.local_network_allowlist=Local network allowlist
+
+config.email_config=Email configuration
+config.email.enabled=Enabled
+config.email.subject_prefix=Subject prefix
+config.email.host=Host
+config.email.from=From
+config.email.user=User
+config.email.disable_helo=Disable HELO
+config.email.helo_hostname=HELO hostname
+config.email.skip_verify=Skip certificate verify
+config.email.use_certificate=Use custom certificate
+config.email.cert_file=Certificate file
+config.email.key_file=Key file
+config.email.use_plain_text=Use plain text
+config.email.add_plain_text_alt=Add plain text alternative
+config.email.send_test_mail=Send test email
+config.email.test_mail_failed=Failed to send test email to '%s': %v
+config.email.test_mail_sent=Test email has been sent to '%s'.
+
+config.auth_config=Authentication configuration
+config.auth_custom_logout_url=Custom logout URL
+config.auth.activate_code_lives=Activate code lives
+config.auth.reset_password_code_lives=Reset password code lives
+config.auth.require_email_confirm=Require email confirmation
+config.auth.require_sign_in_view=Require sign in view
+config.auth.disable_registration=Disable registration
+config.auth.enable_registration_captcha=Enable registration captcha
+config.auth.enable_reverse_proxy_authentication=Enable reverse proxy authentication
+config.auth.enable_reverse_proxy_auto_registration=Enable reverse proxy auto registration
+config.auth.reverse_proxy_authentication_header=Reverse proxy authentication header
+
+config.user_config=User configuration
+config.user.enable_email_notify=Enable email notification
-config.webhook_config=Nastavení webových háčků
-config.queue_length=Délka fronty
-config.deliver_timeout=Časový limit doručení
-config.skip_tls_verify=Přeskočit ověření TLS
-
-config.mailer_config=Nastavení odesílání e-mailů
-config.mailer_enabled=Zapnutý
-config.mailer_disable_helo=Zakázat HELO
-config.mailer_name=Název
-config.mailer_host=Server
-config.mailer_user=Uživatel
-config.send_test_mail=Odeslat zkušební E-mail
-config.test_mail_failed=Odeslání testovacího e-mailu na '%s' selhalo: %v
-config.test_mail_sent=Zkušební e-mail byl odeslán na '%s'.
-
-config.oauth_config=Nastavení ověření OAuth
-config.oauth_enabled=Zapnutý
+config.session_config=Nastavení relace
+config.session.provider=Provider
+config.session.provider_config=Provider config
+config.session.cookie_name=Cookie
+config.session.https_only=HTTPS only
+config.session.gc_interval=GC interval
+config.session.max_life_time=Max life time
+config.session.csrf_cookie_name=CSRF cookie
config.cache_config=Nastavení mezipaměti
-config.cache_adapter=Adaptér mezipaměti
-config.cache_interval=Interval mezipaměti
-config.cache_conn=Připojení mezipaměti
-
-config.session_config=Nastavení relace
-config.session_provider=Poskytovatel relace
-config.provider_config=Nastavení poskytovatele
-config.cookie_name=Název souboru cookie
-config.enable_set_cookie=Povolit nastavení cookie
-config.gc_interval_time=Čas intervalu GC
-config.session_life_time=Doba trvání relace
-config.https_only=Pouze protokol HTTPS
-config.cookie_life_time=Doba života souboru cookie
+config.cache.adapter=Adapter
+config.cache.interval=GC interval
+config.cache.host=Host
+
+config.http_config=Nastavení HTTP
+config.http.access_control_allow_origin=Access control allow origin
+
+config.attachment_config=Attachment configuration
+config.attachment.enabled=Enabled
+config.attachment.path=Path
+config.attachment.allowed_types=Allowed types
+config.attachment.max_size=Size limit
+config.attachment.max_files=Files limit
+
+config.release_config=Release configuration
+config.release.attachment.enabled=Attachment enabled
+config.release.attachment.allowed_types=Attachment allowed types
+config.release.attachment.max_size=Attachment size limit
+config.release.attachment.max_files=Attachment files limit
config.picture_config=Nastavení ikony uživatele
-config.picture_service=Služba ikon uživatelů
-config.disable_gravatar=Zakázat službu Gravatar
-config.enable_federated_avatar=Enable Federated Avatars
+config.picture.avatar_upload_path=User avatar upload path
+config.picture.repo_avatar_upload_path=Repository avatar upload path
+config.picture.gravatar_source=Gravatar source
+config.picture.disable_gravatar=Disable Gravatar
+config.picture.enable_federated_avatar=Enable federated avatars
+
+config.mirror_config=Mirror configuration
+config.mirror.default_interval=Default interval
+
+config.webhook_config=Nastavení webových háčků
+config.webhook.types=Types
+config.webhook.deliver_timeout=Deliver timeout
+config.webhook.skip_tls_verify=Skip TLS verify
config.git_config=Konfigurace Gitu
-config.git_disable_diff_highlight=Zakázat zvýraznění syntaxe v rozdílovém zobrazení
-config.git_max_diff_lines=Maximální počet rozdílových řádků jednoho souboru
-config.git_max_diff_line_characters=Maximální počet zobrazených rozdílových znaků
-config.git_max_diff_files=Maximální počet zobrazených rozdílových souborů
-config.git_gc_args=Parametry GC
-config.git_migrate_timeout=Časový limit migrace
-config.git_mirror_timeout=Časový limit aktualizace zrcadla
-config.git_clone_timeout=Časový limit operace naklonování
-config.git_pull_timeout=Časový limit operace stažení
-config.git_gc_timeout=Časový limit operace GC
-
-config.log_config=Nastavení logů
-config.log_mode=Způsob logování
+config.git.disable_diff_highlight=Disable diff syntax highlight
+config.git.max_diff_lines=Diff lines limit (for a single file)
+config.git.max_diff_line_characters=Diff characters limit (for a single line)
+config.git.max_diff_files=Diff files limit (for a single diff)
+config.git.gc_args=GC arguments
+config.git.migrate_timeout=Migration timeout
+config.git.mirror_timeout=Mirror fetch timeout
+config.git.clone_timeout=Clone timeout
+config.git.pull_timeout=Pull timeout
+config.git.gc_timeout=GC timeout
+
+config.lfs_config=LFS configuration
+config.lfs.storage=Storage
+config.lfs.objects_path=Objects path
+
+config.log_config=Nastavení systémových záznamů
+config.log_file_root_path=Kořenový adresář souboru systémových záznamů
+config.log_mode=Režim
+config.log_options=Možnosti
monitor.cron=Naplánované úlohy
monitor.name=Název
@@ -1146,55 +1372,63 @@ notices.view_detail_header=Zobrazit detail oznámení
notices.actions=Akce
notices.select_all=Vybrat vše
notices.deselect_all=Zrušit výběr všech
-notices.inverse_selection=Inverzní výběr
+notices.inverse_selection=Převrátit výběr
notices.delete_selected=Smazat vybrané
notices.delete_all=Smazat všechna oznámení
notices.type=Typ
notices.type_1=Repositář
notices.desc=Popis
notices.op=Op.
-notices.delete_success=Systémová upozornění byla úspěšně smazána.
+notices.delete_success=Systémová upozornění byla smazána.
[action]
create_repo=vytvořil repositář %s
rename_repo=přejmenoval repositář z %[1]s na %[3]s
-commit_repo=odeslal do %[3]s v %[4]s
+commit_repo=odeslal do větve %[3]s v repositáři %[4]s
+compare_commits=Zobrazit porovnání pro tyto %d revize
+transfer_repo=předal repositář %s uživateli/organizaci %s
create_issue=`vytvořil úkol %s#%[2]s`
close_issue=`uzavřel úkol %s#%[2]s`
reopen_issue=`znovuotevřel úkol %s#%[2]s`
-create_pull_request=`vytvořil požadavek na stažení %s#%[2]s`
-close_pull_request=`zavřel požadavek na stažení %s#%[2]s`
-reopen_pull_request=`znovuotevřel požadavek na stažení %s#%[2]s`
-comment_issue=`přidal komentář k úkolu %s#%[2]s`
-merge_pull_request=`sloučil požadavek na stažení %s#%[2]s`
-transfer_repo=předal repositář %s uživateli/organizaci %s
-push_tag=nahrál značku %[2]s do %[3]s
-compare_commits=Zobrazit porovnání pro tyto %d revize
+comment_issue=`okomentoval úkol %s#%[2]s`
+create_pull_request=`vytvořil požadavek na natažení %s#%[2]s`
+close_pull_request=`zavřel požadavek na natažení %s#%[2]s`
+reopen_pull_request=`znovuotevřel požadavek na natažení %s#%[2]s`
+merge_pull_request=`sloučil požadavek na natažení %s#%[2]s`
+create_branch=vytvořil novou větev %[3]s v %[4]s
+delete_branch=smazal větev %[2]s v %[3]s
+push_tag=odeslal značku %[2]s do repositáře %[3]s
+delete_tag=smazána značka %[2]s v %[3]s
+fork_repo=rozštěpil repositář do %s
+mirror_sync_push=synced commits to %[3]s at %[4]s from mirror
+mirror_sync_create=synchronizoval/a novou referenci %[2]s do %[3]s ze zrcadla
+mirror_sync_delete=synchronizoval/a a smazal/a referenci %[2]s v %[3]s ze zrcadla
[tool]
ago=před
from_now=od teď
now=nyní
1s=%s 1 sekundou
-1m=%s před jednou minutou
-1h=%s jednou hodinou
+1m=%s 1 minutou
+1h=%s 1 hodinou
1d=%s 1 dnem
1w=%s 1 týdnem
1mon=%s 1 měsícem
1y=%s 1 rokem
-seconds=%s %d sekundami
-minutes=%s %d minutami
-hours=%s %d hodinami
-days=%s %d dny
-weeks=%s %d týdny
-months=%s %d měsíci
-years=%s %d roky
-raw_seconds=sekund
-raw_minutes=minut
+seconds=%[2]s %[1]d sekundami
+minutes=%[2]s %[1]d minutami
+hours=%[2]s %[1]d hodinami
+days=%[2]s %[1]d dny
+weeks=%[2]s %[1]d týdny
+months=%[2]s %[1]d měsíci
+years=%[2]s %[1]d roky
+raw_seconds=sekundy
+raw_minutes=minuty
+raw_hours=hours
[dropzone]
default_message=Přetáhněte soubory sem nebo stiskněte Nahrát.
invalid_input_type=Nelze nahrát soubory tohoto typu.
file_too_big=Velikost souboru ({{filesize}} MB) je vyšší než maximální velikost ({{maxFilesize}} MB).
-remove_file=Smazat soubor
+remove_file=Odstranit soubor
diff --git a/conf/locale/locale_de-DE.ini b/conf/locale/locale_de-DE.ini
index 978aacb9377..07fc5aa46f2 100644
--- a/conf/locale/locale_de-DE.ini
+++ b/conf/locale/locale_de-DE.ini
@@ -9,7 +9,6 @@ sign_out=Abmelden
sign_up=Registrieren
register=Registrieren
website=Webseite
-version=Version
page=Seite
template=Vorlage
language=Sprache
@@ -44,23 +43,27 @@ issues=Issues
cancel=Abbrechen
+[status]
+page_not_found=Seite nicht gefunden
+internal_server_error=Interner Serverfehler
+
[install]
install=Installation
title=Installationsschritte für den ersten Start
-docker_helper=Wenn Gogs innerhalb von Docker läuft, lesen Sie sich bitte den Leitfaden genau durch, bevor Sie irgendwas auf dieser Seite ändern!
-requite_db_desc=Gogs benötigt MySQL, PostgreSQL, SQLite3 oder TiDB.
+docker_helper=Wenn Gogs innerhalb von Docker läuft, lesen Sie sich bitte den Leitfaden genau durch, bevor Sie etwas auf dieser Seite ändern!
+requite_db_desc=Gogs benötigt MySQL, PostgreSQL, SQLite3 oder TiDB (mit MySQL-Protokoll)
db_title=Datenbankeinstellungen
db_type=Datenbanktyp
host=Host
user=Benutzer
password=Passwort
db_name=Datenbankname
+db_schema=Schema
db_helper=Bitte verwenden Sie in MySQL die InnoDB-Engine mit dem Zeichensatz utf8_general_ci.
ssl_mode=SSL-Modus
path=Pfad
-sqlite_helper=Der Dateipfad zur SQLite3- oder TiDB-Datenbank. Bitte verwenden Sie einen absoluten Pfad, wenn Gogs als Service gestartet wird.
-err_empty_db_path=SQLite3 oder TiDB Datenbankpfad darf nicht leer sein.
-err_invalid_tidb_name=Der TiDB Datenbankname darf nicht "." und "-" enthalten.
+sqlite_helper=Der Dateipfad zur SQLite3-Datenbank. Bitte verwenden Sie einen absoluten Pfad, wenn Gogs als Service gestartet wird.
+err_empty_db_path=SQLite3 Datenbankpfad darf nicht leer sein.
no_admin_and_disable_registration=Sie können die Registrierung nicht deaktivieren, ohne ein Administratorkonto zu erstellen.
err_empty_admin_password=Das Administrator-Passwort darf nicht leer sein.
@@ -75,12 +78,17 @@ domain=Domain
domain_helper=Dies hat Auswirkung auf die SSH Klon-URLs.
ssh_port=SSH Port
ssh_port_helper=Der Port Ihres SSH-Servers. Leer lassen um SSH zu deaktivieren.
+use_builtin_ssh_server=Eingebauten SSH-Server verwenden
+use_builtin_ssh_server_popup=Starte eingebauten SSH-Server für git-Aufgaben, um es vom System-SSH-Dämon zu trennen.
http_port=HTTP Port
http_port_helper=Auf dieser Port Nummer wird Gogs erreichbar sein.
app_url=Anwendungs-URL
app_url_helper=Dies hat Auswirkung auf die HTTP/HTTPS Klon-URLs und den Inhalt der E-Mails.
log_root_path=Logdateipfad
log_root_path_helper=Verzeichnis in das Logdateien geschrieben werden.
+enable_console_mode=Konsolen-Modus einschalten
+enable_console_mode_popup=Zusätzlich zum Datei-Modus, zeige Logs auch in der Konsole.
+default_branch=Standard Branch
optional_title=Optionale Einstellungen
email_title=E-Mail-Service Einstellungen
@@ -116,7 +124,10 @@ sqlite3_not_available=Ihre Gogs-Version unterstützt SQLite3 nicht. Bitte laden
invalid_db_setting=Datenbankeinstellungen sind nicht korrekt: %v
invalid_repo_path=Repository Verzeichnis ist ungültig: %v
run_user_not_match=Der ausführende Benutzer ist nicht der aktuelle Benutzer: %s -> %s
+smtp_host_missing_port=In der Adresse des SMTP Host fehlt die Portnummer.
+invalid_smtp_from=SMTP Absender Feld ist nicht gültig: %v
save_config_failed=Fehler beim Speichern der Konfiguration: %v
+init_failed=Fehler beim Initialisieren der Anwendung: %v
invalid_admin_setting=Admin-Konto Einstellungen sind ungültig: %v
install_success=Herzlich Willkommen! Wir sind froh, dass Sie sich für Gogs entschieden haben. Wir wünschen viel Vergnügen damit.
invalid_log_root_path=Pfad zum Log-Verzeichnis ist ungültig: %v
@@ -137,6 +148,7 @@ issues.in_your_repos=In Ihren Repositories
[explore]
repos=Repositories
users=Benutzer
+organizations=Organisationen
search=Suche
[auth]
@@ -145,6 +157,8 @@ register_hepler_msg=Haben Sie bereits ein Konto? Jetzt anmelden!
social_register_hepler_msg=Haben Sie bereits ein Konto? Jetzt verknüpfen!
disable_register_prompt=Es tut uns leid, die Registrierung wurde deaktiviert. Bitte wenden Sie sich an den Administrator.
disable_register_mail=Es tut uns leid, die Bestätigung der Registrierungs-E-Mail wurde deaktiviert.
+auth_source=Authentifizierungsquelle
+local=Lokal
remember_me=Angemeldet bleiben
forgot_password=Passwort vergessen
forget_password=Passwort vergessen?
@@ -156,7 +170,6 @@ prohibit_login_desc=Ihrem Konto ist es nicht gestattet sich anzumelden. Bitte ko
resent_limit_prompt=Es tut uns leid, aber Sie haben bereits eine Aktivierungs-E-Mail angefordert. Bitte warten Sie 3 Minuten und probieren Sie es dann nochmal.
has_unconfirmed_mail=Hallo %s, Sie haben eine unbestätigte E-Mail-Adresse (%s). Wenn Sie keine Bestätigungs-E-Mail erhalten haben oder eine neue benötigen, klicken Sie bitte auf den folgenden Button.
resend_mail=Hier klicken, um die Aktivierungs-E-Mail erneut zu versenden
-email_not_associate=Diese E-Mail-Adresse ist mit keinem Konto verknüpft.
send_reset_mail=Hier klicken, um die E-Mail zum Passwort-zurücksetzen erneut zu versenden
reset_password=Passwort zurücksetzen
invalid_code=Es tut uns leid, der Bestätigungscode ist abgelaufen oder ungültig.
@@ -164,6 +177,14 @@ reset_password_helper=Hier klicken, um das Passwort zurückzusetzen
password_too_short=Das Passwort muss mindenstens 6 Zeichen lang sein.
non_local_account=Nicht-lokale Konten können Passwörter nicht via Gogs ändern.
+login_two_factor=Zwei-Faktor-Authentifizierung
+login_two_factor_passcode=PIN
+login_two_factor_enter_recovery_code=Geben Sie einen Wiederherstellungscode für die Zwei-Faktor-Authentifizierung ein
+login_two_factor_recovery=Zwei-Faktor-Wiederherstellung
+login_two_factor_recovery_code=Wiederherstellungscode
+login_two_factor_enter_passcode=Geben Sie die Zwei-Faktor-Authentifizierungs PIN ein
+login_two_factor_invalid_recovery_code=Der Wiederherstellungscode wurde schon benutzt oder ist nicht gültig.
+
[mail]
activate_account=Bitte aktivieren Sie Ihr Konto
activate_email=Bestätigen Sie Ihre E-Mail-Adresse
@@ -199,6 +220,7 @@ Content=Inhalt
require_error=` darf nicht leer sein.`
alpha_dash_error=` kann ausschließlich alphanumerische Zeichen und "-_" enthalten.`
alpha_dash_dot_error=` kann ausschließlich alphanumerische Zeichen und ".-_" enthalten.`
+alpha_dash_dot_slash_error=` kann ausschließlich alphanumerische Zeichen und ".-_/" enthalten.`
size_error=` muss die Größe %s haben.`
min_size_error=` muss mindestens %s Zeichen enthalten.`
max_size_error=` darf höchstens %s Zeichen enthalten.`
@@ -215,6 +237,7 @@ org_name_been_taken=Organisationsname ist bereits vergeben.
team_name_been_taken=Teamname ist bereits vergeben.
email_been_used=E-Mail-Adresse wird bereits verwendet.
username_password_incorrect=Benutzername oder Passwort ist nicht korrekt.
+auth_source_mismatch=Die ausgewählte Authentifizierungsquelle ist dem Benutzer nicht zugeordnet.
enterred_invalid_repo_name=Bitte achten Sie darauf, dass der von Ihnen eingegebene Repository-Name korrekt ist.
enterred_invalid_owner_name=Bitte achten Sie darauf, dass der eingegebene Name des Besitzers korrekt ist.
enterred_invalid_password=Bitte achten Sie darauf, dass das eingegebene Passwort richtig ist.
@@ -242,19 +265,18 @@ following=Folge ich
follow=Folgen
unfollow=Nicht mehr folgen
-form.name_reserved=Der Benutzername '%s' ist reserviert.
-form.name_pattern_not_allowed=Benutzernamen der Form '%s' sind nicht erlaubt.
+form.name_not_allowed=Benutzername oder Muster %q ist nicht erlaubt.
[settings]
profile=Profil
password=Passwort
avatar=Profilbild
ssh_keys=SSH-Schlüssel
-social=Soziale Konten
-applications=Anwendungen
+security=Sicherheit
+repos=Repositories
orgs=Organisationen
+applications=Anwendungen
delete=Konto löschen
-uid=Uid
public_profile=Öffentliches Profil
profile_desc=Ihre E-Mail-Adresse ist öffentlich einsehbar und dient dazu, Ihnen Benachrichtigungen bezüglich Ihres Kontos und Aktivitäten auf der Webseite zu schicken.
@@ -295,6 +317,7 @@ delete_email=Löschen
email_deletion=E-Mail löschen
email_deletion_desc=Das Löschen dieser E-Mail Adresse wird alle Informationen entfernen, die mit dieser E-Mail Adresse verknüpft sind. Wollen Sie fortfahren?
email_deletion_success=E-Mail-Adresse wurde erfolgreich gelöscht!
+email_deletion_primary=Die primäre E-Mail-Adresse kann nicht gelöscht werden.
add_new_email=Neue E-Mail-Adresse hinzufügen
add_email=E-Mail-Adresse hinzufügen
add_email_confirmation_sent=Eine neue Bestätigungsmail wurde an '%s' gesendet, bitte überprüfen Sie Ihren Posteingang innerhalb von %d Stunden um die Bestätigung abzuschließen.
@@ -305,7 +328,7 @@ add_key=Schlüssel hinzufügen
ssh_desc=Dies ist eine Liste aller SSH-Schlüssel, die Ihrem Konto zugeordnet sind. Bitte entfernen Sie alle Schlüssel, die Ihnen nicht bekannt sind.
ssh_helper=Brauchen Sie Hilfe? Hier ist eine Anleitung zum Erzeugen von SSH-Schlüsseln oder Lösen einfacher SSH-Probleme.
add_new_key=SSH-Schlüssel hinzufügen
-ssh_key_been_used=Inhalt des öffentlichen Schlüssels wurde verwendet.
+ssh_key_been_used=Inhalt des öffentlichen Schlüssels wurde bereits verwendet.
ssh_key_name_used=Ein öffentlicher Schlüssel mit diesem Namen existiert bereits.
key_name=Schlüsselname
key_content=Inhalt
@@ -320,14 +343,36 @@ no_activity=Keine neuen Aktivitäten
key_state_desc=Dieser Schlüssel wurde in den letzten 7 Tagen verwendet
token_state_desc=Dieses Token wurde in den letzten 7 Tagen benutzt
-manage_social=Verknüpfte soziale Konten verwalten
-social_desc=Dies ist eine Liste verknüpfter sozialer Konten. Bitte entfernen Sie alle Verknüpfungen, die Ihnen nicht bekannt sind.
-unbind=Verknüpfung entfernen
-unbind_success=Die Verknüpfung zum sozialen Konto wurde entfernt.
+two_factor=Zwei-Faktor-Authentifizierung
+two_factor_status=Status:
+two_factor_on=Ein
+two_factor_off=Aus
+two_factor_enable=Aktivieren
+two_factor_disable=Deaktivieren
+two_factor_view_recovery_codes=Betrachten und verwahren Sie Ihre Wiederherstellungscodes an einem sicheren Ort. Sie können diese als Passwort-Code nutzen, auch wenn Sie den Zugriff zu Ihrer Authentifizierungsanwendung verloren haben.
+two_factor_http=Für HTTP/HTTPS-Operationen können Sie keine schlichten Benutzernamen und Passwörter mehr nutzen. Bitte erstellen und benutzen Sie ein Persönliches Zugriffs-Token als Ihre Anmeldeinformation, z.B. %[3]s.
+two_factor_enable_title=Zwei-Faktor-Authentifizierung aktivieren
+two_factor_scan_qr=Bitte benutzen Sie Ihre Authentifizierungsanwendung, um das Bild zu scannen:
+two_factor_or_enter_secret=Oder geben Sie Ihren Geheim-Code ein:
+two_factor_then_enter_passcode=Geben Sie die PIN ein:
+two_factor_verify=Bestätigen
+two_factor_invalid_passcode=Die eingegebene PIN ist ungültig. Bitte versuchen Sie es erneut!
+two_factor_reused_passcode=Der von dir eingegebene Passcode wurde bereits verwendet, bitte probiere einen anderen!
+two_factor_enable_error=Einschalten der Zwei-Faktor-Authentifizierung ist fehlgeschlagen: %v
+two_factor_enable_success=Die Zwei-Faktor-Authentifizierung wurde für Ihr Konto erfolgreich aktiviert!
+two_factor_recovery_codes_title=Zwei-Faktor-Authentifizierung-Wiederherstellungscodes
+two_factor_recovery_codes_desc=Wiederherstellungscodes sind dazu gedacht, verwendet zu werden, wenn Sie vorübergehend keinen Zugriff zu Ihrer Authentifizierungsanwendung haben. Jeder Wiederherstellungscode kann nur einmal verwendet werden. Bitte bewahren Sie diese Codes an einem sicheren Ort auf.
+two_factor_regenerate_recovery_codes=Wiederherstellungscodes neu generieren
+two_factor_regenerate_recovery_codes_error=Das erneute Generieren der Wiederherstellungscodes ist fehlgeschlagen: %v
+two_factor_regenerate_recovery_codes_success=Die neuen Wiederherstellungscodes wurden erfolgreich generiert!
+two_factor_disable_title=Zwei-Faktor-Authentifizierung deaktivieren
+two_factor_disable_desc=Das Sicherheitsniveau Ihres Kontos wird deutlich reduziert sein, nachdem die Zwei-Faktor-Authentifizierung deaktiviert wurde. Möchten Sie fortfahren?
+two_factor_disable_success=Die Zwei-Faktor-Authentifizierung wurde erfolgreich deaktiviert!
manage_access_token=Verwaltung persönlicher Zugangs-Token
-generate_new_token=Neuen Token erzeugen
+generate_new_token=Neues Token erzeugen
tokens_desc=Die von Ihnen erzeugten Token können zum Zugriff auf die Gogs-API verwendet werden.
+access_token_tips=Der persönliche Zugangs-Token kann entweder als Benutzername oder als Passwort verwendet werden. Es wird empfohlen den "x-access-token" als Benutzernamen und den persönlichen Zugangs-Token als Passwort für Git-Anwendungen zu verwenden.
new_token_desc=Jeder Token erlaubt vollen Zugriff auf ihr Konto.
token_name=Token-Name
generate_token=Token generieren
@@ -336,6 +381,16 @@ delete_token=Löschen
access_token_deletion=Persönlichen Token entfernen
access_token_deletion_desc=Das Löschen dieses persönlichen Zugangs-Tokens wird alle zugehörigen Zugriffe der Anwendung entfernen. Möchten Sie fortfahren?
delete_token_success=Persönlicher Zugriffs-Token wurde erfolgreich entfernt! Vergessen Sie nicht Ihre Anwendung zu aktualisieren.
+token_name_exists=Token mit dem gleichen Namen existiert bereits.
+
+orgs.none=Sie sind kein Mitglied einer Organisation.
+orgs.leave_title=Organisation verlassen
+orgs.leave_desc=Sie verlieren den Zugriff auf alle Repositories und Teams nach dem Verlassen der Organisation. Möchten Sie fortfahren?
+
+repos.leave=Verlassen
+repos.leave_title=Repository verlassen
+repos.leave_desc=Der Zugang zum Repository wird verloren gehen, wenn Sie es verlassen. Möchten Sie fortfahren?
+repos.leave_success=Sie haben das Repository '%s' erfolgreich verlassen!
delete_account=Konto löschen
delete_prompt=Diese Aktion wird Ihr Konto dauerhaft löschen und kann NICHT rückgängig gemacht werden!
@@ -348,10 +403,12 @@ owner=Besitzer
repo_name=Repository-Name
repo_name_helper=Ein guter Repository-Name besteht gewöhnlich aus kurzen, leicht zu merkenden und eindeutigen Schlüsselworten.
visibility=Sichtbarkeit
+unlisted=Ungelistet
visiblity_helper=Dieses Repository ist privat
+unlisted_helper=Dieses Repository ist nicht gelistet
visiblity_helper_forced=Der Administrator hat festgelegt, dass alle neuen Repositories privat sein müssen
visiblity_fork_helper=(Eine Änderung dieses Wertes wirkt sich auf alle Forks aus)
-clone_helper=Sie brauchen Hilfe beim Klonen? Öffnen Sie die Hilfe!
+clone_helper=Brauchen Sie Hilfe beim Klonen? Hier gibt es Hilfe!
fork_repo=Repository forken
fork_from=Fork von
fork_visiblity_helper=Die Sichtbarkeit von geforkten Repositories ist nicht veränderbar.
@@ -374,24 +431,26 @@ mirror_last_synced=Zuletzt synchronisiert
watchers=Beobachter
stargazers=In Favoriten von
forks=Forks
+repo_description_helper=Beschreibung des Repository. Maximal 512 Zeichen.
+repo_description_length=Verfügbare Zeichen
form.reach_limit_of_creation=Der Besitzer hat die maximale Anzahl von %d erstellbaren Repositories erreicht.
-form.name_reserved=Repository-Name '%s' ist reserviert.
-form.name_pattern_not_allowed=Repository-Namen der Form '%s' sind nicht erlaubt.
+form.name_not_allowed=Repository name or pattern %q is not allowed.
need_auth=Authorisierung benötigt
migrate_type=Migrationstyp
migrate_type_helper=Dieses Repository wird ein Mirror sein
migrate_repo=Repository migrieren
migrate.clone_address=Adresse kopieren
-migrate.clone_address_desc=Dies kann eine HTTP/HTTPS/GIT URL oder ein lokaler Serverpfad sein.
+migrate.clone_address_desc=Dies kann eine HTTP/HTTPS/GIT-URL sein.
+migrate.clone_address_desc_import_local=Sie dürfen auch ein Repository vom lokalen Serverpfad migrieren.
migrate.permission_denied=Ihnen fehlen die Rechte zum Importieren lokaler Repositories.
migrate.invalid_local_path=Der lokale Pfad ist ungültig, existiert nicht oder ist kein Ordner.
+migrate.clone_address_resolved_to_blocked_local_address=Klonadresse in eine lokale Netzwerkadresse aufgelöst, die implizit blockiert ist.
migrate.failed=Fehler bei Migration: %v
mirror_from=Mirror von
forked_from=geforkt von
-fork_from_self=Sie können kein Repository forken, das Ihnen gehört!
copy_link=Kopieren
copy_link_success=Kopiert!
copy_link_error=Drücken Sie ⌘-C oder Strg-C zum Kopieren
@@ -407,9 +466,9 @@ quick_guide=Kurzanleitung
clone_this_repo=Dieses Repository klonen
create_new_repo_command=Erstellen Sie ein neues Repository mittels der Kommandozeile
push_exist_repo=Bestehendes Repository von der Kommandozeile pushen
-repo_is_empty=Dieses Repository ist leer. Bitte kommen Sie später wieder!
+bare_message=Dieses Repository hat noch keinen Inhalt.
-code=Code
+files=Dateien
branch=Branch
tree=Struktur
filter_branch_and_tag=Nach Branch oder Tag filtern
@@ -420,12 +479,23 @@ pulls=Pull-Requests
labels=Label
milestones=Meilensteine
commits=Commits
+git_branches=Branches
releases=Releases
file_raw=Originalformat
file_history=Verlauf
file_view_raw=Ansicht im Originalformat
file_permalink=Permalink
file_too_large=Diese Datei ist zu groß zum Anzeigen
+video_not_supported_in_browser=Ihr Browser unterstützt HTML5 Video-Tags nicht.
+
+branches.overview=Übersicht
+branches.active_branches=Aktive Branches
+branches.stale_branches=Alte Branches
+branches.all=Alle Branches
+branches.updated_by=Aktualisiert %[1]s von %[2]s
+branches.change_default_branch=Ändere Standard-Branch
+branches.default_deletion_not_allowed=Cannot delete the default branch.
+branches.protected_deletion_not_allowed=Cannot delete a protected branch.
editor.new_file=Neue Datei
editor.upload_file=Datei hochladen
@@ -455,16 +525,19 @@ editor.cancel=Abbrechen
editor.filename_cannot_be_empty=Der Dateiname darf nicht leer sein.
editor.branch_already_exists=Branch '%s' existiert bereits in diesem Repository.
editor.directory_is_a_file='%s' im übergeordneten Verzeichnis ist eine Datei und kein Verzeichnis.
+editor.file_is_a_symlink=Die Datei '%s' ist ein Symlink, der im Webeditor nicht bearbeitet werden kann.
editor.filename_is_a_directory=Die Datei '%s' existiert bereits als Verzeichnis in diesem Repository.
editor.file_editing_no_longer_exists=Die Datei '%s', welche Sie bearbeiten, existiert in diesem Repository nicht mehr.
editor.file_changed_while_editing=Seit dem Start der Bearbeitung hat sich die Datei geändert. Hier klicken um die Änderungen zu sehen, oder nochmals Commit drücken um die Änderungen zu überschreiben.
editor.file_already_exists=Eine Datei mit dem Namen '%s' existiert bereits in diesem Repository.
editor.no_changes_to_show=Keine Änderungen vorhanden.
editor.fail_to_update_file=Fehler beim Ändern/Erstellen der Datei '%s'. Fehler: %v
+editor.fail_to_delete_file=Fehler beim Löschen der Datei '%s'. Fehler: %v
editor.add_subdir=Unterverzeichnis erstellen...
editor.unable_to_upload_files=Fehler beim Hochladen der Dateien zu '%s'. Fehler: %v
editor.upload_files_to_dir=Dateien hochladen nach '%s'
+commits.commit_history=Commit Verlauf
commits.commits=Commits
commits.search=Commits durchsuchen
commits.find=Finden
@@ -562,6 +635,7 @@ pulls.compare_compare=vergleichen
pulls.filter_branch=Branch filtern
pulls.no_results=Keine Ergebnisse verfügbar.
pulls.nothing_to_compare=Es gibt nichts zu vergleichen, da Base- und Head-Branch gleich sind.
+pulls.nothing_merge_base=Es gibt nichts zu vergleichen, da beide Zweige eine komplett unterschiedliche Historie haben.
pulls.has_pull_request=`Es existiert bereits ein Pull-Request zwischen diesen beiden Zielen: %[2]s#%[3]d`
pulls.create=Pull-Request erstellen
pulls.title_desc=möchte %[1]d Commits von %[2]s nach %[3]s zusammenführen
@@ -577,16 +651,21 @@ pulls.is_checking=Die Konfliktprüfung läuft noch. Bitte aktualisieren Sie die
pulls.can_auto_merge_desc=Dieser Pull-Request kann automatisch zusammengeführt werden.
pulls.cannot_auto_merge_desc=Dieser Pull-Request kann nicht automatisch zusammengeführt werden, da es Konflikte gibt.
pulls.cannot_auto_merge_helper=Bitte manuell zusammenführen, um die Konflikte zu lösen.
+pulls.create_merge_commit=Erstelle einen Merge-Commit
+pulls.rebase_before_merging=Rebase vor dem Zusammenführen
+pulls.commit_description=Commit Beschreibung
pulls.merge_pull_request=Pull-Request zusammenführen
pulls.open_unmerged_pull_exists=`Sie können diesen Pull-Request nicht wieder öffnen, da bereits ein offener Pull-Request (#%d) aus dem selben Repository mit den gleichen Merge-Informationen existiert und auf das Zusammenführen wartet.`
+pulls.delete_branch=Zweig löschen
+pulls.delete_branch_has_new_commits=Zweig kann nicht gelöscht werden, da er noch weitere Commits nach dem Zusammenführen enthält.
milestones.new=Neuer Meilenstein
milestones.open_tab=%d offen
milestones.close_tab=%d geschlossen
milestones.closed=Geschlossen %s
milestones.no_due_date=Kein Fälligkeitsdatum
-milestones.open=Offen
-milestones.close=Geschlossen
+milestones.open=Öffnen
+milestones.close=Schließen
milestones.new_subheader=Erstellen Sie Meilensteine, um ihre Issues zu organisieren.
milestones.create=Meilenstein erstellen
milestones.title=Titel
@@ -629,6 +708,29 @@ settings.collaboration.admin=Adminrechte
settings.collaboration.write=Schreibrechte
settings.collaboration.read=Leserechte
settings.collaboration.undefined=Nicht definiert
+settings.branches=Branches
+settings.branches_bare=Branches leerer Repositories können nicht verwaltet werden. Bitte erst Datei(en) pushen.
+settings.default_branch=Standard-Branch
+settings.default_branch_desc=Der Standard-Branch gilt als Basis für Commits, Pull-Requests und Online-Bearbeitung.
+settings.update=Aktualisieren
+settings.update_default_branch_unsupported=Die Änderung des Standard-Branch wird von der Git-Version auf dem Server nicht unterstützt.
+settings.update_default_branch_success=Standard-Branch dieses Repositories wurde erfolgreich aktualisiert!
+settings.protected_branches=Protected Branches
+settings.protected_branches_desc=Schützt Branches vor forcierten Pushes und versehentlichem Löschen. Comitter können freigeschaltet werden.
+settings.choose_a_branch=Wählen Sie einen Branch...
+settings.branch_protection=Branch-Schutz
+settings.branch_protection_desc=Bitte wählen Sie Schutzoptionen für den Branch %s.
+settings.protect_this_branch=Diesen Branch schützen
+settings.protect_this_branch_desc=Verhindere forcierte Pushes sowie Löschungen.
+settings.protect_require_pull_request=Verlange Pull-Request an Stelle von direkten Pushes
+settings.protect_require_pull_request_desc=Aktivieren Sie diese Option, um direktes Pushen in diesen Branch zu verhindern. Commits müssen in einen anderen, ungeschützten Branch gepusht werden und dann per Pull-Request in diesen Branch überführt werden.
+settings.protect_whitelist_committers=Hinzufügen von Benutzern oder Teams zur Whitelist, die in diesen Branch pushen dürfen
+settings.protect_whitelist_committers_desc=Fügt Benutzer oder Teams zur Push-Whitelist dieses Branches hinzu. Auf der Whitelist geführte Benutze können können ohne Prüfung von Pull-Requests pushen.
+settings.protect_whitelist_users=Benutzer, die in diesen Branch pushen können
+settings.protect_whitelist_search_users=Benutzer suchen
+settings.protect_whitelist_teams=Teams, deren Mitglieder in diesen Branch pushen können
+settings.protect_whitelist_search_teams=Teams suchen
+settings.update_protect_branch_success=Schutzoptionen für diesen Branch wurden erfolgreich aktualisiert!
settings.hooks=Webhooks
settings.githooks=Git-Hooks
settings.basic_settings=Grundeinstellungen
@@ -641,19 +743,26 @@ settings.change_reponame_prompt=Diese Änderung wirkt sich darauf aus, wie sich
settings.advanced_settings=Erweiterte Einstellungen
settings.wiki_desc=Wiki einschalten
settings.use_internal_wiki=Eingebautes Wiki verwenden
+settings.allow_public_wiki_desc=Erlaube öffentlichen Zugang zum Wiki, auch wenn das Repository privat ist
settings.use_external_wiki=Externes Wiki verwenden
settings.external_wiki_url=Externe Wiki URL
settings.external_wiki_url_desc=Besucher werden auf diese URL umgeleitet, wenn sie auf den Tab klicken.
settings.issues_desc=Issue-Tracker einschalten
settings.use_internal_issue_tracker=Eingebauten Issue-Tracker verwenden
+settings.allow_public_issues_desc=Erlaube öffentlichen Zugriff auf Issues, auch wenn das Repository privat ist
settings.use_external_issue_tracker=Externes Issue-System verwenden
+settings.external_tracker_url=URL eines externen Issue Trackers
+settings.external_tracker_url_desc=Besucher werden auf diese URL umgeleitet, wenn sie auf den Tab klicken.
settings.tracker_url_format=URL-Format des externen Issue-Systems
settings.tracker_issue_style=Namenskonvention des externen Issue-Trackers:
settings.tracker_issue_style.numeric=Numerisch
settings.tracker_issue_style.alphanumeric=Alphanumerisch
settings.tracker_url_format_desc=Sie können die Platzhalter {user} {repo} {index} für den Benutzernamen, den Namen des Repositories und die Issue-Nummer verwenden.
-settings.pulls_desc=Pull-Requests aktivieren, um öffentliche Mitwirkung zu ermöglichen
+settings.pulls_desc=Erlaube Pull-Requests zur Zusammenarbeit von Repositories und Branches
+settings.pulls.ignore_whitespace=Ignoriere whitespace Änderungen
+settings.pulls.allow_rebase_merge=Die Verwendung von Rebase erlauben, um Commits zu mergen
settings.danger_zone=Gefahrenzone
+settings.cannot_fork_to_same_owner=Besitzer kann das Repository nicht forken.
settings.new_owner_has_same_repo=Der neue Eigentümer hat bereits ein Repository mit dem gleichen Namen. Bitte wählen Sie einen anderen Namen.
settings.convert=In ein normales Repository umwandeln
settings.convert_desc=Dieser Mirror kann in ein normales Repository umgewandelt werden. Dies kann nicht rückgängig gemacht werden.
@@ -661,12 +770,12 @@ settings.convert_notices_1=- Dieser Vorgang wandelt das Mirror-Repository in ein
settings.convert_confirm=Umwandlung bestätigen
settings.convert_succeed=Das Repository wurde erfolgreich in ein normales Repository umgewandelt.
settings.transfer=Besitz übertragen
-settings.transfer_desc=Dieses Repository auf einen anderen Benutzer bzw. eine Organisation in der Sie Admin-Rechte haben übertragen.
+settings.transfer_desc=Dieses Repository auf einen anderen Benutzer oder eine Organisation, in der Sie Admin-Rechte haben, übertragen.
settings.transfer_notices_1=- Sie werden keinen Zugriff mehr haben, wenn der neue Besitzer ein individueller Benutzer ist.
settings.transfer_notices_2=- Sie werden weiterhin Zugriff haben, wenn der neue Besitzer eine Organisation ist und Sie einer der Besitzer sind.
settings.transfer_form_title=Bitte geben Sie die folgenden Informationen ein, um die Operation zu bestätigen:
settings.wiki_delete=Wiki-Daten löschen
-settings.wiki_delete_desc=Das Löschen von Wiki Daten kann nicht rückgängig gemacht werden. Bitte seien Sie vorsichtig.
+settings.wiki_delete_desc=Das Löschen von Wiki-Daten kann nicht rückgängig gemacht werden. Bitte seien Sie vorsichtig.
settings.wiki_delete_notices_1=- Dies löscht und deaktiviert das Wiki für %s
settings.wiki_deletion_success=Repository Wiki Daten erfolgreich gelöscht.
settings.delete=Dieses Repository löschen
@@ -688,20 +797,25 @@ settings.collaborator_deletion_desc=Nach dem Löschen wird dieser Benutzer keine
settings.remove_collaborator_success=Mitarbeiter wurde entfernt.
settings.search_user_placeholder=Benutzer suchen...
settings.org_not_allowed_to_be_collaborator=Eine Organisation kann nicht als Mitarbeiter hinzugefügt werden.
-settings.user_is_org_member=Benutzer ist ein Organisationsmitglied und kann nicht als Mitarbeiter hinzugefügt werden.
-settings.add_webhook=Webhook hinzufügen
settings.hooks_desc=Webhooks erlauben es Ihnen, externe Dienste zu informieren, wenn etwas Bestimmtes in Ihrem Repository passiert. Gogs sendet dann einen POST-Request an alle angegebenen URLs. Erfahren Sie mehr in unserem Webhooks Guide.
+settings.webhooks.add_new=Einen neuen Webhook hinzufügen:
+settings.webhooks.choose_a_type=Typ auswählen...
+settings.add_webhook=Webhook hinzufügen
settings.webhook_deletion=Webhook entfernen
settings.webhook_deletion_desc=Das Löschen dieses Webhooks wird alle zugehörigen Informationen und den Übertragungsverlauf entfernen. Wirklich fortfahren?
settings.webhook_deletion_success=Webhook wurde erfolgreich entfernt!
settings.webhook.test_delivery=Senden testen
settings.webhook.test_delivery_desc=Sendet ein simuliertes Push-Ereignis, um die Webhook-Einstellungen zu testen
settings.webhook.test_delivery_success=Test-Webhook wurde zur Auslieferungswarteschlange hinzugefügt. Es kann einige Sekunden dauern, bevor es in der Auslieferungshistorie erscheint.
+settings.webhook.redelivery=Erneuter Versand
+settings.webhook.redelivery_success=Hook-Task '%s' wurde wieder zur Auslieferungswarteschlange hinzugefügt. Es kann einige Sekunden, bis sich der Auslieferungsstatus in der History aktualisiert hat.
settings.webhook.request=Anfrage
settings.webhook.response=Antwort
settings.webhook.headers=Kopfzeilen
settings.webhook.payload=Nutzdaten
settings.webhook.body=Inhalt
+settings.webhook.err_cannot_parse_payload_url=Payload URL kann nicht analysiert werden: %v
+settings.webhook.url_resolved_to_blocked_local_address=Die Payload-URL wurde in eine lokale Netzwerkadresse aufgelöst, die implizit blockiert ist.
settings.githooks_desc=Git-Hooks werden von Git selbst bereitgestellt. Sie können die Dateien der unterstützten Hooks in der Liste unten bearbeiten, um eigene Operationen einzubinden.
settings.githook_edit_desc=Wenn ein Hook inaktiv ist, wird der Standardinhalt benutzt. Lassen Sie den Inhalt leer, um den Hook zu deaktivieren.
settings.githook_name=Hook-Name
@@ -711,6 +825,7 @@ settings.add_webhook_desc=Gogs sendet einen POST-Request an die unt
settings.payload_url=Payload URL
settings.content_type=Inhaltstyp
settings.secret=Secret
+settings.secret_desc=Das Secret wird im X-Gogs-Signature Header als hexadezimalem SHA256 HMAC Stempel der Nutzlast.
settings.slack_username=Benutzername
settings.slack_icon_url=Icon URL
settings.slack_color=Farbe
@@ -720,10 +835,20 @@ settings.event_send_everything=Ich brauche alles.
settings.event_choose=Lass mich auswählen, was ich brauche.
settings.event_create=Erstellen
settings.event_create_desc=Branch/Tag erstellt
-settings.event_pull_request=Pull-Request
-settings.event_pull_request_desc=Pull-Request geöffnet, geschlossen, wieder geöffnet, bearbeitet, zugewiesen, nicht zugewiesen, Label aktualisiert, Label gelöscht oder synchronisiert.
+settings.event_delete=Löschen
+settings.event_delete_desc=Branch/Tag gelöscht
+settings.event_fork=Fork
+settings.event_fork_desc=Repository geforkt
settings.event_push=Push
settings.event_push_desc=Git push auf ein Repository
+settings.event_issues=Issues
+settings.event_issues_desc=Issue geöffnet, geschlossen, wieder geöffnet, bearbeitet, zugewiesen, nicht zugewiesen, Label aktualisiert, Label gelöscht, einem Meilenstein zugewiesen oder davon entfernt.
+settings.event_pull_request=Pull-Request
+settings.event_pull_request_desc=Pull-Request geöffnet, geschlossen, wieder geöffnet, bearbeitet, zugewiesen, nicht zugewiesen, Label aktualisiert, Label gelöscht, einem Meilenstein zugewiesen, davon entfernt oder synchronisiert.
+settings.event_issue_comment=Issue-Kommentar
+settings.event_issue_comment_desc=Issue-Kommentar angelegt, geändert oder gelöscht.
+settings.event_release=Release
+settings.event_release_desc=Release in Repository veröffentlicht.
settings.active=Aktiv
settings.active_helper=Details über das auslösende Ereignis des Webhooks werden ebenfalls mit gesendet
settings.add_hook_success=Webhook hinzugefügt
@@ -733,10 +858,13 @@ settings.delete_webhook=Webhook löschen
settings.recent_deliveries=Letzte Zustellungen
settings.hook_type=Hook Typ
settings.add_slack_hook_desc=Fügen Sie Slack-Integration zu Ihrem Repository hinzu.
+settings.add_discord_hook_desc=Fügen Sie Discord-Integration zu Ihrem Repository hinzu.
+settings.add_dingtalk_hook_desc=Dingtalk-Integration zu deinem Repository hinzufügen.
settings.slack_token=Token
settings.slack_domain=Domain
settings.slack_channel=Kanal
settings.deploy_keys=Deploy-Schlüssel
+settings.deploy_keys_helper=Häufiger Fehler! Wenn Sie öffentliche Schlüssel hinzufügen wollen, gehen Sie zu Ihren Kontoeinstellungen.
settings.add_deploy_key=Deploy-Schlüssel hinzufügen
settings.deploy_key_desc=Deploy-Schlüssel haben nur lesenden Zugriff. Sie sind nicht identisch mit dem SSH-Schlüssel des persönlichen Kontos.
settings.no_deploy_keys=Sie haben noch keine Deploy-Schlüssel hinzugefügt.
@@ -748,6 +876,8 @@ settings.add_key_success=Der Deploy-Schlüssel '%s' wurde erfolgreich hinzugefü
settings.deploy_key_deletion=Deploy-Schlüssel löschen
settings.deploy_key_deletion_desc=Nach dem Löschen dieses Deploy-Schlüssels werden entsprechende Zugriffe auf dieses Repository nicht mehr möglich sein. Möchten Sie wirklich fortfahren?
settings.deploy_key_deletion_success=Deploy-Schlüssel wurde erfolgreich gelöscht!
+settings.description_desc=Beschreibung des Repository. Maximal 512 Zeichen.
+settings.description_length=Verfügbare Zeichen
diff.browse_source=Quellcode durchsuchen
diff.parent=Ursprung
@@ -766,7 +896,6 @@ release.releases=Releases
release.new_release=Neues Release
release.draft=Entwurf
release.prerelease=Pre-Release
-release.stable=Stabil
release.edit=bearbeiten
release.ahead=%d Commits zu %s seit diesem Release
release.source_code=Quelltext
@@ -813,8 +942,8 @@ team_name_helper=Unter diesem Namen können Sie in Diskussionen auf das Team ver
team_desc_helper=Worum geht es bei diesem Team?
team_permission_desc=Welche Berechtigungsstufe soll das Team haben?
-form.name_reserved=Organisationsname '%s' ist bereits vergeben.
-form.name_pattern_not_allowed=Organisationsnamen der Form '%s' sind nicht erlaubt.
+form.name_not_allowed=Organisationsname oder Muster %q ist nicht zulässig.
+form.team_name_not_allowed=Benutzername oder Muster %q ist nicht erlaubt.
settings=Einstellungen
settings.options=Optionen
@@ -886,12 +1015,19 @@ first_page=Erste
last_page=Letzte
total=Gesamt: %d
+dashboard.build_info=Build-Informationen
+dashboard.app_ver=Anwendungsversion
+dashboard.git_version=Git-Version
+dashboard.go_version=Go-Version
+dashboard.build_time=Build-Zeit
+dashboard.build_commit=Build-Commit
dashboard.statistic=Statistik
dashboard.operations=Operationen
dashboard.system_status=Systemmonitor-Status
dashboard.statistic_info=Gogs Datenbank hat %d Benutzer, %d Organisationen, %d öffentliche Schlüssel, %d Repositories, %d Beobachtet, %d Favoriten, %d Aktionen, %d Zugriffe, %d Issues, %d Kommentare, %d Konten sozialer Medien, %d Folgende, %d Mirror, %d Releases, %d Login-Quellen, %d Webhooks, %d Meilensteine, %d Label, %d Hook-Tasks, %d Teams, %d Aktualisierungs-Tasks, %d Anhänge.
dashboard.operation_name=Name der Operation
dashboard.operation_switch=Wechseln
+dashboard.select_operation_to_run=Bitte wählen Sie den auszuführenden Vorgang aus
dashboard.operation_run=Ausführen
dashboard.clean_unbind_oauth=Nicht verbundene OAuths bereinigen
dashboard.clean_unbind_oauth_success=Alle nicht verbundenen OAuth-Tokens wurden gelöscht.
@@ -905,8 +1041,8 @@ dashboard.git_gc_repos=Garbage Collection auf Repositories ausführen
dashboard.git_gc_repos_success=Garbage Collection wurde auf allen Repositories erfolgreich ausgeführt.
dashboard.resync_all_sshkeys=Datei '.ssh/authorized_keys' neu anlegen (Achtung: Schlüssel, die nicht zu Gogs gehören gehen verloren)
dashboard.resync_all_sshkeys_success=Alle öffentlichen Keys wurden erfolgreich neu geschrieben.
-dashboard.resync_all_update_hooks=Alle Aktualisierungs-Hooks von Repositories neu anlegen (wird benötigt, wenn der angepasste Konfigurationspfad geändert wurde)
-dashboard.resync_all_update_hooks_success=Die Hooks aller Repositories wurden erfolgreich neu angelegt.
+dashboard.resync_all_hooks=Synchronisiere pre-receive, update und post-receive Hooks für alle Repositories
+dashboard.resync_all_hooks_success=Pre-receive, update und post-receive Hooks aller Repositorien wurden erfolgreich synchronisiert.
dashboard.reinit_missing_repos=Alle Repository-Datensätze mit verloren gegangenen Git-Dateien neu initialisieren
dashboard.reinit_missing_repos_success=Alle Repository-Datensätze, die Git-Dateien verloren haben wurden erfolgreich neu initialisiert.
@@ -981,12 +1117,14 @@ repos.private=Privat
repos.watches=Beobachtungen
repos.stars=Favoriten
repos.issues=Issues
+repos.size=Größe
-auths.auth_manage_panel=Authentifizierung
+auths.auth_sources=Authentifizierungsquelle
auths.new=Neue Quelle hinzufügen
auths.name=Name
auths.type=Typ
auths.enabled=Aktiviert
+auths.default=Standard
auths.updated=Aktualisiert
auths.auth_type=Authentifizierungstyp
auths.auth_name=Authentifizierungsname
@@ -995,15 +1133,21 @@ auths.domain=Domain
auths.host=Host
auths.port=Port
auths.bind_dn=DN binden
+auths.bind_dn_helper=Sie können "%s" als Platzhalter für den Benutzernamen einsetzen, z.B. DOM\%s
auths.bind_password=Passwort binden
auths.bind_password_helper=Achtung: Das Passwort wird im Klartext gespeichert. Benutzen Sie kein Konto mit hoher Berechtigungsstufe.
auths.user_base=Basis für Benutzersuche
-auths.user_dn=Benutzer DN
+auths.user_dn=Benutzer-DN
auths.attribute_username=Attribut Benutzername
auths.attribute_username_placeholder=Leer lassen, um den Wert aus dem Anmeldeformular als Benutzernamen zu verwenden.
-auths.attribute_name=Attribut Vorname
+auths.attribute_name=Vornamenattribut
auths.attribute_surname=Attribut Nachname
auths.attribute_mail=Attribut E-Mail
+auths.verify_group_membership=Überprüfen der Gruppenmitgliedschaft
+auths.group_search_base_dn=Gruppensuche Basisdomainname
+auths.group_filter=Gruppenfilter
+auths.group_attribute_contain_user_list=Gruppenattribut, beinhaltet die Benutzerliste
+auths.user_attribute_listed_in_group=Benutzerattribut in der Gruppenliste
auths.attributes_in_bind=Hole Attribute im Bind-Kontext
auths.filter=Benutzerfilter
auths.admin_filter=Admin Filter
@@ -1017,9 +1161,9 @@ auths.enable_tls=TLS-Verschlüsselung aktivieren
auths.skip_tls_verify=TLS-Prüfung überspringen
auths.pam_service_name=PAM Dienstname
auths.enable_auto_register=Automatische Registrierung aktivieren
-auths.tips=Tipps
auths.edit=Authentifizierungseinstellungen bearbeiten
auths.activated=Diese Authentifizierung ist aktiv
+auths.default_auth=Diese Authentifizierungsmethode ist die Vorgabe
auths.new_success=Neue Authentifizierung '%s' wurde erfolgreich hinzugefügt.
auths.update_success=Die Authentifizierungseinstellungen wurden erfolgreich aktualisiert.
auths.update=Authentifizierungseinstellungen aktualisieren
@@ -1028,107 +1172,189 @@ auths.delete_auth_title=Authentifizierung löschen
auths.delete_auth_desc=Diese Authentifizierung wird gelöscht. Möchten Sie fortfahren?
auths.still_in_used=Diese Authentifizierung wird noch von einigen Benutzern verwendet. Bitte löschen Sie diese Benutzer oder ändern Sie deren Anmeldetyp.
auths.deletion_success=Authentifizierung wurde erfolgreich gelöscht!
+auths.login_source_exist=Login-Quelle '%s' ist bereits vorhanden.
+auths.github_api_endpoint=API Endpunkt
+config.not_set=(nicht festgelegt)
config.server_config=Serverkonfiguration
-config.app_name=Name der Anwendung
-config.app_ver=Anwendungsversion
-config.app_url=Anwendungs-URL
-config.domain=Domain
-config.offline_mode=Offline-Modus
-config.disable_router_log=Router-Log deaktivieren
+config.brand_name=Markenname
config.run_user=Ausführender Benutzer
config.run_mode=Laufzeit-Modus
-config.repo_root_path=Repository-Verzeichnis
-config.static_file_root_path=Verzeichnis für statische Dateien
-config.log_file_root_path=Log-Verzeichnis
-config.script_type=Skript-Typ
-config.reverse_auth_user=Nutzer bei Reverse-Authentifizierung
+config.server.external_url=Externe URL
+config.server.domain=Domäne
+config.server.protocol=Protokoll
+config.server.http_addr=HTTP-Adresse
+config.server.http_port=HTTP-Port
+config.server.cert_file=Zertifikatsdatei
+config.server.key_file=Schlüsseldatei
+config.server.tls_min_version=Minimale TLS-Version
+config.server.unix_socket_permission=Unix-Socket-Berechtigung
+config.server.local_root_url=Lokale Root-URL
+config.server.offline_mode=Offline-Modus
+config.server.disable_router_log=Router-Log deaktivieren
+config.server.enable_gzip=Gzip aktivieren
+config.server.app_data_path=Anwendungsdatenpfad
+config.server.load_assets_from_disk=Assets von Festplatte laden
+config.server.landing_url=Startseite
config.ssh_config=SSH Konfiguration
-config.ssh_enabled=Aktiviert
-config.ssh_start_builtin_server=Eingebauten Server starten
-config.ssh_domain=Domain
-config.ssh_port=Port
-config.ssh_listen_port=Listen Port
-config.ssh_root_path=Verzeichnis
-config.ssh_key_test_path=Schlüssel-Test-Pfad
-config.ssh_keygen_path=Keygen ('ssh-keygen') Pfad
-config.ssh_minimum_key_size_check=Prüfung der Mindestschlüssellänge
-config.ssh_minimum_key_sizes=Minimale Schlüssellängen
+config.ssh.enabled=Aktiviert
+config.ssh.domain=Exponierte Domain
+config.ssh.port=Exponierter Port
+config.ssh.root_path=Wurzelpfad
+config.ssh.keygen_path=Keygenpfad
+config.ssh.key_test_path=Schlüsseltestpfad
+config.ssh.minimum_key_size_check=Prüfung der Mindestschlüssellänge
+config.ssh.minimum_key_sizes=Mindestschlüssellängen
+config.ssh.rewrite_authorized_keys_at_start=Beim Start "authorized_keys" umschreiben
+config.ssh.start_builtin_server=Eingebauten Server starten
+config.ssh.listen_host=Listen-Host
+config.ssh.listen_port=Listen-Port
+config.ssh.server_ciphers=Serverchiffren
+config.ssh.server_macs=Server MACs
+config.ssh.server_algorithms=Server-Algorithmen
+
+config.repo_config=Repository-Konfiguration
+config.repo.root_path=Wurzelpfad
+config.repo.script_type=Skript-Typ
+config.repo.ansi_chatset=ANSI-Zeichensatz
+config.repo.force_private=Privat erzwingen
+config.repo.max_creation_limit=Maximales Erstellungslimit
+config.repo.preferred_licenses=Bevorzugte Lizenzen
+config.repo.disable_http_git=HTTP-Git deaktivieren
+config.repo.enable_local_path_migration=Lokale Pfadmigration aktivieren
+config.repo.enable_raw_file_render_mode=Darstellen von Roh-Dateien aktivieren
+config.repo.commits_fetch_concurrency=Anzahl gleichzeitiger Commit-/Fetch-Prozesse
+config.repo.editor.line_wrap_extensions=Editor Erweiterungen für Zeilenumbrüche
+config.repo.editor.previewable_file_modes=Vorschau der Dateimodi des Editors
+config.repo.upload.enabled=Upload aktiviert
+config.repo.upload.temp_path=Temporärer Pfad für Uploads
+config.repo.upload.allowed_types=Erlaubte Upload-Typen
+config.repo.upload.file_max_size=Upload-Dateigrößenlimit
+config.repo.upload.max_files=Upload-Dateilimit
config.db_config=Datenbankkonfiguration
-config.db_type=Typ
-config.db_host=Host
-config.db_name=Name
-config.db_user=Benutzer
-config.db_ssl_mode=SSL-Modus
-config.db_ssl_mode_helper=(nur für "postgres")
-config.db_path=Verzeichnis
-config.db_path_helper=(für "sqlite3" und "tidb")
-
-config.service_config=Service-Konfiguration
-config.register_email_confirm=E-Mail-Bestätigung bei Registrierung
-config.disable_register=Registrierung deaktivieren
-config.show_registration_button=Schaltfläche Registrieren anzeigen
-config.require_sign_in_view=Ansehen erfordert Anmeldung
-config.mail_notify=E-Mail-Benachrichtigung
-config.disable_key_size_check=Prüfung der Mindestschlüssellänge deaktiveren
-config.enable_captcha=Captcha aktivieren
-config.active_code_lives=Aktivierungscode Lebensdauer
-config.reset_password_code_lives=Passwortcode Lebensdauer
+config.db.type=Typ
+config.db.host=Host
+config.db.name=Name
+config.db.schema=Schema
+config.db.schema_helper=(nur für "postgres")
+config.db.user=Benutzer
+config.db.ssl_mode=SSL-Modus
+config.db.ssl_mode_helper=(nur für "postgres")
+config.db.path=Pfad
+config.db.path_helper=(nur für "sqlite3")
+config.db.max_open_conns=Maximale Anzahl offener Verbindungen
+config.db.max_idle_conns=Maximale Leerlaufverbindungen
+
+config.security_config=Sicherheitskonfiguration
+config.security.login_remember_days=Anzahl Tage zum Speichern des Logins
+config.security.cookie_remember_name=Cookie merken
+config.security.cookie_username=Benutzernamen-Cookie
+config.security.cookie_secure=Sicheres Cookie aktivieren
+config.security.reverse_proxy_auth_user=Reverse-Proxy-Authentifizierungs-Header
+config.security.enable_login_status_cookie=Login-Status-Cookie aktivieren
+config.security.login_status_cookie_name=Login-Status-Cookie
+config.security.local_network_allowlist=Zulassungsliste für lokale Netzwerke
+
+config.email_config=E-Mail-Konfiguration
+config.email.enabled=Aktiviert
+config.email.subject_prefix=Betreff-Präfix
+config.email.host=Host
+config.email.from=Von
+config.email.user=Benutzer
+config.email.disable_helo=HELO deaktivieren
+config.email.helo_hostname=HELO Hostname
+config.email.skip_verify=Zertifikatsüberprüfung überspringen
+config.email.use_certificate=Benutzerdefiniertes Zertifikat verwenden
+config.email.cert_file=Zertifikatsdatei
+config.email.key_file=Schlüsseldatei
+config.email.use_plain_text=Klartext verwenden
+config.email.add_plain_text_alt=Klartext-Alternative hinzufügen
+config.email.send_test_mail=Test-E-Mail senden
+config.email.test_mail_failed=Fehler beim Senden der Test-E-Mail an '%s': %v
+config.email.test_mail_sent=Test-E-Mail wurde an '%s ' gesendet.
+
+config.auth_config=Authentifizierungskonfiguration
+config.auth_custom_logout_url=Custom logout URL
+config.auth.activate_code_lives=Aktivierungscode Lebensdauer
+config.auth.reset_password_code_lives=Gültigkeitsdauer Zurücksetzungs-Code
+config.auth.require_email_confirm=E-Mail-Bestätigung erforderlich
+config.auth.require_sign_in_view=Anmeldung erforderlich
+config.auth.disable_registration=Registrierung deaktivieren
+config.auth.enable_registration_captcha=Registrierungs-Captcha aktivieren
+config.auth.enable_reverse_proxy_authentication=Reverse-Proxy-Authentifizierung aktivieren
+config.auth.enable_reverse_proxy_auto_registration=Automatische Reverse-Proxy-Registrierung aktivieren
+config.auth.reverse_proxy_authentication_header=Reverse-Proxy-Authentifizierungs-Header
+
+config.user_config=Benutzerkonfiguration
+config.user.enable_email_notify=E-Mail-Benachrichtigung aktivieren
-config.webhook_config=Webhook-Konfiguration
-config.queue_length=Warteschlangenlänge
-config.deliver_timeout=Zeitlimit für Zustellung
-config.skip_tls_verify=TLS verifikation überspringen
-
-config.mailer_config=Mailer-Konfiguration
-config.mailer_enabled=Aktiviert
-config.mailer_disable_helo=HELO Deaktivieren
-config.mailer_name=Name
-config.mailer_host=Host
-config.mailer_user=Benutzer
-config.send_test_mail=Test-E-Mail senden
-config.test_mail_failed=Das Senden der Test-E-Mail an '%s': %v ist fehlgeschlagen
-config.test_mail_sent=Test-E-Mail wurde an '%s' gesendet.
-
-config.oauth_config=OAuth-Konfiguration
-config.oauth_enabled=Aktiviert
+config.session_config=Session-Konfiguration
+config.session.provider=Anbieter
+config.session.provider_config=Anbieter-Konfiguration
+config.session.cookie_name=Cookie
+config.session.https_only=Nur HTTPS
+config.session.gc_interval=GC-Intervall
+config.session.max_life_time=Maximale Lebensdauer
+config.session.csrf_cookie_name=CSRF-Cookie
config.cache_config=Cache-Konfiguration
-config.cache_adapter=Cache-Adapter
-config.cache_interval=Cache-Intervall
-config.cache_conn=Cache-Anbindung
-
-config.session_config=Session-Konfiguration
-config.session_provider=Session-Provider
-config.provider_config=Provider-Einstellungen
-config.cookie_name=Cookie-Name
-config.enable_set_cookie=Cookies verwenden
-config.gc_interval_time=GC-Intervall
-config.session_life_time=Session-Lebensdauer
-config.https_only=Nur HTTPS
-config.cookie_life_time=Cookie-Lebensdauer
+config.cache.adapter=Adapter
+config.cache.interval=GC-Intervall
+config.cache.host=Host
+
+config.http_config=HTTP-Konfiguration
+config.http.access_control_allow_origin=Access-Control-Allow-Origin
+
+config.attachment_config=Anhang-Konfiguration
+config.attachment.enabled=Aktiviert
+config.attachment.path=Pfad
+config.attachment.allowed_types=Erlaubte Typen
+config.attachment.max_size=Größenlimit
+config.attachment.max_files=Dateilimit
+
+config.release_config=Release-Konfiguration
+config.release.attachment.enabled=Anhang aktiviert
+config.release.attachment.allowed_types=Erlaubte Anhang-Typen
+config.release.attachment.max_size=Größenlimit für Anhang
+config.release.attachment.max_files=Dateilimit für Anhang
config.picture_config=Konfiguration der Profilbilder
-config.picture_service=Bildservice
-config.disable_gravatar=Gravatar deaktivieren
-config.enable_federated_avatar=Föderierte Profilbilder einschalten
+config.picture.avatar_upload_path=Benutzer-Avatar Upload-Pfad
+config.picture.repo_avatar_upload_path=Repository-Avatar Upload-Pfad
+config.picture.gravatar_source=Gravatar-Quelle
+config.picture.disable_gravatar=Gravatar deaktivieren
+config.picture.enable_federated_avatar=Föderierte Avatare aktivieren
+
+config.mirror_config=Mirror-Konfiguration
+config.mirror.default_interval=Standardintervall
+
+config.webhook_config=Webhook-Konfiguration
+config.webhook.types=Typen
+config.webhook.deliver_timeout=Zeitlimit für Zustellung
+config.webhook.skip_tls_verify=TLS-Prüfung überspringen
config.git_config=Git Konfiguration
-config.git_disable_diff_highlight=Diff Syntaxhervorhebung ausschalten
-config.git_max_diff_lines=Max Diff Zeilen (in einer Datei)
-config.git_max_diff_line_characters=Max Diff Zeichen (in einer Zeile)
-config.git_max_diff_files=Max Diff Dateien (Anzeige)
-config.git_gc_args=GC-Argumente
-config.git_migrate_timeout=Zeitlimit für Migration
-config.git_mirror_timeout=Zeitlimit für Mirror-Aktualisierung
-config.git_clone_timeout=Zeitlimit für Clone
-config.git_pull_timeout=Zeitlimit für Pull
-config.git_gc_timeout=Zeitlimit für GC
+config.git.disable_diff_highlight=Diff-Syntaxhervorhebung ausschalten
+config.git.max_diff_lines=Zeilenlimit für Diff (für eine einzelne Datei)
+config.git.max_diff_line_characters=Zeichenlimit für Diff (für eine einzelne Datei)
+config.git.max_diff_files=Dateilimit für Diff (für einen einzelnen Diff)
+config.git.gc_args=GC-Argumente
+config.git.migrate_timeout=Zeitlimit für Migration
+config.git.mirror_timeout=Zeitlimit zum Spiegeln
+config.git.clone_timeout=Clone-Timeout
+config.git.pull_timeout=Pull-Timeout
+config.git.gc_timeout=GC-Timeout
+
+config.lfs_config=LFS-Konfiguration
+config.lfs.storage=Speicher
+config.lfs.objects_path=Objektpfad
config.log_config=Konfiguration des Loggings
-config.log_mode=Log-Modus
+config.log_file_root_path=Log-Verzeichnis
+config.log_mode=Modus
+config.log_options=Optionen
monitor.cron=Cron-Tasks
monitor.name=Name
@@ -1159,17 +1385,24 @@ notices.delete_success=Systemmitteilungen wurden erfolgreich gelöscht.
create_repo=hat das Repository %s erstellt
rename_repo=hat das Repository von %[1]s zu %[3]s umbenannt
commit_repo=hat auf %[3]s in %[4]s gepusht
+compare_commits=Zeige Vergleich für diese %d Commits
+transfer_repo=hat Repository %s transferiert an %s
create_issue=`hat Issue %s#%[2]s geöffnet`
close_issue=`hat Issue %s#%[2]s geschlossen`
reopen_issue=`hat Issue %s#%[2]s wieder geöffnet`
+comment_issue=`hat Issue %s#%[2]s kommentiert`
create_pull_request=`hat Pull-Request %s#%[2]s erstellt`
close_pull_request=`hat Pull-Request %s#%[2]s geschlossen`
reopen_pull_request=`hat den Pull-Request %s#%[2]s wieder geöffnet`
-comment_issue=`hat Issue %s#%[2]s kommentiert`
-merge_pull_request=`hat Pull-Request %s#%[2]s zuammengeführt`
-transfer_repo=hat Repository %s transferiert an %s
+merge_pull_request=`hat Pull-Request %s#%[2]s zusammengeführt`
+create_branch=hat neuen Branch %[3]s in %[4]s angelegt
+delete_branch=hat Branch %[2]s in %[3]s gelöscht
push_tag=hat Tag %[2]s auf %[3]s gepusht
-compare_commits=Zeige Vergleich für diese %d Commits
+delete_tag=hat Tag %[2]s in %[3]s gelöscht
+fork_repo=hat das Repository nach %s geforkt
+mirror_sync_push=hat auf %[3]s in %[4]s gepusht
+mirror_sync_create=synced new reference %[2]s to %[3]s from mirror
+mirror_sync_delete=synced and deleted reference %[2]s at %[3]s from mirror
[tool]
ago=vor
@@ -1191,6 +1424,7 @@ months=%[2]s %[1]d Monaten
years=%[2]s %[1]d Jahren
raw_seconds=Sekunden
raw_minutes=Minuten
+raw_hours=Stunden
[dropzone]
default_message=Zum Hochladen hier klicken oder Datei hier ablegen.
diff --git a/conf/locale/locale_en-GB.ini b/conf/locale/locale_en-GB.ini
new file mode 100644
index 00000000000..294506ff412
--- /dev/null
+++ b/conf/locale/locale_en-GB.ini
@@ -0,0 +1,1511 @@
+app_desc=A painless self-hosted Git service
+
+home=Home
+dashboard=Dashboard
+explore=Explore
+help=Help
+sign_in=Sign In
+sign_out=Sign Out
+sign_up=Sign Up
+register=Register
+website=Website
+page=Page
+template=Template
+language=Language
+create_new=Create...
+user_profile_and_more=User profile and more
+signed_in_as=Signed in as
+
+username=Username
+email=Email
+password=Password
+re_type=Re-Type
+captcha=Captcha
+
+repository=Repository
+organization=Organisation
+mirror=Mirror
+new_repo=New Repository
+new_migrate=New Migration
+new_mirror=New Mirror
+new_fork=New Fork Repository
+new_org=New Organisation
+manage_org=Manage Organisations
+admin_panel=Admin Panel
+account_settings=Account Settings
+settings=Settings
+your_profile=Your Profile
+your_settings=Your Settings
+
+activities=Activities
+pull_requests=Pull Requests
+issues=Issues
+
+cancel=Cancel
+
+[status]
+page_not_found=Page Not Found
+internal_server_error=Internal Server Error
+
+[install]
+install=Installation
+title=Install Steps For First-time Run
+docker_helper=If you're running Gogs inside Docker, please read Guidelines carefully before you change anything in this page!
+requite_db_desc=Gogs requires MySQL, PostgreSQL, SQLite3 or TiDB (via MySQL protocol).
+db_title=Database Settings
+db_type=Database Type
+host=Host
+user=User
+password=Password
+db_name=Database Name
+db_schema=Schema
+db_helper=Please use INNODB engine with utf8_general_ci charset for MySQL.
+ssl_mode=SSL Mode
+path=Path
+sqlite_helper=The file path of SQLite3 or TiDB database. Please use absolute path when you start as service.
+err_empty_db_path=SQLite3 or TiDB database path cannot be empty.
+no_admin_and_disable_registration=You cannot disable registration without creating an admin account.
+err_empty_admin_password=Admin password cannot be empty.
+
+general_title=Application General Settings
+app_name=Application Name
+app_name_helper=Put your organisation name here huge and loud!
+repo_path=Repository Root Path
+repo_path_helper=All Git remote repositories will be saved to this directory.
+run_user=Run User
+run_user_helper=The user must have access to Repository Root Path and run Gogs.
+domain=Domain
+domain_helper=This affects SSH clone URLs.
+ssh_port=SSH Port
+ssh_port_helper=Port number which your SSH server is using, leave it empty to disable SSH feature.
+use_builtin_ssh_server=Use Builtin SSH Server
+use_builtin_ssh_server_popup=Start builtin SSH server for Git operations to distinguish from system SSH daemon.
+http_port=HTTP Port
+http_port_helper=Port number which application will listen on.
+app_url=Application URL
+app_url_helper=This affects HTTP/HTTPS clone URL and somewhere in email.
+log_root_path=Log Path
+log_root_path_helper=Directory to write log files to.
+enable_console_mode=Enable Console Mode
+enable_console_mode_popup=In addition to file mode, also print logs to console.
+default_branch=Default Branch
+
+optional_title=Optional Settings
+email_title=Email Service Settings
+smtp_host=SMTP Host
+smtp_from=From
+smtp_from_helper=Mail from address, RFC 5322. It can be just an email address, or the "Name" format.
+mailer_user=Sender Email
+mailer_password=Sender Password
+register_confirm=Enable Register Confirmation
+mail_notify=Enable Mail Notification
+server_service_title=Server and Other Services Settings
+offline_mode=Enable Offline Mode
+offline_mode_popup=Disable CDN even in production mode, all resource files will be served locally.
+disable_gravatar=Disable Gravatar Service
+disable_gravatar_popup=Disable Gravatar and custom sources, all avatars are uploaded by users or default.
+federated_avatar_lookup=Enable Federated Avatars Lookup
+federated_avatar_lookup_popup=Enable federated avatars lookup to use federated open source service based on libravatar.
+disable_registration=Disable Self-registration
+disable_registration_popup=Disable user self-registration, only admin can create accounts.
+enable_captcha=Enable Captcha
+enable_captcha_popup=Require validate captcha for user self-registration.
+require_sign_in_view=Enable Require Sign In to View Pages
+require_sign_in_view_popup=Only signed in users can view pages, visitors will only be able to see sign in/up pages.
+admin_setting_desc=You do not have to create an admin account right now, user whoever ID=1 will gain admin access automatically.
+admin_title=Admin Account Settings
+admin_name=Username
+admin_password=Password
+confirm_password=Confirm Password
+admin_email=Admin Email
+install_gogs=Install Gogs
+test_git_failed=Fail to test 'git' command: %v
+sqlite3_not_available=Your release version does not support SQLite3, please download the official binary version from %s, NOT the gobuild version.
+invalid_db_setting=Database setting is not correct: %v
+invalid_repo_path=Repository root path is invalid: %v
+run_user_not_match=Run user isn't the current user: %s -> %s
+smtp_host_missing_port=SMTP Host is missing port in address.
+invalid_smtp_from=SMTP From field is not valid: %v
+save_config_failed=Fail to save configuration: %v
+init_failed=Failed to initialize application: %v
+invalid_admin_setting=Admin account setting is invalid: %v
+install_success=Welcome! We're glad that you chose Gogs, have fun and take care.
+invalid_log_root_path=Log root path is invalid: %v
+
+[home]
+uname_holder=Username or email
+password_holder=Password
+switch_dashboard_context=Switch Dashboard Context
+my_repos=My Repositories
+show_more_repos=Show more repositories...
+collaborative_repos=Collaborative Repositories
+my_orgs=My Organisations
+my_mirrors=My Mirrors
+view_home=View %s
+
+issues.in_your_repos=In your repositories
+
+[explore]
+repos=Repositories
+users=Users
+organizations=Organisations
+search=Search
+
+[auth]
+create_new_account=Create New Account
+register_hepler_msg=Already have an account? Sign in now!
+social_register_hepler_msg=Already have an account? Bind now!
+disable_register_prompt=Sorry, registration has been disabled. Please contact the site administrator.
+disable_register_mail=Sorry, Register Mail Confirmation has been disabled.
+auth_source=Authentication Source
+local=Local
+remember_me=Remember Me
+forgot_password=Forgot Password
+forget_password=Forgot password?
+sign_up_now=Need an account? Sign up now.
+confirmation_mail_sent_prompt=A new confirmation email has been sent to %s, please check your inbox within the next %d hours to complete the registration process.
+active_your_account=Activate Your Account
+prohibit_login=Login Prohibited
+prohibit_login_desc=Your account is prohibited to login, please contact site admin.
+resent_limit_prompt=Sorry, you already requested an activation email recently. Please wait 3 minutes then try again.
+has_unconfirmed_mail=Hi %s, you have an unconfirmed email address (%s). 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
+send_reset_mail=Click here to (re)send your password reset email
+reset_password=Reset Your Password
+invalid_code=Sorry, your confirmation code has expired or not valid.
+reset_password_helper=Click here to reset your password
+password_too_short=Password length cannot be less then 6.
+non_local_account=Non-local accounts cannot change passwords through Gogs.
+
+login_two_factor=Two-factor Authentication
+login_two_factor_passcode=Authentication Passcode
+login_two_factor_enter_recovery_code=Enter a two-factor recovery code
+login_two_factor_recovery=Two-factor Recovery
+login_two_factor_recovery_code=Recovery Code
+login_two_factor_enter_passcode=Enter a two-factor passcode
+login_two_factor_invalid_recovery_code=Recovery code has been used or does not valid.
+
+[mail]
+activate_account=Please activate your account
+activate_email=Verify your email address
+reset_password=Reset your password
+register_success=Registration successful, welcome
+register_notify=Welcome on board
+
+[modal]
+yes=Yes
+no=No
+modify=Modify
+
+[form]
+UserName=Username
+RepoName=Repository name
+Email=Email address
+Password=Password
+Retype=Re-type password
+SSHTitle=SSH key name
+HttpsUrl=HTTPS URL
+PayloadUrl=Payload URL
+TeamName=Team name
+AuthName=Authorisation name
+AdminEmail=Admin email
+
+NewBranchName=New branch name
+CommitSummary=Commit summary
+CommitMessage=Commit message
+CommitChoice=Commit choice
+TreeName=File path
+Content=Content
+
+require_error=` cannot be empty.`
+alpha_dash_error=` must be valid alpha or numeric or dash(-_) characters.`
+alpha_dash_dot_error=` must be valid alpha or numeric or dash(-_) or dot characters.`
+alpha_dash_dot_slash_error=` must be valid alpha or numeric or dash(-_) or dot characters or slashes.`
+size_error=` must be size %s.`
+min_size_error=` must contain at least %s characters.`
+max_size_error=` must contain at most %s characters.`
+email_error=` is not a valid email address.`
+url_error=` is not a valid URL.`
+include_error=` must contain substring '%s'.`
+unknown_error=Unknown error:
+captcha_incorrect=Captcha didn't match.
+password_not_match=Password and confirm password are not same.
+
+username_been_taken=Username has already been taken.
+repo_name_been_taken=Repository name has already been taken.
+org_name_been_taken=Organisation name has already been taken.
+team_name_been_taken=Team name has already been taken.
+email_been_used=Email address has already been used.
+username_password_incorrect=Username or password is not correct.
+auth_source_mismatch=The authentication source selected is not associated with the user.
+
+enterred_invalid_repo_name=Please make sure that the repository name you have entered is correct.
+enterred_invalid_owner_name=Please make sure that the owner name you have entered is correct.
+enterred_invalid_password=Please make sure the that password you have entered is correct.
+user_not_exist=Given user does not exist.
+last_org_owner=Removing the last user from a owner team isn't allowed, as there must always be at least one owner in any given organisation.
+
+invalid_ssh_key=Sorry, we're not able to verify your SSH key: %s
+unable_verify_ssh_key=Gogs cannot verify your SSH key, but we assume that it is valid, please double-check it.
+auth_failed=Authentication failed: %v
+
+still_own_repo=Your account still has ownership over at least one repository, you have to delete or transfer them first.
+still_has_org=Your account still has membership in at least one organisation, you have to leave or delete your memberships first.
+org_still_own_repo=This organisation still has ownership of repositories, you must delete or transfer them first.
+
+target_branch_not_exist=Target branch does not exist.
+
+[user]
+change_avatar=Change your avatar
+join_on=Joined on
+repositories=Repositories
+activity=Public Activity
+followers=Followers
+starred=Starred repositories
+following=Following
+follow=Follow
+unfollow=Unfollow
+
+form.name_not_allowed=Username or pattern %q is not allowed.
+
+
+[settings]
+profile=Profile
+password=Password
+avatar=Avatar
+ssh_keys=SSH Keys
+security=Security
+repos=Repositories
+orgs=Organisations
+applications=Applications
+delete=Delete Account
+
+public_profile=Public Profile
+profile_desc=Your email address is public and will be used for any account related notifications, and any web based operations made via the site.
+password_username_disabled=Non-local type users are not allowed to change their username.
+full_name=Full Name
+website=Website
+location=Location
+update_profile=Update Profile
+update_profile_success=Your profile has been updated successfully.
+change_username=Username Changed
+change_username_prompt=This change will affect the way how links relate to your account.
+continue=Continue
+cancel=Cancel
+
+lookup_avatar_by_mail=Lookup Avatar by mail
+federated_avatar_lookup=Federated Avatar Lookup
+enable_custom_avatar=Use Custom Avatar
+choose_new_avatar=Choose new avatar
+update_avatar=Update Avatar Setting
+delete_current_avatar=Delete Current Avatar
+uploaded_avatar_not_a_image=Uploaded file is not a image.
+update_avatar_success=Your avatar setting has been updated successfully.
+
+change_password=Change Password
+old_password=Current Password
+new_password=New Password
+retype_new_password=Retype New Password
+password_incorrect=Current password is not correct.
+change_password_success=Your password was successfully changed. You can now sign using this new password.
+password_change_disabled=Non-local type users are not allowed to change their password.
+
+emails=Email Addresses
+manage_emails=Manage email addresses
+email_desc=Your primary email address will be used for notifications and other operations.
+primary=Primary
+primary_email=Set as primary
+delete_email=Delete
+email_deletion=Email Deletion
+email_deletion_desc=Deleting this email address will remove related information from your account. Do you want to continue?
+email_deletion_success=Email has been deleted successfully!
+email_deletion_primary=Cannot delete primary email address.
+add_new_email=Add new email address
+add_email=Add email
+add_email_confirmation_sent=A new confirmation email has been sent to '%s', please check your inbox within the next %d hours to complete the confirmation process.
+add_email_success=Your new email address was successfully added.
+
+manage_ssh_keys=Manage SSH Keys
+add_key=Add Key
+ssh_desc=This is a list of SSH keys associated with your account. As these keys allow anyone using them to gain access to your repositories, it is highly important that you make sure you recognise them.
+ssh_helper=Don't know how? Check out GitHub's guide to create your own SSH keys or solve common problems you might encounter using SSH.
+add_new_key=Add SSH Key
+ssh_key_been_used=Public key content has been used.
+ssh_key_name_used=Public key with same name already exists.
+key_name=Key Name
+key_content=Content
+add_key_success=New SSH key '%s' has been added successfully!
+delete_key=Delete
+ssh_key_deletion=SSH Key Deletion
+ssh_key_deletion_desc=Deleting this SSH key will remove all related accesses for your account. Do you want to continue?
+ssh_key_deletion_success=SSH key has been deleted successfully!
+add_on=Added on
+last_used=Last used on
+no_activity=No recent activity
+key_state_desc=This key is used in last 7 days
+token_state_desc=This token is used in last 7 days
+
+two_factor=Two-factor Authentication
+two_factor_status=Status:
+two_factor_on=On
+two_factor_off=Off
+two_factor_enable=Enable
+two_factor_disable=Disable
+two_factor_view_recovery_codes=View and save your recovery codes in a safe place. You can use them as passcode if you lose access to your authentication application.
+two_factor_http=For HTTP/HTTPS operations, you are no longer able to use plain username and password. Please create and use Personal Access Token as your credential, e.g. %[3]s.
+two_factor_enable_title=Enable Two-factor Authentication
+two_factor_scan_qr=Please use your authentication application to scan the image:
+two_factor_or_enter_secret=Or enter the secret:
+two_factor_then_enter_passcode=Then enter passcode:
+two_factor_verify=Verify
+two_factor_invalid_passcode=The passcode you entered is not valid, please try again!
+two_factor_reused_passcode=The passcode you entered has already been used, please try another one!
+
+two_factor_enable_error=Enable Two-factor authentication failed: %v
+two_factor_enable_success=Two-factor authentication has enabled for your account successfully!
+two_factor_recovery_codes_title=Two-factor Authentication Recovery Codes
+two_factor_recovery_codes_desc=Recovery codes are used when you temporarily lose access to your authentication application. Each recovery code can only be used once, please keep these codes in a safe place.
+two_factor_regenerate_recovery_codes=Regenerate Recovery Codes
+two_factor_regenerate_recovery_codes_error=Regenerate recovery codes failed: %v
+two_factor_regenerate_recovery_codes_success=New recovery codes has been generated successfully!
+two_factor_disable_title=Disable Two-factor Authentication
+two_factor_disable_desc=Your account security level will decrease after disabled two-factor authentication. Do you want to continue?
+two_factor_disable_success=Two-factor authentication has disabled successfully!
+
+manage_access_token=Manage Personal Access Tokens
+generate_new_token=Generate New Token
+tokens_desc=Tokens you have generated that can be used to access the Gogs APIs.
+access_token_tips=The personal access token may be used as either username or password. It is recommended to use the "x-access-token" as the username and the personal access token as the password for Git applications.
+new_token_desc=Each token will have full access to your account.
+token_name=Token Name
+generate_token=Generate Token
+generate_token_succees=Your access token was successfully generated! Make sure to copy it right now, as you won't be able to see it again later!
+delete_token=Delete
+access_token_deletion=Personal Access Token Deletion
+access_token_deletion_desc=Delete this personal access token will remove all related accesses of application. Do you want to continue?
+delete_token_success=Personal access token has been removed successfully! Don't forget to update your application as well.
+token_name_exists=Token with same name already exists.
+
+
+orgs.none=You are not a member of any organisations.
+orgs.leave_title=Leave organisation
+orgs.leave_desc=You will lose access to all repositories and teams after you left the organization. Do you want to continue?
+
+repos.leave=Leave
+repos.leave_title=Leave repository
+repos.leave_desc=You will lose access to the repository after you left. Do you want to continue?
+repos.leave_success=You have left repository '%s' successfully!
+
+delete_account=Delete Your Account
+delete_prompt=The operation will delete your account permanently, and CANNOT be undone!
+confirm_delete_account=Confirm Deletion
+delete_account_title=Account Deletion
+delete_account_desc=This account is going to be deleted permanently, do you want to continue?
+
+[repo]
+owner=Owner
+repo_name=Repository Name
+repo_name_helper=A good repository name is usually composed of short, memorable and unique keywords.
+visibility=Visibility
+unlisted=Unlisted
+visiblity_helper=This repository is Private
+unlisted_helper=This repository is Unlisted
+visiblity_helper_forced=Site admin has forced all new repositories to be Private
+visiblity_fork_helper=(Change of this value will affect all forks)
+clone_helper=Need help cloning? Visit Help!
+fork_repo=Fork Repository
+fork_from=Fork From
+fork_visiblity_helper=You cannot alter the visibility of a forked repository.
+repo_desc=Description
+repo_lang=Language
+repo_gitignore_helper=Select .gitignore templates
+license=Licence
+license_helper=Select a licence file
+readme=Readme
+readme_helper=Select a readme template
+auto_init=Initialise this repository with selected files and template
+create_repo=Create Repository
+default_branch=Default Branch
+mirror_prune=Prune
+mirror_prune_desc=Remove any remote-tracking references that no longer exist on the remote
+mirror_interval=Mirror Interval (hour)
+mirror_address=Mirror Address
+mirror_address_desc=Please include necessary user credentials in the address.
+mirror_last_synced=Last Synced
+watchers=Watchers
+stargazers=Stargazers
+forks=Forks
+repo_description_helper=Description of repository. Maximum 512 characters length.
+
+repo_description_length=Available characters
+
+
+form.reach_limit_of_creation=The owner has reached maximum creation limit of %d repositories.
+form.name_not_allowed=Repository name or pattern %q is not allowed.
+
+
+need_auth=Need Authorisation
+migrate_type=Migration Type
+migrate_type_helper=This repository will be a mirror
+migrate_repo=Migrate Repository
+migrate.clone_address=Clone Address
+migrate.clone_address_desc=This can be a HTTP/HTTPS/GIT URL.
+migrate.clone_address_desc_import_local=You're also allowed to migrate a repository by local server path.
+migrate.permission_denied=You are not allowed to import local repositories.
+migrate.invalid_local_path=Invalid local path, it does not exist or not a directory.
+migrate.clone_address_resolved_to_blocked_local_address=Clone address resolved to a local network address that is implicitly blocked.
+migrate.failed=Migration failed: %v
+
+mirror_from=mirror of
+forked_from=forked from
+copy_link=Copy
+copy_link_success=Copied!
+copy_link_error=Press ⌘-C or Ctrl-C to copy
+copied=Copied OK
+unwatch=Unwatch
+watch=Watch
+unstar=Unstar
+star=Star
+fork=Fork
+
+no_desc=No Description
+quick_guide=Quick Guide
+clone_this_repo=Clone this repository
+create_new_repo_command=Create a new repository on the command line
+push_exist_repo=Push an existing repository from the command line
+bare_message=This repository does not have any content yet.
+
+files=Files
+branch=Branch
+tree=Tree
+filter_branch_and_tag=Filter branch or tag
+branches=Branches
+tags=Tags
+issues=Issues
+pulls=Pull Requests
+labels=Labels
+milestones=Milestones
+commits=Commits
+git_branches=Branches
+releases=Releases
+file_raw=Raw
+file_history=History
+file_view_raw=View Raw
+file_permalink=Permalink
+file_too_large=This file is too large to be shown
+video_not_supported_in_browser=Your browser doesn't support HTML5 video tag.
+
+branches.overview=Overview
+branches.active_branches=Active Branches
+branches.stale_branches=Stale Branches
+branches.all=All Branches
+branches.updated_by=Updated %[1]s by %[2]s
+branches.change_default_branch=Change Default Branch
+branches.default_deletion_not_allowed=Cannot delete the default branch.
+branches.protected_deletion_not_allowed=Cannot delete a protected branch.
+
+editor.new_file=New file
+editor.upload_file=Upload file
+editor.edit_file=Edit file
+editor.preview_changes=Preview Changes
+editor.cannot_edit_non_text_files=Cannot edit non-text files
+editor.edit_this_file=Edit this file
+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 before editing the file
+editor.delete_this_file=Delete this file
+editor.must_have_write_access=You must have write access to make or propose changes to this file
+editor.file_delete_success=File '%s' has been deleted successfully!
+editor.name_your_file=Name your file...
+editor.filename_help=To add directory, just type it and press /. To remove a directory, go to the beginning of the field and press backspace.
+editor.or=or
+editor.cancel_lower=cancel
+editor.commit_changes=Commit Changes
+editor.add_tmpl=Add '%s/'
+editor.add=Add '%s'
+editor.update=Update '%s'
+editor.delete=Delete '%s'
+editor.commit_message_desc=Add an optional extended description...
+editor.commit_directly_to_this_branch=Commit directly to the %s branch.
+editor.create_new_branch=Create a new branch for this commit and start a pull request.
+editor.new_branch_name_desc=New branch name...
+editor.cancel=Cancel
+editor.filename_cannot_be_empty=Filename cannot be empty.
+editor.branch_already_exists=Branch '%s' already exists in this repository.
+editor.directory_is_a_file=Entry '%s' in the parent path is a file not a directory in this repository.
+editor.file_is_a_symlink=The file '%s' is a symlink that cannot be modified from the web editor.
+editor.filename_is_a_directory=The filename '%s' is an existing directory in this repository.
+editor.file_editing_no_longer_exists=The file '%s' you are editing no longer exists in the repository.
+editor.file_changed_while_editing=File content has been changed since you started editing. Click here to see what have been changed or press commit again to overwrite those changes.
+editor.file_already_exists=A file with name '%s' already exists in this repository.
+editor.no_changes_to_show=There are no changes to show.
+editor.fail_to_update_file=Failed to update/create file '%s' with error: %v
+editor.fail_to_delete_file=Failed to delete file '%s' with error: %v
+
+editor.add_subdir=Add subdirectory...
+editor.unable_to_upload_files=Failed to upload files to '%s' with error: %v
+editor.upload_files_to_dir=Upload files to '%s'
+
+commits.commit_history=Commit History
+commits.commits=Commits
+commits.search=Search commits
+commits.find=Find
+commits.author=Author
+commits.message=Message
+commits.date=Date
+commits.older=Older
+commits.newer=Newer
+
+issues.new=New Issue
+issues.new.labels=Labels
+issues.new.no_label=No Label
+issues.new.clear_labels=Clear labels
+issues.new.milestone=Milestone
+issues.new.no_milestone=No Milestone
+issues.new.clear_milestone=Clear milestone
+issues.new.open_milestone=Open Milestones
+issues.new.closed_milestone=Closed Milestones
+issues.new.assignee=Assignee
+issues.new.clear_assignee=Clear assignee
+issues.new.no_assignee=No assignee
+issues.create=Create Issue
+issues.new_label=New Label
+issues.new_label_placeholder=Label name...
+issues.create_label=Create Label
+issues.label_templates.title=Load a predefined set of labels
+issues.label_templates.info=There aren't any labels yet. You can click on the "New Label" button above to create one or use a predefined set below.
+issues.label_templates.helper=Select a label set
+issues.label_templates.use=Use this label set
+issues.label_templates.fail_to_load_file=Failed to load label template file '%s': %v
+issues.open_tab=%d Open
+issues.close_tab=%d Closed
+issues.filter_label=Label
+issues.filter_label_no_select=No selected label
+issues.filter_milestone=Milestone
+issues.filter_milestone_no_select=No selected milestone
+issues.filter_assignee=Assignee
+issues.filter_assginee_no_select=No selected Assignee
+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
+issues.filter_sort=Sort
+issues.filter_sort.latest=Newest
+issues.filter_sort.oldest=Oldest
+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
+issues.opened_by=opened %[1]s by %[3]s
+issues.opened_by_fake=opened %[1]s by %[2]s
+issues.previous=Previous
+issues.next=Next
+issues.open_title=Open
+issues.closed_title=Closed
+issues.num_comments=%d comments
+issues.commented_at=`commented %s`
+issues.delete_comment_confirm=Are you sure you want to delete this comment?
+issues.no_content=There is no content yet.
+issues.close_issue=Close
+issues.close_comment_issue=Comment and close
+issues.reopen_issue=Reopen
+issues.reopen_comment_issue=Comment and reopen
+issues.create_comment=Comment
+issues.closed_at=`closed %[2]s`
+issues.reopened_at=`reopened %[2]s`
+issues.commit_ref_at=`referenced this issue from a commit %[2]s`
+issues.poster=Poster
+issues.collaborator=Collaborator
+issues.owner=Owner
+issues.sign_in_require_desc=Sign in to join this conversation.
+issues.edit=Edit
+issues.cancel=Cancel
+issues.save=Save
+issues.label_title=Label name
+issues.label_color=Label colour
+issues.label_count=%d labels
+issues.label_open_issues=%d open issues
+issues.label_edit=Edit
+issues.label_delete=Delete
+issues.label_modify=Label Modification
+issues.label_deletion=Label Deletion
+issues.label_deletion_desc=Deleting this label will remove its information in all related issues. Do you want to continue?
+issues.label_deletion_success=Label has been deleted successfully!
+issues.num_participants=%d Participants
+issues.attachment.open_tab=`Click to see "%s" in a new tab`
+issues.attachment.download=`Click to download "%s"`
+
+pulls.new=New Pull Request
+pulls.compare_changes=Compare Changes
+pulls.compare_changes_desc=Compare two branches and make a pull request for changes.
+pulls.compare_base=base
+pulls.compare_compare=compare
+pulls.filter_branch=Filter branch
+pulls.no_results=No results found.
+pulls.nothing_to_compare=There is nothing to compare because base and head branches are even.
+pulls.nothing_merge_base=There is nothing to compare because two branches have completely different history.
+pulls.has_pull_request=`There is already a pull request between these two targets: %[2]s#%[3]d`
+pulls.create=Create Pull Request
+pulls.title_desc=wants to merge %[1]d commits from %[2]s into %[3]s
+pulls.merged_title_desc=merged %[1]d commits from %[2]s into %[3]s %[4]s
+pulls.tab_conversation=Conversation
+pulls.tab_commits=Commits
+pulls.tab_files=Files changed
+pulls.reopen_to_merge=Please reopen this pull request to perform merge operation.
+pulls.merged=Merged
+pulls.has_merged=This pull request has been merged successfully!
+pulls.data_broken=Data of this pull request has been broken due to deletion of fork information.
+pulls.is_checking=The conflict checking is still in progress, please refresh page in few moments.
+pulls.can_auto_merge_desc=This pull request can be merged automatically.
+pulls.cannot_auto_merge_desc=This pull request can't be merged automatically because there are conflicts.
+pulls.cannot_auto_merge_helper=Please merge manually in order to resolve the conflicts.
+pulls.create_merge_commit=Create a merge commit
+
+pulls.rebase_before_merging=Rebase before merging
+pulls.commit_description=Commit Description
+pulls.merge_pull_request=Merge Pull Request
+pulls.open_unmerged_pull_exists=`You can't perform reopen operation because there is already an open pull request (#%d) from same repository with same merge information and is waiting for merging.`
+pulls.delete_branch=Delete Branch
+pulls.delete_branch_has_new_commits=Branch cannot be deleted because it has new commits after mergence.
+
+milestones.new=New Milestone
+milestones.open_tab=%d Open
+milestones.close_tab=%d Closed
+milestones.closed=Closed %s
+milestones.no_due_date=No due date
+milestones.open=Open
+milestones.close=Close
+milestones.new_subheader=Create milestones to organise your issues.
+milestones.create=Create Milestone
+milestones.title=Title
+milestones.desc=Description
+milestones.due_date=Due Date (optional)
+milestones.clear=Clear
+milestones.invalid_due_date_format=Due date format is invalid, must be 'yyyy-mm-dd'.
+milestones.create_success=Milestone '%s' has been created successfully!
+milestones.edit=Edit Milestone
+milestones.edit_subheader=Use a better description for milestones so people won't be confused.
+milestones.cancel=Cancel
+milestones.modify=Modify Milestone
+milestones.edit_success=Changes of milestone '%s' has been saved successfully!
+milestones.deletion=Milestone Deletion
+milestones.deletion_desc=Deleting this milestone will remove its information in all related issues. Do you want to continue?
+milestones.deletion_success=Milestone has been deleted successfully!
+
+wiki=Wiki
+wiki.welcome=Welcome to Wiki!
+wiki.welcome_desc=Wiki is the place where you would like to document your project together and make it better.
+wiki.create_first_page=Create the first page
+wiki.page=Page
+wiki.filter_page=Filter page
+wiki.new_page=Create New Page
+wiki.default_commit_message=Write a note about this update (optional).
+wiki.save_page=Save Page
+wiki.last_commit_info=%s edited this page %s
+wiki.edit_page_button=Edit
+wiki.new_page_button=New Page
+wiki.delete_page_button=Delete Page
+wiki.delete_page_notice_1=This will delete the page "%s". Please be certain.
+wiki.page_already_exists=Wiki page with same name already exists.
+wiki.pages=Pages
+wiki.last_updated=Last updated %s
+
+settings=Settings
+settings.options=Options
+settings.collaboration=Collaboration
+settings.collaboration.admin=Admin
+settings.collaboration.write=Write
+settings.collaboration.read=Read
+settings.collaboration.undefined=Undefined
+settings.branches=Branches
+settings.branches_bare=You cannot manage branches for bare repository. Please push some content first.
+settings.default_branch=Default Branch
+settings.default_branch_desc=The default branch is considered the "base" branch for code commits, pull requests and online editing.
+settings.update=Update
+settings.update_default_branch_unsupported=Change default branch is not supported by the Git version on server.
+settings.update_default_branch_success=Default branch of this repository has been updated successfully!
+settings.protected_branches=Protected Branches
+settings.protected_branches_desc=Protect branches from force pushing, accidental deletion and whitelist code committers.
+settings.choose_a_branch=Choose a branch...
+settings.branch_protection=Branch Protection
+settings.branch_protection_desc=Please choose protect options for branch %s.
+settings.protect_this_branch=Protect this branch
+settings.protect_this_branch_desc=Disable force pushes and prevent from deletion.
+settings.protect_require_pull_request=Require pull request instead direct pushing
+settings.protect_require_pull_request_desc=Enable this option to disable direct pushing to this branch. Commits have to be pushed to another non-protected branch and merged to this branch through pull request.
+settings.protect_whitelist_committers=Whitelist who can push to this branch
+settings.protect_whitelist_committers_desc=Add people or teams to whitelist of direct push to this branch. Users in whitelist will bypass require pull request check.
+settings.protect_whitelist_users=Users who can push to this branch
+settings.protect_whitelist_search_users=Search users
+settings.protect_whitelist_teams=Teams for which members of them can push to this branch
+settings.protect_whitelist_search_teams=Search teams
+settings.update_protect_branch_success=Protect options for this branch has been updated successfully!
+settings.hooks=Webhooks
+settings.githooks=Git Hooks
+settings.basic_settings=Basic Settings
+settings.mirror_settings=Mirror Settings
+settings.sync_mirror=Sync Now
+settings.mirror_sync_in_progress=Mirror syncing is in progress, please refresh page in about a minute.
+settings.site=Official Site
+settings.update_settings=Update Settings
+settings.change_reponame_prompt=This change will affect how links relate to the repository.
+settings.advanced_settings=Advanced Settings
+settings.wiki_desc=Enable wiki system
+settings.use_internal_wiki=Use builtin wiki
+settings.allow_public_wiki_desc=Allow public access to wiki when repository is private
+settings.use_external_wiki=Use external wiki
+settings.external_wiki_url=External Wiki URL
+settings.external_wiki_url_desc=Visitors will be redirected to URL when they click on the tab.
+settings.issues_desc=Enable issue tracker
+settings.use_internal_issue_tracker=Use builtin lightweight issue tracker
+settings.allow_public_issues_desc=Allow public access to issues when repository is private
+settings.use_external_issue_tracker=Use external issue tracker
+settings.external_tracker_url=External Issue Tracker URL
+settings.external_tracker_url_desc=Visitors will be redirected to URL when they click on the tab.
+settings.tracker_url_format=External Issue Tracker URL Format
+settings.tracker_issue_style=External Issue Tracker Naming Style:
+settings.tracker_issue_style.numeric=Numeric
+settings.tracker_issue_style.alphanumeric=Alphanumeric
+settings.tracker_url_format_desc=You can use placeholder {user} {repo} {index} for user name, repository name and issue index.
+settings.pulls_desc=Enable pull requests to accept contributions between repositories and branches
+
+settings.pulls.ignore_whitespace=Ignore changes in whitespace
+
+settings.pulls.allow_rebase_merge=Allow use rebase to merge commits
+
+settings.danger_zone=Danger Zone
+settings.cannot_fork_to_same_owner=You cannot fork a repository to its original owner.
+settings.new_owner_has_same_repo=The new owner already has a repository with same name. Please choose another name.
+settings.convert=Convert To Regular Repository
+settings.convert_desc=You can convert this mirror to a regular repository. This cannot be reversed.
+settings.convert_notices_1=- This operation will convert this repository mirror into a regular repository and cannot be undone.
+settings.convert_confirm=Confirm Conversion
+settings.convert_succeed=Repository has been converted to regular type successfully.
+settings.transfer=Transfer Ownership
+settings.transfer_desc=Transfer this repository to another user or to an organisation in which you have admin rights.
+settings.transfer_notices_1=- You will lose access if new owner is a individual user.
+settings.transfer_notices_2=- You will conserve access if new owner is an organisation and if you're one of the owners.
+settings.transfer_form_title=Please enter following information to confirm your operation:
+settings.wiki_delete=Erase Wiki Data
+settings.wiki_delete_desc=Once you erase wiki data there is no going back. Please be certain.
+settings.wiki_delete_notices_1=- This will delete and disable the wiki for %s
+settings.wiki_deletion_success=Repository wiki data have been erased successfully.
+settings.delete=Delete This Repository
+settings.delete_desc=Once you delete a repository, there is no going back. Please be certain.
+settings.delete_notices_1=- This operation CANNOT be undone.
+settings.delete_notices_2=- This operation will permanently delete everything in this repository, including Git data, issues, comments and collaborator access.
+
+settings.delete_notices_fork_1=- All forks will become independent after deletion.
+settings.deletion_success=Repository has been deleted successfully!
+settings.update_settings_success=Repository options has been updated successfully.
+settings.transfer_owner=New Owner
+settings.make_transfer=Make Transfer
+settings.transfer_succeed=Repository ownership has been transferred successfully.
+settings.confirm_delete=Confirm Deletion
+settings.add_collaborator=Add New Collaborator
+settings.add_collaborator_success=New collaborator has been added.
+settings.delete_collaborator=Delete
+settings.collaborator_deletion=Collaborator Deletion
+settings.collaborator_deletion_desc=This user will no longer have collaboration access to this repository after deletion. Do you want to continue?
+settings.remove_collaborator_success=Collaborator has been removed.
+settings.search_user_placeholder=Search user...
+settings.org_not_allowed_to_be_collaborator=Organisation is not allowed to be added as a collaborator.
+settings.hooks_desc=Webhooks are much like basic HTTP POST event triggers. Whenever something occurs in Gogs, we will handle the notification to the target host you specify. Learn more in this Webhooks Guide.
+settings.webhooks.add_new=Add a new webhook:
+
+settings.webhooks.choose_a_type=Choose a type...
+
+settings.add_webhook=Add Webhook
+settings.webhook_deletion=Delete Webhook
+settings.webhook_deletion_desc=Delete this webhook will remove its information and all delivery history. Do you want to continue?
+settings.webhook_deletion_success=Webhook has been deleted successfully!
+settings.webhook.test_delivery=Test Delivery
+settings.webhook.test_delivery_desc=Send a fake push event delivery to test your webhook settings
+settings.webhook.test_delivery_success=Test webhook has been added to delivery queue. It may take few seconds before it shows up in the delivery history.
+settings.webhook.redelivery=Redelivery
+settings.webhook.redelivery_success=Hook task '%s' has been readded to delivery queue. It may take few seconds to update delivery status in history.
+settings.webhook.request=Request
+settings.webhook.response=Response
+settings.webhook.headers=Headers
+settings.webhook.payload=Payload
+settings.webhook.body=Body
+settings.webhook.err_cannot_parse_payload_url=Cannot parse the payload URL: %v
+
+settings.webhook.url_resolved_to_blocked_local_address=Payload URL resolved to a local network address that is implicitly blocked.
+settings.githooks_desc=Git Hooks are powered by Git itself, you can edit files of supported hooks in the list below to perform custom operations.
+settings.githook_edit_desc=If the hook is inactive, sample content will be presented. Leaving content to an empty value will disable this hook.
+settings.githook_name=Hook Name
+settings.githook_content=Hook Content
+settings.update_githook=Update Hook
+settings.add_webhook_desc=Gogs will send a POST request to the URL you specify, along with regarding the event that occured. You can also specify what kind of data format you'd like to get upon triggering the hook (JSON, x-www-form-urlencoded, XML, etc). More information can be found in our Webhooks Guide.
+settings.payload_url=Payload URL
+settings.content_type=Content Type
+settings.secret=Secret
+settings.secret_desc=Secret will be sent as SHA256 HMAC hex digest of payload via X-Gogs-Signature header.
+settings.slack_username=Username
+settings.slack_icon_url=Icon URL
+settings.slack_color=Colour
+settings.event_desc=When should this webhook be triggered?
+settings.event_push_only=Just the push event.
+settings.event_send_everything=I need everything.
+settings.event_choose=Let me choose what I need.
+settings.event_create=Create
+settings.event_create_desc=Branch or tag created
+settings.event_delete=Delete
+settings.event_delete_desc=Branch or tag deleted
+settings.event_fork=Fork
+settings.event_fork_desc=Repository forked
+settings.event_push=Push
+settings.event_push_desc=Git push to a repository
+settings.event_issues=Issues
+settings.event_issues_desc=Issue opened, closed, reopened, edited, assigned, unassigned, label updated, label cleared, milestoned, or demilestoned.
+settings.event_pull_request=Pull Request
+settings.event_pull_request_desc=Pull request opened, closed, reopened, edited, assigned, unassigned, label updated, label cleared, milestoned, demilestoned, or synchronized.
+settings.event_issue_comment=Issue Comment
+settings.event_issue_comment_desc=Issue comment created, edited, or deleted.
+settings.event_release=Release
+settings.event_release_desc=Release published in a repository.
+settings.active=Active
+settings.active_helper=Details regarding the event which triggered the hook will be delivered as well.
+settings.add_hook_success=New webhook has been added.
+settings.update_webhook=Update Webhook
+settings.update_hook_success=Webhook has been updated.
+settings.delete_webhook=Delete Webhook
+settings.recent_deliveries=Recent Deliveries
+settings.hook_type=Hook Type
+settings.add_slack_hook_desc=Add Slack integration to your repository.
+settings.add_discord_hook_desc=Add Discord integration to your repository.
+settings.add_dingtalk_hook_desc=Add Dingtalk integration to your repository.
+settings.slack_token=Token
+settings.slack_domain=Domain
+settings.slack_channel=Channel
+settings.deploy_keys=Deploy Keys
+settings.deploy_keys_helper=Common Gotcha! If you're looking for adding personal public keys, please add them in your account settings.
+settings.add_deploy_key=Add Deploy Key
+settings.deploy_key_desc=Deploy keys have read-only access. They are not the same as personal account SSH keys.
+settings.no_deploy_keys=You haven't added any deploy keys.
+settings.title=Title
+settings.deploy_key_content=Content
+settings.key_been_used=Deploy key content has been used.
+settings.key_name_used=Deploy key with the same name already exists.
+settings.add_key_success=New deploy key '%s' has been added successfully!
+settings.deploy_key_deletion=Delete Deploy Key
+settings.deploy_key_deletion_desc=Deleting this deploy key will remove all related accesses for this repository. Do you want to continue?
+settings.deploy_key_deletion_success=Deploy key has been deleted successfully!
+settings.description_desc=Description of repository. Maximum 512 characters length.
+
+settings.description_length=Available characters
+
+
+diff.browse_source=Browse Source
+diff.parent=parent
+diff.commit=commit
+diff.data_not_available=Diff Data Not Available.
+diff.show_diff_stats=Show Diff Stats
+diff.show_split_view=Split View
+diff.show_unified_view=Unified View
+diff.stats_desc= %d changed files with %d additions and %d deletions
+diff.bin=BIN
+diff.view_file=View File
+diff.file_suppressed=File diff suppressed because it is too large
+diff.too_many_files=Some files were not shown because too many files changed in this diff
+
+release.releases=Releases
+release.new_release=New Release
+release.draft=Draft
+release.prerelease=Pre-Release
+release.edit=edit
+release.ahead=%d commits to %s since this release
+release.source_code=Source Code
+release.new_subheader=Publish releases to iterate product.
+release.edit_subheader=Detailed change log can help users understand what has been improved.
+release.tag_name=Tag name
+release.target=Target
+release.tag_helper=Choose an existing tag, or create a new tag on publish.
+release.title=Title
+release.content=Content
+release.write=Write
+release.preview=Preview
+release.loading=Loading...
+release.prerelease_desc=This is a pre-release
+release.prerelease_helper=We'll point out that this release is not production-ready.
+release.cancel=Cancel
+release.publish=Publish Release
+release.save_draft=Save Draft
+release.edit_release=Edit Release
+release.delete_release=Delete This Release
+release.deletion=Release Deletion
+release.deletion_desc=Deleting this release will delete the corresponding Git tag. Do you want to continue?
+release.deletion_success=Release has been deleted successfully!
+release.tag_name_already_exist=Release with this tag name already exists.
+release.tag_name_invalid=Tag name is not valid.
+release.downloads=Downloads
+
+[org]
+org_name_holder=Organisation Name
+org_full_name_holder=Organisation Full Name
+org_name_helper=Great organisation names are short and memorable.
+create_org=Create Organisation
+repo_updated=Updated
+people=People
+invite_someone=Invite Someone
+teams=Teams
+lower_members=members
+lower_repositories=repositories
+create_new_team=Create New Team
+org_desc=Description
+team_name=Team Name
+team_desc=Description
+team_name_helper=You'll use this name to mention this team in conversations.
+team_desc_helper=What is this team all about?
+team_permission_desc=What permission level should this team have?
+
+form.name_not_allowed=Organization name or pattern %q is not allowed.
+
+form.team_name_not_allowed=Team name or pattern %q is not allowed.
+
+
+settings=Settings
+settings.options=Options
+settings.full_name=Full Name
+settings.website=Website
+settings.location=Location
+settings.update_settings=Update Settings
+settings.update_setting_success=Organisation settings has been updated successfully.
+settings.change_orgname_prompt=This change will affect how links relate to the organisation.
+settings.update_avatar_success=Organisation avatar setting has been updated successfully.
+settings.delete=Delete Organisation
+settings.delete_account=Delete This Organisation
+settings.delete_prompt=The organisation will be permanently removed, and this CANNOT be undone!
+settings.confirm_delete_account=Confirm Deletion
+settings.delete_org_title=Organisation Deletion
+settings.delete_org_desc=This organisation is going to be deleted permanently, do you want to continue?
+settings.hooks_desc=Add webhooks that will be triggered for all repositories under this organisation.
+
+members.membership_visibility=Membership Visibility:
+members.public=Public
+members.public_helper=make private
+members.private=Private
+members.private_helper=make public
+members.member_role=Member Role:
+members.owner=Owner
+members.member=Member
+members.remove=Remove
+members.leave=Leave
+members.invite_desc=Add a new member to %s:
+members.invite_now=Invite Now
+
+teams.join=Join
+teams.leave=Leave
+teams.read_access=Read Access
+teams.read_access_helper=This team will be able to view and clone its repositories.
+teams.write_access=Write Access
+teams.write_access_helper=This team will be able to read its repositories, as well as push to them.
+teams.admin_access=Admin Access
+teams.admin_access_helper=This team will be able to push/pull to its repositories, as well as add other collaborators to them.
+teams.no_desc=This team has no description
+teams.settings=Settings
+teams.owners_permission_desc=Owners have full access to all repositories and have admin rights to the organisation.
+teams.members=Team Members
+teams.update_settings=Update Settings
+teams.delete_team=Delete This Team
+teams.add_team_member=Add Team Member
+teams.delete_team_title=Team Deletion
+teams.delete_team_desc=As this team will be deleted, members of this team may lose access to some repositories. Do you want to continue?
+teams.delete_team_success=Given team has been deleted successfully.
+teams.read_permission_desc=This team grants Read access: members can view and clone the team's repositories.
+teams.write_permission_desc=This team grants Write access: members can read from and push to the team's repositories.
+teams.admin_permission_desc=This team grants Admin access: members can read from, push to, and add collaborators to the team's repositories.
+teams.repositories=Team Repositories
+teams.search_repo_placeholder=Search repository...
+teams.add_team_repository=Add Team Repository
+teams.remove_repo=Remove
+teams.add_nonexistent_repo=The repository you're trying to add does not exist, please create it first.
+
+[admin]
+dashboard=Dashboard
+users=Users
+organizations=Organisations
+repositories=Repositories
+authentication=Authentications
+config=Configuration
+notices=System Notices
+monitor=Monitoring
+first_page=First
+last_page=Last
+total=Total: %d
+
+dashboard.build_info=Build Information
+
+dashboard.app_ver=Application version
+
+dashboard.git_version=Git version
+
+dashboard.go_version=Go version
+
+dashboard.build_time=Build time
+
+dashboard.build_commit=Build commit
+
+dashboard.statistic=Statistics
+dashboard.operations=Operations
+dashboard.system_status=System Monitor Status
+dashboard.statistic_info=Gogs database has %d users, %d organisations, %d public keys, %d repositories, %d watches, %d stars, %d actions, %d accesses, %d issues, %d comments, %d social accounts, %d follows, %d mirrors, %d releases, %d login sources, %d webhooks, %d milestones, %d labels, %d hook tasks, %d teams, %d update tasks, %d attachments.
+dashboard.operation_name=Operation Name
+dashboard.operation_switch=Switch
+dashboard.select_operation_to_run=Please select an operation to run
+
+dashboard.operation_run=Run
+dashboard.clean_unbind_oauth=Clean unbound OAuthes
+dashboard.clean_unbind_oauth_success=All unbind OAuthes have been deleted successfully.
+dashboard.delete_inactivate_accounts=Delete all inactive accounts
+dashboard.delete_inactivate_accounts_success=All inactivate accounts have been deleted successfully.
+dashboard.delete_repo_archives=Delete all repositories archives
+dashboard.delete_repo_archives_success=All repositories archives have been deleted successfully.
+dashboard.delete_missing_repos=Delete all repository records that lost Git files
+dashboard.delete_missing_repos_success=All repository records that lost Git files have been deleted successfully.
+dashboard.git_gc_repos=Do garbage collection on repositories
+dashboard.git_gc_repos_success=All repositories have done garbage collection successfully.
+dashboard.resync_all_sshkeys=Rewrite '.ssh/authorized_keys' file (caution: non-Gogs keys will be lost)
+dashboard.resync_all_sshkeys_success=All public keys have been rewritten successfully.
+dashboard.resync_all_hooks=Resync pre-receive, update and post-receive hooks of all repositories
+dashboard.resync_all_hooks_success=All repositories' pre-receive, update and post-receive hooks have been resynced successfully.
+dashboard.reinit_missing_repos=Reinitialize all repository records that lost Git files
+dashboard.reinit_missing_repos_success=All repository records that lost Git files have been reinitialised successfully.
+
+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
+dashboard.memory_allocate_times=Memory Allocate Times
+dashboard.memory_free_times=Memory Free Times
+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
+dashboard.gc_metadata_obtained=GC Metadata Obtained
+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
+
+users.user_manage_panel=User Manage Panel
+users.new_account=Create New Account
+users.name=Name
+users.activated=Activated
+users.admin=Admin
+users.repos=Repos
+users.created=Created
+users.send_register_notify=Send Registration Notification To User
+users.new_success=New account '%s' has been created successfully.
+users.edit=Edit
+users.auth_source=Authentication Source
+users.local=Local
+users.auth_login_name=Authentication Login Name
+users.password_helper=Leave it empty to remain unchanged.
+users.update_profile_success=Account profile has been updated successfully.
+users.edit_account=Edit Account
+users.max_repo_creation=Maximum Repository Creation Limit
+users.max_repo_creation_desc=(Set -1 to use global default limit)
+users.is_activated=This account is activated
+users.prohibit_login=This account is prohibited to login
+users.is_admin=This account has administrator permissions
+users.allow_git_hook=This account has permissions to create Git hooks
+users.allow_import_local=This account has permissions to import local repositories
+users.update_profile=Update Account Profile
+users.delete_account=Delete This Account
+users.still_own_repo=This account still has ownership over at least one repository, you have to delete or transfer them first.
+users.still_has_org=This account still has membership in at least one organisation, you have to leave or delete the organisations first.
+users.deletion_success=Account has been deleted successfully!
+
+orgs.org_manage_panel=Organisation Manage Panel
+orgs.name=Name
+orgs.teams=Teams
+orgs.members=Members
+
+repos.repo_manage_panel=Repository Manage Panel
+repos.owner=Owner
+repos.name=Name
+repos.private=Private
+repos.watches=Watches
+repos.stars=Stars
+repos.issues=Issues
+repos.size=Size
+
+auths.auth_sources=Authentication Sources
+auths.new=Add New Source
+auths.name=Name
+auths.type=Type
+auths.enabled=Enabled
+auths.default=Default
+auths.updated=Updated
+auths.auth_type=Authentication Type
+auths.auth_name=Authentication Name
+auths.security_protocol=Security Protocol
+auths.domain=Domain
+auths.host=Host
+auths.port=Port
+auths.bind_dn=Bind DN
+auths.bind_dn_helper=You can use '%s' as placeholder for username, e.g. DOM\%s
+
+auths.bind_password=Bind Password
+auths.bind_password_helper=Warning: This password is stored in plain text. Do not use a high privileged account.
+auths.user_base=User Search Base
+auths.user_dn=User DN
+auths.attribute_username=Username attribute
+auths.attribute_username_placeholder=Leave empty to use sign-in form field value for user name.
+auths.attribute_name=First Name Attribute
+auths.attribute_surname=Surname Attribute
+auths.attribute_mail=Email Attribute
+auths.verify_group_membership=Verify group membership
+auths.group_search_base_dn=Group Search Base DN
+auths.group_filter=Group Filter
+auths.group_attribute_contain_user_list=Group Attribute Containing List of Users
+auths.user_attribute_listed_in_group=User Attribute Listed in Group
+auths.attributes_in_bind=Fetch attributes in Bind DN context
+auths.filter=User Filter
+auths.admin_filter=Admin Filter
+auths.ms_ad_sa=Ms Ad SA
+auths.smtp_auth=SMTP Authentication Type
+auths.smtphost=SMTP Host
+auths.smtpport=SMTP Port
+auths.allowed_domains=Allowed Domains
+auths.allowed_domains_helper=Leave it empty to not restrict any domains. Multiple domains should be separated by comma ','.
+auths.enable_tls=Enable TLS Encryption
+auths.skip_tls_verify=Skip TLS Verify
+auths.pam_service_name=PAM Service Name
+auths.enable_auto_register=Enable Auto Registration
+auths.edit=Edit Authentication Setting
+auths.activated=This authentication is activated
+auths.default_auth=This authentication is the default login page
+
+auths.new_success=New authentication '%s' has been added successfully.
+auths.update_success=Authentication setting has been updated successfully.
+auths.update=Update Authentication Setting
+auths.delete=Delete This Authentication
+auths.delete_auth_title=Authentication Deletion
+auths.delete_auth_desc=This authentication is going to be deleted, do you want to continue?
+auths.still_in_used=This authentication is still used by some users, please delete or convert these users to another login type first.
+auths.deletion_success=Authentication has been deleted successfully!
+auths.login_source_exist=Login source '%s' already exists.
+auths.github_api_endpoint=API Endpoint
+
+config.not_set=(not set)
+
+config.server_config=Server Configuration
+config.brand_name=Brand name
+
+config.run_user=Run User
+config.run_mode=Run Mode
+config.server.external_url=External URL
+
+config.server.domain=Domain
+
+config.server.protocol=Protocol
+config.server.http_addr=HTTP address
+
+config.server.http_port=HTTP port
+
+config.server.cert_file=Certificate file
+
+config.server.key_file=Key file
+
+config.server.tls_min_version=Minimum TLS version
+
+config.server.unix_socket_permission=Unix socket permission
+
+config.server.local_root_url=Local root URL
+
+config.server.offline_mode=Offline mode
+
+config.server.disable_router_log=Disable router log
+
+config.server.enable_gzip=Enable Gzip
+
+config.server.app_data_path=Application data path
+
+config.server.load_assets_from_disk=Load assets from disk
+
+config.server.landing_url=Landing URL
+
+
+config.ssh_config=SSH Configuration
+config.ssh.enabled=Enabled
+config.ssh.domain=Exposed domain
+config.ssh.port=Exposed port
+config.ssh.root_path=Root path
+config.ssh.keygen_path=Keygen path
+config.ssh.key_test_path=Key test path
+config.ssh.minimum_key_size_check=Minimum key size check
+
+config.ssh.minimum_key_sizes=Minimum key sizes
+
+config.ssh.rewrite_authorized_keys_at_start=Rewrite "authorized_keys" at start
+
+config.ssh.start_builtin_server=Start builtin server
+
+config.ssh.listen_host=Listen host
+
+config.ssh.listen_port=Listen port
+
+config.ssh.server_ciphers=Server ciphers
+
+config.ssh.server_macs=Server MACs
+config.ssh.server_algorithms=Server algorithms
+
+config.repo_config=Repository Configuration
+config.repo.root_path=Root path
+
+config.repo.script_type=Script type
+
+config.repo.ansi_chatset=ANSI charset
+
+config.repo.force_private=Force private
+config.repo.max_creation_limit=Max creation limit
+config.repo.preferred_licenses=Preferred licenses
+config.repo.disable_http_git=Disable HTTP Git
+config.repo.enable_local_path_migration=Enable local path migration
+config.repo.enable_raw_file_render_mode=Enable raw file render mode
+config.repo.commits_fetch_concurrency=Commits fetch concurrency
+config.repo.editor.line_wrap_extensions=Editor line wrap extensions
+config.repo.editor.previewable_file_modes=Editor previewable file modes
+config.repo.upload.enabled=Upload enabled
+config.repo.upload.temp_path=Upload temporary path
+config.repo.upload.allowed_types=Upload allowed types
+config.repo.upload.file_max_size=Upload file size limit
+config.repo.upload.max_files=Upload files limit
+
+config.db_config=Database Configuration
+config.db.type=Type
+config.db.host=Host
+config.db.name=Name
+config.db.schema=Schema
+config.db.schema_helper=(for "postgres" only)
+config.db.user=User
+config.db.ssl_mode=SSL mode
+config.db.ssl_mode_helper=(for "postgres" only)
+config.db.path=Path
+config.db.path_helper=(for "sqlite3"only)
+config.db.max_open_conns=Maximum open connections
+config.db.max_idle_conns=Maximum idle connections
+
+config.security_config=Security configuration
+config.security.login_remember_days=Login remember days
+config.security.cookie_remember_name=Remember cookie
+config.security.cookie_username=Username cookie
+config.security.cookie_secure=Enable secure cookie
+config.security.reverse_proxy_auth_user=Reverse proxy authentication header
+config.security.enable_login_status_cookie=Enable login status cookie
+config.security.login_status_cookie_name=Login status cookie
+config.security.local_network_allowlist=Local network allowlist
+
+config.email_config=Email configuration
+config.email.enabled=Enabled
+
+config.email.subject_prefix=Subject prefix
+
+config.email.host=Host
+
+config.email.from=From
+
+config.email.user=User
+config.email.disable_helo=Disable HELO
+
+config.email.helo_hostname=HELO hostname
+
+config.email.skip_verify=Skip certificate verify
+
+config.email.use_certificate=Use custom certificate
+
+config.email.cert_file=Certificate file
+
+config.email.key_file=Key file
+
+config.email.use_plain_text=Use plain text
+
+config.email.add_plain_text_alt=Add plain text alternative
+
+config.email.send_test_mail=Send test email
+
+config.email.test_mail_failed=Failed to send test email to '%s': %v
+
+config.email.test_mail_sent=Test email has been sent to '%s'.
+
+
+config.auth_config=Authentication configuration
+
+config.auth_custom_logout_url=Custom logout URL
+config.auth.activate_code_lives=Activate code lives
+
+config.auth.reset_password_code_lives=Reset password code lives
+
+config.auth.require_email_confirm=Require email confirmation
+
+config.auth.require_sign_in_view=Require sign in view
+
+config.auth.disable_registration=Disable registration
+
+config.auth.enable_registration_captcha=Enable registration captcha
+config.auth.enable_reverse_proxy_authentication=Enable reverse proxy authentication
+config.auth.enable_reverse_proxy_auto_registration=Enable reverse proxy auto registration
+config.auth.reverse_proxy_authentication_header=Reverse proxy authentication header
+
+config.user_config=User configuration
+config.user.enable_email_notify=Enable email notification
+
+config.session_config=Session Configuration
+config.session.provider=Provider
+config.session.provider_config=Provider config
+config.session.cookie_name=Cookie
+config.session.https_only=HTTPS only
+config.session.gc_interval=GC interval
+config.session.max_life_time=Max life time
+config.session.csrf_cookie_name=CSRF cookie
+
+config.cache_config=Cache Configuration
+config.cache.adapter=Adapter
+config.cache.interval=GC interval
+config.cache.host=Host
+
+config.http_config=HTTP Configuration
+config.http.access_control_allow_origin=Access control allow origin
+
+config.attachment_config=Attachment configuration
+config.attachment.enabled=Enabled
+config.attachment.path=Path
+config.attachment.allowed_types=Allowed types
+config.attachment.max_size=Size limit
+config.attachment.max_files=Files limit
+
+config.release_config=Release configuration
+config.release.attachment.enabled=Attachment enabled
+config.release.attachment.allowed_types=Attachment allowed types
+config.release.attachment.max_size=Attachment size limit
+config.release.attachment.max_files=Attachment files limit
+
+config.picture_config=Picture Configuration
+config.picture.avatar_upload_path=User avatar upload path
+config.picture.repo_avatar_upload_path=Repository avatar upload path
+config.picture.gravatar_source=Gravatar source
+config.picture.disable_gravatar=Disable Gravatar
+config.picture.enable_federated_avatar=Enable federated avatars
+
+config.mirror_config=Mirror configuration
+config.mirror.default_interval=Default interval
+
+config.webhook_config=Webhook Configuration
+config.webhook.types=Types
+config.webhook.deliver_timeout=Deliver timeout
+config.webhook.skip_tls_verify=Skip TLS verify
+
+config.git_config=Git Configuration
+config.git.disable_diff_highlight=Disable diff syntax highlight
+config.git.max_diff_lines=Diff lines limit (for a single file)
+config.git.max_diff_line_characters=Diff characters limit (for a single line)
+config.git.max_diff_files=Diff files limit (for a single diff)
+config.git.gc_args=GC arguments
+config.git.migrate_timeout=Migration timeout
+config.git.mirror_timeout=Mirror fetch timeout
+config.git.clone_timeout=Clone timeout
+config.git.pull_timeout=Pull timeout
+config.git.gc_timeout=GC timeout
+
+config.lfs_config=LFS configuration
+config.lfs.storage=Storage
+config.lfs.objects_path=Objects path
+
+config.log_config=Log Configuration
+config.log_file_root_path=Log File Root Path
+config.log_mode=Mode
+config.log_options=Options
+
+monitor.cron=Cron Tasks
+monitor.name=Name
+monitor.schedule=Schedule
+monitor.next=Next Time
+monitor.previous=Previous Time
+monitor.execute_times=Execute Times
+monitor.process=Running Processes
+monitor.desc=Description
+monitor.start=Start Time
+monitor.execute_time=Execution Time
+
+notices.system_notice_list=System Notices
+notices.view_detail_header=View Notice Detail
+notices.actions=Actions
+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
+notices.type=Type
+notices.type_1=Repository
+notices.desc=Description
+notices.op=Op.
+notices.delete_success=System notices have been deleted successfully.
+
+[action]
+create_repo=created repository %s
+rename_repo=renamed repository from %[1]s to %[3]s
+commit_repo=pushed to %[3]s at %[4]s
+compare_commits=View comparison for these %d commits
+transfer_repo=transfered repository %s to %s
+create_issue=`opened issue %s#%[2]s`
+close_issue=`closed issue %s#%[2]s`
+reopen_issue=`reopened issue %s#%[2]s`
+comment_issue=`commented on issue %s#%[2]s`
+create_pull_request=`created pull request %s#%[2]s`
+close_pull_request=`closed pull request %s#%[2]s`
+reopen_pull_request=`reopened pull request %s#%[2]s`
+merge_pull_request=`merged pull request %s#%[2]s`
+create_branch=created new branch %[3]s at %[4]s
+delete_branch=deleted branch %[2]s at %[3]s
+push_tag=pushed tag %[2]s to %[3]s
+delete_tag=deleted tag %[2]s at %[3]s
+fork_repo=forked a repository to %s
+mirror_sync_push=synced commits to %[3]s at %[4]s from mirror
+mirror_sync_create=synced new reference %[2]s to %[3]s from mirror
+mirror_sync_delete=synced and deleted reference %[2]s at %[3]s from mirror
+
+[tool]
+ago=ago
+from_now=from now
+now=now
+1s=1 second %s
+1m=1 minute %s
+1h=1 hour %s
+1d=1 day %s
+1w=1 week %s
+1mon=1 month %s
+1y=1 year %s
+seconds=%d seconds %s
+minutes=%d minutes %s
+hours=%d hours %s
+days=%d days %s
+weeks=%d weeks %s
+months=%d months %s
+years=%d years %s
+raw_seconds=seconds
+raw_minutes=minutes
+raw_hours=hours
+
+[dropzone]
+default_message=Drop files here or click to upload.
+invalid_input_type=You can't upload files of this type.
+file_too_big=File size ({{filesize}} MB) exceeds maximum size ({{maxFilesize}} MB).
+remove_file=Remove file
+
diff --git a/conf/locale/locale_en-US.ini b/conf/locale/locale_en-US.ini
index 90f6c60e783..8e9890ff263 100644
--- a/conf/locale/locale_en-US.ini
+++ b/conf/locale/locale_en-US.ini
@@ -1,15 +1,14 @@
-app_desc = A painless self-hosted Git service
+app_desc = The painless way to host your own Git service
home = Home
dashboard = Dashboard
explore = Explore
help = Help
-sign_in = Sign In
-sign_out = Sign Out
+sign_in = Sign in
+sign_out = Sign out
sign_up = Sign Up
-register = Register
+register = Create account
website = Website
-version = Version
page = Page
template = Template
language = Language
@@ -18,49 +17,59 @@ user_profile_and_more = User profile and more
signed_in_as = Signed in as
username = Username
+username_placeholder = Enter your username or email
email = Email
password = Password
+password_placeholder = Enter your password
re_type = Re-Type
captcha = Captcha
repository = Repository
organization = Organization
mirror = Mirror
-new_repo = New Repository
-new_migrate = New Migration
-new_mirror = New Mirror
-new_fork = New Fork Repository
-new_org = New Organization
-manage_org = Manage Organizations
-admin_panel = Admin Panel
+new_repo = New repository
+new_migrate = New migration
+new_mirror = New mirror
+new_fork = New fork repository
+new_org = New organization
+manage_org = Manage organizations
+admin_panel = Admin panel
account_settings = Account Settings
settings = Settings
-your_profile = Your Profile
-your_settings = Your Settings
+theme = Theme
+theme_light = Light
+theme_dark = Dark
+theme_system = System
+your_profile = Your profile
+your_settings = Your settings
activities = Activities
-pull_requests = Pull Requests
+pull_requests = Pull requests
issues = Issues
cancel = Cancel
+[status]
+page_not_found = Page not found
+internal_server_error = Internal Server Error
+
[install]
install = Installation
title = Install Steps For First-time Run
docker_helper = If you're running Gogs inside Docker, please read Guidelines carefully before you change anything in this page!
-requite_db_desc = Gogs requires MySQL, PostgreSQL, SQLite3 or TiDB.
+requite_db_desc = Gogs requires MySQL, PostgreSQL, SQLite3 or TiDB (via MySQL protocol).
db_title = Database Settings
db_type = Database Type
host = Host
user = User
password = Password
db_name = Database Name
+db_schema = Schema
db_helper = Please use INNODB engine with utf8_general_ci charset for MySQL.
ssl_mode = SSL Mode
path = Path
-sqlite_helper = The file path of SQLite3 or TiDB database. Please use absolute path when you start as service.
-err_empty_db_path = SQLite3 or TiDB database path cannot be empty.
-err_invalid_tidb_name = TiDB database name does not allow characters "." and "-".
+sqlite_helper = The file path of SQLite3 database. Please use absolute path when you start as service.
+err_empty_db_path = SQLite3 database path cannot be empty.
no_admin_and_disable_registration = You cannot disable registration without creating an admin account.
err_empty_admin_password = Admin password cannot be empty.
@@ -75,12 +84,17 @@ domain = Domain
domain_helper = This affects SSH clone URLs.
ssh_port = SSH Port
ssh_port_helper = Port number which your SSH server is using, leave it empty to disable SSH feature.
+use_builtin_ssh_server = Use Builtin SSH Server
+use_builtin_ssh_server_popup = Start builtin SSH server for Git operations to distinguish from system SSH daemon.
http_port = HTTP Port
http_port_helper = Port number which application will listen on.
app_url = Application URL
app_url_helper = This affects HTTP/HTTPS clone URL and somewhere in email.
log_root_path = Log Path
log_root_path_helper = Directory to write log files to.
+enable_console_mode = Enable Console Mode
+enable_console_mode_popup = In addition to file mode, also print logs to console.
+default_branch = Default Branch
optional_title = Optional Settings
email_title = Email Service Settings
@@ -104,19 +118,21 @@ enable_captcha = Enable Captcha
enable_captcha_popup = Require validate captcha for user self-registration.
require_sign_in_view = Enable Require Sign In to View Pages
require_sign_in_view_popup = Only signed in users can view pages, visitors will only be able to see sign in/up pages.
-admin_setting_desc = You do not have to create an admin account right now, user whoever ID=1 will gain admin access automatically.
+admin_setting_desc = You don't need to create an admin account right now. The first user in the users table will be automatically granted admin access.
admin_title = Admin Account Settings
admin_name = Username
admin_password = Password
confirm_password = Confirm Password
admin_email = Admin Email
install_gogs = Install Gogs
-test_git_failed = Fail to test 'git' command: %v
-sqlite3_not_available = Your release version does not support SQLite3, please download the official binary version from %s, NOT the gobuild version.
+test_git_failed = Failed to test 'git' command: %v
invalid_db_setting = Database setting is not correct: %v
invalid_repo_path = Repository root path is invalid: %v
run_user_not_match = Run user isn't the current user: %s -> %s
-save_config_failed = Fail to save configuration: %v
+smtp_host_missing_port = SMTP Host port missing from address.
+invalid_smtp_from = SMTP From field is invalid: %v
+save_config_failed = Failed to save configuration: %v
+init_failed = Failed to initialize application: %v
invalid_admin_setting = Admin account setting is invalid: %v
install_success = Welcome! We're glad that you chose Gogs, have fun and take care.
invalid_log_root_path = Log root path is invalid: %v
@@ -142,27 +158,46 @@ search = Search
[auth]
create_new_account = Create New Account
+sign_in_submitting = Signing in...
+sign_in_failed = Could not sign in, please try again.
+show_password = Show password
+hide_password = Hide password
+back_to_sign_in = Back to sign in
+mfa_title = Multi-factor authentication
+mfa_passcode = Passcode
+mfa_passcode_placeholder = Enter the 6-digit code from your authenticator
+mfa_recovery_code = Recovery code
+mfa_recovery_code_placeholder = Enter a recovery code
+mfa_use_recovery_code = Use a recovery code instead
+mfa_use_passcode = Use a passcode instead
+mfa_verify = Verify
+mfa_verifying = Verifying...
+mfa_session_expired = Your sign-in session has expired. Please sign in again.
+mfa_verify_failed = Verification failed. Please try again.
+mfa_invalid_passcode = The passcode you entered is not valid.
+mfa_reused_passcode = The passcode you entered has already been used, please try another one.
+mfa_invalid_recovery_code = Recovery code already used or invalid.
register_hepler_msg = Already have an account? Sign in now!
social_register_hepler_msg = Already have an account? Bind now!
disable_register_prompt = Sorry, registration has been disabled. Please contact the site administrator.
-disable_register_mail = Sorry, Register Mail Confirmation has been disabled.
-remember_me = Remember Me
+disable_register_mail = Sorry, email services are disabled. Please contact the site administrator.
+auth_source = Authentication source
+local = Local
forgot_password= Forgot Password
forget_password = Forgot password?
-sign_up_now = Need an account? Sign up now.
+sign_up_now = Create a new account
confirmation_mail_sent_prompt = A new confirmation email has been sent to %s, please check your inbox within the next %d hours to complete the registration process.
active_your_account = Activate Your Account
prohibit_login = Login Prohibited
-prohibit_login_desc = Your account is prohibited to login, please contact site admin.
+prohibit_login_desc = Your account is prohibited from logging in. Please contact the site admin.
resent_limit_prompt = Sorry, you already requested an activation email recently. Please wait 3 minutes then try again.
-has_unconfirmed_mail = Hi %s, you have an unconfirmed email address (%s). If you haven't received a confirmation email or need to resend a new one, please click on the button below.
+has_unconfirmed_mail = Hi %s, you have an unconfirmed email address (%s). If you haven't received a confirmation email or need to receive a new one, please click the button below.
resend_mail = Click here to resend your activation email
-email_not_associate = This email address is not associated with any account.
send_reset_mail = Click here to (re)send your password reset email
reset_password = Reset Your Password
invalid_code = Sorry, your confirmation code has expired or not valid.
reset_password_helper = Click here to reset your password
-password_too_short = Password length cannot be less then 6.
+password_too_short = Password length must be at least 6 characters.
non_local_account = Non-local accounts cannot change passwords through Gogs.
[mail]
@@ -178,7 +213,9 @@ no = No
modify = Modify
[form]
+invalid_request = The request could not be processed
UserName = Username
+Username = Username
RepoName = Repository name
Email = Email address
Password = Password
@@ -189,6 +226,8 @@ PayloadUrl = Payload URL
TeamName = Team name
AuthName = Authorization name
AdminEmail = Admin email
+Passcode = Passcode
+RecoveryCode = Recovery code
NewBranchName = New branch name
CommitSummary = Commit summary
@@ -198,9 +237,10 @@ TreeName = File path
Content = Content
require_error = ` cannot be empty.`
-alpha_dash_error = ` must be valid alpha or numeric or dash(-_) characters.`
-alpha_dash_dot_error = ` must be valid alpha or numeric or dash(-_) or dot characters.`
-size_error = ` must be size %s.`
+alpha_dash_error = ` must be alphanumeric or dash(-_) characters.`
+alpha_dash_dot_error = ` must be alphanumeric or dash(-_) or dot characters.`
+alpha_dash_dot_slash_error = ` must be alphanumeric, dash (-_), dot or slash characters.`
+size_error = ` size must be %s.`
min_size_error = ` must contain at least %s characters.`
max_size_error = ` must contain at most %s characters.`
email_error = ` is not a valid email address.`
@@ -215,15 +255,16 @@ repo_name_been_taken = Repository name has already been taken.
org_name_been_taken = Organization name has already been taken.
team_name_been_taken = Team name has already been taken.
email_been_used = Email address has already been used.
-username_password_incorrect = Username or password is not correct.
+username_password_incorrect = Username or password is incorrect.
+auth_source_mismatch = The authentication source selected is not associated with the user.
enterred_invalid_repo_name = Please make sure that the repository name you entered is correct.
enterred_invalid_owner_name = Please make sure that the owner name you entered is correct.
enterred_invalid_password = Please make sure the that password you entered is correct.
user_not_exist = Given user does not exist.
-last_org_owner = Removing the last user from a owner team isn't allowed, as there must always be at least one owner in any given organization.
+last_org_owner = Removing the last remaining user from an owner team is not allowed, as an organization must always have at least one owner.
-invalid_ssh_key = Sorry, we're not able to verify your SSH key: %s
-unable_verify_ssh_key = Gogs cannot verify your SSH key, but we assume that it is valid, please double-check it.
+invalid_ssh_key = Sorry, verification of your SSH key failed: %s
+unable_verify_ssh_key = Gogs cannot verify your SSH key, but it's assumed to be valid. Please double-check it.
auth_failed = Authentication failed: %v
still_own_repo = Your account still has ownership over at least one repository, you have to delete or transfer them first.
@@ -243,19 +284,18 @@ following = Following
follow = Follow
unfollow = Unfollow
-form.name_reserved = Username '%s' is reserved.
-form.name_pattern_not_allowed = Username pattern '%s' is not allowed.
+form.name_not_allowed = User name or pattern %q is not allowed.
[settings]
profile = Profile
password = Password
avatar = Avatar
ssh_keys = SSH Keys
-social = Social Accounts
-applications = Applications
+security = Security
+repos = Repositories
orgs = Organizations
+applications = Applications
delete = Delete Account
-uid = Uid
public_profile = Public Profile
profile_desc = Your email address is public and will be used for any account related notifications, and any web based operations made via the site.
@@ -284,7 +324,7 @@ old_password = Current Password
new_password = New Password
retype_new_password = Retype New Password
password_incorrect = Current password is not correct.
-change_password_success = Your password was successfully changed. You can now sign using this new password.
+change_password_success = Your password was successfully changed and can now be used for logging in.
password_change_disabled = Non-local type users are not allowed to change their password.
emails = Email Addresses
@@ -296,8 +336,9 @@ delete_email = Delete
email_deletion = Email Deletion
email_deletion_desc = Deleting this email address will remove related information from your account. Do you want to continue?
email_deletion_success = Email has been deleted successfully!
+email_deletion_primary = Cannot delete primary email address.
add_new_email = Add new email address
-add_email = Add email
+add_email = Add Email
add_email_confirmation_sent = A new confirmation email has been sent to '%s', please check your inbox within the next %d hours to complete the confirmation process.
add_email_success = Your new email address was successfully added.
@@ -321,14 +362,36 @@ no_activity = No recent activity
key_state_desc = This key is used in last 7 days
token_state_desc = This token is used in last 7 days
-manage_social = Manage Associated Social Accounts
-social_desc = This is a list of associated social accounts. Remove any binding that you do not recognize.
-unbind = Unbind
-unbind_success = Social account has been unbound.
+two_factor = Two-factor Authentication
+two_factor_status = Status:
+two_factor_on = On
+two_factor_off = Off
+two_factor_enable = Enable
+two_factor_disable = Disable
+two_factor_view_recovery_codes = View and save your recovery codes in a safe place. You can use them as passcode if you lose access to your authentication application.
+two_factor_http = For HTTP/HTTPS operations, you are no longer able to use plain username and password. Please create and use Personal Access Token as your credential, e.g. %[3]s.
+two_factor_enable_title = Enable Two-factor Authentication
+two_factor_scan_qr = Please use your authentication application to scan the image:
+two_factor_or_enter_secret = Or enter the secret:
+two_factor_then_enter_passcode = Then enter passcode:
+two_factor_verify = Verify
+two_factor_invalid_passcode = The passcode you entered is not valid, please try again!
+two_factor_reused_passcode = The passcode you entered has already been used, please try another one!
+two_factor_enable_error = Enable Two-factor authentication failed: %v
+two_factor_enable_success = Two-factor authentication has enabled for your account successfully!
+two_factor_recovery_codes_title = Two-factor Authentication Recovery Codes
+two_factor_recovery_codes_desc = Recovery codes are used when you temporarily lose access to your authentication application. Each recovery code can only be used once, please keep these codes in a safe place.
+two_factor_regenerate_recovery_codes = Regenerate Recovery Codes
+two_factor_regenerate_recovery_codes_error = Regenerate recovery codes failed: %v
+two_factor_regenerate_recovery_codes_success = New recovery codes has been generated successfully!
+two_factor_disable_title = Disable Two-factor Authentication
+two_factor_disable_desc = Your account security level will decrease after disabled two-factor authentication. Do you want to continue?
+two_factor_disable_success = Two-factor authentication has disabled successfully!
manage_access_token = Manage Personal Access Tokens
generate_new_token = Generate New Token
tokens_desc = Tokens you have generated that can be used to access the Gogs APIs.
+access_token_tips=The personal access token may be used as either username or password. It is recommended to use the "x-access-token" as the username and the personal access token as the password for Git applications.
new_token_desc = Each token will have full access to your account.
token_name = Token Name
generate_token = Generate Token
@@ -337,6 +400,16 @@ delete_token = Delete
access_token_deletion = Personal Access Token Deletion
access_token_deletion_desc = Delete this personal access token will remove all related accesses of application. Do you want to continue?
delete_token_success = Personal access token has been removed successfully! Don't forget to update your application as well.
+token_name_exists = Token with same name already exists.
+
+orgs.none = You are not a member of any organizations.
+orgs.leave_title = Leave organization
+orgs.leave_desc = You will lose access to all repositories and teams after you left the organization. Do you want to continue?
+
+repos.leave = Leave
+repos.leave_title = Leave repository
+repos.leave_desc = You will lose access to the repository after you left. Do you want to continue?
+repos.leave_success = You have left repository '%s' successfully!
delete_account = Delete Your Account
delete_prompt = The operation will delete your account permanently, and CANNOT be undone!
@@ -349,7 +422,9 @@ owner = Owner
repo_name = Repository Name
repo_name_helper = A good repository name is usually composed of short, memorable and unique keywords.
visibility = Visibility
+unlisted = Unlisted
visiblity_helper = This repository is Private
+unlisted_helper = This repository is Unlisted
visiblity_helper_forced = Site admin has forced all new repositories to be Private
visiblity_fork_helper = (Change of this value will affect all forks)
clone_helper = Need help cloning? Visit Help!
@@ -375,24 +450,26 @@ mirror_last_synced = Last Synced
watchers = Watchers
stargazers = Stargazers
forks = Forks
+repo_description_helper = Description of repository. Maximum 512 characters length.
+repo_description_length = Available characters
form.reach_limit_of_creation = The owner has reached maximum creation limit of %d repositories.
-form.name_reserved = Repository name '%s' is reserved.
-form.name_pattern_not_allowed = Repository name pattern '%s' is not allowed.
+form.name_not_allowed = Repository name or pattern %q is not allowed.
need_auth = Need Authorization
migrate_type = Migration Type
migrate_type_helper = This repository will be a mirror
migrate_repo = Migrate Repository
migrate.clone_address = Clone Address
-migrate.clone_address_desc = This can be a HTTP/HTTPS/GIT URL or local server path.
+migrate.clone_address_desc = This can be a HTTP/HTTPS/GIT URL.
+migrate.clone_address_desc_import_local = You're also allowed to migrate a repository by local server path.
migrate.permission_denied = You are not allowed to import local repositories.
migrate.invalid_local_path = Invalid local path, it does not exist or not a directory.
+migrate.clone_address_resolved_to_blocked_local_address = Clone address resolved to a local network address that is implicitly blocked.
migrate.failed = Migration failed: %v
mirror_from = mirror of
forked_from = forked from
-fork_from_self = You cannot fork a repository you already own!
copy_link = Copy
copy_link_success = Copied!
copy_link_error = Press ⌘-C or Ctrl-C to copy
@@ -408,9 +485,9 @@ quick_guide = Quick Guide
clone_this_repo = Clone this repository
create_new_repo_command = Create a new repository on the command line
push_exist_repo = Push an existing repository from the command line
-repo_is_empty = This repository is empty, please come back later!
+bare_message = This repository does not have any content yet.
-code = Code
+files = Files
branch = Branch
tree = Tree
filter_branch_and_tag = Filter branch or tag
@@ -421,12 +498,23 @@ pulls = Pull Requests
labels = Labels
milestones = Milestones
commits = Commits
+git_branches = Branches
releases = Releases
file_raw = Raw
file_history = History
file_view_raw = View Raw
file_permalink = Permalink
file_too_large = This file is too large to be shown
+video_not_supported_in_browser = Your browser doesn't support HTML5 video tag.
+
+branches.overview = Overview
+branches.active_branches = Active Branches
+branches.stale_branches = Stale Branches
+branches.all = All Branches
+branches.updated_by = Updated %[1]s by %[2]s
+branches.change_default_branch = Change Default Branch
+branches.default_deletion_not_allowed = Cannot delete the default branch.
+branches.protected_deletion_not_allowed = Cannot delete a protected branch.
editor.new_file = New file
editor.upload_file = Upload file
@@ -456,16 +544,19 @@ editor.cancel = Cancel
editor.filename_cannot_be_empty = Filename cannot be empty.
editor.branch_already_exists = Branch '%s' already exists in this repository.
editor.directory_is_a_file = Entry '%s' in the parent path is a file not a directory in this repository.
+editor.file_is_a_symlink = The file '%s' is a symlink that cannot be modified from the web editor.
editor.filename_is_a_directory = The filename '%s' is an existing directory in this repository.
editor.file_editing_no_longer_exists = The file '%s' you are editing no longer exists in the repository.
editor.file_changed_while_editing = File content has been changed since you started editing. Click here to see what have been changed or press commit again to overwrite those changes.
editor.file_already_exists = A file with name '%s' already exists in this repository.
editor.no_changes_to_show = There are no changes to show.
editor.fail_to_update_file = Failed to update/create file '%s' with error: %v
+editor.fail_to_delete_file = Failed to delete file '%s' with error: %v
editor.add_subdir = Add subdirectory...
editor.unable_to_upload_files = Failed to upload files to '%s' with error: %v
editor.upload_files_to_dir = Upload files to '%s'
+commits.commit_history = Commit History
commits.commits = Commits
commits.search = Search commits
commits.find = Find
@@ -492,7 +583,7 @@ issues.new_label = New Label
issues.new_label_placeholder = Label name...
issues.create_label = Create Label
issues.label_templates.title = Load a predefined set of labels
-issues.label_templates.info = There aren’t any labels yet. You can click on the "New Label" button above to create one or use a predefined set below.
+issues.label_templates.info = There aren't any labels yet. You can click on the "New Label" button above to create one or use a predefined set below.
issues.label_templates.helper = Select a label set
issues.label_templates.use = Use this label set
issues.label_templates.fail_to_load_file = Failed to load label template file '%s': %v
@@ -563,6 +654,7 @@ pulls.compare_compare = compare
pulls.filter_branch = Filter branch
pulls.no_results = No results found.
pulls.nothing_to_compare = There is nothing to compare because base and head branches are even.
+pulls.nothing_merge_base = There is nothing to compare because two branches have completely different history.
pulls.has_pull_request = `There is already a pull request between these two targets: %[2]s#%[3]d`
pulls.create = Create Pull Request
pulls.title_desc = wants to merge %[1]d commits from %[2]s into %[3]s
@@ -578,8 +670,13 @@ pulls.is_checking = The conflict checking is still in progress, please refresh p
pulls.can_auto_merge_desc = This pull request can be merged automatically.
pulls.cannot_auto_merge_desc = This pull request can't be merged automatically because there are conflicts.
pulls.cannot_auto_merge_helper = Please merge manually in order to resolve the conflicts.
+pulls.create_merge_commit = Create a merge commit
+pulls.rebase_before_merging = Rebase before merging
+pulls.commit_description = Commit Description
pulls.merge_pull_request = Merge Pull Request
pulls.open_unmerged_pull_exists = `You can't perform reopen operation because there is already an open pull request (#%d) from same repository with same merge information and is waiting for merging.`
+pulls.delete_branch = Delete Branch
+pulls.delete_branch_has_new_commits = Branch cannot be deleted because it has new commits after mergence.
milestones.new = New Milestone
milestones.open_tab = %d Open
@@ -630,6 +727,29 @@ settings.collaboration.admin = Admin
settings.collaboration.write = Write
settings.collaboration.read = Read
settings.collaboration.undefined = Undefined
+settings.branches = Branches
+settings.branches_bare = You cannot manage branches for bare repository. Please push some content first.
+settings.default_branch = Default Branch
+settings.default_branch_desc = The default branch is considered the "base" branch for code commits, pull requests and online editing.
+settings.update = Update
+settings.update_default_branch_unsupported = Change default branch is not supported by the Git version on server.
+settings.update_default_branch_success = Default branch of this repository has been updated successfully!
+settings.protected_branches = Protected Branches
+settings.protected_branches_desc = Protect branches from force pushing, accidental deletion and whitelist code committers.
+settings.choose_a_branch = Choose a branch...
+settings.branch_protection = Branch Protection
+settings.branch_protection_desc = Please choose protect options for branch %s.
+settings.protect_this_branch = Protect this branch
+settings.protect_this_branch_desc = Disable force pushes and prevent from deletion.
+settings.protect_require_pull_request = Require pull request instead direct pushing
+settings.protect_require_pull_request_desc = Enable this option to disable direct pushing to this branch. Commits have to be pushed to another non-protected branch and merged to this branch through pull request.
+settings.protect_whitelist_committers = Whitelist who can push to this branch
+settings.protect_whitelist_committers_desc = Add people or teams to whitelist of direct push to this branch. Users in whitelist will bypass require pull request check.
+settings.protect_whitelist_users = Users who can push to this branch
+settings.protect_whitelist_search_users = Search users
+settings.protect_whitelist_teams = Teams for which members of them can push to this branch
+settings.protect_whitelist_search_teams = Search teams
+settings.update_protect_branch_success = Protect options for this branch has been updated successfully!
settings.hooks = Webhooks
settings.githooks = Git Hooks
settings.basic_settings = Basic Settings
@@ -642,19 +762,26 @@ settings.change_reponame_prompt = This change will affect how links relate to th
settings.advanced_settings = Advanced Settings
settings.wiki_desc = Enable wiki system
settings.use_internal_wiki = Use builtin wiki
+settings.allow_public_wiki_desc = Allow public access to wiki when repository is private
settings.use_external_wiki = Use external wiki
settings.external_wiki_url = External Wiki URL
settings.external_wiki_url_desc = Visitors will be redirected to URL when they click on the tab.
settings.issues_desc = Enable issue tracker
settings.use_internal_issue_tracker = Use builtin lightweight issue tracker
+settings.allow_public_issues_desc = Allow public access to issues when repository is private
settings.use_external_issue_tracker = Use external issue tracker
+settings.external_tracker_url = External Issue Tracker URL
+settings.external_tracker_url_desc = Visitors will be redirected to URL when they click on the tab.
settings.tracker_url_format = External Issue Tracker URL Format
settings.tracker_issue_style = External Issue Tracker Naming Style:
settings.tracker_issue_style.numeric = Numeric
settings.tracker_issue_style.alphanumeric = Alphanumeric
settings.tracker_url_format_desc = You can use placeholder {user} {repo} {index} for user name, repository name and issue index.
-settings.pulls_desc = Enable pull requests to accept public contributions
+settings.pulls_desc = Enable pull requests to accept contributions between repositories and branches
+settings.pulls.ignore_whitespace = Ignore changes in whitespace
+settings.pulls.allow_rebase_merge = Allow use rebase to merge commits
settings.danger_zone = Danger Zone
+settings.cannot_fork_to_same_owner = You cannot fork a repository to its original owner.
settings.new_owner_has_same_repo = The new owner already has a repository with same name. Please choose another name.
settings.convert = Convert To Regular Repository
settings.convert_desc = You can convert this mirror to a regular repository. This cannot be reversed.
@@ -673,7 +800,7 @@ settings.wiki_deletion_success = Repository wiki data have been erased successfu
settings.delete = Delete This Repository
settings.delete_desc = Once you delete a repository, there is no going back. Please be certain.
settings.delete_notices_1 = - This operation CANNOT be undone.
-settings.delete_notices_2 = - This operation will permanently delete the everything of this repository, including Git data, issues, comments and accesses of collaborators.
+settings.delete_notices_2 = - This operation will permanently delete everything in this repository, including Git data, issues, comments and collaborator access.
settings.delete_notices_fork_1 = - All forks will become independent after deletion.
settings.deletion_success = Repository has been deleted successfully!
settings.update_settings_success = Repository options has been updated successfully.
@@ -689,42 +816,58 @@ settings.collaborator_deletion_desc = This user will no longer have collaboratio
settings.remove_collaborator_success = Collaborator has been removed.
settings.search_user_placeholder = Search user...
settings.org_not_allowed_to_be_collaborator = Organization is not allowed to be added as a collaborator.
-settings.user_is_org_member = User is organization member who cannot be added as a collaborator.
-settings.add_webhook = Add Webhook
-settings.hooks_desc = Webhooks are much like basic HTTP POST event triggers. Whenever something occurs in Gogs, we will handle the notification to the target host you specify. Learn more in this Webhooks Guide.
+settings.hooks_desc = Webhooks are much like basic HTTP POST event triggers. Whenever something occurs in Gogs, we will handle the notification to the target host you specify.
+settings.webhooks.add_new = Add a new webhook:
+settings.webhooks.choose_a_type = Choose a type...
+settings.add_webhook = Add webhook
settings.webhook_deletion = Delete Webhook
settings.webhook_deletion_desc = Delete this webhook will remove its information and all delivery history. Do you want to continue?
settings.webhook_deletion_success = Webhook has been deleted successfully!
settings.webhook.test_delivery = Test Delivery
settings.webhook.test_delivery_desc = Send a fake push event delivery to test your webhook settings
settings.webhook.test_delivery_success = Test webhook has been added to delivery queue. It may take few seconds before it shows up in the delivery history.
+settings.webhook.redelivery = Redelivery
+settings.webhook.redelivery_success = Hook task '%s' has been readded to delivery queue. It may take few seconds to update delivery status in history.
settings.webhook.request = Request
settings.webhook.response = Response
settings.webhook.headers = Headers
settings.webhook.payload = Payload
settings.webhook.body = Body
+settings.webhook.err_cannot_parse_payload_url = Cannot parse payload URL: %v
+settings.webhook.url_resolved_to_blocked_local_address = Payload URL resolved to a local network address that is implicitly blocked.
settings.githooks_desc = Git Hooks are powered by Git itself, you can edit files of supported hooks in the list below to perform custom operations.
settings.githook_edit_desc = If the hook is inactive, sample content will be presented. Leaving content to an empty value will disable this hook.
settings.githook_name = Hook Name
settings.githook_content = Hook Content
settings.update_githook = Update Hook
-settings.add_webhook_desc = Gogs will send a POST request to the URL you specify, along with regarding the event that occured. You can also specify what kind of data format you'd like to get upon triggering the hook (JSON, x-www-form-urlencoded, XML, etc). More information can be found in our Webhooks Guide.
+settings.add_webhook_desc = Gogs will send a POST request to the URL you specify, along with details regarding the event that occurred. You can also specify what kind of data format you'd like to get upon triggering the hook (JSON, x-www-form-urlencoded, XML, etc). More information can be found in our Webhooks Guide.
settings.payload_url = Payload URL
settings.content_type = Content Type
settings.secret = Secret
+settings.secret_desc = Secret will be sent as SHA256 HMAC hex digest of payload via X-Gogs-Signature header.
settings.slack_username = Username
settings.slack_icon_url = Icon URL
settings.slack_color = Color
settings.event_desc = When should this webhook be triggered?
-settings.event_push_only = Just the push event.
-settings.event_send_everything = I need everything.
-settings.event_choose = Let me choose what I need.
+settings.event_push_only = Just the push event
+settings.event_send_everything = I need everything
+settings.event_choose = Let me choose what I need
settings.event_create = Create
-settings.event_create_desc = Branch, or tag created
-settings.event_pull_request = Pull Request
-settings.event_pull_request_desc = Pull request opened, closed, reopened, edited, assigned, unassigned, label updated, label cleared, or synchronized.
+settings.event_create_desc = Branch or tag created
+settings.event_delete = Delete
+settings.event_delete_desc = Branch or tag deleted
+settings.event_fork = Fork
+settings.event_fork_desc = Repository forked
settings.event_push = Push
settings.event_push_desc = Git push to a repository
+settings.event_issues = Issues
+settings.event_issues_desc = Issue opened, closed, reopened, edited, assigned, unassigned, label updated, label cleared, milestoned, or demilestoned.
+settings.event_pull_request = Pull Request
+settings.event_pull_request_desc = Pull request opened, closed, reopened, edited, assigned, unassigned, label updated, label cleared, milestoned, demilestoned, or synchronized.
+settings.event_issue_comment = Issue Comment
+settings.event_issue_comment_desc = Issue comment created, edited, or deleted.
+settings.event_release = Release
+settings.event_release_desc = Release published in a repository.
settings.active = Active
settings.active_helper = Details regarding the event which triggered the hook will be delivered as well.
settings.add_hook_success = New webhook has been added.
@@ -734,10 +877,13 @@ settings.delete_webhook = Delete Webhook
settings.recent_deliveries = Recent Deliveries
settings.hook_type = Hook Type
settings.add_slack_hook_desc = Add Slack integration to your repository.
+settings.add_discord_hook_desc = Add Discord integration to your repository.
+settings.add_dingtalk_hook_desc = Add Dingtalk integration to your repository.
settings.slack_token = Token
settings.slack_domain = Domain
settings.slack_channel = Channel
settings.deploy_keys = Deploy Keys
+settings.deploy_keys_helper = Common Gotcha! If you're looking for adding personal public keys, please add them in your account settings.
settings.add_deploy_key = Add Deploy Key
settings.deploy_key_desc = Deploy keys have read-only access. They are not the same as personal account SSH keys.
settings.no_deploy_keys = You haven't added any deploy keys.
@@ -749,6 +895,8 @@ settings.add_key_success = New deploy key '%s' has been added successfully!
settings.deploy_key_deletion = Delete Deploy Key
settings.deploy_key_deletion_desc = Deleting this deploy key will remove all related accesses for this repository. Do you want to continue?
settings.deploy_key_deletion_success = Deploy key has been deleted successfully!
+settings.description_desc = Description of repository. Maximum 512 characters length.
+settings.description_length = Available characters
diff.browse_source = Browse Source
diff.parent = parent
@@ -767,7 +915,6 @@ release.releases = Releases
release.new_release = New Release
release.draft = Draft
release.prerelease = Pre-Release
-release.stable = Stable
release.edit = edit
release.ahead = %d commits to %s since this release
release.source_code = Source Code
@@ -814,8 +961,8 @@ team_name_helper = You'll use this name to mention this team in conversations.
team_desc_helper = What is this team all about?
team_permission_desc = What permission level should this team have?
-form.name_reserved = Organization name '%s' is reserved.
-form.name_pattern_not_allowed = Organization name pattern '%s' is not allowed.
+form.name_not_allowed = Organization name or pattern %q is not allowed.
+form.team_name_not_allowed = Team name or pattern %q is not allowed.
settings = Settings
settings.options = Options
@@ -865,9 +1012,9 @@ teams.add_team_member = Add Team Member
teams.delete_team_title = Team Deletion
teams.delete_team_desc = As this team will be deleted, members of this team may lose access to some repositories. Do you want to continue?
teams.delete_team_success = Given team has been deleted successfully.
-teams.read_permission_desc = This team grants Read access: members can view and clone the team's repositories.
-teams.write_permission_desc = This team grants Write access: members can read from and push to the team's repositories.
-teams.admin_permission_desc = This team grants Admin access: members can read from, push to, and add collaborators to the team's repositories.
+teams.read_permission_desc = Membership in this team grants Read access: members can view and clone the team's repositories.
+teams.write_permission_desc = Membership in this team grants Write access: members can read from and push to the team's repositories.
+teams.admin_permission_desc = Membership in this team grants Admin access: members can read from, push to, and add collaborators to the team's repositories.
teams.repositories = Team Repositories
teams.search_repo_placeholder = Search repository...
teams.add_team_repository = Add Team Repository
@@ -887,12 +1034,19 @@ first_page = First
last_page = Last
total = Total: %d
-dashboard.statistic = Statistic
+dashboard.build_info = Build Information
+dashboard.app_ver = Application version
+dashboard.git_version = Git version
+dashboard.go_version = Go version
+dashboard.build_time = Build time
+dashboard.build_commit = Build commit
+dashboard.statistic = Statistics
dashboard.operations = Operations
dashboard.system_status = System Monitor Status
dashboard.statistic_info = Gogs database has %d users, %d organizations, %d public keys, %d repositories, %d watches, %d stars, %d actions, %d accesses, %d issues, %d comments, %d social accounts, %d follows, %d mirrors, %d releases, %d login sources, %d webhooks, %d milestones, %d labels, %d hook tasks, %d teams, %d update tasks, %d attachments.
dashboard.operation_name = Operation Name
dashboard.operation_switch = Switch
+dashboard.select_operation_to_run = Please select operation to run
dashboard.operation_run = Run
dashboard.clean_unbind_oauth = Clean unbound OAuthes
dashboard.clean_unbind_oauth_success = All unbind OAuthes have been deleted successfully.
@@ -906,8 +1060,8 @@ dashboard.git_gc_repos = Do garbage collection on repositories
dashboard.git_gc_repos_success = All repositories have done garbage collection successfully.
dashboard.resync_all_sshkeys = Rewrite '.ssh/authorized_keys' file (caution: non-Gogs keys will be lost)
dashboard.resync_all_sshkeys_success = All public keys have been rewritten successfully.
-dashboard.resync_all_update_hooks = Rewrite all update hook of repositories (needed when custom config path is changed)
-dashboard.resync_all_update_hooks_success = All repositories' update hook have been rewritten successfully.
+dashboard.resync_all_hooks = Resync pre-receive, update and post-receive hooks of all repositories
+dashboard.resync_all_hooks_success = All repositories' pre-receive, update and post-receive hooks have been resynced successfully.
dashboard.reinit_missing_repos = Reinitialize all repository records that lost Git files
dashboard.reinit_missing_repos_success = All repository records that lost Git files have been reinitialized successfully.
@@ -951,7 +1105,7 @@ users.created = Created
users.send_register_notify = Send Registration Notification To User
users.new_success = New account '%s' has been created successfully.
users.edit = Edit
-users.auth_source = Authentication Source
+users.auth_source = Authentication source
users.local = Local
users.auth_login_name = Authentication Login Name
users.password_helper = Leave it empty to remain unchanged.
@@ -982,12 +1136,14 @@ repos.private = Private
repos.watches = Watches
repos.stars = Stars
repos.issues = Issues
+repos.size = Size
-auths.auth_manage_panel = Authentication Manage Panel
+auths.auth_sources = Authentication sources
auths.new = Add New Source
auths.name = Name
auths.type = Type
auths.enabled = Enabled
+auths.default = Default
auths.updated = Updated
auths.auth_type = Authentication Type
auths.auth_name = Authentication Name
@@ -996,15 +1152,21 @@ auths.domain = Domain
auths.host = Host
auths.port = Port
auths.bind_dn = Bind DN
+auths.bind_dn_helper = You can use '%s' as placeholder for username, e.g. DOM\%s
auths.bind_password = Bind Password
auths.bind_password_helper = Warning: This password is stored in plain text. Do not use a high privileged account.
auths.user_base = User Search Base
auths.user_dn = User DN
-auths.attribute_username = Username attribute
+auths.attribute_username = Username Attribute
auths.attribute_username_placeholder = Leave empty to use sign-in form field value for user name.
-auths.attribute_name = First name attribute
-auths.attribute_surname = Surname attribute
-auths.attribute_mail = Email attribute
+auths.attribute_name = First Name Attribute
+auths.attribute_surname = Surname Attribute
+auths.attribute_mail = Email Attribute
+auths.verify_group_membership = Verify group membership
+auths.group_search_base_dn = Group Search Base DN
+auths.group_filter = Group Filter
+auths.group_attribute_contain_user_list = Group Attribute Containing List of Users
+auths.user_attribute_listed_in_group = User Attribute Listed in Group
auths.attributes_in_bind = Fetch attributes in Bind DN context
auths.filter = User Filter
auths.admin_filter = Admin Filter
@@ -1018,9 +1180,9 @@ auths.enable_tls = Enable TLS Encryption
auths.skip_tls_verify = Skip TLS Verify
auths.pam_service_name = PAM Service Name
auths.enable_auto_register = Enable Auto Registration
-auths.tips = Tips
auths.edit = Edit Authentication Setting
auths.activated = This authentication is activated
+auths.default_auth = This authentication is default login source
auths.new_success = New authentication '%s' has been added successfully.
auths.update_success = Authentication setting has been updated successfully.
auths.update = Update Authentication Setting
@@ -1030,107 +1192,186 @@ auths.delete_auth_desc = This authentication is going to be deleted, do you want
auths.still_in_used = This authentication is still used by some users, please delete or convert these users to another login type first.
auths.deletion_success = Authentication has been deleted successfully!
auths.login_source_exist = Login source '%s' already exists.
-
-config.server_config = Server Configuration
-config.app_name = Application Name
-config.app_ver = Application Version
-config.app_url = Application URL
-config.domain = Domain
-config.offline_mode = Offline Mode
-config.disable_router_log = Disable Router Log
-config.run_user = Run User
-config.run_mode = Run Mode
-config.repo_root_path = Repository Root Path
-config.static_file_root_path = Static File Root Path
-config.log_file_root_path = Log File Root Path
-config.script_type = Script Type
-config.reverse_auth_user = Reverse Authentication User
-
-config.ssh_config = SSH Configuration
-config.ssh_enabled = Enabled
-config.ssh_start_builtin_server = Start Builtin Server
-config.ssh_domain = Domain
-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
-
-config.db_config = Database Configuration
-config.db_type = Type
-config.db_host = Host
-config.db_name = Name
-config.db_user = User
-config.db_ssl_mode = SSL Mode
-config.db_ssl_mode_helper = (for "postgres" only)
-config.db_path = Path
-config.db_path_helper = (for "sqlite3" and "tidb")
-
-config.service_config = Service Configuration
-config.register_email_confirm = Require Email Confirmation
-config.disable_register = Disable Registration
-config.show_registration_button = Show Register Button
-config.require_sign_in_view = Require Sign In View
-config.mail_notify = Mail Notification
-config.disable_key_size_check = Disable Minimum Key Size Check
-config.enable_captcha = Enable Captcha
-config.active_code_lives = Active Code Lives
-config.reset_password_code_lives = Reset Password Code Lives
-
-config.webhook_config = Webhook Configuration
-config.queue_length = Queue Length
-config.deliver_timeout = Deliver Timeout
-config.skip_tls_verify = Skip TLS Verify
-
-config.mailer_config = Mailer Configuration
-config.mailer_enabled = Enabled
-config.mailer_disable_helo = Disable HELO
-config.mailer_name = Name
-config.mailer_host = Host
-config.mailer_user = User
-config.send_test_mail = Send Test Email
-config.test_mail_failed = Fail to send test email to '%s': %v
-config.test_mail_sent = Test email has been sent to '%s'.
-
-config.oauth_config = OAuth Configuration
-config.oauth_enabled = Enabled
-
-config.cache_config = Cache Configuration
-config.cache_adapter = Cache Adapter
-config.cache_interval = Cache Interval
-config.cache_conn = Cache Connection
-
-config.session_config = Session Configuration
-config.session_provider = Session Provider
-config.provider_config = Provider Config
-config.cookie_name = Cookie Name
-config.enable_set_cookie = Enable Set Cookie
-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
-
-config.picture_config = Picture Configuration
-config.picture_service = Picture Service
-config.disable_gravatar = Disable Gravatar
-config.enable_federated_avatar = Enable Federated Avatars
-
-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
-
-config.log_config = Log Configuration
-config.log_mode = Log Mode
+auths.github_api_endpoint = API Endpoint
+
+config.not_set = (not set)
+config.server_config = Server configuration
+config.brand_name = Brand name
+config.run_user = Run user
+config.run_mode = Run mode
+config.server.external_url = External URL
+config.server.domain = Domain
+config.server.protocol = Protocol
+config.server.http_addr = HTTP address
+config.server.http_port = HTTP port
+config.server.cert_file = Certificate file
+config.server.key_file = Key file
+config.server.tls_min_version = Minimum TLS version
+config.server.unix_socket_permission = Unix socket permission
+config.server.local_root_url = Local root URL
+config.server.offline_mode = Offline mode
+config.server.disable_router_log = Disable router log
+config.server.enable_gzip = Enable Gzip
+config.server.app_data_path = Application data path
+config.server.load_assets_from_disk = Load assets from disk
+config.server.landing_url = Landing URL
+
+config.ssh_config = SSH configuration
+config.ssh.enabled = Enabled
+config.ssh.domain = Exposed domain
+config.ssh.port = Exposed port
+config.ssh.root_path = Root path
+config.ssh.keygen_path = Keygen path
+config.ssh.key_test_path = Key test path
+config.ssh.minimum_key_size_check = Minimum key size check
+config.ssh.minimum_key_sizes = Minimum key sizes
+config.ssh.rewrite_authorized_keys_at_start = Rewrite "authorized_keys" at start
+config.ssh.start_builtin_server = Start builtin server
+config.ssh.listen_host = Listen host
+config.ssh.listen_port = Listen port
+config.ssh.server_ciphers = Server ciphers
+config.ssh.server_macs = Server MACs
+config.ssh.server_algorithms = Server algorithms
+
+config.repo_config = Repository configuration
+config.repo.root_path = Root path
+config.repo.script_type = Script type
+config.repo.ansi_chatset = ANSI charset
+config.repo.force_private = Force private
+config.repo.max_creation_limit = Max creation limit
+config.repo.preferred_licenses = Preferred licenses
+config.repo.disable_http_git = Disable HTTP Git
+config.repo.enable_local_path_migration = Enable local path migration
+config.repo.enable_raw_file_render_mode = Enable raw file render mode
+config.repo.commits_fetch_concurrency = Commits fetch concurrency
+config.repo.editor.line_wrap_extensions = Editor line wrap extensions
+config.repo.editor.previewable_file_modes = Editor previewable file modes
+config.repo.upload.enabled = Upload enabled
+config.repo.upload.temp_path = Upload temporary path
+config.repo.upload.allowed_types = Upload allowed types
+config.repo.upload.file_max_size = Upload file size limit
+config.repo.upload.max_files = Upload files limit
+
+config.db_config = Database configuration
+config.db.type = Type
+config.db.host = Host
+config.db.name = Name
+config.db.schema = Schema
+config.db.schema_helper = (for "postgres" only)
+config.db.user = User
+config.db.ssl_mode = SSL mode
+config.db.ssl_mode_helper = (for "postgres" only)
+config.db.path = Path
+config.db.path_helper = (for "sqlite3"only)
+config.db.max_open_conns = Maximum open connections
+config.db.max_idle_conns = Maximum idle connections
+
+config.security_config = Security configuration
+config.security.login_remember_days = Login remember days
+config.security.cookie_secure = Enable secure cookie
+config.security.reverse_proxy_auth_user = Reverse proxy authentication header
+config.security.enable_login_status_cookie = Enable login status cookie
+config.security.login_status_cookie_name = Login status cookie
+config.security.local_network_allowlist = Local network allowlist
+
+config.email_config = Email configuration
+config.email.enabled = Enabled
+config.email.subject_prefix = Subject prefix
+config.email.host = Host
+config.email.from = From
+config.email.user = User
+config.email.helo_hostname = HELO hostname
+config.email.skip_verify = Skip certificate verify
+config.email.use_certificate = Use custom certificate
+config.email.cert_file = Certificate file
+config.email.key_file = Key file
+config.email.use_plain_text = Use plain text
+config.email.add_plain_text_alt = Add plain text alternative
+config.email.send_test_mail = Send test email
+config.email.test_mail_failed = Failed to send test email to '%s': %v
+config.email.test_mail_sent = Test email has been sent to '%s'.
+
+config.auth_config = Authentication configuration
+config.auth_custom_logout_url = Custom logout URL
+config.auth.activate_code_lives = Activate code lives
+config.auth.reset_password_code_lives = Reset password code lives
+config.auth.require_email_confirm = Require email confirmation
+config.auth.require_sign_in_view = Require sign in view
+config.auth.disable_registration = Disable registration
+config.auth.enable_registration_captcha = Enable registration captcha
+config.auth.enable_reverse_proxy_authentication = Enable reverse proxy authentication
+config.auth.enable_reverse_proxy_auto_registration = Enable reverse proxy auto registration
+config.auth.reverse_proxy_authentication_header = Reverse proxy authentication header
+config.auth.trusted_proxy_ips = Trusted proxy IPs
+
+config.user_config = User configuration
+config.user.enable_email_notify = Enable email notification
+
+config.session_config = Session configuration
+config.session.provider = Provider
+config.session.provider_config = Provider config
+config.session.cookie_name = Cookie
+config.session.https_only = HTTPS only
+config.session.gc_interval = GC interval
+config.session.max_life_time = Max life time
+config.session.csrf_cookie_name = CSRF cookie
+
+config.cache_config = Cache configuration
+config.cache.adapter = Adapter
+config.cache.interval = GC interval
+config.cache.host = Host
+
+config.http_config = HTTP configuration
+config.http.access_control_allow_origin = Access control allow origin
+
+config.attachment_config = Attachment configuration
+config.attachment.enabled = Enabled
+config.attachment.path = Path
+config.attachment.allowed_types = Allowed types
+config.attachment.max_size = Size limit
+config.attachment.max_files = Files limit
+
+config.release_config = Release configuration
+config.release.attachment.enabled = Attachment enabled
+config.release.attachment.allowed_types = Attachment allowed types
+config.release.attachment.max_size = Attachment size limit
+config.release.attachment.max_files = Attachment files limit
+
+config.picture_config = Picture configuration
+config.picture.avatar_upload_path = User avatar upload path
+config.picture.repo_avatar_upload_path = Repository avatar upload path
+config.picture.gravatar_source = Gravatar source
+config.picture.disable_gravatar = Disable Gravatar
+config.picture.enable_federated_avatar = Enable federated avatars
+
+config.mirror_config = Mirror configuration
+config.mirror.default_interval = Default interval
+
+config.webhook_config = Webhook configuration
+config.webhook.types = Types
+config.webhook.deliver_timeout = Deliver timeout
+config.webhook.skip_tls_verify = Skip TLS verify
+
+config.git_config = Git configuration
+config.git.disable_diff_highlight = Disable diff syntax highlight
+config.git.max_diff_lines = Diff lines limit (for a single file)
+config.git.max_diff_line_characters = Diff characters limit (for a single line)
+config.git.max_diff_files = Diff files limit (for a single diff)
+config.git.gc_args = GC arguments
+config.git.migrate_timeout = Migration timeout
+config.git.mirror_timeout = Mirror fetch timeout
+config.git.clone_timeout = Clone timeout
+config.git.pull_timeout = Pull timeout
+config.git.gc_timeout = GC timeout
+
+config.lfs_config = LFS configuration
+config.lfs.storage = Storage
+config.lfs.objects_path = Objects path
+
+config.log_config = Log configuration
+config.log_file_root_path = Log file root path
+config.log_mode = Mode
+config.log_options = Options
monitor.cron = Cron Tasks
monitor.name = Name
@@ -1161,17 +1402,24 @@ notices.delete_success = System notices have been deleted successfully.
create_repo = created repository %s
rename_repo = renamed repository from %[1]s to %[3]s
commit_repo = pushed to %[3]s at %[4]s
+compare_commits = View comparison for these %d commits
+transfer_repo = transfered repository %s to %s
create_issue = `opened issue %s#%[2]s`
close_issue = `closed issue %s#%[2]s`
reopen_issue = `reopened issue %s#%[2]s`
+comment_issue = `commented on issue %s#%[2]s`
create_pull_request = `created pull request %s#%[2]s`
close_pull_request = `closed pull request %s#%[2]s`
reopen_pull_request = `reopened pull request %s#%[2]s`
-comment_issue = `commented on issue %s#%[2]s`
merge_pull_request = `merged pull request %s#%[2]s`
-transfer_repo = transfered repository %s to %s
+create_branch = created new branch %[3]s at %[4]s
+delete_branch = deleted branch %[2]s at %[3]s
push_tag = pushed tag %[2]s to %[3]s
-compare_commits = View comparison for these %d commits
+delete_tag = deleted tag %[2]s at %[3]s
+fork_repo = forked a repository to %s
+mirror_sync_push = synced commits to %[3]s at %[4]s from mirror
+mirror_sync_create = synced new reference %[2]s to %[3]s from mirror
+mirror_sync_delete = synced and deleted reference %[2]s at %[3]s from mirror
[tool]
ago = ago
@@ -1193,6 +1441,7 @@ months = %d months %s
years = %d years %s
raw_seconds = seconds
raw_minutes = minutes
+raw_hours = hours
[dropzone]
default_message = Drop files here or click to upload.
diff --git a/conf/locale/locale_es-ES.ini b/conf/locale/locale_es-ES.ini
index 8ac5366104e..6369bc58e59 100644
--- a/conf/locale/locale_es-ES.ini
+++ b/conf/locale/locale_es-ES.ini
@@ -9,7 +9,6 @@ sign_out=Cerrar sesión
sign_up=Registro
register=Registro
website=Página web
-version=Versión
page=Página
template=Plantilla
language=Idioma
@@ -44,23 +43,27 @@ issues=Incidencias
cancel=Cancelar
+[status]
+page_not_found=Página no encontrada
+internal_server_error=Error Interno del Servidor
+
[install]
install=Instalación
title=Pasos de la instalación por primera vez
docker_helper=Si está ejecutando Gogs usando Docker, ¡por favor lea estas pautas antes de cambiar nada en esta página!
-requite_db_desc=Gogs requiere una base de datos MySQL, PostgreSQL, SQLite3 o TiDB.
+requite_db_desc=Gogs requiere MySQL, PostgreSQL, SQLite3 o TiDB (a través del protocolo MySQL).
db_title=Configuración de base de datos
db_type=Tipo de base de datos
host=Host
user=Usuario
password=Contraseña
db_name=Nombre de la base de datos
+db_schema=Esquema
db_helper=Por favor utilice el motor INNODB con la configuración de caracteres utf8_general_ci para MySQL.
ssl_mode=Modo SSL
path=Ruta
-sqlite_helper=Ruta al archivo de base de datos SQLite3 o TiDB. Por favor, usa una ruta absoluta cuando inicies como servicio.
-err_empty_db_path=La ruta a la base de datos SQLite3 o TiDB no puede estar vacía.
-err_invalid_tidb_name=El nombre de la base de datos TiDB no puede contener los caracteres "." ni "-".
+sqlite_helper=La ruta del archivo de base de datos de SQLite3. Por favor usar una ruta absoluta al iniciar Gogs como servicio.
+err_empty_db_path=La ruta de la base de datos SQLite3 no puede estar vacía.
no_admin_and_disable_registration=No puede deshabilitar el registro sin crear una cuenta de administrador.
err_empty_admin_password=La contraseña de administrador no puede estar vacía.
@@ -75,12 +78,17 @@ domain=Dominio
domain_helper=Esto afecta a las URLs para clonar por SSH.
ssh_port=Puerto SSH
ssh_port_helper=Número de puerto de su servidor SSH, déjelo en blanco para desactivar SSH.
+use_builtin_ssh_server=Usar Builtin SSH Server
+use_builtin_ssh_server_popup=Iniciar servidor SSH integrado para operaciones con Git para distinguirlo del demonio SSH del sistema.
http_port=Puerto HTTP
http_port_helper=Puerto en el que escuchará la aplicación.
app_url=URL de la aplicación
app_url_helper=Esto afecta a las URLs para clonar por HTTP/HTTPS y a algunos correos electrónicos.
log_root_path=Ruta del registro
log_root_path_helper=Directorio donde almacenar los registros.
+enable_console_mode=Activar Modo Consola
+enable_console_mode_popup=Además del modo archivo, también imprime los registros en consola.
+default_branch=Rama por defecto
optional_title=Configuración opcional
email_title=Configuración del servicio de correo
@@ -111,12 +119,15 @@ admin_password=Contraseña
confirm_password=Confirmar Contraseña
admin_email=Correo electrónico del administrador
install_gogs=Instalar Gogs
-test_git_failed=Fallo al probar el comando 'git': %v
+test_git_failed=Error al probar el comando 'git': %v
sqlite3_not_available=Tu versión no soporta SQLite3, por favor descarga el binario oficial desde %s, NO la versión de gobuild.
invalid_db_setting=La configuración de la base de datos no es correcta: %v
invalid_repo_path=La ruta de la raíz del repositorio es inválida: %v
run_user_not_match=El usuario que está ejecutando la aplicación no es el usuario actual: %s -> %s
+smtp_host_missing_port=No se ha definido el puerto para el host SMTP.
+invalid_smtp_from=El campo SMTP no es válido: %v
save_config_failed=Error al guardar la configuración: %v
+init_failed=Error al inicializar la aplicación: %v
invalid_admin_setting=La configuración de la cuenta de administración es inválida: %v
install_success=Bienvenido! Estamos encantados de que hayas escogido Gogs, diviértete y cuídate.
invalid_log_root_path=La ruta para los registros es inválida: %v
@@ -137,6 +148,7 @@ issues.in_your_repos=En tus repositorios
[explore]
repos=Repositorios
users=Usuarios
+organizations=Organizaciones
search=Buscar
[auth]
@@ -145,6 +157,8 @@ register_hepler_msg=¿Ya tienes una cuenta? ¡Inicia sesión!
social_register_hepler_msg=¿Ya tienes una cuenta? ¡Enlázala!
disable_register_prompt=Lo sentimos, el registro está deshabilitado. Por favor, contacta con el administrador del sitio.
disable_register_mail=Lo sentimos. Los correos de Confirmación de Registro están deshabilitados.
+auth_source=Authentication Source
+local=Local
remember_me=Recuérdame
forgot_password=He olvidado mi contraseña
forget_password=¿Has olvidado tu contraseña?
@@ -154,16 +168,23 @@ active_your_account=Activa tu cuenta
prohibit_login=Ingreso prohibido
prohibit_login_desc=Su cuenta tiene prohibido ingresar al sistema, fovor contactar al administrador del sistema.
resent_limit_prompt=Lo sentimos, estás solicitando el reenvío del mail de activación con demasiada frecuencia. Por favor, espera 3 minutos.
-has_unconfirmed_mail=Hola %s, tu correo electrónico (%s) no está confirmado. Si no has recibido un correo de confirmación o necesitas que lo enviemos de nuevo, por favor, haz click en el siguiente botón.
+has_unconfirmed_mail=Hola %s, tu correo electrónico (%s) no está confirmado. Si no has recibido un correo de confirmación o necesitas que te lo enviemos de nuevo, por favor haz click en el siguiente botón.
resend_mail=Haz click aquí para reenviar tu correo electrónico de activación
-email_not_associate=Esta dirección de correo electrónico no esta asociada a ninguna cuenta.
send_reset_mail=Haga clic aquí para (re)enviar el correo para el restablecimiento de la contraseña
reset_password=Restablecer su contraseña
invalid_code=Lo sentimos, su código de confirmación ha expirado o no es valido.
reset_password_helper=Haga Clic aquí para restablecer su contraseña
-password_too_short=La longitud de la contraseña no puede ser menor a 6.
+password_too_short=La longitud de la contraseña no puede ser menor de 6 caracteres.
non_local_account=Cuentas que no son locales no pueden cambiar las contraseñas a través de Gogs.
+login_two_factor=Autenticación en dos pasos
+login_two_factor_passcode=Pin de autenticación
+login_two_factor_enter_recovery_code=Introduce un código de recuperación de autenticación en dos pasos
+login_two_factor_recovery=Recuperación de autenticación en dos pasos
+login_two_factor_recovery_code=Código de recuperación
+login_two_factor_enter_passcode=Introduce un Pin de autenticación a dos pasos
+login_two_factor_invalid_recovery_code=El código de recuperación ya se ha utilizado o no es válido.
+
[mail]
activate_account=Por favor, active su cuenta
activate_email=Verifique su correo electrónico
@@ -197,8 +218,9 @@ TreeName=Ruta del archivo
Content=Contenido
require_error=` no puede estar vacío.`
-alpha_dash_error=` los caracteres deben ser Alfanumericos o dash(-_).`
-alpha_dash_dot_error=` debe ser un caracter alfanumérivo válido, un guión alto o bajo (-_) o un signo de puntuación.`
+alpha_dash_error=` los caracteres deben ser alfanuméricos o un guión (-_).`
+alpha_dash_dot_error=` debe ser un carácter alfanumérico válido, un guión (-_) o un signo de puntuación.`
+alpha_dash_dot_slash_error=` deben ser caracteres alfanuméricos, guiones(-_), puntos o barras.`
size_error=` debe ser de tamaño %s.`
min_size_error=` debe contener al menos %s caracteres.`
max_size_error=` debe contener como máximo %s caracteres.`
@@ -215,6 +237,7 @@ org_name_been_taken=Ya existe una organización con este nombre.
team_name_been_taken=Ya existe un equipo con este nombre.
email_been_used=Esta dirección de correo electrónico ya está en uso.
username_password_incorrect=Nombre de usuario o contraseña incorrectos.
+auth_source_mismatch=The authentication source selected is not associated with the user.
enterred_invalid_repo_name=Por favor, asegúrate de que has introducido correctamente el nombre del repositorio.
enterred_invalid_owner_name=Por favor, asegúrate de que has introducido correctamente el nombre del propietario.
enterred_invalid_password=Por favor, asegúrate de que has introducido correctamente tu contraseña.
@@ -242,19 +265,18 @@ following=Siguiendo
follow=Seguir
unfollow=Dejar de seguir
-form.name_reserved=El usuario '%s' está reservado.
-form.name_pattern_not_allowed=El patrón de nombre de usuario '%s' no está permitido.
+form.name_not_allowed=El nombre de usuario o patrón %q no está permitido.
[settings]
profile=Perfil
password=Contraseña
avatar=Avatar
ssh_keys=Claves SSH
-social=Redes Sociales
-applications=Aplicaciones
+security=Seguridad
+repos=Repositorios
orgs=Organizaciones
+applications=Aplicaciones
delete=Eliminar cuenta
-uid=UUID
public_profile=Perfil público
profile_desc=Tu correo electrónico es público y será usado para todas las notificaciones relacionadas con cualquier cuenta y cualquier operación hecha a través de la web.
@@ -295,6 +317,7 @@ delete_email=Eliminar
email_deletion=Eliminar correo electrónico
email_deletion_desc=Al eliminar esta dirección de correo electrónico se eliminará toda la información asociada a esta. ¿Deseas continuar?
email_deletion_success=¡El correo electrónico ha sido eliminado correctamente!
+email_deletion_primary=Cannot delete primary email address.
add_new_email=Añadir nueva dirección de correo electrónico
add_email=Añadir correo electrónico
add_email_confirmation_sent=Un nuevo correo de confirmación ha sido enviado a '%s'. Por favor, comprueba tu bandeja de entrada en las próximas %d horas para completar el proceso.
@@ -320,14 +343,36 @@ no_activity=No hay actividad reciente
key_state_desc=Esta clave ha sido usada en los últimos 7 días
token_state_desc=Token usado en los últimos 7 días
-manage_social=Gestionar Redes Sociales asociadas
-social_desc=Esta es una lista de las Redes Sociales asociadas. Elimina cualquier vínculo que no reconozcas.
-unbind=Desvincular
-unbind_success=La Red Social ha sido desvinculada.
+two_factor=Autenticación en dos pasos
+two_factor_status=Estado:
+two_factor_on=Activado
+two_factor_off=Desactivado
+two_factor_enable=Activar
+two_factor_disable=Desactivar
+two_factor_view_recovery_codes=Guarda tus códigos de recuperación en un lugar seguro. Podrás usarlos como código de acceso si pierdes el acceso a tu aplicación de autenticación.
+two_factor_http=Para las operaciones sobre HTTP/HTTPS, no puedes usar un usuario y contraseña. Por favor, cree y utilice un token de acceso personal como su credencial de acceso, por ejemplo, %[3]s.
+two_factor_enable_title=Habilitar autenticación en dos pasos
+two_factor_scan_qr=Por favor, use su aplicación de autenticación para escanear la imagen:
+two_factor_or_enter_secret=O introduzca el secreto:
+two_factor_then_enter_passcode=Introduce el Pin:
+two_factor_verify=Verificar
+two_factor_invalid_passcode=¡El Pin que has introducido no es válido, por favor, inténtalo de nuevo!
+two_factor_reused_passcode=¡El pin de autenticación que has introducido ya ha sido usado, por favor intenta con otro!
+two_factor_enable_error=Ha fallado la activación de la autenticación en dos pasos: %v
+two_factor_enable_success=¡La autenticación en dos pasos se ha activado en tu cuenta correctamente!
+two_factor_recovery_codes_title=Códigos de recuperación para la autenticación en dos pasos
+two_factor_recovery_codes_desc=Los códigos de recuperación se usan cuando pierdes temporalmente el acceso a tu aplicación de autenticación. Cada código de recuperación solo puede utilizarse en una ocasión, por favor, mantén estos códigos en lugar seguro.
+two_factor_regenerate_recovery_codes=Regenerar códigos de recuperación
+two_factor_regenerate_recovery_codes_error=Ha fallado la regeneración de códigos de recuperación: %v
+two_factor_regenerate_recovery_codes_success=¡Nuevos códigos de recuperación han sido generados con éxito!
+two_factor_disable_title=Deshabilitar autenticación en dos pasos
+two_factor_disable_desc=El nivel de seguridad de tu cuenta se verá reducido después de desactivar la autenticación en dos pasos. ¿Deseas continuar?
+two_factor_disable_success=¡La autenticación en dos pasos ha sido deshabilitada satisfactoriamente!
manage_access_token=Gestionar los Tokens de Acceso personales
generate_new_token=Generar nuevo Token
tokens_desc=Tokens usados para acceder al API de Gogs.
+access_token_tips=El token de acceso personal puede utilizarse como nombre de usuario o como contraseña. Se recomienda utilizar el "x-access-token" como nombre de usuario y el token de acceso personal como contraseña para las aplicaciones Git.
new_token_desc=Desde ahora, todos los tokens tendrán acceso completo a tu cuenta.
token_name=Nombre del Token
generate_token=Generar Token
@@ -336,6 +381,16 @@ delete_token=Eliminar
access_token_deletion=Borrado de Token de Acceso Personal
access_token_deletion_desc=Si elimina este token de acceso personal la aplicación asociada perderá el permiso de acceso. ¿Desea continuar?
delete_token_success=¡El token de acceso personal ha sido eliminado con éxito! No se olvide de actualizar también las aplicaciones asociadas.
+token_name_exists=Ya existe un token con el mismo nombre.
+
+orgs.none=No eres un miembro de ninguna organización.
+orgs.leave_title=Salir de una organización
+orgs.leave_desc=Perderá el acceso a todos los repositorios y equipos después dejar la organización. ¿Desea continuar?
+
+repos.leave=Salir
+repos.leave_title=Dejar repositorio
+repos.leave_desc=Perderás acceso al repositorio cuando salgas. ¿Quieres continuar?
+repos.leave_success=¡Has dejado el repositorio '%s' con éxito!
delete_account=Elimina tu cuenta
delete_prompt=La operación eliminará tu cuenta de forma permanente y ¡NO se puede deshacer!
@@ -348,7 +403,9 @@ owner=Propietario
repo_name=Nombre del repositorio
repo_name_helper=Los grandes nombres de repositorios son cortos, memorables y únicos.
visibility=Visibilidad
+unlisted=Sin listar
visiblity_helper=Este repositorio es privado
+unlisted_helper=Este repositorio no está en la lista
visiblity_helper_forced=El administrador web ha obligado a todos los repositorios nuevos a ser privados
visiblity_fork_helper=(Este cambio afectará a todos los forks)
clone_helper=¿Necesitas ayuda con el clone? ¡Consulta la Ayuda!
@@ -366,7 +423,7 @@ auto_init=Inicializar los archivos seleccionados y plantillas de este repositori
create_repo=Crear repositorio
default_branch=Rama por defecto
mirror_prune=Purgar
-mirror_prune_desc=Remover referencias remotas que no existan remotamente
+mirror_prune_desc=Elimina cualquier referencia de seguimiento remoto que ya no exista en el remoto
mirror_interval=Intervalo de la réplica (en horas)
mirror_address=Dirección de la réplica
mirror_address_desc=Por favor, incluya las credenciales de usuario necesarias en la dirección.
@@ -374,24 +431,26 @@ mirror_last_synced=Última sincronización
watchers=Seguidores
stargazers=Fans
forks=Forks
+repo_description_helper=Descripción del repositorio. Longitud máxima de 512 caracteres.
+repo_description_length=Caracteres disponibles
form.reach_limit_of_creation=El propietario ha alcanzado el límite máximo de %d repositorios creados.
-form.name_reserved=El nombre del repositorio '%s' está reservado.
-form.name_pattern_not_allowed=El patrón del nombre del repositorio '%s' no está permitido.
+form.name_not_allowed=El nombre de repositorio o patrón %q no está permitido.
need_auth=Requiere autorización
migrate_type=Tipo de migración
migrate_type_helper=Este repositorio será una réplica
migrate_repo=Migrar Repositorio
migrate.clone_address=Clonar dirección
-migrate.clone_address_desc=Puede ser una URL HTTP/HTTPS/GIT o una ruta local del servidor.
+migrate.clone_address_desc=Esto puede ser una dirección URL HTTP/HTTPS/GIT.
+migrate.clone_address_desc_import_local=También se le permite migrar un repositorio por la ruta del servidor local.
migrate.permission_denied=No te está permitido importar repositorios locales.
migrate.invalid_local_path=Rutal local inválida, no existe o no es un directorio.
+migrate.clone_address_resolved_to_blocked_local_address=La dirección de clonado se ha resuelto a una dirección de red local que está implícitamente bloqueada.
migrate.failed=Migración fallida: %v
mirror_from=espejo de
forked_from=forked de
-fork_from_self=¡No puedes crear un fork de un repositorio que ya es tuyo!
copy_link=Copiar
copy_link_success=¡Copiado!
copy_link_error=Presione ⌘ + C o Ctrl-C para copiar
@@ -407,9 +466,9 @@ quick_guide=Guía Rápida
clone_this_repo=Clonar este repositorio
create_new_repo_command=Crear un nuevo repositorio desde línea de comandos
push_exist_repo=Hacer Push de un repositorio existente desde línea de comandos
-repo_is_empty=Este repositorio está vacío, por favor, ¡vuelva más tarde!
+bare_message=Este repositorio aun no tiene contenido alguno.
-code=Código
+files=Archivos
branch=Rama
tree=Árbol
filter_branch_and_tag=Filtrar por rama o etiqueta
@@ -420,12 +479,23 @@ pulls=Pull Requests
labels=Etiquetas
milestones=Milestones
commits=Commits
+git_branches=Ramas
releases=Releases
file_raw=Raw
file_history=Histórico
file_view_raw=Ver Raw
file_permalink=Permalink
file_too_large=Este archivo es demasiado grande para ser mostrado
+video_not_supported_in_browser=Su navegador no soporta el tag video de HTML5.
+
+branches.overview=Resumen
+branches.active_branches=Ramas activas
+branches.stale_branches=Ramas Viejas
+branches.all=Todas las Ramas
+branches.updated_by=%[1]s actualizado por %[2]s
+branches.change_default_branch=Cambiar la Rama por Defecto
+branches.default_deletion_not_allowed=Cannot delete the default branch.
+branches.protected_deletion_not_allowed=Cannot delete a protected branch.
editor.new_file=Nuevo archivo
editor.upload_file=Subir archivo
@@ -455,16 +525,19 @@ editor.cancel=Cancelar
editor.filename_cannot_be_empty=El nombre del archivo no puede estar vacío.
editor.branch_already_exists=La rama '%s' ya existe en este repositorio.
editor.directory_is_a_file=La entrada '%s' en el directorio padre es un archivo no un directorio en este repositorio.
+editor.file_is_a_symlink=El archivo '%s' es un enlace simbólico que no puede ser modificado desde el editor de la web.
editor.filename_is_a_directory=El nombre del fichero '%s' es un directorio existente en este repositorio.
editor.file_editing_no_longer_exists=El archivo '%s' que estás editando ya no existe en este repositorio.
editor.file_changed_while_editing=El contenido del archivo ha sido modificado desde que empezó a editarlo. Clic aquí para ver qué ha sido modificado o presiona confirmar de nuevo para sobrescribir estos cambios.
editor.file_already_exists=Ya existe un archivo con nombre '%s' en este repositorio.
editor.no_changes_to_show=No existen cambios para mostrar.
editor.fail_to_update_file=Error al actualizar/crear el archivo '%s', error: %v
+editor.fail_to_delete_file=Error al borrar el fichero '%s', error: %v
editor.add_subdir=Añadir subdirectorio...
editor.unable_to_upload_files=Error al subir archivos a '%s', error: %v
editor.upload_files_to_dir=Subir archivos a '%s'
+commits.commit_history=Historial de Commits
commits.commits=Commits
commits.search=Buscar commits
commits.find=Buscar
@@ -522,7 +595,7 @@ issues.next=Página Siguiente
issues.open_title=Abierta
issues.closed_title=Cerrada
issues.num_comments=%d comentarios
-issues.commented_at='comentado %s'
+issues.commented_at=`comentado %s`
issues.delete_comment_confirm=¿Seguro que deseas eliminar este comentario?
issues.no_content=Aún no existe contenido.
issues.close_issue=Cerrar
@@ -562,6 +635,7 @@ pulls.compare_compare=comparar con
pulls.filter_branch=Filtrar rama
pulls.no_results=Sin resultados.
pulls.nothing_to_compare=Nada que comparar. Las dos ramas coinciden.
+pulls.nothing_merge_base=No hay nada que comparar porque las dos ramas tienen una historia completamente distinta.
pulls.has_pull_request=`Ya existe un pull request entre estas dos ramas: %[2]s#%[3]d`
pulls.create=Crear Pull Request
pulls.title_desc=desea fusionar %[1]d commits de %[2]s en %[3]s
@@ -577,8 +651,13 @@ pulls.is_checking=Se está procediendo a la búsqueda de conflictos, por favor a
pulls.can_auto_merge_desc=Este Pull Request puede ser fusionado automáticamente.
pulls.cannot_auto_merge_desc=Este Pull Request no puede ser fusionado automáticamente porque hay conflictos.
pulls.cannot_auto_merge_helper=Por favor, fusiona manualmente para resolver los conflictos.
+pulls.create_merge_commit=Crear un commit del fusionado
+pulls.rebase_before_merging=Hacer rebase antes de fusionar
+pulls.commit_description=Descripción del commit
pulls.merge_pull_request=Fusionar Pull Request
pulls.open_unmerged_pull_exists=`Usted no puede realizar la operación de reapertura porque en estos momentos existe una solicitud de pull request (#%d) para el mismo repositorio con la misma información que se encuentra a la espera de aprobación`
+pulls.delete_branch=Eliminar la rama
+pulls.delete_branch_has_new_commits=La rama no se puede eliminar porque tiene nuevos commits después de la fusión.
milestones.new=Nuevo Milestone
milestones.open_tab=%d abiertas
@@ -629,6 +708,29 @@ settings.collaboration.admin=Administrador
settings.collaboration.write=Escritura
settings.collaboration.read=Lectura
settings.collaboration.undefined=Indefinido
+settings.branches=Ramas
+settings.branches_bare=No puedes gestionar ramas en un repositorio vacío. Por favor sube algún contenido primero.
+settings.default_branch=Rama predeterminada
+settings.default_branch_desc=Se considera la rama «base» como la rama por defecto para commits de código, las solicitudes pull y edición en línea.
+settings.update=Actualizar
+settings.update_default_branch_unsupported=El cambio de rama por defecto no esta soportado por la versión de Git en el servidor.
+settings.update_default_branch_success=¡La Rama por defecto de este repositorio ha sido actualizado con éxito!
+settings.protected_branches=Ramas protegidas
+settings.protected_branches_desc=Proteger ramas force pushing, de eliminación accidental y lista blanca de committers de código.
+settings.choose_a_branch=Elegir una rama...
+settings.branch_protection=Protección de la rama
+settings.branch_protection_desc=Por favor, elija una opción de protección para la rama %s.
+settings.protect_this_branch=Proteger esta rama
+settings.protect_this_branch_desc=Desactivar force pushes y evite la eliminación.
+settings.protect_require_pull_request=Requiere una solicitud pull, en lugar de un push directo
+settings.protect_require_pull_request_desc=Active esta opción para deshabilitar un push directo a esta rama. Los commits tienen que ser empujados a otra rama no protegida y fusionados a esta rama a través de la solicitud pull.
+settings.protect_whitelist_committers=Lista blanca de quienes pueden empujar a esta rama
+settings.protect_whitelist_committers_desc=Añadir personas o equipos a la lista blanca de push directo a esta rama. Los usuarios en esta lista se saltan la comprobación de pull request.
+settings.protect_whitelist_users=Usuarios que pueden hacer push a esta rama
+settings.protect_whitelist_search_users=Buscar usuarios
+settings.protect_whitelist_teams=Equipos cuyos miembros pueden hacer push a esta rama
+settings.protect_whitelist_search_teams=Buscar equipos
+settings.update_protect_branch_success=¡Las opciones de protección para esta rama se han actualizado con éxito!
settings.hooks=Webhooks
settings.githooks=Git Hooks
settings.basic_settings=Configuración Básica
@@ -641,19 +743,26 @@ settings.change_reponame_prompt=Este cambio afectará a los enlaces al repositor
settings.advanced_settings=Ajustes avanzados
settings.wiki_desc=Activar sistema de wiki
settings.use_internal_wiki=Usar wiki integrada
+settings.allow_public_wiki_desc=Permitir acceso público a la wiki cuando el repositorio es privado
settings.use_external_wiki=Usar Wiki externa
settings.external_wiki_url=URL externa de la Wiki
settings.external_wiki_url_desc=Los visitantes serán redireccionados a la URL cuando hagan click en la barra.
settings.issues_desc=Habilitar rastreo de incidencias
settings.use_internal_issue_tracker=Usar rastreo de incidencias ligero incluido
+settings.allow_public_issues_desc=Permitir acceso público a las incidencias cuando el repositorio es privado
settings.use_external_issue_tracker=Usar tracker externo de incidencias
+settings.external_tracker_url=URL de seguimiento de problemas externos
+settings.external_tracker_url_desc=Los visitantes serán redirigidos a la URL cuando hagan click en la barra.
settings.tracker_url_format=Formato URL del tracker de incidencias externo
settings.tracker_issue_style=Estilo de etiquetado del tracker externo de incidencias:
settings.tracker_issue_style.numeric=Numérico
settings.tracker_issue_style.alphanumeric=Alfanumérico
settings.tracker_url_format_desc=Puedes usar las plantillas {user} {repo} {index} para el nombre de usuario, nombre del repositorio e índice de la incidencia.
-settings.pulls_desc=Habilitar Pull Requests para aceptar contribuciones públicas
+settings.pulls_desc=Permitir pull requests para aceptar contribuciones entre repositorios y ramas
+settings.pulls.ignore_whitespace=Ignorar los cambios en el espacio en blanco
+settings.pulls.allow_rebase_merge=Permite usar rebase para fusionar los commits
settings.danger_zone=Zona de Peligro
+settings.cannot_fork_to_same_owner=No puedes hacer fork del repositorio a su propietario original.
settings.new_owner_has_same_repo=El nuevo propietario tiene un repositorio con el mismo nombre.
settings.convert=Convertir en un repositorio normal
settings.convert_desc=Puedes convertir este repositorio en un repositorio normal. Este cambio no se puede deshacer.
@@ -672,7 +781,7 @@ settings.wiki_deletion_success=Los datos de la wiki del repositorio han sido bor
settings.delete=Eliminar este repositorio
settings.delete_desc=Una vez has eliminado un repositorio, no hay vuelta atrás. Por favor, asegúrate de que es lo que quieres.
settings.delete_notices_1=- Esta operación NO PUEDE revertirse.
-settings.delete_notices_2=- Esta operación eliminará de manera permanente todo el contenido de este repositorio, incluyendo los datos de git, las incidencias, los comentarios y los permisos de acceso de los colaboradores.
+settings.delete_notices_2=- Esta operación eliminará de manera permanente todo el contenido de este repositorio, incluyendo los datos de Git, las incidencias, los comentarios y los permisos de acceso de los colaboradores.
settings.delete_notices_fork_1=- Todos los forks se convertirán en independientes tras el borrado.
settings.deletion_success=¡El respositorio ha sido eliminado satisfactoriamente!
settings.update_settings_success=Las opciones del repositorio se han actualizado correctamente.
@@ -688,20 +797,25 @@ settings.collaborator_deletion_desc=Este usuario no podrá colaborar en este rep
settings.remove_collaborator_success=El colaborador ha sido eliminado.
settings.search_user_placeholder=Buscar usuario...
settings.org_not_allowed_to_be_collaborator=Las organizaciones no tiene permitido ser añadidas como colaboradores.
-settings.user_is_org_member=El usuario es miembro de la organización, no puede ser añadido como colaborador.
-settings.add_webhook=Añadir Webhook
settings.hooks_desc=Los Webhooks permiten a servicios externos recibir notificaciones cuando sucedan ciertos eventos en Gogs. Cuando sucedan los eventos especificados, enviaremos una petición POST a cada una de las URLs indicadas. Para obtener más información, consulta nuestra Guía de Webhooks.
+settings.webhooks.add_new=Añadir un nuevo webhook:
+settings.webhooks.choose_a_type=Elige un tipo...
+settings.add_webhook=Añadir Webhook
settings.webhook_deletion=Eliminar Webhook
settings.webhook_deletion_desc=Al borrar este webhook se eliminará su información y todo su historial. ¿Desea continuar?
settings.webhook_deletion_success=¡Webhook eliminado con éxito!
settings.webhook.test_delivery=Test de entrega
settings.webhook.test_delivery_desc=Enviar un falso evento Push de entrega para probar tus ajustes de webhook
settings.webhook.test_delivery_success=Probar que los webhook han sido añadidos a la cola de entrega. Esto puede tomar algunos segundos antes de aparecer en el historial de entregas.
+settings.webhook.redelivery=Reenviar
+settings.webhook.redelivery_success=La tarea del Hook '%s' ha sido reañadida en la cola de entrega. Puede tardar unos segundos en actualizarse el historial de estado de la cola.
settings.webhook.request=Petición
settings.webhook.response=Respuesta
settings.webhook.headers=Encabezado
settings.webhook.payload=Payload
settings.webhook.body=Cuerpo del mensaje
+settings.webhook.err_cannot_parse_payload_url=No se puede analizar la URL de payload: %v
+settings.webhook.url_resolved_to_blocked_local_address=La URL de payload se ha resuelto a una dirección de red local que está implícitamente bloqueada.
settings.githooks_desc=Los Git Hooks son una funcionalidad del propio Git, puedes editar los ficheros de los hooks soportados en la siguiente lista para aplicar operaciones personalizadas.
settings.githook_edit_desc=Si el hook no está activo, se mostrará contenido de ejemplo. Dejar el contenido vacío deshabilitará este hook.
settings.githook_name=Nombre del Hook
@@ -711,6 +825,7 @@ settings.add_webhook_desc=Enviaremos una petición POST a la siguie
settings.payload_url=URL de Payload
settings.content_type=Tipo de contenido
settings.secret=Secreto
+settings.secret_desc=El secreto será enviado como un payload SHA256 HMAC hex digest vía cabecera X-Gogs-Signature.
settings.slack_username=Nombre de usuario
settings.slack_icon_url=URL de icono
settings.slack_color=Color
@@ -720,10 +835,20 @@ settings.event_send_everything=Necesito todo.
settings.event_choose=Déjeme elegir lo que necesito.
settings.event_create=Crear
settings.event_create_desc=Rama o etiqueta creada
-settings.event_pull_request=Pull Request
-settings.event_pull_request_desc=Pull request, abierta, cerrada, reabierta, editada, asignada, desasignada, con etiqueta actualizada, con etiqueta eliminada, o sincronizada.
+settings.event_delete=Borrar
+settings.event_delete_desc=Rama o etiqueta borrada
+settings.event_fork=Fork
+settings.event_fork_desc=Repositorio forked
settings.event_push=Push
settings.event_push_desc=Git push a un repositorio
+settings.event_issues=Incidencias
+settings.event_issues_desc=Incidencia abierta, cerrada, reabierta, editada, asignada, desasignada, etiqueta actualizada, etiqueta limpiada, hito marcado, o desmarcado,.
+settings.event_pull_request=Pull Request
+settings.event_pull_request_desc=Pull request abierto, cerrado, reabierto, editado, asignado, desasignado, etiqueta actualizada, etiqueta limpiada, hito marcado, hito desmarcado, o sincronizado.
+settings.event_issue_comment=Comentario de incidencia
+settings.event_issue_comment_desc=Comentario de incidencias creado, editado o borrado.
+settings.event_release=Lanzamiento
+settings.event_release_desc=Lanzamiento publicado en un repositorio.
settings.active=Activo
settings.active_helper=Enviaremos detalles del evento cuando este hook se dispare.
settings.add_hook_success=Se ha añadido un nuevo webhook.
@@ -733,10 +858,13 @@ settings.delete_webhook=Borrar Webhook
settings.recent_deliveries=Envíos Recientes
settings.hook_type=Tipo de Hook
settings.add_slack_hook_desc=Añade integración con Slack a tu repositorio.
+settings.add_discord_hook_desc=Añade integración con Discord a tu repositorio.
+settings.add_dingtalk_hook_desc=Añade integración con Dingtalk a tu repositorio.
settings.slack_token=Token
settings.slack_domain=Dominio
settings.slack_channel=Canal
settings.deploy_keys=Claves de Despliegue
+settings.deploy_keys_helper=Gotcha! Si usted está buscando agregar claves públicas personales, por favor, agréguelos en la configuración de la cuenta.
settings.add_deploy_key=Añadir Clave de Despliegue
settings.deploy_key_desc=La clave de desarrollo tiene sólo acceso de lectura. No es igual que las claves SSH de las cuentas personales.
settings.no_deploy_keys=No has añadido ninguna clave de despliegue.
@@ -748,6 +876,8 @@ settings.add_key_success=¡La nueva clave de desplieque '%s' ha sido creada con
settings.deploy_key_deletion=Eliminar Clave de Despliegue
settings.deploy_key_deletion_desc=Al eliminar esta clave de despliegue se perderán el permiso de acceso a este repositorio con dicha clave. ¿Deseas continuar?
settings.deploy_key_deletion_success=¡Clave de despliegue eliminada con éxito!
+settings.description_desc=Descripción del repositorio. Longitud máxima de 512 caracteres.
+settings.description_length=Caracteres disponibles
diff.browse_source=Explorar el Código
diff.parent=padre
@@ -766,7 +896,6 @@ release.releases=Releases
release.new_release=Nueva Release
release.draft=Borrador
release.prerelease=Pre-Release
-release.stable=Estable
release.edit=editar
release.ahead=%d commits en %s desde esta release
release.source_code=Código Fuente
@@ -813,8 +942,8 @@ team_name_helper=Utiliza este nombre para mencionar a este equipo en las convers
team_desc_helper=¿En qué consiste este equipo?
team_permission_desc=¿Qué nivel de permisos debería tener este equipo?
-form.name_reserved=El nombre de la organización '%s' está reservado.
-form.name_pattern_not_allowed=El patrón de nombre de la organización '%s' no está permitido.
+form.name_not_allowed=El nombre de la organización o patrón %q no está permitido.
+form.team_name_not_allowed=El nombre del equipo o patrón %q no está permitido.
settings=Configuración
settings.options=Opciones
@@ -886,12 +1015,19 @@ first_page=Primera
last_page=Última
total=Total: %d
+dashboard.build_info=Build Information
+dashboard.app_ver=Versión de la aplicación
+dashboard.git_version=Versión de Git
+dashboard.go_version=Versión de Go
+dashboard.build_time=Tiempo de compilación
+dashboard.build_commit=Build commit
dashboard.statistic=Estadísticas
dashboard.operations=Operaciones
dashboard.system_status=Estado del Monitor del Sistema
dashboard.statistic_info=La base de datos de Gogs contiene %d usuarios, %d organizaciones, %d claves públicas, %d repositorios, %d vigilados, %d destacados, %d acciones, %d accesos, %d incidencias, %d comentarios, %d cuentas de redes sociales, %d seguidores, %d mirrors, %d releases, %d fuentes de login, %d webhooks, %d milestones, %d etiquetas, %d hooks, %d equipos, %d tareas actualizadas, %d adjuntos.
dashboard.operation_name=Nombre de la operación
dashboard.operation_switch=Interruptor
+dashboard.select_operation_to_run=Please select operation to run
dashboard.operation_run=Ejecutar
dashboard.clean_unbind_oauth=Limpiar solicitudes de OAuth sin confirmar
dashboard.clean_unbind_oauth_success=Las solicitudes de OAuth sin confirmar se han eliminado correctamente.
@@ -905,8 +1041,8 @@ dashboard.git_gc_repos=Ejecutar la recolección de basura en los repositorios
dashboard.git_gc_repos_success=Todos los repositorios han ejecutado correctamente el recolector de basuras.
dashboard.resync_all_sshkeys=Reescribir el fichero '.ssh/authorized_keys'(atención: se perderán las claves que no pertenezcan a Gogs)
dashboard.resync_all_sshkeys_success=Todas las claves públicas se han reescrito correctamente.
-dashboard.resync_all_update_hooks=Reescribir todos los hooks de actualización de los repositorios (necesario cuando se modifica la ruta de configuración personalizada)
-dashboard.resync_all_update_hooks_success=Todos los hooks de actualización de los repositorios se han reescrito correctamente.
+dashboard.resync_all_hooks=Resincroniza los "hooks" de pre-recepción, actualización y post-recepción en todos los repositorios
+dashboard.resync_all_hooks_success=Se han vuelto a sincronizar todos los "hooks" de pre-recepción, actualización y post-recepción de los repositorios con éxito.
dashboard.reinit_missing_repos=Reinicializar todos los registros del repositorio que tienen archivos Git eliminados
dashboard.reinit_missing_repos_success=Todos los registros del repositorio con archivos Git eliminados han sido reinicializados con éxito.
@@ -981,12 +1117,14 @@ repos.private=Privado
repos.watches=Vigilantes
repos.stars=Estrellas
repos.issues=Incidencias
+repos.size=Tamaño
-auths.auth_manage_panel=Panel de administración de autenticación
+auths.auth_sources=Fuentes de autentificación
auths.new=Añadir nuevo origen
auths.name=Nombre
auths.type=Tipo
auths.enabled=Activo
+auths.default=Por defecto
auths.updated=Actualizado
auths.auth_type=Tipo de autenticación
auths.auth_name=Nombre de autenticación
@@ -995,6 +1133,7 @@ auths.domain=Dominio
auths.host=Host
auths.port=Puerto
auths.bind_dn=Bind DN
+auths.bind_dn_helper=Puedes usar '%s' como marcador de posición para el nombre de usuario, ej. DOM\%s
auths.bind_password=Contraseña Bind
auths.bind_password_helper=Advertencia: La contraseña se almacena como texto plano. No utilice una cuenta con privilegios elevados.
auths.user_base=Base de búsqueda de usuarios
@@ -1004,6 +1143,11 @@ auths.attribute_username_placeholder=Dejar vacío para usar el campo de inicio d
auths.attribute_name=Atributo nombre
auths.attribute_surname=Atributo apellido
auths.attribute_mail=Atributo correo electrónico
+auths.verify_group_membership=Verificar pertenencia a grupo
+auths.group_search_base_dn=Base DN para la búsqueda de grupos
+auths.group_filter=Filtro de grupo
+auths.group_attribute_contain_user_list=Atributo de grupo que contiene la lista de usuarios
+auths.user_attribute_listed_in_group=Atributo de usuario listado en grupo
auths.attributes_in_bind=Buscar atributos en el contexto del Bind DN
auths.filter=Filtro de usuario
auths.admin_filter=Filtro de aministrador
@@ -1017,9 +1161,9 @@ auths.enable_tls=Habilitar cifrado TLS
auths.skip_tls_verify=Omitir la verificación TLS
auths.pam_service_name=Nombre del Servicio PAM
auths.enable_auto_register=Hablilitar Auto-Registro
-auths.tips=Consejos
auths.edit=Editar la Configuración de Autenticación
auths.activated=Esta autenticación ha sido activada
+auths.default_auth=Esta autenticación es la fuente de inicio de sesión predeterminada
auths.new_success=¡La autenticación '%s' ha sido añadida con éxito!
auths.update_success=La configuración de autenticación ha sido actualizada con éxito.
auths.update=Actualizar la configuración de autenticación
@@ -1028,107 +1172,189 @@ auths.delete_auth_title=Borrado de autenticación
auths.delete_auth_desc=Esta autenticación será eliminada. ¿Deseas continuar?
auths.still_in_used=Este método de autentificación aún es utilizado por algunos usuarios, por favor elimine o convierta estos usuarios a otro tipo de autentificación.
auths.deletion_success=¡La autenticación ha sido eliminada con éxito!
+auths.login_source_exist=El origen de autenticación '%s' ya existe.
+auths.github_api_endpoint=Endpoint de la API
+config.not_set=(sin definir)
config.server_config=Configuración del servidor
-config.app_name=Nombre de la Aplicación
-config.app_ver=Versión de la Aplicación
-config.app_url=URL de la Aplicación
-config.domain=Dominio
-config.offline_mode=Modo Sin Conexión
-config.disable_router_log=Deshabilitar Log del Router
+config.brand_name=Nombre de la marca
config.run_user=Ejecutada como Usuario
config.run_mode=Modo de ejecución
-config.repo_root_path=Ruta del Repositorio
-config.static_file_root_path=Ruta de los Ficheros Estáticos
-config.log_file_root_path=Ruta de los Ficheros de Log
-config.script_type=Tipo de Script
-config.reverse_auth_user=Autenticación Inversa de Usuario
+config.server.external_url=URL externa
+config.server.domain=Dominio
+config.server.protocol=Protocolo
+config.server.http_addr=Dirección HTTP
+config.server.http_port=Puerto HTTP
+config.server.cert_file=Archivo de certificado
+config.server.key_file=Archivo de claves
+config.server.tls_min_version=Versión mínima de TLS
+config.server.unix_socket_permission=Unix socket permission
+config.server.local_root_url=Local root URL
+config.server.offline_mode=Offline mode
+config.server.disable_router_log=Disable router log
+config.server.enable_gzip=Enable Gzip
+config.server.app_data_path=Application data path
+config.server.load_assets_from_disk=Load assets from disk
+config.server.landing_url=Landing URL
config.ssh_config=Configuración SSH
-config.ssh_enabled=Habilitado
-config.ssh_start_builtin_server=Iniciar servidor integrado
-config.ssh_domain=Dominio
-config.ssh_port=Puerto
-config.ssh_listen_port=Puerto de escucha
-config.ssh_root_path=Ruta raíz
-config.ssh_key_test_path=Ruta de la clave de prueba
-config.ssh_keygen_path=Ruta del generador de claves ('ssh-keygen')
-config.ssh_minimum_key_size_check=Tamaño mínimo de la clave de verificación
-config.ssh_minimum_key_sizes=Tamaños de clave mínimos
+config.ssh.enabled=Activado
+config.ssh.domain=Dominio expuesto
+config.ssh.port=Puerto expuesto
+config.ssh.root_path=Root path
+config.ssh.keygen_path=Ruta del generador de claves
+config.ssh.key_test_path=Ruta de la clave de prueba
+config.ssh.minimum_key_size_check=Comprobación del tamaño mínimo de la clave
+config.ssh.minimum_key_sizes=Tamaño mínimo de las claves
+config.ssh.rewrite_authorized_keys_at_start=Reescribir "authorized_keys" al inicio
+config.ssh.start_builtin_server=Iniciar servidor integrado
+config.ssh.listen_host=Host de escucha
+config.ssh.listen_port=Puerto de escucha
+config.ssh.server_ciphers=Cifrados del servidor
+config.ssh.server_macs=MACs del servidor
+config.ssh.server_algorithms=Algoritmos del servidor
+
+config.repo_config=Configuración del repositorio
+config.repo.root_path=Ruta raíz
+config.repo.script_type=Script type
+config.repo.ansi_chatset=ANSI charset
+config.repo.force_private=Force private
+config.repo.max_creation_limit=Max creation limit
+config.repo.preferred_licenses=Licencias preferidas
+config.repo.disable_http_git=Disable HTTP Git
+config.repo.enable_local_path_migration=Enable local path migration
+config.repo.enable_raw_file_render_mode=Enable raw file render mode
+config.repo.commits_fetch_concurrency=Commits fetch concurrency
+config.repo.editor.line_wrap_extensions=Editor line wrap extensions
+config.repo.editor.previewable_file_modes=Editor previewable file modes
+config.repo.upload.enabled=Upload enabled
+config.repo.upload.temp_path=Upload temporary path
+config.repo.upload.allowed_types=Upload allowed types
+config.repo.upload.file_max_size=Upload file size limit
+config.repo.upload.max_files=Upload files limit
config.db_config=Configuración de la Base de Datos
-config.db_type=Tipo
-config.db_host=Host
-config.db_name=Nombre
-config.db_user=Usuario
-config.db_ssl_mode=Modo SSL
-config.db_ssl_mode_helper=(sólo para "postgres")
-config.db_path=Ruta
-config.db_path_helper=(para "sqlite3" y "tidb")
-
-config.service_config=Configuración del servicio
-config.register_email_confirm=Solicitar Confirmación por Correo Electrónico
-config.disable_register=Deshabilitar el Registro
-config.show_registration_button=Mostrar Botón de Registro
-config.require_sign_in_view=Solicitar la Vista de Inicio de Sesión
-config.mail_notify=Notificación por Correo Electrónico
-config.disable_key_size_check=Deshabilitar la comprobación de Tamaño Mínimo de Clave
-config.enable_captcha=Activar Captcha
-config.active_code_lives=Habilitar Vida del Código
-config.reset_password_code_lives=Restablecer Contraseña de Vida del Código
+config.db.type=Tipo
+config.db.host=Host
+config.db.name=Nombre
+config.db.schema=Esquema
+config.db.schema_helper=(sólo para "postgres")
+config.db.user=Usuario
+config.db.ssl_mode=SSL mode
+config.db.ssl_mode_helper=(sólo para "postgres")
+config.db.path=Ruta
+config.db.path_helper=(sólo para "sqlite3")
+config.db.max_open_conns=Número máximo de conexiones abiertas
+config.db.max_idle_conns=Número máximo de conexiones inactivas
+
+config.security_config=Security configuration
+config.security.login_remember_days=Login remember days
+config.security.cookie_remember_name=Remember cookie
+config.security.cookie_username=Username cookie
+config.security.cookie_secure=Enable secure cookie
+config.security.reverse_proxy_auth_user=Reverse proxy authentication header
+config.security.enable_login_status_cookie=Enable login status cookie
+config.security.login_status_cookie_name=Login status cookie
+config.security.local_network_allowlist=Local network allowlist
+
+config.email_config=Email configuration
+config.email.enabled=Enabled
+config.email.subject_prefix=Subject prefix
+config.email.host=Host
+config.email.from=From
+config.email.user=User
+config.email.disable_helo=Disable HELO
+config.email.helo_hostname=HELO hostname
+config.email.skip_verify=Skip certificate verify
+config.email.use_certificate=Use custom certificate
+config.email.cert_file=Certificate file
+config.email.key_file=Archivo de claves
+config.email.use_plain_text=Use plain text
+config.email.add_plain_text_alt=Add plain text alternative
+config.email.send_test_mail=Enviar correo de prueba
+config.email.test_mail_failed=Error al enviar correo electrónico de prueba a '%s': %v
+config.email.test_mail_sent=Test email has been sent to '%s'.
+
+config.auth_config=Authentication configuration
+config.auth_custom_logout_url=Custom logout URL
+config.auth.activate_code_lives=Activate code lives
+config.auth.reset_password_code_lives=Reset password code lives
+config.auth.require_email_confirm=Require email confirmation
+config.auth.require_sign_in_view=Require sign in view
+config.auth.disable_registration=Disable registration
+config.auth.enable_registration_captcha=Enable registration captcha
+config.auth.enable_reverse_proxy_authentication=Enable reverse proxy authentication
+config.auth.enable_reverse_proxy_auto_registration=Enable reverse proxy auto registration
+config.auth.reverse_proxy_authentication_header=Reverse proxy authentication header
+
+config.user_config=User configuration
+config.user.enable_email_notify=Enable email notification
-config.webhook_config=Configuración de Webhooks
-config.queue_length=Tamaño de Cola de Envío
-config.deliver_timeout=Timeout de Entrega
-config.skip_tls_verify=Omitir la Verificación TLS
-
-config.mailer_config=Configuración del servidor de correo
-config.mailer_enabled=Activado
-config.mailer_disable_helo=Desactivar HELO
-config.mailer_name=Nombre
-config.mailer_host=Host
-config.mailer_user=Usuario
-config.send_test_mail=Enviar email de prueba
-config.test_mail_failed=Fallo al enviar el email de prueba a '%s': %v
-config.test_mail_sent=El email de prueba ha sido enviado a '%s'.
-
-config.oauth_config=Configuración OAuth
-config.oauth_enabled=Activado
+config.session_config=Configuración de la Sesión
+config.session.provider=Provider
+config.session.provider_config=Provider config
+config.session.cookie_name=Cookie
+config.session.https_only=HTTPS only
+config.session.gc_interval=GC interval
+config.session.max_life_time=Max life time
+config.session.csrf_cookie_name=CSRF cookie
config.cache_config=Configuración de la Caché
-config.cache_adapter=Adaptador de la Caché
-config.cache_interval=Intervalo de la Caché
-config.cache_conn=Conexión de la Caché
-
-config.session_config=Configuración de la Sesión
-config.session_provider=Proveedor de la Sesión
-config.provider_config=Configuración del Proveedor
-config.cookie_name=Nombre de la Cookie
-config.enable_set_cookie=Activar Establecimiento de Cookie
-config.gc_interval_time=Intervalo de tiempo del GC
-config.session_life_time=Tiempo de Vida de la Sesión
-config.https_only=Sólo HTTPS
-config.cookie_life_time=Tiempo de Vida de la Cookie
+config.cache.adapter=Adapter
+config.cache.interval=GC interval
+config.cache.host=Host
+
+config.http_config=Configuración HTTP
+config.http.access_control_allow_origin=Access control allow origin
+
+config.attachment_config=Attachment configuration
+config.attachment.enabled=Enabled
+config.attachment.path=Path
+config.attachment.allowed_types=Allowed types
+config.attachment.max_size=Size limit
+config.attachment.max_files=Files limit
+
+config.release_config=Release configuration
+config.release.attachment.enabled=Attachment enabled
+config.release.attachment.allowed_types=Attachment allowed types
+config.release.attachment.max_size=Attachment size limit
+config.release.attachment.max_files=Attachment files limit
config.picture_config=Configuración de Imagen
-config.picture_service=Servicio de Imágen
-config.disable_gravatar=Desactivar Gravatar
-config.enable_federated_avatar=Habilitar Avatares Federados
+config.picture.avatar_upload_path=User avatar upload path
+config.picture.repo_avatar_upload_path=Repository avatar upload path
+config.picture.gravatar_source=Gravatar source
+config.picture.disable_gravatar=Disable Gravatar
+config.picture.enable_federated_avatar=Enable federated avatars
+
+config.mirror_config=Mirror configuration
+config.mirror.default_interval=Intervalo por defecto
+
+config.webhook_config=Configuración de Webhooks
+config.webhook.types=Types
+config.webhook.deliver_timeout=Deliver timeout
+config.webhook.skip_tls_verify=Skip TLS verify
config.git_config=Configuración de Git
-config.git_disable_diff_highlight=Desactivar resaltado de sintaxis del Diff
-config.git_max_diff_lines=Líneas de Diff máximas (por un solo archivo)
-config.git_max_diff_line_characters=Carácteres de Diff máximos (para una sola línea)
-config.git_max_diff_files=Máximo de archivos de Diff (que se mostrarán)
-config.git_gc_args=Argumentos de GC
-config.git_migrate_timeout=Tiempo de espera de migración
-config.git_mirror_timeout=Tiempo de espera de actualización de réplicas
-config.git_clone_timeout=Tiempo de espera de operación de clones
-config.git_pull_timeout=Tiempo de espera de operación de pull
-config.git_gc_timeout=Tiempo de espera de operación de GC
+config.git.disable_diff_highlight=Disable diff syntax highlight
+config.git.max_diff_lines=Diff lines limit (for a single file)
+config.git.max_diff_line_characters=Diff characters limit (for a single line)
+config.git.max_diff_files=Diff files limit (for a single diff)
+config.git.gc_args=GC arguments
+config.git.migrate_timeout=Migration timeout
+config.git.mirror_timeout=Mirror fetch timeout
+config.git.clone_timeout=Clone timeout
+config.git.pull_timeout=Pull timeout
+config.git.gc_timeout=GC timeout
+
+config.lfs_config=LFS configuration
+config.lfs.storage=Storage
+config.lfs.objects_path=Objects path
config.log_config=Configuración del Log
-config.log_mode=Modo del Log
+config.log_file_root_path=Ruta de los Ficheros de Log
+config.log_mode=Modo
+config.log_options=Opciones
monitor.cron=Tareas de Cron
monitor.name=Nombre
@@ -1159,17 +1385,24 @@ notices.delete_success=Las notificaciones del sistema han sido eliminadas satisf
create_repo=creó el repositorio %s
rename_repo=repositorio renombrado de %[1]s a %[3]s
commit_repo=hizo push a %[3]s en %[4]s
+compare_commits=Ver comparación de estos %d commits
+transfer_repo=transfirió el repositorio %s a %s
create_issue=`incidencia abierta %s#%[2]s`
close_issue=`cerró la incidencia %s#%[2]s`
reopen_issue=`reabrió la incidencia %s#%[2]s`
+comment_issue=`comentó en la incidencia %s#%[2]s`
create_pull_request=`creado pull request %s#%[2]s`
close_pull_request=`cerró el pull request %s#%[2]s`
reopen_pull_request=`reabrió el pull request %s#%[2]s`
-comment_issue=`comentó en la incidencia %s#%[2]s`
-merge_pull_request=`fusionado pull request %s#%[2]s`
-transfer_repo=transfirió el repositorio %s a %s
+merge_pull_request=`fusionó el pull request %s#%[2]s`
+create_branch=nueva rama %[3]s creada en %[4]s
+delete_branch=borrada rama %[2]s at %[3]s
push_tag=hizo push del tag %[2]s a %[3]s
-compare_commits=Ver comparación de estos %d commits
+delete_tag=borrada etiqueta %[2]s en %[3]s
+fork_repo=ha hecho un Fork en %s
+mirror_sync_push=sincronizados commits a %[3]s en %[4]s desde la réplica
+mirror_sync_create=sincronizada nueva referencia %[2]s a %[3]s desde la réplica
+mirror_sync_delete=sincronizada y eliminada referencia %[2]s en %[3]s desde la réplica
[tool]
ago=hace
@@ -1191,6 +1424,7 @@ months=%[2]s %[1]d meses
years=%[2]s %[1]d años
raw_seconds=segundos
raw_minutes=minutos
+raw_hours=hours
[dropzone]
default_message=Suéltelos aquí o pulse para cargar archivos.
diff --git a/conf/locale/locale_fa-IR.ini b/conf/locale/locale_fa-IR.ini
new file mode 100644
index 00000000000..0c31d210941
--- /dev/null
+++ b/conf/locale/locale_fa-IR.ini
@@ -0,0 +1,1436 @@
+app_desc=یک سرویس گیت بیدرد سر و راحت
+
+home=صفحهٔ اصلی
+dashboard=میز کار
+explore=گشتوگذار
+help=راهنما
+sign_in=ورود
+sign_out=خروج
+sign_up=ثبتنام کنید
+register=ثبت نام
+website=وبسایت
+page=صفحه
+template=قالب
+language=زبان
+create_new=ایجاد...
+user_profile_and_more=پروفایل کاربر و …
+signed_in_as=ورود به عنوان
+
+username=نام کاربری
+email=ایمیل
+password=رمز عبور
+re_type=تایپ مجدد
+captcha=تصویر امنیتی
+
+repository=مخزن
+organization=سازمان
+mirror=قرینه
+new_repo=مخزن جدید
+new_migrate=انتقال جدید
+new_mirror=قرینه ای جدید
+new_fork=ایجاد یک انشعاب مخزن جدید
+new_org=سازمان جدید
+manage_org=مدیریت سازمانها
+admin_panel=پنل مدیریت
+account_settings=تنظیمات حساب
+settings=تنظيمات
+your_profile=پروفایل شما
+your_settings=تنظیمات شما
+
+activities=فعالیتها
+pull_requests=پول ریکوست
+issues=مسائل
+
+cancel=لغو
+
+[status]
+page_not_found=صفحه مورد نظر یافت نشد.
+internal_server_error=خطای داخلی سرور
+
+[install]
+install=نصب
+title=مراحل نصب برای اولین اجرا
+docker_helper=اگر شما Gogs را با استفاده از Docker اجرا میکنید، لطفا قبل از انجام هرگونه تغییر این راهنما را به دقت مطالعه فرمایید!
+requite_db_desc=Gogs جهت راهاندازی نیازمند یکی از پایگاه دادههای MySQL، PostgreSql، SQLite3 و TIDB میباشد.
+db_title=تنظیمات پایگاه داده
+db_type=نوع پایگاه داده
+host=میزبان
+user=کاربر
+password=رمز عبور
+db_name=نام پایگاه داده
+db_schema=Schema
+db_helper=در صورت استفاده از MySQL لطفا از موتور INNODB و کد کاراکتری utf8_general_ci استفاده نمایید.
+ssl_mode=حالت امن (SSL)
+path=مسیر
+sqlite_helper=مسیر فایل بانک اطلاعاتی اسکیوال لایت۳ یا تیدیبی. لطفا هنگامی که به عنوان سرویس استفاده میکنید مسیر کامل را وارد کنید.
+err_empty_db_path=مسیر پایگاه داده SQLite3 نباید خالی باشد.
+no_admin_and_disable_registration=شما بدون ایجاد حساب کاربری مدیر نمیتوانید عضویت را غیر فعال کنید.
+err_empty_admin_password=رمز عبور مدیر نمیتواند خالی باشد.
+
+general_title=تنظیمات کلی برنامه
+app_name=نام برنامه
+app_name_helper=نام سازمان/شرکت خود را در اینجا قراردهید!
+repo_path=مسیر پوشه اصلی (روت) برای مخزن کد
+repo_path_helper=تمام مخازن کد راه دور در این پوشه ذخیره میشوند.
+run_user=کاربر اجراکننده
+run_user_helper=کاربر باید به مسیر پوشه اصلی دسترسی داشته باشد و بتواند Gogs را اجرا کند.
+domain=دامنه
+domain_helper=این مقدار بر آدرسهای مخازن کد که از طریق SSH مدیریت میشوند، تاثیر میگذارد.
+ssh_port=پرت SSH
+ssh_port_helper=شماره پورت که سرویس SSH شما در حال اجرا بر روی آن است، در صورت عدم نیاز به سرویس SSH این بخش را خالی بگذارید.
+use_builtin_ssh_server=استفاده از SSH سرور داخلی
+use_builtin_ssh_server_popup=استفاده از SSH سرور داخلی برای عملیات گیت جهت جدا کردن از SSH daemon سیستم.
+http_port=پورت HTTP
+http_port_helper=شماره پورت مورد نظر که نرمافزار Gogs بر روی آن اجرا خواهد شد.
+app_url=آدرس اینترنتی (URL) نرمافزار
+app_url_helper=این مورد بر روی آدرسهای مخازن کد که با پیشکار HTTP یا HTTPS کار میکنند و یا در ایمیلها تاثیر میگذارد.
+log_root_path=مسیر گزارشها
+log_root_path_helper=پوشهای برای نوشتن فایل گزارش.
+enable_console_mode=فعال کردن حالت کنسول
+enable_console_mode_popup=لاگها علاوه بر ذخیره در فایل، در کنسول نیز به نمایش در آید.
+default_branch=Default Branch
+
+optional_title=تنظیمات اختیاری
+email_title=تنظیمات سرویس ایمیل
+smtp_host=SMTP میزبان
+smtp_from=از
+smtp_from_helper=آدرس مبدا ایمیل (From) بر اساس RFC 5322. مقدار آن میتواند یک آدرس ایمیل و یا یک نام با فرمت باشد.
+mailer_user=ایمیل فرستنده
+mailer_password=رمز عبور فرستنده
+register_confirm=فعالسازی تایید ثبتنام
+mail_notify=فعالسازی نوتیفکیشن ایمیل
+server_service_title=تنظیمات سرور و سرویسهای دیگر
+offline_mode=فعالسازی حالت آفلاین
+offline_mode_popup=غیرفعال نمودن CDN حتی در حالت استفاده نهایی (production)، تمامی فایلها از سیستم محلی ارسال خواهند شد.
+disable_gravatar=غیر فعال کردن سرویس Gravatar
+disable_gravatar_popup=غیرفعال نمودن Gravatar و تصاویر اختصاصی، تمامی آواتارها توسط کاربران آپلود خواهند شد یا در حالت صورت پیشفرض قرار میگیرند.
+federated_avatar_lookup=فعال سازی جستجو برای آواتار مشترک
+federated_avatar_lookup_popup=فعال سازی جستجو برای آواتار مشترک برای استفاده از سرویس منبع باز و مشترک بر پایه ی libavatar.
+disable_registration=غیر فعالکردن ثبت نام
+disable_registration_popup=غیرفعال نمودن عضویت توسط کاربران، فقط کاربر مدیر میتواند کاربر جدید ایجاد نماید.
+enable_captcha=فعالکردن تصویر امنیتی
+enable_captcha_popup=برای عضویت افراد نیازمند به کپچا (captcha) میباشد.
+require_sign_in_view=فعالسازی نیازمند به ورود در هنگام مشاهده صفحات
+require_sign_in_view_popup=تنها کسانی که وارد شدهاند میتوانند صفحات را مشاهده کنند، مشاهده کنندگان تنها میتوانند صفحات ثبتنام و ورود را مشاهده کنند.
+admin_setting_desc=نیازی نیست الان شما حسابکاربری مدیر ایجاد کنید، به صورت خودکار کاربری که شماره کاربری او ۱ میباشد به عنوان مدیر شناخته خواهد شد.
+admin_title=تنظیمات حساب مدیر
+admin_name=نام کاربری
+admin_password=رمز عبور
+confirm_password=تأیید رمز عبور
+admin_email=ایمیل مدیر
+install_gogs=نصب Gogs
+test_git_failed=عدم توانایی در آزمایش نمودن دستور 'git' توضیح بیشتر: %v
+sqlite3_not_available=نسخه مورد استفاده شما از SQLite3 پشتیبانی نمی کند. لطفا نسخه باینری رسمی را از s% دانلود کنید و از ورژن gobuild هم استفاده نکنید.
+invalid_db_setting=تنظیمات پایگاه داده درست نیست: %v
+invalid_repo_path=مسیر ریشه مخزن نامعتبر است: %v
+run_user_not_match=کاربری را اجرا کنید که کاربر فعلی نباشد: %s-> %s
+smtp_host_missing_port=شماره پورت در آدرس میزبان SMTP وارد نشده است.
+invalid_smtp_from=مقدار وارد شده در فرم SMTP معتبر نیست: %v
+save_config_failed=تنظیمات ذخیره نشد: %v
+init_failed=بارگزاری برنامه به مشکل برخورد: %v
+invalid_admin_setting=تنظیمات حساب مدیر نامعتبر است: %v
+install_success=خوش آمدی! ما خوشحالیم که شما Gogs را انتخاب کردید. لذت ببرید و مراقب خودتون باشید.
+invalid_log_root_path=آدرس روت فایل لاگ صحیح نیست: %v
+
+[home]
+uname_holder=نام کاربری یا ایمیل
+password_holder=رمز عبور
+switch_dashboard_context=تغییر مفاد داشبورد
+my_repos=مخازن من
+show_more_repos=نمایش مخازن بیشتر...
+collaborative_repos=مخازن همکاری
+my_orgs=گروههای من
+my_mirrors=آدرس های دیگر من
+view_home=نمایش %s
+
+issues.in_your_repos=در مخازن شما
+
+[explore]
+repos=مخازن
+users=کاربران
+organizations=سازمان ها
+search=جستجو
+
+[auth]
+create_new_account=ایجاد حساب جدید
+register_hepler_msg=قبلا ثبت نام کردید؟ از اینجا وارد شوید!
+social_register_hepler_msg=تا به حال حسابی داشته اید؟ به ما بپیوندید!
+disable_register_prompt=با عرض پوزش، ثبت نام غیرفعال شده است. لطفا با مدیر سایت تماس بگیرید.
+disable_register_mail=با عرض پوزش، تایید ایمیل ثبت نام غیر فعال شده است.
+auth_source=محل احراز هویت
+local=محلی
+remember_me=مرا به خاطر بسپار
+forgot_password=فراموشی رمز عبور
+forget_password=رمز عبور خود را فراموش کردهاید؟
+sign_up_now=نیاز به یک حساب دارید؟ هماکنون ثبت نام کنید.
+confirmation_mail_sent_prompt=ایمیل تاییدیه جدیدی به %s ارسال شد. لطفا صندوق ورودی خود را در %d ساعت آینده برای تکمیل فرایند ثبت نام بررسی کنید.
+active_your_account=حساب خود را فعال کنید
+prohibit_login=ورود ممنوع
+prohibit_login_desc=ورود به حساب کاربری برای شما ممنوع شده است ، لطفا با مدیر سایت تماس بگیرید.
+resent_limit_prompt=با عرض پوزش، شما به تازگی یک ایمیل فعالسازی را درخواست کرده اید. لطفا سه دقیقه منتظر بمانید سپس درخواست خود را تکرار کنید.
+has_unconfirmed_mail=سلام %s, شما آدرس ایمیل (%s) را تایید نکرده اید. لطفا اگر شما ایمیلی دریافت نکرداید و یا نیاز به ارسال دوباره دارید، بر روید دکمه زیر کلیک نمایید.
+resend_mail=برای ارسال نامه فعال سازی اینجا را کلیک کنید
+send_reset_mail=اینجا کلیک کنید تا (مجددا) ایمیل تغییر رمز عبور برایتان ارسال شود
+reset_password=تنظیم مجدد رمز عبور
+invalid_code=با عرض پوزش، کد تایید شما منقضی شده است و یا معتبر نیست.
+reset_password_helper=اینجا کلیک کنید تا رمز عبور خود را تغییر دهید
+password_too_short=طول رمز عبور نمیتواند کوتاهتر از ۶ باشد.
+non_local_account=حساب های کاربری غیر محلی قادر به تغییر رمز عبور از طریق Gogs نمی باشند.
+
+login_two_factor=احراز هویت دوگانه
+login_two_factor_passcode=کد رمز احراز هویت
+login_two_factor_enter_recovery_code=کد بازیابی دوگانه را وارد کنید
+login_two_factor_recovery=بازیابی دوگانه
+login_two_factor_recovery_code=کد بازیابی
+login_two_factor_enter_passcode=کد عبور دوگانه را وارد کنید
+login_two_factor_invalid_recovery_code=کد بازیابی قبلا استفاده شده و یا معتبر نیست.
+
+[mail]
+activate_account=لطفا حساب خود را فعال کنید
+activate_email=آدرس ایمیل خود را تایید کنید
+reset_password=تنظیم مجدد رمز عبور
+register_success=ثبت نام با موفقیت انجام شد، خوشامدید
+register_notify=خوش آمدید
+
+[modal]
+yes=بله
+no=خیر
+modify=اصلاح
+
+[form]
+UserName=نام کاربری
+RepoName=نام مخزن
+Email=آدرس ایمیل
+Password=رمز عبور
+Retype=تکرار رمز عبور
+SSHTitle=نام کلید SSH
+HttpsUrl=آدرس HTTPS
+PayloadUrl=آدرس Payload
+TeamName=نام تیم
+AuthName=نام مجوز
+AdminEmail=ایمیل مدیر
+
+NewBranchName=نام شاخه ی جدید
+CommitSummary=خلاصه ی کامیت
+CommitMessage=پیام کامیت
+CommitChoice=انتخاب در کامیت
+TreeName=مسیر فایل
+Content=محتوا
+
+require_error=` نمی تواند خالی باشد.`
+alpha_dash_error=` باید شامل کاراکترهای حروف الفبا یا اعداد یا خط تیره (-_) باشد`
+alpha_dash_dot_error=` باید شامل کاراکترهای حروف الفبا یا اعداد یا خط تیره (-_) یا نقطه باشد`
+alpha_dash_dot_slash_error=` باید شامل کاراکترهای حروف الفبا یا اعداد یا خط تیره (-_) یا نقطه یا اسلش( \ /) باشد`
+size_error=` باید به اندازه %s باشد.`
+min_size_error=` حداقل باید شامل %s کاراکتر باشد.`
+max_size_error=` حداکثر باید شامل %s کاراکتر باشد.`
+email_error=` ساختار آدرس ایمیل صحیح نیست.`
+url_error=` ساختار آدرس صحیح نیست.`
+include_error=` باید شامل '%s' باشد.`
+unknown_error=خطای ناشناخته:
+captcha_incorrect=کپچای وارد شده صحیح نیست.
+password_not_match=رمز عبور و تکرار آن یکسان نیستند.
+
+username_been_taken=این نام کاربری قبلا استفاده شده است.
+repo_name_been_taken=نام مخزن قبلا استفاده شده است.
+org_name_been_taken=نام سازمان قبلا استفاده شده است.
+team_name_been_taken=نام تیم گرفته شده است.
+email_been_used=آدرس ایمیل قبلا استفاده شده است.
+username_password_incorrect=نام کاربری یا رمز عبور صحیح نیست.
+auth_source_mismatch=محل احراز هویت انتخاب شده با کاربر در ارتباط نمیباشد.
+enterred_invalid_repo_name=لطفا مطمئن شوید که نام مخزن وارد شده صحیح است.
+enterred_invalid_owner_name=لطفا مطمئن شوید که نام مالک وارد شده صحیح است.
+enterred_invalid_password=لطفا مطمئن شوید که رمز عبور وارد شده صحیح است.
+user_not_exist=کاربر دادهشده یافت نشد.
+last_org_owner=حذف کردن آخرین کاربر از تیم مالک مجاز نیست، چون همیشه یک سازمان باید حداقل یک مالک داشته باشد.
+
+invalid_ssh_key=با عرض پوزش، ما قادر به تایید کلید SSH شما نیستیم: %s
+unable_verify_ssh_key=Gogs قادر به تایید کلید SSH شما نیست، اما ما فرض می کنیم که این کلید معتبر است، لطفا آن را به دقت بررسی کنید.
+auth_failed=ورود انجام نشد: %v
+
+still_own_repo=حساب شما در حال حاضر حداقل مالک یک مخزن است، شما ابتدا باید آن ها را حذف یا منتقل کنید.
+still_has_org=حساب شما در حال حاضر حداقل عضو یک سازمان است، شما ابتدا باید عضویت خود را حذف یا سازمان را ترک کنید.
+org_still_own_repo=این سازمان در حال حاضر مالک برخی مخازن است، شما ابتدا باید آن ها را حذف یا منتقل کنید.
+
+target_branch_not_exist=شاخه مورد نظر وجود ندارد.
+
+[user]
+change_avatar=تغییر آواتار
+join_on=ملحق شد در
+repositories=مخازن
+activity=فعالیت های عمومی
+followers=دنبالکنندهها
+starred=مخان ستاره دار
+following=دنبال می کند
+follow=دنبال کردن
+unfollow=لغو دنبال کردن
+
+form.name_not_allowed=الگوی نام کاربری '%s' مجاز نیست.
+
+[settings]
+profile=پروفایل
+password=رمز عبور
+avatar=آواتار
+ssh_keys=کلیدهای SSH
+security=امنیت
+repos=مخازن
+orgs=گروهها
+applications=برنامهها
+delete=حذف حساب
+
+public_profile=پروفایل عمومی
+profile_desc=آدرس ایمیل شما در دید عموم بوده و برای ارسال پیامهای مربوط به حساب یا هر عملیات سیستمی دیگر مورد استفاده قرار میگیرد.
+password_username_disabled=کاربران غیر بومی مجاز به تغییر نام کاربری نیستند.
+full_name=نام کامل
+website=وبسایت
+location=مکان
+update_profile=بروزرسانی پروفایل
+update_profile_success=حساب شما با موفقیت به روز شد.
+change_username=نام کاربری تغییر یافت
+change_username_prompt=این بر روی نحوه ارتباط لینکها با حساب شما تاثیر خواهد گذاشت.
+continue=ادامه
+cancel=لغو
+
+lookup_avatar_by_mail=جستجوی آواتار از طریق ایمیل
+federated_avatar_lookup=جستجو برای آواتار مشترک
+enable_custom_avatar=فعالسازی آواتار دلخواه
+choose_new_avatar=انتخاب آواتار جدید
+update_avatar=بروزرسانی تنظیم آواتار
+delete_current_avatar=حذف آواتار فعلی
+uploaded_avatar_not_a_image=فایل بارگذاری شده تصویر نمیباشد.
+update_avatar_success=تنظیمات آواتار شما با موفقیت به روز شده است.
+
+change_password=تغییر رمز عبور
+old_password=رمز عبور فعلی
+new_password=رمز عبور جدید
+retype_new_password=تکرار رمز عبور جدید
+password_incorrect=رمز ورود فعلی درست نیست.
+change_password_success=کلمه عبور با موفقیت تغییر کرد. شما هم اکنون می توانید با استفاده از این رمز عبور وارد سیستم شوید.
+password_change_disabled=کاربران غیر بومی مجاز به تغییر کلمه عبور نیستند.
+
+emails=آدرسهای ایمیل
+manage_emails=مدیریت آدرسهای ایمیل
+email_desc=آدرس ایمیل اولیه را برای آگاه سازی و دیگر عملیات مورد استفاده قرار میگیرد.
+primary=اصلی
+primary_email=تنظیم به عنوان اصلی
+delete_email=حذف
+email_deletion=حذف ایمیل
+email_deletion_desc=حذف این آدرس ایمیل دیگر اطلاعات مربوط به آن را هم از حساب شما حذف میکند. آیا مایلید ادامه دهید؟
+email_deletion_success=ایمیل با موفقیت حذف شد!
+email_deletion_primary=Cannot delete primary email address.
+add_new_email=اضافه کردن آدرس ایمیل جدید
+add_email=اضافه کردن ایمیل
+add_email_confirmation_sent=یک ایمیل تایید به آدرس %s ارسال شد, لطفا صندوق خود را حداکثر تا %d ساعت دیگر برای تکمیل فرایند تایید بررسی کنید.
+add_email_success=آدرس جدید ایمیل با موفقیت اضافه شد.
+
+manage_ssh_keys=مدیریت کلیدهای اساساچ
+add_key=افزودن کلید
+ssh_desc=این یک لیست از کلیدهای SSH مرتبط با حساب کاربری شما است. این کلید ها به هر کسی که از آنها استفاده می کند ، اجازه می دهد به مخازن شما دسترسی پیدا کند.
+ssh_helper="آیا نمی دانید چگونه؟
+ راهنمایی Github را برای ساخت کلید SSH برای خود ببینید
+یا ممکن است با راه حل استفاده از SSH در مشکلات متداول مواجه شوید."
+add_new_key=اضافه کردن کلید SSH
+ssh_key_been_used=محتوای کلید عمومی استفاده شده است.
+ssh_key_name_used=کلید عمومی با همین نام موجود است.
+key_name=نام کلید
+key_content=محتوا
+add_key_success=کلید SSH %s با موفقیت افزوده شد!
+delete_key=حذف
+ssh_key_deletion=حدف کلید SSH
+ssh_key_deletion_desc=حذف این کلید SSH تمام دسترسی های مرتبط با آن را برای حساب کاربری شما از بین خواهد برد. آیا ادامه می دهید؟
+ssh_key_deletion_success=کلید SSH با موفقیت حذف شد!
+add_on=اضافه شده در تاریخ
+last_used=آخرین تاریخ استفاده
+no_activity=اخیراً فعالیتی انجام نشده است
+key_state_desc=این کلید در ۷ روز گذشته استفاده شده است
+token_state_desc=این توکن در ۷ روز گذشته استفاده شده است
+
+two_factor=احراز هویت دوگانه
+two_factor_status=وضعیت:
+two_factor_on=روشن
+two_factor_off=خاموش
+two_factor_enable=فعال
+two_factor_disable=غیرفعال
+two_factor_view_recovery_codes=مشاهده و ذخیرهکد بازیابی در محیطی امن. در صورتیکه به برنامه ی احرازهویت خود دسترسی ندارید،میتوانید از آنها به عنوان کد عبور استفاده کنید.
+two_factor_http=برای عملیات های HTTP/HTTPS مجاز به استفاده از نام کاربری و رمزعبور نمی باشید. لطفا توکن امنیتیخود را ایجاد و به عنوان اعتبارنامه ی خود استفاده کنید. برای مثال :%[3]s
+two_factor_enable_title=فعالکردن احراز هویت دوگانه
+two_factor_scan_qr=لطفا با استفاده از نرم افزار احراز هویت خود تصویر زیر را اسکن کنید:
+two_factor_or_enter_secret=و یا رمز را پارد کنید:
+two_factor_then_enter_passcode=سپس رمز عبور را وارد کنید:
+two_factor_verify=تاییدکنید
+two_factor_invalid_passcode=رمز عبور وارد شده معتبر نیست, لطفا دوباره سعی کنید!
+two_factor_reused_passcode=رمز وارد شده قبلا استفاده شده، لطفا یک عبارت دیگر را امتحان کنید!
+two_factor_enable_error=فعال کردن احراز هویت دوگانه ناموفق بود: %v
+two_factor_enable_success=احراز هویت دوگانه با موفقیت برای حساب شما فعال شد!
+two_factor_recovery_codes_title=کدهای بازیابی احراز هویت دوگانه
+two_factor_recovery_codes_desc=کد های بازیابی زمانی استفاده می شوند که شما به صورت موقت به نرم افزار احراز هویت خود دسترسی ندارید. هر کد بازیابی تنها یکبار قابل استفاده است، لطفا این کد را در محلی امن نگهداری کنید.
+two_factor_regenerate_recovery_codes=ایجاد مجدد کدهای بازیابی
+two_factor_regenerate_recovery_codes_error=ایجاد مجدد کدهای بازیابی ناموفق بود: %v
+two_factor_regenerate_recovery_codes_success=کد جدید بازیابی با موفقیت تولید شد!
+two_factor_disable_title=غیرفعالکردن احراز هویت دوگانه
+two_factor_disable_desc=پس از غیر فعال کردن سیستم احراز هویت دوعاملی ، سطح امنیت حساب کاربری شما کاهش پیدا میکند. آیا ادامه می دهید؟
+two_factor_disable_success=احراز هویت دوعاملی با موفقیت غیر فعال شد!
+
+manage_access_token=مدیریت توکن دسترسی شخصی
+generate_new_token=تولید توکن جدید
+tokens_desc=نشانه ایجاد شده که می تواند برای دسترسی به رابط های برنامه کاربردی Gogs مورد استفاده قرار گیرد.
+access_token_tips=The personal access token may be used as either username or password. It is recommended to use the "x-access-token" as the username and the personal access token as the password for Git applications.
+new_token_desc=هر توکن می تواند دسترسی کامل به حساب شما داشته باشد.
+token_name=نام توکن
+generate_token=تولید توکن
+generate_token_succees=توکن دسترسی شما با موفقیت ساخته شد! از اینکه آن را کپی کرده اید مطمئن شوید ، زیرا در آینده شما قادر به دیدن محدد آن نخواهید بود!
+delete_token=حذف
+access_token_deletion=حذف توکن دسترسی شخصی
+access_token_deletion_desc=حذف این توکن دسترسی شخصی ، تمام دسترسی های مرتبط به برنامه را حذف خواهد کرد. آیا ادامه می دهید؟
+delete_token_success=رمز دسترسی شخصی با موفقیت حذف شد! به روز رسانی نرم افزار خود را نیز فراموش نکنید.
+token_name_exists=نشان امنیتی با این نام از قبل وجود دارد
+
+orgs.none=شما عضو هیچ سازمانی نیستید.
+orgs.leave_title=ترک یک سازمان
+orgs.leave_desc=پس از ترک یک سازمان، دسترسی تان به همه تیم ها و مخزن ها را از دست می دهید. ادامه می دهید؟
+
+repos.leave=ترککردن
+repos.leave_title=ترککردن مخزن
+repos.leave_desc=پس از ترک ، دسترسی خود به مخزن را از دست خواهید داد. آیا ادامه میدهید؟
+repos.leave_success=شما با موفقیت مخزن '%s' را ترک کردید!
+
+delete_account=حذف حساب کاربری
+delete_prompt=این کار حساب کاربری شما را برای همیشه حذف خواهد کرد و این کار غیرقابل بازگشت است!
+confirm_delete_account=تایید حذف
+delete_account_title=حذف حساب کاربری
+delete_account_desc=این حساب به طور دائمی حذف می شود ، آیا ادامه می دهید؟
+
+[repo]
+owner=صاحب
+repo_name=نام مخزن
+repo_name_helper=نام خوب مخزن معمولا از کلمات کلیدی کوتاه و به یاد ماندنی و منحصر به فرد تشکیل شده است.
+visibility=قابل مشاهده بودن
+unlisted=Unlisted
+visiblity_helper=این مخزن خصوصی است
+unlisted_helper=This repository is Unlisted
+visiblity_helper_forced=مدیر سایت تمام مخازن جدید را ملزم کرده است که خصوصی باشند
+visiblity_fork_helper=(تغییر این مقدار تمام انشعاب ها را تحت تاثیر می گذارد)
+clone_helper=برای مشابه سازی نیاز به کمک دارید؟ این راهنمایی را ببینید!
+fork_repo=انشعاب از مخزن
+fork_from=انشعاب از
+fork_visiblity_helper=شما قادر به تغییر قابل رویت بودن یک مخزن انشعاب شده نمی باشید.
+repo_desc=توضیح
+repo_lang=زبان
+repo_gitignore_helper=یک قالب برای .gitignore انتخاب کنید
+license=مجوز
+license_helper=انتخاب فایل مجوز
+readme=راهنما
+readme_helper=یک قالب برای صفحه ی راهنمایی (readme) انتخاب کنید
+auto_init=راه اندازی این مخزن با فایل ها و قالب های منتخب
+create_repo=ایجاد مخزن
+default_branch=شاخه پیشفرض
+mirror_prune=هرس کردن رونوشت
+mirror_prune_desc=حدف هر مرجع دسترسی از راه دور که در مرجع راه دور تا مدت چندانی وجود نخواهد داشت
+mirror_interval=وقفه در رونوشت(ساعت)
+mirror_address=آدرس رونوشت
+mirror_address_desc=لطفا گواهینامه های لازم کاربر را در آدرس قید کنید.
+mirror_last_synced=آخرین همگام سازی
+watchers=دنبالکنندگان
+stargazers=ستاره شناسان
+forks=انشعاب ها
+repo_description_helper=توضیحات مخرن. حداکثر طول ۵۱۲ کاراکتر.
+repo_description_length=کاراکترهای موجود
+
+form.reach_limit_of_creation=مخزن های دارنده حساب به حداکثر تعداد مجاز %d رسیده است.
+form.name_not_allowed=الگو یا نام مخزن %s مجاز نیست.
+
+need_auth=نیاز به مجوز
+migrate_type=نوع انتقال
+migrate_type_helper=این مخزن به عنوان مادر خواهد بود
+migrate_repo=همگام سازی مخزن
+migrate.clone_address=کپی آدرس
+migrate.clone_address_desc=آدرس می تواند از نوع HTTP/HTTPS/GIT باشد.
+migrate.clone_address_desc_import_local=شما همچنین می توانید یک مخزن را با یک آدرس لوکال همگام سازی نمایید.
+migrate.permission_denied=شما مجاز به بارگزاری مخازن لوکال نیستید.
+migrate.invalid_local_path=مسیر محلی غیرمعتبر، این مسیر یا موجود نیست و یا یک دارکتوری نیست.
+migrate.clone_address_resolved_to_blocked_local_address=Clone address resolved to a local network address that is implicitly blocked.
+migrate.failed=انتقال انجام نشد: %v
+
+mirror_from=mirrorاز
+forked_from=برگرفته از
+copy_link=کپی
+copy_link_success=کپی انجام شد!
+copy_link_error=⌘-C یا کنترل-C را برای کپی فشار دهید
+copied=کپی موفقیتامیز بود
+unwatch=زیر نظر نگرفتن
+watch=دنبال کردن
+unstar=برداشتن ستاره
+star=ستاره دار
+fork=انشعاب
+
+no_desc=بدون توضیح
+quick_guide=راهنمای سریع
+clone_this_repo=همسانسازی این مخزن
+create_new_repo_command=ایجاد یک مخزن جدید در خط فرمان
+push_exist_repo=اعمال تغییرات از مخزن موجود از خط فرمان
+bare_message=این مخزن هنوز هیچ محتوایی ندارد.
+
+files=پروندهها
+branch=شاخه
+tree=درخت
+filter_branch_and_tag=فیلتر شعبه یا تگ
+branches=شاخهها
+tags=تگها
+issues=مشکلات
+pulls=درخواست واکشی
+labels=برچسبها
+milestones=نقاط عطف
+commits=کامیتها
+git_branches=شاخهها
+releases=انتشارها
+file_raw=خام
+file_history=تاريخچه
+file_view_raw=مشاهده خام
+file_permalink=لینک دائمی
+file_too_large=حجم این فایل بیشتر از آن است که قابل نمایش باشد
+video_not_supported_in_browser=مرورگر شما از تگ video که در HTML5 تعریف شده است، پشتیبانی نمی کند.
+
+branches.overview=نمای کلی
+branches.active_branches=شاخه های فعال
+branches.stale_branches=شاخه های قدیمی
+branches.all=همه شاخه
+branches.updated_by=%[1]s به روزشده توسط %[2]s
+branches.change_default_branch=تغییر شاخه ی پیش فرض
+branches.default_deletion_not_allowed=Cannot delete the default branch.
+branches.protected_deletion_not_allowed=Cannot delete a protected branch.
+
+editor.new_file=پرونده جدید
+editor.upload_file=بارگذاری پرونده
+editor.edit_file=ویرایش فایل
+editor.preview_changes=پیش نمایش تغییرات
+editor.cannot_edit_non_text_files=امکان ویرایش فایل های غیر متنی وجود ندارد
+editor.edit_this_file=ویرایش این پرونده
+editor.must_be_on_a_branch=شما باید در یک شاخه باشید تا بتوانید در این فایل تغییری ایجاد کنید و یا پیشنهاد تغییر بدهید
+editor.fork_before_edit=شما باید قبل از ویرایش انشعابی از این مخزن ایجاد کنید
+editor.delete_this_file=حذف این پرونده
+editor.must_have_write_access=شما برای ویرایش و یا ایجاد تغییرات در این پرونده نیاز به دسترسی نوشتن دارید
+editor.file_delete_success=فایل '%s' با موفقیت حذف شد!
+editor.name_your_file=نام فایل شما...
+editor.filename_help=برای ایجاد پوشه، نام آن را وارد کرده و سپس عبارت / را در انتهای آن تایپ نمایید. برای حذف پوشه نیز نشانگر را به ابتدای فیلد برده و عبارت \ را تایپ نمایید.
+editor.or=یا
+editor.cancel_lower=انصراف
+editor.commit_changes=اعمال تغییرات
+editor.add_tmpl=افزودن '%s '
+editor.add=افزودن '%s'
+editor.update=به روزرسانی %s
+editor.delete=حذف '%s'
+editor.commit_message_desc=توضیحی تخصصی به دلخواه اضافه نمایید...
+editor.commit_directly_to_this_branch=ثبت تغییر به صورت مستقیم در انشعاب %s .
+editor.create_new_branch=یک شاخه جدید برای این commit ایجاد کنید و درخواست واکشی را شروع کنید.
+editor.new_branch_name_desc=نام انشعاب جدید...
+editor.cancel=لغو
+editor.filename_cannot_be_empty=نام پرونده نمی تواند خالی باشد.
+editor.branch_already_exists=انشعاب '%s' از قبل در این مخزن وجود دارد.
+editor.directory_is_a_file=در این مخزن ، مدخل '%s' در دایرکتوری والد یک فایل است نه یک پوشه.
+editor.file_is_a_symlink=فایل %s یک symlink است و نمتوان با مرورگر آن را ویرایش کرد.
+editor.filename_is_a_directory=نام فایل %s نام یک پوشه ی موجود در این مخزن است.
+editor.file_editing_no_longer_exists=فایل %s که شما در حال ویرایش آن میباشید دیگر در این مخزن وجود ندارد.
+editor.file_changed_while_editing=محتوای فایل از زمانی که شما آن را شروع به ویرایش کرده اید تغییر یافته است.اینجا کلیک کنید تا آنچه را که تغییر کرده است ببینید یا فشردن دکمه ی کامیت تغییرات را در آن بازنویسی کنید.
+editor.file_already_exists=فایلی با نام %s از قبل در مخزن موجود است.
+editor.no_changes_to_show=تغییری برای نمایش وجود ندارد.
+editor.fail_to_update_file=خطا در ساخت/به روزرسانی فایل %. خطای رخ داده : %v
+editor.fail_to_delete_file=خطا در حذف فایل '%s' رخ داده است. خطای رخ داده %v
+editor.add_subdir=افزودن زیرپوشه...
+editor.unable_to_upload_files=عدم موفقیت در آپلود فایل به '%s' با خطا: %v
+editor.upload_files_to_dir=آپلود فایل به '%s'
+
+commits.commit_history=تاریخچه Commit ها
+commits.commits=کامیتها
+commits.search=جستوجو کامیتها
+commits.find=یافتن
+commits.author=نویسنده
+commits.message=پیام
+commits.date=تاریخ
+commits.older=قدیمیتر
+commits.newer=جدیدتر
+
+issues.new=مسئلهی جدید
+issues.new.labels=برچسبها
+issues.new.no_label=بدون برچسب
+issues.new.clear_labels=پاککردن برچسبها
+issues.new.milestone=نقطه عطف
+issues.new.no_milestone=بدون نقطه عطف
+issues.new.clear_milestone=ایجاد نقطه عطف
+issues.new.open_milestone=نقاط عطف باز
+issues.new.closed_milestone=نقاط عطف بسته
+issues.new.assignee=مسئول رسیدگی
+issues.new.clear_assignee=پاک کردن مسئول رسیدگی
+issues.new.no_assignee=بدون مسئول رسیدگی
+issues.create=افزودن مشکل
+issues.new_label=برچسب جدید
+issues.new_label_placeholder=نام برچسب...
+issues.create_label=ایجاد برچسب
+issues.label_templates.title=بارگیری مجموعه ای از برچسب های از پیش تعریف شده
+issues.label_templates.info=هیچ برچسبی وجود ندارد. شما می توانید برای ایجاد یک برچسب جدید بر روی دکمه "برچسب جدید " کلیک کنید یا از مجموعه برچسب های از پیش تعریف شده ی زیر استفاده کنید.
+issues.label_templates.helper=یک مجموعه برچسب انتخاب نمایید
+issues.label_templates.use=استفاده از این مجموعه برچسب
+issues.label_templates.fail_to_load_file=بارگیری الگوی برچسب ها ناموفق بود '%s': '%v'
+issues.open_tab=%d باز
+issues.close_tab=%d بسته
+issues.filter_label=برچسب
+issues.filter_label_no_select=هیچ برچسبی انتخاب نشده
+issues.filter_milestone=Milestone
+issues.filter_milestone_no_select=هیچ نقطه عطفی انتخاب نشده
+issues.filter_assignee=مسئول رسیدگی
+issues.filter_assginee_no_select=بدون مسئول رسیدگی
+issues.filter_type=نوع
+issues.filter_type.all_issues=همه مسائل
+issues.filter_type.assigned_to_you=به شما محول شده
+issues.filter_type.created_by_you=ایجاد شده توسط شما
+issues.filter_type.mentioning_you=اشاره به شما
+issues.filter_sort=مرتب سازی
+issues.filter_sort.latest=جدیدترین
+issues.filter_sort.oldest=قدیمیترین
+issues.filter_sort.recentupdate=اخیرا به روز شده
+issues.filter_sort.leastupdate=به تازگی به روز شده
+issues.filter_sort.mostcomment=بیشترین دیدگاهها
+issues.filter_sort.leastcomment=کمترین دیدگاهها
+issues.opened_by=%[1]s باز شده توسط %[3]s
+issues.opened_by_fake=%[1]s باز شده توسط %[2]s
+issues.previous=قبلی
+issues.next=بعدی
+issues.open_title=بازکردن
+issues.closed_title=بستهشده
+issues.num_comments=%d دیدگاه
+issues.commented_at=`نظر %s`
+issues.delete_comment_confirm=آیا مطمئن هستید که می خواهید این نظر را حذف کنید؟
+issues.no_content=هنوز محتوایی ایجاد نشده.
+issues.close_issue=بستن
+issues.close_comment_issue=ثبت دیدگاه و بستن
+issues.reopen_issue=دوباره بازکردن
+issues.reopen_comment_issue=ثبت دیدگاه و بازکردن دوباره
+issues.create_comment=دیدگاه
+issues.closed_at=`%[2]s بسته شد`
+issues.reopened_at=`%[2]s بازگشایی شد`
+issues.commit_ref_at=`ارجاع این مسئله به کامیت %[2]s`
+issues.poster=نویسنده
+issues.collaborator=همكار
+issues.owner=مالک
+issues.sign_in_require_desc=برای پیوستن به گفتگو، وارد شودید.
+issues.edit=ويرايش
+issues.cancel=لغو
+issues.save=ذخيره
+issues.label_title=نام برچسب
+issues.label_color=رنگ برچسب
+issues.label_count=%d برچسبها
+issues.label_open_issues=%d مشکل حل نشده
+issues.label_edit=ويرايش
+issues.label_delete=حذف
+issues.label_modify=اصلاح برچسب
+issues.label_deletion=حذف برچسب
+issues.label_deletion_desc=حذف این برچسب ، اطلاعات همراه خود را در تمامی مشکل های ایجاد شده که از آن استفاده کرده اند را نیز حذف خواهد کرد. آیا از حذف آن اطمینان دارید ؟
+issues.label_deletion_success=برچسب با موفقیت حذف گردید!
+issues.num_participants=%d مشارکت کننده
+issues.attachment.open_tab=برای مشاهده "%s" در تب جدید، کلیک کنید
+issues.attachment.download=`برای دریافت "%s" کلیک کنید`
+
+pulls.new=ایجاد درخواست ادغام
+pulls.compare_changes=مقایسه تغییرات
+pulls.compare_changes_desc=مقایسه ی دو شاخه و ایجاد درخواست واکشی pull request برای تغییرات.
+pulls.compare_base=پایه
+pulls.compare_compare=مقایسه
+pulls.filter_branch=فیلتر کردن انشعاب
+pulls.no_results=نتیجه ای یافت نشد.
+pulls.nothing_to_compare=هیچ چیز برای مقایسه وجود ندارد زیرا شاخه ی پایه و head همانند اند.
+pulls.nothing_merge_base=چیزی برای مقایسه وجود ندارد زیرا این دو شاخه تاریخچه ی کاملا متفاوتی با یکدیگر دارند.
+pulls.has_pull_request=`درخواست pull request برای این دو هدف انتخابی وجود دارد: %[2]s#%[3]d`
+pulls.create=ایجاد درخواست ادغام
+pulls.title_desc=قصد ادغام %[1]d تغییر را از %[2]s به %[3]s دارد
+pulls.merged_title_desc=%[1]d کامیت ادغام شده از %[2]s به %[3]s %[4]s
+pulls.tab_conversation=گفتگو
+pulls.tab_commits=کامیتها
+pulls.tab_files=پرونده تغییر کرده
+pulls.reopen_to_merge=برای انجام عملیات ادغام، لطفا این درخواست ادغام را مجددا باز نمایید.
+pulls.merged=ادغام شده
+pulls.has_merged=درخواست pull request با موفقیت ادغام شد!
+pulls.data_broken=به علت حذف اطلاعات انشعاب شده٬ داده های pull reqest خراب شده است.
+pulls.is_checking=بررسی تداخل همچنان در جریان است، لطفا چند دقیقه دیگر صفحه را بارگیری مجدد کنید.
+pulls.can_auto_merge_desc=این pull request می تواند به صورت خودکار ادغام شود.
+pulls.cannot_auto_merge_desc=این pull request به علت تداخل نمی تواند به صورت خودکار ادغام شود.
+pulls.cannot_auto_merge_helper=لطفا عملیات ادغام را به صورت دستی انجام دهید تا این تداخل برطرف شود.
+pulls.create_merge_commit=ایجاد یک کامیت برای ادغام سازی
+pulls.rebase_before_merging=Rebase قبل از ادغام
+pulls.commit_description=توضیحات کامیت
+pulls.merge_pull_request=ایجاد درخواست ادغام
+pulls.open_unmerged_pull_exists=`به علت باز بودن pull request (#%d) از مخزنی مشابه و به همراه اطلاعات ادغام مشابه که در انتظار ادغام می باشد، بازگشایی مجدد مقدور نیست`
+pulls.delete_branch=حذف شاخه
+pulls.delete_branch_has_new_commits=به علت وجود commit بعد از merge ، امکان حذف branch وجود ندارد.
+
+milestones.new=نقطه عطف جدید
+milestones.open_tab=%d باز
+milestones.close_tab=%d بسته
+milestones.closed=بسته %s
+milestones.no_due_date=بدون موعد مقرر
+milestones.open=بازکردن
+milestones.close=بستن
+milestones.new_subheader=جهت سازماندهی مسائل ، نقاط عطف ایجاد کنید.
+milestones.create=ایجاد نقطه عطف
+milestones.title=عنوان
+milestones.desc=توضیحات
+milestones.due_date=موعد مقرر (اختیاری)
+milestones.clear=پاک کردن
+milestones.invalid_due_date_format=قالب تاریخ انجام کار نامعتبر است، باید به سبک 'yyyy-mm-dd' باشد.
+milestones.create_success=نقطه عطف %s با موفقیت ساخته شد!
+milestones.edit=ویرایش نقطه عطف
+milestones.edit_subheader=توضیح بهتری برای نقاط عطف استفاده کنید تا دیگر افراد سردرگم نشوند.
+milestones.cancel=لغو
+milestones.modify=ویرایش نقطه عطف
+milestones.edit_success=تغییرات در نقطه عطف '%s' با موفقیت ذخیره شد!
+milestones.deletion=حذف نقطه عطف
+milestones.deletion_desc=با حذف این نقطه عطف ، تمام اطلاعات و مسائل مرتبط به آن حذف خواهد شد. آیا ادامه میدهید?
+milestones.deletion_success=نقطه عطف انتخابی با موفقیت حذف شد!
+
+wiki=ویکی
+wiki.welcome=به ویکی خوش آمدید!
+wiki.welcome_desc=ویکی جایی است که می خواهید پروژه ی خود را با هم دایکیومنت کنید.
+wiki.create_first_page=ایجاد اولین صفحه
+wiki.page=صفحه
+wiki.filter_page=فیلتر صفحه
+wiki.new_page=ایجاد صفحه جدید
+wiki.default_commit_message=نوشتن متنی پیرامون این به روزرسانی (اختیاری).
+wiki.save_page=ذخیره صفحه
+wiki.last_commit_info=%s این صفحه %s را ویرایش کرده است
+wiki.edit_page_button=ويرايش
+wiki.new_page_button=صفحه جدید
+wiki.delete_page_button=حذف صفحه
+wiki.delete_page_notice_1=این کار باعث حذف صفحه ی "%s" می شود. لطفا مطمئن باشید.
+wiki.page_already_exists=صفحه ی ویکی با همین نام موجود است.
+wiki.pages=صفحهها
+wiki.last_updated=آخرین به روزرسانی در %s
+
+settings=تنظيمات
+settings.options=گزینهها
+settings.collaboration=همکاری
+settings.collaboration.admin=مدیریت
+settings.collaboration.write=نوشتن
+settings.collaboration.read=خواندن
+settings.collaboration.undefined=تعریفنشده
+settings.branches=شاخهها
+settings.branches_bare=شما نمی توانید شاخه های مخازن تهی را مدیریت کنید. ابتدا محتوایی را push کنید.
+settings.default_branch=شاخه پیشفرض
+settings.default_branch_desc=شاخه پیش فرض، به عنوان شاخه ی پایه برای کامیت ، درخواست واکشی و ویرایش آنلاین درنظر گرفته می شود.
+settings.update=بهروز رسانی
+settings.update_default_branch_unsupported=تغییر شاخه ی پیش فرض با نسخه ی Git روی سرور پشتیبانی نمی شود.
+settings.update_default_branch_success=شاخه پیش فرض این مخزن با موفقیت به روز شد!
+settings.protected_branches=شاخه های حفاظت شده
+settings.protected_branches_desc=محافظت از شاخه ها در برابر force push ، حذف تصادفی و کامیت کنندگان کد که در لیست سفید اند.
+settings.choose_a_branch=یک شاخه را انتخاب کنید...
+settings.branch_protection=حفاظت از شاخه
+settings.branch_protection_desc=لطفا گزینه ی محافظت برای شاخه ی %s انتخاب کنید.
+settings.protect_this_branch=محافظت از این شاخه
+settings.protect_this_branch_desc=غیرفعال سازی force push و ممانعت از حذف.
+settings.protect_require_pull_request=مستلزم ایجاد درخواست واکشی (pull request) بجای بارگذاری مستقیم
+settings.protect_require_pull_request_desc=برای جلوگیری از push مستقیم در این شاخه، این گزینه را فعال کنید. کامیت ها باید در شاخه های حفاظت نشده push شوند و از طریق pull request ادغام می شوند.
+settings.protect_whitelist_committers=لیست سفید شامل افرادی که میتوانند در این شاخه push انجام دهند
+settings.protect_whitelist_committers_desc=افراد یا تیم ها را برای push مستقیم به لیست سفید این شاخه بیفزایید. کاربران لیست سفید الزام بررسی برای درخواست pull request را ندارند.
+settings.protect_whitelist_users=کاربرانی که میتوانند در این شاخه push کنند
+settings.protect_whitelist_search_users=جستجوی کاربران
+settings.protect_whitelist_teams=تیم هایی که اعضای آنها می توانند در این شاخه push کنند
+settings.protect_whitelist_search_teams=جستجوی تیم ها
+settings.update_protect_branch_success=گزینه های حفاظتی این شاخه با موفقیت به روز شد!
+settings.hooks=Webhooks
+settings.githooks=Git Hooks
+settings.basic_settings=تنظیمات پایه
+settings.mirror_settings=تنظیمات mirror
+settings.sync_mirror=هماکنون همگامسازی کنید
+settings.mirror_sync_in_progress=همگام سازی mirror در جریان است، لطفا تا دقیقه ای دیگر صفحه خود را رفرش کنید.
+settings.site=سایت رسمی
+settings.update_settings=به روزرسانی تنظیمات
+settings.change_reponame_prompt=این تغییر تمامی لینک های به این مخزن را تحا تاثیر میگذارد.
+settings.advanced_settings=تنظیمات پیشرفته
+settings.wiki_desc=فعال کردن سیستم ویکی
+settings.use_internal_wiki=استفاده از ویکی درون برنامه ای
+settings.allow_public_wiki_desc=مجاز بودن دسترسی به ویکی درحالتی که مخزن خصوصی است
+settings.use_external_wiki=استفاده از ویکی های بیرونی
+settings.external_wiki_url=آدرس خارجی ویکی
+settings.external_wiki_url_desc=زمانی که کاربران بر رور زبانه کلیک کنند به آدرس URL هدایت میشوند.
+settings.issues_desc=فعال سازی سیستم رهگیری مسائل issue tracker
+settings.use_internal_issue_tracker=استفاده از سیستم سبک پیگیری مسائل داخلی
+settings.allow_public_issues_desc=دسترسی عمومی دادن به ویکی زمانیکه مخزن در حالت خصوصی است
+settings.use_external_issue_tracker=استفاده از سیستم رهگیری مسئله خارجی
+settings.external_tracker_url=آدرس سیستم خارجی رهگیری مسایل
+settings.external_tracker_url_desc=کاربران به آدرس هدایت می شوند زمانیکه روی زبانه جدید کلیک کنند.
+settings.tracker_url_format=قالب آدرس سیستم Issue Tracker خارجی
+settings.tracker_issue_style=سبک نامگذاری Issue Tracker خارجی:
+settings.tracker_issue_style.numeric=عددی
+settings.tracker_issue_style.alphanumeric=عددی و الفبایی
+settings.tracker_url_format_desc=شما میتوانید از {user} {repo} {index} برای نام کاربری ، نام مخزن و صفحه ی اول بخش مسائل استفاده کنید.
+settings.pulls_desc=پول ریکویست ها را فعال کنید تا برای مخازن و شاخه ها مشارکت را قبول کنید
+settings.pulls.ignore_whitespace=نادیده گرفتن تغییرات در فضاهای خالی
+settings.pulls.allow_rebase_merge=مجاز کردن rebase برای ادغام کردن کامیت ها
+settings.danger_zone=منطقه خطر
+settings.cannot_fork_to_same_owner=نمی توانید انشعاب به مالک مخزن ایجاد کنید.
+settings.new_owner_has_same_repo=مالک جدید یک مخزن با همین نام دارد. لطفاً نام دیگری را انتخاب کنید.
+settings.convert=تبدیل به یک مخزن عادی
+settings.convert_desc=شما می توانید این مخزن برگرفته شده را به یک مخزن معمولی تبدیل نمایید. این عمل بازگشت ناپدر خواهد بود.
+settings.convert_notices_1=- این عملیات مخزن برگرفته شده را به یک مخزن معمولی تبدیل خواهد نمود و این مساله بازگشت ناپذیر است.
+settings.convert_confirm=تایید تبدیل
+settings.convert_succeed=مخزن با موفقیت به حالت عادی تبدیل شده است.
+settings.transfer=انتقال مالکیت
+settings.transfer_desc=انتقال این مخزن به کاربر یا سازمانی که در آن شما دسترسی مدیریت دارید.
+settings.transfer_notices_1=- درصورتیکه مالک جدید کاربر انفرادی است ، دسترسی شما ازبین خواهد رفت.
+settings.transfer_notices_2=- درصورتیکه مالک جدید یک سازمان باشد ، و شما یکی از مالکان آن باشید، دسترسی شما حفظ خواهد شد.
+settings.transfer_form_title=لطفا جهت تایید عملیات ، اطلاعات زیر را وارد کنید:
+settings.wiki_delete=پاک کردن دادههای ویکی
+settings.wiki_delete_desc=پس از حذف اطلاعات عمومی مخزن، دیگر قابل بازیابی نخواهند بود. لطفا دقت نمایید.
+settings.wiki_delete_notices_1=- این مورد اطلاعات عمومی را برای مخزن %s ، پاکسازی و غیرفعال می نماید
+settings.wiki_deletion_success=اطلاعات عمومی درباره مخزن با موفقیت پاکسازی شد.
+settings.delete=حذف این مخزن
+settings.delete_desc=هنگامی که یک مخزن حذف میشود ، راه برگشتی وجود ندارد. لطفا مطمئن باشید.
+settings.delete_notices_1=این عملیات غیرقابل برگشت است.
+settings.delete_notices_2=- این عملیات تمامی اطلاعات این مخزن شامل اطلاعات گیت ، مسائل ، نظرات و دسترسی همکاران را برای همیشه پاک خواهد کرد.
+settings.delete_notices_fork_1=پس از حذف ارتباط همه ی نسخه های برگرفته شده قطع خواهد شد.
+settings.deletion_success=مخزن با موفقیت حذف شد!
+settings.update_settings_success=تنظیمات مخزن با موفقیت به روز شد.
+settings.transfer_owner=مالک جدید
+settings.make_transfer=انتقال دادن
+settings.transfer_succeed=مالکیت مخزن با موفقیت انتقال یافت.
+settings.confirm_delete=تایید حذف
+settings.add_collaborator=اضافهکردن همکار جدید
+settings.add_collaborator_success=همکار جدید اضافه شد.
+settings.delete_collaborator=حذف
+settings.collaborator_deletion=حذف همكار
+settings.collaborator_deletion_desc=این کاربر پس از حذف دیگر دسترسی برای همکاری در این مخرن را نخواهد داشت. آیا ادامه میدهید؟
+settings.remove_collaborator_success=همكار حذف شد.
+settings.search_user_placeholder=جستجوی کاربر...
+settings.org_not_allowed_to_be_collaborator=سازمان ها را نمیتوان به عنوان همکار افزود.
+settings.hooks_desc=Webhook ها مانند یک درخواست POST در HTTP اند. هرگاه رخدادی در gogs رخ می دهد، ما نوتیفیکیشنی برای هاستی که شما تعریف کرده اید ارسال می کنیم. برای اطلاعات بیشتر راهنمای webhook را مطالعه کنید.
+settings.webhooks.add_new=یک webhook جدید اضافه کن:
+settings.webhooks.choose_a_type=نوع را انتخاب کن...
+settings.add_webhook=اضافهکردن Webhook
+settings.webhook_deletion=حذف Webhook
+settings.webhook_deletion_desc=حذف این webhook باعث می شود که تمامی اطلاعات آن و تاریخچه ی تمام دلیوری های آن حذف شود. آیا ادامه میدهید؟
+settings.webhook_deletion_success=Webhook با موفقیت حذف شد!
+settings.webhook.test_delivery=تست تحویل
+settings.webhook.test_delivery_desc=ارسال یک رخداد push غیر واقعی برای تست تنظیمات webhook
+settings.webhook.test_delivery_success=Webhook تست به صف تحویل افزوده شد. ممکن است چند ثانیه ای طول بکشد تا اینکه در لیست تاریخچه تحویل ها قرار گیرد.
+settings.webhook.redelivery=باز تحویل
+settings.webhook.redelivery_success=ارسال %s به لیست تحویل مجددا افزوده شد. ممکن است چند ثانیه ای طول بکشد تا در تارخچه تحویل به روزرسانی شود.
+settings.webhook.request=درخواست
+settings.webhook.response=پاسخ
+settings.webhook.headers=هدر
+settings.webhook.payload=Payload
+settings.webhook.body=بدنه
+settings.webhook.err_cannot_parse_payload_url=Cannot parse payload URL: %v
+settings.webhook.url_resolved_to_blocked_local_address=Payload URL resolved to a local network address that is implicitly blocked.
+settings.githooks_desc=Git Hook ها توسط تیم Git ایجاد شده اند، شما می توانید فایل hook های پشتیبانی شده را ویرایش کنید تا بتوانید عملیات دلخواه خودتان را انجام دهید.
+settings.githook_edit_desc=در صورتیکه hook غیرفعال باشد، محتوای نمونه ای موجود در آن ارائه خواهد شد. برای اینکه به کلی غیر فعال شود، محتوا را پاک کنید تا خالی شود.
+settings.githook_name=نام hook
+settings.githook_content=محتوای هوک
+settings.update_githook=به روزرسانی hook
+settings.add_webhook_desc=سیستم Gogs یک درخواست POST به آدرس تعیین شده توسط شما ارسال می کند، همراه با جزئیات مربوط به رویدادی که رخ داده است. همچنین شما میتوانید نوع داده ای hook را زمانی که اجرا میشود تعیین کنید(JSON, x-www-form-urlencoded, XML, ...). اطلاعات بیشتر در راهنمای webhook موجود است.
+settings.payload_url=آدرس Payload
+settings.content_type=نوع محتوا Content-Type
+settings.secret=رمز
+settings.secret_desc=کد امنیتی در هِدری به نام X-Gogs-Signature با کدگذاری SHA256 HMAC در پیلود ارسال شد.
+settings.slack_username=نام کاربری
+settings.slack_icon_url=آدرس آیکون
+settings.slack_color=رنگ
+settings.event_desc=این webhook چه زمان می بایست راه اندازی شود؟
+settings.event_push_only=فقط رخداد های push.
+settings.event_send_everything=من به همه چیز نیاز دارم.
+settings.event_choose=اجازه دهید انتخاب کنم به چه چیزی نیاز است.
+settings.event_create=ایجاد
+settings.event_create_desc=شاخه یا برچسب ایجاد شد
+settings.event_delete=حذف
+settings.event_delete_desc=شاخه یا برچسب حذف شده
+settings.event_fork=انشعاب
+settings.event_fork_desc=انشعاب از مخزن ایجاد شد
+settings.event_push=درج کردن
+settings.event_push_desc=درج در مخزن توسط گیت
+settings.event_issues=مسائل
+settings.event_issues_desc=مسئله ای باز شده ، بسته شده، بازگشایی شده، ویرایش شده، به فردی تخصیص یافته، لغو تخصیص از فردی شده، برچسب آن به روزرسانی شده، برچسب آن پاک شده، نقطه عطف برای آن تعیین شده یا نقطه عطف از آن حذف شده.
+settings.event_pull_request=درخواست ادغام
+settings.event_pull_request_desc=Pull request باز، بسته، بازگشایی شده، ویرایش شده، تخصیص داده به فردی، لغو تخصیص از فرد شده، برچسب آن به روز شده، برچسبی برای آن ساخته شده، نقطه عطف برای آن تعیین شده، نقطه عطف تعیین شده آن حذف شده، یا همگام سازی شده.
+settings.event_issue_comment=نظرات در مسئله
+settings.event_issue_comment_desc=نظر در مسئله ایجاد شد، ویرایش شد یا حذف شد.
+settings.event_release=انتشار نسخه
+settings.event_release_desc=Release در مخزن منتشر شد.
+settings.active=فعال
+settings.active_helper=اطلاعات در مورد رویدادی که هوک را اجرا نموده نیز منتقل خواهند شد.
+settings.add_hook_success=یک هوک تحت وب جدید افزوده شده است.
+settings.update_webhook=به روزرسانی webhook
+settings.update_hook_success=Webhook به روز شد.
+settings.delete_webhook=حذف Webhook
+settings.recent_deliveries=دلیوری های اخیر
+settings.hook_type=نوع هوک
+settings.add_slack_hook_desc=پشتیبانی ازSlack را به مخرن خود بیفزایید.
+settings.add_discord_hook_desc=پشتیبانی از Discord را به مخرن خود بیفزایید.
+settings.add_dingtalk_hook_desc=پشتیبانی از Dingtalk را به مخرن خود بیفزایید.
+settings.slack_token=توکن
+settings.slack_domain=دامنه
+settings.slack_channel=کانال
+settings.deploy_keys=کلید های Deploy
+settings.deploy_keys_helper=درصورتیکه به دنبال افزودن کلید عمومی خود هستید، آنها را از قسمت تنظیمات حساب بیفزایید.
+settings.add_deploy_key=افزودن کلید Deploy
+settings.deploy_key_desc=دسترسی به کلید های Deploy به صورت فقط خواندنی است. آنها همانند کلید های SSH برای حساب کاربری نیستند.
+settings.no_deploy_keys=تاکنون کلید deploy نیفزوده اید.
+settings.title=عنوان
+settings.deploy_key_content=محتوا
+settings.key_been_used=محتوای کلید Deploy مورد استفاده قرار گرفته است.
+settings.key_name_used=کلیدDeploy با همین نام موجود است.
+settings.add_key_success=کلیدDeploy جدید %s با موفقیت افزوده شد!
+settings.deploy_key_deletion=حذف کلید Deploy
+settings.deploy_key_deletion_desc=با حذف کلید Deploy، تمام دسترسی ها به این مخزن از طریق این کلید از بین میرود. آیا ادامه می دهید؟
+settings.deploy_key_deletion_success=کلید Deploy با موفقیت حذف شد!
+settings.description_desc=توضیحات مخرن. حداکثر طول ۵۱۲ کاراکتر.
+settings.description_length=کاراکترهای موجود
+
+diff.browse_source=فهرست منبع
+diff.parent=والد
+diff.commit=کامیت
+diff.data_not_available=اطلاعات تفاوت ها موجود نیست.
+diff.show_diff_stats=نمایش آمار تفاوت ها
+diff.show_split_view=مشاهده تقسیم شده
+diff.show_unified_view=نمای یکپارچه
+diff.stats_desc= %dفایلهای تغییر یافته به همراه%d افزوده شده و %d حذف شده
+diff.bin=BIN
+diff.view_file=مشاهده فایل
+diff.file_suppressed=تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+diff.too_many_files=برخی فایل ها در این مقایسه diff نمایش داده نمی شوند زیرا تعداد فایل ها بسیار زیاد است
+
+release.releases=انتشارها
+release.new_release=نسخه جدید
+release.draft=پیشنویس
+release.prerelease=پیش-انتشار
+release.edit=ویرایش
+release.ahead=%d تغییر در %s پس از این انتشار
+release.source_code=کُد منبع
+release.new_subheader=انتشار نسخه ها را برای تکرار محصول.
+release.edit_subheader=لاگ جزیی تغییرات به کاربران کمک میکند تا بهبود های ایجاد شده را به خوبی بفهمند.
+release.tag_name=نام تگ
+release.target=هدف
+release.tag_helper=از تگ های موجود استفاده کنید یا تگ جدیدی را هنگام انتشار ایجاد کنید.
+release.title=عنوان
+release.content=محتوا
+release.write=نوشتن
+release.preview=پیشنمایش
+release.loading=درحال بارگذاری...
+release.prerelease_desc=این یک پیش نشر است
+release.prerelease_helper=ما اشاره خواهیم کرد که این نسخه آماده ی نهایی محصول نیست.
+release.cancel=لغو
+release.publish=نشر نسخه انتشار یافته
+release.save_draft=ذخیره پیش نویس
+release.edit_release=ویرایش انتشار
+release.delete_release=این انتشار را حذف کن
+release.deletion=حذف نسخه انتشار
+release.deletion_desc=با حذف این نسخه از انتشار، تگ منتاظر در Git نیز حذف خواهد شد. آیا ادامه میدهید؟
+release.deletion_success=نسخه ی انتشار(release) با موفقیت حذف شد!
+release.tag_name_already_exist=انتشاری با این نام موجود است.
+release.tag_name_invalid=نام برچسب معتبر نمی باشد.
+release.downloads=دانلودها
+
+[org]
+org_name_holder=نام سازمان
+org_full_name_holder=نام کامل سازمان
+org_name_helper=بهترین نام برای سازمان، نام کوتاه و به یاد ماندنی است.
+create_org=سازمان جدید
+repo_updated=به روز رسانی شده
+people=افراد
+invite_someone=دعوت از کسی
+teams=تیمها
+lower_members=اعضا
+lower_repositories=مخازن
+create_new_team=ایجاد تیم جدید
+org_desc=توضیح
+team_name=نام تیم
+team_desc=توضیح
+team_name_helper=ما از این نام برای اشاره به این تیم در گفتوگو ها استفاده میکنیم.
+team_desc_helper=این تیم درکل در مورد چیست؟
+team_permission_desc=این تیم چه سطح دسترسی میتواند داشته باشد؟
+
+form.name_not_allowed=نام سازمان یا الگوی q% مجاز نیست.
+form.team_name_not_allowed=نام تیم یا الگوی %q مجاز نیست.
+
+settings=تنظيمات
+settings.options=گزینهها
+settings.full_name=نام کامل
+settings.website=وبسایت
+settings.location=مکان
+settings.update_settings=به روزرسانی تنظیمات
+settings.update_setting_success=تنظیمات سازمان با موفقیت به روز شد.
+settings.change_orgname_prompt=این تغییر لینک های بیرونی به سازمان را تحت تاثیر میگذارد.
+settings.update_avatar_success=تغییرات تصویر نمایه سازمان با موفقیت به روز شد.
+settings.delete=حذف سازمان
+settings.delete_account=حذف این سازمان
+settings.delete_prompt=سازمان برای همیشه حذف خواهد شد و این قابل برگشت نخواهد بود!
+settings.confirm_delete_account=تایید حذف
+settings.delete_org_title=حذف سازمان
+settings.delete_org_desc=این سازمان به طور دائمی حذف می شود ، آیا ادامه می دهید؟
+settings.hooks_desc=افزودن webhook های که برای تمام مخازن این سازمان اجرا میشود.
+
+members.membership_visibility=قابل مشاهده بودن عضویت:
+members.public=عمومی
+members.public_helper=خصوصی کردن
+members.private=خصوصی
+members.private_helper=عمومی کردن
+members.member_role=نقش عضو:
+members.owner=مالک
+members.member=عضو
+members.remove=حذف
+members.leave=ترککردن
+members.invite_desc=افزودن عضو جدید به %s:
+members.invite_now=درخواست حضور
+
+teams.join=پیوستن
+teams.leave=ترککردن
+teams.read_access=دسترسی خواندن
+teams.read_access_helper=این تیم قادر خواهد بود مخازن خود را مشاهده و کپی نماید.
+teams.write_access=دسترسی نوشتن
+teams.write_access_helper=این تیم قادر خواهد بود مخازن را مشاهده و تغییراتی را در آن ایجاد نماید.
+teams.admin_access=دسترسی مدیر
+teams.admin_access_helper=این تیم قادر است که در تمام مخازنش pull/push انجام دهد، و همچنین همکاران دیگری را به تیم بیفزایند.
+teams.no_desc=توضیحی برای این تیم ثبت نشدهاست
+teams.settings=تنظيمات
+teams.owners_permission_desc=مالک ها دسترسی کامل به تمام مخازن و دسترسی مدیریت به سازمان را دارند.
+teams.members=اعضای تیم
+teams.update_settings=به روزرسانی تنظیمات
+teams.delete_team=حذف این تیم
+teams.add_team_member=افزودن عضو به تیم
+teams.delete_team_title=حذف تیم
+teams.delete_team_desc=با حذف این تیم اعضای آن دسترسی خود به برخی مخازن را از دست خواهند داد. آیا از ادامه این کار اطمینان دارید ؟
+teams.delete_team_success=تیم انتخابی با موفقیت حذف گردید.
+teams.read_permission_desc=این تیم دسترسی خواندن خواهد داشت: اعضا خواهند توانست مخازن را مشاهده و کپی نمایند.
+teams.write_permission_desc=این تیم دسترسی نوشتن خواهد داشت: اعضا خواهند توانست مخازن تیم را خوانده و تغییراتی در آنها اعمال نمایند.
+teams.admin_permission_desc=این تیم دسترسی نوشتن خواهد داشت: اعضا خواهند توانست مخازن تیم را خوانده ، تغییراتی در آنها اعمال کرده و یا همکارانشان را به مخازن اضافه نمایند.
+teams.repositories=مخازن تیم
+teams.search_repo_placeholder=جستجوی مخزن...
+teams.add_team_repository=افزودن مخزن تیمی
+teams.remove_repo=حذف
+teams.add_nonexistent_repo=مخزنی را که شما قصد افزودن آن را دارید موجود نیست، لطفا ابتدا آن را ایجاد کنید.
+
+[admin]
+dashboard=داشبورد
+users=کاربران
+organizations=سازمان ها
+repositories=مخازن
+authentication=اهراز هویت
+config=پیکربندی
+notices=هشدارهای سیستم
+monitor=مانیتورینگ
+first_page=اولین
+last_page=آخرين
+total=مجموع: %d
+
+dashboard.build_info=اطلاعات ساخت
+dashboard.app_ver=نسخه برنامه
+dashboard.git_version=نسخهی Git
+dashboard.go_version=نسخهی Go
+dashboard.build_time=زمان ساخت
+dashboard.build_commit=کامیت ساخت
+dashboard.statistic=آمار
+dashboard.operations=عملیات
+dashboard.system_status=سیستم مانیتور وضعیت
+dashboard.statistic_info=دیتابیس gogs شامل %d کاربران, %d سازمان ها, %d کلید های عمومی, %d مخازن, %d مشاهده ها, %d ستاره دار ها, %d فعالیت ها, %d دسترسی ها, %d مسائل, %d نظرات, %d حساب ها کاربری شبکه های اجتماعی, %d دنیال کردن ها, %dmirror, %d ریلیز ها, %d نقاط ورود به سیستم, %d webhooks, %d نقاط عطف یا milestone ها, %d برچسب, %d hook وظایف, %d تیم, %d به روزرسانی ها وظایف افراد, %d پیوست هاست.
+dashboard.operation_name=نام عملیات
+dashboard.operation_switch=سویچ
+dashboard.select_operation_to_run=Please select operation to run
+dashboard.operation_run=اجرا
+dashboard.clean_unbind_oauth=پاک کردن OAuthe های ناخواسته
+dashboard.clean_unbind_oauth_success=تمامی oAuth های غیرمتصل با موفقیت حذف شدند.
+dashboard.delete_inactivate_accounts=حذف تمام حساب های کاربری غیرفعال
+dashboard.delete_inactivate_accounts_success=تمامی حساب های کاربری غیرفعال حذف شدند.
+dashboard.delete_repo_archives=حذف تمامی مخازن آرشیو
+dashboard.delete_repo_archives_success=همه مخازن آرشیو با موفقیت حذف شدند.
+dashboard.delete_missing_repos=حذف تمامی رکورد های مخازنی که فاقد فایل Git می باشند
+dashboard.delete_missing_repos_success=رکورد های تمام مخازنی که فاقد فایل Git می باشند با موفقیت انجام شد.
+dashboard.git_gc_repos=انجام جمع آوری زباله در مخازن
+dashboard.git_gc_repos_success=عولیات garbage collection در تمام مخازن با موفقیت انجام شد.
+dashboard.resync_all_sshkeys=بازنویسی فایل '.ssh/authorized_keys' (توجه: کلید های غیر Gogs از بین خواهند رفت)
+dashboard.resync_all_sshkeys_success=تمام کلید های عمومی با موفقیت بازنویسی شدند.
+dashboard.resync_all_hooks=همگام سازی مجدد hook های pre-receive و update و post-receive برای تمامی مخازن
+dashboard.resync_all_hooks_success=همگام سازی مجدد hook های pre-receive و update و post-receive برای تمامی مخازن با موفقیت انجام شد.
+dashboard.reinit_missing_repos=بازتعریف مخازنی که فایل های Git آنها از دست رفته است
+dashboard.reinit_missing_repos_success=بازتعریف مخازنی که فایل های Git آنها از دست رفته است با موفقی انجام شد.
+
+dashboard.server_uptime=آپ تایم سرور
+dashboard.current_goroutine=Goroutine های فعلی
+dashboard.current_memory_usage=میزان استفاده فعلی از حافظه
+dashboard.total_memory_allocated=کل حافظه اختصاص داده شده
+dashboard.memory_obtained=حافظه به دست آمده
+dashboard.pointer_lookup_times=زمان سنج Pointer Lookup
+dashboard.memory_allocate_times=زمان های تخصیص حافظه
+dashboard.memory_free_times=زمان های آزادی حافظه
+dashboard.current_heap_usage=میزان مصرف پشته فعلی
+dashboard.heap_memory_obtained=حافظه به دست آمده
+dashboard.heap_memory_idle=بیکار بودن Heap Memory
+dashboard.heap_memory_in_use=Heap Memory درحال استفاده
+dashboard.heap_memory_released=Heap Memory آزادسازی شد
+dashboard.heap_objects=اشیاء Heap
+dashboard.bootstrap_stack_usage=میزان استفاده از پشته ی Bootstrap
+dashboard.stack_memory_obtained=حافظه پشته به دست آمده
+dashboard.mspan_structures_usage=میزان استفادهی ساختار های MSpan
+dashboard.mspan_structures_obtained=ساختار های MSpan به دست آمده
+dashboard.mcache_structures_usage=میزان استفاده از ساختار های MCache
+dashboard.mcache_structures_obtained=ساختار های MCache به دست آمده
+dashboard.profiling_bucket_hash_table_obtained=Profiling Bucket Hash Table به دست آمده
+dashboard.gc_metadata_obtained=متادیتاهای بدست امده از GC
+dashboard.other_system_allocation_obtained=تخصیص های حافظه در سایر قسمت های سیستم
+dashboard.next_gc_recycle=بازیافت GC بعدی
+dashboard.last_gc_time=زمان از آخرین GC
+dashboard.total_gc_time=کل زمان مکث GC
+dashboard.total_gc_pause=کل زمان مکث GC
+dashboard.last_gc_pause=آخرین مکث در GC
+dashboard.gc_times=زمان های GC
+
+users.user_manage_panel=پنل مدیریت کاربر
+users.new_account=ایجاد حساب جدید
+users.name=نام
+users.activated=فعال شده
+users.admin=مدیر
+users.repos=مخازن
+users.created=ایجاد شده
+users.send_register_notify=ارسال اعلامیه ثبت نام به کاربر
+users.new_success=حساب جدید '%s' با موفقیت ایجاد شده است.
+users.edit=ويرايش
+users.auth_source=نوع تأیید اعتبار
+users.local=محلی
+users.auth_login_name=نام سیستم احراز هویت ورود
+users.password_helper=برای عدم تغییر خالی رها کنید.
+users.update_profile_success=حساب شما با موفقیت به روز شد.
+users.edit_account=ویرایش حساب
+users.max_repo_creation=حداکثر مخزن قابل ساخت
+users.max_repo_creation_desc=(برای استفاده از محدودیت پیش فرض ، مقدار -1 را تنظیم کنید)
+users.is_activated=حساب کاربری فعال شد
+users.prohibit_login=این حساب برای ورود به سیستم ممنوع است
+users.is_admin=این حساب دارای مجوز مدیر است
+users.allow_git_hook=این حساب دارای مجوز برای ایجاد Git Hook است
+users.allow_import_local=این حساب مجوز وارد کردن مخازن محلی را دارد
+users.update_profile=به روز رسانی مشخصات حساب
+users.delete_account=حذف حساب کاربری
+users.still_own_repo=حساب شما در حال حاضر حداقل مالک یک مخزن است، شما ابتدا باید آن ها را حذف یا منتقل کنید.
+users.still_has_org=حساب شما در حال حاضر حداقل عضو یک سازمان است، شما ابتدا باید عضویت خود را حذف یا سازمان را ترک کنید.
+users.deletion_success=حساب با موفقیت حذف شده است!
+
+orgs.org_manage_panel=پانل مدیریت سازمان
+orgs.name=نام
+orgs.teams=تیمها
+orgs.members=اعضاء
+
+repos.repo_manage_panel=پنل مدیریت مخزن
+repos.owner=مالک
+repos.name=نام
+repos.private=خصوصی
+repos.watches=تماشا شده
+repos.stars=ستاره ها
+repos.issues=مسائل
+repos.size=اندازه
+
+auths.auth_sources=منابع احراز هویت
+auths.new=اضافه کردن منبع جدید
+auths.name=نام
+auths.type=نوع
+auths.enabled=فعال شده
+auths.default=پیش فرض
+auths.updated=به روز رسانی شده
+auths.auth_type=نوع تأیید اعتبار
+auths.auth_name=نام مجوز احراز هویت
+auths.security_protocol=پروتکل امنیتی
+auths.domain=دامنه
+auths.host=میزبان
+auths.port=پورت
+auths.bind_dn=DN متصل شده
+auths.bind_dn_helper=شما قادرید که از %s به عنوان یک placeholder برای نام کاربری استفاده کنید، برای مثال DOM\%s
+auths.bind_password=اتصال رمز عبور
+auths.bind_password_helper=اخطار: این رمز عبور به صورت متن ساده ذخیره می شود. برای حساب های کابری با دسترسی های زیاد استفاده نکنید.
+auths.user_base=پایگاه جستجوی کاربر
+auths.user_dn=کاربر DN
+auths.attribute_username=ویژگی نام کاربری
+auths.attribute_username_placeholder=برای استفاده از مقدار نام کاربری در فرم ورود، این مقدار را خالی بگذارید.
+auths.attribute_name=ویژگی نام
+auths.attribute_surname=ویژگی نام خانوادگی
+auths.attribute_mail=ویژگی ایمیل
+auths.verify_group_membership=تایید عضویت در گروه
+auths.group_search_base_dn=جستجوی گروهی Base DN
+auths.group_filter=فیلتر سازی گروه
+auths.group_attribute_contain_user_list=گروه خصیصه ای شامل لیستی از کاربران
+auths.user_attribute_listed_in_group=خصیصه های کاربران لیست شده در گروه
+auths.attributes_in_bind=واکشی خصیصه های Bind DN در متن زمینه
+auths.filter=فیلترسازی کاربر
+auths.admin_filter=فیلتر سازی مدیر
+auths.ms_ad_sa=Ms Ad SA
+auths.smtp_auth=نوع تاييد اعتبار SMTP
+auths.smtphost=SMTP میزبان
+auths.smtpport=پورت SMTP
+auths.allowed_domains=دامنه های مجاز
+auths.allowed_domains_helper=درصورت تمایل به محدود نکردن هیچ دامنه ای، این فیلد را خالی بگذارید. درصورت نیاز به ورود چندین دامنه، آنها را با کاما ',' از یکدیگر جدا کنید.
+auths.enable_tls=فعال کردن رمزگذاری TLS
+auths.skip_tls_verify=صرف نظر از اعتبار سنجی TLS
+auths.pam_service_name=نام سرویس PAM
+auths.enable_auto_register=فعال سازی ثبت نام خودکار
+auths.edit=ویرایش تنظیمات تأیید اعتبار
+auths.activated=متد احراز هویت فعال شده است
+auths.default_auth=این احراز هویت پیش فرض منبع ورود می باشد
+auths.new_success=متد احرازهویت %s با موفقیت افزوده شد.
+auths.update_success=تنظیمات سیستم احرازهویت با موفقیت به روز شد.
+auths.update=به روزرسانی تنظیمات سیستم احراز هویت
+auths.delete=حذف این متد احراز هویت
+auths.delete_auth_title=حذف متد احراز هویت
+auths.delete_auth_desc=این سیستم احراز هویت حذف خواهد شد، آیا ادامه میدهید؟
+auths.still_in_used=این متد اعتبار احرازهویت هنوز توسط برخی از کاربران در حال استفاده است، لطفا ابتدا این کاربران را حذف کنید یا متد احرازهویت آنان را تغییر دهید.
+auths.deletion_success=متد احرازهویت با موفقیت حذف شد!
+auths.login_source_exist=مدخل لاگین %s قبلا موجود بوده است.
+auths.github_api_endpoint=نشانه پایانی API
+
+config.not_set=(تنظیم نشده)
+config.server_config=پیکربندی سرور
+config.brand_name=نام برند
+config.run_user=کاربر در حال اجرا
+config.run_mode=حالت اجرا
+config.server.external_url=آدرس خارجی
+config.server.domain=دامنه
+config.server.protocol=پروتکل
+config.server.http_addr=آدرس HTTP
+config.server.http_port=پورت HTTP
+config.server.cert_file=فایل گواهی
+config.server.key_file=فایل کلید
+config.server.tls_min_version=کمترین نسخه TLS
+config.server.unix_socket_permission=مجوز سوکت یونیکس
+config.server.local_root_url=Local root URL
+config.server.offline_mode=حالت آفلاین
+config.server.disable_router_log=غیرفعال کردن لاگ مسیریاب
+config.server.enable_gzip=فعال کردن Gzip
+config.server.app_data_path=Application data path
+config.server.load_assets_from_disk=Load assets from disk
+config.server.landing_url=Landing URL
+
+config.ssh_config=پیکربندی SSH
+config.ssh.enabled=فعال شده
+config.ssh.domain=Exposed domain
+config.ssh.port=Exposed port
+config.ssh.root_path=Root path
+config.ssh.keygen_path=Keygen path
+config.ssh.key_test_path=Key test path
+config.ssh.minimum_key_size_check=Minimum key size check
+config.ssh.minimum_key_sizes=Minimum key sizes
+config.ssh.rewrite_authorized_keys_at_start=Rewrite "authorized_keys" at start
+config.ssh.start_builtin_server=Start builtin server
+config.ssh.listen_host=Listen host
+config.ssh.listen_port=Listen port
+config.ssh.server_ciphers=Server ciphers
+config.ssh.server_macs=Server MACs
+config.ssh.server_algorithms=Server algorithms
+
+config.repo_config=پیکربندی مخزن
+config.repo.root_path=Root path
+config.repo.script_type=Script type
+config.repo.ansi_chatset=ANSI charset
+config.repo.force_private=Force private
+config.repo.max_creation_limit=Max creation limit
+config.repo.preferred_licenses=Preferred licenses
+config.repo.disable_http_git=Disable HTTP Git
+config.repo.enable_local_path_migration=Enable local path migration
+config.repo.enable_raw_file_render_mode=Enable raw file render mode
+config.repo.commits_fetch_concurrency=Commits fetch concurrency
+config.repo.editor.line_wrap_extensions=Editor line wrap extensions
+config.repo.editor.previewable_file_modes=Editor previewable file modes
+config.repo.upload.enabled=Upload enabled
+config.repo.upload.temp_path=Upload temporary path
+config.repo.upload.allowed_types=Upload allowed types
+config.repo.upload.file_max_size=Upload file size limit
+config.repo.upload.max_files=Upload files limit
+
+config.db_config=تنظیمات پایگاه داده
+config.db.type=Type
+config.db.host=Host
+config.db.name=Name
+config.db.schema=Schema
+config.db.schema_helper=(for "postgres" only)
+config.db.user=User
+config.db.ssl_mode=SSL mode
+config.db.ssl_mode_helper=(for "postgres" only)
+config.db.path=Path
+config.db.path_helper=(for "sqlite3"only)
+config.db.max_open_conns=Maximum open connections
+config.db.max_idle_conns=Maximum idle connections
+
+config.security_config=Security configuration
+config.security.login_remember_days=Login remember days
+config.security.cookie_remember_name=Remember cookie
+config.security.cookie_username=Username cookie
+config.security.cookie_secure=Enable secure cookie
+config.security.reverse_proxy_auth_user=Reverse proxy authentication header
+config.security.enable_login_status_cookie=Enable login status cookie
+config.security.login_status_cookie_name=Login status cookie
+config.security.local_network_allowlist=Local network allowlist
+
+config.email_config=Email configuration
+config.email.enabled=Enabled
+config.email.subject_prefix=Subject prefix
+config.email.host=Host
+config.email.from=From
+config.email.user=User
+config.email.disable_helo=Disable HELO
+config.email.helo_hostname=HELO hostname
+config.email.skip_verify=Skip certificate verify
+config.email.use_certificate=Use custom certificate
+config.email.cert_file=Certificate file
+config.email.key_file=Key file
+config.email.use_plain_text=Use plain text
+config.email.add_plain_text_alt=Add plain text alternative
+config.email.send_test_mail=Send test email
+config.email.test_mail_failed=Failed to send test email to '%s': %v
+config.email.test_mail_sent=Test email has been sent to '%s'.
+
+config.auth_config=Authentication configuration
+config.auth_custom_logout_url=Custom logout URL
+config.auth.activate_code_lives=Activate code lives
+config.auth.reset_password_code_lives=Reset password code lives
+config.auth.require_email_confirm=Require email confirmation
+config.auth.require_sign_in_view=Require sign in view
+config.auth.disable_registration=Disable registration
+config.auth.enable_registration_captcha=Enable registration captcha
+config.auth.enable_reverse_proxy_authentication=Enable reverse proxy authentication
+config.auth.enable_reverse_proxy_auto_registration=Enable reverse proxy auto registration
+config.auth.reverse_proxy_authentication_header=Reverse proxy authentication header
+
+config.user_config=User configuration
+config.user.enable_email_notify=Enable email notification
+
+config.session_config=پیکربندی Session ها
+config.session.provider=Provider
+config.session.provider_config=Provider config
+config.session.cookie_name=Cookie
+config.session.https_only=HTTPS only
+config.session.gc_interval=GC interval
+config.session.max_life_time=Max life time
+config.session.csrf_cookie_name=CSRF cookie
+
+config.cache_config=پیکربندی cache
+config.cache.adapter=Adapter
+config.cache.interval=GC interval
+config.cache.host=Host
+
+config.http_config=تنظیمات HTTP
+config.http.access_control_allow_origin=Access control allow origin
+
+config.attachment_config=Attachment configuration
+config.attachment.enabled=Enabled
+config.attachment.path=Path
+config.attachment.allowed_types=Allowed types
+config.attachment.max_size=Size limit
+config.attachment.max_files=Files limit
+
+config.release_config=Release configuration
+config.release.attachment.enabled=Attachment enabled
+config.release.attachment.allowed_types=Attachment allowed types
+config.release.attachment.max_size=Attachment size limit
+config.release.attachment.max_files=Attachment files limit
+
+config.picture_config=تنظیمات تصویر
+config.picture.avatar_upload_path=User avatar upload path
+config.picture.repo_avatar_upload_path=Repository avatar upload path
+config.picture.gravatar_source=Gravatar source
+config.picture.disable_gravatar=Disable Gravatar
+config.picture.enable_federated_avatar=Enable federated avatars
+
+config.mirror_config=Mirror configuration
+config.mirror.default_interval=Default interval
+
+config.webhook_config=تنظیمات Webhook
+config.webhook.types=Types
+config.webhook.deliver_timeout=Deliver timeout
+config.webhook.skip_tls_verify=Skip TLS verify
+
+config.git_config=پیکربندی Git
+config.git.disable_diff_highlight=Disable diff syntax highlight
+config.git.max_diff_lines=Diff lines limit (for a single file)
+config.git.max_diff_line_characters=Diff characters limit (for a single line)
+config.git.max_diff_files=Diff files limit (for a single diff)
+config.git.gc_args=GC arguments
+config.git.migrate_timeout=Migration timeout
+config.git.mirror_timeout=Mirror fetch timeout
+config.git.clone_timeout=Clone timeout
+config.git.pull_timeout=Pull timeout
+config.git.gc_timeout=GC timeout
+
+config.lfs_config=LFS configuration
+config.lfs.storage=Storage
+config.lfs.objects_path=Objects path
+
+config.log_config=پیکربندی لاگ
+config.log_file_root_path=مسیر ریشه ی فایل لاگ
+config.log_mode=حالت
+config.log_options=گزینهها
+
+monitor.cron=وظایف Cron
+monitor.name=نام
+monitor.schedule=زمان بندی
+monitor.next=زمان بعدی
+monitor.previous=زمان قبلی
+monitor.execute_times=زمان اجرا
+monitor.process=پرازش در حال اجرا
+monitor.desc=توضیحات
+monitor.start=زمان شروع
+monitor.execute_time=زمان مورد نیاز برای اجرا
+
+notices.system_notice_list=هشدارهای سیستم
+notices.view_detail_header=مشاهده جزئیات اخطار
+notices.actions=اقدامات
+notices.select_all=انتخاب همه
+notices.deselect_all=لغو انتخاب همه
+notices.inverse_selection=انتخاب معکوس
+notices.delete_selected=حذف انتخاب شده ها
+notices.delete_all=حذف همه اخطارها
+notices.type=نوع
+notices.type_1=مخزن
+notices.desc=توضیحات
+notices.op=عملیات.
+notices.delete_success=اخطار های سیستم با موفقیت حذف شده باشد.
+
+[action]
+create_repo=مخزن ایجاد شده %s
+rename_repo=مخزن تغییر نام داد از %[1]s به %[3]s
+commit_repo=پوش کردن به %[3]s در %[4]s
+compare_commits=مشاهده مقایسه برای کامیت %d
+transfer_repo=مخزن از %s به %sمنتقل شده است
+create_issue=`مسايل رسیدگی نشده%s#%[2]s`
+close_issue=`مسائل رسیدگی شده%s#%[2]s`
+reopen_issue=`مسايل بازگشایی شده %s#%[2]s`
+comment_issue=`در مسئله ی %s#%[2]s اظهار نظر کرده`
+create_pull_request=`درخواست واکشی برای %s#%[2]sایجاد شده است`
+close_pull_request=`درخواست واکشی %s#%[2]s بسته شد`
+reopen_pull_request=`درخواست واکشی%s#%[2]sبازگشایی شد`
+merge_pull_request=`merged pull request %s#%[2]s`
+create_branch=شاخه ی جدید %[3]sدر%[4]s ایجاد شد
+delete_branch=شاخه ی حذف شده ی %[2]s در%[3]s
+push_tag=تگ %[2]sدر %[3]sپوش شد
+delete_tag=برچسب %[2]s در %[3]s حذف شده
+fork_repo=انشعاب مخزن به %s
+mirror_sync_push=synced commits to %[3]s at %[4]s from mirror
+mirror_sync_create=synced new reference %[2]s to %[3]s from mirror
+mirror_sync_delete=synced and deleted reference %[2]s at %[3]s from mirror
+
+[tool]
+ago=پیش
+from_now=از هم اکنون
+now=حالا
+1s=1 ثانیه %s
+1m=1 دقیقه %s
+1h=1 ساعت %s
+1d=1 روز %s
+1w=1 هفته %s
+1mon=1 ماه %s
+1y=1 سال %s
+seconds=%d ثانیه %s
+minutes=%d دقیقه %s
+hours=%d ساعت %s
+days=%d روز %s
+weeks=%d هفته %s
+months=%d ماه %s
+years=%d سال %s
+raw_seconds=ثانیه
+raw_minutes=دقیقه ها
+raw_hours=ساعت
+
+[dropzone]
+default_message=فایل را در این محل رها کنید یا دکمه ی آپلود یا بارگزاری را فشار دهید.
+invalid_input_type=شما قادر به ارسال فایل های از این نوع نیستید.
+file_too_big=حجم فایل ({{filesize}} MB) بیش از حداکثر مجاز است ({{maxFilesize}} مگابایت).
+remove_file=حذف فایل
+
diff --git a/conf/locale/locale_fi-FI.ini b/conf/locale/locale_fi-FI.ini
index 6350156d81f..21926a7f6b4 100644
--- a/conf/locale/locale_fi-FI.ini
+++ b/conf/locale/locale_fi-FI.ini
@@ -9,7 +9,6 @@ sign_out=Kirjaudu ulos
sign_up=Rekisteröidy
register=Rekisteröidy
website=Nettisivut
-version=Versio
page=Sivu
template=Malli
language=Kieli
@@ -23,13 +22,13 @@ password=Salasana
re_type=Kirjoita uudelleen
captcha=Captcha
-repository=Repo
+repository=Tietosäilö
organization=Organisaatio
mirror=Peili
-new_repo=Uusi repo
+new_repo=Uusi tietosäilö
new_migrate=Uusi migraatio
new_mirror=Uusi peilaus
-new_fork=Uusi haara reposta
+new_fork=Uusi tietosäilö haarautuksesta
new_org=Uusi organisaatio
manage_org=Ylläpidä organisaatioita
admin_panel=Ylläpito paneeli
@@ -39,85 +38,97 @@ your_profile=Profiilisi
your_settings=Asetuksesi
activities=Toimet
-pull_requests=Pull requestit
-issues=Ongelmat
+pull_requests=Vetopyynnöt
+issues=Esitykset
cancel=Peruuta
+[status]
+page_not_found=Sivua ei löydy
+internal_server_error=Sisäinen palvelinvirhe
+
[install]
install=Asennus
title=Asennusvaiheet ottaessa ensi kertaa käyttöön
docker_helper=Jos käytät Gogsia Dockerin sisällä, ole hyvä ja lue ohjeet huolellisesti ennen kuin muutat mitään tältä sivulta!
-requite_db_desc=Gogs tarvitsee MySQL, PostgreSQL, SQLite3 tai TiDB.
-db_title=Tietokanta asetukset
-db_type=Tietokanta tyyppi
+requite_db_desc=Gogs tarvitsee tietokannakseen MySQL, PostgreSQL, SQLite3 tai TiDB (MySQL-protkollan kautta).
+db_title=Tietokannan asetukset
+db_type=Tietokannan tyyppi
host=Isäntä
user=Käyttäjä
password=Salasana
db_name=Tietokannan nimi
+db_schema=Skeema
db_helper=Ole hyvä ja käytä INNODB moottoria ja utf8_general_ci merkistöä MySQLssä.
-ssl_mode=SSL tila
+ssl_mode=SSL-tila
path=Polku
-sqlite_helper=SQLite3 tai TiDB tietokanta polku. Käytä absoluuttista polkua kun käynnistät palvelun.
-err_empty_db_path=SQLite3 tai TiDB tietokanta polku ei voi olla tyhjä.
-err_invalid_tidb_name=TiDB tietokannan nimessä ei voi olla merkkejä "." ja "-".
-no_admin_and_disable_registration=Et voi poistaa käytöstä rekisteröintiä luomatta ylläpito tiliä.
+sqlite_helper=Tiedostopolku SQLite3-tietokantaan. Käytä absoluuttista polkua ajaessasi palveluna.
+err_empty_db_path=SQLite3-tietokantapolku ei voi olla tyhjä.
+no_admin_and_disable_registration=Et voi poistaa käytöstä rekisteröintiä luomatta ylläpitotiliä.
err_empty_admin_password=Ylläpito salasana ei voi olla tyhjä.
general_title=Sovellus yleiset asetukset
-app_name=Sovellus nimi
+app_name=Sovelluksen nimi
app_name_helper=Laita organisaatiosi nimi tähän isolla ja kovaäänisesti!
-repo_path=Repon juuren polku
-repo_path_helper=Kaikki Git etä repot tullaan tallentamaan tähän hakemistoon.
+repo_path=Tietosäilön juurihakemisto
+repo_path_helper=Kaikki Git-etätietosäilöt tullaan tallentamaan tähän hakemistoon.
run_user=Suorita käyttäjänä
-run_user_helper=Käyttäjällä täytyy olla pääsy repo juuri polkuun ja suorittaa Gogs.
+run_user_helper=Käyttäjällä täytyy olla oikeus repositoryn juuripolkuun. Käyttäjällä täytyy myös olla oikeus suorittaa Gogs.
domain=Verkkotunnus
-domain_helper=Tämä vaikuttaa SSH klooni URLeihin.
-ssh_port=SSH portti
+domain_helper=Tämä vaikuttaa SSH-kloonausosoitteisiin.
+ssh_port=SSH-portti
ssh_port_helper=Portti numero jota SSH palvelimesi käyttää, jätä tyhjäksi poistaaksesi käytöstä SSH toiminnon.
-http_port=HTTP portti
-http_port_helper=Portti numero jota sovellus tulee kuuntelemaan.
-app_url=Sovellus URL
-app_url_helper=Tämä vaikuttaa HTTP/HTTPS klooni URLeihin ja joihinkin sähköposteihin.
+use_builtin_ssh_server=Käytä sisäänrakennettua SSH-palvelinta
+use_builtin_ssh_server_popup=Käynnistä sisäänrakennettu SSH-palvelin Git-operaatioille, järjestelmän SSH-palvelusta erottautumiseksi.
+http_port=HTTP-portti
+http_port_helper=Porttinumero, jota sovellus tulee kuuntelemaan.
+app_url=Sovelluksen osoite
+app_url_helper=Tämä vaikuttaa HTTP/HTTPS-klooniosoitteisiin ja joihinkin sähköposteihin.
log_root_path=Lokin polku
log_root_path_helper=Lokien tallennushakemisto.
+enable_console_mode=Ota käyttöön konsoli tila
+enable_console_mode_popup=Tiedosto tilan lisäksi tulosta logit konsoliin.
+default_branch=Oletus haara
optional_title=Valinnaiset asetukset
email_title=Sähköposti palvelu asetukset
smtp_host=SMTP isäntä
smtp_from=Lähettäjä
-smtp_from_helper=Sähköposti lähettäjän osoite, RFC 5322. Se voi olla pelkkä sähköposti osoite, tai "Nimi" muodossa.
+smtp_from_helper=Sähköpostin lähettäjän osoite, RFC 5322. Se voi olla pelkkä sähköpostiosoite tai "Nimi" -muodossa.
mailer_user=Lähettäjän sähköposti
mailer_password=Lähettäjän salasana
-register_confirm=Ota käyttöön rekisteröinti varmistus
+register_confirm=Ota käyttöön rekisteröintivarmistus
mail_notify=Ota käyttöön sähköposti ilmoitukset
server_service_title=Palvelin ja muut palvelu asetukset
-offline_mode=Ota käyttöön Offline tila
-offline_mode_popup=Poista käytöstä CDN myös tuotanto tilassa, kaikki resurssi tiedostot palvellaan paikallisesti.
-disable_gravatar=Poista käytöstä Gravatar palvelu
+offline_mode=Ota käyttöön yhteydetön tila
+offline_mode_popup=Poista käytöstä CDN myös tuotantotilassa, kaikki resurssitiedostot palvellaan paikallisesti.
+disable_gravatar=Poista käytöstä Gravatar-palvelu
disable_gravatar_popup=Poista käytöstä Gravatar ja mukautetut lähteet, kaikki profiilikuvat on käyttäjien palvelimelle lähettämiä tai oletus.
-federated_avatar_lookup=Enable Federated Avatars Lookup
-federated_avatar_lookup_popup=Enable federated avatars lookup to use federated open source service based on libravatar.
+federated_avatar_lookup=Käytä ulkopuolista profiilikuvien hakua
+federated_avatar_lookup_popup=Ota ulkopuolinen profiilikuvien haku käyttöön käyttääksesi avoimen lähdekoodin libravatar-palvelua.
disable_registration=Poista käytöstä itse-rekisteröinti
-disable_registration_popup=Poista käyttäjän itse rekisteröinti, vain ylläpito voi luoda tilejä.
+disable_registration_popup=Poista käyttäjän itserekisteröinti, vain ylläpito voi luoda tilejä.
enable_captcha=Ota käyttöön Captcha
enable_captcha_popup=Pakollinen captcha käyttäjän itse rekisteröityessä.
require_sign_in_view=Ota käyttöön vaadi sisäänkirjautuminen nähdäksesi sivut
-require_sign_in_view_popup=Vain sisään kirjautuneet käyttäjät voivat nähdä sivut, vierailijat tulevat näkemään vain kirjautumis/rekisteröinti sivut.
-admin_setting_desc=Sinun ei tarvitse luoda ylläpito tiliä nyt, ensimmäinen käyttäjä ID=1 saa ylläpito oikeudet automaattisesti.
-admin_title=Ylläpito tili asetukset
+require_sign_in_view_popup=Vain sisäänkirjautuneet käyttäjät voivat nähdä sivut, vierailijat tulevat näkemään vain kirjautumis-/rekisteröintisivut.
+admin_setting_desc=Sinun ei tarvitse luoda ylläpitotiliä nyt, ensimmäinen käyttäjä ID=1 saa ylläpito-oikeudet automaattisesti.
+admin_title=Ylläpitotilin asetukset
admin_name=Käyttäjätunnus
admin_password=Salasana
confirm_password=Varmista salasana
admin_email=Ylläpito sähköposti
install_gogs=Asenna Gogs
test_git_failed=Epäonnistui testata 'git' komentoa: %v
-sqlite3_not_available=Julkaisu versiosi ei tue SQLite3, ole hyvä ja lataa virallinen binääri versio osoitteesta %s, EI gobuild versiota.
+sqlite3_not_available=Julkaisuversiosi ei tue SQLite3:a, ole hyvä ja lataa virallinen binääriversio osoitteesta %s, EI gobuild-versiota.
invalid_db_setting=Tietokanta asetus ei ole oikea: %v
-invalid_repo_path=Repo juuri polku on virheellinen: %v
+invalid_repo_path=Tietosäilön juurihakemisto on virheellinen: %v
run_user_not_match=Suoritus käyttäjä ei ole nykyinen käyttäjä: %s -> %s
+smtp_host_missing_port=SMTP-isännältä puuttuu portin osoite.
+invalid_smtp_from=SMTP From kenttä ei ole kelvollinen: %v
save_config_failed=Asetuksien tallennus epäonnistui: %v
-invalid_admin_setting=Ylläpito tili asetus virheellinen: %v
+init_failed=Sovelluksen alustus epäonnistui: %v
+invalid_admin_setting=Ylläpitotilin asetus on virheellinen: %v
install_success=Tervetuloa! Olemme iloisia että valitsit Gogs, pidä hauskaa ja pidä huolta itsestäsi.
invalid_log_root_path=Loki juurihakemisto ei kelpaa: %v
@@ -125,44 +136,54 @@ invalid_log_root_path=Loki juurihakemisto ei kelpaa: %v
uname_holder=Käyttäjätunnus tai sähköposti
password_holder=Salasana
switch_dashboard_context=Vaihda kojelaudan kontekstia
-my_repos=Reponi
-show_more_repos=Show more repositories...
-collaborative_repos=Yhteistyö repot
+my_repos=Minun tietosäilöt
+show_more_repos=Näytä lisää tietosäilöjä...
+collaborative_repos=Yhteistyötietosäilöt
my_orgs=Organisaationi
-my_mirrors=Peilini
+my_mirrors=Peilaukseni
view_home=Näytä %s
-issues.in_your_repos=Repoissasi
+issues.in_your_repos=Sinun tietosäilöissäsi
[explore]
-repos=Repot
-users=Users
-search=Search
+repos=Tietosäilöt
+users=Käyttäjät
+organizations=Organisaatiot
+search=Hae
[auth]
create_new_account=Luo uusi tili
-register_hepler_msg=On jo tili? Kirjaudu sisään nyt!
+register_hepler_msg=Onko sinulla jo tili? Kirjaudu sisään nyt!
social_register_hepler_msg=On jo tili? Liitä nyt!
-disable_register_prompt=Sori, rekisteröinti on poistettu käytöstä. Ole hyvä ja ota yhteyttä sivuston ylläpitoon.
-disable_register_mail=Sori, rekisteröinti sähköpostivarmistukset on poistettu käytöstä.
+disable_register_prompt=Valitettavasti rekisteröinti on poistettu käytöstä. Ole hyvä ja ota yhteyttä sivuston ylläpitoon.
+disable_register_mail=Valitettavasti sähköpostipalvelut ovat poissa käytöstä. Otathan yhteyttä sivuston ylläpitoon.
+auth_source=Todennuslähde
+local=Paikallinen
remember_me=Muista minut
forgot_password=Unohtuiko salasana
forget_password=Unohtuiko salasana?
sign_up_now=Tarvitsetko tilin? Rekisteröidy nyt.
-confirmation_mail_sent_prompt=Uusi varmistus sähköposti on lähetetty osoitteeseen %s, ole hyvä ja tarkista saapuneet seuraavan %d tunnin sisällä saadaksesi rekisteröintiprosessin valmiiksi.
+confirmation_mail_sent_prompt=Uusi varmistussähköposti on lähetetty osoitteeseen %s, ole hyvä ja tarkista saapuneet seuraavan %d tunnin sisällä saadaksesi rekisteröintiprosessin valmiiksi.
active_your_account=Aktivoi tilisi
-prohibit_login=Login Prohibited
-prohibit_login_desc=Your account is prohibited to login, please contact site admin.
+prohibit_login=Kirjautuminen kielletty
+prohibit_login_desc=Käyttäjätilisi kirjautuminen on estetty. Ota yhteys sivuston ylläpitäjään.
resent_limit_prompt=Sori, olet jo tilannut aktivointi sähköpostin lähiaikoina. Ole hyvä ja odota 3 minuuttia ja yritä sitten uudelleen.
-has_unconfirmed_mail=Hei %s, sinulla on varmistamaton sähköposti osoite (%s). Jos et ole saanut varmistus sähköpostia tai tarvitset uudelleenlähetyksen, ole hyvä ja klikkaa allaolevaa painiketta.
-resend_mail=Klikkaa tästä uudelleenlähettääksesi aktivointi sähköpostisi
-email_not_associate=Tätä sähköposti osoitetta ei ole liitetty mihinkään tiliin.
-send_reset_mail=Klikkaa tästä (uudelleen)lähettääksesi salasanan nollaus sähköpostin
+has_unconfirmed_mail=Hei %s, sinulla on varmistamaton sähköpostiosoite (%s). Jos et ole saanut varmistussähköpostia tai tarvitset uudelleenlähetyksen, ole hyvä ja napsauta allaolevaa painiketta.
+resend_mail=Napsauta tästä uudelleenlähettääksesi aktivointisähköpostisi
+send_reset_mail=Napsauta tästä (uudelleen)lähettääksesi salasanan alustussähköpostin
reset_password=Nollaa salasanasi
invalid_code=Sori, varmistuskoodisi on vanhentunut tai väärä.
-reset_password_helper=Klikkaa tästä nollataksesi salasanasi
+reset_password_helper=Napsauta tästä nollataksesi salasanasi
password_too_short=Salasanan pituus ei voi olla vähemmän kuin 6 merkkiä.
-non_local_account=Non-local accounts cannot change passwords through Gogs.
+non_local_account=Vain paikallisten käyttäjätilien salasanan vaihto onnistuu Gogsin kautta.
+
+login_two_factor=Kaksivaiheinen todennus
+login_two_factor_passcode=Todennuksen salasana
+login_two_factor_enter_recovery_code=Kirjoita kaksivaiheisen todennuksen palautuskoodi
+login_two_factor_recovery=Kaksivaiheisen todennuksen palautus
+login_two_factor_recovery_code=Palautuskoodi
+login_two_factor_enter_passcode=Kirjoita kaksivaiheisen todennuksen salasana
+login_two_factor_invalid_recovery_code=Palautuskoodi on käytetty tai ei ole kelvollinen.
[mail]
activate_account=Ole hyvä ja aktivoi tilisi
@@ -178,27 +199,28 @@ modify=Muokkaa
[form]
UserName=Käyttäjätunnus
-RepoName=Repon nimi
-Email=Sähköposti osoite
+RepoName=Tietosäilön nimi
+Email=Sähköpostiosoite
Password=Salasana
Retype=Kirjoita salasana uudelleen
-SSHTitle=SSH avain nimi
-HttpsUrl=HTTPS URL
+SSHTitle=SSH-avaimen nimi
+HttpsUrl=HTTPS-osoite
PayloadUrl=Payload URL
TeamName=Tiimin nimi
AuthName=Luvan nimi
AdminEmail=Ylläpito sähköposti
-NewBranchName=New branch name
-CommitSummary=Commit summary
-CommitMessage=Commit message
-CommitChoice=Commit choice
-TreeName=File path
-Content=Content
+NewBranchName=Uuden haaran nimi
+CommitSummary=Sitoutuksen yhteenveto
+CommitMessage=Sitoutuksen viesti
+CommitChoice=Commitin valinta
+TreeName=Tiedostopolku
+Content=Sisältö
require_error=` ei voi olla tyhjä.`
alpha_dash_error=` täytyy olla kirjaimia tai numeroita tai väliviiva(-_) merkkejä.`
alpha_dash_dot_error=` täytyy olla kirjaimia tai numeroita tai väliviiva(-_) tai piste merkkejä.`
+alpha_dash_dot_slash_error=` täytyy olla kirjaimia tai numeroita tai väliviiva(-_) tai piste merkkejä.`
size_error=` täytyy olla kokoa %s.`
min_size_error=` täytyy sisältää vähintään %s merkkiä.`
max_size_error=` täytyy sisältää enintään %s merkkiä.`
@@ -210,31 +232,32 @@ captcha_incorrect=Captcha ei ollut oikein.
password_not_match=Salasana ja salasanan varmistus eivät ole samoja.
username_been_taken=Käyttäjätunnus on jo käytössä.
-repo_name_been_taken=Repon nimi on jo käytössä.
+repo_name_been_taken=Tietosäilön nimi on jo käytössä.
org_name_been_taken=Organisaation nimi on jo käytössä.
team_name_been_taken=Tiimin nimi on jo käytössä.
email_been_used=Sähköpostiosoite on jo käytössä.
username_password_incorrect=Käyttäjätunnus tai salasana ei ole oikein.
-enterred_invalid_repo_name=Ole hyvä ja varmista että kirjoittamasi repon nimi on oikein.
+auth_source_mismatch=Valittua todennuslähdettä ei liitetä käyttäjään.
+enterred_invalid_repo_name=Ole hyvä ja varmista että kirjoittamasi tietosäilön nimi on oikein.
enterred_invalid_owner_name=Ole hyvä ja varmista että kirjoittamasi omistajan nimi on oikein.
enterred_invalid_password=Ole hyvä ja varmista että kirjoittamasi salasana on oikein.
user_not_exist=Käyttäjää ei ole olemassa.
last_org_owner=Viimeisen käyttäjän poistaminen omistaja tiimistä ei ole sallittu, koska organisaatiossa tulee olla ainakin yksi omistaja.
-invalid_ssh_key=Sori, emme pystyneet varmistamaan SSH avainta: %s
-unable_verify_ssh_key=Gogs ei voi varmistaa SSH avaintasi, mutta oletamme että se on toimiva, ole hyvä ja tarkista se.
+invalid_ssh_key=Pahoittelut, emme pystyneet varmistamaan SSH-avainta: %s
+unable_verify_ssh_key=Gogs ei voi varmistaa SSH-avaintasi, mutta oletamme että se on toimiva, ole hyvä ja tarkista se.
auth_failed=Todennus epäonnistui: %v
-still_own_repo=Tililläsi on yhä omistajuus ainakin yhteen repoon, sinun täytyy poistaa tai siirtää ne ensin.
+still_own_repo=Tililläsi on yhä omistajuus ainakin yhteen tietosäilöön, sinun täytyy poistaa tai siirtää ne ensin.
still_has_org=Tililläsi on yhä jäsenyys ainakin yhteen organisaatioon, sinun täytyy jäädä pois tai poistaa jäsenyyksiä ensin.
-org_still_own_repo=Tällä organisaatiolla on yhä omistajuus repoon, sinun täytyy poistaa tai siirtää ne ensin.
+org_still_own_repo=Tällä organisaatiolla on yhä omistajuus tietosäilöön, sinun täytyy poistaa tai siirtää ne ensin.
-target_branch_not_exist=Kohde branchia ei ole olemassa.
+target_branch_not_exist=Kohde haaraa ei ole olemassa.
[user]
-change_avatar=Change your avatar
+change_avatar=Vaihda profiilikuvasi
join_on=Liitytty
-repositories=Repot
+repositories=Tietosäilöt
activity=Julkinen toiminta
followers=Seuraajat
starred=Äänestetty
@@ -242,22 +265,21 @@ following=Seurataan
follow=Seuraa
unfollow=Lopeta seuraaminen
-form.name_reserved=Käyttäjätunnus '%s' on varattu.
-form.name_pattern_not_allowed=Käyttäjätunnus mallia '%s' ei ole sallittu.
+form.name_not_allowed=Käyttäjätunnusta tai mallia %q ei ole sallittu.
[settings]
profile=Profiili
password=Salasana
-avatar=Avatar
+avatar=Profiilikuva
ssh_keys=SSH avaimet
-social=Sosiaaliset tilit
-applications=Sovellukset
+security=Turvallisuus
+repos=Tietosäilö
orgs=Organisaatiot
+applications=Sovellukset
delete=Poista tili
-uid=Käyttäjä ID
public_profile=Julkinen profiili
-profile_desc=Sähköposti osoitteesi on julkinen ja käytetään tiliin liittyviin ilmoituksiin, ja nettipohjaisiin toimintoihin joita on tehty sivujen kautta.
+profile_desc=Sähköpostiosoitteesi on julkinen ja käytetään tiliin liittyviin ilmoituksiin, ja nettipohjaisiin toimintoihin joita on tehty sivujen kautta.
password_username_disabled=Ei-paikallinen tyyppisten käyttäjien ei sallita vaihtavan käyttäjänimeä.
full_name=Kokonimi
website=Nettisivut
@@ -269,8 +291,8 @@ change_username_prompt=Tämä muutos vaikuttaa tapaan kuinka linkit liittyvät t
continue=Jatka
cancel=Peruuta
-lookup_avatar_by_mail=Lookup Avatar by mail
-federated_avatar_lookup=Federated Avatar Lookup
+lookup_avatar_by_mail=Hae profiilikuva sähköpostiosoitteen avulla
+federated_avatar_lookup=Ulkopuolinen profiilikuvan haku
enable_custom_avatar=Ota käyttöön mukautettu profiilikuva
choose_new_avatar=Valitse uusi profiilikuva
update_avatar=Päivitä profiilikuva asetus
@@ -286,23 +308,24 @@ password_incorrect=Nykyinen salasana ei ole oikea.
change_password_success=Salasanasi on onnistuneesti vaihdettu. Voit nyt kirjautua sisään käyttäen tätä uutta salasanaa.
password_change_disabled=Ei-paikallinen tyyppisten käyttäjien ei sallita vaihtavan salasanaa.
-emails=Sähköposti osoitteet
-manage_emails=Hallitse sähköposti osoitteita
+emails=Sähköpostiosoite
+manage_emails=Hallitse sähköpostiosoitteita
email_desc=Ensisijaista sähköpostiosoitettasi käytetään ilmoituksiin ja muihin toimintoihin.
primary=Ensisijainen
primary_email=Aseta ensisijaiseksi
delete_email=Poista
email_deletion=Sähköpostin poistaminen
-email_deletion_desc=Tämän sähköposti osoitteen poistaminen poistaa siihen liittyvät tiedot tililtäsi. Haluatko jatkaa?
+email_deletion_desc=Tämän sähköpostiosoitteen poistaminen poistaa siihen liittyvät tiedot tililtäsi. Haluatko jatkaa?
email_deletion_success=Sähköposti on poistettu onnistuneesti!
+email_deletion_primary=Pääsähköpostin poistaminen ei onnistu.
add_new_email=Lisää uusi sähköpostiosoite
add_email=Lisää sähköposti
-add_email_confirmation_sent=Uusi varmistus sähköposti on lähetetty osoitteeseen '%s', ole hyvä ja tarkista saapuneet seuraavan %d tunnin sisällä saadaksesi rekisteröintiprosessin valmiiksi.
+add_email_confirmation_sent=Uusi varmistussähköposti on lähetetty osoitteeseen '%s', ole hyvä ja tarkista saapuneet seuraavan %d tunnin sisällä saadaksesi rekisteröintiprosessin valmiiksi.
add_email_success=Uusi sähköpostiosoitteesi on lisätty onnistuneesti.
manage_ssh_keys=Hallitse SSH avaimia
add_key=Lisää avain
-ssh_desc=Tämä on luettelo tiliisi liitetyistä SSH avaimista. Koska nämä avaimet sallivat kenen tahansa niitä käyttävän pääsevän repoihisi, on erittäin tärkeää että tunnistat ne.
+ssh_desc=Tämä on luettelo tiliisi liitetyistä SSH-avaimista. Koska nämä avaimet sallivat kenen tahansa niitä käyttävän pääsevän repoihisi, on erittäin tärkeää että tunnistat ne.
ssh_helper=Etkö tiedä miten?Tarkista Githubin opas luo oma SSH avain tai ratkaise yleisiä ongelmia joita voit kohdata SSHta käyttäessä.
add_new_key=Lisää SSH avain
ssh_key_been_used=Julkisen avaimen sisältö on käytetty.
@@ -320,14 +343,36 @@ no_activity=Ei viimeaikaista toimintaa
key_state_desc=Tätä avainta on käytetty 7 päivän sisällä
token_state_desc=Tätä pääsymerkkiä on käytetty 7 päivän sisällä
-manage_social=Hallitse liitettyjä sosiaalisia tilejä
-social_desc=Tämä on luettelo liitetyistä sosiaalisista tileistä. Poista kaikki liitokset joita et tunnista.
-unbind=Poista liitos
-unbind_success=Sosiaalisen tilin liitos on poistettu.
+two_factor=Kaksivaiheinen todennus
+two_factor_status=Tila:
+two_factor_on=Käytössä
+two_factor_off=Pois käytöstä
+two_factor_enable=Ota käyttöön
+two_factor_disable=Poista käytöstä
+two_factor_view_recovery_codes=Katso ja tallenna palautuskoodejasi turvallisessa paikassa. Voit käyttää niitä salasanoina, jos menetän pääsyn todennussovellukseen.
+two_factor_http=HTTP/HTTPS-toimintoihin et voi enää käyttää pelkkää käyttäjänimeä ja salasanaa. Luo ja käytä henkilökohtaisia pääsymerkkejä tunnuksinasi, esimerkiksi %[3]s.
+two_factor_enable_title=Ota käyttöön kaksivaiheinen todennus
+two_factor_scan_qr=Käytä todennus sovellustasi lukeaksesi kuvan:
+two_factor_or_enter_secret=Tai kirjoita salaisuus:
+two_factor_then_enter_passcode=Sitten kirjoita salasana:
+two_factor_verify=Vahvista
+two_factor_invalid_passcode=Kirjoittamasi salasana ei kelpaa, yritä uudelleen!
+two_factor_reused_passcode=Antamasi salasana on jo käytetty, kokeile toista!
+two_factor_enable_error=Ota käyttöön kaksivaiheinen todennus epäonnistui: %v
+two_factor_enable_success=Kaksivaiheinen todennus on otettu käyttöön tilissäsi menestyksekkäästi!
+two_factor_recovery_codes_title=Kaksivaiheinen todennus palautuskoodit
+two_factor_recovery_codes_desc=Palautuskoodeja käytetään kun väliaikaisesti menetät pääsyb todennus sovellukseesi. Kukin palautuskoodi voidaan käyttää vain kerran, pidä näitä koodeja turvallisessa paikassa.
+two_factor_regenerate_recovery_codes=Uudista palautuskoodit
+two_factor_regenerate_recovery_codes_error=Uudista palautuskoodit epäonnistui: %v
+two_factor_regenerate_recovery_codes_success=Uusien palautuskoodien luonti onnistui!
+two_factor_disable_title=Poista kaksivaiheinen todennus käytöstä
+two_factor_disable_desc=Käyttäjätilisi turvallisuustaso vähenee kun poistat käytöstä kaksivaiheisen todennuksen. Haluatko jatkaa?
+two_factor_disable_success=Kaksivaiheinen todennus on poistettu käytöstä onnistuneesti!
manage_access_token=Hallitse henkilökohtaisia pääsymerkkejä
generate_new_token=Luo uusi pääsymerkki
tokens_desc=Luomiasi pääsymerkkejä voidaan käyttää Gogs APIn kanssa.
+access_token_tips=Henkilökohtaista pääsytunnusta voidaan käyttää joko käyttäjätunnuksena tai salasanana. On suositeltavaa käyttää "x-access-token" käyttäjätunnuksena ja henkilökohtaista pääsytunnusta Git-sovellusten salasanana.
new_token_desc=Joka pääsymerkillä on täysi pääsy tiliisi.
token_name=Pääsymerkin nimi
generate_token=Luo pääsymerkki
@@ -336,6 +381,16 @@ delete_token=Poista
access_token_deletion=Henkilökohtaisen pääsymerkin poisto
access_token_deletion_desc=Tämän henkilökohtaisen pääsymerkin poistaminen poistaa kaikki siihen liittyvät pääsyt sovellukseen. Haluatko jatkaa?
delete_token_success=Henkilökohtainen pääsymerkki on poistettu onnistuneesti! Älä unohda päivittää sovellustasi myös.
+token_name_exists=Saman nimen tunnus on jo olemassa.
+
+orgs.none=Et ole yhdenkään organisaation jäsen.
+orgs.leave_title=Poistu organisaatiosta
+orgs.leave_desc=Menetät oikeudet kaikkiin niihin repoihin ja tiimeihin joihin organisaatio on sinulle oikeudet antanut. Haluatko varmasti jatkaa?
+
+repos.leave=Poistu
+repos.leave_title=Poistu tietosäilöstä
+repos.leave_desc=Menetät pääsyn tietosäilöön poistuessasi. Haluatko jatkaa?
+repos.leave_success=Olet poistunut tietosäilöstä '%s' onnistuneesti!
delete_account=Poista tilisi
delete_prompt=Toiminto poistaa tilisi pysyvästi ja tätä EI VOI peruuttaa myöhemmin!
@@ -345,53 +400,57 @@ delete_account_desc=Tämä tili poistetaan lopullisesti, haluatko jatkaa?
[repo]
owner=Omistaja
-repo_name=Repon nimi
-repo_name_helper=Hyvä repon nimi yleensä koostuu lyhyistä, mieleenpainuvista ja ainutlaatuisista avainsanoista.
+repo_name=Tietosäilön nimi
+repo_name_helper=Hyvä tietosäilönimi yleensä koostuu lyhyistä, mieleenpainuvista ja ainutlaatuisista avainsanoista.
visibility=Näkyvyys
-visiblity_helper=Tämä repo on yksityinen
-visiblity_helper_forced=Sivuston ylläpito on pakottanut kaikkien uusien repojen olevan yksityisiä
-visiblity_fork_helper=(Arvon vaihtaminen vaikuttaa kaikkiin forkkeihin)
+unlisted=Listaamaton
+visiblity_helper=Tämä tietosäilö on yksityinen
+unlisted_helper=Tämä tietosäilö on listaamaton
+visiblity_helper_forced=Sivuston ylläpito on pakottanut kaikkien uusien tietosäilöjen olevan yksityisiä
+visiblity_fork_helper=(Arvon vaihtaminen vaikuttaa kaikkiin haarautuksiin)
clone_helper=Tarvitsetko apua kloonauksessa? Vieraile osoitteessa Apua!
-fork_repo=Forkkaa repo
-fork_from=Forkkaa lähteestä
-fork_visiblity_helper=Et voi muuttaa forkatun repon näkyvyyttä.
+fork_repo=Haarauta tietosäilö
+fork_from=Haarauta lähteestä
+fork_visiblity_helper=Et voi muuttaa haarautetun tietosäilön näkyvyyttä.
repo_desc=Kuvaus
repo_lang=Kieli
-repo_gitignore_helper=Select .gitignore templates
+repo_gitignore_helper=Valitse .gitignore malli
license=Lisenssi
license_helper=Valitse lisenssitiedosto
readme=Lueminut-tiedosto
readme_helper=Valitse Lueminut-malli
-auto_init=Alusta tämä repo valituilla tiedostoilla ja mallilla
-create_repo=Luo repo
-default_branch=Oletus branch
-mirror_prune=Prune
-mirror_prune_desc=Remove any remote-tracking references that no longer exist on the remote
+auto_init=Alusta tämä tietosäilö valituilla tiedostoilla ja mallilla
+create_repo=Luo tietosäilö
+default_branch=Oletus haara
+mirror_prune=Karsi
+mirror_prune_desc=Poista kaikki paikalliset seurantahaarat joiden vastaavia etähaaroja ei ole enää olemassa
mirror_interval=Peili aikaväli (tuntia)
mirror_address=Peili osoite
mirror_address_desc=Ole hyvä ja liitä osoitteeseen tarvittavat käyttäjätunnukset.
-mirror_last_synced=Last Synced
+mirror_last_synced=Synkronoitu viimeksi
watchers=Tarkkailijat
stargazers=Tähtiharrastajat
-forks=Haarat
+forks=Haarautukset
+repo_description_helper=Repon kuvaus. Enintään 512 merkkiä.
+repo_description_length=Käytettävissä olevat merkit
form.reach_limit_of_creation=Omistaja on saavuttanut maksimi luontirajan %d repoa.
-form.name_reserved=Repon nimi '%s' on varattu.
-form.name_pattern_not_allowed=Repon nimi mallia '%s' ei ole sallittu.
+form.name_not_allowed=Repon nimeä tai mallia %q ei ole sallittu.
need_auth=Tarvitaan lupa
migrate_type=Siirtotyyppi
migrate_type_helper=Tämä repo tulee olemaan peili
migrate_repo=Siirrä repo
-migrate.clone_address=Kloonaa osoite
-migrate.clone_address_desc=Tämä voi olla HTTP/HTTPS/GIT URL tai paikallisen palvelimen polku.
+migrate.clone_address=Monistuksen osoite
+migrate.clone_address_desc=Tämä voi olla HTTP/HTTPS/GIT URL.
+migrate.clone_address_desc_import_local=Paikallisen palvelimen kansiopolun käyttö repon migraatiossa on myös salittua.
migrate.permission_denied=Sinun ei sallita tuovan paikallisia repoja.
migrate.invalid_local_path=Virheellinen paikallinen polku, ei ole olemassa tai ei ole hakemisto.
+migrate.clone_address_resolved_to_blocked_local_address=Kloonausosoite ratkeaa paikallisverkko-osoitteeksi joka on täysin estetty.
migrate.failed=Siirto epäonnistui: %v
mirror_from=peilaus alkaen
-forked_from=forkattu lähteestä
-fork_from_self=Et voi forkata repoa jonka jo omistat!
+forked_from=haarautettu lähteestä
copy_link=Kopioi
copy_link_success=Kopioitu!
copy_link_error=Paina ⌘-C tai Ctrl-C kopioidaksesi
@@ -400,73 +459,87 @@ unwatch=Lopeta tarkkailu
watch=Tarkkaile
unstar=Peru ääni
star=Äänestä
-fork=Fork
+fork=Haarauta
no_desc=Ei kuvausta
quick_guide=Pikaopas
clone_this_repo=Kloonaa tämä repo
create_new_repo_command=Luo uusi repo komentoriviltä
-push_exist_repo=Työnnä olemassaoleva repo komentoriviltä
-repo_is_empty=Tämä repo on tyhjä, ole hyvä ja tule takaisin myöhemmin!
+push_exist_repo=Työnnä olemassa oleva tietosäilö komentoriviltä
+bare_message=Tässä repossa ei ole mitään sisältöä vielä.
-code=Koodi
-branch=Branch
+files=Tiedostot
+branch=Haara
tree=Puu
-filter_branch_and_tag=Suodata haara tai tagi
-branches=Branchit
-tags=Tagit
-issues=Ongelmat
-pulls=Pull-pyynnöt
-labels=Tunnisteet
+filter_branch_and_tag=Suodata haara tai tunniste
+branches=Haarat
+tags=Tunnisteet
+issues=Esitykset
+pulls=Vetopyynnöt
+labels=Leimat
milestones=Merkkipaalut
-commits=Commitit
+commits=Sitoutukset
+git_branches=Haarat
releases=Julkaisut
file_raw=Raaka
file_history=Historia
file_view_raw=Näytä raaka
file_permalink=Pysyvä linkki
-file_too_large=This file is too large to be shown
-
-editor.new_file=New file
-editor.upload_file=Upload file
-editor.edit_file=Edit file
-editor.preview_changes=Preview Changes
-editor.cannot_edit_non_text_files=Cannot edit non-text files
-editor.edit_this_file=Edit this file
-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 before editing the file
-editor.delete_this_file=Delete this file
-editor.must_have_write_access=You must have write access to make or propose changes to this file
-editor.file_delete_success=File '%s' has been deleted successfully!
-editor.name_your_file=Name your file...
-editor.filename_help=To add directory, just type it and press /. To remove a directory, go to the beginning of the field and press backspace.
-editor.or=or
-editor.cancel_lower=cancel
-editor.commit_changes=Commit Changes
-editor.add_tmpl=Add '%s/'
-editor.add=Add '%s'
-editor.update=Update '%s'
-editor.delete=Delete '%s'
-editor.commit_message_desc=Add an optional extended description...
-editor.commit_directly_to_this_branch=Commit directly to the %s branch.
-editor.create_new_branch=Create a new branch for this commit and start a pull request.
-editor.new_branch_name_desc=New branch name...
-editor.cancel=Cancel
-editor.filename_cannot_be_empty=Filename cannot be empty.
-editor.branch_already_exists=Branch '%s' already exists in this repository.
-editor.directory_is_a_file=Entry '%s' in the parent path is a file not a directory in this repository.
-editor.filename_is_a_directory=The filename '%s' is an existing directory in this repository.
-editor.file_editing_no_longer_exists=The file '%s' you are editing no longer exists in the repository.
-editor.file_changed_while_editing=File content has been changed since you started editing. Click here to see what have been changed or press commit again to overwrite those changes.
-editor.file_already_exists=A file with name '%s' already exists in this repository.
-editor.no_changes_to_show=There are no changes to show.
-editor.fail_to_update_file=Failed to update/create file '%s' with error: %v
-editor.add_subdir=Add subdirectory...
-editor.unable_to_upload_files=Failed to upload files to '%s' with error: %v
-editor.upload_files_to_dir=Upload files to '%s'
-
-commits.commits=Commitit
-commits.search=Etsi commiteista
+file_too_large=Tämä tiedosto on liian suuri näytettäväksi
+video_not_supported_in_browser=Selaimesi ei tue HTML5 video-avainsanaa.
+
+branches.overview=Yleiskatsaus
+branches.active_branches=Aktiiviset haarat
+branches.stale_branches=Passivoituneet haarat
+branches.all=Kaikki haarat
+branches.updated_by=Päivitetty %[1]s %[2]s
+branches.change_default_branch=Muuta oletushaaraa
+branches.default_deletion_not_allowed=Cannot delete the default branch.
+branches.protected_deletion_not_allowed=Cannot delete a protected branch.
+
+editor.new_file=Uusi tiedosto
+editor.upload_file=Liitä tiedosto
+editor.edit_file=Muokkaa tiedostoa
+editor.preview_changes=Muutosten esikatselu
+editor.cannot_edit_non_text_files=Voit editoida vain tekstitiedostoja
+editor.edit_this_file=Muokkaa tätä tiedostoa
+editor.must_be_on_a_branch=Haara täytyy olla valittuna jotta voit tehdä tai ehdottaa muutoksia tähän tiedostoon
+editor.fork_before_edit=Sinun täytyy haarautaa tästä tietosäilöstä ennen tiedoston muokkaamista
+editor.delete_this_file=Poista tämä tiedosto
+editor.must_have_write_access=Sinulla on kirjoitusoikeus tai ehdottaa muutoksia tiedostoon
+editor.file_delete_success=Tiedosto "%s" on poistettu onnistuneesti!
+editor.name_your_file=Nimeä tiedostosi...
+editor.filename_help=Lisää hakemisto, kirjoita se ja paina /. Poista hakemisto, siirry kentän alkuun ja paina ASKELPALAUTINTA.
+editor.or=tai
+editor.cancel_lower=peruuta
+editor.commit_changes=Sitouta muutokset
+editor.add_tmpl=Lisää '%s/'
+editor.add=Lisää "%s"
+editor.update=Päivitä '%s'
+editor.delete=Poista "%s"
+editor.commit_message_desc=Lisää valinnainen pidennetty kuvaus...
+editor.commit_directly_to_this_branch=Sitouta suoraan haaraan %s.
+editor.create_new_branch=Luo uusi kehityshaara tälle sitoutukselle tai tee vetopyyntö.
+editor.new_branch_name_desc=Uuden haaran nimi...
+editor.cancel=Peruuta
+editor.filename_cannot_be_empty=Tiedostonimi ei voi olla tyhjä.
+editor.branch_already_exists=Haara '%s' on jo olemassa tässä repossa.
+editor.directory_is_a_file=Annettu nimi '%s' on tiedosto, ei kansio.
+editor.file_is_a_symlink=Tiedosto '%s' on symlinkki jota ei voi muokata web-selaimesta.
+editor.filename_is_a_directory=Kansio nimeltä '%s' on jo olemassa tässä repossa.
+editor.file_editing_no_longer_exists=Tiedostoa '%s' jota olet muokkaamassa ei ole enää olemassa tässä repossa.
+editor.file_changed_while_editing=Tiedoston sisältöä on muutettu aloittamisesi jälkeen. Napsauta tästä nähdäksesi mitä on muutettu tai paina sitouta uudelleen kirjoittaaksesi muutosten päälle.
+editor.file_already_exists=Tiedosto '%s' on jo olemassa tässä repossa.
+editor.no_changes_to_show=Ei muutoksia näytettäväksi.
+editor.fail_to_update_file=Tiedoston '%s' päivitys/luonti epäonnistui virheeseen: %v
+editor.fail_to_delete_file=Tiedoston '%s' poistaminen epäonnistui virheellä: %v
+editor.add_subdir=Lisää alikansio...
+editor.unable_to_upload_files=Tiedostojen lataus epäonnistui kansioon '%s' virheellä: %v
+editor.upload_files_to_dir=Lataa tiedostoja kansioon '%s'
+
+commits.commit_history=Sitoutushistoria
+commits.commits=Sitoutukset
+commits.search=Etsi sitoutuksista
commits.find=Etsi
commits.author=Tekijä
commits.message=Viesti
@@ -474,10 +547,10 @@ commits.date=Päivämäärä
commits.older=Vanhemmat
commits.newer=Uudemmat
-issues.new=Uusi ongelma
-issues.new.labels=Tunnisteet
-issues.new.no_label=Ei tunnistetta
-issues.new.clear_labels=Tyhjennä tunnisteet
+issues.new=Uusi esitys
+issues.new.labels=Leimat
+issues.new.no_label=Ei leimaa
+issues.new.clear_labels=Tyhjennä leimavalinta
issues.new.milestone=Merkkipaalu
issues.new.no_milestone=Ei merkkipaalua
issues.new.clear_milestone=Tyhjennä merkkipaalu
@@ -486,25 +559,25 @@ issues.new.closed_milestone=Suljetut merkkipaalut
issues.new.assignee=Osoitettu
issues.new.clear_assignee=Tyhjennä osoitettu
issues.new.no_assignee=Ei osoitettua
-issues.create=Ilmoita ongelma
-issues.new_label=Uusi tunniste
-issues.new_label_placeholder=Tunnisteen nimi...
-issues.create_label=Luo tunniste
-issues.label_templates.title=Load a predefined set of labels
-issues.label_templates.info=There aren’t any labels yet. You can click on the "New Label" button above to create one or use a predefined set below.
-issues.label_templates.helper=Select a label set
-issues.label_templates.use=Use this label set
-issues.label_templates.fail_to_load_file=Failed to load label template file '%s': %v
+issues.create=Luo esitys
+issues.new_label=Uusi leima
+issues.new_label_placeholder=Leiman nimi...
+issues.create_label=Luo leima
+issues.label_templates.title=Lataa ennaltamääritelty leimajoukko
+issues.label_templates.info=Täällä ei ole vielä leimoja. Voit luoda uuden napsauttamalla "Uusi leima" tai käyttää ennaltamääriteltyä leimajoukkoa alta.
+issues.label_templates.helper=Valitse leimajoukko
+issues.label_templates.use=Käytä tätä leimajoukkoa
+issues.label_templates.fail_to_load_file=Leimamallin lataus epäonnistui tiedostosta '%s': %v
issues.open_tab=%d avoinna
issues.close_tab=%d suljettu
-issues.filter_label=Tunniste
-issues.filter_label_no_select=Ei valittua tunnistetta
+issues.filter_label=Leima
+issues.filter_label_no_select=Ei leimaa valittuna
issues.filter_milestone=Merkkipaalu
issues.filter_milestone_no_select=Ei valittua merkkipaalua
issues.filter_assignee=Osoitettu
issues.filter_assginee_no_select=Ei valittua osoitettua
issues.filter_type=Tyyppi
-issues.filter_type.all_issues=Kaikki ongelmat
+issues.filter_type.all_issues=Kaikki esitykset
issues.filter_type.assigned_to_you=Osoitettu sinulle
issues.filter_type.created_by_you=Ilmoittamasi
issues.filter_type.mentioning_you=Jotka mainitsee sinut
@@ -522,8 +595,8 @@ issues.next=Seuraava
issues.open_title=Avoinna
issues.closed_title=Suljettu
issues.num_comments=%d kommenttia
-issues.commented_at=`commented %s`
-issues.delete_comment_confirm=Are you sure you want to delete this comment?
+issues.commented_at=`kommentoitu %s`
+issues.delete_comment_confirm=Haluatko varmasti poistaa tämän kommentin?
issues.no_content=Sisältöä ei vielä ole.
issues.close_issue=Sulje
issues.close_comment_issue=Kommentoi ja sulje
@@ -532,53 +605,59 @@ issues.reopen_comment_issue=Kommentoi ja avaa uudelleen
issues.create_comment=Kommentoi
issues.closed_at=`suljettu %[2]s`
issues.reopened_at=`avattu uudelleen %[2]s`
-issues.commit_ref_at=`viittasi tähän ongelmaan commitissa %[2]s`
+issues.commit_ref_at=`viittasi tähän esitykseen sitoutuksesta %[2]s`
issues.poster=Tekijä
issues.collaborator=Yhteistyökumppani
issues.owner=Omistaja
-issues.sign_in_require_desc=Sign in to join this conversation.
+issues.sign_in_require_desc=Kirjaudu sisään osallistuaksesi tähän keskusteluun.
issues.edit=Muokkaa
issues.cancel=Peruuta
issues.save=Tallenna
-issues.label_title=Tunnisteen nimi
-issues.label_color=Tunnisteen väri
-issues.label_count=%d tunnistetta
-issues.label_open_issues=%d avointa ongelmaa
+issues.label_title=Leiman nimi
+issues.label_color=Leiman väri
+issues.label_count=%d leimaa
+issues.label_open_issues=%d avointa esitystä
issues.label_edit=Muokkaa
issues.label_delete=Poista
-issues.label_modify=Tunnisteen muokkaus
-issues.label_deletion=Tunnisteen poistaminen
-issues.label_deletion_desc=Tämän tunnisteen poistaminen poistaa sen tiedot kaikista siihen liittyvistä ongelmista. Haluatko jatkaa?
-issues.label_deletion_success=Tunniste on poistettu onnistuneesti!
+issues.label_modify=Leiman muokkaus
+issues.label_deletion=Leiman poistaminen
+issues.label_deletion_desc=Tämän leiman poistaminen kadottaa sen kaikista esityksistä. Haluatko jatkaa?
+issues.label_deletion_success=Leima on poistettu onnistuneesti!
issues.num_participants=%d osallistujaa
-issues.attachment.open_tab=`Click to see "%s" in a new tab`
-issues.attachment.download=`Click to download "%s"`
+issues.attachment.open_tab=`Napsauta nähdäksesi "%s" uudessa välilehdessä`
+issues.attachment.download=`Napsauta ladataksesi "%s"`
-pulls.new=Uusi pull pyyntö
+pulls.new=Uusi vetopyyntö
pulls.compare_changes=Vertaa muutoksia
-pulls.compare_changes_desc=Vertaa kahta branchia ja tee pull-pyyntö muutoksista.
-pulls.compare_base=base
+pulls.compare_changes_desc=Vertaa kahta haaraa ja tee vetopyyntö muutoksista.
+pulls.compare_base=pohja
pulls.compare_compare=vertaa
-pulls.filter_branch=Suodata branch
+pulls.filter_branch=Suodata haara
pulls.no_results=Tuloksia ei löytynyt.
pulls.nothing_to_compare=Ei ole mitään verrattavaa koska base ja head branchit ovat tasoissa.
+pulls.nothing_merge_base=Ei ole mitään verrattavaa, koska kahdella haaralla on täysin erilainen historia.
pulls.has_pull_request=`On olemassa jo pull pyyntö näiden kohteiden välillä: %[2]s#%[3]d`
-pulls.create=Luo Pull-pyyntö
-pulls.title_desc=haluaa yhdistää %[1]d committia lähteestä %[2]s kohteeseen %[3]s
-pulls.merged_title_desc=yhdistetty %[1]d committia lähteestä %[2]s kohteeseen %[3]s %[4]s
+pulls.create=Luo vetopyyntö
+pulls.title_desc=haluaa liittää %[1]d sitoutusta lähteestä %[2]s kohteeseen %[3]s
+pulls.merged_title_desc=liitetty %[1]d sitoutusta lähteestä %[2]s kohteeseen %[3]s %[4]s
pulls.tab_conversation=Keskustelu
-pulls.tab_commits=Commitit
-pulls.tab_files=Muuttuneet tiedostot
-pulls.reopen_to_merge=Ole hyvä ja avaa uudelleen tämä pull-pyyntö suorittaaksesi yhdistämisen.
-pulls.merged=Yhdistetty
-pulls.has_merged=Tämä pull-pyyntö on yhdistetty onnistuneesti!
-pulls.data_broken=Tämän pull-pyynnön tiedot ovat rikkoutuneet koska fork tiedot on poistettu.
+pulls.tab_commits=Sitoutukset
+pulls.tab_files=Muutetut tiedostot
+pulls.reopen_to_merge=Ole hyvä ja avaa tämä vetopyyntö uudelleen liittääksesi.
+pulls.merged=Liitetty
+pulls.has_merged=Tämä vetopyyntö on liitetty onnistuneesti!
+pulls.data_broken=Tämän vetopyynnön tiedot ovat hajonneet poistettujen haarautustietojen vuoksi.
pulls.is_checking=Konfliktin tarkistus on yhä meneillään, ole hyvä ja päivitä sivu hetken kuluttua.
-pulls.can_auto_merge_desc=Tämä pull-pyyntö voidaan yhdistää automaattisesti.
-pulls.cannot_auto_merge_desc=Tätä pull-pyyntöä ei voi yhdistää automaattisesti koska on konflikteja.
-pulls.cannot_auto_merge_helper=Ole hyvä ja yhdistä manuaalisesti konfliktien ratkaisemiseksi.
-pulls.merge_pull_request=Yhdistä Pull-pyyntö
+pulls.can_auto_merge_desc=Tämä vetopyyntö voidaan yhdistää automaattisesti.
+pulls.cannot_auto_merge_desc=Tätä vetopyyntöä ei voi liittää automaattisesti konfliktien takia.
+pulls.cannot_auto_merge_helper=Ole hyvä ja liitä manuaalisesti konfliktien ratkaisemiseksi.
+pulls.create_merge_commit=Luo liitossitoutus
+pulls.rebase_before_merging=Sulauta ennen yhdistämistä
+pulls.commit_description=Sitoutuksen kuvaus
+pulls.merge_pull_request=Liitä vetopyyntö
pulls.open_unmerged_pull_exists=`Et voi suorittaa uudelleenavaus toimintoa koska on jo olemassa pull-pyyntö (#%d) samasta reposta samoilla yhdistämistiedoilla ja odottaa yhdistämistä.`
+pulls.delete_branch=Poista haara
+pulls.delete_branch_has_new_commits=Kehityshaaraa ei voida poistaa, koska siihen on tullut uusia sitoutuksia liitoksen jälkeen.
milestones.new=Uusi merkkipaalu
milestones.open_tab=%d avoinna
@@ -611,7 +690,7 @@ wiki.create_first_page=Luo ensimmäinen sivu
wiki.page=Sivu
wiki.filter_page=Suodatin sivu
wiki.new_page=Luo uusi sivu
-wiki.default_commit_message=Kirjoita huomautus tähän päivitykseen (valinnainen).
+wiki.default_commit_message=Kirjoita viesti tästä päivityksestä (valinnainen).
wiki.save_page=Tallenna sivu
wiki.last_commit_info=%s muokkasi tätä sivua %s
wiki.edit_page_button=Muokkaa
@@ -625,35 +704,65 @@ wiki.last_updated=Viimeksi päivitetty: %s
settings=Asetukset
settings.options=Valinnaiset
settings.collaboration=Yhteistyö
-settings.collaboration.admin=Admin
-settings.collaboration.write=Write
-settings.collaboration.read=Read
-settings.collaboration.undefined=Undefined
+settings.collaboration.admin=Ylläpitäjä
+settings.collaboration.write=Kirjoita
+settings.collaboration.read=Lue
+settings.collaboration.undefined=Määrittelemätön
+settings.branches=Haarat
+settings.branches_bare=Et voi hallita haaroja tyhjässä repossa. Lisää jotain sisältöä ensin.
+settings.default_branch=Oletushaara
+settings.default_branch_desc=Oletushaaraa käytetään "pohjahaarana" sitoutuksille, vetopyynnöille ja sivustolla toteutetuille muokkauksille.
+settings.update=Päivitä
+settings.update_default_branch_unsupported=Palvelimella oleva Git-versio ei tue oletushaaran vaihtamista.
+settings.update_default_branch_success=Repositoryn oletushaara päivitetty!
+settings.protected_branches=Suojatut haarat
+settings.protected_branches_desc=Suojaa kehityshaaroja pakkotyönnöiltä, vahinkopoistamisilta ja sallituilta sitouttajilta.
+settings.choose_a_branch=Valitse haara...
+settings.branch_protection=Haaran suojaus
+settings.branch_protection_desc=Valitse suojausasetus haaralle %s.
+settings.protect_this_branch=Suojaa tämä haara
+settings.protect_this_branch_desc=Kiellä pakoteut push-operaatiot ja estä poistaminen.
+settings.protect_require_pull_request=Vaadi pull-pyyntö suoran push-operaation sijaan
+settings.protect_require_pull_request_desc=Ota tämä asetus käyttöön estääksesi suorat työnnöt tähän kehityshaaraan. Sitoutukset täytyy työntää ei-suojattuun kehityshaaraan ja liittää tähän kehityshaaraan vetopyynnön kautta.
+settings.protect_whitelist_committers=Lista sallituista, jotka voivat työntää tähän kehityshaaraan
+settings.protect_whitelist_committers_desc=Lisää käyttäjiä tai tiimejä sallittuihin jotka saavat työntää tähän kehityshaaraan. Sallitut käyttäjät voivat ohittaa vaatimuksen vetopyyntöjen tekemisestä.
+settings.protect_whitelist_users=Käyttäjät jotka voivat pushata tähän haaraan
+settings.protect_whitelist_search_users=Etsi käyttäjiä
+settings.protect_whitelist_teams=Tiimit joiden jäsenet voivat pushata tähän haaraan
+settings.protect_whitelist_search_teams=Etsi tiimejä
+settings.update_protect_branch_success=Tämän haaran suojausasetukset on päivitetty!
settings.hooks=Webkoukut
-settings.githooks=Git koukut
+settings.githooks=Git-koukut
settings.basic_settings=Perusasetukset
-settings.mirror_settings=Mirror Settings
-settings.sync_mirror=Sync Now
-settings.mirror_sync_in_progress=Mirror syncing is in progress, please refresh page in about a minute.
+settings.mirror_settings=Peilauksen asetukset
+settings.sync_mirror=Synkronisoi nyt
+settings.mirror_sync_in_progress=Peilaus käynnissä. Päivitä sivu minuutin kuluttua uudelleen.
settings.site=Virallinen sivusto
settings.update_settings=Päivitä asetukset
settings.change_reponame_prompt=Tämä muutos vaikuttaa siihen miten linkit liittyvät repoon.
settings.advanced_settings=Lisäasetukset
-settings.wiki_desc=Enable wiki system
-settings.use_internal_wiki=Use builtin wiki
+settings.wiki_desc=Ota wiki käyttöön
+settings.use_internal_wiki=Käytä sisäänrakennettua wikiä
+settings.allow_public_wiki_desc=Salli julkinen pääsy wikiin kun repo on yksityinen
settings.use_external_wiki=Käytä ulkoista wikiä
-settings.external_wiki_url=Ulkoinen Wiki URL
-settings.external_wiki_url_desc=Vierailijat uudelleenohjataan URL-osoitteeseen kun he klikkaavat välilehteä.
-settings.issues_desc=Enable issue tracker
-settings.use_internal_issue_tracker=Use builtin lightweight issue tracker
-settings.use_external_issue_tracker=Käytä ulkoista vikaseurantaa
-settings.tracker_url_format=Ulkoisen vikaseurannan URL muoto
-settings.tracker_issue_style=External Issue Tracker Naming Style:
-settings.tracker_issue_style.numeric=Numeric
-settings.tracker_issue_style.alphanumeric=Alphanumeric
+settings.external_wiki_url=Ulkoisen wikin osoite
+settings.external_wiki_url_desc=Vierailijat uudelleenohjataan URL-osoitteeseen kun he napsauttavat välilehteä.
+settings.issues_desc=Ota esitystenseuranta käyttöön
+settings.use_internal_issue_tracker=Käytä kevyttä, sisäänrakennettua esitystenseurantaa
+settings.allow_public_issues_desc=Salli julkinen pääsy esityksiin tietosäilön ollessa yksityinen
+settings.use_external_issue_tracker=Käytä ulkoista esitystenseurantaa
+settings.external_tracker_url=Ulkoisen virheenseurannan URL
+settings.external_tracker_url_desc=Vierailijat ohjataan URL-osoitteeseen kun he napsauttavat välilehteä.
+settings.tracker_url_format=Ulkoisen vikaseurannan osoitteen muoto
+settings.tracker_issue_style=Ulkoisen esitystenseurannan nimeämistyyli:
+settings.tracker_issue_style.numeric=Numeerinen
+settings.tracker_issue_style.alphanumeric=Aakkosnumeerinen
settings.tracker_url_format_desc=Voit käyttää paikkamerkkiä {user} {repo} {index} käyttäjänimelle, reponimelle ja vikanumerolle.
-settings.pulls_desc=Ota käyttöön pull-pyynnöt salliaksesi julkiset koodilahjoitukset
+settings.pulls_desc=Ota käyttöön pull-pyynnöt hyväksyäksesi vastaanotettua koodia repojen ja haarojen välillä
+settings.pulls.ignore_whitespace=Ohita tyhjämerkkien muutokset
+settings.pulls.allow_rebase_merge=Salli sitoutusten sulauttaminen
settings.danger_zone=Vaaravyöhyke
+settings.cannot_fork_to_same_owner=Et voi haarauttaa tietosäilöä alkuperäiselle omistajalle.
settings.new_owner_has_same_repo=Uudella omistajalla on jo samanniminen repo. Ole hyvä ja valitse toinen nimi.
settings.convert=Muunna tavalliseksi repoksi
settings.convert_desc=Voit muuntaa tämän peilin tavalliseksi repoksi. Tätä ei voi peruuttaa.
@@ -673,9 +782,9 @@ settings.delete=Poista tämä repo
settings.delete_desc=Huomio, kun kerran poistat repon, niin ei ole paluuta. Varmista että haluat todella tehdä tämän.
settings.delete_notices_1=- Tätä toimintoa EI VOI peruuttaa myöhemmin.
settings.delete_notices_2=- Tämä toiminto poistaa pysyvästi kaikki tästä reposta, mukaanlukien Git tiedot, ongelmat, kommentit ja yhteistyökumppanien pääsyoikeudet.
-settings.delete_notices_fork_1=- All forks will become independent after deletion.
+settings.delete_notices_fork_1=- Kaikki haarautukset muuttuvat itsenäisiksi poiston jälkeen.
settings.deletion_success=Repo on poistettu onnistuneesti!
-settings.update_settings_success=Repom asetukset on päivitetty onnistuneesti.
+settings.update_settings_success=Repon asetukset on päivitetty onnistuneesti.
settings.transfer_owner=Uusi omistaja
settings.make_transfer=Tee siirto
settings.transfer_succeed=Arkiston omistusoikeus on siirretty onnistuneesti.
@@ -684,46 +793,62 @@ settings.add_collaborator=Lisää uusi yhteistyökumppani
settings.add_collaborator_success=Uusi yhteistyökumppani on lisätty.
settings.delete_collaborator=Poista
settings.collaborator_deletion=Yhteistyökumppanin poistaminen
-settings.collaborator_deletion_desc=Tällä käyttäjällä ei tule enää olemaan yhteistyö pääsyä tähän repoon poistamisen jälkeen. Haluatko jatkaa?
+settings.collaborator_deletion_desc=Tällä käyttäjällä ei tule enää olemaan yhteistyöpääsyä tähän repoon poistamisen jälkeen. Haluatko jatkaa?
settings.remove_collaborator_success=Yhteistyökumppani on poistettu.
settings.search_user_placeholder=Etsi käyttäjä...
settings.org_not_allowed_to_be_collaborator=Yhteistyökumppaniksi ei voi lisätä organisaatiota.
-settings.user_is_org_member=Käyttäjä on organisaation jäsen, jota ei voi lisätä yhteistyökumppaniksi.
+settings.hooks_desc=Webkoukut muistuttavat paljon perus HTTP POST -tapahtumalaukaisimia. Aina kun jotain tapahtuu Gogsissa, käsittelemme ilmoituksen määrittäämääsi kohteeseen. Lisätietoja webkoukku-oppaassa.
+settings.webhooks.add_new=Lisää uusi webkoukku:
+settings.webhooks.choose_a_type=Valitse tyyppi...
settings.add_webhook=Lisää webkoukku
-settings.hooks_desc=Webkoukut muistuttavat paljon perus HTTP POST tapahtuma laukaisimia. Aina kun jotain tapahtuu Gogsissa, käsittelemme ilmoituksen määrittäämääsi kohteeseen. Lisätietoja webkoukku oppaassa.
settings.webhook_deletion=Poista webkoukku
settings.webhook_deletion_desc=Tämän webkoukun poistaminen poistaa sen tiedot ja kaiken toimitushistorian. Haluatko jatkaa?
settings.webhook_deletion_success=Webkoukku on poistettu onnistuneesti!
settings.webhook.test_delivery=Testitoimitus
settings.webhook.test_delivery_desc=Lähetä väärennetty push toimitusjakelu testataksesi webkoukku asetuksia
settings.webhook.test_delivery_success=Testi webkoukku on lisätty toimitusjonoon. Muutama sekunti voi mennä ennenkuin se näkyy toimitushistoriassa.
+settings.webhook.redelivery=Uudelleentoimitus
+settings.webhook.redelivery_success=Koukku tehtävä "%s" on lisätty uudelleen toimitusjonoon. Toimitustilan päivittäminen toimitushistoriaan voi kestää muutaman sekunnin.
settings.webhook.request=Pyyntö
settings.webhook.response=Vastaus
settings.webhook.headers=Otsikot
settings.webhook.payload=Payload
settings.webhook.body=Body
+settings.webhook.err_cannot_parse_payload_url=Ei voida jäsentää hyötykuorman URL: %v
+settings.webhook.url_resolved_to_blocked_local_address=Tietokuorman URL-osoite ratkaistiin paikallisverkko-osoitteeksi, joka on erityisesti estetty.
settings.githooks_desc=Git koukkujen voimanlähteenä on Git itse, voit muokata tuettujen koukkujen tiedostoja allaolevassa luettelossa suorittaaksesi mukautettuja toimintoja.
settings.githook_edit_desc=Jos koukku ei ole käytössä, esitellään esimerkkisisältö. Sisällön jättäminen tyhjäksi arvoksi poistaa tämän koukun käytöstä.
settings.githook_name=Koukun nimi
settings.githook_content=Koukun sisältö
settings.update_githook=Päivitys koukku
-settings.add_webhook_desc=Gogs lähettää POST requestin määrittämääsi URLiin, mukaanlukien tapahtuneen eventin. Voit myös määrittää millaisen tiedostomuodon haluat saada koukun lauettua (JSON, x-www-form-urlencoded, XML, jne). Lisätietoa löytyy meidän koukut oppaasta.
+settings.add_webhook_desc=Gogs lähettää POST-pyynnön määrittämääsi osoitteeseen, sekä tapahtunutta tapahtumaa koskevat lisätiedot. Voit myös määrittää millaisen tiedostomuodon haluat saada koukun lauettua (JSON, x-www-form-urlencoded, XML, jne). Lisätietoa löytyy koukut-oppaastamme.
settings.payload_url=Payload URL
settings.content_type=Sisältötyyppi
settings.secret=Salaus
+settings.secret_desc=Salaisuus lähetetään SHA256 HMAC hex digest payloadina X-Gogs-Signature headerilla.
settings.slack_username=Käyttäjätunnus
settings.slack_icon_url=Kuvakkeen URL
settings.slack_color=Väri
settings.event_desc=Milloin pitäisi tämän webkoukun laueta?
-settings.event_push_only=Vain push tilanteessa.
+settings.event_push_only=Vain push-komennolla.
settings.event_send_everything=Tarvitsen kaiken.
settings.event_choose=Haluan valita, mitä tarvitsen.
settings.event_create=Luo
-settings.event_create_desc=Branch, tai tagi luotu
-settings.event_pull_request=Pull Request
-settings.event_pull_request_desc=Pull request opened, closed, reopened, edited, assigned, unassigned, label updated, label cleared, or synchronized.
-settings.event_push=Push
-settings.event_push_desc=Git push repoon
+settings.event_create_desc=Kehityshaara tai tunniste luotu
+settings.event_delete=Poista
+settings.event_delete_desc=Kehityshaara tai tunniste poistettu
+settings.event_fork=Haarautus
+settings.event_fork_desc=Tietosäilö haarautettu
+settings.event_push=Työntö
+settings.event_push_desc=Git työntö tietosäilöön
+settings.event_issues=Esitykset
+settings.event_issues_desc=Esitys avattu, suljettu, uudelleenavattu, muokattu, annettu, anto vedottu, leima päivitetty, leima poistettu, merkkipaalutettu, tai merkkipaalutus vedottu.
+settings.event_pull_request=Pull-pyyntö
+settings.event_pull_request_desc=Vetopyyntö avattu, suljettu, uudelleenavattu, muokattu, annettu, anto vedottu, leima päivitetty, leima poistettu, merkkipaalutettu, merkkipaalutus vedottu, tai synkronoitu.
+settings.event_issue_comment=Ongelman kommentti
+settings.event_issue_comment_desc=Ongelman kommentti luotu, muokattu, tai poistettu.
+settings.event_release=Julkaisu
+settings.event_release_desc=Julkaisu julkaistu repoon.
settings.active=Aktiivinen
settings.active_helper=Yksityiskohdat koskien tapahtumaa joka laukaisi koukun toimitetaan myös.
settings.add_hook_success=Uusi webkoukku on lisätty.
@@ -732,11 +857,14 @@ settings.update_hook_success=Webkoukku on päivitetty.
settings.delete_webhook=Poista webkoukku
settings.recent_deliveries=Viimeisimmät toimitukset
settings.hook_type=Koukkutyyppi
-settings.add_slack_hook_desc=Lisää Slack integraatio repoosi.
+settings.add_slack_hook_desc=Lisää Slack-integraatio repoosi.
+settings.add_discord_hook_desc=Lisää Discord-integraatio repositoryysi.
+settings.add_dingtalk_hook_desc=Lisää Dingtalk-integraatio repositoryysi.
settings.slack_token=Pääsymerkki
settings.slack_domain=Verkkotunnus
settings.slack_channel=Kanava
settings.deploy_keys=Deploy avaimet
+settings.deploy_keys_helper=Huomautus! Voit lisätä julkiset avaimesi tilisi asetuksissa.
settings.add_deploy_key=Lisää deploy avain
settings.deploy_key_desc=Deploy avaimilla on vain luku-oikeudet. Ne eivät ole sama asia kuin henkilökohtaiset SSH avaimet.
settings.no_deploy_keys=Et ole lisännyt yhtään deploy avainta.
@@ -748,10 +876,12 @@ settings.add_key_success=Uusi deploy avain '%s' on lisätty onnistuneesti!
settings.deploy_key_deletion=Poista deploy avain
settings.deploy_key_deletion_desc=Deploy avaimen poistaminen poistaa myös kaikki liitetyt käyttötiedot tästä reposta. Haluatko jatkaa?
settings.deploy_key_deletion_success=Deploy avain on poistettu onnistuneesti!
+settings.description_desc=Repon kuvaus. Enintään 512 merkkiä.
+settings.description_length=Käytettävissä olevat merkit
diff.browse_source=Selaa lähdekoodia
diff.parent=vanhempi
-diff.commit=commit
+diff.commit=sitoutus
diff.data_not_available=Diff tiedot eivät ole saatavilla.
diff.show_diff_stats=Näytä diff tilastot
diff.show_split_view=Jaettu näkymä
@@ -759,22 +889,21 @@ diff.show_unified_view=Yhdistetty näkymä
diff.stats_desc=%d muutettua tiedostoa jossa %d lisäystä ja %d poistoa
diff.bin=BIN
diff.view_file=Näytä tiedosto
-diff.file_suppressed=File diff suppressed because it is too large
-diff.too_many_files=Some files were not shown because too many files changed in this diff
+diff.file_suppressed=Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+diff.too_many_files=Kaikkia tiedostoja ei voida näyttää, sillä liian monta tiedostoa muuttui tässä diffissä
release.releases=Julkaisut
release.new_release=Uusi julkaisu
release.draft=Työversio
release.prerelease=Esiversio
-release.stable=Vakaa
release.edit=muokkaa
-release.ahead=%d committia kohteeseen %s version jälkeen
+release.ahead=%d sitoutusta kehityshaaraan %s tämän julkaisun jälkeen
release.source_code=Lähdekoodi
release.new_subheader=Julkaise versioita iteroidaksesi tuotetta.
release.edit_subheader=Yksityskohtainen muutosloki auttaa käyttäjiä ymmärtämään mitä on parannettu.
-release.tag_name=Taginimi
+release.tag_name=Tunnisteen nimi
release.target=Kohde
-release.tag_helper=Valitse olemassaoleva tagi, tai luo uusi tagi julkaistaessa.
+release.tag_helper=Valitse olemassa oleva tunniste, tai luo uusi tunniste julkaistaessa.
release.title=Otsikko
release.content=Sisältö
release.write=Kirjoita
@@ -788,10 +917,10 @@ release.save_draft=Tallenna luonnos
release.edit_release=Muokkaa versiota
release.delete_release=Poista tämä versio
release.deletion=Version poisto
-release.deletion_desc=Tämän version poistaminen poistaa vastaavan Git tagin. Haluatko jatkaa?
+release.deletion_desc=Tämän julkaisun poistaminen poistaa vastaavan Git-tunnisteen. Haluatko jatkaa?
release.deletion_success=Versio on poistettu onnistuneesti!
-release.tag_name_already_exist=Versio tällä taginimellä on jo olemassa.
-release.tag_name_invalid=Tag name is not valid.
+release.tag_name_already_exist=Julkaisu tällä tunniste nimellä on jo olemassa.
+release.tag_name_invalid=Tunnisteen nimi ei kelpaa.
release.downloads=Lataukset
[org]
@@ -813,8 +942,8 @@ team_name_helper=Käytät tätä nimeä mainitessasi tämän tiimin keskusteluis
team_desc_helper=Mistä on kyse tässä tiimissä?
team_permission_desc=Mikä käyttöoikeustaso tuliti tällä tiimillä olla?
-form.name_reserved=Organisaation nimi '%s' on varattu.
-form.name_pattern_not_allowed=Organisaation nimi mallia '%s' ei ole sallittu.
+form.name_not_allowed=Organisaation nimi tai malli %q ei ole sallittu.
+form.team_name_not_allowed=Tiimin nimi tai malli %q ei ole sallittu.
settings=Asetukset
settings.options=Valinnaiset
@@ -869,7 +998,7 @@ teams.write_permission_desc=Tämä tiimi myöntää kirjoitusoikeudenylläpito-oikeuden: jäsenet voivat lukea, pushata, ja lisätä yhteistyökumppaneita tiimin repoihin.
teams.repositories=Tiimin repot
teams.search_repo_placeholder=Etsi repo...
-teams.add_team_repository=Lisää tiimirepo
+teams.add_team_repository=Lisää tiimi-repository
teams.remove_repo=Poista
teams.add_nonexistent_repo=Repo jota yrität lisätä ei ole vielä olemassa, ole hyvä ja luo se ensin.
@@ -886,12 +1015,19 @@ first_page=Ensimmäinen
last_page=Viimeisin
total=Yhteensä: %d
+dashboard.build_info=Rakentamistiedot
+dashboard.app_ver=Sovellus versio
+dashboard.git_version=Git-versio
+dashboard.go_version=Go-versio
+dashboard.build_time=Rakentamisaika
+dashboard.build_commit=Koontisitoutus
dashboard.statistic=Statistiikka
dashboard.operations=Toiminnot
dashboard.system_status=Järjestelmänvalvonnan tila
-dashboard.statistic_info=Gogs tietokannassa on %d käyttäjää, %d organisaatiota, %d julkista avainta, %d repoa, %d tarkkailijaa, %d tähteä, %d toimea, %d sisäänkirjautunutta, %d ongelmaa, %d kommenttia, %d sosiaalista tiliä, %d seuraajaa, %d peiliä, %d julkaisua, %d kirjautumis lähdettä, %d webkoukkua, %d merkkipaalua, %d tunnistetta, %d koukku tehtävää, %d tiimiä, %d päivitys tehtävää, %d liitetiedostoa.
+dashboard.statistic_info=Gogs-tietokannassa on %d käyttäjää, %d organisaatiota, %d julkista avainta, %d repoa, %d tarkkailijaa, %d tähteä, %d toimea, %d sisäänkirjautunutta, %d ongelmaa, %d kommenttia, %d sosiaalista tiliä, %d seuraajaa, %d peiliä, %d julkaisua, %d kirjautumislähdettä, %d webkoukkua, %d merkkipaalua, %d tunnistetta, %d koukkutehtävää, %d tiimiä, %d päivitystehtävää, %d liitetiedostoa.
dashboard.operation_name=Toiminnon nimi
dashboard.operation_switch=Vaihda
+dashboard.select_operation_to_run=Valitse suoritettava toiminto
dashboard.operation_run=Suorita
dashboard.clean_unbind_oauth=Puhdista ei-liitetyt OAuthit
dashboard.clean_unbind_oauth_success=Kaikki ei-liitetyt OAuthit on poistettu onnistuneesti.
@@ -903,10 +1039,10 @@ dashboard.delete_missing_repos=Poista kaikki repo tietueet jotka menettivät Git
dashboard.delete_missing_repos_success=Kaikki repo tietueet jotka menettivät Git tiedostoja on poistettu onnistuneesti.
dashboard.git_gc_repos=Suorita roskienkeruu repoille
dashboard.git_gc_repos_success=Kaikki repot ovat tehneet roskienkeruun onnistuneesti.
-dashboard.resync_all_sshkeys=Uudelleenkirjoita '.ssh/authorized_keys' tiedosto (varoitus: ei-Gogs avaimet menetetään)
+dashboard.resync_all_sshkeys=Uudelleenkirjoita '.ssh/authorized_keys' -tiedosto (varoitus: ei-Gogs-avaimet menetetään)
dashboard.resync_all_sshkeys_success=Kaikki julkiset avaimet on uudelleenkirjoitettu onnistuneesti.
-dashboard.resync_all_update_hooks=Uudelleenkirjoita kaikki päivityskoukut repoista (tarvitaan mukautetun asetuspolun muuttuessa)
-dashboard.resync_all_update_hooks_success=Kaikki repojen päivityskoukut on uudelleenkirjoitettu onnistuneesti.
+dashboard.resync_all_hooks=Uudelleensynkronoi kaikkien repositoryjen "pre-receive, update ja post-receive" hookit.
+dashboard.resync_all_hooks_success=Kaikkien repositoryjen "pre-receive, update ja post-receive" hookit synkronoitu.
dashboard.reinit_missing_repos=Resetoi kaikki repo tietueet jotka menettivät Git tiedostoja
dashboard.reinit_missing_repos_success=Kaikki repo tietueet jotka menettivät Git tiedostoja on resetoitu onnistuneesti.
@@ -959,7 +1095,7 @@ users.edit_account=Muokkaa tiliä
users.max_repo_creation=Maksimi repojen määrä jonka voi luoda
users.max_repo_creation_desc=(Aseta -1 käyttääksesi globaalia oletusrajaa)
users.is_activated=Tämä tili on aktivoitu
-users.prohibit_login=This account is prohibited to login
+users.prohibit_login=Tämän käyttäjätilin sisäänkirjautuminen on estetty
users.is_admin=Tällä tilillä on ylläpito-oikeudet
users.allow_git_hook=Tällä tilillä on oikeudet luoda Git koukkuja
users.allow_import_local=Tällä tilillä on oikeudet tuoda paikallisia repoja
@@ -981,20 +1117,23 @@ repos.private=Yksityinen
repos.watches=Tarkkailijat
repos.stars=Äänet
repos.issues=Ongelmat
+repos.size=Koko
-auths.auth_manage_panel=Todennus hallintapaneeli
+auths.auth_sources=Todennuslähteet
auths.new=Lisää uusi lähde
auths.name=Nimi
auths.type=Tyyppi
auths.enabled=Käytössä
+auths.default=Oletus
auths.updated=Päivitetty
auths.auth_type=Todennustyyppi
auths.auth_name=Todennusnimi
-auths.security_protocol=Security Protocol
+auths.security_protocol=Suojausprotokolla
auths.domain=Verkkotunnus
auths.host=Isäntä
auths.port=Portti
auths.bind_dn=Liitä DN
+auths.bind_dn_helper=Voit käyttää '%s' käyttäjänimen paikkamerkkinä, esim. DOM\%s
auths.bind_password=Liitä salasana
auths.bind_password_helper=Varoitus: Tämä salasana tallennetaan tavallisena tekstinä. Älä käytä korkeasti etuoikeutetulla tilillä.
auths.user_base=Käyttäjä hakuperuste
@@ -1004,6 +1143,11 @@ auths.attribute_username_placeholder=Jätä tyhjäksi käyttääksesi kirjautumi
auths.attribute_name=Etunimen määrite
auths.attribute_surname=Sukunimen määrite
auths.attribute_mail=Sähköposti määrite
+auths.verify_group_membership=Varmista ryhmäjäsenyys
+auths.group_search_base_dn=Ryhmähaun perusosoite DN
+auths.group_filter=Ryhmäsuodatus
+auths.group_attribute_contain_user_list=Ryhmän määrite joka sisältää listan käyttäjistä
+auths.user_attribute_listed_in_group=Käyttäjän määrite listattuna ryhmässä
auths.attributes_in_bind=Nouda määritteet liitä DN sisällöstä
auths.filter=Käyttäjäsuodatin
auths.admin_filter=Ylläpitosuodatin
@@ -1017,9 +1161,9 @@ auths.enable_tls=Ota käyttöön TLS-salaus
auths.skip_tls_verify=Ohita TLS tarkistaminen
auths.pam_service_name=PAM palvelun nimi
auths.enable_auto_register=Ota käyttöön automaattinen rekisteröinti
-auths.tips=Vinkit
auths.edit=Muokkaa todennusasetusta
auths.activated=Tämä todennus on aktivoitu
+auths.default_auth=Tämä todennus on oletuskirjautumislähde
auths.new_success=Uusi todennus '%s' on luotu onnistuneesti.
auths.update_success=Todennusasetus on päivitetty onnistuneesti.
auths.update=Päivitä todennusasetus
@@ -1028,107 +1172,189 @@ auths.delete_auth_title=Todennuksen poistaminen
auths.delete_auth_desc=Tämä todennus poistetaan, haluatko jatkaa?
auths.still_in_used=Tämä todennus on yhä joidenkin käyttäjien käytössä, ole hyvä ja poista tai muunna nämä käyttäjät toiselle kirjaututumistyypille ensin.
auths.deletion_success=Todennus on poistettu onnistuneesti!
+auths.login_source_exist=Kirjautumislähde '%s' on jo olemassa
+auths.github_api_endpoint=API päätepiste
-config.server_config=Palvelin asetukset
-config.app_name=Sovellus nimi
-config.app_ver=Sovellus versio
-config.app_url=Sovellus URL
-config.domain=Verkkotunnus
-config.offline_mode=Offline-tila
-config.disable_router_log=Poista käytöstä reitittimen loki
+config.not_set=(ei ole asetettu)
+config.server_config=Palvelinasetukset
+config.brand_name=Tuotemerkin nimi
config.run_user=Suorita käyttäjänä
config.run_mode=Suoritustila
-config.repo_root_path=Repon juuren polku
-config.static_file_root_path=Staattisen tiedoston juuren polku
-config.log_file_root_path=Lokitiedoston juuren polku
-config.script_type=Komentosarjan tyyppi
-config.reverse_auth_user=Käänteinen todennus käyttäjä
+config.server.external_url=Ulkoinen osoite
+config.server.domain=Verkkotunnus
+config.server.protocol=Protokolla
+config.server.http_addr=HTTP-osoite
+config.server.http_port=HTTP-portti
+config.server.cert_file=Varmennetiedosto
+config.server.key_file=Avaintiedosto
+config.server.tls_min_version=Minimi TLS versio
+config.server.unix_socket_permission=Unix socketin käyttöoikeus
+config.server.local_root_url=Paikallinen ROOT-URL
+config.server.offline_mode=Yhteydetön tila
+config.server.disable_router_log=Poista käytöstä URL-reitittimen loki
+config.server.enable_gzip=Ota käyttöön Gzip
+config.server.app_data_path=Sovelluksen tietojen polku
+config.server.load_assets_from_disk=Lataa resurssit levyltä
+config.server.landing_url=Laskeutumis URL
config.ssh_config=SSH asetukset
-config.ssh_enabled=Käytössä
-config.ssh_start_builtin_server=Käynnistä sisäänrakennettu palvelin
-config.ssh_domain=Verkkotunnus
-config.ssh_port=Portti
-config.ssh_listen_port=Kuuntele porttia
-config.ssh_root_path=Juuren polku
-config.ssh_key_test_path=Polku jossa avaimet testataan
-config.ssh_keygen_path=Keygen ('ssh-keygen') polku
-config.ssh_minimum_key_size_check=Avaimen vähimmäiskoko tarkistus
-config.ssh_minimum_key_sizes=Avaimen vähimmäiskoot
+config.ssh.enabled=Käytössä
+config.ssh.domain=Paljastettu verkkotunnus
+config.ssh.port=Paljastettu portti
+config.ssh.root_path=Juuripolku
+config.ssh.keygen_path=Avaingeneraattorin polku
+config.ssh.key_test_path=Polku jossa avaimet testataan
+config.ssh.minimum_key_size_check=Avaimen vähimmäiskoko tarkistus
+config.ssh.minimum_key_sizes=Avaimen vähimmäiskoot
+config.ssh.rewrite_authorized_keys_at_start=Uudelleenkirjoita "authorized_keys" alussa
+config.ssh.start_builtin_server=Käynnistä sisäänrakennettu palvelin
+config.ssh.listen_host=Kuuntele porttia
+config.ssh.listen_port=Kuuntele porttia
+config.ssh.server_ciphers=Palvelimen cipherit
+config.ssh.server_macs=Serverin MAC-osoite
+config.ssh.server_algorithms=Palvelinalgoritmit
+
+config.repo_config=Repositoryn asetukset
+config.repo.root_path=Juuripolku
+config.repo.script_type=Komentosarjan tyyppi
+config.repo.ansi_chatset=ANSI merkkisetti
+config.repo.force_private=Pakota yksityiseksi
+config.repo.max_creation_limit=Enimmäis-luontiraja
+config.repo.preferred_licenses=Ensisijaiset lisenssit
+config.repo.disable_http_git=Poista käytöstä HTTP Git
+config.repo.enable_local_path_migration=Ota käyttöön paikallisen polun migraatio
+config.repo.enable_raw_file_render_mode=Ota käyttöön raakatiedoston renderöinti tila
+config.repo.commits_fetch_concurrency=Sitoutus noudon samanaikaisuus
+config.repo.editor.line_wrap_extensions=Muokkaimen rivityksen laajennukset
+config.repo.editor.previewable_file_modes=Muokkaimen tiedostomuodot joita voi esikatsella
+config.repo.upload.enabled=Tiedoston liittäminen käytössä
+config.repo.upload.temp_path=Tiedoston liittämisen väliaikainen polku
+config.repo.upload.allowed_types=Liitä sallitut tyypit
+config.repo.upload.file_max_size=Liitettyjen tiedostojen kokoraja
+config.repo.upload.max_files=Liitettyjen tiedostojen määrän raja
config.db_config=Tietokannan asetukset
-config.db_type=Tyyppi
-config.db_host=Isäntä
-config.db_name=Nimi
-config.db_user=Käyttäjä
-config.db_ssl_mode=SSL tila
-config.db_ssl_mode_helper=(vain "postgres")
-config.db_path=Polku
-config.db_path_helper=("sqlite3" ja "tidb")
-
-config.service_config=Palvelu asetukset
-config.register_email_confirm=Vaadi sähköpostivahvistus
-config.disable_register=Poista käytöstä rekisteröinti
-config.show_registration_button=Näytä rekisteröidy painike
-config.require_sign_in_view=Vaadi sisäänkirjautuminen nähdäksesi
-config.mail_notify=Sähköposti ilmoitukset
-config.disable_key_size_check=Poista käytöstä avaimen vähimmäiskoko tarkistus
-config.enable_captcha=Ota käyttöön Captcha
-config.active_code_lives=Aktiivinen koodi elämät ennen vanhenemista
-config.reset_password_code_lives=Nollaa salasana koodi elämät
+config.db.type=Tyyppi
+config.db.host=Isäntä
+config.db.name=Nimi
+config.db.schema=Skeema
+config.db.schema_helper=(koskee vain "postgresia")
+config.db.user=Käyttäjä
+config.db.ssl_mode=SSL-tila
+config.db.ssl_mode_helper=(vain "postgres")
+config.db.path=Polku
+config.db.path_helper=(vain "sqlite3")
+config.db.max_open_conns=Avointen yhteyksien enimmäismäärä
+config.db.max_idle_conns=Avointen joutokäyntiyhteyksien enimmäismäärä
+
+config.security_config=Turvallisuuden asetukset
+config.security.login_remember_days=Muista kirjautuminen päiviä
+config.security.cookie_remember_name=Muista eväste
+config.security.cookie_username=Käyttäjänimi eväste
+config.security.cookie_secure=Ota käyttöön turvallinen eväste
+config.security.reverse_proxy_auth_user=Käänteinen välityspalvelimen todennusotsikko
+config.security.enable_login_status_cookie=Ota käyttöön kirjautumisen tilaeväste
+config.security.login_status_cookie_name=Kirjautumisen tila eväste
+config.security.local_network_allowlist=Paikallisverkkopääsylista
+
+config.email_config=Sähköpostiasetukset
+config.email.enabled=Käytössä
+config.email.subject_prefix=Aiheen etuliite
+config.email.host=Isäntä
+config.email.from=Lähettäjä
+config.email.user=Käyttäjä
+config.email.disable_helo=Poista käytöstä HELO
+config.email.helo_hostname=HELO isäntänimi
+config.email.skip_verify=Ohita varmenteen tarkistaminen
+config.email.use_certificate=Käytä mukautettua varmennetta
+config.email.cert_file=Varmennetiedosto
+config.email.key_file=Avaintiedosto
+config.email.use_plain_text=Käytä pelkkää tekstiä
+config.email.add_plain_text_alt=Lisää pelkän tekstin vaihtoehto
+config.email.send_test_mail=Lähetä testisähköposti
+config.email.test_mail_failed=Testisähköpostin lähettäminen vastaanottajalle '%s' epäonnistui: %v
+config.email.test_mail_sent=Testi sähköposti on lähetetty vastaanottajalle '%s'.
+
+config.auth_config=Todennuksen asetukset
+config.auth_custom_logout_url=Custom logout URL
+config.auth.activate_code_lives=Aktiivinen koodi elämät ennen vanhenemista
+config.auth.reset_password_code_lives=Nollaa salasana koodi elämät
+config.auth.require_email_confirm=Vaadi sähköpostivahvistus
+config.auth.require_sign_in_view=Vaadi sisäänkirjautuminen nähdäksesi
+config.auth.disable_registration=Poista käytöstä rekisteröinti
+config.auth.enable_registration_captcha=Ota rekisteröityminen captcha käyttöön
+config.auth.enable_reverse_proxy_authentication=Ota käyttöön käänteinen välityspalvelimen todennus
+config.auth.enable_reverse_proxy_auto_registration=Ota käyttöön käänteinen välityspalvelimen automaattinen rekisteröinti
+config.auth.reverse_proxy_authentication_header=Käänteinen välityspalvelimen todennusotsikko
+
+config.user_config=Käyttäjän asetukset
+config.user.enable_email_notify=Ota käyttöön sähköposti ilmoitukset
-config.webhook_config=Webkoukku asetukset
-config.queue_length=Jonon pituus
-config.deliver_timeout=Toimitus aikakatkaisu
-config.skip_tls_verify=Ohita TLS tarkistaminen
-
-config.mailer_config=Sähköpostipalvelin asetukset
-config.mailer_enabled=Käytössä
-config.mailer_disable_helo=Poista käytöstä HELO
-config.mailer_name=Nimi
-config.mailer_host=Isäntä
-config.mailer_user=Käyttäjä
-config.send_test_mail=Lähetä testi sähköposti
-config.test_mail_failed=Testi sähköpostin lähettäminen vastaanottajalle '%s': %v epäonnistui
-config.test_mail_sent=Testi sähköposti on lähetetty vastaanottajalle '%s'.
-
-config.oauth_config=OAuth asetukset
-config.oauth_enabled=Käytössä
+config.session_config=Istunnon asetukset
+config.session.provider=Tarjoaja
+config.session.provider_config=Tarjoajan asetukset
+config.session.cookie_name=Eväste
+config.session.https_only=Vain HTTPS
+config.session.gc_interval=Roskienkeruun väli
+config.session.max_life_time=Maksimi elinaika
+config.session.csrf_cookie_name=CSRF-eväste
config.cache_config=Välimuistin asetukset
-config.cache_adapter=Välimuistin sovitin
-config.cache_interval=Välimuistin aikaväli
-config.cache_conn=Välimuistin yhteys merkkijono
-
-config.session_config=Istunnon asetukset
-config.session_provider=Istunnon toimittaja
-config.provider_config=Toimittajan asetukset
-config.cookie_name=Evästenimi
-config.enable_set_cookie=Ota käyttöön aseta eväste
-config.gc_interval_time=GC aikaväli aika
-config.session_life_time=Istunnon elinikä
-config.https_only=Vain HTTPS
-config.cookie_life_time=Evästeen elinikä
+config.cache.adapter=Adapteri
+config.cache.interval=Roskienkeruun väli
+config.cache.host=Isäntä
+
+config.http_config=HTTP-asetukset
+config.http.access_control_allow_origin=Käyttöoikeuden valvonta salli alkuperä
+
+config.attachment_config=Liitteen asetukset
+config.attachment.enabled=Käytössä
+config.attachment.path=Polku
+config.attachment.allowed_types=Sallitut tyypit
+config.attachment.max_size=Kokoraja
+config.attachment.max_files=Tiedostojen määrän raja
+
+config.release_config=Julkaisu asetukset
+config.release.attachment.enabled=Liite käytössä
+config.release.attachment.allowed_types=Liitteen sallitut tyypit
+config.release.attachment.max_size=Liitteen kokoraja
+config.release.attachment.max_files=Liitteiden määrän raja
config.picture_config=Kuva asetukset
-config.picture_service=Kuva palvelu
-config.disable_gravatar=Poista käytöstä Gravatar
-config.enable_federated_avatar=Enable Federated Avatars
-
-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
+config.picture.avatar_upload_path=Käyttäjän profiilikuvan tiedoston liittämisen polku
+config.picture.repo_avatar_upload_path=Repon profiilikuvan tiedoston liittämisen polku
+config.picture.gravatar_source=Gravatar-lähde
+config.picture.disable_gravatar=Poista Gravatar käytöstä
+config.picture.enable_federated_avatar=Ota käyttöön ulkopuoliset profiilikuvat
+
+config.mirror_config=Peilauksen asetukset
+config.mirror.default_interval=Oletus aikaväli
+
+config.webhook_config=Webkoukku asetukset
+config.webhook.types=Tyypit
+config.webhook.deliver_timeout=Toimitus aikakatkaisu
+config.webhook.skip_tls_verify=Ohita TLS tarkistaminen
+
+config.git_config=Git asetukset
+config.git.disable_diff_highlight=Poista koodinväritys käytöstä diff-näkymässä
+config.git.max_diff_lines=Vertaa rivien rajaa (yhden tiedoston osalta)
+config.git.max_diff_line_characters=Vertaa merkkien rajaa (yhden tiedoston osalta)
+config.git.max_diff_files=Vertaa tiedostojen rajaa (yhden diffin osalta)
+config.git.gc_args=Roskienkeruun parametrit
+config.git.migrate_timeout=Migraation aikakatkaisu
+config.git.mirror_timeout=Peilauksen haun aikakatkaisu
+config.git.clone_timeout=Kloonauksen aikakatkaisu
+config.git.pull_timeout=Pull aikakatkaisu
+config.git.gc_timeout=Roskienkeruun aikakatkaisu
+
+config.lfs_config=LFS asetukset
+config.lfs.storage=Tallennustila
+config.lfs.objects_path=Objektien polku
config.log_config=Loki asetukset
-config.log_mode=Loki tila
+config.log_file_root_path=Lokitiedoston juuren polku
+config.log_mode=Tila
+config.log_options=Valinnaiset
monitor.cron=Cron tehtävät
monitor.name=Nimi
@@ -1158,18 +1384,25 @@ notices.delete_success=Järjestelmän ilmoitukset on poistettu onnistuneesti.
[action]
create_repo=luotu repo %s
rename_repo=uudelleennimetty repo %[1]s nimelle %[3]s
-commit_repo=pushattu kohteeseen %[3]s paikassa %[4]s
-create_issue=`avasi ongelman %s#%[2]s`
-close_issue=`sulki ongelman %s#%[2]s`
-reopen_issue=`avasi uudelleen ongelman %s#%[2]s`
+commit_repo=työnnetty kehityshaara %[3]s paikassa %[4]s
+compare_commits=Näytä vertailu näille %d sitoutuksille
+transfer_repo=siirretty repo %s kohteeseen %s
+create_issue=`loi esityksen %s#%[2]s`
+close_issue=`käsitteli esityksen %s#%[2]s`
+reopen_issue=`uudelleenavasi esityksen %s#%[2]s`
+comment_issue=`kommentoi esitystä %s#%[2]s`
create_pull_request=`luotu pull-pyyntö %s#%[2]s`
close_pull_request=`sulki pull-pyynnön %s#%[2]s`
reopen_pull_request=`avasi uudelleen pull-pyynnön %s#%[2]s`
-comment_issue=`kommentoi ongelmaa %s#%[2]s`
-merge_pull_request=`yhdistetty pull-pyyntö %s#%[2]s`
-transfer_repo=siirretty repo %s kohteeseen %s
-push_tag=pushattu tagi %[2]s kohteeseen %[3]s
-compare_commits=Näytä vertailu näille %d commiteille
+merge_pull_request=`yhdistetty vetopyyntö %s#%[2]s`
+create_branch=luotu uusi haara %[3]s kohteeseen %[4]s
+delete_branch=poistettu haara %[2]s kohteesta %[3]s
+push_tag=työnnettiin tunniste %[2]s kohteeseen %[3]s
+delete_tag=poistettiin tunniste %[2]s kohteesta %[3]s
+fork_repo=haarautettiin tietosäilö kohteeseen %s
+mirror_sync_push=synkronoitiin sitoutukset kohteeseen %[3]s paikassa %[4]s peilauksesta
+mirror_sync_create=synkattu uusi viite %[2]s kohteeseen %[3]s peilistä
+mirror_sync_delete=synkattu ja poistettu viite %[2]s paikassa %[3]s peilistä
[tool]
ago=sitten
@@ -1191,9 +1424,10 @@ months=%d kuukautta %s
years=%d vuotta %s
raw_seconds=sekuntia
raw_minutes=minuuttia
+raw_hours=tuntia
[dropzone]
-default_message=Pudota tiedostot tähän tai klikkaa lataamista varten.
+default_message=Pudota tiedostot tähän tai napsauta lataamista varten.
invalid_input_type=Tämäntyyppisiä tiedostoja ei voi ladata.
file_too_big=Tiedostokoko ({{filesize}} MB) koko ylittää enimmäiskoon ({{maxFilesize}} MB).
remove_file=Poista tiedosto
diff --git a/conf/locale/locale_fr-FR.ini b/conf/locale/locale_fr-FR.ini
index 89901dd93fc..98426d54f83 100644
--- a/conf/locale/locale_fr-FR.ini
+++ b/conf/locale/locale_fr-FR.ini
@@ -1,4 +1,4 @@
-app_desc=Un service Git auto-hébergé sans prise de tête
+app_desc=Un service Git auto-hébergé et indolore.
home=Accueil
dashboard=Tableau de bord
@@ -9,7 +9,6 @@ sign_out=Déconnexion
sign_up=Inscription
register=S'inscrire
website=Site web
-version=Version
page=Page
template=Modèle
language=Langue
@@ -29,7 +28,7 @@ mirror=Miroir
new_repo=Nouveau dépôt
new_migrate=Nouvelle migration
new_mirror=Nouveau miroir
-new_fork=Nouveau fork
+new_fork=Nouveau dépôt séparé
new_org=Nouvelle organisation
manage_org=Gérer les organisations
admin_panel=Administration
@@ -39,48 +38,57 @@ your_profile=Votre profil
your_settings=Vos paramètres
activities=Activités
-pull_requests=Pull Requests
+pull_requests=Demandes d'admission
issues=Tickets
cancel=Annuler
+[status]
+page_not_found=Page non trouvée
+internal_server_error=Erreur interne du serveur
+
[install]
install=Installation
title=Instructions pour la première exécution
-docker_helper=Si vous exécutez Gogs grâce à Docker, merci de lire la procédure attentivement avant de modifier quoi que ce soit sur cette page !
-requite_db_desc=Gogs requiert MySQL, PostgreSQL, SQLite3 ou TiDB.
+docker_helper=Si vous exécutez Gogs au sein de Docker, lisez la procédure attentivement avant toute altération de cette page !
+requite_db_desc=Gogs exige MySQL, PostgreSQL, SQLite3 or TiDB (via le protocole MySQL)
db_title=Paramètres de la base de données
db_type=Type de base de données
host=Hôte
user=Utilisateur
password=Mot de passe
db_name=Nom de base de données
-db_helper=Veuillez utiliser le moteur INNODB avec le jeu de caractères utf8_general_ci pour MySQL.
+db_schema=Schéma
+db_helper=Employez le moteur INNODB pour MySQL avec l'encodage utf8_general_ci.
ssl_mode=Mode SSL
path=Emplacement
-sqlite_helper=Le chemin du fichier de base de données SQLite3 ou TiDB. Utilisez un chemin absolu lorsque vous démarrez en tant que service.
-err_empty_db_path=Le chemin de la base de données SQLite3 ou TiDB ne peut être vide.
-err_invalid_tidb_name=Le nom de la base de données TiDB ne peut contenir les caractères "." ou "-".
+sqlite_helper=Le chemin du fichier de base de données SQLite3. Utilisez un chemin absolu lorsque vous démarrez en tant que service.
+err_empty_db_path=Le chemin de la base de données SQLite3 ne peut être vide.
no_admin_and_disable_registration=Vous ne pouvez pas désactiver l'enregistrement sans créer un compte administrateur.
err_empty_admin_password=Le mot de passe du compte administrateur ne peut être vide.
-general_title=Paramètres généraux de Gogs
+general_title=Réglages Généraux d'Application
app_name=Nom de l'application
app_name_helper=Inscrivez fièrement le nom de votre organisation ici !
-repo_path=Emplacement racine des dépôts
+repo_path=Chemin Racine des Dépôts
repo_path_helper=Tous les dépôts Git distants seront sauvegardés ici.
-run_user=Utilisateur système
-run_user_helper=L'utilisateur doit avoir accès à la racine des dépôts et exécuter Gogs.
+run_user=Utilisateur
+run_user_helper=L'utilisateur doit avoir accès à la Racine des Dépôts et exécuter Gogs.
domain=Domaine
domain_helper=Cela affecte les doublons d'URL SSH.
ssh_port=Port SSH
ssh_port_helper=Numéro de port utilisé par votre serveur SSH, le laisser vide pour désactiver la fonctionnalité.
+use_builtin_ssh_server=Utiliser le serveur SSH incorporé
+use_builtin_ssh_server_popup=Démarrer le serveur SSH incorporé pour les opérations Git afin de le distinguer du démon SSH système.
http_port=Port HTTP
http_port_helper=Numéro de port que l'application écoutera.
app_url=URL de l'application
app_url_helper=Cela affecte les doublons d'URL HTTP/HTTPS et le contenu d'e-mail.
log_root_path=Chemin des fichiers log
log_root_path_helper=Répertoire d'écriture des fichiers de log.
+enable_console_mode=Activer le mode Console
+enable_console_mode_popup=En plus du mode fichier, également imprimer des journaux à la console.
+default_branch=Branchepar défaut
optional_title=Paramètres facultatifs
email_title=Paramètres du service de messagerie
@@ -116,7 +124,10 @@ sqlite3_not_available=Votre version publiée ne prend pas en charge SQLite3. Veu
invalid_db_setting=Paramètres de base de données incorrects : %v
invalid_repo_path=Chemin vers la racine du dépôt invalide : %v
run_user_not_match=L'utilisateur d'exécution saisi n'est pas l'utilisateur d'exécution actuel : %s -> %s
+smtp_host_missing_port=Le numéro de port est manquant dans l'adresse de l'Hôte SMTP.
+invalid_smtp_from=Le champ SMTP Provenant de n'est pas valide: %v
save_config_failed=La sauvegarde de la configuration a échoué : %v
+init_failed=L'initialisation de l'application a échoué.
invalid_admin_setting=Paramètres du compte administrateur invalides : %v
install_success=Bienvenue ! Nous sommes heureux que vous ayez choisi Gogs, amusez-vous et prenez soin de vous.
invalid_log_root_path=L'emplacement racine des fichiers logs est invalide : %v
@@ -137,6 +148,7 @@ issues.in_your_repos=Dans vos dépôts
[explore]
repos=Dépôts
users=Utilisateurs
+organizations=Organisations
search=Rechercher
[auth]
@@ -144,7 +156,9 @@ create_new_account=Créer un nouveau compte
register_hepler_msg=Déjà enregistré ? Connectez-vous !
social_register_hepler_msg=Déjà enregistré ? Associez-le !
disable_register_prompt=Désolé, les enregistrements ont été désactivés. Veuillez contacter l'administrateur du site.
-disable_register_mail=Désolé, la confirmation par e-mail des enregistrements a été désactivée.
+disable_register_mail=Désolé, la confirmation par courriel des enregistrements a été désactivée.
+auth_source=Sources d'authentification
+local=Locale
remember_me=Se souvenir de moi
forgot_password=Mot de passe oublié
forget_password=Mot de passe oublié ?
@@ -152,11 +166,10 @@ sign_up_now=Pas de compte ? Inscrivez-vous maintenant.
confirmation_mail_sent_prompt=Un nouveau mail de confirmation à été envoyé à %s. Veuillez vérifier votre boîte de réception dans un délai de %d heures pour compléter votre enregistrement.
active_your_account=Activer votre compte
prohibit_login=Connexion interdite
-prohibit_login_desc=Votre compte est interdit de se connecter, contactez l’administrateur du site.
+prohibit_login_desc=La connexion avec ce compte est interdite ; contactez l'administrateur du site.
resent_limit_prompt=Désolé, vos tentatives d'activation sont trop fréquentes. Veuillez réessayer dans 3 minutes.
has_unconfirmed_mail=Bonjour %s, votre adresse e-mail (%s) n'a pas été confirmée. Si vous n'avez reçu aucun mail de confirmation ou souhaitez renouveler l'envoi, cliquez sur le bouton ci-dessous.
resend_mail=Cliquez ici pour renvoyer un mail de confirmation
-email_not_associate=Cette adresse e-mail n'est associée à aucun compte.
send_reset_mail=Cliquez ici pour (r)envoyer le mail de réinitialisation du mot de passe
reset_password=Réinitialiser le mot de passe
invalid_code=Désolé, votre code de confirmation est invalide ou a expiré.
@@ -164,6 +177,14 @@ reset_password_helper=Cliquez ici pour réinitialiser votre mot de passe
password_too_short=Le mot de passe doit contenir 6 caractères minimum.
non_local_account=Les comptes non locaux ne peuvent pas changer leur mot de passe via Gogs.
+login_two_factor=Authentification en deux étapes
+login_two_factor_passcode=Mot de passe d'authentification
+login_two_factor_enter_recovery_code=Entrez un code de récupération en deux étapes
+login_two_factor_recovery=Récupération en deux étapes
+login_two_factor_recovery_code=Code de récupération
+login_two_factor_enter_passcode=Entrez un code d'authentification en deux étapes
+login_two_factor_invalid_recovery_code=Code de récupération a été utilisé ou n'est pas valide.
+
[mail]
activate_account=Veuillez activer votre compte
activate_email=Veuillez vérifier votre adresse e-mail
@@ -199,6 +220,7 @@ Content=Contenu
require_error=` ne peut pas être vide.`
alpha_dash_error=` doivent être des caractères alpha, numériques ou tirets (-_) valides.`
alpha_dash_dot_error=` doivent être des caractères alpha, numériques, tirets (-_) valides ou des points.`
+alpha_dash_dot_slash_error=doit contenir uniquement des caractères alphanumériques, des tirets (-), des points (.) ou des slash (/)
size_error=` doit être à la taille de %s.`
min_size_error=` %s caractères minimum `
max_size_error=` %s caractères maximum `
@@ -215,6 +237,7 @@ org_name_been_taken=Nom d'organisation déjà pris.
team_name_been_taken=Nom d'équipe déjà pris.
email_been_used=Adresse e-mail déjà utilisée.
username_password_incorrect=Nom d'utilisateur ou mot de passe incorrect.
+auth_source_mismatch=La source d’authentification sélectionnée n’est pas associée à l’utilisateur.
enterred_invalid_repo_name=Veuillez vérifier que le nom saisi du dépôt soit correct.
enterred_invalid_owner_name=Veuillez vérifier que le nom du propriétaire saisi soit correct.
enterred_invalid_password=Veuillez vérifier que le mot de passe saisi soit correct.
@@ -242,19 +265,18 @@ following=Abonnements
follow=Suivre
unfollow=Ne plus suivre
-form.name_reserved=Le nom '%s' est réservé.
-form.name_pattern_not_allowed=Motif '%s' interdit pour les noms d'utilisateur.
+form.name_not_allowed=Le nom de l'utilisateur ou le schéma n'est pas autorisé
[settings]
profile=Profil
password=Mot de Passe
avatar=Avatar
ssh_keys=Clés SSH
-social=Réseaux Sociaux
-applications=Applications
+security=Sécurité
+repos=Dépôts
orgs=Organisations
+applications=Applications
delete=Supprimer le compte
-uid=ID d'Utilisateur
public_profile=Profil public
profile_desc=Votre adresse e-mail est publique et sera utilisée pour les notifications relatives au compte, ainsi que pour toute opération Web effectuée via le site.
@@ -295,6 +317,7 @@ delete_email=Supprimer
email_deletion=Suppression de l'adresse e-mail
email_deletion_desc=Supprimer cette adresse e-mail supprimera les informations associées à votre compte. Voulez-vous continuer ?
email_deletion_success=L'adresse e-mail a été supprimée avec succès !
+email_deletion_primary=Impossible de supprimer l'adresse de courrier principale
add_new_email=Ajouter une nouvelle adresse e-mail
add_email=Ajouter un e-mail
add_email_confirmation_sent=Une nouvelle confirmation d'adresse e-mail a été envoyé à '%s', veuillez vérifier votre boîte de réception dans un délai de %d heures pour terminer le processus de confirmation.
@@ -320,22 +343,54 @@ no_activity=Aucune activité récente
key_state_desc=Cette clé a été utilisée durant les 7 derniers jours
token_state_desc=Ce jeton a été utilisé durant les 7 derniers jours
-manage_social=Gérer les réseaux sociaux associés
-social_desc=Ceci est la liste des comptes de réseaux sociaux associés. Supprimez ceux que vous ne reconnaissez pas.
-unbind=Dissocier
-unbind_success=Compte de réseau social dissocié.
+two_factor=Authentification en deux étapes
+two_factor_status=État :
+two_factor_on=Activé
+two_factor_off=Désactivé
+two_factor_enable=Activer
+two_factor_disable=Désactiver
+two_factor_view_recovery_codes=Voir et sauvegarder vos codes de récupération dans un endroit sécurisé. Vois pouvez les utiliser comme mot de passe si vous perdez l'accès à l'application d'authentification.
+two_factor_http=Vous ne pouvez plus utiliser un nom d'utilisateur et mot de passe en clair pour les opérations en HTTP/HTTPS. Merci de créer et d'utiliser un jeton d'accès personnel comme moyen d'identification, par exemple %[3]s.
+two_factor_enable_title=Activer l'authentification en deux étapes
+two_factor_scan_qr=Veuillez utiliser votre application d'authentification pour numériser l'image :
+two_factor_or_enter_secret=Ou entrez la phrase secrète :
+two_factor_then_enter_passcode=Puis entrez le mot de passe :
+two_factor_verify=Vérifier
+two_factor_invalid_passcode=Le mot de passe que vous avez entré n'est pas valide, veuillez réessayer.
+two_factor_reused_passcode=Le mot de passe que vous avez entré a déjà été utilisé, veuillez en essayez un autre !
+two_factor_enable_error=L'activation de l'authentification en deux étapes a échoué : %v
+two_factor_enable_success=L'authentification en deux étapes a été bien été activée pour votre compte.
+two_factor_recovery_codes_title=Codes de secours pour l'authentification en deux étapes
+two_factor_recovery_codes_desc=Les codes de récupération sont utilisés quand vous perdez temporairement l'accès à votre application d'authentification. Chaque code de récupération ne peut être utilisé qu'une fois, merci de les garder dans un endroit sécurisé.
+two_factor_regenerate_recovery_codes=Regénérer les codes de récupération
+two_factor_regenerate_recovery_codes_error=La regénération des codes de récupération a échouée : %v
+two_factor_regenerate_recovery_codes_success=Les nouveaux codes de récupération ont été générés avec succès !
+two_factor_disable_title=Désactiver l'authentification à deux facteurs
+two_factor_disable_desc=Le niveau de sécurité de votre compte va baisser après avoir désactiver l'authentification à deux facteurs. Voulez-vous continuer ?
+two_factor_disable_success=L'authentification à deux facteurs a été désactivée avec succès !
manage_access_token=Gérer les jetons d'accès personnels
generate_new_token=Générer le nouveau jeton
tokens_desc=Jetons, que vous avez généré, qui peuvent être utilisés pour accéder à l'API Gogs.
+access_token_tips=Le jeton d'accès personnel est employé soit comme nom d'utilisateur soit comme mot de passe. L'emploi du « x-access-token » comme nom d'utilisateur et le jeton d'accès personnel comme mot de passe est recommandé pour les applications Git
new_token_desc=Chaque Jeton donnera un accès complet à votre compte.
token_name=Nom du jeton
generate_token=Générer le jeton
generate_token_succees=Nouveau jeton d'accès a été généré avec succès ! Assurez-vous de copier votre nouveau jeton d'accès personnel maintenant. Vous ne serez pas en mesure de le revoir !
delete_token=Supprimer
-access_token_deletion=Suppression du jeton d'accès
+access_token_deletion=Suppression du jeton d'accès personnel
access_token_deletion_desc=Supprimer ce jeton d'accès supprimera tous les accès de l'application. Voulez-vous continuer ?
-delete_token_success=Le jeton d'accèsa été supprimé avec succès ! N'oubliez pas de mettre à jour vos applications.
+delete_token_success=Le jeton d'accès a été supprimé avec succès ! N'oubliez pas de mettre à jour vos applications.
+token_name_exists=Un jeton avec le même nom existe déjà.
+
+orgs.none=Vous n'êtes membre d'aucune organisation.
+orgs.leave_title=Quitter une organisation
+orgs.leave_desc=Vous perdrez accès à tous les dépôts et équipes après que vous ayez quitté l'organisation. Voulez-vous continuer ?
+
+repos.leave=Quitter
+repos.leave_title=Quitter le dépôt
+repos.leave_desc=Vous perdrez l'accès à ce dépôt après l'avoir quitté. Voulez-vous continuer ?
+repos.leave_success=Vous avez quitté le dépôt '%s' avec succès !
delete_account=Supprimer votre compte
delete_prompt=Votre compte sera définitivement supprimé et cette opération est irréversible !
@@ -348,9 +403,11 @@ owner=Propriétaire
repo_name=Nom du dépôt
repo_name_helper=Idéalement, le nom d'un dépot devrait être court, mémorable et unique.
visibility=Visibilité
+unlisted=Non répertorié
visiblity_helper=Ce dépôt est privé
+unlisted_helper=Ce dépôt n'est pas répertorié
visiblity_helper_forced=L'administrateur du site a forcé tous les nouveaux dépôts à être privés
-visiblity_fork_helper=(Les changement de cette valeur affecteront tous les forks)
+visiblity_fork_helper=(Les changements de cette valeur affecteront tous les forks)
clone_helper=Besoin d'aide pour dupliquer ? Visitez l'aide !
fork_repo=Créer un fork du dépôt
fork_from=Fork de
@@ -374,31 +431,33 @@ mirror_last_synced=Dernière synchronisation
watchers=Observateurs
stargazers=Stargazers
forks=Forks
+repo_description_helper=Description du dépôt. 512 caractères maximum.
+repo_description_length=Caractères disponibles
form.reach_limit_of_creation=Le propriétaire a atteint le nombre maximal de %d dépôts créés.
-form.name_reserved=Le nom de dépôt '%s' est réservé.
-form.name_pattern_not_allowed=Motif '%s' interdit pour les noms de dépôt.
+form.name_not_allowed=Le nom de l'utilisateur ou le schéma n'est pas autorisé
-need_auth=Nécessite une Autorisation
+need_auth=Nécessite une autorisation
migrate_type=Type de migration
migrate_type_helper=Ce dépôt sera un miroir
migrate_repo=Migrer le dépôt
migrate.clone_address=Adresse du clone
-migrate.clone_address_desc=Cela peut être une URL HTTP/HTTPS/GIT ou un chemin d'accès local.
+migrate.clone_address_desc=Cela peut être une URL HTTP/HTTPS/GIT.
+migrate.clone_address_desc_import_local=Vous êtes aussi autorisé à migrer un dépôt via un chemin local du serveur.
migrate.permission_denied=Vous n'êtes pas autorisé à importer des dépôts locaux.
migrate.invalid_local_path=Chemin local non valide, non existant ou n'étant pas un dossier.
+migrate.clone_address_resolved_to_blocked_local_address=L'adresse de clonage correspond à une adresse réseau locale, qui est bloquée implicitement.
migrate.failed=Echec de migration: %v
mirror_from=miroir de
forked_from=forké depuis
-fork_from_self=Vous ne pouvez pas forker un dépôt que vous possédez déja !
copy_link=Copier
-copy_link_success=Copié!
+copy_link_success=Copié !
copy_link_error=Appuyez sur ⌘-C ou Ctrl-C pour copier
copied=Copié
unwatch=Ne plus suivre
watch=Suivre
-unstar=Retirer le vote
+unstar=Retirer des favoris
star=Voter
fork=Fork
@@ -407,9 +466,9 @@ quick_guide=Introduction rapide
clone_this_repo=Cloner ce dépôt
create_new_repo_command=Créer un nouveau dépôt en ligne de commande
push_exist_repo=Soumettre un dépôt existant par ligne de commande
-repo_is_empty=Ce dépôt est vide, veuillez revenir plus tard !
+bare_message=Ce dépôt n'a pas de contenu pour l'instant.
-code=Code
+files=Fichiers
branch=Branche
tree=Aborescence
filter_branch_and_tag=Filtrer une branche ou un tag
@@ -417,15 +476,26 @@ branches=Branches
tags=Tags
issues=Tickets
pulls=Pull Requests
-labels=Etiquettes
+labels=Étiquettes
milestones=Jalons
commits=Commits
+git_branches=Branches
releases=Publications
file_raw=Raw
file_history=Historique
file_view_raw=Voir le Raw
file_permalink=Lien permanent
-file_too_large=Ce fichier est trop gros pour être afficher
+file_too_large=Ce fichier est trop gros pour être affiché
+video_not_supported_in_browser=Votre navigateur ne supporte pas la balise video HTML5.
+
+branches.overview=Résumé
+branches.active_branches=Branches Actives
+branches.stale_branches=Branches stagnantes
+branches.all=Toutes les Branches
+branches.updated_by=Mise à jour %[1]s par %[2]s
+branches.change_default_branch=Changer la Branche par Défaut
+branches.default_deletion_not_allowed=Cannot delete the default branch.
+branches.protected_deletion_not_allowed=Cannot delete a protected branch.
editor.new_file=Nouveau fichier
editor.upload_file=Téléverser un fichier
@@ -443,10 +513,10 @@ editor.filename_help=Pour ajouter un répertoire, il suffit de le taper puis d'a
editor.or=ou
editor.cancel_lower=annuler
editor.commit_changes=Commit les modifications
-editor.add_tmpl=Ajouter '%s/'
-editor.add=Ajouter '%s'
-editor.update=Mettre à jour '%s'
-editor.delete=Supprimer '%s'
+editor.add_tmpl=Ajout de '%s/'
+editor.add=Ajout de '%s'
+editor.update=Mise à jour de '%s'
+editor.delete=Suppression de '%s'
editor.commit_message_desc=Ajouter une optionnelle description détaillée...
editor.commit_directly_to_this_branch=Soumettre directement à la branche %s.
editor.create_new_branch=Créer une nouvelle branche pour cette validation et envoyer une nouvelle pull request.
@@ -454,17 +524,20 @@ editor.new_branch_name_desc=Nouveau nom de la branche...
editor.cancel=Annuler
editor.filename_cannot_be_empty=Nom de fichier ne peut pas être vide.
editor.branch_already_exists=La branche '%s' existe déjà dans ce dépôt.
-editor.directory_is_a_file=L'entrée '%s' dans le chemin d’accès parent est un fichier pas un répertoire dans ce dépôt.
+editor.directory_is_a_file=L'entrée '%s' dans le chemin d'accès parent est un fichier, pas un répertoire dans ce dépôt.
+editor.file_is_a_symlink=Le fichier « %s » est un lien symbolique qui ne peut être modifié depuis l'éditeur web.
editor.filename_is_a_directory=Le nom de fichier '%s' existe déjà dans ce dépot.
editor.file_editing_no_longer_exists=Le fichier '%s' que vous modifiez n'existe plus dans le dépôt.
editor.file_changed_while_editing=Le contenu du fichier à changé depuis que vous avez commencé à l'éditer. Cliquez ici pour voir ce qui à été modifié ou appuyez sur commit encore une fois pour remplacer ces changements.
editor.file_already_exists=La branche '%s' existe déjà dans ce dépôt.
editor.no_changes_to_show=Il n’y a aucun changement à afficher.
-editor.fail_to_update_file=Échec lors de la mise à jour/création du fichier '%s' avec l’erreur : %v
+editor.fail_to_update_file=Échec lors de la mise à jour/création du fichier '%s' avec l'erreur : %v
+editor.fail_to_delete_file=Impossible de supprimer le fichier «%s» avec l’erreur : %v
editor.add_subdir=Ajouter un sous-répertoire...
-editor.unable_to_upload_files=Échec lors de l'envoie du fichier '%s' avec l’erreur : %v
+editor.unable_to_upload_files=Échec lors de l'envoie du fichier '%s' avec l'erreur : %v
editor.upload_files_to_dir=Transférer les fichiers vers '%s'
+commits.commit_history=Historique des commits
commits.commits=Commits
commits.search=Rechercher des commits
commits.find=Trouver
@@ -475,7 +548,7 @@ commits.older=Précédemment
commits.newer=Récemment
issues.new=Nouveau ticket
-issues.new.labels=Etiquettes
+issues.new.labels=Étiquettes
issues.new.no_label=Pas d'étiquette
issues.new.clear_labels=Effacer les étiquettes
issues.new.milestone=Jalon
@@ -530,7 +603,7 @@ issues.close_comment_issue=Commenter et fermer
issues.reopen_issue=Réouvrir
issues.reopen_comment_issue=Commenter et réouvrir
issues.create_comment=Créer un commentaire
-issues.closed_at=`fermé à %[2]s"`
+issues.closed_at=`fermé à %[2]s`
issues.reopened_at=`réouvert à %[2]s`
issues.commit_ref_at=`a référencé ce problème à partir d'un commit %[2]s`
issues.poster=Publier
@@ -562,14 +635,15 @@ pulls.compare_compare=Comparer
pulls.filter_branch=Filtre de branche
pulls.no_results=Aucun résultat trouvé.
pulls.nothing_to_compare=Il n'y a rien de comparable parce que les deux branches sont égales.
-pulls.has_pull_request=`Il y a déjà une demande de tirer entre ces deux cibles : %[2]s#%[3]d`
-pulls.create=Creer une Pull Request
+pulls.nothing_merge_base=Il n'y a rien à comparer parce que les deux branches ont un historique complètement différent.
+pulls.has_pull_request=`Il y a déjà une pull request entre ces deux cibles : %[2]s#%[3]d`
+pulls.create=Créer une Pull Request
pulls.title_desc=veut fusionner %[1]d commits à partir de %[2]s vers %[3]s
-pulls.merged_title_desc=à fusionné %[1]d commits à partir de %[2]s vers %[3]s %[4]s
+pulls.merged_title_desc=a fusionné %[1]d commits à partir de %[2]s vers %[3]s %[4]s
pulls.tab_conversation=Conversation
pulls.tab_commits=Commits
pulls.tab_files=Fichiers modifiés
-pulls.reopen_to_merge=Veuillez rouvrir cette demande de Pull Request pour effectuer l'opération de fusion.
+pulls.reopen_to_merge=Veuillez rouvrir cette Pull Request pour effectuer l'opération de fusion.
pulls.merged=Fusionné
pulls.has_merged=Cette Pull Request a été fusionnée avec succès !
pulls.data_broken=Les données de cette pull request ont été compromises en raison de la suppression d'informations sur le fork.
@@ -577,8 +651,13 @@ pulls.is_checking=La recherche de conflits est toujours en cours, veuillez rafra
pulls.can_auto_merge_desc=Cette pull request peut être fusionnée automatiquement.
pulls.cannot_auto_merge_desc=Cette pull request ne peut être fusionnée automatiquement à cause de conflits.
pulls.cannot_auto_merge_helper=Fusionner manuellement afin de résoudre les conflits.
+pulls.create_merge_commit=Créer un commit de fusion
+pulls.rebase_before_merging=Rebaser avant la fusion
+pulls.commit_description=Description du commit
pulls.merge_pull_request=Fusionner la Pull Request
pulls.open_unmerged_pull_exists=`Vous ne pouvez effectuer une réouverture car il y a déjà une pull-request ouverte (#%d) depuis le même dépôt avec les mêmes informations de fusion et est en attente de fusion.`
+pulls.delete_branch=Supprimer la branche
+pulls.delete_branch_has_new_commits=La branche ne peut pas être supprimée car de nouveaux commits ont été effectuées après la fusion.
milestones.new=Nouveau Jalon
milestones.open_tab=%d Ouvert
@@ -629,6 +708,29 @@ settings.collaboration.admin=Administrateur
settings.collaboration.write=Écrire
settings.collaboration.read=Lire
settings.collaboration.undefined=Indéfini
+settings.branches=Branches
+settings.branches_bare=Vous ne pouvez pas gérer les branches d'un dépôt vide. Merci de publier du contenu dans un premier temps.
+settings.default_branch=Branche par défaut
+settings.default_branch_desc=La branche par défaut est considérée comme la branche « originale » pour les commits de code, les requêtes de fusion et l'édition en ligne.
+settings.update=Actualiser
+settings.update_default_branch_unsupported=Le changement de branche par défaut n'est pas supporté par la version de Git sur ce serveur.
+settings.update_default_branch_success=La branche par défaut de ce dépôt a bien été mise à jour.
+settings.protected_branches=Branches protégées
+settings.protected_branches_desc=Protéger les branches du push forcé, de la suppression accidentelle et des publicateurs de code en liste blanche.
+settings.choose_a_branch=Choisir une branche…
+settings.branch_protection=Protection de branche
+settings.branch_protection_desc=Sélectionnez les options de protection pour la branche %s.
+settings.protect_this_branch=Protéger cette branche
+settings.protect_this_branch_desc=Interdire les push forcés et empêcher la suppression.
+settings.protect_require_pull_request=Exiger une pull request plutôt qu'un push immédiat
+settings.protect_require_pull_request_desc=Activez cette option pour empêcher la publication immédiate vers cette branche. Les commits devront être publiés vers une autre branche (non protégée) et fusionnée dans cette branche avec une requête de fusion.
+settings.protect_whitelist_committers=Liste blanche de personnes pouvant publier sur cette branche
+settings.protect_whitelist_committers_desc=Ajouter des personnes ou des équipes à la liste blanche des fusions directes de cette branche. Les utilisateurs dans cette liste blanche passeront outre la nécessité de valider leurs requêtes de fusion.
+settings.protect_whitelist_users=Utilisateurs qui peuvent pousser sur cette branche
+settings.protect_whitelist_search_users=Rechercher des utilisateurs
+settings.protect_whitelist_teams=Les équipes pour lesquelles les membres peuvent pousser sur cette branche
+settings.protect_whitelist_search_teams=Rechercher des équipes
+settings.update_protect_branch_success=Les options de protection de cette branches ont été mises à jour avec succès.
settings.hooks=Webhooks
settings.githooks=Git Hooks
settings.basic_settings=Paramètres de base
@@ -641,19 +743,26 @@ settings.change_reponame_prompt=Ce changement affectera comment les liens sont r
settings.advanced_settings=Paramètres avancés
settings.wiki_desc=Activer le wiki
settings.use_internal_wiki=Utiliser le wiki interne
+settings.allow_public_wiki_desc=Autoriser l'accès public au wiki quand le dépôt est privé
settings.use_external_wiki=Utiliser un wiki externe
settings.external_wiki_url=URL Wiki externe
settings.external_wiki_url_desc=Les visiteurs seront redirigés vers cette URL lorsqu'ils cliqueront sur l'onglet.
settings.issues_desc=Activer le système de tickets
settings.use_internal_issue_tracker=Utiliser le système simplifié de tickets interne
+settings.allow_public_issues_desc=Permettre l'accès du public aux tickets lorsque le dépôt est privé
settings.use_external_issue_tracker=Utiliser un bug-tracker externe
+settings.external_tracker_url=Adresse de l'issue tracker externe
+settings.external_tracker_url_desc=Les visiteurs seront redirigés vers cette URL lorsqu'ils cliqueront sur l'onglet.
settings.tracker_url_format=Format d'URL du bug tracker
settings.tracker_issue_style=Style de nommage des bugs du tracker externe :
settings.tracker_issue_style.numeric=Numérique
settings.tracker_issue_style.alphanumeric=Alphanumérique
settings.tracker_url_format_desc=Vous pouvez utiliser l'espace réservé {user} {repo} {index} pour le nom d'utilisateur, le nom du dépôt et le numéro de bug.
-settings.pulls_desc=Activer les pull requests pour accepter les contributions publiques
+settings.pulls_desc=Activer les pull requests pour accepter les contributions depuis des dépôts et des branches
+settings.pulls.ignore_whitespace=Ignorer les changements quand ce sont des espaces
+settings.pulls.allow_rebase_merge=Autoriser l'utilisation de rebase pour fusionner les validations
settings.danger_zone=Zone de danger
+settings.cannot_fork_to_same_owner=Vous ne pouvez par créer un fork d'un dépot à son propriétaire actuel.
settings.new_owner_has_same_repo=Le nouveau propriétaire a déjà un dépôt nommé ainsi.
settings.convert=Convertir en dépôt ordinaire
settings.convert_desc=Vous pouvez convertir ce miroir en dépôt ordinaire. Cela ne peut pas être inversée.
@@ -673,7 +782,7 @@ settings.delete=Supprimer ce dépôt
settings.delete_desc=Attention, cette action est action irréversible. Soyez sûr de vous.
settings.delete_notices_1=- Cette opération ne peut pas être annulée.
settings.delete_notices_2=- Cette opération supprimera définitivement le dépôt, y compris les données Git, les tickets, les commentaires et les accès des collaborateurs.
-settings.delete_notices_fork_1=-Tous les forks deviendront indépendants après l’effacement.
+settings.delete_notices_fork_1=-Tous les forks deviendront indépendants après l'effacement.
settings.deletion_success=Le dépôt a été supprimé avec succès!
settings.update_settings_success=Options mises à jour avec succès.
settings.transfer_owner=Nouveau propriétaire
@@ -688,20 +797,25 @@ settings.collaborator_deletion_desc=Cet utilisateur n'aura plus accès pour coll
settings.remove_collaborator_success=Collaborateur supprimé.
settings.search_user_placeholder=Rechercher un utilisateur...
settings.org_not_allowed_to_be_collaborator=Une organisation n'est pas autorisée à être ajoutée en tant que collaborateur.
-settings.user_is_org_member=Cet utilisateur ne peut pas être ajouté en tant que collaborateur car il fait partie d'une organisation.
-settings.add_webhook=Ajouter un Webhook
settings.hooks_desc=Les Webhooks sont des déclencheurs de POST HTTP . Lorsque qu'un événement se produit dans Gogs, une notification sera envoyée vers l'hôte cible préalablement spécifié. Apprenez-en davantage dans le Guide des Webhooks.
+settings.webhooks.add_new=Ajouter un nouveau rappel HTTP
+settings.webhooks.choose_a_type=Choisis le type de...
+settings.add_webhook=Ajouter un Webhook
settings.webhook_deletion=Supprimer le Webhook
settings.webhook_deletion_desc=Supprimer ce webhook va supprimer ses informations et l'historique de livraison. Voulez-vous continuer ?
settings.webhook_deletion_success=Le webhook a été supprimé avec succès !
settings.webhook.test_delivery=Tester la version
settings.webhook.test_delivery_desc=Envoyer un faux push pour tester la configuration des webhooks
settings.webhook.test_delivery_success=Le webhook de test a été ajouté à la file d'attente de livraison. L'affichage dans l'historique de livraison peut prendre quelques secondes.
+settings.webhook.redelivery=Redistribution
+settings.webhook.redelivery_success=La tâche crochet '%s' a été réajoutée à la liste de livraison. La mise à jour de l'état de livraison dans l'historique peut prendre quelques secondes.
settings.webhook.request=Requête
settings.webhook.response=Réponse
settings.webhook.headers=Entêtes
settings.webhook.payload=Payload
settings.webhook.body=Corps
+settings.webhook.err_cannot_parse_payload_url=Impossible d'analyser l'URL : %v
+settings.webhook.url_resolved_to_blocked_local_address=L'URL du contenu correspond à une adresse réseau locale qui est bloquée implicitement.
settings.githooks_desc=Les Hooks Git sont alimentés par Git lui même. Les Hooks compatibles sont modifiables dans la liste ci-dessous pour effectuer des opérations personnalisées.
settings.githook_edit_desc=Si un Hook est inactif, un exemple de contenu vous sera proposé. Un contenu laissé vide signifie un Hook inactif.
settings.githook_name=Nom du Hook
@@ -711,19 +825,30 @@ settings.add_webhook_desc=Une requête POST sera transmise vers l'U
settings.payload_url=URL des Données Utiles
settings.content_type=Type de contenu
settings.secret=Confidentiel
+settings.secret_desc=Le secret sera envoyé comme digest de payload SHA256 HMAC hex avec l'entête X-Gogs-Signature.
settings.slack_username=Nom d'utilisateur
settings.slack_icon_url=URL de l'icône
settings.slack_color=Couleur
-settings.event_desc=Quel évènement ce Webhook doit-il déclencher ?
+settings.event_desc=Quand ce webhook doit-il être déclenché ?
settings.event_push_only=Uniquement les push (soumissions).
settings.event_send_everything=J'ai besoin de tout.
settings.event_choose=Permettez-moi de choisir ce dont j'ai besoin.
settings.event_create=Créer
settings.event_create_desc=Branche, ou Tag créé
-settings.event_pull_request=Pull Request
-settings.event_pull_request_desc=Pull request ouvert, fermé, rouvert, édité, attribuée, non attribuées, étiquette mise à jour, étiquette désactivée ou synchronisé.
+settings.event_delete=Supprimer
+settings.event_delete_desc=Branche ou tag supprimé
+settings.event_fork=Fork
+settings.event_fork_desc=Dépôt dédoublé
settings.event_push=Push
settings.event_push_desc=Git push vers un dépôt
+settings.event_issues=Tickets
+settings.event_issues_desc=Ticket ouvert, fermé, réouvert, modifié, assigné, non-assigné, étiquette mise à jour, étiquette nettoyée, jalonnée, ou déjalonnée.
+settings.event_pull_request=Pull Request
+settings.event_pull_request_desc=Pull requests ouverte, fermée, réouverte, modifiée, assignée, non-assignée, étiquette mise à jour, étiquette nettoyée, jalonnée, déjalonnée, ou synchronisée.
+settings.event_issue_comment=Commentaire du ticket
+settings.event_issue_comment_desc=Commentaire du ticket créé, modifié, ou supprimé.
+settings.event_release=Version publiée
+settings.event_release_desc=Version publiée dans un dépôt.
settings.active=Actif
settings.active_helper=Les détails seront délivrés lorsque ce Hook sera déclenché.
settings.add_hook_success=Nouveau Webhook ajouté.
@@ -733,10 +858,13 @@ settings.delete_webhook=Supprimer le Webhook
settings.recent_deliveries=Livraisons récentes
settings.hook_type=Type de Hook
settings.add_slack_hook_desc=Intégrer Slack à votre dépôt.
+settings.add_discord_hook_desc=Ajouter l'intégration de Discord à votre dépôt.
+settings.add_dingtalk_hook_desc=Ajouter l'intégration de Dingtalk à votre dépôt.
settings.slack_token=Jeton
settings.slack_domain=Domaine
settings.slack_channel=Canal
settings.deploy_keys=Clés de déploiement
+settings.deploy_keys_helper=Gotcha commun ! Si vous cherchez à ajouter des clés publiques personnelles, ajoutez-les dans vos paramètres de compte.
settings.add_deploy_key=Ajouter une Clé de Déploiement
settings.deploy_key_desc=Déployer une clé uniquement en lecture seule. Il ne s'agit pas des clés ssh de compte personnel.
settings.no_deploy_keys=Vous n'avez ajouté aucune clé de déploiement.
@@ -748,8 +876,10 @@ settings.add_key_success=La nouvelle clé de déploiement '%s' a été ajoutée
settings.deploy_key_deletion=Supprimer la Clé de Déploiement
settings.deploy_key_deletion_desc=Supprimer cette clé de déploiement effacera tous les accès relatifs pour ce référentiel. Voulez-vous continuer ?
settings.deploy_key_deletion_success=La clé de déploiement a été supprimée avec succès !
+settings.description_desc=Description du dépôt. 512 caractères maximum.
+settings.description_length=Caractères disponibles
-diff.browse_source=Parcourir la Source
+diff.browse_source=Parcourir la source
diff.parent=Parent
diff.commit=commit
diff.data_not_available=Données Diff indisponibles.
@@ -766,7 +896,6 @@ release.releases=Versions
release.new_release=Nouvelle version
release.draft=Brouillon
release.prerelease=Pré-publication
-release.stable=Stable
release.edit=Éditer
release.ahead=%d commits jusqu'à %s depuis cette publication
release.source_code=Code source
@@ -813,8 +942,8 @@ team_name_helper=Ce nom sera utilisé pour mentionner l'équipe dans les convers
team_desc_helper=Présentation de l'équipe
team_permission_desc=Quel niveau d'accès cette équipe devrait-elle posséder ?
-form.name_reserved=Le nom d'organisation '%s' est réservé.
-form.name_pattern_not_allowed=Motif '%s' interdit pour les noms d'organisation.
+form.name_not_allowed=Le nom de l'organisation ou le modèle n'est pas autorisé.
+form.team_name_not_allowed=Le nom de l'équipe ou le pattern %q n'est pas autorisé.
settings=Paramètres
settings.options=Options
@@ -831,7 +960,7 @@ settings.delete_prompt=Cela supprimera cette organisation définitivement. Cette
settings.confirm_delete_account=Confirmez la suppression
settings.delete_org_title=Suppression d'organisation
settings.delete_org_desc=Cette organisation sera définitivement supprimée. Continuer ?
-settings.hooks_desc=Ajoute des vebhooks qui seront activés pour tous les dépôts de cette organisation.
+settings.hooks_desc=Ajoute des webhooks qui seront activés pour tous les dépôts de cette organisation.
members.membership_visibility=Visibilité des membres:
members.public=Public
@@ -886,12 +1015,19 @@ first_page=Première
last_page=Dernière
total=Total : %d
+dashboard.build_info=Informations sur la construction
+dashboard.app_ver=Version de l'application
+dashboard.git_version=Version de Git
+dashboard.go_version=Version de Go
+dashboard.build_time=Temps de compilation
+dashboard.build_commit=Commit
dashboard.statistic=Statistiques
dashboard.operations=Opérations
dashboard.system_status=État du système
dashboard.statistic_info=La base de données Gogs contient %d utilisateurs, %d organisations, %d clés publiques, %d dépôts, %d surveillances de dépôts, %d votes, %d actions, %d accès, %d tickets, %d commentaires, %d comptes de réseaux sociaux, %d abonnements, %d miroirs, %d versions, %d connexions d'origine, %d webhooks, %d versions, %d labels, %d tâches hook, %d équipes, %d tâches de mise à jour, %d fichiers.
dashboard.operation_name=Nom de l'Opération
dashboard.operation_switch=Basculer
+dashboard.select_operation_to_run=Veuillez sélectionner l'opération à exécuter
dashboard.operation_run=Exécuter
dashboard.clean_unbind_oauth=Nettoyer les associations OAuthes
dashboard.clean_unbind_oauth_success=Tous unbind OAuthes ont été supprimés avec succès.
@@ -905,8 +1041,8 @@ dashboard.git_gc_repos=Collecter les déchets des dépôts
dashboard.git_gc_repos_success=Tous les dépôts ont effectué la collecte avec succès.
dashboard.resync_all_sshkeys=Ré-écrire le fichier '.ssh/authorized_keys' (attention : les clés hors-Gogs vont être perdues)
dashboard.resync_all_sshkeys_success=Toutes les clés publiques ont été ré-écrites avec succès.
-dashboard.resync_all_update_hooks=Ré-écrire tous les hooks de mises à jour des dépôts (requis quand le chemin de la configuration personnalisé est modifié)
-dashboard.resync_all_update_hooks_success=Tous les hooks de mises à jour des dépôts ont été ré-écris avec succès.
+dashboard.resync_all_hooks=Re-synchroniser les crochets pre-receive, update et post-receive de tous les dépôts.
+dashboard.resync_all_hooks_success=Tous les crochets pre-receive, update et post-receive ont bien été resynchronisés.
dashboard.reinit_missing_repos=Réinitialiser tous les dépôts qui ont perdu des fichiers Git
dashboard.reinit_missing_repos_success=Tous les enregistrements de dépôts qui ont perdu des fichiers Git ont été réinitialisés avec succès.
@@ -981,12 +1117,14 @@ repos.private=Privé
repos.watches=Suivi par
repos.stars=Votes
repos.issues=Tickets
+repos.size=Taille
-auths.auth_manage_panel=Panel d'administration des authentifications
+auths.auth_sources=Sources d'authentification
auths.new=Ajouter une nouvelle source d'authentification
auths.name=Nom
auths.type=Type
auths.enabled=Activé
+auths.default=Par défaut
auths.updated=Mis à jour
auths.auth_type=Type d'authentification
auths.auth_name=Nom de l'authentification
@@ -995,6 +1133,7 @@ auths.domain=Domaine
auths.host=Hôte
auths.port=Port
auths.bind_dn=Bind DN
+auths.bind_dn_helper=Vous pouvez utiliser « %s » qui sera remplacé par le nom d'utilisateur, par exemple « DOM\%s »
auths.bind_password=Bind mot de passe
auths.bind_password_helper=Avertissement : Ce mot de passe est stocké en clair. N'utilisez pas le mot de passe d'un compte doté de privilèges élevés.
auths.user_base=Utilisateur Search Base
@@ -1004,6 +1143,11 @@ auths.attribute_username_placeholder=Laisser vide pour utiliser la valeur du for
auths.attribute_name=Attribut du prénom
auths.attribute_surname=Attribut du nom de famille
auths.attribute_mail=Attribut de l'e-mail
+auths.verify_group_membership=Vérifier l'appartenance à un groupe
+auths.group_search_base_dn=Recherche de groupe basée sur le nom de domaine
+auths.group_filter=Filtre par groupe
+auths.group_attribute_contain_user_list=Attribut de groupe contenant la liste des utilisateurs
+auths.user_attribute_listed_in_group=Attribut de l'utilisateur listé dans le groupe
auths.attributes_in_bind=Aller chercher les attributs dans le contexte de liaison DN
auths.filter=Filtre utilisateur
auths.admin_filter=Filtre administrateur
@@ -1017,9 +1161,9 @@ auths.enable_tls=Activer le Chiffrement TLS
auths.skip_tls_verify=Ne pas vérifier TLS
auths.pam_service_name=Nom du Service PAM
auths.enable_auto_register=Connexion Automatique
-auths.tips=Conseils
auths.edit=Modifier les paramètres d'authentification
auths.activated=Authentification activée
+auths.default_auth=Cette authentification est la source de connexion par défaut
auths.new_success=Nouvelle authentification «%s » a été ajoutée avec succès.
auths.update_success=Les paramètre d'authentification a été mis à jour avec succès.
auths.update=Mettre à jour les paramètres d'authentifications
@@ -1028,107 +1172,189 @@ auths.delete_auth_title=Suppression de l'authentification
auths.delete_auth_desc=Cette authentification va être supprimée. voulez-vous continuer ?
auths.still_in_used=Cette authentification est encore utilisée par d'autres utilisateurs, supprimez-les ou convertir ces utilisateurs vers un autre type de session, avant.
auths.deletion_success=L'authentification a été supprimée avec succès !
+auths.login_source_exist=La source de connexion « %s » existe déjà.
+auths.github_api_endpoint=API Endpoint
+config.not_set=(non défini)
config.server_config=Configuration du Serveur
-config.app_name=Nom de l'application
-config.app_ver=Version de l'application
-config.app_url=URL de l'application
-config.domain=Domaine
-config.offline_mode=Mode hors-ligne
-config.disable_router_log=Désactiver la Journalisation du Routeur
+config.brand_name=Nom de la marque
config.run_user=Utilisateur système
config.run_mode=Mode d'Éxécution
-config.repo_root_path=Emplacement des Dépôts
-config.static_file_root_path=Chemin statique des fichiers racines
-config.log_file_root_path=Emplacement Racine du Fichier Journal
-config.script_type=Type de Script
-config.reverse_auth_user=Annuler l'Authentification de l'Utilisateur
+config.server.external_url=URL externe
+config.server.domain=Domaine
+config.server.protocol=Protocole
+config.server.http_addr=Adresse HTTP
+config.server.http_port=Port HTTP
+config.server.cert_file=Fichier de certificat
+config.server.key_file=Fichier de la clé
+config.server.tls_min_version=Version minimale de TLS
+config.server.unix_socket_permission=Autorisation du socket Unix
+config.server.local_root_url=URL racine locale
+config.server.offline_mode=Mode hors connexion
+config.server.disable_router_log=Désactiver la journalisation du routeur
+config.server.enable_gzip=Activer Gzip
+config.server.app_data_path=Chemin des données de l'application
+config.server.load_assets_from_disk=Charger les ressources depuis le disque
+config.server.landing_url=URL de destination (collecte)
config.ssh_config=Configuration SSH
-config.ssh_enabled=Activé
-config.ssh_start_builtin_server=Démarrer le serveur intégré
-config.ssh_domain=Domaine
-config.ssh_port=Port
-config.ssh_listen_port=Port d'écoute
-config.ssh_root_path=Emplacement racine
-config.ssh_key_test_path=Chemin de test des clés
-config.ssh_keygen_path=Chemin vers le générateur de clefs ("ssh-keygen")
-config.ssh_minimum_key_size_check=Vérification de la longueur de clé minimale
-config.ssh_minimum_key_sizes=Tailles de clé minimales
+config.ssh.enabled=Activé
+config.ssh.domain=Domaine exposé
+config.ssh.port=Port exposé
+config.ssh.root_path=Emplacement racine
+config.ssh.keygen_path=Chemin de la clé
+config.ssh.key_test_path=Chemin de test de la clé
+config.ssh.minimum_key_size_check=Vérification de la taille minimale des clés
+config.ssh.minimum_key_sizes=Taille minimale des clés
+config.ssh.rewrite_authorized_keys_at_start=Réécriture de "authorized_keys" au démarrage
+config.ssh.start_builtin_server=Démarrer le serveur intégré
+config.ssh.listen_host=Hôte en écoute
+config.ssh.listen_port=Port d'écoute
+config.ssh.server_ciphers=Suites de chiffrement
+config.ssh.server_macs=Adresses MAC du serveur
+config.ssh.server_algorithms=Algorithmes de serveur
+
+config.repo_config=Configuration du dépôt
+config.repo.root_path=Emplacement racine
+config.repo.script_type=Type de script
+config.repo.ansi_chatset=Jeu de caractères ANSI
+config.repo.force_private=Forcer en tant que privé
+config.repo.max_creation_limit=Limite de création
+config.repo.preferred_licenses=Licences préférées
+config.repo.disable_http_git=Désactiver Git HTTP
+config.repo.enable_local_path_migration=Activer la migration de chemin locale
+config.repo.enable_raw_file_render_mode=Activer le mode de rendu des fichiers de manière brute
+config.repo.commits_fetch_concurrency=Récupération simultanée des commits
+config.repo.editor.line_wrap_extensions=Extensions de retour à la ligne de l'éditeur
+config.repo.editor.previewable_file_modes=Modes de prévisualisation des fichiers de l'éditeur
+config.repo.upload.enabled=Publication activée
+config.repo.upload.temp_path=Chemin du téléchargement temporaire
+config.repo.upload.allowed_types=Types de publications autorisées
+config.repo.upload.file_max_size=Taille maximale des fichiers envoyés
+config.repo.upload.max_files=Limite sur les fichiers publiés
config.db_config=Configuration de la Base de Données
-config.db_type=Type
-config.db_host=Hôte
-config.db_name=Nom
-config.db_user=Utilisateur
-config.db_ssl_mode=Mode SSL
-config.db_ssl_mode_helper=("postgres" uniquement)
-config.db_path=Emplacement
-config.db_path_helper=(pour « sqlite3 » et « TIDB »)
-
-config.service_config=Configuration du Service
-config.register_email_confirm=Nécessite une confirmation par e-mail
-config.disable_register=Désactiver les inscriptions
-config.show_registration_button=Afficher le bouton d'enregistrement
-config.require_sign_in_view=Connexion obligatoire pour visualiser
-config.mail_notify=Notifier par mail
-config.disable_key_size_check=Désactiver la vérification de la taille de clé minimale
-config.enable_captcha=Activez le Captcha
-config.active_code_lives=Limites de Code Actif
-config.reset_password_code_lives=Réinitialiser le Mot De Passe des Limites de Code
+config.db.type=Type
+config.db.host=Serveur hôte
+config.db.name=Nom
+config.db.schema=Schéma
+config.db.schema_helper=(pour "postgres" uniquement)
+config.db.user=Utilisateur
+config.db.ssl_mode=Mode SSL
+config.db.ssl_mode_helper=("postgres" uniquement)
+config.db.path=Chemin
+config.db.path_helper=(pour "sqlite3" seulement)
+config.db.max_open_conns=Nombre maximum de connexions ouvertes
+config.db.max_idle_conns=Nombre maximum de connexions inactives
+
+config.security_config=Configuration de sécurité
+config.security.login_remember_days=Rester connecté plusieurs jours
+config.security.cookie_remember_name=Mémoriser le cookie
+config.security.cookie_username=Cookie du nom d'utilisateur
+config.security.cookie_secure=Activer les cookies sécurisés
+config.security.reverse_proxy_auth_user=Inverser l'en-tête d'authentification du proxy
+config.security.enable_login_status_cookie=Activer le cookie d'état de connexion
+config.security.login_status_cookie_name=Cookie de statut de connexion
+config.security.local_network_allowlist=liste des autorisations de réseau local
+
+config.email_config=Configuration de l’e-mail
+config.email.enabled=Activé
+config.email.subject_prefix=Préfixe du sujet
+config.email.host=Hôte
+config.email.from=De:
+config.email.user=Utilisateur
+config.email.disable_helo=Désactiver HELO
+config.email.helo_hostname=Nom d’hôte HELO
+config.email.skip_verify=Ignorer la vérification du certificat
+config.email.use_certificate=Utiliser un certificat personnalisé
+config.email.cert_file=Fichier de certificat
+config.email.key_file=Fichier de la clé
+config.email.use_plain_text=Utiliser le texte brut
+config.email.add_plain_text_alt=Ajouter une alternative au texte brut
+config.email.send_test_mail=Envoyer un e-mail de test
+config.email.test_mail_failed=Impossible d'envoyer un e-mail de test à '%s' :
+config.email.test_mail_sent=Un e-mail de test à été envoyé à '%s'.
+
+config.auth_config=Configuration de l'authentification
+config.auth_custom_logout_url=Custom logout URL
+config.auth.activate_code_lives=Activer les vies sur les codes
+config.auth.reset_password_code_lives=Vies sur les codes de réinitialisation des mots de passes
+config.auth.require_email_confirm=Nécessite une confirmation par e-mail
+config.auth.require_sign_in_view=Connexion obligatoire pour visualiser
+config.auth.disable_registration=Désactiver les inscriptions
+config.auth.enable_registration_captcha=Activer le CAPTCHA à l'inscription
+config.auth.enable_reverse_proxy_authentication=Activer l'authentification par proxy inversé
+config.auth.enable_reverse_proxy_auto_registration=Activer l'enregistrement automatique du proxy inversé
+config.auth.reverse_proxy_authentication_header=En-tête d'authentification du proxy inversé
+
+config.user_config=Configuration de l'utilisateur
+config.user.enable_email_notify=Activer les notifications par e-mail
-config.webhook_config=Configuration Webhook
-config.queue_length=Longueur de la file d'attente
-config.deliver_timeout=Expiration d'Envoi
-config.skip_tls_verify=Ne pas vérifier TLS
-
-config.mailer_config=Configuration du service de mail
-config.mailer_enabled=Activé
-config.mailer_disable_helo=Désactiver HELO
-config.mailer_name=Nom
-config.mailer_host=Hôte
-config.mailer_user=Utilisateur
-config.send_test_mail=Envoyer courriel de Test
-config.test_mail_failed=Impossible d'envoyer un e-mail de test à '%s': %v
-config.test_mail_sent=Un e-mail de test à été envoyé à '%s'.
-
-config.oauth_config=Configuration OAuth
-config.oauth_enabled=Activé
+config.session_config=Configuration de session
+config.session.provider=Fournisseur
+config.session.provider_config=Configuration du fournisseur
+config.session.cookie_name=Cookie
+config.session.https_only=HTTPS uniquement
+config.session.gc_interval=Intervalle du GC
+config.session.max_life_time=Durée de vie maximale
+config.session.csrf_cookie_name=Cookie CSRF
config.cache_config=Configuration du Cache
-config.cache_adapter=Adaptateur du Cache
-config.cache_interval=Intervales du Cache
-config.cache_conn=Liaison du Cache
-
-config.session_config=Configuration de session
-config.session_provider=Fournisseur de session
-config.provider_config=Configuration du fournisseur
-config.cookie_name=Nom du cookie
-config.enable_set_cookie=Activer les cookies
-config.gc_interval_time=Intervals GC
-config.session_life_time=Durée des sessions
-config.https_only=HTTPS uniquement
-config.cookie_life_time=Expiration du cookie
+config.cache.adapter=Adaptateur
+config.cache.interval=Intervalle du GC
+config.cache.host=Serveur hôte
+
+config.http_config=Configuration HTTP
+config.http.access_control_allow_origin=Autoriser le partage d’accès avec l’origine
+
+config.attachment_config=Configuration des pièces jointes
+config.attachment.enabled=Activé
+config.attachment.path=Chemin
+config.attachment.allowed_types=Types autorisés
+config.attachment.max_size=Taille limite
+config.attachment.max_files=Limite de fichiers
+
+config.release_config=Configuration de la version
+config.release.attachment.enabled=Pièces jointes activées
+config.release.attachment.allowed_types=Types de pièces jointes autorisés
+config.release.attachment.max_size=Limite de taille des pièces jointes
+config.release.attachment.max_files=Limite du nombre de fichiers joints
config.picture_config=Configuration d'Image
-config.picture_service=Service d'Imagerie
-config.disable_gravatar=Désactiver Gravatar
-config.enable_federated_avatar=Activer les avatars unifiés
+config.picture.avatar_upload_path=Chemin de téléchargement de l'avatar de l'utilisateur
+config.picture.repo_avatar_upload_path=Chemin de téléchargement de l'avatar du référentiel de versions
+config.picture.gravatar_source=Origine Gravatar
+config.picture.disable_gravatar=Désactiver Gravatar
+config.picture.enable_federated_avatar=Activer les avatars unifiés
+
+config.mirror_config=Configuration de mise en miroir
+config.mirror.default_interval=Intervalle par défaut
+
+config.webhook_config=Configuration Webhook
+config.webhook.types=Types
+config.webhook.deliver_timeout=Délai de livraison
+config.webhook.skip_tls_verify=Ignorer la vérification TLS
config.git_config=Configuration de Git
-config.git_disable_diff_highlight=Désactiver la surbrillance syntaxique de Diff
-config.git_max_diff_lines=Lignes de Diff Max (pour un seul fichier)
-config.git_max_diff_line_characters=Nombre max de caractères de Diff (pour une seule ligne)
-config.git_max_diff_files=Nombre max de fichiers de Diff (à afficher)
-config.git_gc_args=Arguments de GC
-config.git_migrate_timeout=Délai imparti pour une migration
-config.git_mirror_timeout=Délai imparti pour mettre à jour le miroir
-config.git_clone_timeout=Délai imparti pour l'opération "Clone"
-config.git_pull_timeout=Délai imparti pour l'opération "Pull"
-config.git_gc_timeout=Délai imparti pour l'opération "GC"
+config.git.disable_diff_highlight=Désactiver la coloration syntaxique des différences
+config.git.max_diff_lines=Limite de lignes différentes (pour un seul fichier)
+config.git.max_diff_line_characters=Limite de caractères différents (pour une seule ligne)
+config.git.max_diff_files=Limite de fichiers différents (pour une seule différence)
+config.git.gc_args=Arguments GC
+config.git.migrate_timeout=Délai de migration dépassé
+config.git.mirror_timeout=Délai de récupération du miroir dépassé
+config.git.clone_timeout=Délai de clonage dépassé
+config.git.pull_timeout=Délai de récupération des sources dépassé
+config.git.gc_timeout=GB délai expiré
+
+config.lfs_config=Configuration LFS
+config.lfs.storage=Espace de stockage
+config.lfs.objects_path=Chemin d'accès des objets
config.log_config=Configuration du Journal
-config.log_mode=Mode du journal
+config.log_file_root_path=Emplacement Racine du Fichier Journal
+config.log_mode=Mode
+config.log_options=Options
monitor.cron=Tâches Cron
monitor.name=Nom
@@ -1147,7 +1373,7 @@ notices.actions=Actions
notices.select_all=Tout Sélectionner
notices.deselect_all=Tous déselectionner
notices.inverse_selection=Inverser la sélection
-notices.delete_selected=Supprimé les éléments sélectionnés
+notices.delete_selected=Supprimer les éléments sélectionnés
notices.delete_all=Supprimer toutes les notifications
notices.type=Type
notices.type_1=Dépôt
@@ -1158,18 +1384,25 @@ notices.delete_success=Notifications système supprimées avec succès.
[action]
create_repo=a créé le dépôt %s
rename_repo=a rebaptisé le dépôt de %[1]s vers %[3]s
-commit_repo=a soumis à %[3]s sur %[4]s
+commit_repo=a commité dans %[3]s sur %[4]s
+compare_commits=Comparer ces %d commits
+transfer_repo=a transféré le dépôt %s à %s
create_issue=`a ouvert un problème %s#%[2]s`
close_issue=`tickets clos %s#%[2]s`
reopen_issue=`tickets ré-ouverts %s#%[2]s`
+comment_issue=`a commenté le problème %s#%[2]s`
create_pull_request=`pull request créée le %s#%[2]s`
-close_pull_request=`pull request fermé %s#%[2]s`
+close_pull_request=`pull request fermée %s#%[2]s`
reopen_pull_request=`pull request ré-ouverte %s#%[2]s`
-comment_issue=`a commenté le problème %s#%[2]s`
merge_pull_request=`pull request fusionné le %s#%[2]s`
-transfer_repo=a transféré le dépôt %s à %s
+create_branch=nouvelle branche créée %[3]s sur %[4]s
+delete_branch=branche supprimée %[2]s sur %[3]s
push_tag=a soumis le tag %[2]s sur %[3]s
-compare_commits=Comparer ces %d commits
+delete_tag=étiquette supprimée %[2]s sur %[3]s
+fork_repo=a créé sa branche du dépôt vers %s
+mirror_sync_push=a commité dans %[3]s sur %[4]s
+mirror_sync_create=a synchronisé la nouvelle référence %[2]s vers %[3]s depuis le miroir
+mirror_sync_delete=Référence synchronisés et supprimé %[2]s sur %[3]s
[tool]
ago=il y a
@@ -1191,6 +1424,7 @@ months=%[2]s %[1]d mois
years=%[2]s %[1]d ans
raw_seconds=secondes
raw_minutes=minutes
+raw_hours=heures
[dropzone]
default_message=Déposez les fichiers ici ou cliquez pour télécharger.
diff --git a/conf/locale/locale_gl-ES.ini b/conf/locale/locale_gl-ES.ini
new file mode 100644
index 00000000000..cec2baf6760
--- /dev/null
+++ b/conf/locale/locale_gl-ES.ini
@@ -0,0 +1,1435 @@
+app_desc=Un servizo de Git auto aloxado e sen complicacións
+
+home=Inicio
+dashboard=Panel de control
+explore=Explorar
+help=Axuda
+sign_in=Iniciar sesión
+sign_out=Cerrar sesión
+sign_up=Rexistro
+register=Rexistro
+website=Páxina web
+page=Páxina
+template=Modelo
+language=Idioma
+create_new=Crear…
+user_profile_and_more=Perfil de usuario/a e máis
+signed_in_as=Identificado/a como
+
+username=Nome da persoa usuaria
+email=Correo electrónico
+password=Contrasinal
+re_type=Ingrese de novo
+captcha=Captcha=Captcha
+
+repository=Repositorio
+organization=Organización
+mirror=Réplica
+new_repo=Novo repositorio
+new_migrate=Nova migración
+new_mirror=Nova réplica
+new_fork=Novo fork do repositorio
+new_org=Nova organización
+manage_org=Administrar organizacións
+admin_panel=Panel de administración
+account_settings=Configuracións da conta
+settings=Configuracións
+your_profile=O teu perfil
+your_settings=A túa configuración
+
+activities=Actividade
+pull_requests=Solicitudes de integración
+issues=Incidencias
+
+cancel=Cancelar
+
+[status]
+page_not_found=Page Not Found
+internal_server_error=Internal Server Error
+
+[install]
+install=Instalación
+title=Pasos da instalación por primeira vez
+docker_helper=Se está executando Gogs usando Docker, por favor lea estas pautas antes de cambiar nada nesta páxina!
+requite_db_desc=Gogs requires MySQL, PostgreSQL, SQLite3 or TiDB (via MySQL protocol).
+db_title=Configuración de base de datos
+db_type=Tipo de base de datos
+host=Host
+user=Persoa usuaria
+password=Contrasinal
+db_name=Nome da base de datos
+db_schema=Schema
+db_helper=Por favor, empregue o motor INNODB coa configuración de caracteres utf8_general_ci para MySQL.
+ssl_mode=Modo SSL
+path=Ruta
+sqlite_helper=A ruta do ficheiro da base de datos SQLite3. Utilice a ruta absoluta cando arrique o servicio.
+err_empty_db_path=A ruta da base de datos SQLite3 non pode estar baleira.
+no_admin_and_disable_registration=Non pode deshabilitar o rexistro sen crear unha conta de administrador.
+err_empty_admin_password=O contrasinal de administrador non pode estar baleiro.
+
+general_title=Configuración xeral de Gogs
+app_name=Nome da aplicación
+app_name_helper=Pon aquí o nome da túa organización, alto e claro!
+repo_path=Ruta do repositorio de Raiz (Root)
+repo_path_helper=Todos os repositorios remotos de Git gardaranse neste directorio.
+run_user=Executar como usuario
+run_user_helper=A persoa usuaria necesita ter acceso á ruta raíz do repositorio e executar Gogs.
+domain=Dominio
+domain_helper=Isto afecta ás URLs para clonar por SSH.
+ssh_port=Porto SSH
+ssh_port_helper=Número de porto do seu servidor SSH, déixeo en branco para desactivar SSH.
+use_builtin_ssh_server=Utilizar Builin en Sevidor SSH
+use_builtin_ssh_server_popup=Inicia o servidor SSH integrado para que as operacións de Git sexan distintas do demonio SSH do sistema.
+http_port=Porto HTTP
+http_port_helper=Porto no que escoitará a aplicación.
+app_url=URL da aplicación
+app_url_helper=Isto afecta ás URLs para clonar por HTTP/HTTPS e a algúns correos electrónicos.
+log_root_path=Ruta do rexistro
+log_root_path_helper=Directorio onde almacenar os rexistros.
+enable_console_mode=Habilitar Modo Consola
+enable_console_mode_popup=Ademáis do modo de ficheiro, tamén imprime os rexistros para a consola.
+default_branch=Default Branch
+
+optional_title=Configuración opcional
+email_title=Configuración do servizo de correo
+smtp_host=SMTP Host
+smtp_from=Dende
+smtp_from_helper=Remitente do correo electrónico, RFC 5322. Pode ser soamente un enderezo de correo electrónico, ou estar no formato "Nome" .
+mailer_user=Remitente do correo electrónico
+mailer_password=Contrasinal do remitente
+register_confirm=Habilitar a confirmación no rexistro
+mail_notify=Habilitar as notificacións de correo
+server_service_title=Configuración do servidor e outros servizos
+offline_mode=Activar o modo Sen conexión
+offline_mode_popup=Desactivar o CDN incluso no modo de produción, todos os recursos serviranse localmente.
+disable_gravatar=Desactivar o servizo Gravatar
+disable_gravatar_popup=Desactivar Gravatar e calquera outra fonte personalizada. Todos os avatares deben ser cargados polas persoas usuarias ou no seu defecto mostrarase o avatar predeterminado.
+federated_avatar_lookup=Habilitar busca de avatares federados
+federated_avatar_lookup_popup=Habilitar busca de avatares federados para usar o servizo federado de código aberto baseado en libravatar.
+disable_registration=Desactivar auto-rexistro
+disable_registration_popup=Desactivar auto-rexistro da persoa usuaria, só a persoa administradora poderá crear contas novas.
+enable_captcha=Activar a captcha
+enable_captcha_popup=Require validar a captcha para o auto-rexistro de persoa usuaria.
+require_sign_in_view=Activar o inicio de sesión obrigatorio para ver páxinas
+require_sign_in_view_popup=Só as persoas usuarias logueadas poden ver páxinas, as visitantes anónimas só poderán ver as páxinas de login/rexistro.
+admin_setting_desc=Non é necesario crear unha conta de administrador agora mesmo, a persoa usuaria que teña ID=1 obterá privilexios de administradora automaticamente.
+admin_title=Configuración da conta de administrador
+admin_name=Nome de persoa usuaria
+admin_password=Contrasinal
+confirm_password=Confirmar contrasinal
+admin_email=Correo electrónico da persoa administradora
+install_gogs=Instalar Gogs
+test_git_failed=Fallo ao probar o comando 'git': %v
+sqlite3_not_available=A túa versión non soporta SQLite3, por favor, descarga o binario oficial dende %s, NON a versión de gobuild.
+invalid_db_setting=A configuración da base de datos non é correcta: %v
+invalid_repo_path=A ruta da raíz do repositorio é inválida: %v
+run_user_not_match=A persoa usuaria que está executando a aplicación non é a persoa usuaria actual: %s -> %s
+smtp_host_missing_port=Falta o porto do Host SMTP
+
+invalid_smtp_from=O campo From do SMTP non é valido: %v
+save_config_failed=Erro ao gardar a configuración: %v
+init_failed=Failed to initialize application: %v
+invalid_admin_setting=A configuración da conta de administración é inválida: %v
+install_success=Benvido/a! Estamos encantados de que escolleses Gogs, divírtete e cóidate.
+invalid_log_root_path=A ruta para os rexistros é inválida: %v
+
+[home]
+uname_holder=Nome de usuario/a ou correo electrónico
+password_holder=Contrasinal
+switch_dashboard_context=Cambiar o contexto do Dashboard
+my_repos=Os meus repositorios
+show_more_repos=Mostrar máis repositorios...
+collaborative_repos=Repositorios colaborativos
+my_orgs=As miñas organizacións
+my_mirrors=As miñas réplicas
+view_home=Ver %s
+
+issues.in_your_repos=Nos teus repositorios
+
+[explore]
+repos=Repositorios
+users=Persoas usuarias
+organizations=Organizacións
+search=Buscar
+
+[auth]
+create_new_account=Crear unha nova conta
+register_hepler_msg=Xa tes unha conta? Inicia sesión!
+social_register_hepler_msg=Xa tes unha conta? Enlázaa!
+disable_register_prompt=Sentímolo, o rexistro está deshabilitado. Por favor, contacta co administrador do sitio.
+disable_register_mail=Sentímolo. Os correos de confirmación de rexistro están deshabilitados.
+auth_source=Fonte de Autenticación
+local=Configuración rexional
+remember_me=Recórdame
+forgot_password=Esquecín o meu contrasinal
+forget_password=Esqueciches o teu contrasinal?
+sign_up_now=Necesitas unha conta? Rexístrate agora.
+confirmation_mail_sent_prompt=Un novo correo de confirmación enviouse a %s. Por favor, comproba a túa bandexa de entrada nas seguintes %d horas para completar o proceso de rexistro.
+active_your_account=Activa a túa conta
+prohibit_login=Ingreso prohibido
+prohibit_login_desc=A túa conta ten prohibido ingresar ao sistema, por favor, contacta coa persoa administradora do sistema.
+resent_limit_prompt=Sentímolo, estás solicitando o reenvío do correo de activación con demasiada frecuencia. Por favor, agarda 3 minutos.
+has_unconfirmed_mail=Ola %s, o teu correo electrónico (%s) non está confirmado. Se non recibiches un correo de confirmación ou necesitas que o enviemos de novo, por favor, preme no seguinte botón.
+resend_mail=Preme aquí para reenviar o teu correo electrónico de activación
+send_reset_mail=Prema aquí para (re)enviar o correo para o restablecemento do contrasinal
+reset_password=Restablecer o teu contrasinal
+invalid_code=Sentímolo, o teu código de confirmación expirou ou non é válido.
+reset_password_helper=Prema aquí para restablecer o seu contrasinal
+password_too_short=A lonxitude do contrasinal non pode ser menor de 6.
+non_local_account=Contas que non son locais non poden cambiar os contrasinais a través de Gogs.
+
+login_two_factor=Autenticación en dous pasos
+login_two_factor_passcode=Código de Autenticación
+login_two_factor_enter_recovery_code=Introduza o código de recuperación da verificación en dous pasos
+login_two_factor_recovery=Recuperación en dous pasos
+login_two_factor_recovery_code=Codigo de Recuperación
+login_two_factor_enter_passcode=Introduza o código de acceso en dous pasos
+login_two_factor_invalid_recovery_code=O código de recuperación foi usado ou non é válido.
+
+[mail]
+activate_account=Por favor, activa a túa conta
+activate_email=Verifica o teu correo electrónico
+reset_password=Restablece o teu contrasinal
+register_success=Rexistro completado, benvido/a
+register_notify=Benvido/a a bordo
+
+[modal]
+yes=Si
+no=Non
+modify=Editar
+
+[form]
+UserName=Nome da persoa usuaria
+RepoName=Nome do repositorio
+Email=Enderezo de correo electrónico
+Password=Contrasinal
+Retype=Volva escribir o contrasinal
+SSHTitle=Nome da clave de SSH
+HttpsUrl=HTTPS URL
+PayloadUrl=URL de carga
+TeamName=Nome do equipo
+AuthName=Nome de autorización
+AdminEmail=Correo electrónico da persoa administradora
+
+NewBranchName=Novo nome de rama
+CommitSummary=Resumo da achega
+CommitMessage=Mensaxe da achega
+CommitChoice=Preferencia da achega
+TreeName=Ruta do arquivo
+Content=Contido
+
+require_error=` non pode estar baleiro.`
+alpha_dash_error=` os caracteres deben ser alfanuméricos ou dash(-_).`
+alpha_dash_dot_error=` debe ser un carácter alfanumérivo válido, un guión alto ou baixo (-_) ou un signo de puntuación.`
+alpha_dash_dot_slash_error=` debe ser un carácter válido : numérico, alfabético, guión(-_) puntos ou barras.`
+size_error=` debe ser de tamaño %s.`
+min_size_error=` debe conter polo menos %s caracteres.`
+max_size_error=` debe conter como máximo %s caracteres.`
+email_error=` non é un enderezo de correo válido.`
+url_error=` non é unha URL válida.`
+include_error=` debe conter a subcadea '%s'.`
+unknown_error=Erro descoñecido:
+captcha_incorrect=O captcha non é válido.
+password_not_match=O contrasinal de confirmación non coincide.
+
+username_been_taken=Xa existe unha persoa usuaria con este nome.
+repo_name_been_taken=Xa existe un repositorio con este nome.
+org_name_been_taken=Xa existe unha organización con este nome.
+team_name_been_taken=Xa existe un equipo con este nome.
+email_been_used=Este enderezo de correo electrónico xa está en uso.
+username_password_incorrect=Nome de usuario ou contrasinal incorrectos.
+auth_source_mismatch=A fonte de autenticación seleccionada non está asociada co usuario.
+enterred_invalid_repo_name=Por favor, asegúrate de que introduciches correctamente o nome do repositorio.
+enterred_invalid_owner_name=Por favor, asegúrate de que introduciches correctamente o nome do propietario.
+enterred_invalid_password=Por favor, asegúrate de que introduciches correctamente o teu contrasinal.
+user_not_exist=A persoa usuaria indicada non existe.
+last_org_owner=O usuario que se intenta eliminar é o último membro do equipo de propietarios. Debe existir outro propietario.
+
+invalid_ssh_key=Sentímolo, non somos capaces de verificar a túa clave SSH: %s
+unable_verify_ssh_key=Gogs non pode verificar a túa clave SSH, pero asumimos que é válida. Por favor, asegúrate de que é así.
+auth_failed=Erro de autenticación: %v
+
+still_own_repo=A túa conta é a propietaria dun ou máis repositorios, tes que borralos ou transferilos primeiro.
+still_has_org=A túa conta é membro dunha ou máis organizacións, tes que abandonalas ou eliminalas primeiro.
+org_still_own_repo=Esta organización é dona dun ou máis repositorios, tes que eliminalos ou transferilos primeiro.
+
+target_branch_not_exist=A rama de destino non existe
+
+[user]
+change_avatar=Cambiar o teu avatar
+join_on=Rexistrado o
+repositories=Repositorios
+activity=Actividade pública
+followers=Seguidores
+starred=Destacados
+following=Seguindo
+follow=Seguir
+unfollow=Deixar de seguir
+
+form.name_not_allowed=User name or pattern %q is not allowed.
+
+[settings]
+profile=Perfil
+password=Contrasinal
+avatar=Avatar
+ssh_keys=Claves SSH
+security=Seguridade
+repos=Repositorios
+orgs=Organizacións
+applications=Aplicacións
+delete=Eliminar conta
+
+public_profile=Perfil público
+profile_desc=O teu correo electrónico é público e será usado para todas as notificacións relacionadas con calquera conta e calquera operación feita a través da web.
+password_username_disabled=Os usuarios que non son locais non teñen permitido cambiar o seu nome de usuario.
+full_name=Nome completo
+website=Páxina web
+location=Localización
+update_profile=Actualizar perfil
+update_profile_success=O teu perfil actualizouse correctamente.
+change_username=Nome de usuario modificado
+change_username_prompt=Este cambio afectaralles ás ligazóns que fan referencia á túa conta.
+continue=Continuar
+cancel=Cancelar
+
+lookup_avatar_by_mail=Buscar avatar por correo
+federated_avatar_lookup=Busca de avatar federado
+enable_custom_avatar=Activar avatar personalizado
+choose_new_avatar=Selecciona novo avatar
+update_avatar=Actualizar configuración do avatar
+delete_current_avatar=Eliminar avatar
+uploaded_avatar_not_a_image=O arquivo enviado non é unha imaxe.
+update_avatar_success=A configuración do teu avatar actualizouse correctamente.
+
+change_password=Cambiar contrasinal
+old_password=Contrasinal actual
+new_password=Novo contrasinal
+retype_new_password=Confirmar novo contrasinal
+password_incorrect=Contrasinal actual incorrecto.
+change_password_success=O contrasinal modificouse correctamente. Xa podes iniciar sesión co teu novo contrasinal.
+password_change_disabled=Os usuarios que non son locais non teñen permitido cambiar o teu contrasinal.
+
+emails=Enderezos de correo electrónico
+manage_emails=Xestionar enderezos de correo electrónico
+email_desc=O teu enderezo de correo principal empregarase para as notificacións e outras operacións.
+primary=Principal
+primary_email=Marcar como principal
+delete_email=Eliminar
+email_deletion=Eliminar correo electrónico
+email_deletion_desc=Ao eliminar este enderezo de correo electrónico eliminarase toda a información asociada a esta. Desexas continuar?
+email_deletion_success=O correo electrónico foi eliminado correctamente!
+email_deletion_primary=Cannot delete primary email address.
+add_new_email=Engadir novo enderezo de correo electrónico
+add_email=Engadir correo electrónico
+add_email_confirmation_sent=Un novo correo de confirmación foi enviado a '%s'. Por favor, comproba a túa bandexa de entrada nas próximas %d horas para completar o proceso.
+add_email_success=O teu novo correo electrónico engadiuse correctamente.
+
+manage_ssh_keys=Xestionar claves SSH
+add_key=Engadir clave
+ssh_desc=Esta é a lista de claves SSH asociadas coa túa conta. Elimina calquera clave que non recoñezas.
+ssh_helper=Necesitas axuda? Consulta a guía de GitHub para xerar claves SSH ou solucionar problemas comúns ao usar SSH.
+add_new_key=Engadir clave SSH
+ssh_key_been_used=O contido da clave pública utilizouse.
+ssh_key_name_used=Xa existe unha clave pública co mesmo nome.
+key_name=Nome da clave
+key_content=Contido
+add_key_success=Nova clave SSH '%s' engadida correctamente!
+delete_key=Eliminar
+ssh_key_deletion=Borrado de clave SSH
+ssh_key_deletion_desc=Se elimina esta clave SSH non poderá volvela usar para acceder á súa conta. Desexa continuar?
+ssh_key_deletion_success=A clave SSH foi eliminada con éxito!
+add_on=Engadido en
+last_used=Empregado por última vez en
+no_activity=Non hai actividade recente
+key_state_desc=Esta clave foi usada nos últimos 7 días
+token_state_desc=Token usado nos últimos 7 días
+
+two_factor=Autenticación en Dous Pasos
+two_factor_status=Estado:
+two_factor_on=Si
+two_factor_off=Non
+two_factor_enable=Activar
+two_factor_disable=Desactivar
+two_factor_view_recovery_codes=View and save your recovery codes in a safe place. You can use them as passcode if you lose access to your authentication application.
+two_factor_http=For HTTP/HTTPS operations, you are no longer able to use plain username and password. Please create and use Personal Access Token as your credential, e.g. %[3]s.
+two_factor_enable_title=Enable Two-factor Authentication
+two_factor_scan_qr=Please use your authentication application to scan the image:
+two_factor_or_enter_secret=Or enter the secret:
+two_factor_then_enter_passcode=A continuación, introduza o código:
+two_factor_verify=Verificar
+two_factor_invalid_passcode=The passcode you entered is not valid, please try again!
+two_factor_reused_passcode=The passcode you entered has already been used, please try another one!
+two_factor_enable_error=Enable Two-factor authentication failed: %v
+two_factor_enable_success=Two-factor authentication has enabled for your account successfully!
+two_factor_recovery_codes_title=Two-factor Authentication Recovery Codes
+two_factor_recovery_codes_desc=Recovery codes are used when you temporarily lose access to your authentication application. Each recovery code can only be used once, please keep these codes in a safe place.
+two_factor_regenerate_recovery_codes=Rexenerar Códigos de Recuperación
+two_factor_regenerate_recovery_codes_error=Regenerate recovery codes failed: %v
+two_factor_regenerate_recovery_codes_success=New recovery codes has been generated successfully!
+two_factor_disable_title=Desactivar a verificación en dous pasos
+two_factor_disable_desc=Your account security level will decrease after disabled two-factor authentication. Do you want to continue?
+two_factor_disable_success=Two-factor authentication has disabled successfully!
+
+manage_access_token=Xestionar os tokens de acceso persoais
+generate_new_token=Xerar novo token
+tokens_desc=Tokens usados para acceder ao API de Gogs.
+access_token_tips=The personal access token may be used as either username or password. It is recommended to use the "x-access-token" as the username and the personal access token as the password for Git applications.
+new_token_desc=Dende agora, todos os tokens terán acceso completo á túa conta.
+token_name=Nome do token
+generate_token=Xerar token
+generate_token_succees=Os novos tokens de acceso xeráronse correctamente! Asegúrate de copiar o teu novo token de acceso persoal. Non o poderás ver de novo!
+delete_token=Eliminar
+access_token_deletion=Borrado de Token de Acceso Persoal
+access_token_deletion_desc=Se elimina este token de acceso persoal a aplicación asociada perderá o permiso de acceso. Desexa continuar?
+delete_token_success=O token de acceso persoal foi eliminado con éxito! Non esqueza actualizar tamén as aplicacións asociadas.
+token_name_exists=Token with same name already exists.
+
+orgs.none=Non es membro de nengunha organización.
+orgs.leave_title=Deixar unha organización
+orgs.leave_desc=Deixarás de ter aceso ao tódolos repositorios e equipos despois de deixar a organización. Desexas abandonala?
+
+repos.leave=Abandoar
+repos.leave_title=Deixar repositorio
+repos.leave_desc=You will lose access to the repository after you left. Do you want to continue?
+repos.leave_success=You have left repository '%s' successfully!
+
+delete_account=Elimina a túa conta
+delete_prompt=A operación eliminará a túa conta de forma permanente e NON se pode desfacer!
+confirm_delete_account=Confirmar eliminación
+delete_account_title=Eliminación de conta
+delete_account_desc=Esta conta vaise eliminar permanentemente, queres continuar?
+
+[repo]
+owner=Propietario
+repo_name=Nome do repositorio
+repo_name_helper=Os grandes nomes de repositorios son curtos, memorables e únicos.
+visibility=Visibilidade
+unlisted=Unlisted
+visiblity_helper=Este repositorio é privado
+unlisted_helper=This repository is Unlisted
+visiblity_helper_forced=O administrador web obrigou a todos os repositorios novos a ser privados
+visiblity_fork_helper=(Este cambio afectará a todos os forks)
+clone_helper=Necesitas axuda co clone? Consulta a Axuda!
+fork_repo=Facer Fork do repositorio
+fork_from=Crear un Fork desde
+fork_visiblity_helper=Non é posible cambiar a visibilidade dun Fork
+repo_desc=Descrición
+repo_lang=Idioma
+repo_gitignore_helper=Seleccionar modelos de .gitignore
+license=Licenza
+license_helper=Selecciona un ficheiro de licenza
+readme=Readme
+readme_helper=Seleccione un modelo de arquivo Readme
+auto_init=Inicializar os arquivos seleccionados e modelos deste repositorio
+create_repo=Crear repositorio
+default_branch=Rama por defecto
+mirror_prune=Purgar
+mirror_prune_desc=Remover referencias remotas que non existan remotamente
+mirror_interval=Intervalo da réplica (en horas)
+mirror_address=Enderezo da réplica
+mirror_address_desc=Por favor, inclúa as credenciais de usuario necesarias no enderezo.
+mirror_last_synced=Sincronizado por última vez
+watchers=Seguidores
+stargazers=Fans
+forks=Forks
+repo_description_helper=Description of repository. Maximum 512 characters length.
+repo_description_length=Available characters
+
+form.reach_limit_of_creation=El propietario ha alcanzado el límite máximo de %d repositorios creados.=O propietario acadou o límite máximo de %d repositorios creados.
+form.name_not_allowed=Repository name or pattern %q is not allowed.
+
+need_auth=Requiere autorización=Require autorización
+migrate_type=Tipo de migración
+migrate_type_helper=Este repositorio será unha réplica
+migrate_repo=Migrar repositorio
+migrate.clone_address=Clonar enderezo
+migrate.clone_address_desc=Pode ser unha URL HTTP/HTTPS/GIT.
+migrate.clone_address_desc_import_local=Tamén podes migrar un repositorio mediante a ruta do servidor local.
+migrate.permission_denied=Non che está permitido importar repositorios locais.
+migrate.invalid_local_path=Rutal local inválida, non existe ou non é un directorio.
+migrate.clone_address_resolved_to_blocked_local_address=Clone address resolved to a local network address that is implicitly blocked.
+migrate.failed=Migración fallida: %v
+
+mirror_from=réplica de
+forked_from=Fork de
+copy_link=Copiar
+copy_link_success=Copiado!
+copy_link_error=Presione ⌘ + C ou Ctrl-C para copiar
+copied=Copiado correctamente
+unwatch=Deixar de vixiar
+watch=Seguir
+unstar=Eliminar destacado
+star=Destacar
+fork=Fork
+
+no_desc=Sen descrición
+quick_guide=Guía rápida
+clone_this_repo=Clonar este repositorio
+create_new_repo_command=Crear un novo repositorio desde liña de comandos
+push_exist_repo=Facer Push dun repositorio existente desde liña de comandos
+bare_message=This repository does not have any content yet.
+
+files=Ficheiros
+branch=Rama
+tree=Árbore
+filter_branch_and_tag=Filtrar por rama ou etiqueta
+branches=Ramas
+tags=Etiquetas
+issues=Incidencias
+pulls=Pull Requests
+labels=Etiquetas
+milestones=Fitos
+commits=Achegas
+git_branches=Branches
+releases=Lanzamentos
+file_raw=Raw
+file_history=Histórico
+file_view_raw=Ver Raw
+file_permalink=Permalink
+file_too_large=Este arquivo é demasiado grande para ser mostrado
+video_not_supported_in_browser=O teu navegador non soporte a etiqueta video de HTML5.
+
+branches.overview=Overview
+branches.active_branches=Active Branches
+branches.stale_branches=Stale Branches
+branches.all=All Branches
+branches.updated_by=Updated %[1]s by %[2]s
+branches.change_default_branch=Change Default Branch
+branches.default_deletion_not_allowed=Cannot delete the default branch.
+branches.protected_deletion_not_allowed=Cannot delete a protected branch.
+
+editor.new_file=Novo arquivo
+editor.upload_file=Subir arquivo
+editor.edit_file=Editar arquivo
+editor.preview_changes=Previsualizar cambios
+editor.cannot_edit_non_text_files=Non podes editar arquivos que non sexan texto
+editor.edit_this_file=Editar este arquivo
+editor.must_be_on_a_branch=Debes estar nunha rama para facer ou propoñer cambios neste arquivo
+editor.fork_before_edit=Debes facer un Fork deste repositorio antes de poder editalo
+editor.delete_this_file=Borrar este arquivo
+editor.must_have_write_access=Debes ter acceso de escritura para facer ou propoñer cambios neste arquivo
+editor.file_delete_success=O arquivo '%s' foi borrado con éxito!
+editor.name_your_file=Nomea o teu arquivo...
+editor.filename_help=Para engadir un cartafol, so escribeo e preme /. Para eliminar un cartafol, vai ao comezo do campo e preme backspace.
+editor.or=ou
+editor.cancel_lower=cancelar
+editor.commit_changes=Incorporar cambios
+editor.add_tmpl=Engadir '%s/'
+editor.add=Engadir '%s'
+editor.update=Actualizar '%s'
+editor.delete=Borrar '%s'
+editor.commit_message_desc=Engadir unha descrición adicional...
+editor.commit_directly_to_this_branch=Incorporar os cambios directamente á rama %s.
+editor.create_new_branch=Crear unha nova rama para esta achega e inicia unha solicitude de integración.
+editor.new_branch_name_desc=Novo nome da rama...
+editor.cancel=Cancelar
+editor.filename_cannot_be_empty=O nome do arquivo non pode estar baleiro
+editor.branch_already_exists=A rama '%s' xa existe no repositorio.
+editor.directory_is_a_file='%s' na ruta é un arquivo, non un cartafol neste repositorio.
+editor.file_is_a_symlink=O ficheiro '%s' é un enlace simbólico que non pode ser modificado desde o editor web.
+editor.filename_is_a_directory=O nome de arquivo '%s' é un cartafol neste repositorio.
+editor.file_editing_no_longer_exists=O arquivo '%s' que estas editando xa non existe no repositorio.
+editor.file_changed_while_editing=O contido do arquivo cambiou desde que comezaches a editalo. Preme aquí para ver o que cambiou ou solicita outra achega para sobreescribir os cambios.
+editor.file_already_exists=Un arquivo co nome '%s' xa existe no repositorio.
+editor.no_changes_to_show=Non hai cambios que mostrar.
+editor.fail_to_update_file=Fallou o actualizar/crear o arquivo '%s' co erro: %v
+editor.fail_to_delete_file=Failed to delete file '%s' with error: %v
+editor.add_subdir=Engadir subdirectorio...
+editor.unable_to_upload_files=Fallou ao subir arquivos a '%s' co erro: %v
+editor.upload_files_to_dir=Subir arquivos a '%s'
+
+commits.commit_history=Commit History
+commits.commits=Achegas
+commits.search=Buscar achegas
+commits.find=Buscar
+commits.author=Autor
+commits.message=Mensaxe
+commits.date=Data
+commits.older=Anterior
+commits.newer=Posterior
+
+issues.new=Nova incidencia
+issues.new.labels=Etiquetas
+issues.new.no_label=Sen etiquetas
+issues.new.clear_labels=Limpar etiquetas
+issues.new.milestone=Fito
+issues.new.no_milestone=Sen fito
+issues.new.clear_milestone=Limpar fito
+issues.new.open_milestone=Fitos abertos
+issues.new.closed_milestone=Fitos cerrados
+issues.new.assignee=Asignado a
+issues.new.clear_assignee=Limpar asignado
+issues.new.no_assignee=Sen asignado
+issues.create=Crear incidencia
+issues.new_label=Nova etiqueta
+issues.new_label_placeholder=Nome etiqueta...
+issues.create_label=Crear etiqueta
+issues.label_templates.title=Carga un conxunto predefinido de etiquetas
+issues.label_templates.info=Aínda non hai etiquetas. Podes premer en "Nova etiqueta" para crear unha ou usar un conxunto predefinido a continuación.
+issues.label_templates.helper=Elixe un conxunto de etiquetas
+issues.label_templates.use=Usa este conxunto de etiquetas
+issues.label_templates.fail_to_load_file=Fallou ao cargar o arquivo co modelo da etiqueta '%s': %v
+issues.open_tab=%d abertas
+issues.close_tab=%d cerradas
+issues.filter_label=Etiqueta
+issues.filter_label_no_select=Ningunha etiqueta seleccionada
+issues.filter_milestone=Fito
+issues.filter_milestone_no_select=Ningún fito seleccionado
+issues.filter_assignee=Asignada a
+issues.filter_assginee_no_select=Sen asignar
+issues.filter_type=Tipo
+issues.filter_type.all_issues=Todas as incidencias
+issues.filter_type.assigned_to_you=Asignadas a ti
+issues.filter_type.created_by_you=Creadas por ti
+issues.filter_type.mentioning_you=Citado en
+issues.filter_sort=Ordenar
+issues.filter_sort.latest=Máis recentes
+issues.filter_sort.oldest=Máis antigas
+issues.filter_sort.recentupdate=Actualizada recentemente
+issues.filter_sort.leastupdate=Actualizada menos recentemente
+issues.filter_sort.mostcomment=Máis comentadas
+issues.filter_sort.leastcomment=Menos comentadas
+issues.opened_by=aberta %[1]s por %[3]s
+issues.opened_by_fake=aberta %[1]s por %[2]s
+issues.previous=Páxina anterior
+issues.next=Páxina seguinte
+issues.open_title=Aberta
+issues.closed_title=Cerrada
+issues.num_comments=%d comentarios
+issues.commented_at=`comentado %s'`
+issues.delete_comment_confirm=Seguro que desexas eliminar este comentario?
+issues.no_content=Aínda non existe contido.
+issues.close_issue=Cerrar
+issues.close_comment_issue=Comentar e cerrar
+issues.reopen_issue=Reabrir
+issues.reopen_comment_issue=Comentar e reabrir
+issues.create_comment=Comentar
+issues.closed_at=`cerrou %[2]s`
+issues.reopened_at=`reabriu %[2]s`
+issues.commit_ref_at=`mencionada esta incidencia nunha achega %[2]s`
+issues.poster=Autor
+issues.collaborator=Colaborador
+issues.owner=Propietario
+issues.sign_in_require_desc=Accede para unirte á conversa.
+issues.edit=Editar
+issues.cancel=Cancelar
+issues.save=Gardar
+issues.label_title=Nome etiqueta
+issues.label_color=Cor etiqueta
+issues.label_count=%d etiquetas
+issues.label_open_issues=%d incidencias abertas
+issues.label_edit=Editar
+issues.label_delete=Borrar
+issues.label_modify=Edición de etiqueta
+issues.label_deletion=Borrado de etiqueta
+issues.label_deletion_desc=Ao borrar a etiqueta a súa información será eliminada de todas as incidencias relacionadas. Desexa continuar?
+issues.label_deletion_success=Etiqueta borrada con éxito!
+issues.num_participants=%d participantes
+issues.attachment.open_tab=`Click to see "%s" in a new tab`
+issues.attachment.download=`Click to download "%s"`
+
+pulls.new=Novo Pull Request
+pulls.compare_changes=Comparar cambios
+pulls.compare_changes_desc=Comparar dúas ramas e xerar un pull request coas diferenzas.
+pulls.compare_base=base
+pulls.compare_compare=comparar con
+pulls.filter_branch=Filtrar rama
+pulls.no_results=Sen resultados.
+pulls.nothing_to_compare=Nada que comparar. As dúas ramas coinciden.
+pulls.nothing_merge_base=There is nothing to compare because two branches have completely different history.
+pulls.has_pull_request=`Xa existe un pull request entre estas dúas ramas: %[2]s#%[3]d`
+pulls.create=Crear Pull Request
+pulls.title_desc=desexa fusionar %[1]d achegas de %[2]s en %[3]s
+pulls.merged_title_desc=fusionadas %[1]d achegas de %[2]s en %[3]s %[4]s
+pulls.tab_conversation=Conversa
+pulls.tab_commits=Achegas
+pulls.tab_files=Arquivos modificados
+pulls.reopen_to_merge=Por favor reabra este Pull Request para proceder coa operación de fusionado.
+pulls.merged=Fusionado
+pulls.has_merged=Este pull request completouse con éxito!
+pulls.data_broken=Os datos deste pull request xa non están dispoñibles porque se eliminou a información do fork.
+pulls.is_checking=Estase procedendo á busca de conflitos, por favor, actualice a páxina nuns momentos.
+pulls.can_auto_merge_desc=Este Pull Request pode ser fusionado automaticamente.
+pulls.cannot_auto_merge_desc=Este Pull Request non pode ser fusionado automaticamente porque hai conflitos.
+pulls.cannot_auto_merge_helper=Por favor, fusiona manualmente para resolver os conflitos.
+pulls.create_merge_commit=Create a merge commit
+pulls.rebase_before_merging=Rebase before merging
+pulls.commit_description=Commit Description
+pulls.merge_pull_request=Fusionar Pull Request
+pulls.open_unmerged_pull_exists=`Vostede non pode realizar a operación de reapertura porque nestes momentos existe unha solicitude de pull request (#%d) para o mesmo repositorio coa mesma información que se encontra á espera de aprobación`
+pulls.delete_branch=Eliminar branch
+pulls.delete_branch_has_new_commits=O branch non se pode borrar porque apareceron novos commits despois de mergear.
+
+milestones.new=Novo fito
+milestones.open_tab=%d abertas
+milestones.close_tab=%d cerradas
+milestones.closed=Cerrada %s
+milestones.no_due_date=Sen data límite
+milestones.open=Abrir
+milestones.close=Cerrar
+milestones.new_subheader=Cree milestones para organizar as incidencias.
+milestones.create=Novo fito
+milestones.title=Título
+milestones.desc=Descrición
+milestones.due_date=Data límite (opcional)
+milestones.clear=Eliminar
+milestones.invalid_due_date_format=O formato da data límite non é válido, debe ser 'yyyy-mm-dd'.
+milestones.create_success=O fito '%s' foi creado con éxito!
+milestones.edit=Editar fito
+milestones.edit_subheader=Use unha boa descrición no fito para non confundir o resto de persoas usuarias.
+milestones.cancel=Cancelar
+milestones.modify=Modificar fito
+milestones.edit_success=Os cambios ao fito '%s' gardáronse con éxito!
+milestones.deletion=Borrar fito
+milestones.deletion_desc=Eliminar este fito eliminará a súa información e as incidencias asociadas. Desexa continuar?
+milestones.deletion_success=O fito foi eliminado con éxito!
+
+wiki=Wiki
+wiki.welcome=Benvido á Wiki!
+wiki.welcome_desc=A Wiki é o lugar onde vos gustaría documentar xuntos o voso proxecto e facelo mellor.
+wiki.create_first_page=Crear a primeira páxina
+wiki.page=Páxina
+wiki.filter_page=Filtrar páxina
+wiki.new_page=Crear nova páxina
+wiki.default_commit_message=Escribe unha nota sobre esta achega (opcional).
+wiki.save_page=Gardar páxina
+wiki.last_commit_info=%s editou esta páxina %s
+wiki.edit_page_button=Editar
+wiki.new_page_button=Nova páxina
+wiki.delete_page_button=Eliminar páxina
+wiki.delete_page_notice_1=Isto eliminará a páxina "%s". Por favor, asegúrate de que é o que queres.
+wiki.page_already_exists=Xa existe unha páxina co mesmo nome.
+wiki.pages=Páxinas
+wiki.last_updated=Última actualización %s
+
+settings=Configuración
+settings.options=Opcións
+settings.collaboration=Colaboración
+settings.collaboration.admin=Administrador
+settings.collaboration.write=Escritura
+settings.collaboration.read=Lectura
+settings.collaboration.undefined=Indefinido
+settings.branches=Branches
+settings.branches_bare=You cannot manage branches for bare repository. Please push some content first.
+settings.default_branch=Default Branch
+settings.default_branch_desc=The default branch is considered the "base" branch for code commits, pull requests and online editing.
+settings.update=Update
+settings.update_default_branch_unsupported=Change default branch is not supported by the Git version on server.
+settings.update_default_branch_success=Default branch of this repository has been updated successfully!
+settings.protected_branches=Protected Branches
+settings.protected_branches_desc=Protect branches from force pushing, accidental deletion and whitelist code committers.
+settings.choose_a_branch=Choose a branch...
+settings.branch_protection=Branch Protection
+settings.branch_protection_desc=Please choose protect options for branch %s.
+settings.protect_this_branch=Protect this branch
+settings.protect_this_branch_desc=Disable force pushes and prevent from deletion.
+settings.protect_require_pull_request=Require pull request instead direct pushing
+settings.protect_require_pull_request_desc=Enable this option to disable direct pushing to this branch. Commits have to be pushed to another non-protected branch and merged to this branch through pull request.
+settings.protect_whitelist_committers=Whitelist who can push to this branch
+settings.protect_whitelist_committers_desc=Add people or teams to whitelist of direct push to this branch. Users in whitelist will bypass require pull request check.
+settings.protect_whitelist_users=Users who can push to this branch
+settings.protect_whitelist_search_users=Search users
+settings.protect_whitelist_teams=Teams for which members of them can push to this branch
+settings.protect_whitelist_search_teams=Search teams
+settings.update_protect_branch_success=Protect options for this branch has been updated successfully!
+settings.hooks=Webhooks
+settings.githooks=Git Hooks
+settings.basic_settings=Configuración básica
+settings.mirror_settings=Configuración da réplica
+settings.sync_mirror=Sincroniza agora
+settings.mirror_sync_in_progress=A sincronización da réplica está en progreso, por favor actualiza a páxina nun minuto.
+settings.site=Sitio oficial
+settings.update_settings=Actualizar configuración
+settings.change_reponame_prompt=Este cambio afectaralles ás ligazóns ao repositorio.
+settings.advanced_settings=Axustes avanzados
+settings.wiki_desc=Activar sistema de wiki
+settings.use_internal_wiki=Usar wiki integrada
+settings.allow_public_wiki_desc=Allow public access to wiki when repository is private
+settings.use_external_wiki=Usar Wiki externa
+settings.external_wiki_url=URL externa da Wiki
+settings.external_wiki_url_desc=Os visitantes serán redireccionados á URL cando preman na barra.
+settings.issues_desc=Habilitar rastrexo de incidencias
+settings.use_internal_issue_tracker=Usar rastrexo de incidencias lixeiro incluído
+settings.allow_public_issues_desc=Allow public access to issues when repository is private
+settings.use_external_issue_tracker=Usar tracker externo de incidencias
+settings.external_tracker_url=URL de seguimento de problemas externos
+settings.external_tracker_url_desc=Os visitantes serán redireccionados á URL cando preman na barra.
+settings.tracker_url_format=Formato URL do tracker de incidencias externo
+settings.tracker_issue_style=Estilo de etiquetaxe do tracker externo de incidencias:
+settings.tracker_issue_style.numeric=Numérico
+settings.tracker_issue_style.alphanumeric=Alfanumérico
+settings.tracker_url_format_desc=Podes usar os modelos {user} {repo} {index} para o nome de usuario, nome do repositorio e índice da incidencia.
+settings.pulls_desc=Enable pull requests to accept contributions between repositories and branches
+settings.pulls.ignore_whitespace=Ignore changes in whitespace
+settings.pulls.allow_rebase_merge=Allow use rebase to merge commits
+settings.danger_zone=Zona de perigo
+settings.cannot_fork_to_same_owner=You cannot fork a repository to its original owner.
+settings.new_owner_has_same_repo=O novo propietario ten un repositorio co mesmo nome.
+settings.convert=Converter nun repositorio normal
+settings.convert_desc=Podes converter este repositorio nun repositorio normal. Este cambio non se pode desfacer.
+settings.convert_notices_1=- Esta operación converterá este repositorio espello nun repositorio normal e non se poderá desfacer.
+settings.convert_confirm=Confirmar conversión
+settings.convert_succeed=O repositorio foi convertido en normal satisfactoriamente.
+settings.transfer=Transferir a propiedade
+settings.transfer_desc=Transferir este repositorio a outro usuario ou organización onde teñas permisos de administración.
+settings.transfer_notices_1=- Perderá o permiso de acceso se o novo propietario é outro usuario.
+settings.transfer_notices_2=- Conservará o privilexio de acceso se o novo propietario é unha organización e vostede é un dos propietarios da dita organización.
+settings.transfer_form_title=Por favor introduza esta información para confirmar a operación:
+settings.wiki_delete=Eliminar datos da wiki
+settings.wiki_delete_desc=Unha vez borrados os datos da wiki non haberá volta atrás. Por favor, asegúrate de que é o que queres.
+settings.wiki_delete_notices_1=- Isto eliminará e deshabilitará a wiki para %s
+settings.wiki_deletion_success=Os datos da wiki do repositorio foron borrados correctamente.
+settings.delete=Eliminar este repositorio
+settings.delete_desc=Unha vez que eliminaches un repositorio, non hai volta atrás. Por favor, asegúrate de que é o que queres.
+settings.delete_notices_1=- Esta operación NON SE PODE reverter.
+settings.delete_notices_2=- This operation will permanently delete everything in this repository, including Git data, issues, comments and collaborator access.
+settings.delete_notices_fork_1=- Todos os forks converteranse en independentes tras o borrado.
+settings.deletion_success=O repositorio foi eliminado satisfactoriamente!
+settings.update_settings_success=As opcións do repositorio actualizáronse correctamente.
+settings.transfer_owner=Novo propietario
+settings.make_transfer=Transferir
+settings.transfer_succeed=A propiedade do repositorio foi transferida exitosamente.
+settings.confirm_delete=Confirmar eliminación
+settings.add_collaborator=Engadir novo colaborador
+settings.add_collaborator_success=O novo colaborador foi engadido.
+settings.delete_collaborator=Eliminar
+settings.collaborator_deletion=Eliminar colaborador
+settings.collaborator_deletion_desc=Este usuario non poderá colaborar neste repositorio tras eliminalo. Desexa continuar?
+settings.remove_collaborator_success=O colaborador foi eliminado.
+settings.search_user_placeholder=Buscar usuario...
+settings.org_not_allowed_to_be_collaborator=As organizacións non teñen permitido ser engadidas como colaboradores.
+settings.hooks_desc=Os Webhooks permiten a servizos externos recibir notificacións cando sucedan certos eventos en Gogs. Cando sucedan os eventos especificados, enviaremos unha petición POST a cada unha das URLs indicadas. Para obter máis información, consulta a nosa Guía de Webhooks.
+settings.webhooks.add_new=Add a new webhook:
+settings.webhooks.choose_a_type=Choose a type...
+settings.add_webhook=Engadir Webhook
+settings.webhook_deletion=Eliminar Webhook
+settings.webhook_deletion_desc=Ao borrar este webhook eliminarase a súa información e todo o seu historial. Desexa continuar?
+settings.webhook_deletion_success=Webhook eliminado con éxito!
+settings.webhook.test_delivery=Test de entrega
+settings.webhook.test_delivery_desc=Enviar un falso evento Push de entrega para probar os teus axustes de webhook
+settings.webhook.test_delivery_success=Probar que os webhook foron engadidos á cola de entrega. Isto pode levar algúns segundos antes de aparecer no historial de entregas.
+settings.webhook.redelivery=Redelivery
+settings.webhook.redelivery_success=Hook task '%s' has been readded to delivery queue. It may take few seconds to update delivery status in history.
+settings.webhook.request=Petición
+settings.webhook.response=Resposta
+settings.webhook.headers=Encabezado
+settings.webhook.payload=Payload
+settings.webhook.body=Corpo da mensaxe
+settings.webhook.err_cannot_parse_payload_url=Cannot parse payload URL: %v
+settings.webhook.url_resolved_to_blocked_local_address=Payload URL resolved to a local network address that is implicitly blocked.
+settings.githooks_desc=Os Git Hooks son unha funcionalidade do propio Git, podes editar os ficheiros dos hooks soportados na seguinte lista para aplicar operacións personalizadas.
+settings.githook_edit_desc=Se o hook non está activo, mostrarase contido de exemplo. Deixar o contido baleiro deshabilitará este hook.
+settings.githook_name=Nome do Hook
+settings.githook_content=Contido do Hook
+settings.update_githook=Actualizar Hook
+settings.add_webhook_desc=Enviaremos unha petición POST á seguinte URL cos detalles de calquera evento subscrito. Tamén podes especificar que formato de datos che gustaría recibir (JSON, x-www-form-urlencoded, etc). Podes atopar máis información na Guía de Webhooks.
+settings.payload_url=URL de Payload
+settings.content_type=Tipo de contido
+settings.secret=Secreto
+settings.secret_desc=Secret will be sent as SHA256 HMAC hex digest of payload via X-Gogs-Signature header.
+settings.slack_username=Nome da persoa usuaria
+settings.slack_icon_url=URL da icona
+settings.slack_color=Cor
+settings.event_desc=Que eventos che gustaría que desencadeasen este webhook?
+settings.event_push_only=Só o evento push.
+settings.event_send_everything=Necesito todo.
+settings.event_choose=Déixeme elixir o que necesito.
+settings.event_create=Crear
+settings.event_create_desc=Rama ou etiqueta creada
+settings.event_delete=Delete
+settings.event_delete_desc=Branch or tag deleted
+settings.event_fork=Fork
+settings.event_fork_desc=Repository forked
+settings.event_push=Push
+settings.event_push_desc=Git push a un repositorio
+settings.event_issues=Issues
+settings.event_issues_desc=Issue opened, closed, reopened, edited, assigned, unassigned, label updated, label cleared, milestoned, or demilestoned.
+settings.event_pull_request=Pull Request
+settings.event_pull_request_desc=Pull request opened, closed, reopened, edited, assigned, unassigned, label updated, label cleared, milestoned, demilestoned, or synchronized.
+settings.event_issue_comment=Issue Comment
+settings.event_issue_comment_desc=Issue comment created, edited, or deleted.
+settings.event_release=Release
+settings.event_release_desc=Release published in a repository.
+settings.active=Activo
+settings.active_helper=Enviaremos detalles do evento cando este hook se dispare.
+settings.add_hook_success=Engadiuse un novo webhook.
+settings.update_webhook=Actualizar Webhook
+settings.update_hook_success=Actualizouse o Webhook.
+settings.delete_webhook=Borrar Webhook
+settings.recent_deliveries=Envíos recentes
+settings.hook_type=Tipo de Hook
+settings.add_slack_hook_desc=Engade integración con Slack ao teu repositorio.
+settings.add_discord_hook_desc=Add Discord integration to your repository.
+settings.add_dingtalk_hook_desc=Add Dingtalk integration to your repository.
+settings.slack_token=Token
+settings.slack_domain=Dominio
+settings.slack_channel=Canle
+settings.deploy_keys=Claves de despregamento
+settings.deploy_keys_helper=Common Gotcha! If you're looking for adding personal public keys, please add them in your account settings.
+settings.add_deploy_key=Engadir clave de despregamento
+settings.deploy_key_desc=A clave de desenvolvemento ten só acceso de lectura. Non é igual cás claves SSH das contas persoais.
+settings.no_deploy_keys=Non engadiches ningunha clave de despregamento.
+settings.title=Título
+settings.deploy_key_content=Contido
+settings.key_been_used=Usouse a clave de despregamento.
+settings.key_name_used=Xa existe unha clave de despregamento co mesmo nome.
+settings.add_key_success=A nova clave de despregamento '%s' foi creada con éxito!
+settings.deploy_key_deletion=Eliminar clave de despregamento
+settings.deploy_key_deletion_desc=Ao eliminar esta clave de despregamento perderase o permiso de acceso a este repositorio coa dita clave. Desexas continuar?
+settings.deploy_key_deletion_success=Clave de despregamento eliminada con éxito!
+settings.description_desc=Description of repository. Maximum 512 characters length.
+settings.description_length=Available characters
+
+diff.browse_source=Explorar o código
+diff.parent=pai
+diff.commit=achega
+diff.data_not_available=Os datos das diferenzas Diff non están dispoñibles.
+diff.show_diff_stats=Mostrar estatísticas de Diff
+diff.show_split_view=Dividir vista
+diff.show_unified_view=Unificar vista
+diff.stats_desc=Modificáronse %d ficheiros con %d adicións e %d borrados
+diff.bin=BIN=BIN
+diff.view_file=Ver ficheiro
+diff.file_suppressed=A diferenza do arquivo foi suprimida porque é demasiado grande
+diff.too_many_files=Algúns arquivos non se mostraron porque demasiados arquivos cambiaron neste cambio
+
+release.releases=Lanzamentos
+release.new_release=Novo lanzamento
+release.draft=Borrador=Borrador
+release.prerelease=Pre-Release=Pre-Lanzamento
+release.edit=editar=editar
+release.ahead=%d achegas en %s desde este release
+release.source_code=Código fonte
+release.new_subheader=Publicar releases do proxecto.
+release.edit_subheader=Un rexistro de cambios detallado axudaralles ás persoas usuarias a comprender o que se mellorou.
+release.tag_name=Nome da etiqueta
+release.target=Destino
+release.tag_helper=Escolle unha etiqueta ou crea unha nova ao publicar
+release.title=Título
+release.content=Contido
+release.write=Escribir
+release.preview=Vista previa
+release.loading=Cargando...
+release.prerelease_desc=Este é un pre-lanzamento
+release.prerelease_helper=Este lanzamento está marcado como non apto para produción
+release.cancel=Cancelar
+release.publish=Publicar lanzamento
+release.save_draft=Gardar borrador
+release.edit_release=Editar lanzamento
+release.delete_release=Borrar este lanzamento
+release.deletion=Eliminar lanzamento
+release.deletion_desc=Eliminar este lanzamento eliminará a etiqueta correspondente. Desexa continuar?
+release.deletion_success=O lanzamento foi eliminado correctamente!
+release.tag_name_already_exist=Xa existe un lanzamento con esta etiqueta.
+release.tag_name_invalid=O nome da etiqueta non é válido.
+release.downloads=Descargas
+
+[org]
+org_name_holder=Nome da organización
+org_full_name_holder=Nome completo da organización
+org_name_helper=Os grandes nomes de organizacións son curtos e memorables.
+create_org=Crear organización
+repo_updated=Actualizado
+people=Persoas
+invite_someone=Invitar a alguén
+teams=Equipos
+lower_members=membros
+lower_repositories=repositorios
+create_new_team=Crear un novo equipo
+org_desc=Descrición
+team_name=Nome do equipo
+team_desc=Descrición
+team_name_helper=Utiliza este nome para mencionar este equipo nas conversas.
+team_desc_helper=En que consiste este equipo?
+team_permission_desc=Que nivel de permisos debería ter este equipo?
+
+form.name_not_allowed=Organization name or pattern %q is not allowed.
+form.team_name_not_allowed=Team name or pattern %q is not allowed.
+
+settings=Configuración
+settings.options=Opcións
+settings.full_name=Nome completo
+settings.website=Páxina web
+settings.location=Localización
+settings.update_settings=Actualizar configuración
+settings.update_setting_success=A configuración da organización actualizouse correctamente.
+settings.change_orgname_prompt=Este cambio afectaralles ás ligazóns que fan referencia á organización.
+settings.update_avatar_success=A configuración de avatar da organización foi actualizada con éxito.
+settings.delete=Eliminar organización
+settings.delete_account=Eliminar esta organización
+settings.delete_prompt=Esta operación eliminará esta organización de maneira permanente, e NON SE PODE desfacer!
+settings.confirm_delete_account=Confirmar eliminación
+settings.delete_org_title=Eliminación da organización
+settings.delete_org_desc=Esta organización vaise eliminar permanentemente, queres continuar?
+settings.hooks_desc=Engadir webhooks que serán executados para todos os repositorios desta organización.
+
+members.membership_visibility=Visibilidade de membresía:
+members.public=Público
+members.public_helper=converter en privado
+members.private=Privado
+members.private_helper=converter en público
+members.member_role=Rol do membro:
+members.owner=Propietario
+members.member=Membro
+members.remove=Eliminar
+members.leave=Abandonar
+members.invite_desc=Engadir un membro novo a %s:
+members.invite_now=Invitar
+
+teams.join=Unirse
+teams.leave=Abandonar
+teams.read_access=Acceso de lectura
+teams.read_access_helper=Este equipo poderá ver e clonar os seus repositorios.
+teams.write_access=Acceso de escritura
+teams.write_access_helper=Este equipo poderá ler os seus repositorios, así como facer push neles.
+teams.admin_access=Acceso de administrador
+teams.admin_access_helper=Este equipo poderá facer push/pull nos seus repositorios, así como engadir colaboradores a eles.
+teams.no_desc=Este equipo non ten descrición
+teams.settings=Configuración
+teams.owners_permission_desc=Os propietarios teñen acceso completo a todos os repositorios e teñen dereitos de administración na organización.
+teams.members=Membros do equipo
+teams.update_settings=Actualizar configuración
+teams.delete_team=Eliminar este equipo
+teams.add_team_member=Engadir membro ao equipo
+teams.delete_team_title=Eliminar equipo
+teams.delete_team_desc=Este equipo vai ser eliminado, seguro que queres continuar? Os membros deste equipo poden perder acceso a algúns repositorios.
+teams.delete_team_success=O equipo foi eliminado correctamente.
+teams.read_permission_desc=Este equipo ten permisos de lectura: os seus membros poden ver e clonar os repositorios do equipo.
+teams.write_permission_desc=Este equipo ten permisos de escritura: os seus membros poden ler e facer push aos repositorios do equipo.
+teams.admin_permission_desc=Este equipo ten permisos de administración: os seus membros poden leer, facer push e engadir colaboradores aos repositorios do equipo.
+teams.repositories=Repositorios do equipo
+teams.search_repo_placeholder=Buscar repositorio...
+teams.add_team_repository=Engadir repositorio ao equipo
+teams.remove_repo=Eliminar
+teams.add_nonexistent_repo=O repositorio que estás intentando engadir non existe, por favor, créao primeiro.
+
+[admin]
+dashboard=Panel de control
+users=Persoas usuarias
+organizations=Organizacións
+repositories=Repositorios
+authentication=Autenticacións
+config=Configuración
+notices=Notificacións do sistema
+monitor=Monitorización
+first_page=Primeira
+last_page=Última
+total=Total: %d
+
+dashboard.build_info=Build Information
+dashboard.app_ver=Application version
+dashboard.git_version=Git version
+dashboard.go_version=Go version
+dashboard.build_time=Build time
+dashboard.build_commit=Build commit
+dashboard.statistic=Estatísticas
+dashboard.operations=Operacións
+dashboard.system_status=Estado do Monitor do Sistema
+dashboard.statistic_info=A base de datos de Gogs contén %d usuarios, %d organizacións, %d claves públicas, %d repositorios, %d vixiados, %d destacados, %d accións, %d accesos, %d incidencias, %d comentarios, %d contas de redes sociais, %d seguidores, %d mirrors, %d releases, %d fontes de login, %d webhooks, %d milestones, %d etiquetas, %d hooks, %d equipos, %d tarefas actualizadas, %d adxuntos.
+dashboard.operation_name=Nome da operación
+dashboard.operation_switch=Interruptor
+dashboard.select_operation_to_run=Please select operation to run
+dashboard.operation_run=Executar
+dashboard.clean_unbind_oauth=Limpar solicitudes de OAuth sen confirmar
+dashboard.clean_unbind_oauth_success=As solicitudes de OAuth sen confirmar elimináronse correctamente.
+dashboard.delete_inactivate_accounts=Eliminar todas as contas inactivas
+dashboard.delete_inactivate_accounts_success=Todas as contas inactivas foron eliminadas correctamente.
+dashboard.delete_repo_archives=Eliminar todos os arquivos de repositorios
+dashboard.delete_repo_archives_success=Todos os arquivos de repositorios elimináronse correctamente.
+dashboard.delete_missing_repos=Borrar todos os rexistros dos repositorios para os que xa non se dispón dos arquivos Git
+dashboard.delete_missing_repos_success=Todos os rexistros de repositorios para os que xa non se dispón dos arquivos Git elimináronse correctamente.
+dashboard.git_gc_repos=Executar a recolección de lixo nos repositorios
+dashboard.git_gc_repos_success=Todos os repositorios executaron correctamente o recolector de lixo.
+dashboard.resync_all_sshkeys=Reescribir o ficheiro '.ssh/authorized_keys'(atención: perderanse as claves que non pertenzan a Gogs)
+dashboard.resync_all_sshkeys_success=Todas as claves públicas reescribíronse correctamente.
+dashboard.resync_all_hooks=Resync pre-receive, update and post-receive hooks of all repositories
+dashboard.resync_all_hooks_success=All repositories' pre-receive, update and post-receive hooks have been resynced successfully.
+dashboard.reinit_missing_repos=Reinicializar todos os rexistros do repositorio que teñen arquivos Git eliminados
+dashboard.reinit_missing_repos_success=Todos os rexistros do repositorio con arquivos Git eliminados foron reinicializados con éxito.
+
+dashboard.server_uptime=Tempo de actividade do servidor
+dashboard.current_goroutine=Gorutinas actuais
+dashboard.current_memory_usage=Uso de memoria actual
+dashboard.total_memory_allocated=Total de memoria reservada
+dashboard.memory_obtained=Memoria obtida
+dashboard.pointer_lookup_times=Tempos de busca de punteiros
+dashboard.memory_allocate_times=Tempos de reserva de memoria
+dashboard.memory_free_times=Tempos de liberado de memoria
+dashboard.current_heap_usage=Uso de Heap actual
+dashboard.heap_memory_obtained=Memoria de Heap obtida
+dashboard.heap_memory_idle=Memoria de Heap inactiva
+dashboard.heap_memory_in_use=Memoria de Heap en uso
+dashboard.heap_memory_released=Memoria de Heap liberada
+dashboard.heap_objects=Obxectos no Heap
+dashboard.bootstrap_stack_usage=Uso da Pila de Bootstrap
+dashboard.stack_memory_obtained=Memoria de Pila obtida
+dashboard.mspan_structures_usage=Uso de estruturas MSpan
+dashboard.mspan_structures_obtained=Estruturas MSpan obtidas
+dashboard.mcache_structures_usage=Uso de estruturas MCache
+dashboard.mcache_structures_obtained=Estruturas MCache obtidas
+dashboard.profiling_bucket_hash_table_obtained=Profiling Bucket Hash Table obtido
+dashboard.gc_metadata_obtained=Metadatos do recolector de lixo obtidos
+dashboard.other_system_allocation_obtained=Outros recursos do sistema asignados
+dashboard.next_gc_recycle=Seguinte reciclado do recolector de lixo
+dashboard.last_gc_time=Tempo desde o último GC
+dashboard.total_gc_time=Tempo total por GC
+dashboard.total_gc_pause=Pausa total por GC
+dashboard.last_gc_pause=Última pausa por GC
+dashboard.gc_times=Execucións GC
+
+users.user_manage_panel=Panel de xestión de usuarios
+users.new_account=Crear nova conta
+users.name=Nome
+users.activated=Activado
+users.admin=Administrador
+users.repos=Repositorios
+users.created=Creado
+users.send_register_notify=Enviar notificación de rexistro á persoa usuaria
+users.new_success=A conta '%s' foi creada con éxito.
+users.edit=Editar
+users.auth_source=Fonte de autenticación
+users.local=Local
+users.auth_login_name=Nome de inicio de sesión de autenticación
+users.password_helper=Deixe o campo baleiro se non desexa cambiar o contrasinal.
+users.update_profile_success=O perfil da conta actualizouse correctamente.
+users.edit_account=Editar conta
+users.max_repo_creation=Límite máximo de repositorios
+users.max_repo_creation_desc=(Configura a -1 para usar o límite global por defecto)
+users.is_activated=Esta conta está activada
+users.prohibit_login=Esta conta non ten permitido ingresar
+users.is_admin=Esta conta ten permisos de administrador
+users.allow_git_hook=Esta conta ten permisos para crear hooks de Git
+users.allow_import_local=Esta conta dispón de permisos para importar repositorios locais
+users.update_profile=Actualizar o perfil da conta
+users.delete_account=Eliminar esta conta
+users.still_own_repo=Esta conta é propietaria dun ou máis repositorios, tes que borralos ou transferilos primeiro.
+users.still_has_org=Esta conta é membro dunha ou máis organizacións, tes que abandonalas ou eliminalas primeiro.
+users.deletion_success=A túa conta foi eliminada correctamente!
+
+orgs.org_manage_panel=Panel de xestión de organización
+orgs.name=Nome
+orgs.teams=Equipos
+orgs.members=Membros
+
+repos.repo_manage_panel=Panel de xestión de repositorios
+repos.owner=Propietario
+repos.name=Nome
+repos.private=Privado
+repos.watches=Vixilantes
+repos.stars=Estrelas
+repos.issues=Incidencias
+repos.size=Size
+
+auths.auth_sources=Authentication Sources
+auths.new=Engadir nova orixe
+auths.name=Nome
+auths.type=Tipo
+auths.enabled=Activo
+auths.default=Default
+auths.updated=Actualizado
+auths.auth_type=Tipo de autenticación
+auths.auth_name=Nome de autenticación
+auths.security_protocol=Protocolo de seguridade
+auths.domain=Dominio
+auths.host=Host
+auths.port=Porto
+auths.bind_dn=Bind DN
+auths.bind_dn_helper=You can use '%s' as placeholder for username, e.g. DOM\%s
+auths.bind_password=Contrasinal Bind
+auths.bind_password_helper=Advertencia: o contrasinal almacénase como texto plano. Non empregue unha conta con privilexios elevados.
+auths.user_base=Base de busca de usuarios
+auths.user_dn=DN de persoas usuarias
+auths.attribute_username=Atributo de nome de usuario
+auths.attribute_username_placeholder=Deixar baleiro para usar o campo de inicio de sesión como nome de usuario.
+auths.attribute_name=First Name Attribute
+auths.attribute_surname=Atributo apelido
+auths.attribute_mail=Atributo correo electrónico
+auths.verify_group_membership=Verify group membership
+auths.group_search_base_dn=Group Search Base DN
+auths.group_filter=Group Filter
+auths.group_attribute_contain_user_list=Group Attribute Containing List of Users
+auths.user_attribute_listed_in_group=User Attribute Listed in Group
+auths.attributes_in_bind=Buscar atributos no contexto do Bind DN
+auths.filter=Filtro de usuario
+auths.admin_filter=Filtro de aministrador
+auths.ms_ad_sa=Ms Ad SA
+auths.smtp_auth=Tipo de autenticación SMTP
+auths.smtphost=SMTP Host
+auths.smtpport=Porto SMTP
+auths.allowed_domains=Dominios permitidos
+auths.allowed_domains_helper=Deixe o campo baleiro se non desexa restrinxir ningún dominio. Para restrinxir máis dun, separe os dominios cunha coma ','.
+auths.enable_tls=Habilitar cifrado TLS
+auths.skip_tls_verify=Omitir a verificación TLS
+auths.pam_service_name=Nome do servizo PAM
+auths.enable_auto_register=Habilitar auto-rexistro
+auths.edit=Editar a configuración de autenticación
+auths.activated=Esta autenticación foi activada
+auths.default_auth=This authentication is default login source
+auths.new_success=A autenticación '%s' foi engadida con éxito!
+auths.update_success=A configuración de autenticación foi actualizada con éxito.
+auths.update=Actualizar a configuración de autenticación
+auths.delete=Eliminar autenticación
+auths.delete_auth_title=Borrado de autenticación
+auths.delete_auth_desc=Esta autenticación será eliminada. Desexas continuar?
+auths.still_in_used=Este método de autentificación aínda é utilizado por algúns usuarios, por favor elimine ou converta estes usuarios a outro tipo de autentificación.
+auths.deletion_success=A autenticación foi eliminada con éxito!
+auths.login_source_exist=Login source '%s' xa existe.
+auths.github_api_endpoint=API Endpoint
+
+config.not_set=(not set)
+config.server_config=Configuración do servidor
+config.brand_name=Brand name
+config.run_user=Executada como usuario
+config.run_mode=Modo de execución
+config.server.external_url=External URL
+config.server.domain=Domain
+config.server.protocol=Protocol
+config.server.http_addr=HTTP address
+config.server.http_port=HTTP port
+config.server.cert_file=Certificate file
+config.server.key_file=Key file
+config.server.tls_min_version=Minimum TLS version
+config.server.unix_socket_permission=Unix socket permission
+config.server.local_root_url=Local root URL
+config.server.offline_mode=Offline mode
+config.server.disable_router_log=Disable router log
+config.server.enable_gzip=Enable Gzip
+config.server.app_data_path=Application data path
+config.server.load_assets_from_disk=Load assets from disk
+config.server.landing_url=Landing URL
+
+config.ssh_config=Configuración SSH
+config.ssh.enabled=Enabled
+config.ssh.domain=Exposed domain
+config.ssh.port=Exposed port
+config.ssh.root_path=Root path
+config.ssh.keygen_path=Keygen path
+config.ssh.key_test_path=Key test path
+config.ssh.minimum_key_size_check=Minimum key size check
+config.ssh.minimum_key_sizes=Minimum key sizes
+config.ssh.rewrite_authorized_keys_at_start=Rewrite "authorized_keys" at start
+config.ssh.start_builtin_server=Start builtin server
+config.ssh.listen_host=Listen host
+config.ssh.listen_port=Listen port
+config.ssh.server_ciphers=Server ciphers
+config.ssh.server_macs=Server MACs
+config.ssh.server_algorithms=Server algorithms
+
+config.repo_config=Repository configuration
+config.repo.root_path=Root path
+config.repo.script_type=Script type
+config.repo.ansi_chatset=ANSI charset
+config.repo.force_private=Force private
+config.repo.max_creation_limit=Max creation limit
+config.repo.preferred_licenses=Preferred licenses
+config.repo.disable_http_git=Disable HTTP Git
+config.repo.enable_local_path_migration=Enable local path migration
+config.repo.enable_raw_file_render_mode=Enable raw file render mode
+config.repo.commits_fetch_concurrency=Commits fetch concurrency
+config.repo.editor.line_wrap_extensions=Editor line wrap extensions
+config.repo.editor.previewable_file_modes=Editor previewable file modes
+config.repo.upload.enabled=Upload enabled
+config.repo.upload.temp_path=Upload temporary path
+config.repo.upload.allowed_types=Upload allowed types
+config.repo.upload.file_max_size=Upload file size limit
+config.repo.upload.max_files=Upload files limit
+
+config.db_config=Configuración da base de datos
+config.db.type=Type
+config.db.host=Host
+config.db.name=Name
+config.db.schema=Schema
+config.db.schema_helper=(for "postgres" only)
+config.db.user=User
+config.db.ssl_mode=SSL mode
+config.db.ssl_mode_helper=(for "postgres" only)
+config.db.path=Path
+config.db.path_helper=(for "sqlite3"only)
+config.db.max_open_conns=Maximum open connections
+config.db.max_idle_conns=Maximum idle connections
+
+config.security_config=Security configuration
+config.security.login_remember_days=Login remember days
+config.security.cookie_remember_name=Remember cookie
+config.security.cookie_username=Username cookie
+config.security.cookie_secure=Enable secure cookie
+config.security.reverse_proxy_auth_user=Reverse proxy authentication header
+config.security.enable_login_status_cookie=Enable login status cookie
+config.security.login_status_cookie_name=Login status cookie
+config.security.local_network_allowlist=Local network allowlist
+
+config.email_config=Email configuration
+config.email.enabled=Enabled
+config.email.subject_prefix=Subject prefix
+config.email.host=Host
+config.email.from=From
+config.email.user=User
+config.email.disable_helo=Disable HELO
+config.email.helo_hostname=HELO hostname
+config.email.skip_verify=Skip certificate verify
+config.email.use_certificate=Use custom certificate
+config.email.cert_file=Certificate file
+config.email.key_file=Key file
+config.email.use_plain_text=Use plain text
+config.email.add_plain_text_alt=Add plain text alternative
+config.email.send_test_mail=Send test email
+config.email.test_mail_failed=Failed to send test email to '%s': %v
+config.email.test_mail_sent=Test email has been sent to '%s'.
+
+config.auth_config=Authentication configuration
+config.auth_custom_logout_url=Custom logout URL
+config.auth.activate_code_lives=Activate code lives
+config.auth.reset_password_code_lives=Reset password code lives
+config.auth.require_email_confirm=Require email confirmation
+config.auth.require_sign_in_view=Require sign in view
+config.auth.disable_registration=Disable registration
+config.auth.enable_registration_captcha=Enable registration captcha
+config.auth.enable_reverse_proxy_authentication=Enable reverse proxy authentication
+config.auth.enable_reverse_proxy_auto_registration=Enable reverse proxy auto registration
+config.auth.reverse_proxy_authentication_header=Reverse proxy authentication header
+
+config.user_config=User configuration
+config.user.enable_email_notify=Enable email notification
+
+config.session_config=Configuración da sesión
+config.session.provider=Provider
+config.session.provider_config=Provider config
+config.session.cookie_name=Cookie
+config.session.https_only=HTTPS only
+config.session.gc_interval=GC interval
+config.session.max_life_time=Max life time
+config.session.csrf_cookie_name=CSRF cookie
+
+config.cache_config=Configuración da caché
+config.cache.adapter=Adapter
+config.cache.interval=GC interval
+config.cache.host=Host
+
+config.http_config=HTTP configuration
+config.http.access_control_allow_origin=Access control allow origin
+
+config.attachment_config=Attachment configuration
+config.attachment.enabled=Enabled
+config.attachment.path=Path
+config.attachment.allowed_types=Allowed types
+config.attachment.max_size=Size limit
+config.attachment.max_files=Files limit
+
+config.release_config=Release configuration
+config.release.attachment.enabled=Attachment enabled
+config.release.attachment.allowed_types=Attachment allowed types
+config.release.attachment.max_size=Attachment size limit
+config.release.attachment.max_files=Attachment files limit
+
+config.picture_config=Configuración de imaxe
+config.picture.avatar_upload_path=User avatar upload path
+config.picture.repo_avatar_upload_path=Repository avatar upload path
+config.picture.gravatar_source=Gravatar source
+config.picture.disable_gravatar=Disable Gravatar
+config.picture.enable_federated_avatar=Enable federated avatars
+
+config.mirror_config=Mirror configuration
+config.mirror.default_interval=Default interval
+
+config.webhook_config=Configuración de Webhooks
+config.webhook.types=Types
+config.webhook.deliver_timeout=Deliver timeout
+config.webhook.skip_tls_verify=Skip TLS verify
+
+config.git_config=Configuración de git
+config.git.disable_diff_highlight=Disable diff syntax highlight
+config.git.max_diff_lines=Diff lines limit (for a single file)
+config.git.max_diff_line_characters=Diff characters limit (for a single line)
+config.git.max_diff_files=Diff files limit (for a single diff)
+config.git.gc_args=GC arguments
+config.git.migrate_timeout=Migration timeout
+config.git.mirror_timeout=Mirror fetch timeout
+config.git.clone_timeout=Clone timeout
+config.git.pull_timeout=Pull timeout
+config.git.gc_timeout=GC timeout
+
+config.lfs_config=LFS configuration
+config.lfs.storage=Storage
+config.lfs.objects_path=Objects path
+
+config.log_config=Configuración do log
+config.log_file_root_path=Ruta dos ficheiros de log
+config.log_mode=Mode
+config.log_options=Options
+
+monitor.cron=Tarefas de cron
+monitor.name=Nome
+monitor.schedule=Axenda
+monitor.next=Seguinte
+monitor.previous=Anterior
+monitor.execute_times=Execucións
+monitor.process=Procesos en execución
+monitor.desc=Descrición
+monitor.start=Hora de inicio
+monitor.execute_time=Tempo de execución
+
+notices.system_notice_list=Notificacións do sistema
+notices.view_detail_header=Ver detalles da notificación
+notices.actions=Accións
+notices.select_all=Seleccionar todo
+notices.deselect_all=Deseleccionar todo
+notices.inverse_selection=Selección inversa
+notices.delete_selected=Eliminar seleccionado
+notices.delete_all=Eliminar todas as notificacións
+notices.type=Tipo
+notices.type_1=Repositorio
+notices.desc=Descrición
+notices.op=Op.
+notices.delete_success=As notificacións do sistema foron eliminadas satisfactoriamente.
+
+[action]
+create_repo=creou o repositorio %s
+rename_repo=repositorio renomeado de %[1]s a %[3]s
+commit_repo=fixo push a %[3]s en %[4]s
+compare_commits=Ver comparación destas %d achegas
+transfer_repo=transferiu o repositorio %s a %s
+create_issue=`incidencia aberta %s#%[2]s`
+close_issue=`cerrou a incidencia %s#%[2]s`
+reopen_issue=`reabriu a incidencia %s#%[2]s`
+comment_issue=`comentou na incidencia %s#%[2]s`
+create_pull_request=`creado pull request %s#%[2]s`
+close_pull_request=`cerrou o pull request %s#%[2]s`
+reopen_pull_request=`reabriu o pull request %s#%[2]s`
+merge_pull_request=`fusionado pull request %s#%[2]s`
+create_branch=created new branch %[3]s at %[4]s
+delete_branch=deleted branch %[2]s at %[3]s
+push_tag=fixo push do tag %[2]s a %[3]s
+delete_tag=deleted tag %[2]s at %[3]s
+fork_repo=forked a repository to %s
+mirror_sync_push=synced commits to %[3]s at %[4]s from mirror
+mirror_sync_create=synced new reference %[2]s to %[3]s from mirror
+mirror_sync_delete=synced and deleted reference %[2]s at %[3]s from mirror
+
+[tool]
+ago=hai
+from_now=dende agora
+now=agora
+1s=%s 1 segundo
+1m=%s 1 minuto
+1h=%s 1 hora
+1d=%s 1 día
+1w=%s 1 semana
+1mon=%s 1 mes
+1y=%s 1 ano
+seconds=%[2]s %[1]d segundos
+minutes=%[2]s %[1]d minutos
+hours=%[2]s %[1]d horas
+days=%[2]s %[1]d días
+weeks=%[2]s %[1]d semanas
+months=%[2]s %[1]d meses
+years=%s %d anos
+raw_seconds=segundos
+raw_minutes=minutos
+raw_hours=hours
+
+[dropzone]
+default_message=Sólteos aquí ou pulse para cargar arquivos.
+invalid_input_type=Non está permitido cargar arquivos deste tipo.
+file_too_big=O tamaño do arquivo ({{filesize}} MB) excede o tamaño máximo ({{maxFilesize}} MB).
+remove_file=Eliminar arquivo
+
diff --git a/conf/locale/locale_hu-HU.ini b/conf/locale/locale_hu-HU.ini
new file mode 100644
index 00000000000..01a042eb76b
--- /dev/null
+++ b/conf/locale/locale_hu-HU.ini
@@ -0,0 +1,1434 @@
+app_desc=Fájdalommentes, saját gépre telepíthető Git szolgáltatás
+
+home=Kezdőlap
+dashboard=Áttekintés
+explore=Felfedezés
+help=Súgó
+sign_in=Bejelentkezés
+sign_out=Kijelentkezés
+sign_up=Regisztráció
+register=Regisztráció
+website=Weboldal
+page=Oldal
+template=Sablon
+language=Nyelv
+create_new=Létrehozás...
+user_profile_and_more=Felhasználói profil és egyebek
+signed_in_as=Bejelentkezve, mint
+
+username=Felhasználónév
+email=E-mail
+password=Jelszó
+re_type=Újra
+captcha=Ellenőrző kód
+
+repository=Tároló
+organization=Szervezet
+mirror=Tükör
+new_repo=Új tároló
+new_migrate=Új migráció
+new_mirror=Új tükör
+new_fork=Új tároló másolása
+new_org=Új szervezet
+manage_org=Szervezetek kezelése
+admin_panel=Rendszergazdai felület
+account_settings=Fiók beállításai
+settings=Beállítások
+your_profile=Profilom
+your_settings=Beállításaim
+
+activities=Tevékenységek
+pull_requests=Pull request-ek
+issues=Problémák
+
+cancel=Mégse
+
+[status]
+page_not_found=Az oldal nem található
+internal_server_error=Belső kiszolgálóhiba
+
+[install]
+install=Telepítés
+title=Telepítés első indításkor
+docker_helper=Ha Docker alatt fut a Gogs, akkor kérjük, figyelmesen olvassa el az irányelveket, mielőtt bármit megváltoztat ezen az oldalon!
+requite_db_desc=Gogs requires MySQL, PostgreSQL, SQLite3 or TiDB (via MySQL protocol).
+db_title=Adatbázis beállításai
+db_type=Adatbázis-kezelő
+host=Kiszolgáló
+user=Felhasználónév
+password=Jelszó
+db_name=Adatbázis neve
+db_schema=Schema
+db_helper=MySQL szerveren kérjük használjon INNODB motort utf8_general_ci karakterkészlettel.
+ssl_mode=SSL mód
+path=Elérési út
+sqlite_helper=SQLite3 vagy a TiDB adatbázis fájljának elérési útvonala. Kérjük használja az abszolút elérési utat, a szolgáltatás indításakor.
+err_empty_db_path=SQLite3 adatbázis elérési út nem lehet üres.
+no_admin_and_disable_registration=Nem tilthatja le a regisztrációt, amíg nem hoz létre egy rendszergazdai fiókot.
+err_empty_admin_password=Rendszergazdai jelszó nem lehet üres.
+
+general_title=Alkalmazás általános beállításai
+app_name=Alkalmazás neve
+app_name_helper=Adjon meg valami izgalmas nevet!
+repo_path=Tárolók alapkönyvtára
+repo_path_helper=Ebben a könyvtárban lesznek a Git tárolók.
+run_user=Futtató felhasználó
+run_user_helper=Ezen felhasználónak jogosultnak kell lennie a tárolók elérésére és a Gogs futtatására.
+domain=Tartomány
+domain_helper=Ez befolyásolja az SSH klón URL-eket.
+ssh_port=SSH port
+ssh_port_helper=Ezt a portot fogja használni az SSH szerver, hagyja üresen az SSH letiltásához.
+use_builtin_ssh_server=Beépített SSH szerver használata
+use_builtin_ssh_server_popup=Indítsa el a beépített SSH szervert a Git műveletekhez elkülönítve a rendszer SSH démontól.
+http_port=HTTP port
+http_port_helper=Ezen a porton érhető el az alkalmazás webfelülete.
+app_url=Alkalmazás URL-je
+app_url_helper=Ez a HTTP/HTTPS másolás URL címében és e-mailekben használatos.
+log_root_path=Naplófájl elérési útja
+log_root_path_helper=Naplófájlok könyvtára.
+enable_console_mode=Konzol-üzemmód engedélyezése
+enable_console_mode_popup=Naplófájl írása mellett a naplóbejegyzések nyomtatása a konzolra.
+default_branch=Default Branch
+
+optional_title=További beállítások
+email_title=E-mail szolgáltatás beállításai
+smtp_host=SMTP kiszolgáló
+smtp_from=Feladó
+smtp_from_helper=E-mail feladója, RFC 5322. Lehet pusztán e-mail cím, vagy "Név" formátumú.
+mailer_user=Felhasználónév
+mailer_password=Jelszó
+register_confirm=Regisztráció megerősítésének engedélyezése
+mail_notify=Email értesítés engedélyezése
+server_service_title=Szerver és egyéb szolgáltatások beállítása
+offline_mode=Kapcsolat nélküli mód engedélyezése
+offline_mode_popup=CDN kikapcsolása éles üzemmódban is, minden fájl helyi példányát adjuk.
+disable_gravatar=Gravatar kikapcsolása
+disable_gravatar_popup=Gravatar és egyedi források kikapcsolása, minden avatárt a felhasználók töltenek fel.
+federated_avatar_lookup=Engedélyezi a független avatarokat
+federated_avatar_lookup_popup=Eggyesített profilkép keresés a nyílt forráskódú libravatar szolgáltatás segítségével.
+disable_registration=Önregisztráció kikapcsolása
+disable_registration_popup=Ön-regisztráció kikapcsolása, csak a rendszergazda hozhat létre fiókot.
+enable_captcha=Ellenőrző kód engedélyezése
+enable_captcha_popup=Ellenőrző kódot kér a felhasználói regisztrációnál.
+require_sign_in_view=Bejelentkezés megkövetelése az oldalak megtekintéséhez
+require_sign_in_view_popup=Csak bejelentkezett felhasználók nézhetik meg az oldalakat; a látogatók csak a bejelentkező oldalt láthatják.
+admin_setting_desc=Nem szükséges most beállítania rendszergazdai fiókot, mert az első felhasználó (ID=1) automatikusan rendszergazdai jogokat kap.
+admin_title=Rendszergazda fiók beállításai
+admin_name=Felhasználónév
+admin_password=Jelszó
+confirm_password=Jelszó megerősítése
+admin_email=Rendszergazda e-mail
+install_gogs=Gogs telepítése
+test_git_failed=Hibát adott a 'git' parancs: %v
+sqlite3_not_available=Ez a verzió nem támogatja az SQLite3-at, kérlek töltsd le a hivatalos bináris verziót (%s), NE a gobuild változatot.
+invalid_db_setting=Hibás adatbázis-beállítás: %v
+invalid_repo_path=Hibás tároló-alapkönyvtár: %v
+run_user_not_match=Futtató felhasználó más, mint az aktuális felhasználó: %s -> %s
+smtp_host_missing_port=Az SMTP kiszolgáló címéből hiányzik a portszám.
+invalid_smtp_from=Érvénytelen SMTP Feladó mező: %v
+save_config_failed=Hiba a beállítások tárolásakor: %v
+init_failed=Nem sikerült inicializálni az alkalmazást: %v
+invalid_admin_setting=Hibás a rendszergazdai fiók beállítása: %v
+install_success=Üdv! Örülünk, hogy a Gogs-ot választottad, érezd jól magad és viseld gondját.
+invalid_log_root_path=Naplózás gyökérmappa érvénytelen: %v
+
+[home]
+uname_holder=Felhasználónév vagy email
+password_holder=Jelszó
+switch_dashboard_context=Vezérlőpult környezet váltása
+my_repos=Tárolóim
+show_more_repos=Mutassa a többi tárolót...
+collaborative_repos=Együttműködő tárolók
+my_orgs=Szervezeteim
+my_mirrors=Tükreim
+view_home=%s megtekintése
+
+issues.in_your_repos=A tárolóidban
+
+[explore]
+repos=Tárolók
+users=Felhasználók
+organizations=Szervezetek
+search=Keresés
+
+[auth]
+create_new_account=Új fiók létrehozása
+register_hepler_msg=Van már felhasználói fiókja? Jelentkezz be!
+social_register_hepler_msg=Van már fiókod? Csatold most!
+disable_register_prompt=Elnézést, a regisztrációt kikapcsolták. Kérlek szólj az oldal adminisztrátorának.
+disable_register_mail=Elnézést, az email regisztráció megerősítését kikapcsolták.
+auth_source=Hitelesítési forrás
+local=Helyi
+remember_me=Emlékezz rám
+forgot_password=Elfelejtett jelszó
+forget_password=Elfelejtette a jelszavát?
+sign_up_now=Szeretne bejelentkezni? Regisztráljon most.
+confirmation_mail_sent_prompt=Új megerősítő emailt küldtünk %s címre, kérlek keresd a postafiókodban az elkövetkező %d órában, hogy befejezhesd a regisztrációs folyamatot.
+active_your_account=Aktiváld a fiókod
+prohibit_login=A bejelentkezés tiltva
+prohibit_login_desc=A fiókjával bejelentkezés le van tiltva, vegye fel a kapcsolatot az adminisztátorral.
+resent_limit_prompt=Elnézést, nemrég kértél aktiváló emailt. Kérlek várj 3 percet, aztán próbáld újra.
+has_unconfirmed_mail=Szia %s, van egy nem megerősített email címed (%s). Ha még nem kapták megerősítő emailt, vagy újat küldenél, kérlek kattints az alábbi gombra.
+resend_mail=Kattints ide hogy újraküldd az aktiváló emailt
+send_reset_mail=Kattints ide hogy újraküldd a jelszó visszaállító emailt
+reset_password=Jelszó visszaállítása
+invalid_code=Elnézést, a megerősítő kód lejárt vagy hibás.
+reset_password_helper=A jelszó visszaállításához kattintson ide
+password_too_short=A jelszó nem lehet 6-nál rövidebb.
+non_local_account=Nem helyi felhasználó nem cserélhet jelszót a Gogsban.
+
+login_two_factor=Kétlépcsős hitelesítés
+login_two_factor_passcode=Hitelesítő kód
+login_two_factor_enter_recovery_code=Adja meg a kétlépcsős hitelesítés helyreállító kódját
+login_two_factor_recovery=Kétlépcsős hitelesítés helyreállítása
+login_two_factor_recovery_code=Helyreállító kód
+login_two_factor_enter_passcode=Adja meg a kétlépcsős hitelesítés kódját
+login_two_factor_invalid_recovery_code=Helyreállító kód már felhasználásra került, vagy nem érvényes.
+
+[mail]
+activate_account=Kérlek aktiváld a fiókod
+activate_email=Ellenőrizd az email címed
+reset_password=Állítsd vissza a jelszavad
+register_success=Sikeres regisztráció, üdvözöljük
+register_notify=Üdvözlünk a fedélzeten
+
+[modal]
+yes=Igen
+no=Nem
+modify=Módosítás
+
+[form]
+UserName=Felhasználónév
+RepoName=Tároló neve
+Email=E-mail cím
+Password=Jelszó
+Retype=Jelszó megerősítése
+SSHTitle=SSH kulcs neve
+HttpsUrl=HTTPS URL
+PayloadUrl=Tartalom URL-címe
+TeamName=Csapat neve
+AuthName=Engedélyezési név
+AdminEmail=Rendszergazdai e-mail
+
+NewBranchName=Az új branch neve
+CommitSummary=Commit összegzés
+CommitMessage=Commit üzenet
+CommitChoice=Véglegesítés választása
+TreeName=Elérési út
+Content=Tartalom
+
+require_error=` nem lehet üres`
+alpha_dash_error=` betű, szám vagy kötőjel (-_) karakterek lehetnek.`
+alpha_dash_dot_error=` betű, szám vagy kötőjel (-_) vagy pont karakterek lehetnek.`
+alpha_dash_dot_slash_error=` betű, szám, kötőjel (-_) illetve pont vagy perjel karakterek lehetnek.`
+size_error=` %s hosszú kell.`
+min_size_error=` legalább %s karaktert kell tartalmaznia.`
+max_size_error=` legfeljebb %s karaktert tartalmazhat.`
+email_error=` nem valódi email cím.`
+url_error=` nem érvényes URL.`
+include_error=` tartalmaznia kell a '%s' karakterláncot.`
+unknown_error=Ismeretlen hiba:
+captcha_incorrect=Az ellenőrző kód hibás.
+password_not_match=A jelszó és megerősítése nem egyeztek meg.
+
+username_been_taken=A felhasználónév már foglalt.
+repo_name_been_taken=A tároló neve már foglalt.
+org_name_been_taken=A szervezet neve már foglalt.
+team_name_been_taken=Az a csapatnév már foglalt.
+email_been_used=Ezt az email címet már felhasználták.
+username_password_incorrect=Felhasználó név vagy jelszó hibás.
+auth_source_mismatch=A kijelölt hitelesítési forráshoz nincs társítva a felhasználó.
+enterred_invalid_repo_name=Kérjük, ellenőrizze, hogy a tároló neve helyes.
+enterred_invalid_owner_name=Kérjük, ellenőrizze, hogy a tulajdonos neve helyes.
+enterred_invalid_password=Kérlek ellenőrizd, hogy a beírt jelszó helyes.
+user_not_exist=A megadott felhasználó nem létezik.
+last_org_owner=Az utolsó felhasználót nem lehet eltávolítani a csapatból, mert egy tulajdonos kell legyen minden szervezetben.
+
+invalid_ssh_key=Elnézést, nem tudtuk ellenőrizni az SSH kulcsod: %s
+unable_verify_ssh_key=A Gogs nem tudja ellenőrizni a SSH kulcsod, de azt feltételezzük, hogy az érvényes, Kérem figyelmesen ellenőrizze.
+auth_failed=Hitelesítési hiba: %v
+
+still_own_repo=A felhasználód még legalább egy tároló tulajdonosa, először törölnöd kell őket vagy átadni másnak a tulajdonjogaikat.
+still_has_org=A fiókod még mindig tagja legalább egy szervezetnek. Először ki kell lépned vagy törölnöd kell a tagságodat.
+org_still_own_repo=Ez a szervezet továbbra is tulajdonosa tárolóknak, ezért előbb törölje vagy adja át másnak a tárolókat.
+
+target_branch_not_exist=Cél branch nem létezik.
+
+[user]
+change_avatar=Profilkép megváltoztatása
+join_on=Csatlakozott
+repositories=Tárolók
+activity=Nyilvános működés
+followers=Követők
+starred=Kedvencek
+following=Követve
+follow=Követés
+unfollow=Követés törlése
+
+form.name_not_allowed=A %q felhasználónév, vagy minta nem engedélyezett.
+
+[settings]
+profile=Profil
+password=Jelszó
+avatar=Profilkép
+ssh_keys=SSH kulcsok
+security=Biztonság
+repos=Tárolók
+orgs=Szervezetek
+applications=Alkalmazások
+delete=Fiók törlése
+
+public_profile=Nyilvános profil
+profile_desc=Az e-mail címe nyilvános, és ezt fogják használni a fiókkal kapcsolatos bármilyen értesítéshez, illetve az oldalon keresztül elvégzett bármilyen webalapú művelethez.
+password_username_disabled=A nem helyi típusú felhasználók nem változtathatják meg felhasználónevüket.
+full_name=Teljes név
+website=Weboldal
+location=Lakhely
+update_profile=Profil frissítése
+update_profile_success=A profilod frissítése megtörtént.
+change_username=Felhasználónév megváltoztatva
+change_username_prompt=Ez a változtatás kihat a fiókoddal kapcsolatos hivatkozásokra.
+continue=Tovább
+cancel=Mégse
+
+lookup_avatar_by_mail=Profilkép keresése e-mail alapján
+federated_avatar_lookup=Összevont profilkép keresés
+enable_custom_avatar=Egyedi profilkép engedélyezése
+choose_new_avatar=Új profilkép kiválasztása
+update_avatar=Profilkép beállítások frissítése
+delete_current_avatar=Jelenlegi Profilkép Törlése
+uploaded_avatar_not_a_image=A feltöltött fájl nem kép.
+update_avatar_success=Az profilkép beállításaid frissítése megtörtént.
+
+change_password=Jelszó megváltoztatása
+old_password=Eddigi jelszó
+new_password=Új jelszó
+retype_new_password=Új jelszó megerősítése
+password_incorrect=A megadott jelszó helytelen.
+change_password_success=Jelszavad sikeresen megváltozott. Most már az új jelszavadat használhatod.
+password_change_disabled=Csak helyi felhasználók változtathatják meg jelszavukat.
+
+emails=E-mail címek
+manage_emails=E-mail címek kezelése
+email_desc=Elsődleges e-mail címét használjuk értesítésekre és más műveletekre.
+primary=Elsődleges
+primary_email=Beállítás elsődlegesként
+delete_email=Törlés
+email_deletion=E-mail cím törlése
+email_deletion_desc=Az e-mail cím törlése kapcsolódó adatokat is eltávolít a fiókjából. Biztosan folytatja?
+email_deletion_success=Az e-mail címet töröltük!
+email_deletion_primary=Cannot delete primary email address.
+add_new_email=Új email cím felvétele
+add_email=Email felvétele
+add_email_confirmation_sent=Egy új megerősítő e-mailt küldtünk a(z) '%s' címre. Kérlek ellenőrizd a beérkező üzeneteidet %d órán belül, hogy befejezd a megerősítési folyamatot.
+add_email_success=Az új email címed felvétele megtörtént.
+
+manage_ssh_keys=SSH Kulcsok Kezelése
+add_key=Kulcs hozzáadása
+ssh_desc=Ez a fiókodhoz társított összes SSH kulcs listája. Mivel ezek a kulcsok a birtokosuknak hozzáférést adnak a repository-jaidhoz, ezért különösen fontos, hogy felismerd mindegyiket.
+ssh_helper=Nem tudod hogyan? Nézd meg a GitHub útmutatóját saját SSH kulcsok generálásához vagy nézz utána a gyakori problémáknak amikkel az SSH használata közben találkozhatsz.
+add_new_key=SSH kulcs hozzáadása
+ssh_key_been_used=Nyilvános kulcs tartalma már fel lett használva.
+ssh_key_name_used=Már létezik egy ilyen nevű nyilvános kulcs.
+key_name=Kulcs neve
+key_content=Tartalom
+add_key_success=Az új SSH kulcsot ('%s') sikeresen hozzáadtuk!
+delete_key=Törlés
+ssh_key_deletion=SSH kulcs törlése
+ssh_key_deletion_desc=Az SSH kulcs törlése minden kapcsolódó hozzáférést töröl a fiókodból. Biztosan folytatod?
+ssh_key_deletion_success=Az SSH kulcsot sikeresen töröltük!
+add_on=Hozzáadva
+last_used=Utolsó használat
+no_activity=Mostanság nem használt
+key_state_desc=Ezt a kulcsot az utóbbi 7 napban használták
+token_state_desc=Ezt a jegyet az utóbbi 7 napban használták
+
+two_factor=Kétlépcsős hitelesítés
+two_factor_status=Állapot:
+two_factor_on=Be
+two_factor_off=Ki
+two_factor_enable=Engedélyezés
+two_factor_disable=Letiltás
+two_factor_view_recovery_codes=Nézze meg és mentse el a helyreállító kódjait egy biztonságos helyre. Használhatja őket mint jelkód, ha elveszti a hozzáférést az alkalmazáshoz.
+two_factor_http=HTTP/HTTPS műveletekhez nem használhatja többet a felhasználónevét és jelszavát, helyette hozzon létre személyes hozzáférési tokent és használja azt. Pl.: %[3]s.
+two_factor_enable_title=Kétlépcsős hitelesítés engedélyezése
+two_factor_scan_qr=Kérjük, használja a hitelesítési alkalmazását és olvassa be vele az alábbi képet:
+two_factor_or_enter_secret=Vagy adja meg a titkos kódot:
+two_factor_then_enter_passcode=Ezután írja be ezt a jelkódot:
+two_factor_verify=Ellenőrzés
+two_factor_invalid_passcode=Érvénytelen a megadott jelkód, próbálja meg újra!
+two_factor_reused_passcode=A megadott PIN-kód már használatban van. Kérem válasszon másikat!
+two_factor_enable_error=Kétlépcsős hitelesítés engedélyezése sikertelen: %v
+two_factor_enable_success=Kétlépcsős hitelesítés sikeresen engedélyezve a fiókjához!
+two_factor_recovery_codes_title=Kettőlépcsős hitelesítés helyreállítási kódok
+two_factor_recovery_codes_desc=A helyreállítási kódok akkor használhatóak, ha elveszti hozzáférését az alkalmazáshoz. Minden kód csak egyszer használható, kérjük tartsa biztonságos helyen.
+two_factor_regenerate_recovery_codes=A helyreállító kódok újragenerálása
+two_factor_regenerate_recovery_codes_error=A helyreállító kódok újragenerálása sikertelen: %v
+two_factor_regenerate_recovery_codes_success=A helyreállítókódok sikeresen újragenerálva!
+two_factor_disable_title=Kétlépcsős hitelesítés letiltása
+two_factor_disable_desc=A fiók biztonsági szintje csökken, miután kikacsolja a kétlépcsős hitelesítést. Biztosan folytatja?
+two_factor_disable_success=Kétlépcsős hitelesítés sikeresen letiltva a fiókjához!
+
+manage_access_token=Személyes hozzáférési jegyek kezelése
+generate_new_token=Új jegy generálása
+tokens_desc=A generált jegyekkel hozzáférhetsz a Gogs API-hoz.
+access_token_tips=The personal access token may be used as either username or password. It is recommended to use the "x-access-token" as the username and the personal access token as the password for Git applications.
+new_token_desc=Minden jegy teljes hozzáférést ad a fiókodhoz.
+token_name=Jegy neve
+generate_token=Jegy generálása
+generate_token_succees=A hozzáférési jegy sikeresen elkészült! Másold le most azonnal, később már nem látod viszont!
+delete_token=Törlés
+access_token_deletion=Személyes hozzáférési jegy törlése
+access_token_deletion_desc=Az SSH kulcs törlése minden kapcsolódó hozzáférést töröl a fiókodból. Biztosan folytatod?
+delete_token_success=A személyes hozzáférési tokened eltávolítása megtörtént! Ne felejtsd el frissíteni az alkalmazásod is.
+token_name_exists=Már létezik ilyen nevű szerepkör.
+
+orgs.none=Nem vagy tagja egy szervezeti elemnek sem.
+orgs.leave_title=Szervezet elhagyása
+orgs.leave_desc=Elveszít minden jogosultágot a tárolókhoz és csoportokhoz miután elhagyja a szervezetet. Biztosan folytatja?
+
+repos.leave=Elhagyás
+repos.leave_title=Tároló elhagyása
+repos.leave_desc=Elveszik minden jogosultsága a tárolóhoz miután távozik. Biztosan folytatja?
+repos.leave_success=Sikeresen elhagyta a '%s' tárolót!
+
+delete_account=Fiók Törlése
+delete_prompt=Ez a művelet véglegesen törli a fiókod és NEM vonható vissza!
+confirm_delete_account=Törlés megerősítése
+delete_account_title=Fióktörlés
+delete_account_desc=Ez a fiók véglegesen törölve lesz, szeretné folytatni?
+
+[repo]
+owner=Tulajdonos
+repo_name=Tároló neve
+repo_name_helper=A jó tárolónév általában rövid, megjegyezhető és egyedi kulcsszavakból tevődik össze.
+visibility=Láthatóság
+unlisted=Unlisted
+visiblity_helper=Ez egy privát tároló
+unlisted_helper=This repository is Unlisted
+visiblity_helper_forced=Az oldal adminisztrátora kötelezővé tette, hogy minden új repository Privát legyen
+visiblity_fork_helper=(Az érték megváltoztatása kihat minden fork-ra)
+clone_helper=Segítség kell a klónozáshoz? Látogasd meg a Súgót!
+fork_repo=Tároló forkolása
+fork_from=Másolás innen
+fork_visiblity_helper=Nem módosíthatod egy fork-olt repository láthatóságát.
+repo_desc=Leírás
+repo_lang=Nyelv
+repo_gitignore_helper=Válasszon .gitignore sablont
+license=Licenc
+license_helper=Licencfájl kiválasztása
+readme=Olvassel
+readme_helper=Válassz egy readme sablont
+auto_init=Tároló inicializálása a kiválasztott fájlokkal és sablonokkal
+create_repo=Tároló létrehozása
+default_branch=Alapértelmezett branch
+mirror_prune=Prune
+mirror_prune_desc=Minden olyan követési referencia törlése, mely már nem érhető el a távoli oldalon
+mirror_interval=Tükrözés Időköze (óra)
+mirror_address=Tükör cím
+mirror_address_desc=Kérlek, add meg a szükséges belépési adatokat a címben.
+mirror_last_synced=Utoljára szinkr.
+watchers=Figyelők
+stargazers=Csillagvizsgálók
+forks=Másolások
+repo_description_helper=Tároló leírása. Maximum 512 karakter hosszúságú.
+repo_description_length=Rendelkezésre álló karakterek
+
+form.reach_limit_of_creation=A tulajdonos túllépte a maximum létrehozható tárolók számát (%d).
+form.name_not_allowed=A %q repository név, vagy minta nem engedélyezett.
+
+need_auth=Hitelesítés szükséges
+migrate_type=Migráció típusa
+migrate_type_helper=Ez a repository tükörként fog működni
+migrate_repo=Tároló migrálása
+migrate.clone_address=Klón cím
+migrate.clone_address_desc=Ez lehet egy HTTP/HTTPS/GIT URL.
+migrate.clone_address_desc_import_local=Migrálhat tárolót a helyi fájlrendszerből is az útvonal megadásával.
+migrate.permission_denied=Az Ön számára nem engedélyezett a helyi tároló importálása.
+migrate.invalid_local_path=Érvénytelen helyi elérési út; nem létezik vagy nem mappára mutat.
+migrate.clone_address_resolved_to_blocked_local_address=Clone address resolved to a local network address that is implicitly blocked.
+migrate.failed=Migráció sikertelen: %v
+
+mirror_from=tükrözi:
+forked_from=másolva
+copy_link=Másolás
+copy_link_success=Másolva!
+copy_link_error=Nyomja meg a ⌘-C vagy Ctrl-C gombokat a másoláshoz
+copied=Másolás rendben
+unwatch=Figyelés törlése
+watch=Figyelés
+unstar=Nem Kedvenc
+star=Kedvenc
+fork=Másolás
+
+no_desc=Nincs leírás
+quick_guide=Gyors útmutató
+clone_this_repo=Tároló klónozása
+create_new_repo_command=Egy új tároló létrehozása a parancssorból
+push_exist_repo=Meglévő repository feltöltése parancssorból
+bare_message=A tároló nem tartalmaz semmit, üres.
+
+files=Fájlok
+branch=Branch
+tree=Fa
+filter_branch_and_tag=Branch vagy tag szűrése
+branches=Branch-ok
+tags=Tag-ek
+issues=Problémák
+pulls=Beolvasztási kérések
+labels=Címkék
+milestones=Mérföldkövek
+commits=Commit-ok
+git_branches=Ágak
+releases=Kiadások
+file_raw=Nyers
+file_history=Előzmények
+file_view_raw=Nyers fájl megtekintése
+file_permalink=Állandó hivatkozás
+file_too_large=Ez a fájl túl nagy ahhoz, hogy megjelenítsük
+video_not_supported_in_browser=A böngésző nem támogatja a HTML5 video elemet.
+
+branches.overview=Összefoglaló
+branches.active_branches=Aktív ág
+branches.stale_branches=Elavult ágak
+branches.all=Minden ág
+branches.updated_by=Frissítve ekkor: %[1]s %[2]s által
+branches.change_default_branch=Alapértelmezett ág megváltoztatása
+branches.default_deletion_not_allowed=Cannot delete the default branch.
+branches.protected_deletion_not_allowed=Cannot delete a protected branch.
+
+editor.new_file=Új fájl
+editor.upload_file=Fájl feltöltése
+editor.edit_file=Fájl szerkesztése
+editor.preview_changes=Előnézet
+editor.cannot_edit_non_text_files=Csak szöveges állomány szerkeszthető
+editor.edit_this_file=Fájl szerkesztése
+editor.must_be_on_a_branch=Egy ágat kell használnia, hogy változtatásokat végezhessen, vagy javasolhasson ehhez a fájlhoz
+editor.fork_before_edit=Forkolnod kell a repot, hogy szerkeszthesd a fájlt
+editor.delete_this_file=A fájl törlése
+editor.must_have_write_access=Írási jogosultság szükséges hogy módosíthassa, vagy módosításokat javasolhasson ehhez a fájlhoz
+editor.file_delete_success='%s' fájl sikeresen törölve lett!
+editor.name_your_file=Adj nevet a fájlnak...
+editor.filename_help=Egy könyvtár hozzáadásához használja a /-t. Egy könyvtár eltávolításához menyjen a mező elejére és nyomjon backspacet.
+editor.or=vagy
+editor.cancel_lower=mégsem
+editor.commit_changes=Változások véglegesítése
+editor.add_tmpl=Adja hozzá a '%s/'
+editor.add=Hozzáadás a(z) "%s"
+editor.update=Frissítés "%s"
+editor.delete=Törölje a "%s"
+editor.commit_message_desc=Opcionális hosszabb leírás hozzáadása...
+editor.commit_directly_to_this_branch=Commit egyenesen a(z) %s ágba.
+editor.create_new_branch=Új ág létrehozása ennek a véglegesítésére és beolvasztási kérés indítása.
+editor.new_branch_name_desc=Új ág neve...
+editor.cancel=Mégse
+editor.filename_cannot_be_empty=A fájlnév nem lehet üres.
+editor.branch_already_exists=A(z) '%s' branch már létezik ebben a repositoryban.
+editor.directory_is_a_file=A '%s' útvonal egy fájl és nem egy könyvtár a tárolóban.
+editor.file_is_a_symlink=A '%s' egy szimbolikus hivatkozás, ami nem módosítható a webes szerkesztőből.
+editor.filename_is_a_directory=A(z) '%s' fájlnév egy létező könyvtár ebben a tárolóban.
+editor.file_editing_no_longer_exists=A(z) '%s' fájl amit szerkeszt már nem létezik a tárolóban.
+editor.file_changed_while_editing=A fájl tartalma megváltozott mióta elkezdte szerkeszteni. Kattintson ide hogy megtekintse mi változott vagy nyomja meg a commit-ot újra, hogy felülírja a változásokat.
+editor.file_already_exists=A(z) '%s' nevű fájl már létezik a tárolóban.
+editor.no_changes_to_show=Nincsen megjeleníthető változás.
+editor.fail_to_update_file=Nem sikerült frissíteni/létrehozni a következő fájlt: '%s' A hiba oka: %v
+editor.fail_to_delete_file=Nem sikerült törölni a következő fájlt: '%s' A hiba oka: %v
+editor.add_subdir=Alkönyvtár hozzáadása...
+editor.unable_to_upload_files=Nem sikerült feltölteni a fájlokat a "%s" hiba: %v
+editor.upload_files_to_dir=Fájlok feltöltése '%s'
+
+commits.commit_history=Commit történet
+commits.commits=Commit-ok
+commits.search=Commit-ok Keresése
+commits.find=Keresés
+commits.author=Szerző
+commits.message=Üzenet
+commits.date=Dátum
+commits.older=Korábbi
+commits.newer=Újabb
+
+issues.new=Új probléma
+issues.new.labels=Címkék
+issues.new.no_label=Nincs címke
+issues.new.clear_labels=Címkék kiürítése
+issues.new.milestone=Mérföldkő
+issues.new.no_milestone=Nincs mérföldkő
+issues.new.clear_milestone=Mérföldkő kiürítése
+issues.new.open_milestone=Nyitott mérföldkövek
+issues.new.closed_milestone=Zárt mérföldkövek
+issues.new.assignee=Megbízott
+issues.new.clear_assignee=Megbízott kiürítése
+issues.new.no_assignee=Nincs megbízott
+issues.create=Problémák létrehozása
+issues.new_label=Új címke
+issues.new_label_placeholder=Címke neve...
+issues.create_label=Címke létrehozása
+issues.label_templates.title=Előre definiált címkék betöltése
+issues.label_templates.info=Még nincsenek cimkék. Kattintson az "Új Címke" gombra felül egy új létrehozásához, vagy választhat egyet a már létezőt a lenti listából.
+issues.label_templates.helper=Címke készlet választása
+issues.label_templates.use=Használja ezt a címke készletet
+issues.label_templates.fail_to_load_file=Nem sikerült betölteni a cimkekészlet sablon fájlt "%s": %v
+issues.open_tab=%d nyitott
+issues.close_tab=%d zárt
+issues.filter_label=Címke
+issues.filter_label_no_select=Nincs kijelölt címke
+issues.filter_milestone=Mérföldkő
+issues.filter_milestone_no_select=Nincs kijelölt mérföldkő
+issues.filter_assignee=Megbízott
+issues.filter_assginee_no_select=Nincs kijelölt megbízott
+issues.filter_type=Típus
+issues.filter_type.all_issues=Összes probléma
+issues.filter_type.assigned_to_you=Önhöz rendelt
+issues.filter_type.created_by_you=Az Ön által létrehozott
+issues.filter_type.mentioning_you=Megemlíti önt
+issues.filter_sort=Rendezés
+issues.filter_sort.latest=Legújabb
+issues.filter_sort.oldest=Legrégebbi
+issues.filter_sort.recentupdate=Legfrissebbek
+issues.filter_sort.leastupdate=Legkevésbbé friss
+issues.filter_sort.mostcomment=Legtöbbet hozzászólt
+issues.filter_sort.leastcomment=Legkevesebbet hozzászólt
+issues.opened_by=megnyitva ekkor: %[1]s %[3]s által
+issues.opened_by_fake=megnyitva ekkor: %[1]s %[2]s által
+issues.previous=Előző
+issues.next=Következő
+issues.open_title=Nyitott
+issues.closed_title=Lezárt
+issues.num_comments=%d hozzászólás
+issues.commented_at=`hozzászólt %s`
+issues.delete_comment_confirm=Biztos benne, hogy törölni akarja ezt a hozzászólást?
+issues.no_content=Még nincs tartalom.
+issues.close_issue=Bezárás
+issues.close_comment_issue=Hozzászólás és bezárás
+issues.reopen_issue=Újbóli megnyitás
+issues.reopen_comment_issue=Hozzászólás és újra megnyitás
+issues.create_comment=Hozzászólás
+issues.closed_at=`lezárta ekkor: %[2]s`
+issues.reopened_at=`kinyitotta ekkor: %[2]s`
+issues.commit_ref_at=`hivatkozott erre a hibajegyre egy commit-ban ekkor: %[2]s`
+issues.poster=Bejelentő
+issues.collaborator=Közreműködő
+issues.owner=Tulajdonos
+issues.sign_in_require_desc=Jelentkezzen be hogy csatlakozhasson a beszélgetéshez.
+issues.edit=Szerkesztés
+issues.cancel=Mégse
+issues.save=Mentés
+issues.label_title=Cimke neve
+issues.label_color=Címke színe
+issues.label_count=%d címke
+issues.label_open_issues=%d nyitott hibajegy
+issues.label_edit=Szerkesztés
+issues.label_delete=Törlés
+issues.label_modify=Címke Módosítása
+issues.label_deletion=Címke Törlése
+issues.label_deletion_desc=A címke törlésével minden vele kapcsolatos információ törlésre kerül a hibajegyekből. Folytatod?
+issues.label_deletion_success=A címke törlése megtörtént!
+issues.num_participants=%d Résztvevő
+issues.attachment.open_tab=`Megnyitás "%s" új fülön`
+issues.attachment.download=`Letöltéshez kattints "%s"`
+
+pulls.new=Új beolvasztási kérés
+pulls.compare_changes=Összehasonlítás
+pulls.compare_changes_desc=Hasonlíts össze két branch-ot és készíts pull kérést a változtatásokkal.
+pulls.compare_base=base
+pulls.compare_compare=összehasonlítás
+pulls.filter_branch=Branch szűrése
+pulls.no_results=Nincs találat.
+pulls.nothing_to_compare=Nincs mit összehasonlítani, mert a base és a head branch egyezik.
+pulls.nothing_merge_base=Nincs mit összehasonlítani, mert két ág teljes mértékben különböző előzményekkel rendelkezik.
+pulls.has_pull_request=`Már létezik egy pull kérés a két cél között: %[2]s#%[3]d`
+pulls.create=Pull Kérés Létrehozása
+pulls.title_desc=szeretne %[1]d commit-ot egyesíteni innen: %[2]s ide: %[3]s
+pulls.merged_title_desc=%[1]d commit egyesítve innen: %[2]s ide: %[3]s ekkor: %[4]s
+pulls.tab_conversation=Beszélgetés
+pulls.tab_commits=Commit-ok
+pulls.tab_files=Módosított fájlok
+pulls.reopen_to_merge=Kérjük, nyissa újra a beolvasztási kérést az egyesítés végrehajtásához.
+pulls.merged=Egyesítve
+pulls.has_merged=Ez a beolvasztási kérés sikeresen egyesítve lett!
+pulls.data_broken=A pull kérés adatai sérültek a fork információ hiányossága miatt.
+pulls.is_checking=Az ütközés ellenőrzés még folyamatban van, frissítsd az oldalt pár másodperc múlva.
+pulls.can_auto_merge_desc=Ez a beolvasztási kérés automatikusán egyesíthető.
+pulls.cannot_auto_merge_desc=Ez a beolvasztási kérés ütközések miatt nem egyesíthető automatikusan.
+pulls.cannot_auto_merge_helper=Kérlek, egyesítsd kézileg a konfliktusok megoldásához.
+pulls.create_merge_commit=Eggyesítő commit létrehozása
+pulls.rebase_before_merging=Rebase eggyesítés előtt
+pulls.commit_description=Commit leírása
+pulls.merge_pull_request=Beolvasztási kérés egyesítése
+pulls.open_unmerged_pull_exists=`Nem tudja újranyitni, mert már van egy nyitott egyesítési kérés (#%d) ugyanebben a tárolóban, ugyanezekket az egyesítési információkkal, és végrehajtásra vár.`
+pulls.delete_branch=Ág törlése
+pulls.delete_branch_has_new_commits=Ág nem törölhető, mert tartalmaz olyan új változásokat melyek nem lettek még egyesítve.
+
+milestones.new=Új mérföldkő
+milestones.open_tab=%d Nyitott
+milestones.close_tab=%d Lezárt
+milestones.closed=Lezárva ekkor: %s
+milestones.no_due_date=Nincs határidő
+milestones.open=Nyitott
+milestones.close=Lezárás
+milestones.new_subheader=Hozz létre mérföldköveket a hibajegyek rendszerezéséhez.
+milestones.create=Mérföldkő létrehozása
+milestones.title=Név
+milestones.desc=Leírás
+milestones.due_date=Határidő (nem kötelező)
+milestones.clear=Törlés
+milestones.invalid_due_date_format=Érvénytelen határidő formátum, várt: 'éééé-hh-nn'.
+milestones.create_success=A mérföldkő ('%s') hozzáadása megtörtént!
+milestones.edit=Mérföldkő Szerkesztése
+milestones.edit_subheader=Használj egy jobb leírást a mérföldkövekhez, hogy ne zavarjon össze senkit.
+milestones.cancel=Mégse
+milestones.modify=Mérföldkő Szerkesztése
+milestones.edit_success=A mérföldkő ('%s') módosítása megtörtént!
+milestones.deletion=Mérföldkő Törlése
+milestones.deletion_desc=A mérföldkő törlésével minden vele kapcsolatos információ törlésre kerül a hibajegyekből. Folytatod?
+milestones.deletion_success=A mérföldkő törlése megtörtént!
+
+wiki=Wiki
+wiki.welcome=Üdv a Wiki-ben!
+wiki.welcome_desc=A Wiki az a hely, ahol közösen dokumentálhatod és teheted jobbá a projekted a többiekkel.
+wiki.create_first_page=Első oldal létrehozása
+wiki.page=Oldal
+wiki.filter_page=Oldal szűrése
+wiki.new_page=Új Oldal Létrehozása
+wiki.default_commit_message=Röviden foglald össze a módosításokat (nem kötelező).
+wiki.save_page=Oldal Mentése
+wiki.last_commit_info=%s módosította ezt az oldalt ekkor: %s
+wiki.edit_page_button=Szerkeszt
+wiki.new_page_button=Új oldal
+wiki.delete_page_button=Oldal Törlése
+wiki.delete_page_notice_1=Ez ki fogja törölni a(z) "%s" oldalt. Jól gondold meg.
+wiki.page_already_exists=Már létezik ilyen nevű oldal a Wiki-n.
+wiki.pages=Oldalak
+wiki.last_updated=Utoljára módosítva: %s
+
+settings=Beállítások
+settings.options=Beállítások
+settings.collaboration=Együttműködés
+settings.collaboration.admin=Admin
+settings.collaboration.write=Írás
+settings.collaboration.read=Olvasás
+settings.collaboration.undefined=Nem definiált
+settings.branches=Ágak
+settings.branches_bare=Egy üres tárolóban nem lehet ágakat kezelni. Töltsön fel először tartalmat.
+settings.default_branch=Alapértelmezett ág
+settings.default_branch_desc=Az alapértelmezett ág tartalmazza a kód "alapját", egyesítési kéréseket és online szerkesztési lehetőséget.
+settings.update=Frissítés
+settings.update_default_branch_unsupported=Az alapértelmezett ág cseréje nem támogatott a kiszolgálóra telepített GIT verzióban.
+settings.update_default_branch_success=Az alapértelmezett ág sikeresen frissítve!
+settings.protected_branches=Védett ágak
+settings.protected_branches_desc=A védett ágak megóvják a tárolót a véletlen törléstől és a force push-tól.
+settings.choose_a_branch=Válasszon egy ágat...
+settings.branch_protection=Ág védeleme
+settings.branch_protection_desc=Válassza a védett ág opciót ehhez az ághoz: %s.
+settings.protect_this_branch=Ezen ág védelme
+settings.protect_this_branch_desc=Letiltja az ág törlését és a force pusht.
+settings.protect_require_pull_request=Beolvasztási kérést követel meg a direkt küldés helyett
+settings.protect_require_pull_request_desc=Ennek az opciónak a bekapcsolásával letiltható a közvetlen küldés az ágra. A véglegesítéseket egy másik, nem védett ágra kell küldeni, majd beolvasztási kérést kell nyitni.
+settings.protect_whitelist_committers=Fehérlista, hogy ki push-olhat az ágra
+settings.protect_whitelist_committers_desc=Felhasználók vagy csoportok hozzáadása az ág közvetlen beküldési fehér listájára. A fehér listával ki lehet kerülni a kötelező beolvasztási kéréseket.
+settings.protect_whitelist_users=Felhasználók, akik push-olhatnak az ágra
+settings.protect_whitelist_search_users=Felhasználók keresése
+settings.protect_whitelist_teams=Csoportok, melyeknek tagjai pusholhatnak az ágra
+settings.protect_whitelist_search_teams=Csapatok keresése
+settings.update_protect_branch_success=Védelmi lehetőségek az ághoz sikeresen frissítve!
+settings.hooks=Webhook-ok
+settings.githooks=Git Hook-ok
+settings.basic_settings=Alapbeállítások
+settings.mirror_settings=Beállítások tükrözése
+settings.sync_mirror=Szinkronizálás
+settings.mirror_sync_in_progress=A tükör szinkronozálása folyamatban van, egy perc múlva frissítse az oldalt.
+settings.site=Hivatalos weboldal
+settings.update_settings=Beállítások mentése
+settings.change_reponame_prompt=Ez meg fogja változtatni a repository-ra mutató linkeket.
+settings.advanced_settings=Haladó beállítások
+settings.wiki_desc=Engedélyezi a wiki rendszert
+settings.use_internal_wiki=Beépített Wiki használata
+settings.allow_public_wiki_desc=Publikus hozzáférés engedélyezése a Wikihez ha a tároló privát
+settings.use_external_wiki=Külső wiki használata
+settings.external_wiki_url=Külső Wiki URL
+settings.external_wiki_url_desc=A látogatók ide lesznek átirányítva, ha a fülre kattintanak.
+settings.issues_desc=Hibajegykezelő engedélyezése
+settings.use_internal_issue_tracker=Beépített, egyszerű hibajegykezelő használata
+settings.allow_public_issues_desc=Publikus hozzáférés engedélyezése a problémákhoz ha a tároló privát
+settings.use_external_issue_tracker=Külső hibajegykezelő használata
+settings.external_tracker_url=Külső hibajegykezelő URL
+settings.external_tracker_url_desc=A látogatók ide lesznek átirányítva, ha a fülre kattintanak.
+settings.tracker_url_format=Külső Hibajegykezelő URL Formátuma
+settings.tracker_issue_style=Külső hibajegykezelő elnevezési stílus:
+settings.tracker_issue_style.numeric=Numerikus
+settings.tracker_issue_style.alphanumeric=Alfanumerikus
+settings.tracker_url_format_desc=Az alábbiak helyettesítik a felhasználónevet, repository nevet és hibajegy számot: {user} {repo} {index}.
+settings.pulls_desc=Beolvasztási kérések engedélyezése tárolók és ágak közi hozzájárulásokhoz
+settings.pulls.ignore_whitespace=Whitespacek figyelmen kívül hagyása
+settings.pulls.allow_rebase_merge=Rebase engedélyezése eggyesítő commitokhoz
+settings.danger_zone=Veszélyes terület
+settings.cannot_fork_to_same_owner=Nem másolható a tároló az eredeti tulajdonosához.
+settings.new_owner_has_same_repo=Az új tulaj már rendelkezik ilyen nevű repository-val. Kérlek, válassz másik nevet.
+settings.convert=Egyszerű Repository-vá Alakítás
+settings.convert_desc=Átalakíthatod ezt a tükrözött repository-t egyszerűvé. Nem visszavonható.
+settings.convert_notices_1=- Ez a művelet átalakítja ezt a tükör repository-t egy egyszerű repository-vá és nem vonható vissza.
+settings.convert_confirm=Átalakítás Megerősítése
+settings.convert_succeed=A repository típusa sikeresen egyszerűre lett módosítva.
+settings.transfer=Tulajdonjog átadása
+settings.transfer_desc=Tároló átadása másik felhasználónak vagy szervezetnek, ahol rendszergazdai jogosultsága van.
+settings.transfer_notices_1=- Ha az új tulaj egy felhasználó, elvész a hozzáférésed.
+settings.transfer_notices_2=- A hozzáférésed megmarad ha az új tulaj egy szervezet melynek tulajdonosai közt szerepelsz.
+settings.transfer_form_title=Kérlek, add meg a követező információt a művelet megerősítéséhez:
+settings.wiki_delete=Wiki adatok törlése
+settings.wiki_delete_desc=Miután kitörölted a wiki adatokat nincs visszaút. Jól gondold meg.
+settings.wiki_delete_notices_1=- Ez törli és kikapcsolja a wiki-t itt: %s
+settings.wiki_deletion_success=A repository-hoz tartozó wiki adatok törlése sikeres.
+settings.delete=Repository Törlése
+settings.delete_desc=Miután kitörölted a repository-t nincs visszaút. Jól gondold meg.
+settings.delete_notices_1=- Ez a művelet NEM vonható vissza.
+settings.delete_notices_2=- Ez a művelet véglegesen töröl minden repository-val kapcsolatos dolgot, beleértve a Git adatokat, hibajegyeket, megjegyzéseket és a közreműködők hozzáférési jogát.
+settings.delete_notices_fork_1=- Minden fork önállóvá válik a törlés után.
+settings.deletion_success=A tároló sikeresen törölve!
+settings.update_settings_success=A tároló beállításai sikeresen frissítve.
+settings.transfer_owner=Új tulajdonos
+settings.make_transfer=Átadás végrehajtása
+settings.transfer_succeed=A tároló tulajdonának átadása sikeresen megtörtént.
+settings.confirm_delete=Törlés megerősítése
+settings.add_collaborator=Új együttműködő hozzáadása
+settings.add_collaborator_success=Az eggyüttműködő hozzáadva.
+settings.delete_collaborator=Törlés
+settings.collaborator_deletion=Eggyüttműködő törlése
+settings.collaborator_deletion_desc=Ennek a felhasználónak nem lesz joga közreműködni a repository-hoz a törlés után. Biztos, hogy folytatni akarod?
+settings.remove_collaborator_success=Az eggyüttműködő eltávolítva.
+settings.search_user_placeholder=Felhasználók keresése...
+settings.org_not_allowed_to_be_collaborator=Szervezet hozzáadása együttműködőként nem engedélyezett.
+settings.hooks_desc=A Webhook-ok olyanok, mint az alapvető HTTP POST esemény triggerek. Amikor valami történik a Gogsban, akkor küldünk róla értesítést a címre amit beállítasz. Többet olvashatsz erről a Webhooks Guide-ban.
+settings.webhooks.add_new=Új webhook készítése:
+settings.webhooks.choose_a_type=Válassz egy típust...
+settings.add_webhook=Webhook hozzáadása
+settings.webhook_deletion=Webhook Törlése
+settings.webhook_deletion_desc=Ennek a Webhook-nak a törlése eltávolít róla minden információt, és a korábbi kézbesítéseknek a naplóját is. Biztosan folytatja?
+settings.webhook_deletion_success=Webhook sikeresen törölve lett!
+settings.webhook.test_delivery=Küldés Kipróbálása
+settings.webhook.test_delivery_desc=Egy hamis push esemény küldése, hogy a webhook beállításaidat kipróbálhasd
+settings.webhook.test_delivery_success=A teszt webhook hozzá lett adva a küldési listához. Eltelhet néhány másodperc mire meg fog jelenni a küldési listában.
+settings.webhook.redelivery=Újrabeküldés
+settings.webhook.redelivery_success=Hook '%s' újra felvéve a végrehajtási listába. Néhány másodpercbe telik, mire a kézbesítés belekerül a frissítési naplóba.
+settings.webhook.request=Kérés
+settings.webhook.response=Válasz
+settings.webhook.headers=Fejlécek
+settings.webhook.payload=Tartalom
+settings.webhook.body=Törzs
+settings.webhook.err_cannot_parse_payload_url=Nem sikerült feldolgozni a végpont URL címet: %v
+settings.webhook.url_resolved_to_blocked_local_address=Payload URL resolved to a local network address that is implicitly blocked.
+settings.githooks_desc=A GIT hook-okat maga a Git működteti, szerkesztheted a támogatott hook-ok fájljait a következő listában hogy egyéni műveleteket is végezzenek.
+settings.githook_edit_desc=Ha a hook nincs aktiválva, akkor egy minta sablon lesz mutatva. Ha a tartalmát üresen hagyja, akkor ez a hook ki lesz kapcsolva.
+settings.githook_name=Hook megnevezés
+settings.githook_content=Hook tartalom
+settings.update_githook=Hook frissítése
+settings.add_webhook_desc=A Gogs küldeni fog egy POST kérést az URL-re amit megadsz, azzal az eseménnyel együtt ami történt. Azt is megadhatod, hogy milyen formátumban tegye ezt (JSON, x-www-form-urlencoded, XML, stb). Több információt a Webhooks Guide-ban találhatsz róla.
+settings.payload_url=Tartalom URL
+settings.content_type=Tartalomtípus
+settings.secret=Titkos kód
+settings.secret_desc=A titkos kód a tartalom SHA256 HMAC hex digestjeként lesz küldve az X-Gogs-Signature fejlécben.
+settings.slack_username=Felhasználónév
+settings.slack_icon_url=Ikon URL
+settings.slack_color=Szín
+settings.event_desc=Mikor aktiválódjon ez a webhook?
+settings.event_push_only=Csak a push esemény.
+settings.event_send_everything=Minden esemény szükséges.
+settings.event_choose=Kiválasztom, amik kellenek.
+settings.event_create=Létrehoz
+settings.event_create_desc=Branch vagy tag létrehozva
+settings.event_delete=Törlés
+settings.event_delete_desc=Ág vagy cimke törölve
+settings.event_fork=Másolat
+settings.event_fork_desc=Tároló másolva
+settings.event_push=Push
+settings.event_push_desc=Push-olás egy repository-ba
+settings.event_issues=Problémák
+settings.event_issues_desc=A probléma meg left nyitva, le left zárva, újranyitva, szerkesztve, hozzárendelve, visszarendelve, cimkézve, cimketelenítve, mérföldkövezve, vagy mérföldkőtelenítve.
+settings.event_pull_request=Beolvasztási kérés
+settings.event_pull_request_desc=Beolvasztási kérés megnyitva, lezárva, újranyitva, hozzárendelve, visszarendelve, címkézve, címke eltávolítva, mérföldkövezve, mérföldkő eltávolítva vagy szinkronizálva.
+settings.event_issue_comment=Probléma hozzászólás
+settings.event_issue_comment_desc=Probléma megjegyzés létrehozva, szerkesztve vagy törölve.
+settings.event_release=Kiadás
+settings.event_release_desc=Kiadás publikálva a tárolóban.
+settings.active=Aktív
+settings.active_helper=A hook-ot aktiváló esemény részletei is továbbításra kerülnek.
+settings.add_hook_success=Új webhook hozzáadva.
+settings.update_webhook=Webhook Frissítése
+settings.update_hook_success=A webhook frissítve.
+settings.delete_webhook=Webhook Törlése
+settings.recent_deliveries=Legutóbbi Küldések
+settings.hook_type=Hook Típusa
+settings.add_slack_hook_desc=Slack integráció hozzáadása a repository-hoz.
+settings.add_discord_hook_desc=Discord integráció hozzáadva a térolóhoz.
+settings.add_dingtalk_hook_desc=Dingtalk integráció hozzáadása a tárolóhoz.
+settings.slack_token=Token
+settings.slack_domain=Domain
+settings.slack_channel=Csatorna
+settings.deploy_keys=Deploy kulcsok
+settings.deploy_keys_helper=Hasznos tipp! ha saját személyes publikus kulcsait szeretné hozzáadni, azt a fiók beállítások oldalon teheti meg.
+settings.add_deploy_key=Deploy Kulcs Hozzáadása
+settings.deploy_key_desc=A deploy kulcsok csak olvasásra jogosítanak fel, nem azonosak a személyes SSH kulcsokkal.
+settings.no_deploy_keys=Még nem adott hozzá deploy kulcsot.
+settings.title=Név
+settings.deploy_key_content=Tartalom
+settings.key_been_used=Deploy kulcs tartalma már fel lett használva.
+settings.key_name_used=Már létezik ilyen nevű deploy kulcs.
+settings.add_key_success=Az új deploy kulcsot ('%s') sikeresen hozzáadtuk!
+settings.deploy_key_deletion=Deploy Kulcs Törlése
+settings.deploy_key_deletion_desc=A deploy kulcs törlése minden kapcsolódó hozzáférést töröl a repository-ból. Biztosan folytatod?
+settings.deploy_key_deletion_success=A deploy kulcs sikeresen törölve!
+settings.description_desc=Tároló leírása. Maximum 512 karakter hosszúságú.
+settings.description_length=Rendelkezésre álló karakterek
+
+diff.browse_source=Forráskód Böngészése
+diff.parent=szülő
+diff.commit=commit
+diff.data_not_available=Diff Adat Nem Elérhető.
+diff.show_diff_stats=Diff Statisztika Mutatása
+diff.show_split_view=Osztott Nézet
+diff.show_unified_view=Egyesített Nézet
+diff.stats_desc= %d módosított fájl, %d hozzáadás és %d törlés
+diff.bin=BIN
+diff.view_file=Fájl Megtekintése
+diff.file_suppressed=A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+diff.too_many_files=Nem az összes módosított fájl került megjelenítésre, mert túl sok fájl változott
+
+release.releases=Kiadások
+release.new_release=Új Kiadás
+release.draft=Piszkozat
+release.prerelease=Elő-Kiadás
+release.edit=szerkesztés
+release.ahead=%d commit a %s branch-on a kiadás óta
+release.source_code=Forráskód
+release.new_subheader=Publikáljon kiadásokat a termék iterációjához.
+release.edit_subheader=A részletes változási naplók segítenek a módosítások megértésben.
+release.tag_name=Címke neve
+release.target=Cél
+release.tag_helper=Válassz egy meglévő tag-et vagy hozz létre egyet publikáláskor.
+release.title=Név
+release.content=Tartalom
+release.write=Írás
+release.preview=Előnézet
+release.loading=Töltés...
+release.prerelease_desc=Kiadás előtti
+release.prerelease_helper=Megjelöljük, hogy a kiadás nem használatkész.
+release.cancel=Mégse
+release.publish=Kiadás közzététele
+release.save_draft=Piszkozat mentése
+release.edit_release=Kiadás szerkesztése
+release.delete_release=Kiadás törlése
+release.deletion=Kiadás törlése
+release.deletion_desc=A kiadás törlésével a kapcsolódó cimke is törlésre kerül. A tárolóban adatvesztés is előfodulhat. Szeretné folytatni?
+release.deletion_success=A kiadás sikeresen törölve lett!
+release.tag_name_already_exist=Kiadás ilyen cimkével már létezik.
+release.tag_name_invalid=Érvénytelen cimkenév.
+release.downloads=Letöltések
+
+[org]
+org_name_holder=Szervezet neve
+org_full_name_holder=Szervezet teljes neve
+org_name_helper=A jó szervezetnevek rövidek és könnyen megjegyezhetőek.
+create_org=Szervezet létrehozása
+repo_updated=Frissítve
+people=Emberek
+invite_someone=Meghívás
+teams=Csapatok
+lower_members=tag
+lower_repositories=tároló
+create_new_team=Új csapat létrehozása
+org_desc=Leírás
+team_name=Csapat neve
+team_desc=Leírás
+team_name_helper=Ezzel a névvel tudsz majd a csapatra hivatkozni.
+team_desc_helper=Miről szól ez a csapat?
+team_permission_desc=Milyen jogosultsága legyen ennek a csapatnak?
+
+form.name_not_allowed=A szervezetnév, vagy minta '%q' nem engedélyezett.
+form.team_name_not_allowed=A '%q' csapatnév, vagy minta nem engedélyezett
+
+settings=Beállítások
+settings.options=Opciók
+settings.full_name=Teljes név
+settings.website=Weboldal
+settings.location=Hely
+settings.update_settings=Beállítások frissítése
+settings.update_setting_success=A szervezeti beállításai sikeresen frissültek.
+settings.change_orgname_prompt=Ez meg fogja változtatni a szervezet tárolóira mutató linkeket.
+settings.update_avatar_success=A szervezet profilképe sikeresen frissítve lett.
+settings.delete=Szervezet törlése
+settings.delete_account=Szervezet törlése
+settings.delete_prompt=A szervezet véglegesen eltávolításra kerül, ez a művelet VISSZAVONHATATLAN!
+settings.confirm_delete_account=Törlés megerősítése
+settings.delete_org_title=Szervezet törlése
+settings.delete_org_desc=Ez a szervezet véglegesen törlésre kerül, biztosan folytatja?
+settings.hooks_desc=Adj hozzá webhook-okat amik minden szervezeten belüli repository által aktiválódnak.
+
+members.membership_visibility=Tagság Láthatósága:
+members.public=Nyilvános
+members.public_helper=priváttá tétel
+members.private=Privát
+members.private_helper=nyilvánossá tétel
+members.member_role=Szerepkör:
+members.owner=Tulajdonos
+members.member=Tag
+members.remove=Eltávolítás
+members.leave=Elhagyás
+members.invite_desc=Tag hozzáadása a(z) %s szervezethez:
+members.invite_now=Meghívás Most
+
+teams.join=Csatlakozás
+teams.leave=Elhagyás
+teams.read_access=Olvasási Jog
+teams.read_access_helper=Ez a csapat képes lesz megtekinteni és klónozni a saját repository-jait.
+teams.write_access=Írási Jog
+teams.write_access_helper=Ez a csapat képes lesz olvasni a repository-jait és push-olni is tud beléjük.
+teams.admin_access=Adminisztrátori Jog
+teams.admin_access_helper=Ez a csapat képes lesz írni/olvasni a repository-jait és hozzájuk tud majd adni közreműködőket.
+teams.no_desc=Ennek a csapatnak nincs leírása
+teams.settings=Beállítások
+teams.owners_permission_desc=A tulajdonosoknak teljes hozzáférése van minden repository-hoz és adminisztrátori joguk van a szervezethez.
+teams.members=Csapattagok
+teams.update_settings=Beállítások mentése
+teams.delete_team=Csapat Törlése
+teams.add_team_member=Csapattag hozzáadása
+teams.delete_team_title=Csapat Törlése
+teams.delete_team_desc=Mivel a csapat törlésre kerül, a tagjai elveszíthetik a hozzáférésüket néhány repository-hoz. Folytatod?
+teams.delete_team_success=A csapat sikeresen törölve.
+teams.read_permission_desc=A csoport olvasási jogosultságai: a tagok olvasási jogosultsággal rendelkeznek a csoport tárolóihoz.
+teams.write_permission_desc=A csoport írási jogosultságai: a tagok olvasási és írási jogosultsággal rendelkeznek a csoport tárolóihoz.
+teams.admin_permission_desc=A csoport adminisztátori jogosultságai: a tagok olvasási, írási jogosultsággal rendelkeznek és együttműködőket adhatnak hozzá a csoport tárolóihoz.
+teams.repositories=Csoport tárolók
+teams.search_repo_placeholder=Tároló keresés...
+teams.add_team_repository=Új csapat szintű tároló
+teams.remove_repo=Eltávolítás
+teams.add_nonexistent_repo=A tároló, melybe feltölteni szeretne, még nem létezik, először hozza létre.
+
+[admin]
+dashboard=Vezérlőpult
+users=Felhasználók
+organizations=Szervezetek
+repositories=Tárolók
+authentication=Hitelesítés
+config=Konfiguráció
+notices=Rendszer-értesítés
+monitor=Figyelés
+first_page=Első
+last_page=Utolsó
+total=Összesen: %d
+
+dashboard.build_info=Program építési információi
+dashboard.app_ver=Alkalmazás verziója
+dashboard.git_version=Git verzió
+dashboard.go_version=Go verzió
+dashboard.build_time=Program építésének időtartama
+dashboard.build_commit=Program építési commit-ja
+dashboard.statistic=Statisztika
+dashboard.operations=Műveletek
+dashboard.system_status=Rendszerfigyelő Állapota
+dashboard.statistic_info=Az adatbázisban található: %d felhasználó, %d szervezet, %d publikus kulcs, %d tároló, %d figyelő, %d csillagozás, %d művelet, %d hozzáférés, %d probléma, %d megjegyzés, %d közösségi fiók, %d követő, %d tükör, %d kiadás, %d authentikáció, %d webhook, %d mérföldkő, %d cimke, %d hook feladat, %d csoport, %d frissítési feladat, %d csatolmány.
+dashboard.operation_name=Művelet neve
+dashboard.operation_switch=Átváltás
+dashboard.select_operation_to_run=Kérlek válaszd ki a futtatandó műveletet
+dashboard.operation_run=Futtatás
+dashboard.clean_unbind_oauth=A nem használt OAuthok kitakarítása
+dashboard.clean_unbind_oauth_success=Minden nem használt OAuth sikeresen kitakarítva.
+dashboard.delete_inactivate_accounts=Minden inaktív fiók törlése
+dashboard.delete_inactivate_accounts_success=Minden inaktív fiók sikeresen törölve.
+dashboard.delete_repo_archives=Összes tároló archívum törlése
+dashboard.delete_repo_archives_success=Az összes tároló archívum sikeresen törölve lett.
+dashboard.delete_missing_repos=Az összes tárolóban az elveszett GIT fájl rekordok törlése
+dashboard.delete_missing_repos_success=Az összes elveszett rekordfájl sikeresen törölve a tárolókban.
+dashboard.git_gc_repos=Memóriaszemét-gyüjtő futtatása az összes tárolón
+dashboard.git_gc_repos_success=Minden repository sikeresen elvégezte a szemétszedést.
+dashboard.resync_all_sshkeys='.ssh/authorized_keys' file újraírása (figyelem: nem Gogs által hozzáadott kulcsok elvesznek)
+dashboard.resync_all_sshkeys_success=Minden publikus kulcs sikeresen újraírva.
+dashboard.resync_all_hooks=pre-receive, update és post-receive hook-ok újraszinkronizálása az összes repository-ban
+dashboard.resync_all_hooks_success=Az összes tároló pre-receive, update és post-receive hook-ja sikeresen szinkronizálva lett.
+dashboard.reinit_missing_repos=Az összes tárolóban az elveszett GIT fájl rekordok újrainicializálása
+dashboard.reinit_missing_repos_success=Az összes elveszett rekordfájl sikeresen újrainicializálva a tárolókban.
+
+dashboard.server_uptime=Kiszolgáló futási ideje
+dashboard.current_goroutine=Aktuális Gorutinok
+dashboard.current_memory_usage=Jelenlegi memória használat
+dashboard.total_memory_allocated=Teljes lefoglalt memória
+dashboard.memory_obtained=Megszerzett memória
+dashboard.pointer_lookup_times=Mutató követési idő
+dashboard.memory_allocate_times=Memória foglalási idők
+dashboard.memory_free_times=Memória felszabadítási idők
+dashboard.current_heap_usage=Aktuális heap használat
+dashboard.heap_memory_obtained=Megszerzett heap memória
+dashboard.heap_memory_idle=Tétlen heap memória
+dashboard.heap_memory_in_use=Használatban lévő heap memória
+dashboard.heap_memory_released=Elengedett heap memória
+dashboard.heap_objects=Heap objektumok
+dashboard.bootstrap_stack_usage=Bootstrap stack használat
+dashboard.stack_memory_obtained=Stack memória megszerezve
+dashboard.mspan_structures_usage=MSpan Struktúrák Használata
+dashboard.mspan_structures_obtained=MSpan Struktúrák Megszerezve
+dashboard.mcache_structures_usage=MCache Struktúrák Használata
+dashboard.mcache_structures_obtained=MCache Struktúrák Megszerezve
+dashboard.profiling_bucket_hash_table_obtained=Profilozó Bucket Hash Tábla Megszerezve
+dashboard.gc_metadata_obtained=GC Metaadat Megszerezve
+dashboard.other_system_allocation_obtained=Másik Rendszer Allokáció Megszerezve
+dashboard.next_gc_recycle=Következő szemétgyűjtő (GC) ciklus
+dashboard.last_gc_time=Utolsó szemétgyyűjtés (GC) óta eltelt idő
+dashboard.total_gc_time=Teljes GC szünet
+dashboard.total_gc_pause=Teljes GC szünet
+dashboard.last_gc_pause=Utolsó GC szünet
+dashboard.gc_times=GC futások
+
+users.user_manage_panel=Felhasználó kezelő Panel
+users.new_account=Új Fiók Létrehozása
+users.name=Név
+users.activated=Aktivált
+users.admin=Admin
+users.repos=Tárolók
+users.created=Létrehozva
+users.send_register_notify=Regisztráció értesítés küldése a felhasználónak
+users.new_success=Az új fiók ('%s') sikeresen létrehozva.
+users.edit=Szerkesztés
+users.auth_source=Hitelesítési forrás
+users.local=Helyi
+users.auth_login_name=Hitelesítési bejelentkezési név
+users.password_helper=Hagy üresen, hogy változatlan maradjon.
+users.update_profile_success=Profil frissítése sikeresen megtörtént.
+users.edit_account=Fiók szerkesztése
+users.max_repo_creation=Tárolók maximális számának korlátja
+users.max_repo_creation_desc=(Állítsa -1-re, hogy az alapértelmezett limitet használatához)
+users.is_activated=Ez a fiók aktivált
+users.prohibit_login=Ez a fiók le van tiltva
+users.is_admin=Ez a fiók rendszergazdai jogokkal rendelkezik
+users.allow_git_hook=Ez a fiók létrehozhat GIT Hook-okat
+users.allow_import_local=Ez a fiók rendelkezik jogosultsággal a helyi tárolókat importálásához
+users.update_profile=Fiók frissítése
+users.delete_account=A fiók törlése
+users.still_own_repo=A fiókja még legalább egy tároló tulajdonosa, először törölnie kell őket vagy átadni másnak a tulajdonjogaikat.
+users.still_has_org=Ez a felhasználó még mindig tagja legalább egy szervezetnek, először távoznia kell onnan, vagy a szervezetet törölni.
+users.deletion_success=Fiók sikeresen törölve!
+
+orgs.org_manage_panel=Szervezetek kezelése panel
+orgs.name=Név
+orgs.teams=Csapatok
+orgs.members=Tagok
+
+repos.repo_manage_panel=Tárolók kezelése panel
+repos.owner=Tulajdonos
+repos.name=Név
+repos.private=Privát
+repos.watches=Figyelők
+repos.stars=Csillagok
+repos.issues=Problémák
+repos.size=Méret
+
+auths.auth_sources=Hitelesítési források
+auths.new=Új forrás hozzáadása
+auths.name=Név
+auths.type=Típus
+auths.enabled=Engedélyezett
+auths.default=Alapértelmezett
+auths.updated=Frissítve
+auths.auth_type=Hitelesítés típusa
+auths.auth_name=Hitelesítési név
+auths.security_protocol=Biztonsági protokoll
+auths.domain=Tartomány
+auths.host=Állomás
+auths.port=Port
+auths.bind_dn=Bind DN
+auths.bind_dn_helper=Használhatja a '%s'-t felhasználónév helyett, pl.: DOM\%s
+auths.bind_password=Bind jelszó
+auths.bind_password_helper=Figyelmeztetés: Ez a jelszó egyszerű szöveges formátumban kerül metésre. Ne használjon egy magas szintű jogosultsággal rendelkező fiókot.
+auths.user_base=Felhasználókeresés alapja
+auths.user_dn=A felhasználók tartománya
+auths.attribute_username=Felhasználónév attribútum
+auths.attribute_username_placeholder=Hagy üresen, hogy a bejelentkező form felhasználónév mezőjét használja.
+auths.attribute_name=Vezetéknév attribútum
+auths.attribute_surname=Keresztnév attribútum
+auths.attribute_mail=E-mail attribútum
+auths.verify_group_membership=Csoport tagság ellenőrzése
+auths.group_search_base_dn=Csoportos keresés DN alapja
+auths.group_filter=Csoport szűrő
+auths.group_attribute_contain_user_list=Felhasználó listát tartalmazó csoport attribútum
+auths.user_attribute_listed_in_group=Felhasználónév attribútum a csoportban
+auths.attributes_in_bind= Attribútumok lekérdezése a DN környezetben
+auths.filter=Felhasználói szűrő
+auths.admin_filter=Rendszergazdai szűrő
+auths.ms_ad_sa=Microsoft Active Directory SA
+auths.smtp_auth=SMTP-hitelesítés típusa
+auths.smtphost=SMTP kiszolgáló
+auths.smtpport=SMTP Port
+auths.allowed_domains=Engedélyezett tartományok
+auths.allowed_domains_helper=Hagyja üresen, hogy ne legyen egyetlen domain sem korlátozva. Ha több domaint szeretne felvenni, akkor vesszővel válassza el őket ','.
+auths.enable_tls=TLS titkosítás engedélyezése
+auths.skip_tls_verify=TLS ellenőrzése mellőzése
+auths.pam_service_name=PAM szolgáltatás neve
+auths.enable_auto_register=Automatikus regisztráció engedélyezése
+auths.edit=Hitelesítési beállítások szerkesztése
+auths.activated=Ez a hitelesítés mód aktiválva van
+auths.default_auth=Ez a hitelesítés az alapértelmezett bejelentkezési forrás
+auths.new_success=Az új hitelesítési mód '%s' sikeresen hozzáadva.
+auths.update_success=A hitelesítési beállítások sikeresen firssítve lettek.
+auths.update=Hitelesítési forrás frissítése
+auths.delete=A hitelesítési forrás törlése
+auths.delete_auth_title=Hitelesítési forrás törlés
+auths.delete_auth_desc=A hitelesítési mód törlésre kerül, biztosan folytatni szeretné?
+auths.still_in_used=A hitelesítési mód még használatban van, mielőtt törölné válasszon más hitelesítési módot az érintett fiókokhoz.
+auths.deletion_success=Hitelesítési forrás sikeresen törölve!
+auths.login_source_exist=Bejelentkezési forrás "%s" már létezik.
+auths.github_api_endpoint=API végpont
+
+config.not_set=(nincs beállítva)
+config.server_config=Kiszolgáló konfiguráció
+config.brand_name=Oldalnév kiválasztása
+config.run_user=Futtató felhasználó
+config.run_mode=Futtatás módja
+config.server.external_url=Külső URL
+config.server.domain=Domain
+config.server.protocol=Protokoll
+config.server.http_addr=HTTP cím
+config.server.http_port=HTTP port
+config.server.cert_file=Tanusítvány fájl
+config.server.key_file=Kulcsfájl
+config.server.tls_min_version=Legalacsonyabb TLS verzió
+config.server.unix_socket_permission=Unix socket engedély
+config.server.local_root_url=Helyi gyökér URL
+config.server.offline_mode=Offline mód
+config.server.disable_router_log=Disable router log
+config.server.enable_gzip=Gzip bekapcsolása
+config.server.app_data_path=Alkalmazás adatok elérési útvonala
+config.server.load_assets_from_disk=Program hozzávalók betöltése lemezről
+config.server.landing_url=Beérkezési URL
+
+config.ssh_config=SSH konfiguráció
+config.ssh.enabled=Bekapcsolva
+config.ssh.domain=Külső domain
+config.ssh.port=Nyitott port
+config.ssh.root_path=Gyökér elérési útvonal
+config.ssh.keygen_path=ssh-keygen elérési útvonala
+config.ssh.key_test_path=Kulcs ellenőrzés útvonala
+config.ssh.minimum_key_size_check=Minimális kulcsméret ellenőrzés
+config.ssh.minimum_key_sizes=Kulcsok minimális mérete
+config.ssh.rewrite_authorized_keys_at_start=SSH "authorized_keys" fájl újraírása indításnál
+config.ssh.start_builtin_server=Beépített kiszolgáló indítása
+config.ssh.listen_host=Hallgatási cím
+config.ssh.listen_port=Hallgatási port
+config.ssh.server_ciphers=Kiszolgáló titkosítás módszerei
+config.ssh.server_macs=Server MACs
+config.ssh.server_algorithms=Server algorithms
+
+config.repo_config=Tároló konfiguráció
+config.repo.root_path=Gyökér elérési útvonal
+config.repo.script_type=Szkript típus
+config.repo.ansi_chatset=ANSI karakterkészlet
+config.repo.force_private=Privát erőltetése
+config.repo.max_creation_limit=Maximum repo létrehozási korlát
+config.repo.preferred_licenses=Előnyben részesített licencek
+config.repo.disable_http_git=HTTP-n keresztüli git kikapcsolása
+config.repo.enable_local_path_migration=Engedélyezi a migrációt helyi elérési út alapján
+config.repo.enable_raw_file_render_mode=nyers fájl kijelzés bekapcsolása
+config.repo.commits_fetch_concurrency=Commits fetch concurrency
+config.repo.editor.line_wrap_extensions=Editor line wrap extensions
+config.repo.editor.previewable_file_modes=Editor previewable file modes
+config.repo.upload.enabled=Feltöltés bekapcsolva
+config.repo.upload.temp_path=Ideiglenes feltöltési útvonal
+config.repo.upload.allowed_types=Feltöltésnél engedélyezett típusok
+config.repo.upload.file_max_size=Maximálisan feltölthető fájlméret
+config.repo.upload.max_files=Upload files limit
+
+config.db_config=Adatbázis konfiguráció
+config.db.type=Típus
+config.db.host=Kiszolgáló
+config.db.name=Név
+config.db.schema=Schema
+config.db.schema_helper=(for "postgres" only)
+config.db.user=Felhasználó
+config.db.ssl_mode=SSL mód
+config.db.ssl_mode_helper=(csak "postgres" esetében)
+config.db.path=Útvonal
+config.db.path_helper=(csak "sqlite3" esetében)
+config.db.max_open_conns=Maximum egyszerre nyitott csatlakozások
+config.db.max_idle_conns=Maximum tétlen kapcsolatok száma
+
+config.security_config=Biztonsági beállítások
+config.security.login_remember_days=Bejelentkezési adatok megjegyzésének napjai
+config.security.cookie_remember_name=Emlékezési süti elnevezése
+config.security.cookie_username=Felhasználónév süti
+config.security.cookie_secure=Biztonságos sütik engedélyezése
+config.security.reverse_proxy_auth_user=Fordított proxy hitelesítési fejléc
+config.security.enable_login_status_cookie=Bejelentkezési állapot süti bekapcsolása
+config.security.login_status_cookie_name=Bejelentkezési állapot süti neve
+config.security.local_network_allowlist=Local network allowlist
+
+config.email_config=E-mail beállítások
+config.email.enabled=Bekapcsolva
+config.email.subject_prefix=Tárgy előtag
+config.email.host=Kiszolgáló
+config.email.from=Tól/től
+config.email.user=Felhasználó
+config.email.disable_helo=HELO letiltása
+config.email.helo_hostname=HELO állományneve
+config.email.skip_verify=Tanusítvány igazolásának átugrása
+config.email.use_certificate=Egyedi tanusítvány használata
+config.email.cert_file=Tanusítvány fájl
+config.email.key_file=Kulcsfájl
+config.email.use_plain_text=Sima szöveg (plaintext) használata
+config.email.add_plain_text_alt=Sima szöveg (plaintext) alternatív szövege
+config.email.send_test_mail=Teszt e-mail küldése
+config.email.test_mail_failed=Nem sikerült kiküldeni a teszt e-mailt '%s'-nek: %v
+config.email.test_mail_sent=Teszt e-mail kiküldve '%s'-nek.
+
+config.auth_config=Hitelesítési beállítások
+config.auth_custom_logout_url=Custom logout URL
+config.auth.activate_code_lives=Activate code lives
+config.auth.reset_password_code_lives=Jelszó visszaállítási kód élettartama
+config.auth.require_email_confirm=E-mail megerősítés szükségessé tétele
+config.auth.require_sign_in_view=Bejelentkező nézet követelése
+config.auth.disable_registration=Regisztráció kikapcsolása
+config.auth.enable_registration_captcha=CAPTCHA engedélyezése regisztrációhoz
+config.auth.enable_reverse_proxy_authentication=Fordított proxy hitelesítés bekapcsolása
+config.auth.enable_reverse_proxy_auto_registration=Fordított proxy automatikus regisztrációjának bekapcsolása
+config.auth.reverse_proxy_authentication_header=Fordított proxy hitelesítési fejléc
+
+config.user_config=Felhasználói beállítások
+config.user.enable_email_notify=Email értesítés engedélyezése
+
+config.session_config=Munkamenet beállítások
+config.session.provider=Session ellátó
+config.session.provider_config=Session ellátó konfigurációja
+config.session.cookie_name=Süti
+config.session.https_only=Csak HTTPS
+config.session.gc_interval=Szemétgyűjtés intervalluma
+config.session.max_life_time=Maximális élettartam
+config.session.csrf_cookie_name=CSRF süti neve
+
+config.cache_config=Cache beállítás
+config.cache.adapter=Adapter
+config.cache.interval=Szemétgyűjtés intervalluma
+config.cache.host=Kiszolgáló
+
+config.http_config=HTTP beállítások
+config.http.access_control_allow_origin=Access-Control-Allow-Origin fejléc
+
+config.attachment_config=Melléklet beállítás
+config.attachment.enabled=Bekapcsolva
+config.attachment.path=Elérési útvonal
+config.attachment.allowed_types=Engedélyezett típusok
+config.attachment.max_size=Maximum méret
+config.attachment.max_files=Maximálisan feltölthető fájlok mennyisége
+
+config.release_config=Szoftver kiadás beállítás
+config.release.attachment.enabled=Mellékletek bekapcsolva
+config.release.attachment.allowed_types=Engedélyezett melléklet típusok
+config.release.attachment.max_size=Melléklet maximális mérete
+config.release.attachment.max_files=Maximális mellékelt fájlok mennyisége
+
+config.picture_config=Kép beállítások
+config.picture.avatar_upload_path=Profilkép feltöltési útvonal
+config.picture.repo_avatar_upload_path=Repository kép feltöltési útvonal
+config.picture.gravatar_source=Gravatar forrás
+config.picture.disable_gravatar=Gravatar Kikapcsolása
+config.picture.enable_federated_avatar=Enable federated avatars
+
+config.mirror_config=Tükrözés beállítás
+config.mirror.default_interval=Alapértelmezett intervallum
+
+config.webhook_config=Webhook beállítás
+config.webhook.types=Típusok
+config.webhook.deliver_timeout=Kézbesítési időtúllépés
+config.webhook.skip_tls_verify=TLS ellenőrzés kihagyása
+
+config.git_config=Git konfiguráció
+config.git.disable_diff_highlight=Különbségi szintakszis kiemelésének kikapcsolása
+config.git.max_diff_lines=Diff lines limit (for a single file)
+config.git.max_diff_line_characters=Diff characters limit (for a single line)
+config.git.max_diff_files=Diff files limit (for a single diff)
+config.git.gc_args=Szemétgyűjtő (GC) argumentumok
+config.git.migrate_timeout=Migráció időtúllépés
+config.git.mirror_timeout=Tükör fetch időtúllépés
+config.git.clone_timeout=Klónozási időtúllépés
+config.git.pull_timeout=Lehúzási időtúllépés
+config.git.gc_timeout=Szemétgyűjtés időtúllépése
+
+config.lfs_config=LFS Beállítások
+config.lfs.storage=Tárhely
+config.lfs.objects_path=Objektumok elérési útvonala
+
+config.log_config=Naplózás beállítása
+config.log_file_root_path=Naplófájl gyökérútvonal
+config.log_mode=Mód
+config.log_options=Opciók
+
+monitor.cron=Cron feladatok
+monitor.name=Név
+monitor.schedule=Ütemezés
+monitor.next=Legközelebb
+monitor.previous=Legutóbb
+monitor.execute_times=Végrehajtási idő
+monitor.process=Futó folyamatok
+monitor.desc=Leírás
+monitor.start=Kezdési időpont
+monitor.execute_time=Végrehajtási idő
+
+notices.system_notice_list=Rendszer-értesítés
+notices.view_detail_header=Értesítés részletei
+notices.actions=Műveletek
+notices.select_all=Összes kiválasztása
+notices.deselect_all=Összes kijelölés törlése
+notices.inverse_selection=A kijelölés megfordítása
+notices.delete_selected=Kiválasztottak törlése
+notices.delete_all=Minden értesítés törlése
+notices.type=Típus
+notices.type_1=Tároló
+notices.desc=Leírás
+notices.op=Op.
+notices.delete_success=A rendszer értesítések sikeresen törölve.
+
+[action]
+create_repo=létrehozott tárolót: %s
+rename_repo=átnevezte a %[1]s tárolót %[3]s-ra
+commit_repo=feltöltött a %[3]s ágba ide: %[4]s
+compare_commits=%d commit összehasonlítása
+transfer_repo=áthelyezett egy tárolót innen: %s ide: %s
+create_issue=`problémát jelentett: %s#%[2]s`
+close_issue=`megoldott egy problémát: %s#%[2]s`
+reopen_issue=`újranyitott egy problémát: %s#%[2]s`
+comment_issue=`hozzászólt egy problémához: %s#%[2]s`
+create_pull_request=`létrehozott egy beolvasztási kérést: %s#%[2]s`
+close_pull_request=`lezárt egy beolvasztási kérést: %s#%[2]s`
+reopen_pull_request=`újranyitott egy beolvasztási kérést: %s#%[2]s`
+merge_pull_request=`egyesített egy beolvasztási kérést: %s#%[2]s`
+create_branch=létrehozott egy új %[3]s ágat ebben: %[4]s
+delete_branch=törölt egy ágat %[2]s ekkor: %[3]s
+push_tag=feltöltött egy cimkét: %[2]s ide: %[3]s
+delete_tag=törölt egy cimkét %[2]s ekkor: %[3]s
+fork_repo=lemásolta a(z) %s tárolót
+mirror_sync_push=commitok szinkronizálva a %[3]s ágba a %[4]s tárolóban, tükörről
+mirror_sync_create=új hivatkozás szinkronizálva: %[2]s a %[3]s tárolóban, tükörről
+mirror_sync_delete=szinkronizálva és törölve a %[2]s hivatkozás a %[3]s tárolóból, tükörről
+
+[tool]
+ago=
+from_now=mostantól
+now=most
+1s=1 másodperce %s
+1m=1 perce %s
+1h=1 órája %s
+1d=1 napja %s
+1w=1 hete %s
+1mon=1 hónapja %s
+1y=1 éve %s
+seconds=%d másodperce %s
+minutes=%d perce %s
+hours=%d órája %s
+days=%d napja %s
+weeks=%d hete %s
+months=%d hónapja %s
+years=%d éve %s
+raw_seconds=másodperc
+raw_minutes=perc
+raw_hours=órák
+
+[dropzone]
+default_message=Húzz ide fájlokat vagy kattints a feltöltéshez.
+invalid_input_type=Ilyen típusú fájlt nem tölthetsz fel.
+file_too_big=A fájl mérete ({{filesize}} MB) meghaladja a feltölthető legnagyobb méretet ({{maxFilesize}} MB).
+remove_file=Fájl(ok) eltávolítása
+
diff --git a/conf/locale/locale_id-ID.ini b/conf/locale/locale_id-ID.ini
new file mode 100644
index 00000000000..7b1fe574ee2
--- /dev/null
+++ b/conf/locale/locale_id-ID.ini
@@ -0,0 +1,1434 @@
+app_desc=Sebuah layanan Git hosting-pribadi yang mudah
+
+home=Halaman utama
+dashboard=Dasbor
+explore=Jelajahi
+help=Bantuan
+sign_in=Masuk
+sign_out=Keluar
+sign_up=Daftar
+register=Daftar
+website=Situs web
+page=Halaman
+template=Templat
+language=Bahasa
+create_new=Buat...
+user_profile_and_more=Profil pengguna dan lebih
+signed_in_as=Masuk sebagai
+
+username=Nama pengguna
+email=Email
+password=Sandi
+re_type=Ketik ulang
+captcha=Captcha
+
+repository=Repositori
+organization=Organisasi
+mirror=Mirror
+new_repo=Repositori Baru
+new_migrate=Migrasi Baru
+new_mirror=Mirror Baru
+new_fork=Cabang Repositori Baru
+new_org=Organisasi Baru
+manage_org=Mengelola Organisasi
+admin_panel=Panel Admin
+account_settings=Pengaturan Akun
+settings=Pengaturan
+your_profile=Profile Anda
+your_settings=Pengaturanmu
+
+activities=Aktivitas
+pull_requests=Permintaan Tarik
+issues=Masalah
+
+cancel=Batal
+
+[status]
+page_not_found=Halaman tidak ditemukan
+internal_server_error=Kesalahan Server Internal
+
+[install]
+install=Instalasi
+title=Langkah-langkah untuk Menjalankan Pertama Kali
+docker_helper=Jika Anda menjalankan Gogs dalam Docker, silakan baca Petunjuk dengan hati-hati sebelum Anda mengubah sesuatu di Halaman ini!
+requite_db_desc=Gogs memerlukan MySQL, PostgreSQL, SQLite3 atau TiDB.
+db_title=Pengaturan Basisdata
+db_type=Tipe Basisdata
+host=Host
+user=Pengguna
+password=Sandi
+db_name=Nama Basisdata
+db_schema=Skema
+db_helper=Harap menggunakan INNODB engine dengan charset utf8_general_ci untuk MySQL.
+ssl_mode=Mode SSL
+path=Path
+sqlite_helper=Path berkas SQLIte3 database. Silakan menggunakan path absolut ketika Anda memulai sebagai layanan.
+err_empty_db_path=SQLite3 database path tak boleh kosong.
+no_admin_and_disable_registration=Anda tidak dapat menonaktifkan pendaftaran tanpa membuat akun admin.
+err_empty_admin_password=Sandi admin tidak boleh kosong.
+
+general_title=Pengaturan Umum Aplikasi
+app_name=Nama Aplikasi
+app_name_helper=Letakkan nama organisasi Anda di sini dengan besar dan keras!
+repo_path=Path akar repositori
+repo_path_helper=Semua repositori Git akan disimpan ke direktori ini.
+run_user=Menjalankan pengguna
+run_user_helper=Pengguna harus memiliki akses ke path akar repositori dan menjalankan Gogs.
+domain=Domain
+domain_helper=Ini memengaruhi URL kloning SSH.
+ssh_port=Port SSH
+ssh_port_helper=Nomor port yang menggunakan SSH server, biarkan kosong untuk menonaktifkan fitur SSH.
+use_builtin_ssh_server=Menggunakan Builtin SSH Server
+use_builtin_ssh_server_popup=Mulai dibangun di server SSH untuk operasi Git untuk membedakan daemon sistem SSH.
+http_port=Port HTTP
+http_port_helper=Nomor port aplikasi.
+app_url=URL Aplikasi
+app_url_helper=Ini mempengaruhi URL klon HTTP/HTTPS dan di suatu tempat dalam email.
+log_root_path=Path log
+log_root_path_helper=Direktori untuk menulis berkas log.
+enable_console_mode=Mengaktifkan Mode Konsol
+enable_console_mode_popup=Selain mode file, juga mencetak log ke konsol.
+default_branch=Default Branch
+
+optional_title=Pengaturan opsional
+email_title=Pengaturan layanan email
+smtp_host=Host SMTP
+smtp_from=Dari
+smtp_from_helper=Alamat Dari email, RFC 5322. Hal ini dapat hanya alamat email, atau format "Nama" .
+mailer_user=Email pengirim
+mailer_password=Sandi pengirim
+register_confirm=Mengaktifkan konfirmasi pendaftaran
+mail_notify=Mengaktifkan notifikasi email
+server_service_title=Pengaturan server dan layanan lainnya
+offline_mode=Mengaktifkan mode Offline
+offline_mode_popup=Menonaktifkan CDN bahkan dalam mode produksi, semua sumber file akan disajikan secara lokal.
+disable_gravatar=Menonaktifkan layanan Gravatar
+disable_gravatar_popup=Menonaktifkan Gravatar dan sumber-sumber kustom, avatar semua upload oleh pengguna atau default.
+federated_avatar_lookup=Aktifkan Pencarian Avatar Representasi
+federated_avatar_lookup_popup=Aktifkan avatar avatar federasi untuk menggunakan layanan buka sumber federasi berbasis libravatar.
+disable_registration=Menonaktifkan Swa-pendaftaran
+disable_registration_popup=Menonaktifkan registrasi mandiri pengguna, hanya admin yang dapat membuat akun.
+enable_captcha=Mengaktifkan Captcha
+enable_captcha_popup=Memerlukan validasi captcha untuk registrasi mandiri pengguna.
+require_sign_in_view=Aktifkan memerlukan masuk untuk lihat halaman
+require_sign_in_view_popup=Hanya pengguna yang sudah masuk yang dapat melihat halaman, pengunjung hanya dapat melihat halaman masuk.
+admin_setting_desc=Anda tidak perlu membuat account admin sekarang, pengguna siapa ID = 1 akan mendapatkan akses admin secara otomatis.
+admin_title=Pengaturan akun admin
+admin_name=Nama pengguna
+admin_password=Sandi
+confirm_password=Konfirmasi sandi
+admin_email=Email Admin
+install_gogs=Menginstall Gogs
+test_git_failed=Gagal untuk menguji perintah 'git': %v
+sqlite3_not_available=Versi rilis Anda tidak mendukung SQLite3, silahkan download versi biner resmi dari %s, BUKAN versi gobuild.
+invalid_db_setting=Pengaturan basisdata tidak benar: %v
+invalid_repo_path=Path akar repositori tidak valid: %v
+run_user_not_match=Pengguna yang sedang menjalankan bukanlah pengguna saat ini: %s -> %s
+smtp_host_missing_port=Alamat Host SMTP hilang di alamat.
+invalid_smtp_from=SMTP Dari lapangan tidak sesuai: %v
+save_config_failed=Gagal untuk menyimpan konfigurasi: %v
+init_failed=Gagal melakukan inisialiasi aplikasi: %v
+invalid_admin_setting=Pengaturan akun admin tidak valid: %v
+install_success=Selamat datang! Kami senang bahwa Anda memilih Gogs, bersenang-senang dan berhati-hatilah.
+invalid_log_root_path=Path akar log tidak valid: %v
+
+[home]
+uname_holder=Nama pengguna atau email
+password_holder=Sandi
+switch_dashboard_context=Beralih Konteks Dasbor
+my_repos=Repositori Saya
+show_more_repos=Tampilkan lebih banyak repositori lain...
+collaborative_repos=Repositori Kolaboratif
+my_orgs=Organisasi Saya
+my_mirrors=Mirror Saya
+view_home=Lihat %s
+
+issues.in_your_repos=Dalam repositori Anda
+
+[explore]
+repos=Repositori
+users=Pengguna
+organizations=Organisasi
+search=Cari
+
+[auth]
+create_new_account=Buat akun baru
+register_hepler_msg=Sudah memiliki account? Sign in sekarang!
+social_register_hepler_msg=Sudah memiliki account? Ikat sekarang!
+disable_register_prompt=Maaf, pendaftaran telah dinonaktifkan. Hubungi administrator situs.
+disable_register_mail=Maaf, konfirmasi pendaftaran melalui email telah dinonaktifkan.
+auth_source=Sumber Autentikasi
+local=Lokal
+remember_me=Ingat saya
+forgot_password=Lupa Sandi
+forget_password=Lupa sandi?
+sign_up_now=Membutuhkan akun? Daftar sekarang.
+confirmation_mail_sent_prompt=Email konfirmasi baru telah terkirim ke %s, silakan cek inbox Anda dalam waktu %d jam untuk menyelesaikan proses pendaftaran.
+active_your_account=Aktifkan Akun Anda
+prohibit_login=Login tidak diperbolehkan
+prohibit_login_desc=Akun Anda tidak diperbolehkan untuk masuk, silakan hubungi admin situs.
+resent_limit_prompt=Maaf, Anda telah meminta email aktivasi beberapa saat lalu. Silakan tunggu 3 menit kemudian untuk dapat mencoba lagi.
+has_unconfirmed_mail=Hi %s, Anda memiliki alamat email yang belum terkonfirmasi (%s). Jika Anda belum menerima email konfirmasi atau perlu untuk mengirim ulang yang baru, silakan klik pada tombol di bawah ini.
+resend_mail=Klik di sini untuk mengirim kembali email aktivasi
+send_reset_mail=Klik di sini untuk mengirimkan (ulang) email untuk mengatur ulang sandi
+reset_password=Atur Ulang Sandi
+invalid_code=Maaf, kode konfirmasi Anda telah kadaluarsa atau tidak valid.
+reset_password_helper=Klik di sini untuk menyetel ulang sandi
+password_too_short=Panjang sandi tidak bisa kurang dari 6 huruf.
+non_local_account=Akun non-lokal tidak dapat mengganti password lewat Gogs.
+
+login_two_factor=Autentikasi Dua Faktor
+login_two_factor_passcode=Kode Akses Autentikasi
+login_two_factor_enter_recovery_code=Masukkan kode pemulihan dua faktor
+login_two_factor_recovery=Pemulihan Dua Faktor
+login_two_factor_recovery_code=Kode pemulihan
+login_two_factor_enter_passcode=Masukkan kode akses dua faktor
+login_two_factor_invalid_recovery_code=Kode pemulihan telah digunakan atau tidak sesuai.
+
+[mail]
+activate_account=Silakan aktifkan akun Anda
+activate_email=Silakan cek alamat email Anda
+reset_password=Atur ulang sandi anda
+register_success=Pendaftaran sukses, Selamat datang
+register_notify=Selamat bergabung
+
+[modal]
+yes=Ya
+no=Tidak
+modify=Ubah
+
+[form]
+UserName=Nama pengguna
+RepoName=Nama repository
+Email=Alamat email
+Password=Sandi
+Retype=Ketik ulang sandi
+SSHTitle=Nama kunci SSH
+HttpsUrl=URL HTTPS
+PayloadUrl=URL Muatan
+TeamName=Nama tim
+AuthName=Nama Otorisasi
+AdminEmail=Email admin
+
+NewBranchName=Nama branch baru
+CommitSummary=Ringkasan Commit
+CommitMessage=Pesan Commit
+CommitChoice=Pilihan Commit
+TreeName=Lokasi File
+Content=Konten
+
+require_error=` tidak boleh kosong.`
+alpha_dash_error=` harus berupa alfanumerik yang valid atau karakter penghubung (-_).`
+alpha_dash_dot_error=` harus berupa alfanumerik yang valid atau karakter penghubung (-_) atau karakter titik.`
+alpha_dash_dot_slash_error=harus valid alpha atau numeric atau dash(-_) atau dot characters atau slashes`
+size_error=` harus berukuran %s.`
+min_size_error=` harus mengandung setidaknya %s karakter.`
+max_size_error=` harus mengandung paling banyak %s karakter.`
+email_error=` bukanlah alamat email yang valid.`
+url_error=` bukanlah URL yang valid.`
+include_error=` harus mengandung substring '%s'.`
+unknown_error=Kesalahan yang tidak dikenal:
+captcha_incorrect=Captcha tidak cocok.
+password_not_match=Sandi dan konfirmasi sandi tidak sama.
+
+username_been_taken=Nama pengguna sudah diambil.
+repo_name_been_taken=Nama repositori sudah diambil.
+org_name_been_taken=Nama organisasi telah diambil.
+team_name_been_taken=Nama tim telah diambil.
+email_been_used=Alamat email telah digunakan.
+username_password_incorrect=Nama pengguna atau sandi tidak benar.
+auth_source_mismatch=Sumber autentikasi yang dipilih tidak terkait dengan pengguna.
+enterred_invalid_repo_name=Pastikan bahwa nama repositori yang Anda masukkan benar.
+enterred_invalid_owner_name=Pastikan bahwa nama pemilik yang Anda masukkan benar.
+enterred_invalid_password=Harap pastikan bahwa sandi yang Anda masukkan benar.
+user_not_exist=Pengguna yang diinginkan tidak ditemukan.
+last_org_owner=Menghapus pengguna terakhir dari tim pemilik tidak diperbolehkan, karena dibutuhkan paling tidak satu pemilik dari sebuah organisasi.
+
+invalid_ssh_key=Maaf, kami tidak dapat memverifikasi kunci SSH Anda: %s
+unable_verify_ssh_key=Gogs tidak dapat memverifikasi kunci SSH Anda, tetapi kita menganggap bahwa itu sah, silakan periksa kembali.
+auth_failed=Autentikasi gagal: %v
+
+still_own_repo=Akun Anda masih memiliki kepemilikan atas setidaknya satu repositori, Anda harus menghapus atau mentransfernya terlebih dahulu.
+still_has_org=Akun Anda masih memiliki keanggotaan dalam setidaknya satu organisasi, Anda harus meninggalkan atau menghapus keanggotaan Anda terlebih dahulu.
+org_still_own_repo=Organisasi ini masih memiliki kepemilikan atas repositori, Anda harus menghapus atau mentransfernya terlebih dahulu.
+
+target_branch_not_exist=Cabang yang ditargetkan tidak ada.
+
+[user]
+change_avatar=Ubah Avatarmu
+join_on=Bergabung pada
+repositories=Repositori
+activity=Aktivitas publik
+followers=Pengikut
+starred=Bintangnya repositori
+following=Mengikuti
+follow=Ikuti
+unfollow=Berhenti mengikuti
+
+form.name_not_allowed=Nama pengguna atau pola %q tidak diizinkan.
+
+[settings]
+profile=Profil
+password=Sandi
+avatar=Avatar
+ssh_keys=Kunci SSH
+security=Keamanan
+repos=Repositori
+orgs=Organisasi
+applications=Aplikasi
+delete=Menghapus akun
+
+public_profile=Profil publik
+profile_desc=Alamat email Anda bersifat publik dan akan digunakan untuk setiap akun yang terkait pemberitahuan dan setiap operasi berbasis web yang dilakukan melalui situs.
+password_username_disabled=Pengguna jenis bebas-lokal tidak diperbolehkan untuk mengubah nama pengguna mereka.
+full_name=Nama lengkap
+website=Situs web
+location=Lokasi
+update_profile=Ubah profil
+update_profile_success=Profil Anda telah diperbarui berhasil.
+change_username=Nama pengguna berubah
+change_username_prompt=Perubahan ini akan mempengaruhi cara link yang berhubungan dengan akun Anda.
+continue=Lanjutkan
+cancel=Batal
+
+lookup_avatar_by_mail=Cari avatar dari email
+federated_avatar_lookup=Aktifkan Pencarian Avatar Representasi
+enable_custom_avatar=Gunakan Avatar Kostum
+choose_new_avatar=Pilih avatar baru
+update_avatar=Ubah pengaturan avatar
+delete_current_avatar=Hapus avatar terkini
+uploaded_avatar_not_a_image=Berkas yang diunggah bukanlah sebuah gambar.
+update_avatar_success=Pengaturan avatar Anda telah berhasil diperbarui.
+
+change_password=Ubah sandi
+old_password=Sandi terkini
+new_password=Sandi baru
+retype_new_password=Ketik ulang sandi baru
+password_incorrect=Sandi saat ini tidak benar.
+change_password_success=Sandi berhasil diubah. Anda sekarang dapat masuk menggunakan sandi baru ini.
+password_change_disabled=Pengguna jenis bebas-lokal tidak diperbolehkan untuk mengubah sandi mereka.
+
+emails=Alamat email
+manage_emails=Mengelola alamat email
+email_desc=Alamat email utama akan digunakan untuk pemberitahuan dan operasi lainnya.
+primary=Utama
+primary_email=Set sebagai utama
+delete_email=Hapus
+email_deletion=Penghapusan email
+email_deletion_desc=Menghapus alamat email ini akan menghapus informasi yang berhubungan dengan akun Anda. Lanjutkan?
+email_deletion_success=Email telah berhasil diperbarui!
+email_deletion_primary=Tidak bisa menghapus email utama
+add_new_email=Menambah alamat email baru
+add_email=Tambahkan email
+add_email_confirmation_sent=Email konfirmasi baru telah dikirim ke '%s', silakan cek inboxmu dalam waktu %d jam untuk menyelesaikan proses konfirmasi.
+add_email_success=Alamat email barumu telah berhasil ditambahkan.
+
+manage_ssh_keys=Kelola Kunci SSH
+add_key=Tambah kunci
+ssh_desc=Ini adalah daftar kunci SSH yang terkait dengan akun Anda. Karena kunci ini memungkinkan seseorang menggunakannya untuk mendapatkan akses ke repositori Anda, sangat penting bagi Anda untuk memastikan Anda mengenalinya.
+ssh_helper=Tidak tahu caranya? Kunjungi petunjuk GitHub untuk membuat kunci SSH Anda sendiri atau perbaiki masalah umum yang mungkin sedang Anda alami dengan SSH.
+add_new_key=Tambah kunci SSH
+ssh_key_been_used=Public key telah digunakan.
+ssh_key_name_used=Public key dengan nama itu udah pernah ada.
+key_name=Nama kunci
+key_content=Konten Kunci
+add_key_success=Kunci SSH baru '%s' telah berhasil ditambahkan!
+delete_key=Hapus
+ssh_key_deletion=Penghapusan kunci SSH
+ssh_key_deletion_desc=Menghapus kunci SSH ini akan menghapus seluruh akses yang terkait pada akunmu. Lanjutkan saja?
+ssh_key_deletion_success=Kunci SSH telah berhasil dihapus!
+add_on=Ditambahkan pada
+last_used=Terakhir digunakan pada
+no_activity=Tidak ada aktifitas terakhir
+key_state_desc=Kunci ini digunakan dalam 7 hari terakhir
+token_state_desc=Token ini digunakan dalam 7 hari terakhir
+
+two_factor=Autentikasi dua faktor
+two_factor_status=Status:
+two_factor_on=Nyala
+two_factor_off=Mati
+two_factor_enable=Aktifkan
+two_factor_disable=Nonaktifkan
+two_factor_view_recovery_codes=Lihat dan simpan kode pemulihan anda di tempat yang aman. Anda dapat menggunakannya sebagai kode akses jika Anda kehilangan akses otentikasi aplikasi.
+two_factor_http=Untuk operasi HTTP/HTTPS, Anda tidak lagi mampu menggunakan nama pengguna dan kata sandi. Silakan membuat dan menggunakan Token akses pribadi sebagai kredensial Anda, misalnya %[3]s.
+two_factor_enable_title=Aktifkan Autentikasi Dua Faktor
+two_factor_scan_qr=Silakan gunakan aplikasi autentikasi Anda untuk memindai gambar:
+two_factor_or_enter_secret=Atau masukkan rahasianya:
+two_factor_then_enter_passcode=Kemudian, masukkan kode akses:
+two_factor_verify=Verifikasi
+two_factor_invalid_passcode=Kode akses yang Anda masukkan tidak sah, silakan coba lagi!
+two_factor_reused_passcode=Kode akses yang Anda masukkan sudah digunakan, coba yang lain!
+two_factor_enable_error=Gagal mengaktifkan autentikasi Dua Faktor: %v
+two_factor_enable_success=Autentikasi Dua faktor untuk akun Anda berhasil diaktifkan!
+two_factor_recovery_codes_title=Kode Pemulihan Autentikasi Dua Faktor
+two_factor_recovery_codes_desc=Kode pemulihan digunakan saat Anda sementara kehilangan akses ke aplikasi autentikasi Anda. Setiap kode pemulihan hanya dapat digunakan satu kali, simpan kode ini di tempat yang aman b>.
+two_factor_regenerate_recovery_codes=Regenerate Recovery Codes
+two_factor_regenerate_recovery_codes_error=Regenerasi kode pemulihan gagal: %v
+two_factor_regenerate_recovery_codes_success=Kode pemulihan baru telah berhasil dibuat!
+two_factor_disable_title=Nonaktifkan Autentikasi Dua Faktor
+two_factor_disable_desc=Tingkat keamanan akun Anda akan menurun setelah autentikasi dua faktor dinonaktifkan. Apakah Anda ingin melanjutkan?
+two_factor_disable_success=Autentikasi dua faktor telah berhasil dilakukan!
+
+manage_access_token=Kelola Akses Token pribadi
+generate_new_token=Buat Token Baru
+tokens_desc=Token yang Anda buat dapat digunakan untuk mengakses API-nya Gogs.
+access_token_tips=Personal access token mungkin digunakan sebagai username atau password. Sangatn direkomendasikan untuk menggunakan "x-access-token" sebagai username atau personal access token sebagai password untuk aplikasi git.
+new_token_desc=Setiap token akan memiliki akses penuh ke akunmu.
+token_name=Nama Token
+generate_token=Buat Token
+generate_token_succees=Akses Token berhasil dibuat! Pastikan di-copy dulu, karena kamu nggak akan bisa ngeliat itu lagi nanti!
+delete_token=Hapus
+access_token_deletion=Penghapusan Akses Token Pribadi
+access_token_deletion_desc=Hapus token akses pribadi ini akan menghapus semua akses aplikasi yang terkait. Apakah Anda ingin melanjutkan?
+delete_token_success=Token akses pribadi telah berhasil dihapus! Jangan lupa untuk mengupdate aplikasi anda juga.
+token_name_exists=Token dengan nama yang sama telah digunakan.
+
+orgs.none=Anda bukan anggota organisasi manapun.
+orgs.leave_title=Meninggalkan organisasi
+orgs.leave_desc=Anda akan kehilangan akses ke semua repositori dan tim setelah Anda meninggalkan organisasi. Apakah Anda ingin melanjutkan?
+
+repos.leave=Meninggalkan
+repos.leave_title=Meninggalkan repositori
+repos.leave_desc=Anda akan kehilangan akses ke repositori setelah Anda meninggalkan. Apakah Anda ingin melanjutkan?
+repos.leave_success=Anda telah berhasil meninggalkan repositori '%s'!
+
+delete_account=Hapus Akun Anda
+delete_prompt=Operasi akan menghapus account Anda secara permanen, dan TIDAK dapat dibatalkan!
+confirm_delete_account=Konfirmasi Penghapusan
+delete_account_title=Penghapusan account
+delete_account_desc=Akun ini akan dihapus secara permanen, Apakah Anda ingin melanjutkan?
+
+[repo]
+owner=Pemilik
+repo_name=Nama Repositori
+repo_name_helper=Nama repositori yang baik biasanya terdiri dari kata kunci yang pendek, mudah diingat dan unik.
+visibility=Visibilitas
+unlisted=Tidak terdaftar
+visiblity_helper=Repositori ini Pribadi
+unlisted_helper=This repository is Unlisted
+visiblity_helper_forced=Situs admin telah memaksa semua repositori baru menjadi Pribadi
+visiblity_fork_helper=(Perubahan nilai ini akan mempengaruhi semua garpu)
+clone_helper=Butuh bantuan kloning? Kunjungi Bantuan!
+fork_repo=Fork Repositori
+fork_from=Garpu dari
+fork_visiblity_helper=Anda tidak dapat mengubah visibilitas repositori bercabang.
+repo_desc=Deskripsi
+repo_lang=Bahasa
+repo_gitignore_helper=Pilih template .gitignore
+license=Lisensi
+license_helper=Pilih berkas lisensi
+readme=Readme
+readme_helper=Pilih template readme
+auto_init=Menginisialisasi repositori ini dengan berkas dan template yang dipilih
+create_repo=Membuat repositori
+default_branch=Cabang Default
+mirror_prune=Memangkas
+mirror_prune_desc=Hapus semua referensi pelacakan jarak jauh yang tidak lagi ada di remote
+mirror_interval=Interval Cermin (jam)
+mirror_address=Alamat Cermin
+mirror_address_desc=Harap sertakan kredensial pengguna yang diperlukan di alamat.
+mirror_last_synced=Terakhir disinkronkan
+watchers=Watchers
+stargazers=Stargazers
+forks=Forks
+repo_description_helper=Deskripsi repositori maksimal 512 karakter.
+repo_description_length=Karakter tersedia
+
+form.reach_limit_of_creation=Pemiliknya telah mencapai batas pembuatan maksimum %d repositori.
+form.name_not_allowed=Nama atau pola repositori %q tidak diizinkan.
+
+need_auth=Butuh Otorisasi
+migrate_type=Jenis migrasi
+migrate_type_helper=Repositori ini akan menjadi mirror
+migrate_repo=Migrasi Repositori
+migrate.clone_address=Alamat kloning
+migrate.clone_address_desc=Ini bisa berupa HTTP/HTTPS/GIT URL.
+migrate.clone_address_desc_import_local=Anda juga diizinkan untuk memindahkan repositori dengan jalur server lokal.
+migrate.permission_denied=Anda tidak diperbolehkan mengimpor repositori lokal.
+migrate.invalid_local_path=Jalur lokal tidak valid, tidak ada atau tidaknya sebuah direktori.
+migrate.clone_address_resolved_to_blocked_local_address=Clone address resolved to a local network address that is implicitly blocked.
+migrate.failed=Migrasi gagal: %v
+
+mirror_from=cermin dari
+forked_from=ter-fork dari
+copy_link=Copy
+copy_link_success=Ter-copy!
+copy_link_error=Pencet ⌘-C atau Ctrl-C buat nge-copy
+copied=Ter-copy, ok
+unwatch=Batal liatin
+watch=Liatin
+unstar=Batal Bintangi
+star=Bintangi
+fork=Fork
+
+no_desc=Tidak Ada Deskripsi
+quick_guide=Petunjuk Cepat
+clone_this_repo=Kloning repositori ini
+create_new_repo_command=Buat repositori baru di command line
+push_exist_repo=Dorong repositori yang ada dari baris perintah
+bare_message=Ini repositori tidak memiliki konten apa pun.
+
+files=Berkas
+branch=Cabang
+tree=Pohon
+filter_branch_and_tag=Filter cabang atau tag
+branches=Ranting
+tags=Tag
+issues=Masalah
+pulls=Permintaan Tarik
+labels=Label
+milestones=Tonggak sejarah
+commits=Komitmen
+git_branches=Ranting
+releases=Rilis
+file_raw=Mentahan
+file_history=Riwayat
+file_view_raw=Lihat mentahan
+file_permalink=Permalink
+file_too_large=File ini terlalu besar untuk ditampilkan
+video_not_supported_in_browser=Browser Anda tidak mendukung tag video HTML5.
+
+branches.overview=Ikhtisar
+branches.active_branches=Cabang Aktif
+branches.stale_branches=Cabang Basi
+branches.all=Semua Cabang
+branches.updated_by=Diperbarui %[1]s oleh %[2]s
+branches.change_default_branch=Ubah Cabang Default
+branches.default_deletion_not_allowed=Cannot delete the default branch.
+branches.protected_deletion_not_allowed=Cannot delete a protected branch.
+
+editor.new_file=Berkas baru
+editor.upload_file=Unggah Berkas
+editor.edit_file=Edit berkas
+editor.preview_changes=Tinjau Perubahan
+editor.cannot_edit_non_text_files=Tidak dapat mengedit berkas non-teks
+editor.edit_this_file=Edit berkas ini
+editor.must_be_on_a_branch=Anda harus berada di cabang untuk membuat atau mengusulkan perubahan pada file ini
+editor.fork_before_edit=Anda harus garpu ini repositori sebelum mengedit file
+editor.delete_this_file=Hapus berkas ini
+editor.must_have_write_access=Anda harus memiliki akses tulis untuk membuat atau mengusulkan perubahan pada file ini
+editor.file_delete_success=File ' % s ' telah berhasil dihapus!
+editor.name_your_file=Nama berkas...
+editor.filename_help=Untuk menambahkan direktori, ketik saja dan tekan /. Untuk menghapus sebuah direktori, masuk ke awal bidang dan tekan backspace.
+editor.or=atau
+editor.cancel_lower=batal
+editor.commit_changes=Perubahan Komitmen
+editor.add_tmpl=Tambah '%s/'
+editor.add=Tambah '%s'
+editor.update=Perbarui '%s'
+editor.delete=Hapus '%s'
+editor.commit_message_desc=Tambahkan deskripsi perluasan opsional...
+editor.commit_directly_to_this_branch=Komit langsung ke cabang %s branch.
+editor.create_new_branch=Buat cabang baru untuk komit ini dan mulai permintaan tarik.
+editor.new_branch_name_desc=Nama cabang baru...
+editor.cancel=Batal
+editor.filename_cannot_be_empty=Nama berkas tidak boleh kosong.
+editor.branch_already_exists=Cabang '%s' sudah ada di repositori ini.
+editor.directory_is_a_file=Entri '%s' di jalur induk adalah file bukan direktori dalam repositori ini.
+editor.file_is_a_symlink=File '%s' adalah symlink yang tidak bisa diubah dari web editor.
+editor.filename_is_a_directory=Nama file '%s' adalah direktori yang ada di repositori ini.
+editor.file_editing_no_longer_exists=File '%s' yang Anda edit sudah tidak ada lagi di repositori.
+editor.file_changed_while_editing=Konten file telah berubah sejak Anda mulai mengedit. Klik di sini untuk melihat apa yang telah diubah atau tekan komit lagi untuk menimpa perubahan tersebut.
+editor.file_already_exists=File dengan nama '%s' sudah ada di repositori ini.
+editor.no_changes_to_show=Tidak ada perubahan untuk ditunjukkan.
+editor.fail_to_update_file=Gagal memperbarui / membuat file '%s' dengan error: %v
+editor.fail_to_delete_file=Gagal menghapus file '%s' dengan error: %v
+editor.add_subdir=Tambahkan subdirektori...
+editor.unable_to_upload_files=Gagal mengunggah file ke '%s' dengan kesalahan: %v
+editor.upload_files_to_dir=Upload file ke '%s'
+
+commits.commit_history=Komit Sejarah
+commits.commits=Komitmen
+commits.search=Cari komit
+commits.find=Cari
+commits.author=Pembuat
+commits.message=Pesan
+commits.date=Tanggal
+commits.older=Lawas
+commits.newer=Terbaru
+
+issues.new=Isu Baru
+issues.new.labels=Label
+issues.new.no_label=Tidak ada Label
+issues.new.clear_labels=Label yang jelas
+issues.new.milestone=Tonggak
+issues.new.no_milestone=Tidak ada tonggak
+issues.new.clear_milestone=Tonggak yang jelas
+issues.new.open_milestone=Buka Tonggak
+issues.new.closed_milestone=Tonggak tertutup
+issues.new.assignee=Penerima
+issues.new.clear_assignee=Hapus penerima hak
+issues.new.no_assignee=Tidak ada penerima
+issues.create=Buat Terbitan
+issues.new_label=Label Baru
+issues.new_label_placeholder=Nama label...
+issues.create_label=Membuat Label
+issues.label_templates.title=Muat seperangkat label yang telah ditentukan
+issues.label_templates.info=Belum ada label. Anda bisa mengklik tombol "New Label" di atas untuk membuat satu atau menggunakan set yang telah ditentukan di bawah ini.
+issues.label_templates.helper=Pilih label set
+issues.label_templates.use=Menggunakan label set ini
+issues.label_templates.fail_to_load_file=Gagal untuk memuat label berkas template '%s': %v
+issues.open_tab=%d Terbuka
+issues.close_tab=%d Tertutup
+issues.filter_label=Label
+issues.filter_label_no_select=Tidak ada label yang dipilih
+issues.filter_milestone=Tonggak
+issues.filter_milestone_no_select=Tidak ada tonggak terpilih
+issues.filter_assignee=Penerima
+issues.filter_assginee_no_select=Tidak ada Penerima yang dipilih
+issues.filter_type=Jenis
+issues.filter_type.all_issues=Semua masalah
+issues.filter_type.assigned_to_you=Ditetapkan kepada Anda
+issues.filter_type.created_by_you=Dibuat oleh Anda
+issues.filter_type.mentioning_you=Menyebutkan Anda
+issues.filter_sort=Urutkan
+issues.filter_sort.latest=Terbaru
+issues.filter_sort.oldest=Lawas
+issues.filter_sort.recentupdate=Baru saja diperbarui
+issues.filter_sort.leastupdate=Baru-baru ini diperbarui
+issues.filter_sort.mostcomment=Sebagian besar berkomentar
+issues.filter_sort.leastcomment=Setidaknya berkomentar
+issues.opened_by=dibuka %[1]s oleh %[3]s
+issues.opened_by_fake=dibuka %[1]s oleh %[2]s
+issues.previous=Sebelumnya
+issues.next=Selanjutnya
+issues.open_title=Terbuka
+issues.closed_title=Ditutup
+issues.num_comments=%d komentar
+issues.commented_at=`komentar %s `
+issues.delete_comment_confirm=Anda yakin ingin menghapus komentar ini?
+issues.no_content=Belum ada konten.
+issues.close_issue=Tutup
+issues.close_comment_issue=Komentar dan tutup
+issues.reopen_issue=Buka kembali
+issues.reopen_comment_issue=Komentar dan buka kembali
+issues.create_comment=Komentar
+issues.closed_at=`tutup %[2]s `
+issues.reopened_at=`buka kembali %[2]s
+issues.commit_ref_at=`merujuk masalah ini dari komit [2]s
+issues.poster=Poster
+issues.collaborator=Kolaborator
+issues.owner=Pemilik
+issues.sign_in_require_desc=Masuk untuk bergabung dalam percakapan ini.
+issues.edit=Sunting
+issues.cancel=Batal
+issues.save=Simpan
+issues.label_title=Nama label
+issues.label_color=Warna label
+issues.label_count=%d label
+issues.label_open_issues=%d masalah terbuka
+issues.label_edit=Sunting
+issues.label_delete=Hapus
+issues.label_modify=Modifikasi Label
+issues.label_deletion=Penghapusan label
+issues.label_deletion_desc=Menghapus label ini akan menghapus informasinya di semua masalah terkait. Apakah Anda ingin melanjutkan?
+issues.label_deletion_success=Label telah berhasil dihapus!
+issues.num_participants=%d Peserta
+issues.attachment.open_tab=`Klik untuk melihat "%s" di tab baru`
+issues.attachment.download=`Klik untuk mendownload "%s"`
+
+pulls.new=Permintaan Tarik Baru
+pulls.compare_changes=Membandingkan Perubahan
+pulls.compare_changes_desc=Bandingkan dua cabang dan buat permintaan tarik untuk perubahan.
+pulls.compare_base=mendasarkan
+pulls.compare_compare=membandingkan
+pulls.filter_branch=Filter cabang
+pulls.no_results=Tidak ada hasil yang ditemukan.
+pulls.nothing_to_compare=Tidak ada yang bisa dibandingkan karena cabang dasar dan kepala bahkan ada.
+pulls.nothing_merge_base=Tidak ada yang bisa dibandingkan karena dua cabang memiliki sejarah yang sama sekali berbeda.
+pulls.has_pull_request=`Sudah ada permintaan tarik antara kedua target ini: % [2] s #% [3] d `
+pulls.create=Buat Permintaan Tarik
+pulls.title_desc=ingin menggabungkan %[1]d komit dari %[2]s menjadi %[3]s
+pulls.merged_title_desc=menggabungkan %[1]d komit dari %[2]s menjadi %[3]s%[4] s
+pulls.tab_conversation=Percakapan
+pulls.tab_commits=Komitmen
+pulls.tab_files=File yang diubah
+pulls.reopen_to_merge=Silahkan membuka kembali permintaan tarik ini untuk melakukan operasi gabungan.
+pulls.merged=Gabung
+pulls.has_merged=Permintaan tarik ini telah berhasil digabungkan!
+pulls.data_broken=Data permintaan tarik ini telah pecah karena penghapusan garpu informasi.
+pulls.is_checking=Memeriksa konflik ini masih dalam proses, silahkan segarkan halaman dalam beberapa saat.
+pulls.can_auto_merge_desc=Permintaan tarik ini dapat digabungkan secara otomatis.
+pulls.cannot_auto_merge_desc=Permintaan tarik ini tidak bisa digabungkan secara otomatis karena ada konflik.
+pulls.cannot_auto_merge_helper=Silahkan bergabung secara manual untuk menyelesaikan konflik.
+pulls.create_merge_commit=Membuat komit penggabungan
+pulls.rebase_before_merging=Rebase sebelum penggabungan
+pulls.commit_description=Deskripsi Commit
+pulls.merge_pull_request=Permintaan tarik gabungan
+pulls.open_unmerged_pull_exists='Anda tidak dapat melakukan operasi membuka kembali karena sudah ada permintaan tarik terbuka (#%d) dari repositori yang sama dengan penggabungan informasi yang sama dan menunggu penggabungan. '
+pulls.delete_branch=Menghapus cabang
+pulls.delete_branch_has_new_commits=Cabang tidak dapat dihapus karena itu telah baru komit setelah menggabungkan.
+
+milestones.new=Tonggak sejarah baru
+milestones.open_tab=%d Dibuka
+milestones.close_tab=%d Ditutup
+milestones.closed=Ditutup %s
+milestones.no_due_date=Tidak ada batas tanggal terakhir
+milestones.open=Buka
+milestones.close=Tutup
+milestones.new_subheader=Menciptakan tonggak untuk mengatur masalah Anda.
+milestones.create=Tonggak yang jelas
+milestones.title=Gelar
+milestones.desc=Keterangan
+milestones.due_date=Tanggal jatuh tempo (opsional)
+milestones.clear=Bersih
+milestones.invalid_due_date_format=Format tanggal jatuh tidak berlaku, harus 'yyyy-mm-dd'.
+milestones.create_success=Milestone '%s' telah berhasil dibuat!
+milestones.edit=Ubah tonggak
+milestones.edit_subheader=Menggunakan diskripsi yang lebih baik untuk tonggak sehingga orang tidak akan bingung.
+milestones.cancel=Batal
+milestones.modify=Ubah tonggak
+milestones.edit_success=Perubahan tonggakan'%s' telah berhasil disimpan!
+milestones.deletion=Menghapus tonggak
+milestones.deletion_desc=Tonggak ini akan menghapus batas informasi dalam semua terkait masalah. Apakah Anda ingin terus?
+milestones.deletion_success=Tonggak telah berhasil dihapus!
+
+wiki=Wiki
+wiki.welcome=Selamat datang untuk wiki!
+wiki.welcome_desc=Wiki adalah tempat di mana Anda ingin dokumen proyek Anda bersama-sama dan membuatnya lebih baik.
+wiki.create_first_page=Membuat halaman pertama
+wiki.page=Halaman
+wiki.filter_page=Halaman penyaring
+wiki.new_page=Buat halaman baru
+wiki.default_commit_message=Menulis catatan tentang pembaruan ini (opsional).
+wiki.save_page=Simpan halaman
+wiki.last_commit_info=%s mengedit halaman ini %s
+wiki.edit_page_button=Sunting
+wiki.new_page_button=Halaman Baru
+wiki.delete_page_button=Hapus Halaman
+wiki.delete_page_notice_1=Ini akan menghapus halaman "%s". Harap dipastikan.
+wiki.page_already_exists=Halaman Wiki dengan nama yang sama sudah ada.
+wiki.pages=Halaman
+wiki.last_updated=Terakhir Diperbarui %s
+
+settings=Pengaturan
+settings.options=Opsi
+settings.collaboration=Kolaborasi
+settings.collaboration.admin=Admin
+settings.collaboration.write=Tulis
+settings.collaboration.read=Baca
+settings.collaboration.undefined=Tidak terdefinisi
+settings.branches=Ranting
+settings.branches_bare=Anda tidak bisa mengelola cabang untuk gudang kosong. Tolong dorong beberapa konten terlebih dahulu.
+settings.default_branch=Cabang Default
+settings.default_branch_desc=Cabang default dianggap sebagai cabang "dasar" untuk kode komit, permintaan tarik dan pengeditan online.
+settings.update=Perbarui
+settings.update_default_branch_unsupported=Ubah cabang default tidak didukung oleh versi Git di server.
+settings.update_default_branch_success=Cabang bawaan dari repositori ini telah berhasil diupdate!
+settings.protected_branches=Cabang yang Dilindungi
+settings.protected_branches_desc=Lindungi cabang dari dorongan paksa, penghapusan yang tidak disengaja dan kode kode whitelist.
+settings.choose_a_branch=Pilih cabang...
+settings.branch_protection=Perlindungan Cabang
+settings.branch_protection_desc=Harap pilih opsi perlindungan untuk cabang % s b>.
+settings.protect_this_branch=Lindungi cabang ini
+settings.protect_this_branch_desc=Nonaktifkan kekuatan mendorong dan mencegah dari penghapusan.
+settings.protect_require_pull_request=Perlu tarik permintaan alih-alih langsung mendorong
+settings.protect_require_pull_request_desc=Aktifkan opsi ini untuk menonaktifkan langsung mendorong ke cabang ini. Komitmen harus didorong ke cabang lain yang tidak dilindungi dan bergabung ke cabang ini melalui permintaan tarik.
+settings.protect_whitelist_committers=Daftar putih yang bisa mendorong ke cabang ini
+settings.protect_whitelist_committers_desc=Tambahkan orang atau tim ke daftar putih dorongan langsung ke cabang ini. Pengguna di whitelist akan bypass memerlukan permintaan tarik cek.
+settings.protect_whitelist_users=Pengguna yang bisa masuk ke cabang ini
+settings.protect_whitelist_search_users=Cari pengguna
+settings.protect_whitelist_teams=Tim yang anggotanya dapat mendorong cabang ini
+settings.protect_whitelist_search_teams=Tim pencarian
+settings.update_protect_branch_success=Lindungi opsi untuk cabang ini telah berhasil diupdate!
+settings.hooks=Webhooks
+settings.githooks=Git kait
+settings.basic_settings=Setelan Dasar
+settings.mirror_settings=Setelan Cermin
+settings.sync_mirror=Sinkronkan Sekarang
+settings.mirror_sync_in_progress=Sinkronisasi cermin sedang berlangsung, harap segarkan laman dalam waktu sekitar satu menit.
+settings.site=Situs Resmi
+settings.update_settings=Perbarui Pengaturan
+settings.change_reponame_prompt=Perubahan ini akan mempengaruhi bagaimana link berhubungan dengan repositori.
+settings.advanced_settings=Setelan lanjutan
+settings.wiki_desc=Mengaktifkan sistem wiki
+settings.use_internal_wiki=Menggunakan builtin wiki
+settings.allow_public_wiki_desc=Izinkan akses publik ke wiki saat repositori bersifat pribadi
+settings.use_external_wiki=Menggunakan wiki eksternal
+settings.external_wiki_url=URL Wiki Eksternal
+settings.external_wiki_url_desc=Pengunjung akan diarahkan ke URL saat mereka mengklik tab.
+settings.issues_desc=Aktifkan pelacak masalah
+settings.use_internal_issue_tracker=Gunakan pelacak isu ringan builtin
+settings.allow_public_issues_desc=Izinkan akses publik ke masalah saat repositori bersifat pribadi
+settings.use_external_issue_tracker=Gunakan pelacak isu eksternal
+settings.external_tracker_url=URL Pelacak Masalah Eksternal
+settings.external_tracker_url_desc=Pengunjung akan diarahkan ke URL saat mereka mengklik tab.
+settings.tracker_url_format=Format URL Pelacak Edisi Eksternal
+settings.tracker_issue_style=Isu Penamaan Tracker Isu Eksternal:
+settings.tracker_issue_style.numeric=Numerik
+settings.tracker_issue_style.alphanumeric=Alfanumerik
+settings.tracker_url_format_desc=Anda dapat menggunakan placeholder {user}{repo}{index untuk nama pengguna, nama repositori dan indeks masalah.
+settings.pulls_desc=Enable pull requests to accept contributions between repositories and branches
+settings.pulls.ignore_whitespace=Abaikan perubahan di spasi
+settings.pulls.allow_rebase_merge=Izinkan gunakan rebase untuk menggabungkan komit
+settings.danger_zone=Zona Bahaya
+settings.cannot_fork_to_same_owner=Anda tidak dapat membayar sebuah repositori kepada pemilik aslinya.
+settings.new_owner_has_same_repo=Pemilik baru sudah memiliki repositori dengan nama yang sama. Silakan pilih nama lain.
+settings.convert=Mengkonversi Ke Reguler Repositori
+settings.convert_desc=Anda dapat mengubah cermin ini menjadi repositori biasa . Ini tidak bisa dibalik.
+settings.convert_notices_1=- Operasi ini akan mengubah mirror repositori ini menjadi repositori reguler dan tidak dapat dibatalkan.
+settings.convert_confirm=Konfirmasikan Konversi
+settings.convert_succeed=Repositori telah dikonversi menjadi tipe biasa dengan sukses.
+settings.transfer=Kepemilikan transfer
+settings.transfer_desc=Transfer repositori ini ke pengguna lain atau ke organisasi tempat Anda memiliki hak admin.
+settings.transfer_notices_1=- Anda akan kehilangan akses jika pemilik baru adalah pengguna individual.
+settings.transfer_notices_2=- Anda akan menghemat akses jika pemilik baru adalah organisasi dan jika Anda adalah salah satu pemiliknya.
+settings.transfer_form_title=Harap masukkan informasi berikut untuk mengkonfirmasi operasi Anda:
+settings.wiki_delete=Menghapus Data Wiki
+settings.wiki_delete_desc=Data wiki yang Anda hapus tidak dapat dikembalikan. Mohon dipastikan.
+settings.wiki_delete_notices_1=- Ini akan menghapus dan menonaktifkan wiki untuk %s
+settings.wiki_deletion_success=Data wiki repositori telah berhasil dihapus.
+settings.delete=Hapus repositori ini
+settings.delete_desc=Repositori yang Anda hapus, tidak dapat dikembalikan. Mohon dipastikan.
+settings.delete_notices_1=- Operasi ini TIDAK BISA dibatalkan.
+settings.delete_notices_2=- This operation will permanently delete everything in this repository, including Git data, issues, comments and collaborator access.
+settings.delete_notices_fork_1=- Semua garpu akan menjadi independen setelah dihapus.
+settings.deletion_success=Repositori telah berhasil dihapus!
+settings.update_settings_success=Opsi repositori telah berhasil diupdate.
+settings.transfer_owner=Pemilik Baru
+settings.make_transfer=Membuat Transfer
+settings.transfer_succeed=Kepemilikan repositori telah berhasil ditransfer.
+settings.confirm_delete=Konfirmasi Penghapusan
+settings.add_collaborator=Tambahkan Kolaborator Baru
+settings.add_collaborator_success=Kolaborator baru telah ditambahkan.
+settings.delete_collaborator=Hapus
+settings.collaborator_deletion=Penghapusan kolaborator
+settings.collaborator_deletion_desc=Pengguna ini tidak lagi memiliki akses kolaborasi ke repositori ini setelah penghapusan. Apakah Anda ingin melanjutkan?
+settings.remove_collaborator_success=Kolaborator telah dihapus.
+settings.search_user_placeholder=Cari pengguna...
+settings.org_not_allowed_to_be_collaborator=Organisasi tidak diperbolehkan untuk ditambahkan sebagai kolaborator.
+settings.hooks_desc=Webhooks seperti pemicu peristiwa HTTP POST dasar. Kapan pun terjadi sesuatu di Gog, kami akan menangani pemberitahuan tersebut ke host target yang Anda tentukan. Pelajari lebih lanjut di Panduan Webhooks ini.
+settings.webhooks.add_new=Add a new webhook:
+settings.webhooks.choose_a_type=Pilih jenis...
+settings.add_webhook=Tambahkan Webhook
+settings.webhook_deletion=Hapus Webhook
+settings.webhook_deletion_desc=Hapus halaman web ini akan menghapus informasinya dan semua riwayat pengiriman. Apakah Anda ingin melanjutkan?
+settings.webhook_deletion_success=Webhook telah berhasil dihapus!
+settings.webhook.test_delivery=Test Delivery
+settings.webhook.test_delivery_desc=Kirim pengiriman acara push palsu untuk menguji setting webhook Anda
+settings.webhook.test_delivery_success=Webhook uji telah ditambahkan ke antrian pengiriman. Mungkin diperlukan beberapa detik sebelum muncul dalam riwayat pengiriman.
+settings.webhook.redelivery=Redelivery
+settings.webhook.redelivery_success=Tugas Hook ' % s ' telah dibaca ke antrian pengiriman. Perlu beberapa detik untuk memperbarui status pengiriman dalam sejarah.
+settings.webhook.request=Permintaan
+settings.webhook.response=Tanggapan
+settings.webhook.headers=Header
+settings.webhook.payload=Payload
+settings.webhook.body=Tubuh
+settings.webhook.err_cannot_parse_payload_url=Cannot parse payload URL: %v
+settings.webhook.url_resolved_to_blocked_local_address=Payload URL resolved to a local network address that is implicitly blocked.
+settings.githooks_desc=Git Hooks didukung oleh Git itu sendiri, Anda dapat mengedit file kait yang didukung dalam daftar di bawah untuk melakukan operasi kustom.
+settings.githook_edit_desc=Jika hook tidak aktif, konten sampel akan disajikan. Meninggalkan konten ke nilai kosong akan menonaktifkan hook ini.
+settings.githook_name=Nama Hook
+settings.githook_content=Konten Hook
+settings.update_githook=Update Hook
+settings.add_webhook_desc=Gogs akan mengirimkan permintaan kode POST code> ke URL yang Anda tentukan, bersama dengan rincian mengenai peristiwa yang terjadi. Anda juga dapat menentukan jenis format data yang ingin Anda dapatkan saat memicu kail (JSON, x-www-form-urlencoded, XML, etc). Informasi lebih lanjut dapat ditemukan di Panduan Webhooks.
+settings.payload_url=URL Payload
+settings.content_type=Jenis konten
+settings.secret=Rahasia
+settings.secret_desc=Rahasia akan dikirim saat SHA256 HMAC hex mencerna muatan melalui header X-Gogs-Signature.
+settings.slack_username=Nama pengguna
+settings.slack_icon_url=URL ikon
+settings.slack_color=Warna
+settings.event_desc=Kapan seharusnya webhook ini dipicu?
+settings.event_push_only=Cukup dengan push event.
+settings.event_send_everything=I need everything.
+settings.event_choose=Biarkan saya memilih apa yang saya butuhkan.
+settings.event_create=Membuat
+settings.event_create_desc=Cabang atau tag dibuat
+settings.event_delete=Menghapus
+settings.event_delete_desc=Cabang atau tag dihapus
+settings.event_fork=Garpu
+settings.event_fork_desc=Repositori bercabang
+settings.event_push=Dorong
+settings.event_push_desc=Git mendorong ke repositori
+settings.event_issues=Masalah
+settings.event_issues_desc=Masalah dibuka, ditutup, dibuka kembali, diedit, ditugaskan, belum ditetapkan, label diperbarui, label dihapus, dirham, atau demilestoned.
+settings.event_pull_request=Permintaan tarik
+settings.event_pull_request_desc=Tarik permintaan dibuka, ditutup, dibuka kembali, diedit, ditugaskan, belum ditetapkan, label diperbarui, label dibersihkan, dirender, diremilahkan, atau disinkronkan.
+settings.event_issue_comment=Isu Komentar
+settings.event_issue_comment_desc=Komentar terbitan dibuat, diedit, atau dihapus.
+settings.event_release=Melepaskan
+settings.event_release_desc=Rilis diterbitkan dalam repositori.
+settings.active=Aktif
+settings.active_helper=Rincian tentang kejadian yang memicu kail tersebut akan disampaikan juga.
+settings.add_hook_success=Webhook baru telah ditambahkan.
+settings.update_webhook=Perbarui Webhook
+settings.update_hook_success=Webhook telah diperbarui.
+settings.delete_webhook=Menghapus Webhook
+settings.recent_deliveries=Pengiriman terbaru
+settings.hook_type=Jenis Hook
+settings.add_slack_hook_desc=Tambahkan Slack integrasi ke repositori Anda.
+settings.add_discord_hook_desc=Tambahkan integrasi Discord ke repositori Anda.
+settings.add_dingtalk_hook_desc=Tambahkan integrasi Dingtalk ke repositori Anda.
+settings.slack_token=Token
+settings.slack_domain=Domain
+settings.slack_channel=Channel
+settings.deploy_keys=Deploy Keys
+settings.deploy_keys_helper=Common Gotcha! Jika Anda ingin menambahkan kunci publik pribadi, tambahkan di setelan akun Anda.
+settings.add_deploy_key=Tambahkan Kunci Deploy
+settings.deploy_key_desc=Kunci penempatan hanya memiliki akses baca-saja. Mereka tidak sama dengan kunci SSH akun pribadi.
+settings.no_deploy_keys=Anda belum menambahkan kunci penggelaran.
+settings.title=Judul
+settings.deploy_key_content=Konten
+settings.key_been_used=Menerapkan konten utama telah digunakan.
+settings.key_name_used=Kunci penempatan dengan nama yang sama sudah ada.
+settings.add_key_success=Kunci penerapan baru '%s' telah berhasil ditambahkan!
+settings.deploy_key_deletion=Hapus Kunci Deploy
+settings.deploy_key_deletion_desc=Menghapus kunci penggelaran ini akan menghapus semua akses yang terkait untuk repositori ini. Apakah Anda ingin melanjutkan?
+settings.deploy_key_deletion_success=Kunci penempatan telah berhasil dihapus!
+settings.description_desc=Description of repository. Maximum 512 characters length.
+settings.description_length=Karakter tersedia
+
+diff.browse_source=Jelajahi Sumber
+diff.parent=induk
+diff.commit=melakukan
+diff.data_not_available=Data Diff Tidak Tersedia.
+diff.show_diff_stats=Tampilkan Statistik Diff
+diff.show_split_view=Tampilan Split
+diff.show_unified_view=Unified View
+diff.stats_desc= %d mengubah file dengan %d tambahan strong> dan %d penghapusan
+diff.bin=TEMPAT SAMPAH
+diff.view_file=Tampilan Berkas
+diff.file_suppressed=File diff ditekan karena terlalu besar
+diff.too_many_files=Beberapa file tidak ditampilkan karena terlalu banyak file yang berubah dalam diff ini
+
+release.releases=Rilis
+release.new_release=Rilis Baru
+release.draft=Konsep
+release.prerelease=Pra-Rilis
+release.edit=edit
+release.ahead=%d melakukan %s sejak rilis ini
+release.source_code=Kode sumber
+release.new_subheader=Publikasikan rilis untuk mengulangi produk.
+release.edit_subheader=Log perubahan terperinci dapat membantu pengguna memahami apa yang telah diperbaiki.
+release.tag_name=Nama tag
+release.target=Sasaran
+release.tag_helper=Memilih sebuah sekolah yang lumayan, atau membuat yang baru yang lumayan pada mempublikasikan.
+release.title=Gelar
+release.content=Konten
+release.write=Tulis
+release.preview=Pertinjauan
+release.loading=Memuat...
+release.prerelease_desc=Ini adalah pra-rilis
+release.prerelease_helper=Kami akan menunjukkan bahwa rilis ini tidak siap-produksi.
+release.cancel=Batal
+release.publish=Menerbitkan rilis
+release.save_draft=Simpan rancangan
+release.edit_release=Sunting Rilis
+release.delete_release=Hapus Rilisan ini
+release.deletion=Rilis dihapus
+release.deletion_desc=Deleting this release will delete the corresponding Git tag. Do you want to continue?
+release.deletion_success=Release has been deleted successfully!
+release.tag_name_already_exist=Release with this tag name already exists.
+release.tag_name_invalid=Nama tag ini tidak benar.
+release.downloads=Unduhan
+
+[org]
+org_name_holder=Nama organisasi
+org_full_name_holder=Nama organisasi penuh
+org_name_helper=Nama besar organisasi yang pendek dan tak terlupakan.
+create_org=Membuat organisasi
+repo_updated=Diperbarui
+people=Orang-orang
+invite_someone=Undang seseorang
+teams=Tim
+lower_members=anggota
+lower_repositories=repositori
+create_new_team=Buat Tim Baru
+org_desc=Deskripsi
+team_name=Nama Tim
+team_desc=Deskripsi
+team_name_helper=Anda akan menggunakan nama ini lagi tim ini dalam percakapan.
+team_desc_helper=Apa tentang semua tim ini?
+team_permission_desc=Apa tingkat izin ini harus?
+
+form.name_not_allowed=Organization name or pattern %q is not allowed.
+form.team_name_not_allowed=Team name or pattern %q is not allowed.
+
+settings=Pengaturan
+settings.options=Opsi
+settings.full_name=Nama lengkap
+settings.website=Situs web
+settings.location=Lokasi
+settings.update_settings=Setelan Pembaharuan
+settings.update_setting_success=Organisasi pengaturan telah diperbarui dengan sukses.
+settings.change_orgname_prompt=Perubahan ini akan mempengaruhi bagaimana link berhubungan dengan organisasi.
+settings.update_avatar_success=Organisasi pengaturan telah di perbarui dengan sukses.
+settings.delete=Hapus Organisasi
+settings.delete_account=Hapus Organisasi ini
+settings.delete_prompt=Organisasi akan dihapus secara permanen dan TIDAK dapat dipulihkan!
+settings.confirm_delete_account=Konfirmasi Penghapusan
+settings.delete_org_title=Organisasi dihapus
+settings.delete_org_desc=Organisasi ini akan dihapus secara permanen, apakah Anda ingin terus?
+settings.hooks_desc=Tambahkan webhooks yang akan dipicu untuk semua repositori di bawah organisasi ini.
+
+members.membership_visibility=Keanggotaan Visibilitas:
+members.public=Umum
+members.public_helper=jadilah pribadi
+members.private=Pribadi
+members.private_helper=jadikan publik
+members.member_role=Anggota Peran:
+members.owner=Pemilik
+members.member=Anggota
+members.remove=Menghapus
+members.leave=Meninggalkan
+members.invite_desc=Menambahkan anggota baru ke %s:
+members.invite_now=Undang Sekarang
+
+teams.join=Bergabung
+teams.leave=Tinggalkan
+teams.read_access=Baca Akses
+teams.read_access_helper=Tim ini dapat melihat dan mencabangkan repositori.
+teams.write_access=Akses menulis
+teams.write_access_helper=This team will be able to read its repositories, as well as push to them.
+teams.admin_access=Akses Admin
+teams.admin_access_helper=Tim ini akan dapat mendorong / menarik ke repositorinya, dan juga menambahkan kolaborator lainnya kepada mereka.
+teams.no_desc=Tim ini tidak memiliki deskripsi
+teams.settings=Pengaturan
+teams.owners_permission_desc=Pemilik memiliki akses penuh ke semua repositori strong> dan memiliki hak admin strong> ke organisasi.
+teams.members=Anggota tim
+teams.update_settings=Perbarui Setelan
+teams.delete_team=Hapus Tim Ini
+teams.add_team_member=Tambahkan Anggota Tim
+teams.delete_team_title=Penghapusan Tim
+teams.delete_team_desc=Karena tim ini akan dihapus, anggota tim ini mungkin kehilangan akses ke beberapa repositori. Apakah Anda ingin melanjutkan?
+teams.delete_team_success=Tim yang diberikan telah berhasil dihapus.
+teams.read_permission_desc=Keanggotaan dalam tim ini memberikan akses Baca strong>: anggota dapat melihat dan mengkloning repositori tim.
+teams.write_permission_desc=Keanggotaan dalam tim ini memberikan akses Tulis strong>: anggota dapat membaca dan mendorong ke repositori tim.
+teams.admin_permission_desc=Keanggotaan dalam tim ini memberikan akses Admin strong>: anggota dapat membaca, mendorong, dan menambahkan kolaborator ke repositori tim.
+teams.repositories=Tim Repositori
+teams.search_repo_placeholder=Cari repositori...
+teams.add_team_repository=Tambahkan Tim Repositori
+teams.remove_repo=Menghapus
+teams.add_nonexistent_repo=The repositori Anda mencoba untuk menambahkan tidak ada, silahkan buat terlebih dahulu.
+
+[admin]
+dashboard=Dasbor
+users=Pengguna
+organizations=Organisasi
+repositories=Repositori
+authentication=Autentikasi
+config=Konfigurasi
+notices=Pemberitahuan sistem
+monitor=Pemantauan
+first_page=Pertama
+last_page=Terakhir
+total=Total: %d
+
+dashboard.build_info=Informasi build
+dashboard.app_ver=Versi aplikasi
+dashboard.git_version=Versi Git
+dashboard.go_version=Versi Go (Golang)
+dashboard.build_time=Durasi
+dashboard.build_commit=Setuju Membangun
+dashboard.statistic=Statistik
+dashboard.operations=Operasi
+dashboard.system_status=Status Monitor Sistem
+dashboard.statistic_info=GogsDatabase memiliki %d pengguna, %d organisasi, %d kunci publik, %d repositori, %d jamtangan, %d bintang, %dactions, %d akses, %d isu, %d komentar, %d akun sosial, %d berikut, %d mirror, %d rilis, %d sumber masuk, %d webhooks, %d tonggak,%d label, %d tugas hook, %d tim, %d memperbarui tugas, %d lampiran.
+dashboard.operation_name=Nama operasi
+dashboard.operation_switch=Beralih
+dashboard.select_operation_to_run=Harap menentukan operasi yang dijalankan
+dashboard.operation_run=Menjalankan
+dashboard.clean_unbind_oauth=Bersihkan OAuth yang tidak terikat
+dashboard.clean_unbind_oauth_success=Semua unbind OAuthes telah berhasil dihapus.
+dashboard.delete_inactivate_accounts=Hapus semua akun yang tidak aktif
+dashboard.delete_inactivate_accounts_success=Semua akun nonaktif telah berhasil dihapus.
+dashboard.delete_repo_archives=Hapus semua arsip repositori
+dashboard.delete_repo_archives_success=Semua arsip repositori telah berhasil dihapus.
+dashboard.delete_missing_repos=Hapus semua catatan repositori yang kehilangan file Git
+dashboard.delete_missing_repos_success=Semua catatan repositori yang kehilangan file Git telah berhasil dihapus.
+dashboard.git_gc_repos=Lakukan pengumpulan sampah di repositori
+dashboard.git_gc_repos_success=Semua repositori telah berhasil mengumpulkan sampah.
+dashboard.resync_all_sshkeys=Rewrite '.ssh / authorized_keys' file (hati-hati: kunci non-Gogs akan hilang)
+dashboard.resync_all_sshkeys_success=Semua kunci publik telah berhasil ditulis ulang.
+dashboard.resync_all_hooks=Resync menerima, memperbarui dan menerima kait setelah menerima semua repositori
+dashboard.resync_all_hooks_success=Semua kuki pra-terima, pembaruan, dan pasca menerima repositori telah berhasil diverifikasi ulang.
+dashboard.reinit_missing_repos=Reinitialize semua catatan repositori yang kehilangan file Git
+dashboard.reinit_missing_repos_success=Semua catatan repositori yang kehilangan file Git telah berhasil diinisiasi ulang.
+
+dashboard.server_uptime=Server Uptime
+dashboard.current_goroutine=Goroutin saat ini
+dashboard.current_memory_usage=Penggunaan memori saat ini
+dashboard.total_memory_allocated=Total Memori Dialokasikan
+dashboard.memory_obtained=Memori yang didapat
+dashboard.pointer_lookup_times=Pointer Lookup Times
+dashboard.memory_allocate_times=Memory Allocate Times
+dashboard.memory_free_times=Memori Free Times
+dashboard.current_heap_usage=Penggunaan Heap saat ini
+dashboard.heap_memory_obtained=Memori Heap Diperoleh
+dashboard.heap_memory_idle=Memori tumpukan menganggur
+dashboard.heap_memory_in_use=Heap Memory In Use
+dashboard.heap_memory_released=Memori Heap Dirilis
+dashboard.heap_objects=Benda tumpukan
+dashboard.bootstrap_stack_usage=Bootstrap Stack Usage
+dashboard.stack_memory_obtained=Memori Stack Diperoleh
+dashboard.mspan_structures_usage=Penggunaan Struktur MSpan
+dashboard.mspan_structures_obtained=Struktur MSpan Diperoleh
+dashboard.mcache_structures_usage=Penggunaan Struktur MCache
+dashboard.mcache_structures_obtained=Struktur MCache Diperoleh
+dashboard.profiling_bucket_hash_table_obtained=Profil Meja Bucket Hash Diperoleh
+dashboard.gc_metadata_obtained=Metadata GC Diperoleh
+dashboard.other_system_allocation_obtained=Alokasi Sistem Lainnya Diperoleh
+dashboard.next_gc_recycle=Selanjutnya GC Recycle
+dashboard.last_gc_time=Sejak Waktu GC Terakhir
+dashboard.total_gc_time=Total GC Jeda
+dashboard.total_gc_pause=Total GC Jeda
+dashboard.last_gc_pause=Terakhir Jeda
+dashboard.gc_times=GC Times
+
+users.user_manage_panel=User Manage Panel
+users.new_account=Buat akun baru
+users.name=Nama
+users.activated=Diaktifkan
+users.admin=Admin
+users.repos=Repos
+users.created=Dibuat
+users.send_register_notify=Kirim Pemberitahuan Pendaftaran ke Pengguna
+users.new_success=Akun baru '%s' telah berhasil dibuat.
+users.edit=Edit
+users.auth_source=Sumber Autentikasi
+users.local=Lokal
+users.auth_login_name=Nama Masuk Autentikasi
+users.password_helper=Biarkan kosong agar tetap tidak berubah.
+users.update_profile_success=Profil akun telah berhasil diupdate.
+users.edit_account=Mengedit akun
+users.max_repo_creation=Maximum Repository Creation Limit
+users.max_repo_creation_desc=(Set -1 untuk menggunakan batas default global)
+users.is_activated=Akun ini diaktifkan
+users.prohibit_login=Akun ini tidak diperbolekan masuk
+users.is_admin=Akun ini memiliki izin administrator
+users.allow_git_hook=Akun ini memiliki izin untuk membuat kait Git
+users.allow_import_local=Akun ini memiliki izin untuk mengimpor repositori lokal
+users.update_profile=Perbarui Profil Akun
+users.delete_account=Hapus Akun Ini
+users.still_own_repo=Akun ini masih memiliki kepemilikan setidaknya satu repositori, Anda harus menghapus atau mentransfernya terlebih dahulu.
+users.still_has_org=Akun ini masih memiliki keanggotaan dalam setidaknya satu organisasi, Anda harus meninggalkan atau menghapus organisasi terlebih dahulu.
+users.deletion_success=Akun telah berhasil dihapus!
+
+orgs.org_manage_panel=Organisasi Kelola Panel
+orgs.name=Nama
+orgs.teams=Tim
+orgs.members=Anggota
+
+repos.repo_manage_panel=Pengelolaan Repositori Panel
+repos.owner=Pemilik
+repos.name=Nama
+repos.private=Pribadi
+repos.watches=Jam tangan
+repos.stars=Bintang
+repos.issues=Masalah
+repos.size=Ukuran
+
+auths.auth_sources=Sumber Autentikasi
+auths.new=Tambahkan Sumber Baru
+auths.name=Nama
+auths.type=Mengetik
+auths.enabled=Diaktifkan
+auths.default=Standar
+auths.updated=Diperbarui
+auths.auth_type=Jenis Autentikasi
+auths.auth_name=Nama Autentikasi
+auths.security_protocol=Protokol Keamanan
+auths.domain=Domain
+auths.host=Tuan rumah
+auths.port=Pelabuhan
+auths.bind_dn=Bind DN
+auths.bind_dn_helper=Anda dapat menggunakan '%s' sebagai placeholder untuk nama pengguna, misalnya DOM\%s
+auths.bind_password=Bind Password
+auths.bind_password_helper=Peringatan: Kata sandi ini disimpan dalam teks biasa. Jangan gunakan akun dengan privilege yang tinggi.
+auths.user_base=Basis pencarian pengguna
+auths.user_dn=Pengguna DN
+auths.attribute_username=Atribut nama pengguna
+auths.attribute_username_placeholder=Biarkan kosong untuk menggunakan nilai field form masuk untuk nama pengguna.
+auths.attribute_name=Atribut Nama Depan
+auths.attribute_surname=Atribut nama keluarga
+auths.attribute_mail=Atribut Email
+auths.verify_group_membership=Verifikasi keanggotaan grup
+auths.group_search_base_dn=Group Search Base DN
+auths.group_filter=Filter Kelompok
+auths.group_attribute_contain_user_list=Atribut Grup yang Mengandung Daftar Pengguna
+auths.user_attribute_listed_in_group=Atribut Pengguna Terdaftar di Grup
+auths.attributes_in_bind=Ambil atribut dalam konteks Bind DN
+auths.filter=Pengguna saringan
+auths.admin_filter=Filter Admin
+auths.ms_ad_sa=Otentifikasi sistem
+auths.smtp_auth=Autentikasi tipe SMTP
+auths.smtphost=Host SMTP
+auths.smtpport=Port SMTP
+auths.allowed_domains=Domains di izinkan
+auths.allowed_domains_helper=Biarkan kosong untuk tidak membatasi setiap domain, beberapa Domain harus dipisahkan oleh koma ',',.
+auths.enable_tls=Aktifkan Enkripsi TLS
+auths.skip_tls_verify=Lewati Verifikasi TLS
+auths.pam_service_name=Nama layanan PAM
+auths.enable_auto_register=Mengaktifkan pendaftaran otomatis
+auths.edit=Ubah Pengaturan Autentikasi
+auths.activated=Autentikasi ini diaktifkan
+auths.default_auth=Autentikasi ini adalah sumber masuk bawaan
+auths.new_success=Autentikasi baru %s berhasil ditambahkan.
+auths.update_success=Pengaturan autentikasi berhasil diperbarui.
+auths.update=Perbarui Pengaturan Autentikasi
+auths.delete=Hapus Autentikasi Ini
+auths.delete_auth_title=Penghapusan Autentikasi
+auths.delete_auth_desc=Autentikasi ini akan dihapus, apakah Anda ingin melanjutkan?
+auths.still_in_used=Autentikasi ini masih digunakan oleh pengguna lain, silakan hapus atau ubah pengguna tersebut ke tipe masuk lainnya.
+auths.deletion_success=Autentikasi berhasil dihapus!
+auths.login_source_exist=Sumber masuk %s sudah tersedia.
+auths.github_api_endpoint=Titik akhir API
+
+config.not_set=(tidak diterapkan)
+config.server_config=Konfigurasi Server
+config.brand_name=Nama Merek/Logo/Perusahaan
+config.run_user=Menjalankan penggunaa
+config.run_mode=Run mode
+config.server.external_url=URL eksternal
+config.server.domain=Domain
+config.server.protocol=Protokol
+config.server.http_addr=Alamat HTTP
+config.server.http_port=Port HTTP
+config.server.cert_file=Berkas Sertifikat
+config.server.key_file=Berkas baru
+config.server.tls_min_version=Minimum versi TLS
+config.server.unix_socket_permission=Aturan unix socket
+config.server.local_root_url=Lokal root url
+config.server.offline_mode=mode luring
+config.server.disable_router_log=Menonaktifkan router log
+config.server.enable_gzip=aktifkan gzip
+config.server.app_data_path=target data aplikasi
+config.server.load_assets_from_disk=memanggil asset dari disk
+config.server.landing_url=Landing URL
+
+config.ssh_config=Konfigurasi SSH
+config.ssh.enabled=Diaktifkan
+config.ssh.domain=Exposed domain
+config.ssh.port=Exposed port
+config.ssh.root_path=Path akar
+config.ssh.keygen_path=Path keygen
+config.ssh.key_test_path=Key test path
+config.ssh.minimum_key_size_check=Minimum key size check
+config.ssh.minimum_key_sizes=Ukuran kunci minimum
+config.ssh.rewrite_authorized_keys_at_start=Tulis ulang "authorized_keys" saat memulai
+config.ssh.start_builtin_server=Start builtin server
+config.ssh.listen_host=Listen host
+config.ssh.listen_port=Listen port
+config.ssh.server_ciphers=Cipher server
+config.ssh.server_macs=MAC server
+config.ssh.server_algorithms=Algoritma server
+
+config.repo_config=Konfigurasi Repositori
+config.repo.root_path=Path akar
+config.repo.script_type=Jenis skrip
+config.repo.ansi_chatset=Set karakter ANSI
+config.repo.force_private=Paksa pribadi
+config.repo.max_creation_limit=Max creation limit
+config.repo.preferred_licenses=Preferred licenses
+config.repo.disable_http_git=Disable HTTP Git
+config.repo.enable_local_path_migration=Enable local path migration
+config.repo.enable_raw_file_render_mode=Enable raw file render mode
+config.repo.commits_fetch_concurrency=Commits fetch concurrency
+config.repo.editor.line_wrap_extensions=Editor line wrap extensions
+config.repo.editor.previewable_file_modes=Editor previewable file modes
+config.repo.upload.enabled=Pengunggahan diaktifkan
+config.repo.upload.temp_path=Path unggah sementara
+config.repo.upload.allowed_types=Tipe unggah yang diizinkan
+config.repo.upload.file_max_size=Batas ukuran unggah berkas
+config.repo.upload.max_files=Batas unggah berkas
+
+config.db_config=Konfigurasi Basis Data
+config.db.type=Tipe
+config.db.host=Host
+config.db.name=Nama
+config.db.schema=Skema
+config.db.schema_helper=(hanya untuk "postgres")
+config.db.user=Pengguna
+config.db.ssl_mode=Modus SSL
+config.db.ssl_mode_helper=(hanya untuk "postgres")
+config.db.path=Path
+config.db.path_helper=(hanya untuk "sqlite3")
+config.db.max_open_conns=Maksimum koneksi yang terbuka
+config.db.max_idle_conns=Maksimum koneksi menganggur
+
+config.security_config=Konfigurasi keamanan
+config.security.login_remember_days=Berapa hari mengingat log masuk
+config.security.cookie_remember_name=Ingat cookie
+config.security.cookie_username=Cookie pengguna
+config.security.cookie_secure=Aktifkan cookie aman
+config.security.reverse_proxy_auth_user=Reverse proxy authentication header
+config.security.enable_login_status_cookie=Enable login status cookie
+config.security.login_status_cookie_name=Login status cookie
+config.security.local_network_allowlist=Local network allowlist
+
+config.email_config=Konfigurasi surel
+config.email.enabled=Enabled
+config.email.subject_prefix=Subject prefix
+config.email.host=Host
+config.email.from=Dari
+config.email.user=Pengguna
+config.email.disable_helo=Disable HELO
+config.email.helo_hostname=HELO hostname
+config.email.skip_verify=Lewati verifikasi sertifikat
+config.email.use_certificate=Pakai sertifikat ubahan
+config.email.cert_file=Berkas sertifikat
+config.email.key_file=Berkas kunci
+config.email.use_plain_text=Gunakan teks polos
+config.email.add_plain_text_alt=Tambahkan alternatif teks polos
+config.email.send_test_mail=Kirim surel uji
+config.email.test_mail_failed=Gagal mengirim surel uji ke '%s': %v
+config.email.test_mail_sent=Surel uji telah dikirim ke '%s'.
+
+config.auth_config=Konfigurasi otentikasi
+config.auth_custom_logout_url=Custom logout URL
+config.auth.activate_code_lives=Activate code lives
+config.auth.reset_password_code_lives=Reset password code lives
+config.auth.require_email_confirm=Perlu konfirmasi surel
+config.auth.require_sign_in_view=Require sign in view
+config.auth.disable_registration=Nonaktifkan pendaftaran
+config.auth.enable_registration_captcha=Aktifkan captcha pendaftaran
+config.auth.enable_reverse_proxy_authentication=Aktifkan otentikasi proksi balik
+config.auth.enable_reverse_proxy_auto_registration=Aktifkan pendaftaran otomatis proksi balik
+config.auth.reverse_proxy_authentication_header=Reverse proxy authentication header
+
+config.user_config=Konfigurasi pengguna
+config.user.enable_email_notify=Aktifkan notifikasi surel
+
+config.session_config=Konfigurasi Sesi
+config.session.provider=Penyedia
+config.session.provider_config=Konfigurasi penyedia
+config.session.cookie_name=Cookie
+config.session.https_only=Hanya HTTPS
+config.session.gc_interval=Interval GC
+config.session.max_life_time=Max life time
+config.session.csrf_cookie_name=CSRF cookie
+
+config.cache_config=Konfigurasi Cache
+config.cache.adapter=Adaptor
+config.cache.interval=Interval GC
+config.cache.host=Host
+
+config.http_config=Konfigurasi HTTP
+config.http.access_control_allow_origin=Access control allow origin
+
+config.attachment_config=Attachment configuration
+config.attachment.enabled=Enabled
+config.attachment.path=Path
+config.attachment.allowed_types=Allowed types
+config.attachment.max_size=Batas ukuran
+config.attachment.max_files=Batas berkas
+
+config.release_config=Release configuration
+config.release.attachment.enabled=Lampiran diaktifkan
+config.release.attachment.allowed_types=Jens lampiran yang diizinkan
+config.release.attachment.max_size=Batas ukuran lampiran
+config.release.attachment.max_files=Batas berkas lampiran
+
+config.picture_config=Konfigurasi Gambar
+config.picture.avatar_upload_path=Path unggah avatar pengguna
+config.picture.repo_avatar_upload_path=Path unggah avatar repositori
+config.picture.gravatar_source=Sumber gravatar
+config.picture.disable_gravatar=Nonaktifkan Gravatar
+config.picture.enable_federated_avatar=Enable federated avatars
+
+config.mirror_config=Konfigurasi cermin
+config.mirror.default_interval=Interval baku
+
+config.webhook_config=Webhook Konfigurasi
+config.webhook.types=Tipe
+config.webhook.deliver_timeout=Deliver timeout
+config.webhook.skip_tls_verify=Skip TLS verify
+
+config.git_config=Konfigurasi Git
+config.git.disable_diff_highlight=Disable diff syntax highlight
+config.git.max_diff_lines=Diff lines limit (for a single file)
+config.git.max_diff_line_characters=Diff characters limit (for a single line)
+config.git.max_diff_files=Diff files limit (for a single diff)
+config.git.gc_args=GC arguments
+config.git.migrate_timeout=Migration timeout
+config.git.mirror_timeout=Mirror fetch timeout
+config.git.clone_timeout=Tenggat waktu klon
+config.git.pull_timeout=Tenggat waktu pull
+config.git.gc_timeout=Tenggat waktu GC
+
+config.lfs_config=Konfigurasi LFS
+config.lfs.storage=Penyimpanan
+config.lfs.objects_path=Path obyek
+
+config.log_config=Konfigurasi log
+config.log_file_root_path=Path akar berkas log
+config.log_mode=Mode
+config.log_options=Pilihan
+
+monitor.cron=Tugas Cron
+monitor.name=Nama
+monitor.schedule=Jadwal
+monitor.next=Waktu Berikutnya
+monitor.previous=Waktu Sebelumnya
+monitor.execute_times=Jalankan Waktu
+monitor.process=Menjalankan proses
+monitor.desc=Deskripsi
+monitor.start=Waktu Mulai
+monitor.execute_time=Waktu Pelaksanaan
+
+notices.system_notice_list=Sistem pemberitahuan
+notices.view_detail_header=Lihat Pemberitahuan Detail
+notices.actions=Tindakan
+notices.select_all=Pilih Semua
+notices.deselect_all=Batalkan semua pilihan
+notices.inverse_selection=Pilih Terbalaik
+notices.delete_selected=Hapus yang dipilih
+notices.delete_all=Menghapus semua pemberitahuan
+notices.type=Jenis
+notices.type_1=Repositori
+notices.desc=Deskripsi
+notices.op=Op.
+notices.delete_success=Sistem pemberitahuan telah berhasil dihapus.
+
+[action]
+create_repo=repositori dibuat %s
+rename_repo=repositori berganti nama dari %[1]s ke %[3]s
+commit_repo=didorong ke %[3]s di %[4]s
+compare_commits=Lihat perbandingan dari komit ini %d
+transfer_repo=repositori %s ditransfer ke %s
+create_issue=`masalah yang dibuka %s#%[2]s`
+close_issue=`masalah yang ditutup %s#%[2]s`
+reopen_issue=`masalah yang dibuka kembali %s#%[2]s`
+comment_issue=`mengomentari masalah %s#%[2]s`
+create_pull_request=`membuat permintaan tarik %s#%[2]s`
+close_pull_request=`permintaan tarik yang ditutup %s#%[2]s`
+reopen_pull_request=`permintaan tarik dibuka kembali %s#%[2]s`
+merge_pull_request=`menggabungkan permintaan tarik %s#%[2]s`
+create_branch=created new branch %[3]s at %[4]s
+delete_branch=deleted branch %[2]s at %[3]s
+push_tag=pushed tag %[2]s to %[3]s
+delete_tag=deleted tag %[2]s at %[3]s
+fork_repo=cabangkan repositori ke %s
+mirror_sync_push=synced commits to %[3]s at %[4]s from mirror
+mirror_sync_create=synced new reference %[2]s to %[3]s from mirror
+mirror_sync_delete=synced and deleted reference %[2]s at %[3]s from mirror
+
+[tool]
+ago=lalu
+from_now=dari sekarang
+now=sekarang
+1s=1 detik %s
+1m=1 menit %s
+1h=1 jam %s
+1d=1 hari %s
+1w=1 Minggu %s
+1mon=1 bulan %s
+1y=1 tahun %s
+seconds=%d detik %s
+minutes=%d menit %s
+hours=%d jam %s
+days=%d hari %s
+weeks=%d minggu %s
+months=%d bulan %s
+years=%d tahun %s
+raw_seconds=detik
+raw_minutes=menit
+raw_hours=jam
+
+[dropzone]
+default_message=Jatuhkan berkas disini atau klik untuk mengunggah.
+invalid_input_type=Anda tidak bisa mengunggah berkas jenis ini.
+file_too_big=Ukuran berkas ({{filesize}} MB) melebihi ukuran maksimum ({{maxFilesize}} MB).
+remove_file=Hapus berkas
+
diff --git a/conf/locale/locale_it-IT.ini b/conf/locale/locale_it-IT.ini
index e0636ac67c7..e93418ec058 100644
--- a/conf/locale/locale_it-IT.ini
+++ b/conf/locale/locale_it-IT.ini
@@ -9,7 +9,6 @@ sign_out=Esci
sign_up=Registrati
register=Registrati
website=Sito Web
-version=Versione
page=Pagina
template=Template
language=Lingua
@@ -44,23 +43,27 @@ issues=Problemi
cancel=Annulla
+[status]
+page_not_found=Pagina Non Trovata
+internal_server_error=Errore Interno del Server
+
[install]
install=Installazione
title=Passi d'installazione per il primo avvio
docker_helper=Se stai utilizzando Gogs su Docker, per favore leggi le Linee guida con attenzione prima di cambiare qualcosa su questa pagina!
-requite_db_desc=Gogs necessita MySQL, PostgreSQL, SQLite3 o TiDB.
+requite_db_desc=Gogs requires MySQL, PostgreSQL, SQLite3 or TiDB (via MySQL protocol).
db_title=Impostazioni Database
db_type=Tipo di database
host=Host
user=Utente
password=Password
db_name=Nome del database
+db_schema=Schema
db_helper=Utilizza il motore INNODB con codifica utf8_general_ci per MySQL.
ssl_mode=Modalità SSL
path=Percorso
-sqlite_helper=Il path assoluto per il database SQLite3 o TiDB. Per favore usa il path assoluto quando lo avvii come servizio.
-err_empty_db_path=Il percorso file del database SQLite3 o TiDB non può essere vuoto.
-err_invalid_tidb_name=Il nome del database TiDB non ammette caratteri "." e "-".
+sqlite_helper=Il percorso del file di database di SQLite3. Si prega di utilizzare il percorso assoluto quando si avvia come servizio.
+err_empty_db_path=Il percorso del database SQLite3 non può essere vuoto.
no_admin_and_disable_registration=Non puoi disabilitare la registrazione senza aver creato un amministratore.
err_empty_admin_password=La password dell'amministratore non puo' essere vuota.
@@ -75,12 +78,17 @@ domain=Dominio
domain_helper=Questo influisce sugli URL per il clonaggio via SSH.
ssh_port=Porta SSH
ssh_port_helper=Numero di porta utilizzato dal server SSH, lasciare vuoto per disabilitare l'integrazione SSH.
+use_builtin_ssh_server=Usa il server SSH integrato
+use_builtin_ssh_server_popup=Avvia il server SSH integrato per le operazioni Git per distinguerle dal demone SSH di sistema.
http_port=Porta HTTP
http_port_helper=Porta di ascolto dell'applicazione.
app_url=URL Applicazione
app_url_helper=Questo influisce sugli URL per il clonaggio via HTTP/HTTPS e da qualche parte nella posta elettronica.
log_root_path=Percorso dei log
log_root_path_helper=Directory in cui scrivere i file di log.
+enable_console_mode=Abilita modalità Terminale
+enable_console_mode_popup=In aggiunta alla modalità file, invia i log anche al terminale.
+default_branch=Default Branch
optional_title=Impostazioni Facoltative
email_title=Impostazioni E-mail
@@ -96,8 +104,8 @@ offline_mode=Abilita Modalità Offline
offline_mode_popup=Disabilita il CDN anche in modalità produttiva, tutte le risorse saranno servite localmente.
disable_gravatar=Disattiva il servizio Gravatar
disable_gravatar_popup=Disabilita Gravatar e sorgenti customizzate, tutti gli avatar vengono caricati dagli utenti o come predefinito.
-federated_avatar_lookup=Enable Federated Avatars Lookup
-federated_avatar_lookup_popup=Enable federated avatars lookup to use federated open source service based on libravatar.
+federated_avatar_lookup=Abilita Federated Avatars
+federated_avatar_lookup_popup=Abilita ricerca dell'avatar nel servizio libravatar Federated Avatars.
disable_registration=Disabilita Registrazione Manuale
disable_registration_popup=Disabilita la registrazione manuale degli utenti, solo gli amministratori possono creare account.
enable_captcha=Abilita Captcha
@@ -116,10 +124,13 @@ sqlite3_not_available=Questa versione non supporta SQLite3, si prega di scaricar
invalid_db_setting=La configurazione del database non è corretta: %v
invalid_repo_path=Percorso root del repository invalido: %v
run_user_not_match=Run user non è l'utente corrente: %s -> %s
+smtp_host_missing_port=All'Host SMTP manca la porta nell'indirizzo.
+invalid_smtp_from=Campo SMTP From non valido: %v
save_config_failed=Fallito il salvataggio della configurazione: %v
+init_failed=Impossibile inizializzare l'applicazione: %v
invalid_admin_setting=Impostazioni account Admin non valide: %v
install_success=Benvenuto! Siamo felici che tu abbia scelto Gogs, buon divertimento.
-invalid_log_root_path=Log root path is invalid: %v
+invalid_log_root_path=Percorso deilog non valido: %v
[home]
uname_holder=Nome Utente o E-mail
@@ -137,6 +148,7 @@ issues.in_your_repos=Nei tuoi repository
[explore]
repos=Repository
users=Utenti
+organizations=Organizzazioni
search=Cerca
[auth]
@@ -145,6 +157,8 @@ register_hepler_msg=Hai già un account? Accedi ora!
social_register_hepler_msg=Hai già un account? Associalo ora!
disable_register_prompt=Siamo spiacenti, registrazione è stata disabilitata. Si prega di contattare l'amministratore del sito.
disable_register_mail=Siamo spiacenti, la conferma di registrazione via Mail è stata disattivata.
+auth_source=Fonte di autenticazione
+local=Locale
remember_me=Ricordami
forgot_password=Password dimenticata
forget_password=Password dimenticata?
@@ -156,7 +170,6 @@ prohibit_login_desc=Il tuo account è impossibilitato al login, contatta l'ammin
resent_limit_prompt=Siamo spiacenti, si stanno inviando e-mail di attivazione troppo spesso. Si prega di attendere 3 minuti.
has_unconfirmed_mail=Ciao %s, hai un indirizzo di posta elettronica non confermato (%s). Se non hai ricevuto una e-mail di conferma o vuoi riceverla nuovamente, fare clic sul pulsante qui sotto.
resend_mail=Clicca qui per inviare nuovamente l'e-mail di attivazione
-email_not_associate=Questo indirizzo e-mail non è associato ad alcun account.
send_reset_mail=Clicca qui per (ri)inviare la tua e-mail di reimpostazione password
reset_password=Reimposta la tua Password
invalid_code=Siamo spiacenti, il codice di conferma è scaduto o non valido.
@@ -164,6 +177,14 @@ reset_password_helper=Clicca qui per reimpostare la password
password_too_short=La lunghezza della password non può essere meno 6 caratteri.
non_local_account=Gli account non locali non possono modificare le password tramite Gogs.
+login_two_factor=Autenticazione in Due Passaggi
+login_two_factor_passcode=Codice di autenticazione
+login_two_factor_enter_recovery_code=Inserisci il codice di recupero dell'Autenticazione a due Fattori
+login_two_factor_recovery=Recupero a due fattori
+login_two_factor_recovery_code=Recupera il codice
+login_two_factor_enter_passcode=Inserisci un codice di accesso a due fattori
+login_two_factor_invalid_recovery_code=Il codice di recupero è stato utilizzato o non è valido.
+
[mail]
activate_account=Per favore attiva il tuo account
activate_email=Verifica il tuo indirizzo e-mail
@@ -199,6 +220,7 @@ Content=Contenuto
require_error=` non può essere vuoto.`
alpha_dash_error=` ammessi solo caratteri alfanumerici o trattini(-_).`
alpha_dash_dot_error=` ammessi solo caratteri alfanumerici o trattini(-_) o punti.`
+alpha_dash_dot_slash_error=` ammessi solo caratteri alfanumerici o trattini(-_) o punti o slash.`
size_error='deve essere %s.'
min_size_error=` deve contenere almeno %s caratteri.`
max_size_error=` deve contenere massimo %s caratteri.`
@@ -215,6 +237,7 @@ org_name_been_taken=Il nome dell'Organizzazione è già utlizzato.
team_name_been_taken=Il nome del Team è già utilizzato.
email_been_used=L'indirizzo E-mail è già utilizzato.
username_password_incorrect=Nome utente o password incorretti.
+auth_source_mismatch=La sorgente di autenticazione selezionata non è associata all'utente.
enterred_invalid_repo_name=Si prega di assicurarsi che il nome del repository inserito sia corretto.
enterred_invalid_owner_name=Si prega di assicurarsi che il nome del proprietario inserito sia corretto.
enterred_invalid_password=Verificare che la password inserita sia corretta.
@@ -242,19 +265,18 @@ following=Seguiti
follow=Segui
unfollow=Non seguire più
-form.name_reserved=L'username '%s' è riservato.
-form.name_pattern_not_allowed=La struttura del nome utente '%s' non è consentita.
+form.name_not_allowed=Nome utente o schema %q non consentito.
[settings]
profile=Profilo
password=Password
avatar=Avatar
ssh_keys=Chiavi SSH
-social=Account Sociali
-applications=Applicazioni
+security=Sicurezza
+repos=Repository
orgs=Organizzazioni
+applications=Applicazioni
delete=Elimina account
-uid=Uid
public_profile=Profilo pubblico
profile_desc=Il tuo indirizzo e-mail è pubblico e sarà usato per ogni notifica inerente al tuo account, e per qualsiasi operazione web effettuata attraverso il sito.
@@ -270,7 +292,7 @@ continue=Continua
cancel=Annulla
lookup_avatar_by_mail=Ricerca Avatar per mail
-federated_avatar_lookup=Federated Avatar Lookup
+federated_avatar_lookup=Ricerca Federated Avatars
enable_custom_avatar=Abilita avatar personalizzato
choose_new_avatar=Scegli un nuovo avatar
update_avatar=Aggiorna le impostazioni avatar
@@ -295,6 +317,7 @@ delete_email=Elimina
email_deletion=Eliminazione e-mail
email_deletion_desc=La procedura di rimozione indirizzo email eliminerà tutte le informazioni correlate dal tuo account. Si desidera continuare?
email_deletion_success=Indirizzo e-mail eliminato con successo!
+email_deletion_primary=Cannot delete primary email address.
add_new_email=Aggiungi un nuovo indirizzo E-mail
add_email=Aggiungi E-mail
add_email_confirmation_sent=Una nuova email di conferma è stata inviata a '%s', per favore controlla la tua posta in arrivo nelle prossime %d ore per completare il processo di registrazione.
@@ -320,14 +343,36 @@ no_activity=Nessuna attività recente
key_state_desc=Hai utilizzato questa chiave negli ultimi 7 giorni
token_state_desc=Questo token e' satato utilizzato negli ultimi 7 giorni
-manage_social=Gestisci gli Account Sociali Associati
-social_desc=Questa è un elenco degli account sociali associati. Rimuovere qualsiasi account che non si riconosce.
-unbind=Disassocia
-unbind_success=Account sociale disassociato.
+two_factor=Autenticazione in Due Passaggi
+two_factor_status=Stato:
+two_factor_on=Attiva
+two_factor_off=Non attivo
+two_factor_enable=Abilita
+two_factor_disable=Disattivata
+two_factor_view_recovery_codes=Visualizza e memorizza i tuoi codici di recupero in un posto sicuro. Puoi utilizzarli come codice di sicurezza se perdi gli accessi all'applicazione di autenticazione.
+two_factor_http=Per le operazioni HTTP/HTTPS, non sei più in grado di utilizzare nome utente e password. Si prega di creare e utilizzare Token di accesso personale come credenziali, ad esempio. %[3]s.
+two_factor_enable_title=Abilita l'autenticazione in due passaggi
+two_factor_scan_qr=Per favore, utilizza la tua applicazione di autenticazione per scansionare l'immagine:
+two_factor_or_enter_secret=O inserisci la chiave segreta:
+two_factor_then_enter_passcode=Poi inserisci la chiave di sicurezza:
+two_factor_verify=Verifica
+two_factor_invalid_passcode=La chiave di sicurezza che hai inserito non è valida, riprova!
+two_factor_reused_passcode=La chiave di sicurezza che hai inserito è già stata utilizzata, provane un'altra!
+two_factor_enable_error=Impossibile abilitare l'autenticazione a due fattori: %v
+two_factor_enable_success=Autenticazione a due fattori abilitata per il tuo account con successo!
+two_factor_recovery_codes_title=Codici di recupero autenticazione a due fattori
+two_factor_recovery_codes_desc=I codici di recupero vengono utilizzati quando si perde temporaneamente l'accesso all'applicazione di autenticazione. Ogni codice di recupero può essere utilizzato solo una volta, si prega di mantenere questi codici in un posto sicuro.
+two_factor_regenerate_recovery_codes=Rigenera codici di recupero
+two_factor_regenerate_recovery_codes_error=Impossibile rigenerare codici di recupero: %v
+two_factor_regenerate_recovery_codes_success=I nuovi codici di recupero sono stati generati correttamente!
+two_factor_disable_title=Disabilita autenticazione a due fattori
+two_factor_disable_desc=Il livello di sicurezza del tuo account diminuirà disabilitando l'autenticazione a due fattori. Vuoi continuare?
+two_factor_disable_success=L'autenticazione a due fattori è stata disabilitata!
manage_access_token=Gestisci i Token di Accesso Personale
generate_new_token=Genera Nuovo Token
tokens_desc=I Token che hai generato e che possono essere utilizzati per accedere alle API Gogs.
+access_token_tips=The personal access token may be used as either username or password. It is recommended to use the "x-access-token" as the username and the personal access token as the password for Git applications.
new_token_desc=Da questo momento, ogni token avrà pieno accesso al tuo account.
token_name=Nome Token
generate_token=Genera Token
@@ -336,6 +381,16 @@ delete_token=Elimina
access_token_deletion=Eliminazione Token di accesso personale
access_token_deletion_desc=Eliminare questo token di accesso personale rimuoverà tutti i relativi accessi di applicazione. Si desidera continuare?
delete_token_success=Il token di accesso personale è stato eliminato! Non dimenticare di aggiornare anche l'applicazione.
+token_name_exists=Un token con lo stesso nome esiste già.
+
+orgs.none=Non sei membro di alcuna organizzazione.
+orgs.leave_title=Abbandona una organizzazione
+orgs.leave_desc=Abbandonando l'organizzazione perderai l'accesso a tutti i repository e i gruppi. Confermi?
+
+repos.leave=Abbandona
+repos.leave_title=Lascia il repository
+repos.leave_desc=Perderai l'accesso al repository dopo che hai lasciato. Vuoi continuare?
+repos.leave_success=Hai lasciato il repository '%s' con successo!
delete_account=Elimina Account
delete_prompt=L'operazione eliminerà permanentemente l'account e NON POTRÀ essere annullata!
@@ -348,7 +403,9 @@ owner=Proprietario
repo_name=Nome Repository
repo_name_helper=I migliori nomi dei repository sono brevi, facili da memorizzare e univoci.
visibility=Visibilità
+unlisted=Unlisted
visiblity_helper=Questo repository è privato
+unlisted_helper=This repository is Unlisted
visiblity_helper_forced=L'amministratore del sito ha deciso che tutti i nuovi repository devono essere privati
visiblity_fork_helper=(La modifica di questo valore avrà effetto su tutti i fork)
clone_helper=Hai bisogno di aiuto per la clonazione? Visita Aiuto!
@@ -366,32 +423,34 @@ auto_init=Inizializzare questo repository con i file e il modello selezionati
create_repo=Crea Repository
default_branch=Ramo (Branch) predefinito
mirror_prune=Rimuovi
-mirror_prune_desc=Remove any remote-tracking references that no longer exist on the remote
+mirror_prune_desc=Rimuovi ogni riferimento di monitoraggio remoto che non esiste più sul telecomando
mirror_interval=Intervallo Mirror (in ore)
mirror_address=Indirizzo del mirror
mirror_address_desc=Si prega di includere nell'indirizzo le credenziali utente necessarie.
-mirror_last_synced=Last Synced
+mirror_last_synced=Ultimo aggiornamento
watchers=Osservatori
stargazers=Fan
forks=Fork
+repo_description_helper=Descrizione della repository. Lunghezza massima di 512 caratteri.
+repo_description_length=Caratteri disponibili
form.reach_limit_of_creation=Il proprietario ha raggiunto il limite massimo di %d repository creati.
-form.name_reserved=Il nome repository %s è riservato.
-form.name_pattern_not_allowed=La struttura del nome del repository %s non è consentita.
+form.name_not_allowed=Nome della repository o schema %q non consentiti.
need_auth=Richiesta di autorizzazione
migrate_type=Tipo di migrazione
migrate_type_helper=Questo repository sarà un mirror
migrate_repo=Migra Repository
migrate.clone_address=Duplica Indirizzo
-migrate.clone_address_desc=Può essere un URL HTTP/HTTPS/GIT o il percorso del server locale.
+migrate.clone_address_desc=Può essere un url HTTP/HTTPS/GIT.
+migrate.clone_address_desc_import_local=Puoi anche migrare un repository usando un path locale sul server.
migrate.permission_denied=Non è consentito importare repository locali.
migrate.invalid_local_path=Percorso locale non valido, non esiste o non è una cartella.
+migrate.clone_address_resolved_to_blocked_local_address=Clone address resolved to a local network address that is implicitly blocked.
migrate.failed=Migrazione non riuscita: %v
mirror_from=mirror da
forked_from=forkato da
-fork_from_self=Non puoi forkare il tuo stesso repository!
copy_link=Copia
copy_link_success=Copiato!
copy_link_error=Premere ⌘-C o Ctrl-C per copiare
@@ -407,9 +466,9 @@ quick_guide=Guida rapida
clone_this_repo=Clona questo repository
create_new_repo_command=Crea nuovo repository da riga di comando
push_exist_repo=Push un repo esistente dalla riga di comando
-repo_is_empty=Questo repository è vuoto, si prega di tornare più tardi!
+bare_message=This repository does not have any content yet.
-code=Codice
+files=File
branch=Ramo (Branch)
tree=Albero (Tree)
filter_branch_and_tag=Filtra per branch o tag
@@ -420,12 +479,23 @@ pulls=Pull Requests
labels=Etichette
milestones=Traguardi
commits=Commit
+git_branches=Rami (Branch)
releases=Rilasci
file_raw=Originale
file_history=Cronologia
file_view_raw=Vedi originale
file_permalink=Permalink
file_too_large=Questo file è troppo grande per essere mostrato
+video_not_supported_in_browser=Il tuo browser non supporta i tag "video" di HTML5.
+
+branches.overview=Panoramica
+branches.active_branches=Rami (Branch) attivi
+branches.stale_branches=Stale Branches
+branches.all=Tutti i rami (branch)
+branches.updated_by=Updated %[1]s by %[2]s
+branches.change_default_branch=Cambia branch di default
+branches.default_deletion_not_allowed=Cannot delete the default branch.
+branches.protected_deletion_not_allowed=Cannot delete a protected branch.
editor.new_file=Nuovo file
editor.upload_file=Carica File
@@ -433,38 +503,41 @@ editor.edit_file=Modifica file
editor.preview_changes=Anteprima modifiche
editor.cannot_edit_non_text_files=Non è possibile modificare i file non di testo
editor.edit_this_file=Modifica questo file
-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 before editing the file
-editor.delete_this_file=Delete this file
-editor.must_have_write_access=You must have write access to make or propose changes to this file
-editor.file_delete_success=File '%s' has been deleted successfully!
-editor.name_your_file=Name your file...
-editor.filename_help=To add directory, just type it and press /. To remove a directory, go to the beginning of the field and press backspace.
-editor.or=or
-editor.cancel_lower=cancel
-editor.commit_changes=Commit Changes
-editor.add_tmpl=Add '%s/'
-editor.add=Add '%s'
-editor.update=Update '%s'
-editor.delete=Delete '%s'
-editor.commit_message_desc=Add an optional extended description...
-editor.commit_directly_to_this_branch=Commit directly to the %s branch.
-editor.create_new_branch=Create a new branch for this commit and start a pull request.
-editor.new_branch_name_desc=New branch name...
-editor.cancel=Cancel
-editor.filename_cannot_be_empty=Filename cannot be empty.
-editor.branch_already_exists=Branch '%s' already exists in this repository.
-editor.directory_is_a_file=Entry '%s' in the parent path is a file not a directory in this repository.
-editor.filename_is_a_directory=The filename '%s' is an existing directory in this repository.
-editor.file_editing_no_longer_exists=The file '%s' you are editing no longer exists in the repository.
-editor.file_changed_while_editing=File content has been changed since you started editing. Click here to see what have been changed or press commit again to overwrite those changes.
-editor.file_already_exists=A file with name '%s' already exists in this repository.
-editor.no_changes_to_show=There are no changes to show.
-editor.fail_to_update_file=Failed to update/create file '%s' with error: %v
-editor.add_subdir=Add subdirectory...
-editor.unable_to_upload_files=Failed to upload files to '%s' with error: %v
-editor.upload_files_to_dir=Upload files to '%s'
-
+editor.must_be_on_a_branch=Devi essere su quel branch per eseguire o proporre modifiche su quel determinato branch
+editor.fork_before_edit=Forka il repository per modificare il file
+editor.delete_this_file=Elimina questo file
+editor.must_have_write_access=È necessario un accesso in scrittura per eseguire o proporre modifiche a questo file
+editor.file_delete_success=Il file '%s' è stato eliminato!
+editor.name_your_file=Dai un nome al file...
+editor.filename_help=Per aggiungere una cartella, scrivine il nome seguito da /. Per eliminare una cartella, spostati all'inizio del campo di testo e premi "backspace".
+editor.or=oppure
+editor.cancel_lower=annulla
+editor.commit_changes=Commit
+editor.add_tmpl=Aggiungi '%s/'
+editor.add=Aggiungi '%s'
+editor.update=Aggiorna '%s'
+editor.delete=Elimina '%s'
+editor.commit_message_desc=Aggiungi una descrizione (opzionale)...
+editor.commit_directly_to_this_branch=Commit direttamente nel branch %s.
+editor.create_new_branch=Crea un nuovo branch per questo commit e inizia una pull request.
+editor.new_branch_name_desc=Nome del nuovo branch...
+editor.cancel=Annulla
+editor.filename_cannot_be_empty=Il nome del file non può essere vuoto.
+editor.branch_already_exists=Il branch '%s' esiste già in questo repository.
+editor.directory_is_a_file='%s' nel percorso corrente è un file e non una cartella.
+editor.file_is_a_symlink=Il file '%s' è un link simbolico che non può essere modificato con l'editor web.
+editor.filename_is_a_directory=Il nome '%s' corrisponde a una cartella già presente in questo repository.
+editor.file_editing_no_longer_exists=Il file '%s' non esiste più nel repository.
+editor.file_changed_while_editing=Il file è stato cambiato in un'altra posizione. Clicca qui per vedere le modifiche o committa per sovrascrivere con la versione corrente.
+editor.file_already_exists=Un file di nome '%s' esiste già in questo repository.
+editor.no_changes_to_show=Nessuna modifica da mostrare.
+editor.fail_to_update_file=La creazione o la modifica del file '%s' è fallita: %v
+editor.fail_to_delete_file=Failed to delete file '%s' with error: %v
+editor.add_subdir=Aggiungi sottocartella...
+editor.unable_to_upload_files=È fallito il caricamento dei file su '%s': %v
+editor.upload_files_to_dir=Carica file su '%s'
+
+commits.commit_history=Cronologia Commit
commits.commits=Commits
commits.search=Ricerca una versione
commits.find=Cerca
@@ -490,10 +563,10 @@ issues.create=Crea Problema
issues.new_label=Nuova etichetta
issues.new_label_placeholder=Nome dell'etichetta...
issues.create_label=Crea Etichetta
-issues.label_templates.title=Load a predefined set of labels
-issues.label_templates.info=There aren’t any labels yet. You can click on the "New Label" button above to create one or use a predefined set below.
-issues.label_templates.helper=Select a label set
-issues.label_templates.use=Use this label set
+issues.label_templates.title=Carica un set predefinito di etichette
+issues.label_templates.info=Non sono presenti etichette. Puoi cliccare sul pulsante "Nuova etichetta" per crearne una, oppure usare un set predefinito mostrato qui sotto.
+issues.label_templates.helper=Scegli un set di etichette
+issues.label_templates.use=Usa questo set di etichette
issues.label_templates.fail_to_load_file=Failed to load label template file '%s': %v
issues.open_tab=%d Aperti
issues.close_tab=%d Chiusi
@@ -522,8 +595,8 @@ issues.next=Pagina successiva
issues.open_title=Aperto
issues.closed_title=Chiuso
issues.num_comments=%d commenti
-issues.commented_at=`commented %s`
-issues.delete_comment_confirm=Are you sure you want to delete this comment?
+issues.commented_at=`ha commentato %s`
+issues.delete_comment_confirm=Sei sicuro/a di voler eliminare questo commento?
issues.no_content=Non ci sono ancora contenuti.
issues.close_issue=Chiudi
issues.close_comment_issue=Commenta e chiudi
@@ -551,8 +624,8 @@ issues.label_deletion=Elimina Etichetta
issues.label_deletion_desc=Eliminare l'etichetta rimuovera le sue informazioni in tutti i problemi correlati. Vuoi continuare?
issues.label_deletion_success=Etichetta eliminata con successo!
issues.num_participants=%d Partecipanti
-issues.attachment.open_tab=`Click to see "%s" in a new tab`
-issues.attachment.download=`Click to download "%s"`
+issues.attachment.open_tab='Clicca per vedere "%s" in una nuova scheda'
+issues.attachment.download=«Clicca qui per scaricare "%s"»
pulls.new=Nuova Pull Request
pulls.compare_changes=Confronta le modifiche
@@ -562,6 +635,7 @@ pulls.compare_compare=confronta
pulls.filter_branch=Filtra branch
pulls.no_results=Nessun risultato trovato.
pulls.nothing_to_compare=Non c'è niente da confrontare perchè i branch base e head uguali.
+pulls.nothing_merge_base=There is nothing to compare because two branches have completely different history.
pulls.has_pull_request=`E' già presente una pull request tra questi due trargets: %[2]s#%[3]d`
pulls.create=Crea Pull Request
pulls.title_desc=vorrebbe unire %[1]d commit da %[2]s a %[3]s
@@ -574,11 +648,16 @@ pulls.merged=Unito
pulls.has_merged=Questo contributo è stato incluso con successo!
pulls.data_broken=I dati di questa pull request si sono rotti causa dell'eliminazione delle informazioni di fork.
pulls.is_checking=Il controllo dei conflitti è ancora in corso, per favore aggiorna pagina tra qualche istante.
-pulls.can_auto_merge_desc=La pull request non può essere mergiata automaticamente.
+pulls.can_auto_merge_desc=La pull request può essere mergiata automaticamente.
pulls.cannot_auto_merge_desc=Questa pull request non può essere mergiata automaticamente perchè ci sono dei conflitti.
pulls.cannot_auto_merge_helper=Effettua il merge manualmente per risolvere i conflitti.
+pulls.create_merge_commit=Create a merge commit
+pulls.rebase_before_merging=Effettua un Rebase prima del Merge
+pulls.commit_description=Descrizione del Commit
pulls.merge_pull_request=Unisci Pull Request
pulls.open_unmerged_pull_exists=`You can't perform reopen operation because there is already an open pull request (#%d) from same repository with same merge information and is waiting for merging.`
+pulls.delete_branch=Elimina Ramo
+pulls.delete_branch_has_new_commits=Branch cannot be deleted because it has new commits after mergence.
milestones.new=Nuova Milestone
milestones.open_tab=%d Aperti
@@ -625,35 +704,65 @@ wiki.last_updated=Ultimo aggiornamento: %s
settings=Impostazioni
settings.options=Opzioni
settings.collaboration=Collaborazione
-settings.collaboration.admin=Admin
-settings.collaboration.write=Write
-settings.collaboration.read=Read
-settings.collaboration.undefined=Undefined
+settings.collaboration.admin=Amministratore
+settings.collaboration.write=Scrivi
+settings.collaboration.read=Leggi
+settings.collaboration.undefined=Indefinito
+settings.branches=Divisioni
+settings.branches_bare=You cannot manage branches for bare repository. Please push some content first.
+settings.default_branch=Ramo di default
+settings.default_branch_desc=The default branch is considered the "base" branch for code commits, pull requests and online editing.
+settings.update=Aggiorna
+settings.update_default_branch_unsupported=Change default branch is not supported by the Git version on server.
+settings.update_default_branch_success=Default branch of this repository has been updated successfully!
+settings.protected_branches=Branch protetti
+settings.protected_branches_desc=Protect branches from force pushing, accidental deletion and whitelist code committers.
+settings.choose_a_branch=Scegli un ramo...
+settings.branch_protection=Protezione Ramo
+settings.branch_protection_desc=Please choose protect options for branch %s.
+settings.protect_this_branch=Proteggere questo ramo
+settings.protect_this_branch_desc=Disable force pushes and prevent from deletion.
+settings.protect_require_pull_request=Require pull request instead direct pushing
+settings.protect_require_pull_request_desc=Enable this option to disable direct pushing to this branch. Commits have to be pushed to another non-protected branch and merged to this branch through pull request.
+settings.protect_whitelist_committers=Whitelist who can push to this branch
+settings.protect_whitelist_committers_desc=Add people or teams to whitelist of direct push to this branch. Users in whitelist will bypass require pull request check.
+settings.protect_whitelist_users=Users who can push to this branch
+settings.protect_whitelist_search_users=Cerca utenti
+settings.protect_whitelist_teams=Teams for which members of them can push to this branch
+settings.protect_whitelist_search_teams=Cerca Teams
+settings.update_protect_branch_success=Protect options for this branch has been updated successfully!
settings.hooks=Webhooks
settings.githooks=Git Hooks
settings.basic_settings=Impostazioni di Base
-settings.mirror_settings=Mirror Settings
-settings.sync_mirror=Sync Now
-settings.mirror_sync_in_progress=Mirror syncing is in progress, please refresh page in about a minute.
+settings.mirror_settings=Impostazioni mirror
+settings.sync_mirror=Sincronizza ora
+settings.mirror_sync_in_progress=Sincronizzazione del mirror in corso, aggiorna la pagina tra un minuto.
settings.site=Sito Ufficiale
settings.update_settings=Aggiorna Impostazioni
settings.change_reponame_prompt=Questa modifica influirà i link al repository.
settings.advanced_settings=Opzioni avanzate
-settings.wiki_desc=Enable wiki system
-settings.use_internal_wiki=Use builtin wiki
+settings.wiki_desc=Abilita wiki
+settings.use_internal_wiki=Usa wiki incorporato
+settings.allow_public_wiki_desc=Allow public access to wiki when repository is private
settings.use_external_wiki=Usa Wiki esterno
settings.external_wiki_url=URL Wiki esterno
settings.external_wiki_url_desc=I visitatori verranno reindirizzati all'URL quando cliccano sulla scheda.
-settings.issues_desc=Enable issue tracker
-settings.use_internal_issue_tracker=Use builtin lightweight issue tracker
+settings.issues_desc=Abilita tracking problemi
+settings.use_internal_issue_tracker=Utilizza il segnalatore di problemi integrato (molto leggero)
+settings.allow_public_issues_desc=Allow public access to issues when repository is private
settings.use_external_issue_tracker=Utilizza gestore di problemi esterno
+settings.external_tracker_url=URL di un segnalatore di problemi esterno
+settings.external_tracker_url_desc=I visitatori verranno reindirizzati all'URL quando faranno click sulla scheda.
settings.tracker_url_format=Formato URL Gestore Problemi Esterno
settings.tracker_issue_style=External Issue Tracker Naming Style:
-settings.tracker_issue_style.numeric=Numeric
-settings.tracker_issue_style.alphanumeric=Alphanumeric
+settings.tracker_issue_style.numeric=Numerico
+settings.tracker_issue_style.alphanumeric=Alfanumerico
settings.tracker_url_format_desc=You can use placeholder {user} {repo} {index} for user name, repository name and issue index.
-settings.pulls_desc=Abilita le pull requests per accettare contributi pubblici
+settings.pulls_desc=Enable pull requests to accept contributions between repositories and branches
+settings.pulls.ignore_whitespace=Ignora cambiamenti di spazi bianchi
+settings.pulls.allow_rebase_merge=Allow use rebase to merge commits
settings.danger_zone=Zona Pericolosa
+settings.cannot_fork_to_same_owner=You cannot fork a repository to its original owner.
settings.new_owner_has_same_repo=Il nuovo proprietario ha già un repository con lo stesso nome. Per favore scegli un altro nome.
settings.convert=Converti in Repository Regolare
settings.convert_desc=Puoi convertire questo mirror in un repository regolare. Questa operazione non può essere annullata.
@@ -672,7 +781,7 @@ settings.wiki_deletion_success=I dati della wiki del repository sono stati elimi
settings.delete=Elimina questo repository
settings.delete_desc=Una volta che hai cancellato il repository, non puoi tornare indietro. Si prega di fare attenzione.
settings.delete_notices_1=-Questa operazione NON PUÒ essere annullata.
-settings.delete_notices_2=-Questa operazione eliminerà definitivamente il tutto il contenuto del repository, inclusi i dati di Git, incidenti, commenti e accessi dei collaboratori.
+settings.delete_notices_2=- This operation will permanently delete everything in this repository, including Git data, issues, comments and collaborator access.
settings.delete_notices_fork_1=- All forks will become independent after deletion.
settings.deletion_success=Il repository è stato eliminato con successo!
settings.update_settings_success=Le opzioni repository sono state aggiornate con successo.
@@ -688,20 +797,25 @@ settings.collaborator_deletion_desc=Questo utente non potrà più collaborare a
settings.remove_collaborator_success=Il collaboratore è stato rimosso.
settings.search_user_placeholder=Cerca utente...
settings.org_not_allowed_to_be_collaborator=Un'organizzazione non può essere aggiunta come collaboratore.
-settings.user_is_org_member=L'utente è un membro dell'organizzazione che non può essere aggiunto come collaboratore.
-settings.add_webhook=Aggiungi Webhook
settings.hooks_desc=I Webhooks sono molto simili a un basilare evento trigger HTTP POST. Ogni volta che qualcosa si verifica in Gogs, tratteremo la notifica all'host di destinazione specificato. Ulteriori informazioni in questa Guida ai Webhooks.
+settings.webhooks.add_new=Add a new webhook:
+settings.webhooks.choose_a_type=Choose a type...
+settings.add_webhook=Aggiungi Webhook
settings.webhook_deletion=Elimina Webhook
settings.webhook_deletion_desc=Delete this webhook will remove its information and all delivery history. Do you want to continue?
settings.webhook_deletion_success=Il Webhook è stato eliminato con successo!
settings.webhook.test_delivery=Test di consegna
settings.webhook.test_delivery_desc=Send a fake push event delivery to test your webhook settings
settings.webhook.test_delivery_success=Test webhook has been added to delivery queue. It may take few seconds before it shows up in the delivery history.
+settings.webhook.redelivery=Redelivery
+settings.webhook.redelivery_success=Hook task '%s' has been readded to delivery queue. It may take few seconds to update delivery status in history.
settings.webhook.request=Richiesta
settings.webhook.response=Risposta
settings.webhook.headers=Headers
settings.webhook.payload=Payload
settings.webhook.body=Body
+settings.webhook.err_cannot_parse_payload_url=Cannot parse payload URL: %v
+settings.webhook.url_resolved_to_blocked_local_address=Payload URL resolved to a local network address that is implicitly blocked.
settings.githooks_desc=Gli Hooks di Git sono una funzionalità di Git stesso, puoi modificare i file degli hooks supportati nell'elenco qui sotto per compiere azioni personalizzate.
settings.githook_edit_desc=Se l'hook è inattivo, sarà presentato un contenuto esempio. Lasciando il contenuto vuoto disattiverai questo hook.
settings.githook_name=Nome hook
@@ -711,6 +825,7 @@ settings.add_webhook_desc=Gogs manderà una richiesta POST all'URL
settings.payload_url=Payload URL
settings.content_type=Content Type
settings.secret=Secret
+settings.secret_desc=Secret will be sent as SHA256 HMAC hex digest of payload via X-Gogs-Signature header.
settings.slack_username=Nome utente
settings.slack_icon_url=URL icona
settings.slack_color=Colore
@@ -720,10 +835,20 @@ settings.event_send_everything=Ho bisogno di tutto.
settings.event_choose=Lasciami scegliere ciò di cui ho bisogno.
settings.event_create=Crea
settings.event_create_desc=Branch, o tag creato
-settings.event_pull_request=Pull Request
-settings.event_pull_request_desc=Pull request opened, closed, reopened, edited, assigned, unassigned, label updated, label cleared, or synchronized.
+settings.event_delete=Elimina
+settings.event_delete_desc=Branch o tag eliminato
+settings.event_fork=Forka
+settings.event_fork_desc=Repository Forkata
settings.event_push=Push
settings.event_push_desc=Git push in un repository
+settings.event_issues=Problemi
+settings.event_issues_desc=Issue opened, closed, reopened, edited, assigned, unassigned, label updated, label cleared, milestoned, or demilestoned.
+settings.event_pull_request=Pull request
+settings.event_pull_request_desc=Pull request opened, closed, reopened, edited, assigned, unassigned, label updated, label cleared, milestoned, demilestoned, or synchronized.
+settings.event_issue_comment=Issue Comment
+settings.event_issue_comment_desc=Issue comment created, edited, or deleted.
+settings.event_release=Versione
+settings.event_release_desc=Release published in a repository.
settings.active=Attivo
settings.active_helper=Anche i dettagli riguardanti l'evento che ha innescato l'hook saranno inviati.
settings.add_hook_success=Il nuovo webhook è stato aggiunto.
@@ -733,10 +858,13 @@ settings.delete_webhook=Eliminare Webhook
settings.recent_deliveries=Recenti Deliveries
settings.hook_type=Tipo di Hook
settings.add_slack_hook_desc=Aggiungi Slack integrazione al tuo repository.
+settings.add_discord_hook_desc=Add Discord integration to your repository.
+settings.add_dingtalk_hook_desc=Add Dingtalk integration to your repository.
settings.slack_token=Token
settings.slack_domain=Dominio
settings.slack_channel=Canale
settings.deploy_keys=Dispiega Chiavi
+settings.deploy_keys_helper=Common Gotcha! If you're looking for adding personal public keys, please add them in your account settings.
settings.add_deploy_key=Aggiungi Deploy Key
settings.deploy_key_desc=Le deploy keys hanno accesso in sola lettura. Non equivalgono alle chiavi SSH personali.
settings.no_deploy_keys=Non hai aggiunto alcuna deploy key.
@@ -748,6 +876,8 @@ settings.add_key_success=La nuova deploy key '%s' è stata aggiunta con successo
settings.deploy_key_deletion=Elimina Deploy Key
settings.deploy_key_deletion_desc=Cancellando questa deploy key verrà rismosso ogni accesso relativo a questa repository. Vuoi continuare?
settings.deploy_key_deletion_success=Deploy key eliminata con successo!
+settings.description_desc=Description of repository. Maximum 512 characters length.
+settings.description_length=Available characters
diff.browse_source=Sfoglia il codice sorgente
diff.parent=parent
@@ -766,7 +896,6 @@ release.releases=Rilasci
release.new_release=Nuovo Rilascio
release.draft=Bozza
release.prerelease=Pre-Rilascio
-release.stable=Stabile
release.edit=modifica
release.ahead=%d commits da %s da questo rilascio
release.source_code=Codice Sorgente
@@ -786,12 +915,12 @@ release.cancel=Annulla
release.publish=Pubblica Rilascio
release.save_draft=Salva Bozza
release.edit_release=Modifica Rilascio
-release.delete_release=Cancela questa Release
+release.delete_release=Cancella questa Release
release.deletion=Eliminazione Release
release.deletion_desc=Eliminando questa release cancellarai anche i tag Git corrispondenti. Vuoi continuare?
release.deletion_success=La release è stata eliminata con successo!
release.tag_name_already_exist=Un rilascio con questo tag esiste già.
-release.tag_name_invalid=Tag name is not valid.
+release.tag_name_invalid=Il nome del Tag non è valido.
release.downloads=Download
[org]
@@ -813,8 +942,8 @@ team_name_helper=Verrà usato questo nome per riferirsi a questo team nella conv
team_desc_helper=In cosa consiste questo team?
team_permission_desc=Quale livello di autorizzazione dovrebbe avere questa squadra?
-form.name_reserved=Il nome organizzazione '%s' è riservato.
-form.name_pattern_not_allowed=La struttura del nome dell'organizzazione '%s' non è consentita.
+form.name_not_allowed=Organization name or pattern %q is not allowed.
+form.team_name_not_allowed=Team name or pattern %q is not allowed.
settings=Impostazioni
settings.options=Opzioni
@@ -886,12 +1015,19 @@ first_page=Prima
last_page=Ultima
total=Totale: %d
+dashboard.build_info=Build Information
+dashboard.app_ver=Application version
+dashboard.git_version=Git version
+dashboard.go_version=Go version
+dashboard.build_time=Build time
+dashboard.build_commit=Build commit
dashboard.statistic=Statistiche
dashboard.operations=Operazioni
dashboard.system_status=Stato del Monitor di Sistema
dashboard.statistic_info=Il database di Gogs ha %d utenti, %d organizzazioni, %d chiavi pubbliche, %d repository, %d utenti che seguono, %d voti, %d azioni, %d accessi, %d problemi, %d commenti, %d account sociali, %d utenti seguiti, %d mirror, %d rilasci, %d fonti di accesso, %d webhook, %d traguardi, %d etichette, %d incarichi hook, %d team, %d attività di aggiornamento, %d allegati.
dashboard.operation_name=Nome Operazione
dashboard.operation_switch=Cambia
+dashboard.select_operation_to_run=Please select operation to run
dashboard.operation_run=Esegui
dashboard.clean_unbind_oauth=Pulire OAuthes non associati
dashboard.clean_unbind_oauth_success=Tutti gli OAuthes non associati eliminati con successo.
@@ -905,8 +1041,8 @@ dashboard.git_gc_repos=Fare la procedura di garbage collection sui repository
dashboard.git_gc_repos_success=Tutti i repository hanno fatto la procedura di garbage collection con successo.
dashboard.resync_all_sshkeys=Riscrivi il file '.ssh/authorized_keys' (attenzione: le chiavi non appartenenti a Gogs saranno perse)
dashboard.resync_all_sshkeys_success=Tutte le chiavi pubbliche riscritte con successo.
-dashboard.resync_all_update_hooks=Riscrivere tutti gli update hook dei repository (necessario quando il percorso di configurazione personalizzata viene modificato)
-dashboard.resync_all_update_hooks_success=Tutti gli update hook dei repository riscritti con successo.
+dashboard.resync_all_hooks=Resync pre-receive, update and post-receive hooks of all repositories
+dashboard.resync_all_hooks_success=All repositories' pre-receive, update and post-receive hooks have been resynced successfully.
dashboard.reinit_missing_repos=Reinitialize all repository records that lost Git files
dashboard.reinit_missing_repos_success=All repository records that lost Git files have been reinitialized successfully.
@@ -950,16 +1086,16 @@ users.created=Creato
users.send_register_notify=Send Registration Notification To User
users.new_success=Il nuovo account '%s' è stato creato correttamente.
users.edit=Modifica
-users.auth_source=Authentication Source
+users.auth_source=Fonte di autenticazione
users.local=Locale
-users.auth_login_name=Authentication Login Name
-users.password_helper=Leave it empty to remain unchanged.
+users.auth_login_name=Nome utente per l'autenticazione
+users.password_helper=Lascia vuoto per non modificare.
users.update_profile_success=Profilo dell'account aggiornato con successo.
users.edit_account=Modifica Account
users.max_repo_creation=Limite massimo per la creazione di Repository
users.max_repo_creation_desc=(Inserire -1 per usare il limite globale di default)
users.is_activated=Questo account è attivato
-users.prohibit_login=This account is prohibited to login
+users.prohibit_login=Questo account non è abilitato al login
users.is_admin=Questo account ha permessi di amministratore
users.allow_git_hook=Questo account ha il permesso di creare hooks di Git
users.allow_import_local=Questo account dispone delle autorizzazioni per importare repository locali
@@ -981,29 +1117,37 @@ repos.private=Privati
repos.watches=Segue
repos.stars=Voti
repos.issues=Problemi
+repos.size=Dimensione
-auths.auth_manage_panel=Authentication Manage Panel
+auths.auth_sources=Authentication Sources
auths.new=Aggiungi Nuova Origine
auths.name=Nome
auths.type=Tipo
auths.enabled=Attivo
+auths.default=Default
auths.updated=Aggiornato
auths.auth_type=Tipo di autenticazione
auths.auth_name=Nome di autenticazione
-auths.security_protocol=Security Protocol
+auths.security_protocol=Protocollo di sicurezza
auths.domain=Dominio
auths.host=Host
auths.port=Porta
auths.bind_dn=Binda DN
+auths.bind_dn_helper=You can use '%s' as placeholder for username, e.g. DOM\%s
auths.bind_password=Binda Password
auths.bind_password_helper=Attenzione: Questa password è salvata in chiaro. Non usare su un acount con alti privilegi.
auths.user_base=User Search Base
auths.user_dn=DN dell'utente
auths.attribute_username=Attributo username
-auths.attribute_username_placeholder=Leave empty to use sign-in form field value for user name.
-auths.attribute_name=Attributo Nome
+auths.attribute_username_placeholder=Se vuoto, verrà usato il nome di login dell'accesso.
+auths.attribute_name=First Name Attribute
auths.attribute_surname=Attributo Cognome
auths.attribute_mail=Attributo Email
+auths.verify_group_membership=Verifica gruppo di appartenenza
+auths.group_search_base_dn=Group Search Base DN
+auths.group_filter=Group Filter
+auths.group_attribute_contain_user_list=Group Attribute Containing List of Users
+auths.user_attribute_listed_in_group=User Attribute Listed in Group
auths.attributes_in_bind=Fetch attributes in Bind DN context
auths.filter=Fitro utente
auths.admin_filter=Filtro Amministratore
@@ -1012,123 +1156,205 @@ auths.smtp_auth=Tipo di autenticazione SMTP
auths.smtphost=Host SMTP
auths.smtpport=Porta SMTP
auths.allowed_domains=Domini consentiti
-auths.allowed_domains_helper=Leave it empty to not restrict any domains. Multiple domains should be separated by comma ','.
+auths.allowed_domains_helper=Lasciare vuoto per non imporre restrizioni di dominio. Domini separati da virgole ','.
auths.enable_tls=Abilitare Crittografia TLS
auths.skip_tls_verify=Salta verifica TLS
auths.pam_service_name=Nome del Servizio PAM
auths.enable_auto_register=Abilitare Registrazione Automatica
-auths.tips=Consigli
auths.edit=Modifica impostazioni di autenticazione
auths.activated=Questa Autenticazione è stata attivata
-auths.new_success=New authentication '%s' has been added successfully.
-auths.update_success=Authentication setting has been updated successfully.
+auths.default_auth=This authentication is default login source
+auths.new_success=Nuovo meccanismo di autenticazione '%s' aggiunto.
+auths.update_success=Parametro di autenticazione aggiornato.
auths.update=Aggiornare le impostazioni di autenticazione
auths.delete=Elimina questa autenticazione
-auths.delete_auth_title=Authentication Deletion
-auths.delete_auth_desc=This authentication is going to be deleted, do you want to continue?
-auths.still_in_used=This authentication is still used by some users, please delete or convert these users to another login type first.
-auths.deletion_success=Authentication has been deleted successfully!
-
+auths.delete_auth_title=Eliminazione del meccanismo di autenticazione
+auths.delete_auth_desc=Eliminazione del meccanismo di autenticazione. Continuare?
+auths.still_in_used=Questo meccanismo di autenticazione è ancora attivo per alcuni utenti. Eliminare gli utenti o cambiare il loro meccanismo di autenticazione prima di ritentare.
+auths.deletion_success=Il meccanismo di autenticazione è stato eliminato!
+auths.login_source_exist=La fonte di autenticazione '%s' esiste già.
+auths.github_api_endpoint=API Endpoint
+
+config.not_set=(non impostata)
config.server_config=Configurazione Server
-config.app_name=Nome Applicazione
-config.app_ver=Versione Applicazione
-config.app_url=URL Applicazione
-config.domain=Dominio
-config.offline_mode=Modalità Offline
-config.disable_router_log=Disattivare Log del Router
+config.brand_name=Brand name
config.run_user=Utente Esecutore
config.run_mode=Modalità Esecuzione
-config.repo_root_path=Percorso Root del Repository
-config.static_file_root_path=Percorso Root del File Statico
-config.log_file_root_path=Percorso Root del File di Log
-config.script_type=Tipo di Script
-config.reverse_auth_user=Autenticazione Utente Inversa
+config.server.external_url=External URL
+config.server.domain=Domain
+config.server.protocol=Protocol
+config.server.http_addr=HTTP address
+config.server.http_port=HTTP port
+config.server.cert_file=Certificate file
+config.server.key_file=Key file
+config.server.tls_min_version=Minimum TLS version
+config.server.unix_socket_permission=Unix socket permission
+config.server.local_root_url=Local root URL
+config.server.offline_mode=Offline mode
+config.server.disable_router_log=Disable router log
+config.server.enable_gzip=Abilita Gzip
+config.server.app_data_path=Application data path
+config.server.load_assets_from_disk=Load assets from disk
+config.server.landing_url=Landing URL
config.ssh_config=Configurazione SSH
-config.ssh_enabled=Attivo
-config.ssh_start_builtin_server=Avvia server builtin
-config.ssh_domain=Dominio
-config.ssh_port=Porta
-config.ssh_listen_port=Porta in ascolto
-config.ssh_root_path=Percorso Root
-config.ssh_key_test_path=Percorso chiave di test
-config.ssh_keygen_path=Percorso Keygen ('ssh-keygen')
-config.ssh_minimum_key_size_check=Verifica delle dimensioni minime della chiave
-config.ssh_minimum_key_sizes=Dimensioni minime della chiave
+config.ssh.enabled=Enabled
+config.ssh.domain=Exposed domain
+config.ssh.port=Exposed port
+config.ssh.root_path=Root path
+config.ssh.keygen_path=Keygen path
+config.ssh.key_test_path=Key test path
+config.ssh.minimum_key_size_check=Minimum key size check
+config.ssh.minimum_key_sizes=Minimum key sizes
+config.ssh.rewrite_authorized_keys_at_start=Rewrite "authorized_keys" at start
+config.ssh.start_builtin_server=Start builtin server
+config.ssh.listen_host=Listen host
+config.ssh.listen_port=Listen port
+config.ssh.server_ciphers=Server ciphers
+config.ssh.server_macs=Server MACs
+config.ssh.server_algorithms=Server algorithms
+
+config.repo_config=Configurazione Repository
+config.repo.root_path=Root path
+config.repo.script_type=Script type
+config.repo.ansi_chatset=ANSI charset
+config.repo.force_private=Force private
+config.repo.max_creation_limit=Max creation limit
+config.repo.preferred_licenses=Preferred licenses
+config.repo.disable_http_git=Disable HTTP Git
+config.repo.enable_local_path_migration=Enable local path migration
+config.repo.enable_raw_file_render_mode=Enable raw file render mode
+config.repo.commits_fetch_concurrency=Commits fetch concurrency
+config.repo.editor.line_wrap_extensions=Editor line wrap extensions
+config.repo.editor.previewable_file_modes=Editor previewable file modes
+config.repo.upload.enabled=Upload enabled
+config.repo.upload.temp_path=Upload temporary path
+config.repo.upload.allowed_types=Upload allowed types
+config.repo.upload.file_max_size=Upload file size limit
+config.repo.upload.max_files=Upload files limit
config.db_config=Configurazione Database
-config.db_type=Tipo
-config.db_host=Host
-config.db_name=Nome
-config.db_user=Utente
-config.db_ssl_mode=Modalità SSL
-config.db_ssl_mode_helper=(solo per "postgres")
-config.db_path=Percorso
-config.db_path_helper=(per "sqlite3" e "tidb")
-
-config.service_config=Configurazione Servizio
-config.register_email_confirm=Richiedono Conferma dell'Email
-config.disable_register=Disabilita Registrazione
-config.show_registration_button=Mostra Pulsane Registrazione
-config.require_sign_in_view=Richiesto Accesso per Vedere
-config.mail_notify=Email di Notifica
-config.disable_key_size_check=Disabilita controllo sulle dimensioni minime della chiave
-config.enable_captcha=Abilita Captcha
-config.active_code_lives=Attiva Vita del Codice
-config.reset_password_code_lives=Reimpostare Password della Vita del Codice
+config.db.type=Tipo
+config.db.host=Host
+config.db.name=Nome
+config.db.schema=Schema
+config.db.schema_helper=(for "postgres" only)
+config.db.user=Utente
+config.db.ssl_mode=modalità SSL
+config.db.ssl_mode_helper=(solo per "postgres")
+config.db.path=Percorso
+config.db.path_helper=(solo per "sqlite3")
+config.db.max_open_conns=Maximum open connections
+config.db.max_idle_conns=Maximum idle connections
+
+config.security_config=Security configuration
+config.security.login_remember_days=Login remember days
+config.security.cookie_remember_name=Remember cookie
+config.security.cookie_username=Username cookie
+config.security.cookie_secure=Enable secure cookie
+config.security.reverse_proxy_auth_user=Reverse proxy authentication header
+config.security.enable_login_status_cookie=Enable login status cookie
+config.security.login_status_cookie_name=Login status cookie
+config.security.local_network_allowlist=Local network allowlist
+
+config.email_config=Email configuration
+config.email.enabled=Enabled
+config.email.subject_prefix=Subject prefix
+config.email.host=Host
+config.email.from=Da
+config.email.user=Utente
+config.email.disable_helo=Disattiva HELO
+config.email.helo_hostname=HELO hostname
+config.email.skip_verify=Skip certificate verify
+config.email.use_certificate=Use custom certificate
+config.email.cert_file=File certificato
+config.email.key_file=Key file
+config.email.use_plain_text=Usa testo semplice
+config.email.add_plain_text_alt=Add plain text alternative
+config.email.send_test_mail=Invia email di test
+config.email.test_mail_failed=Failed to send test email to '%s': %v
+config.email.test_mail_sent=Test email has been sent to '%s'.
+
+config.auth_config=Authentication configuration
+config.auth_custom_logout_url=Custom logout URL
+config.auth.activate_code_lives=Activate code lives
+config.auth.reset_password_code_lives=Reset password code lives
+config.auth.require_email_confirm=Require email confirmation
+config.auth.require_sign_in_view=Require sign in view
+config.auth.disable_registration=Disable registration
+config.auth.enable_registration_captcha=Enable registration captcha
+config.auth.enable_reverse_proxy_authentication=Enable reverse proxy authentication
+config.auth.enable_reverse_proxy_auto_registration=Enable reverse proxy auto registration
+config.auth.reverse_proxy_authentication_header=Reverse proxy authentication header
+
+config.user_config=User configuration
+config.user.enable_email_notify=Enable email notification
-config.webhook_config=Configurazione Webhook
-config.queue_length=Lunghezza della coda
-config.deliver_timeout=Tempo Limite di Consegna
-config.skip_tls_verify=Salta verifiche TLS
-
-config.mailer_config=Configurazione Mailer
-config.mailer_enabled=Attivo
-config.mailer_disable_helo=Disattiva HELO
-config.mailer_name=Nome
-config.mailer_host=Host
-config.mailer_user=Utente
-config.send_test_mail=Invia email di test
-config.test_mail_failed=Impossibile inviare mail a '%s': %v
-config.test_mail_sent=Una mail di prova è stata inviata a '%s'.
-
-config.oauth_config=Configurazione OAuth
-config.oauth_enabled=Attivo
+config.session_config=Configurazione Sessione
+config.session.provider=Provider
+config.session.provider_config=Provider config
+config.session.cookie_name=Cookie
+config.session.https_only=Solo HTTPS
+config.session.gc_interval=GC interval
+config.session.max_life_time=Max life time
+config.session.csrf_cookie_name=Cookie CSRF
config.cache_config=Configurazione Cache
-config.cache_adapter=Adattatore Cache
-config.cache_interval=Intervallo Cache
-config.cache_conn=Connessione Cache
-
-config.session_config=Configurazione Sessione
-config.session_provider=Fornitore Sessione
-config.provider_config=Impostazioni Provider
-config.cookie_name=Nome del Cookie
-config.enable_set_cookie=Abilita Uso dei Cookie
-config.gc_interval_time=Intervallo di tempo della GC
-config.session_life_time=Durata Sessione
-config.https_only=Solo HTTPS
-config.cookie_life_time=Durata Cookie
+config.cache.adapter=Adattatore
+config.cache.interval=Intervallo GC
+config.cache.host=Host
+
+config.http_config=Configurazione HTTP
+config.http.access_control_allow_origin=Access control allow origin
+
+config.attachment_config=Attachment configuration
+config.attachment.enabled=Attivo
+config.attachment.path=Percorso
+config.attachment.allowed_types=Allowed types
+config.attachment.max_size=Size limit
+config.attachment.max_files=Files limit
+
+config.release_config=Release configuration
+config.release.attachment.enabled=Attachment enabled
+config.release.attachment.allowed_types=Attachment allowed types
+config.release.attachment.max_size=Attachment size limit
+config.release.attachment.max_files=Attachment files limit
config.picture_config=Configurazione Foto
-config.picture_service=Servizio foto
-config.disable_gravatar=Disabilita Gravatar
-config.enable_federated_avatar=Enable Federated Avatars
-
-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
+config.picture.avatar_upload_path=User avatar upload path
+config.picture.repo_avatar_upload_path=Repository avatar upload path
+config.picture.gravatar_source=Gravatar source
+config.picture.disable_gravatar=Disable Gravatar
+config.picture.enable_federated_avatar=Enable federated avatars
+
+config.mirror_config=Mirror configuration
+config.mirror.default_interval=Default interval
+
+config.webhook_config=Configurazione Webhook
+config.webhook.types=Types
+config.webhook.deliver_timeout=Deliver timeout
+config.webhook.skip_tls_verify=Skip TLS verify
+
+config.git_config=Configurazione Git
+config.git.disable_diff_highlight=Disable diff syntax highlight
+config.git.max_diff_lines=Diff lines limit (for a single file)
+config.git.max_diff_line_characters=Diff characters limit (for a single line)
+config.git.max_diff_files=Diff files limit (for a single diff)
+config.git.gc_args=GC arguments
+config.git.migrate_timeout=Migration timeout
+config.git.mirror_timeout=Mirror fetch timeout
+config.git.clone_timeout=Clone timeout
+config.git.pull_timeout=Pull timeout
+config.git.gc_timeout=GC timeout
+
+config.lfs_config=LFS configuration
+config.lfs.storage=Storage
+config.lfs.objects_path=Objects path
config.log_config=Configurazione Log
-config.log_mode=Modalità Log
+config.log_file_root_path=Percorso Root del File di Log
+config.log_mode=Modalità
+config.log_options=Opzioni
monitor.cron=Incarici di cron
monitor.name=Nome
@@ -1159,17 +1385,24 @@ notices.delete_success=Gli avvisi di sistema sono stati successivamente eliminat
create_repo=ha creato il repository %s
rename_repo=repository rinominato da %[1]s a [3]s
commit_repo=ha pushato nel %[3]s in %[4]s
+compare_commits=Visualizza comparazione tra questi %d commit
+transfer_repo=ha trasferito il repository %s a %s
create_issue=`ha aperto il problema %s#%[2]s`
close_issue=`closed issue %s#%[2]s`
reopen_issue=`reopened issue %s#%[2]s`
+comment_issue=`ha commentato il problema %s#%[2]s`
create_pull_request=`creata pull request %s#%[2]s`
close_pull_request=`closed pull request %s#%[2]s`
reopen_pull_request=`reopened pull request %s#%[2]s`
-comment_issue=`ha commentato il problema %s#%[2]s`
merge_pull_request=`merged pull request %s#%[2]s`
-transfer_repo=ha trasferito il repository %s a %s
+create_branch=created new branch %[3]s at %[4]s
+delete_branch=deleted branch %[2]s at %[3]s
push_tag=ha pushato il tag %[2]s a %[3]s
-compare_commits=Visualizza comparazione tra questi %d commit
+delete_tag=deleted tag %[2]s at %[3]s
+fork_repo=forked a repository to %s
+mirror_sync_push=synced commits to %[3]s at %[4]s from mirror
+mirror_sync_create=synced new reference %[2]s to %[3]s from mirror
+mirror_sync_delete=synced and deleted reference %[2]s at %[3]s from mirror
[tool]
ago=fa
@@ -1191,6 +1424,7 @@ months=%d mesi %s
years=%d anni %s
raw_seconds=secondi
raw_minutes=minuti
+raw_hours=ore
[dropzone]
default_message=Trascina i file qui o clicca per caricare.
diff --git a/conf/locale/locale_ja-JP.ini b/conf/locale/locale_ja-JP.ini
index d9b8f603ca8..94f388334f4 100644
--- a/conf/locale/locale_ja-JP.ini
+++ b/conf/locale/locale_ja-JP.ini
@@ -9,16 +9,15 @@ sign_out=サインアウト
sign_up=サインアップ
register=登録
website=WEBサイト
-version=バージョン
page=ページ
template=テンプレート
language=言語
create_new=作成...
-user_profile_and_more=ユーザープロファイルなど
+user_profile_and_more=ユーザープロフィールなど
signed_in_as=サインイン済み
-username=ユーザ名
-email=E-mail
+username=ユーザー名
+email=メールアドレス
password=パスワード
re_type=再入力
captcha=CAPTCHA
@@ -44,6 +43,10 @@ issues=課題
cancel=キャンセル
+[status]
+page_not_found=ページが見つかりません
+internal_server_error=サーバ内部エラー
+
[install]
install=インストール
title=インストールをする前に必要な準備をしましょう
@@ -52,15 +55,15 @@ requite_db_desc=Gogs は、MySQL、PostgreSQL、SQLite3 または TiDB が必要
db_title=データベース設定
db_type=データベースの種類
host=ホスト
-user=ユーザ
+user=ユーザー
password=パスワード
db_name=データベース名
+db_schema=Schema
db_helper=MySQLではエンジンがINNODB、文字セットがutf8_general_ciである必要があります。
ssl_mode=SSL モード
path=パス
sqlite_helper=SQLite3かTiDBのデータベースのファイルパス。 サービスとして開始する際には絶対パスを利用してください。
-err_empty_db_path=SQLite3 または TiDB データベースのパスを空にすることはできません。
-err_invalid_tidb_name=TiDB データベース名は文字"."と"-"を許可しない。
+err_empty_db_path=SQLite3 データベースのPATHを空にすることはできません。
no_admin_and_disable_registration=管理者アカウントを作成せずに登録を無効にすることはできません。
err_empty_admin_password=管理者パスワードは空白にできません。
@@ -69,18 +72,23 @@ app_name=アプリケーション名
app_name_helper=素晴らしい組織名を入れてください!
repo_path=リポジトリのルートパス
repo_path_helper=すべての Git リモート リポジトリはこのディレクトリに保存されます。
-run_user=実行ユーザ
-run_user_helper=ユーザーはリポジトリ ルートパスへのアクセス、及びGogs を実行する権限を所有する必要があります。
+run_user=実行ユーザー
+run_user_helper=ユーザーはリポジトリのルートパスへのアクセス権限、及び Gogs の実行権限を持っている必要があります。
domain=ドメイン
domain_helper=これはSSH用クローンURLに影響します。
ssh_port=SSH ポート
ssh_port_helper=SSHサーバーを使用する場合はポート番号を入力してください。 空白にした場合は無効化されます。
+use_builtin_ssh_server=内蔵SSHサーバーを使用
+use_builtin_ssh_server_popup=システムのSSHデーモンとは別に、Git操作用の内蔵SSHサーバーを起動します。
http_port=HTTP ポート
http_port_helper=アプリケーションが待ち受けするポート番号。
app_url=アプリケーションの URL
app_url_helper=この設定は、HTTP / HTTPSのクローンURLおよび、一部のメールボックスへのリンクに影響を与えます。
log_root_path=ログのパス
log_root_path_helper=ログファイルを書き込むディレクトリ。
+enable_console_mode=コンソールモードの有効化
+enable_console_mode_popup=ファイルモードに加えて、コンソールにもログを表示します。
+default_branch=Default Branch
optional_title=オプション設定
email_title=メールサービス設定
@@ -96,47 +104,51 @@ offline_mode=オフラインモードを有効にする
offline_mode_popup=プロダクションモードでは、CDNを使用せずにローカルからリソースファイルを使用します。
disable_gravatar=Gravatarのサービスを無効にします
disable_gravatar_popup=Gravatarとカスタムソースを無効にして、全てのアバターをユーザーによってアップロードされたものかデフォルトなものにします。
-federated_avatar_lookup=Enable Federated Avatars Lookup
-federated_avatar_lookup_popup=Enable federated avatars lookup to use federated open source service based on libravatar.
-disable_registration=自己登録を無効にする
-disable_registration_popup=自己登録を無効にし、管理者のみがアカウント作成できる
-enable_captcha=Captchaを有効にする
-enable_captcha_popup=ユーザによる自己登録のため、有効なcaptchaが必要です。
+federated_avatar_lookup=連合アバター検索を有効にする
+federated_avatar_lookup_popup=Libavatarに基づいたオープンソースサービスを使用するには、連合アバター検索を有効にします。
+disable_registration=誰でもユーザ登録ができないようにする
+disable_registration_popup=誰でもユーザ登録ができないようにすることで、管理者のみアカウントが作成できるようになります。
+enable_captcha=CAPTCHAを有効にする
+enable_captcha_popup=ユーザ登録にはCAPTCHA認証が必要です。
require_sign_in_view=サインインしたユーザのみページ閲覧を許可
require_sign_in_view_popup=サインインしたユーザのみがページを閲覧できます。ビジターはサインインもしくはサインアップページのみ見られます。
admin_setting_desc=今管理者アカウントを作成する必要はありません。ID = 1のユーザ は自動的に管理者の権限を獲得します。
admin_title=管理者アカウントの設定
-admin_name=ユーザ名
+admin_name=ユーザー名
admin_password=パスワード
confirm_password=パスワード確認
-admin_email=管理者の電子メール
+admin_email=管理者のメールアドレス
install_gogs=Gogs をインストール
test_git_failed='Git' コマンドテストに失敗: %v
sqlite3_not_available=このリリース バージョンは SQLite3 をサポートしていません。gobuild バージョンではない、公式のバイナリ バージョンを %s からダウンロードしてください。
invalid_db_setting=データベースの設定が正しくありません: %v
-invalid_repo_path=リポジトリのルート パスが無効です: %v
-run_user_not_match=実行ユーザーは、現在のユーザーではない: %s-> %s
+invalid_repo_path=リポジトリのルートパスが無効です: %v
+run_user_not_match=実行ユーザーは現在のユーザーではありません: %s -> %s
+smtp_host_missing_port=SMTPホストのポートが見つかりません。
+invalid_smtp_from=SMTP From フィールドの値が有効ではありません: %v
save_config_failed=構成の保存に失敗した: %v
+init_failed=アプリケーションの初期化に失敗しました: %v
invalid_admin_setting=管理者アカウントの設定が無効です: %v
install_success=ようこそ!我々はあなたが Gogs を選んでくれて嬉しいです!楽しみましょう!
-invalid_log_root_path=ログのルートパスがむこうです: %v
+invalid_log_root_path=リポジトリのルート パスが無効です: %v
[home]
-uname_holder=ユーザー名またはEメール
+uname_holder=ユーザー名またはメールアドレス
password_holder=パスワード
-switch_dashboard_context=ダッシュ ボードのコンテキストを切替
+switch_dashboard_context=ダッシュボードコンテキストの切替
my_repos=自分のリポジトリ
show_more_repos=リポジトリをさらに表示…
collaborative_repos=共同リポジトリ
my_orgs=自分の組織
my_mirrors=自分のミラー
-view_home=ビュー %s
+view_home=%s を見る
issues.in_your_repos=あなたのリポジトリ
[explore]
repos=リポジトリ
-users=ユーザ
+users=ユーザー
+organizations=組織
search=検索
[auth]
@@ -145,6 +157,8 @@ register_hepler_msg=既にアカウントをお持ちですか?今すぐログ
social_register_hepler_msg=既にアカウントをお持ちですか?連携しましょう!
disable_register_prompt=申し訳ありませんが、現在登録は受け付けておりません。サイトの管理者にお問い合わせください。
disable_register_mail=申し訳ありませんが、登録メールの確認機能が無効になっています。
+auth_source=認証ソース
+local=ローカル
remember_me=ログインしたままにする
forgot_password=パスワードを忘れた
forget_password=パスワードを忘れましたか?
@@ -156,19 +170,26 @@ prohibit_login_desc=あなたのアカウントはログインを禁止されて
resent_limit_prompt=申し訳ありませんが、アクティベーションメールは頻繁に送信しています。3 分お待ちください。
has_unconfirmed_mail=こんにちは %s さん、あなたの電子メール アドレス (%s) は未確認です。もし確認メールをまだ確認できていないか、改めて再送信する場合は、下のボタンをクリックしてください。
resend_mail=アクティベーションメールを再送信するにはここをクリック
-email_not_associate=この電子メール アドレスは、アカウントには関連付けられません。
send_reset_mail=パスワードリセットのメールを再送するにはここをクリック
reset_password=パスワードリセット
invalid_code=申し訳ありませんが、確認用コードが期限切れまたは無効です。
reset_password_helper=パスワードをリセットするにはここをクリック
password_too_short=6文字未満のパスワードは設定できません。
-non_local_account=Non-local accounts cannot change passwords through Gogs.
+non_local_account=非ローカルアカウントではGogs経由でのパスワード変更はできません。
+
+login_two_factor=2段階認証
+login_two_factor_passcode=認証用パスコード
+login_two_factor_enter_recovery_code=2段階認証用リカバリーコードを入力
+login_two_factor_recovery=2段階認証のリカバリー
+login_two_factor_recovery_code=リカバリーコード
+login_two_factor_enter_passcode=2段階認証用パスコードを入力
+login_two_factor_invalid_recovery_code=このリカバリーコードは使用済みか、正しくありません。
[mail]
-activate_account=あなたのアカウントを有効にしてください。
-activate_email=電子メール アドレスを確認します。
+activate_account=アカウントを有効化してください。
+activate_email=メールアドレスを確認
reset_password=パスワードをリセットします.
-register_success=ようこそ、登録成功
+register_success=登録完了です。ようこそ!
register_notify=ボードへようこそ
[modal]
@@ -187,53 +208,55 @@ HttpsUrl=HTTPS URL
PayloadUrl=ペイロードの URL
TeamName=チーム名
AuthName=承認名
-AdminEmail=管理者の電子メール
+AdminEmail=管理者のメールアドレス
-NewBranchName=New branch name
-CommitSummary=Commit summary
-CommitMessage=Commit message
-CommitChoice=Commit choice
-TreeName=File path
+NewBranchName=新しいブランチ名
+CommitSummary=コミットの概要
+CommitMessage=コミットメッセージ
+CommitChoice=コミットを選択
+TreeName=ファイルのパス
Content=コンテンツ
require_error=空にできません
alpha_dash_error=アルファベット、数字、ハイフン"-"、アンダースコア"_"のいずれかの必要があります
-alpha_dash_dot_error=' アルファベット、数値、ダッシュ(-)、アンダースコア(_) 、ドット(.)のいずれかを入力する必要があります。 '
+alpha_dash_dot_error=' アルファベット、数値、ハイフン(-)、アンダースコア(_) 、ドット(.) のいずれかを入力する必要があります。 '
+alpha_dash_dot_slash_error=` アルファベット、数字、ハイフン(-)、アンダースコア(_)、ドット(.)、スラッシュ(/) のみ利用できます。`
size_error=`サイズは %s である必要があります`
min_size_error=' 少なくとも %s 文字の必要があります '
max_size_error=' %s 文字以下の必要があります '
-email_error=' は有効な電子メール アドレスではない '
+email_error=' は有効なメールアドレスではありません '
url_error=' は有効な URL はありません。 '
include_error=' 文字列 '%s' を含める必要があります。 '
unknown_error=不明なエラー:
-captcha_incorrect=Captcha が一致しませんでした。
-password_not_match=パスワードと確認用パスワードが一致同していません。
+captcha_incorrect=CAPTCHAが一致しませんでした。
+password_not_match=パスワードと確認用パスワードが一致していません。
username_been_taken=ユーザー名は既に使用されています。
repo_name_been_taken=リポジトリ名は既に使用されています。
org_name_been_taken=組織名は既に使用されています。
team_name_been_taken=チーム名は既に使用されています。
-email_been_used=電子メール アドレスは既に使用されています。
+email_been_used=メールアドレスは既に使用されています。
username_password_incorrect=ユーザー名またはパスワードが正しくありません。
+auth_source_mismatch=選択されている認証ソースは、ユーザーに関連付けられていません。
enterred_invalid_repo_name=入力したリポジトリの名前が正しいかどうかを確認してください。
enterred_invalid_owner_name=入力された所有者名が正しいかどうかを確認してください。
-enterred_invalid_password=入力したパスワードが正しいかを確認してください。
+enterred_invalid_password=入力したパスワードが正しいか確認してください。
user_not_exist=指定されたユーザーは存在しません。
-last_org_owner=削除するユーザーはチームの最後のメンバーです。別の所有者設定が必要です。
+last_org_owner=所有者のチームから最後のユーザーを削除することはできません。組織には常に最低でも1人の所有者が必要です。
-invalid_ssh_key=SSHを確認できません:%s
+invalid_ssh_key=申し訳ございませんが、SSH キーを検証することができません: %s
unable_verify_ssh_key=GogsはあなたのSSH keyを確認できません。しかし、我々は有効とみなしますので、自分自身で確認してください。
auth_failed=認証に失敗しました: %v
-still_own_repo=アカウント所有のリポジトリがあり、リポジトリの削除または所有者の移譲が必要です。
-still_has_org=アカウントはまだ組織のメンバーであり、組織から退出するか削除する必要があります。
+still_own_repo=あなたのアカウントはまだ少なくとも1つのリポジトリの所有権を所持しています。まずそれらの削除または移譲を行う必要があります。
+still_has_org=あなたのアカウントは1つ以上の組織に所属しているため、先に組織を脱退するか削除する必要があります。
org_still_own_repo=この組織はまだリポジトリの所有しています、リポジトリを削除または転送する必要があります。
target_branch_not_exist=ターゲットブランチが存在しない
[user]
change_avatar=アバターを変更
-join_on=参加しました
+join_on=登録日
repositories=リポジトリ
activity=パブリック・アクティビティ
followers=フォロワー
@@ -242,27 +265,26 @@ following=フォロー
follow=フォロー
unfollow=フォロー解除
-form.name_reserved=ユーザー名 '%s' は予約されています。
-form.name_pattern_not_allowed=ユーザ名のパターン '%s' は許可されていません。
+form.name_not_allowed=User name or pattern %q is not allowed.
[settings]
profile=プロフィール
password=パスワード
avatar=アバター
ssh_keys=SSH キー
-social=SNSアカウント
-applications=アプリケーション
+security=セキュリティ
+repos=リポジトリ一覧
orgs=組織
+applications=アプリケーション
delete=アカウントを削除
-uid=Uid
public_profile=パブリック プロフィール
profile_desc=あなたのメールアドレスは公開され、任意のアカウント関連の通知に使用されます。また、Webベースの操作はサイトを介して行います。
-password_username_disabled=ローカルユーザ以外はユーザ名を変更できません。
+password_username_disabled=ローカルユーザー以外はユーザー名を変更できません。
full_name=フルネーム
website=WEBサイト
location=ロケーション
-update_profile=プロファイル更新
+update_profile=プロフィールを更新
update_profile_success=あなたのプロフィールが更新されました。
change_username=ユーザー名が変更されました
change_username_prompt=この変更はリンクをアカウントに関連付ける方法に影響します。
@@ -270,7 +292,7 @@ continue=続行
cancel=キャンセル
lookup_avatar_by_mail=メールからアバターを取得
-federated_avatar_lookup=Federated Avatar Lookup
+federated_avatar_lookup=連合アバター検索
enable_custom_avatar=カスタムのアバターを有効にする
choose_new_avatar=新しいアバターを選択
update_avatar=アバターの設定を更新
@@ -283,27 +305,28 @@ old_password=現在のパスワード
new_password=新しいパスワード
retype_new_password=新しいパスワードを再入力します。
password_incorrect=現在のパスワードが正しくありません。
-change_password_success=パスワードが正常に変更されました。今すぐ新しいパスワード経由でサインインすることができます。
-password_change_disabled=ローカルユーザ以外はパスワードを変更できません。
+change_password_success=パスワードが正常に変更されました。今すぐ新しいパスワードを使用してサインインすることができます。
+password_change_disabled=ローカルユーザー以外はパスワードを変更できません。
-emails=E-mail アドレス
-manage_emails=E-mail アドレスを管理
+emails=メールアドレス
+manage_emails=メールアドレスを管理
email_desc=あなたのプライマリメールアドレスは、通知やその他の操作に使用されます。
primary=プライマリー
primary_email=プライマリに設定
delete_email=削除
email_deletion=電子メールの削除
-email_deletion_desc=この電子メール アドレスを削除すると、あなたのアカウントの関連情報も削除されます。続行しますか。
+email_deletion_desc=このメールアドレスを削除すると、あなたのアカウントの関連情報も削除されます。続行しますか?
email_deletion_success=電子メールが正常に削除されました。
-add_new_email=新しいe-mailアドレスを追加
-add_email=電子メールを追加します。
-add_email_confirmation_sent='%s' に新しい確認メールを送信しました、次の %d 時間以内に受信トレイを確認し、確認プロセスを完了してください。
-add_email_success=新しいe-mail アドレスが追加されました。
+email_deletion_primary=Cannot delete primary email address.
+add_new_email=新しいメールアドレスを追加
+add_email=メールアドレスの追加
+add_email_confirmation_sent='%s' に新しい確認メールを送信しました。%d 時間以内に受信トレイを確認し、確認プロセスを完了してください。
+add_email_success=新しいメールアドレスが追加されました。
manage_ssh_keys=SSH キーを管理
add_key=キーを追加
-ssh_desc=これはあなたのアカウントに関連付けられている SSH キーの一覧です。あなたが認識していないキーを削除します。
-ssh_helper=ヘルプが必要ですか? 我々のガイドをご覧ください。 SSH キーを生成 SSH の一般的な問題
+ssh_desc=あなたのアカウントに紐付けられているSSHキーの一覧です。SSHキーがあれば誰でもリポジトリへのアクセス権を得ることが出来ますので、見覚えのないSSHキーがないかよくご確認ください。
+ssh_helper=やり方がわかりませんか? GitHubのガイドをご覧ください。 SSHキーの作成SSH使用に際してよくある問題
add_new_key=SSH キーを追加
ssh_key_been_used=公開鍵は使用されています。
ssh_key_name_used=同じ名前の公開鍵は既に存在しています。
@@ -314,20 +337,42 @@ delete_key=削除
ssh_key_deletion=SSH キーの削除
ssh_key_deletion_desc=このSSHキーを削除すると、あなたのアカウントに関連するすべてのアクセスが削除されます。続行しますか?
ssh_key_deletion_success=SSH キーは正常に削除されました!
-add_on=追加された
+add_on=登録日
last_used=最終使用日
no_activity=最近の活動なし
key_state_desc=この鍵は7日間以内に使われています。
token_state_desc=この鍵は7日間以内に使われています。
-manage_social=関連付けられているSNSアカウントを管理
-social_desc=これは関連付けられたソーシャルアカウントのリストです。あなたが認識していない結び付けを削除します。
-unbind=バインド解除
-unbind_success=SNSアカウントがバインドされていない。
+two_factor=2段階認証
+two_factor_status=状態:
+two_factor_on=ON
+two_factor_off=OFF
+two_factor_enable=有効化
+two_factor_disable=無効にする
+two_factor_view_recovery_codes=リカバリーコードを確認し、安全な場所に保管してください。認証済みアプリケーションにアクセスできなくなったとき、パスコードとしてそれを使用できます。
+two_factor_http=HTTP/HTTPS 通信において、平文のユーザー名・パスワードは使用できなくなりました。個人証明にはパーソナル・アクセストークンを作成し利用してください。例:%[3]s
+two_factor_enable_title=2段階認証を有効にする
+two_factor_scan_qr=認証アプリケーションを使用して画像をスキャンしてください :
+two_factor_or_enter_secret=またはシークレットを入力:
+two_factor_then_enter_passcode=パスコードを入力してください:
+two_factor_verify=確認
+two_factor_invalid_passcode=入力されたパスコードは使用できません。もう一度お試しください。
+two_factor_reused_passcode=入力したパスコードは既に使用されています。別のパスコードを試してください。
+two_factor_enable_error=2段階認証の有効化に失敗しました: %v
+two_factor_enable_success=2段階認証があなたのアカウントで有効化されました!
+two_factor_recovery_codes_title=2段階認証のリカバリーコード
+two_factor_recovery_codes_desc=リカバリーコードは、認証済みアプリケーションへのアクセスを一時的に失ったときに使用します。リカバリーコードはいずれも一度だけ使用できます。必ず安全な場所に保管してください。
+two_factor_regenerate_recovery_codes=リカバリーコードの再発行
+two_factor_regenerate_recovery_codes_error=リカバリーコードの再発行に失敗しました: %v
+two_factor_regenerate_recovery_codes_success=新しいリカバリーコードが正常に作成されました!
+two_factor_disable_title=2段階認証を無効にする
+two_factor_disable_desc=2段階認証を無効にすると、あなたのアカウントのセキュリティは低下します。よろしいですか?
+two_factor_disable_success=2段階認証があなたのアカウントで無効になりました!
manage_access_token=パーソナルアクセス トークンを管理
generate_new_token=新しいトークンを生成
tokens_desc=生成したトークンを利用して Gogs の API にアクセスすることができます。
+access_token_tips=The personal access token may be used as either username or password. It is recommended to use the "x-access-token" as the username and the personal access token as the password for Git applications.
new_token_desc=今のところ、全てのトークンはあなたのアカウントにフルアクセスできます。
token_name=トークン名
generate_token=トークンを生成
@@ -336,20 +381,32 @@ delete_token=削除
access_token_deletion=パーソナルアクセストークンの削除
access_token_deletion_desc=パーソナルアクセストークンを削除すると、関連するアプリケーションのすべてのアクセスが削除されます。続行しますか?
delete_token_success=パーソナルアクセストークンは正常に削除されました!同時にあなたのアプリケーションを更新することを忘れないでください。
+token_name_exists=同じ名前のトークンがあります。
+
+orgs.none=あなたはどの組織のメンバーでもありません。
+orgs.leave_title=組織からの脱退
+orgs.leave_desc=組織から脱退すると、全てのリポジトリとチームへのアクセスができなくなります。続行しますか?
+
+repos.leave=脱退
+repos.leave_title=リポジトリから脱退
+repos.leave_desc=脱退するとリポジトリへのアクセスができなくなります。よろしいですか?
+repos.leave_success=リポジトリ '%s' からの脱退が完了しました!
delete_account=アカウントを削除
delete_prompt=この操作をするとアカウントが完全に削除され、二度と元に戻すことができなくなります !
confirm_delete_account=削除の確認
delete_account_title=アカウントの削除
-delete_account_desc=このアカウントは永久に削除しようとしている、継続しますか?
+delete_account_desc=このアカウントは完全に削除されます。 本当によろしいですか?
[repo]
owner=オーナー
repo_name=リポジトリ名
repo_name_helper=短くて分かりやすく重複しないリポジトリ名を決めてください。
visibility=公開/非公開
-visiblity_helper=このリポジトリはプライベートです。
-visiblity_helper_forced=サイト管理者は、強制的にすべての新しいリポジトリを プライベート にしています。
+unlisted=Unlisted
+visiblity_helper=このリポジトリは非公開です
+unlisted_helper=This repository is Unlisted
+visiblity_helper_forced=サイト管理者が、すべての新しいリポジトリを非公開にすることを強制しています
visiblity_fork_helper=(この値の変更はすべてのフォークに適用されます)
clone_helper=クローンに関してお困りであれば ヘルプ を参照しましょう。
fork_repo=リポジトリをフォーク
@@ -357,7 +414,7 @@ fork_from=フォーク元
fork_visiblity_helper=フォークされたリポジトリの可視状態は変更できません。
repo_desc=説明
repo_lang=言語
-repo_gitignore_helper=Select .gitignore templates
+repo_gitignore_helper=.gitignoreのテンプレートを選択
license=ライセンス
license_helper=ライセンス ファイルを選択
readme=Readme
@@ -366,50 +423,52 @@ auto_init=選択されたファイルおよびテンプレートでリポジト
create_repo=リポジトリを作成
default_branch=デフォルトのブランチ
mirror_prune=Prune
-mirror_prune_desc=Remove any remote-tracking references that no longer exist on the remote
+mirror_prune_desc=リモートに存在しないリモート追跡参照を削除する
mirror_interval=ミラー 間隔(時)
mirror_address=ミラー アドレス
-mirror_address_desc=Please include necessary user credentials in the address.
+mirror_address_desc=必要なユーザー資格情報をアドレスに含めてください。
mirror_last_synced=最終同期
watchers=ウォッチャー
-stargazers=Stargazers
+stargazers=スターゲイザー
forks=フォーク
+repo_description_helper=リポジトリの説明 (512文字以内)
+repo_description_length=利用可能な文字
-form.reach_limit_of_creation=The owner has reached maximum creation limit of %d repositories.
-form.name_reserved=リポジトリ名 '%s' は使用されています。
-form.name_pattern_not_allowed=リポジトリ名に '%s' は使用できません。
+form.reach_limit_of_creation=リポジトリの最大作成数 %d にすでに達しています。
+form.name_not_allowed=Repository name or pattern %q is not allowed.
need_auth=認証が必要
migrate_type=マイグレーションの種類
migrate_type_helper=このリポジトリは、 ミラー になります
migrate_repo=リポジトリを移行
migrate.clone_address=クローンアドレス
-migrate.clone_address_desc=これは、HTTP/HTTPS/GIT URL またはローカル サーバー パスを設定できます。
+migrate.clone_address_desc=HTTP/HTTPS/GIT URLを設定できます。
+migrate.clone_address_desc_import_local=ローカルサーバーのパスでリポジトリを移行することもできます。
migrate.permission_denied=ローカル リポジトリをインポートすることはできません。
migrate.invalid_local_path=ローカルパスが無効です。存在しないかディレクトリではありません。
+migrate.clone_address_resolved_to_blocked_local_address=Clone address resolved to a local network address that is implicitly blocked.
migrate.failed=移行に失敗しました: %v
mirror_from=同期ミラー
forked_from=フォーク元
-fork_from_self=すでにあなたの所有しているリポジトリはフォークできません
copy_link=コピー
copy_link_success=コピーされました!
copy_link_error=⌘ C または Ctrl-C キーを押してコピー
copied=コピー成功
-unwatch=Unwatch
-watch=Watch
-unstar=Unstar
-star=Star
-fork=Fork
+unwatch=ウォッチ解除
+watch=ウォッチ
+unstar=スターを外す
+star=スター
+fork=フォーク
no_desc=説明なし
quick_guide=クイック ガイド
clone_this_repo=このリポジトリのクローンを作成
create_new_repo_command=コマンドラインで新しいリポジトリを作成します。
push_exist_repo=コマンド ・ ラインから既存のリポジトリをプッシュ
-repo_is_empty=このリポジトリは空です、後で戻って来て下さい!
+bare_message=このリポジトリにはまだコンテンツがありません。
-code=コード
+files=ファイル
branch=ブランチ
tree=ツリー
filter_branch_and_tag=ブランチまたはタグをフィルタリング
@@ -420,51 +479,65 @@ pulls=プルリクエスト
labels=ラベル
milestones=マイルストーン
commits=コミット
+git_branches=ブランチ
releases=リリース
file_raw=Raw
file_history=履歴
file_view_raw=Rawデータを見る
file_permalink=パーマリンク
file_too_large=このファイルは大きすぎるため、表示できません。
-
-editor.new_file=New file
-editor.upload_file=Upload file
+video_not_supported_in_browser=お使いのブラウザーは、HTML5 の video タグをサポートしていません。
+
+branches.overview=概要
+branches.active_branches=アクティブブランチ
+branches.stale_branches=古いブランチ
+branches.all=すべてのブランチ
+branches.updated_by=%[1]s が %[2]s によって更新されました
+branches.change_default_branch=デフォルトブランチの変更
+branches.default_deletion_not_allowed=Cannot delete the default branch.
+branches.protected_deletion_not_allowed=Cannot delete a protected branch.
+
+editor.new_file=新規ファイル
+editor.upload_file=ファイルをアップロード
editor.edit_file=ファイルを編集
-editor.preview_changes=Preview Changes
-editor.cannot_edit_non_text_files=Cannot edit non-text files
+editor.preview_changes=変更箇所のプレビュー
+editor.cannot_edit_non_text_files=テキストファイルでないため編集できません
editor.edit_this_file=このファイルを編集
-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 before editing the file
+editor.must_be_on_a_branch=このファイルを作成または変更の提案をするには、ブランチ上である必要があります。
+editor.fork_before_edit=ファイルを編集する前にこのリポジトリをフォークする必要があります。
editor.delete_this_file=このファイルを削除
-editor.must_have_write_access=You must have write access to make or propose changes to this file
-editor.file_delete_success=File '%s' has been deleted successfully!
-editor.name_your_file=Name your file...
-editor.filename_help=To add directory, just type it and press /. To remove a directory, go to the beginning of the field and press backspace.
-editor.or=or
+editor.must_have_write_access=このファイルへの変更を作成・提案するには、書き込み権限が必要です
+editor.file_delete_success=ファイル '%s' は正常に削除されました!
+editor.name_your_file=ファイル名を設定...
+editor.filename_help=ディレクトリを追加するには、ディレクトリ名を入力後 / を入力してください。削除するには、入力欄の先頭まで移動し backspace キーを押してください。
+editor.or=もしくは
editor.cancel_lower=キャンセル
editor.commit_changes=変更をコミット
-editor.add_tmpl=Add '%s/'
+editor.add_tmpl='%s/' を追加
editor.add='%s' を追加
editor.update='%s' を更新
editor.delete='%s' を削除
-editor.commit_message_desc=Add an optional extended description...
-editor.commit_directly_to_this_branch=Commit directly to the %s branch.
-editor.create_new_branch=Create a new branch for this commit and start a pull request.
-editor.new_branch_name_desc=New branch name...
+editor.commit_message_desc=詳細な説明を追加...
+editor.commit_directly_to_this_branch=%s ブランチに直接コミットする。
+editor.create_new_branch=このコミットのために新しいブランチを作成し、プルリクエストの作成を開始する。
+editor.new_branch_name_desc=新しいブランチ名...
editor.cancel=キャンセル
-editor.filename_cannot_be_empty=Filename cannot be empty.
-editor.branch_already_exists=Branch '%s' already exists in this repository.
-editor.directory_is_a_file=Entry '%s' in the parent path is a file not a directory in this repository.
-editor.filename_is_a_directory=The filename '%s' is an existing directory in this repository.
-editor.file_editing_no_longer_exists=The file '%s' you are editing no longer exists in the repository.
-editor.file_changed_while_editing=File content has been changed since you started editing. Click here to see what have been changed or press commit again to overwrite those changes.
-editor.file_already_exists=A file with name '%s' already exists in this repository.
-editor.no_changes_to_show=There are no changes to show.
-editor.fail_to_update_file=Failed to update/create file '%s' with error: %v
-editor.add_subdir=Add subdirectory...
-editor.unable_to_upload_files=Failed to upload files to '%s' with error: %v
-editor.upload_files_to_dir=Upload files to '%s'
-
+editor.filename_cannot_be_empty=ファイル名を空にすることはできません。
+editor.branch_already_exists=ブランチ '%s' は、このリポジトリに既に存在します。
+editor.directory_is_a_file=リポジトリのファイル '%s' はディレクトリではありません。
+editor.file_is_a_symlink=ファイル '%s' はシンボリックリンクのため、Webエディターから編集することができません。
+editor.filename_is_a_directory=ファイル名 '%s' は、このリポジトリに存在するディレクトリと同じ名前です。
+editor.file_editing_no_longer_exists=あなたが編集しているファイル '%s' は、すでにリポジトリに存在しません。
+editor.file_changed_while_editing=あなたが編集を開始してから、ファイルの内容が変更されました。ここをクリックして変更箇所を確認するか、コミットをもう一度押して変更を上書きしてください。
+editor.file_already_exists=ファイル名 '%s' は、このリポジトリに既に存在します。
+editor.no_changes_to_show=表示する変更箇所はありません。
+editor.fail_to_update_file=ファイル '%s' の作成/更新に失敗しました: %v
+editor.fail_to_delete_file=ファイル '%s' エラーを削除できませんでした: %v
+editor.add_subdir=サブディレクトリを追加...
+editor.unable_to_upload_files='%s' へのファイルアップロード中にエラーが発生し、失敗しました: %v
+editor.upload_files_to_dir='%s' にファイルをアップロード
+
+commits.commit_history=コミット履歴
commits.commits=コミット
commits.search=コミットの検索
commits.find=検索
@@ -474,7 +547,7 @@ commits.date=日付
commits.older=古い
commits.newer=新しい
-issues.new=新しい問題
+issues.new=新しい課題
issues.new.labels=ラベル
issues.new.no_label=ラベルなし
issues.new.clear_labels=ラベルをクリア
@@ -486,15 +559,15 @@ issues.new.closed_milestone=クローズされたマイルストーン
issues.new.assignee=担当者
issues.new.clear_assignee=担当者をクリア
issues.new.no_assignee=担当者なし
-issues.create=問題を作成
+issues.create=課題を作成
issues.new_label=新しいラベル
issues.new_label_placeholder=ラベル名...
issues.create_label=ラベルを作成
-issues.label_templates.title=Load a predefined set of labels
-issues.label_templates.info=There aren’t any labels yet. You can click on the "New Label" button above to create one or use a predefined set below.
-issues.label_templates.helper=Select a label set
-issues.label_templates.use=Use this label set
-issues.label_templates.fail_to_load_file=Failed to load label template file '%s': %v
+issues.label_templates.title=定義済みラベルセットからラベルを作成
+issues.label_templates.info=ラベルはまだありません。上にある「新しいラベル」ボタンをクリックし新たに作成するか、以下の定義済みラベルセットの中から選択してください。
+issues.label_templates.helper=ラベルセットを選択
+issues.label_templates.use=このラベルセットを使用する
+issues.label_templates.fail_to_load_file=ラベルテンプレートファイル '%s' の読み込みに失敗しました: %v
issues.open_tab=%d オープン
issues.close_tab=%d クローズ
issues.filter_label=ラベル
@@ -504,55 +577,55 @@ issues.filter_milestone_no_select=選択されたマイルストーンなし
issues.filter_assignee=アサインされた人
issues.filter_assginee_no_select=選択可能な担当者がいない
issues.filter_type=タイプ
-issues.filter_type.all_issues=すべての問題
+issues.filter_type.all_issues=すべての課題
issues.filter_type.assigned_to_you=担当中のリポジトリ
issues.filter_type.created_by_you=作成したリポジトリ
issues.filter_type.mentioning_you=あなたに伝える
issues.filter_sort=並べ替え
-issues.filter_sort.latest=最新
-issues.filter_sort.oldest=最も古い
-issues.filter_sort.recentupdate=最近更新された
-issues.filter_sort.leastupdate=つい最近更新
-issues.filter_sort.mostcomment=一番多いコメント
-issues.filter_sort.leastcomment=一番少ないコメント
-issues.opened_by=opened %[1]s by %[3]s
-issues.opened_by_fake=opened %[1]s by %[2]s
+issues.filter_sort.latest=作成が新しい順
+issues.filter_sort.oldest=作成が古い順
+issues.filter_sort.recentupdate=更新が新しい順
+issues.filter_sort.leastupdate=作成が古い順
+issues.filter_sort.mostcomment=コメントが多い順
+issues.filter_sort.leastcomment=コメントが少ない順
+issues.opened_by=%[1]s に %[3]s によって開かれました
+issues.opened_by_fake=%[1]s に %[2]s によって開かれました
issues.previous=前ページ
issues.next=次ページ
issues.open_title=オープン
issues.closed_title=クローズ
issues.num_comments=%d コメント
-issues.commented_at=`commented %s`
-issues.delete_comment_confirm=Are you sure you want to delete this comment?
+issues.commented_at=`が %s にコメントしました`
+issues.delete_comment_confirm=このコメントを削除してよろしいですか?
issues.no_content=まだコンテンツがありません
issues.close_issue=閉じる
issues.close_comment_issue=コメントしてクローズ
issues.reopen_issue=Reopen
issues.reopen_comment_issue=コメントと再開
issues.create_comment=コメント
-issues.closed_at=`closed %[2]s`
-issues.reopened_at=`reopened %[2]s`
-issues.commit_ref_at=`referenced this issue from a commit %[2]s`
+issues.closed_at=`%[2]s に閉じられました`
+issues.reopened_at=`%[2]s に再び開かれました`
+issues.commit_ref_at=`この課題がコミット %[2]s から参照されました`
issues.poster=ポスター
-issues.collaborator=コラボレータ
+issues.collaborator=共同編集者
issues.owner=オーナー
-issues.sign_in_require_desc=Sign in to join this conversation.
+issues.sign_in_require_desc=会話に参加するには サインイン してください。
issues.edit=編集
issues.cancel=キャンセル
issues.save=保存
issues.label_title=ラベル名
issues.label_color=ラベルの色
issues.label_count=%d ラベル
-issues.label_open_issues=%d 未解決の問題
+issues.label_open_issues=%d 未解決の課題
issues.label_edit=編集
issues.label_delete=削除
issues.label_modify=ラベルの変更
issues.label_deletion=ラベルの削除
-issues.label_deletion_desc=ラベルを削除すると、関連するすべての問題の情報が削除されます。続行しますか。
+issues.label_deletion_desc=ラベルを削除すると、現在紐付けられているすべての課題から削除されます。よろしいですか?
issues.label_deletion_success=ラベルは正常に削除されました。
-issues.num_participants=%d Participants
-issues.attachment.open_tab=`Click to see "%s" in a new tab`
-issues.attachment.download=`Click to download "%s"`
+issues.num_participants=%d 参加者
+issues.attachment.open_tab=`クリックして新しいタブで "%s" を見る`
+issues.attachment.download=`クリックして "%s" をダウンロード`
pulls.new=新しいプルリクエスト
pulls.compare_changes=変更を比較
@@ -561,24 +634,30 @@ pulls.compare_base=ベース
pulls.compare_compare=比較
pulls.filter_branch=フィルターブランチ
pulls.no_results=結果が見つかりませんでした。
-pulls.nothing_to_compare=There is nothing to compare because base and head branches are even.
+pulls.nothing_to_compare=ベースブランチとヘッドブランチが同一であるため、比較するものがありません。
+pulls.nothing_merge_base=2 本の枝が完全に異なる歴史を持っているので、比較するものがありません。
pulls.has_pull_request=`既にプルリクエストがこれらのターゲット間に存在します: %[2]s#%[3]d`
pulls.create=プルリクエストを作成します。
-pulls.title_desc=wants to merge %[1]d commits from %[2]s into %[3]s
-pulls.merged_title_desc=merged %[1]d commits from %[2]s into %[3]s %[4]s
+pulls.title_desc=が %[2]s から %[3]s への %[1]d コミットのマージを希望しています
+pulls.merged_title_desc=%[4]s に %[1]d 件のコミットが %[2]s から %[3]s にマージされました
pulls.tab_conversation=会話
pulls.tab_commits=コミット
-pulls.tab_files=ファイルが変更された
-pulls.reopen_to_merge=Please reopen this pull request to perform merge operation.
+pulls.tab_files=変更されたファイル
+pulls.reopen_to_merge=マージ操作を実行するには、このプルリクエストを再び開いてください。
pulls.merged=マージされた
-pulls.has_merged=このプルプルリクエストは正常にマージされました!
-pulls.data_broken=Data of this pull request has been broken due to deletion of fork information.
-pulls.is_checking=The conflict checking is still in progress, please refresh page in few moments.
-pulls.can_auto_merge_desc=This pull request can be merged automatically.
-pulls.cannot_auto_merge_desc=This pull request can't be merged automatically because there are conflicts.
+pulls.has_merged=このプルリクエストは正常にマージされました!
+pulls.data_broken=フォーク情報の削除によってこのプルリクエストのデータは壊れています。
+pulls.is_checking=コンフリクトが発生していないかチェック中です、しばらく待ったのちページを更新してください。
+pulls.can_auto_merge_desc=このプルリクエストは自動的にマージできます。
+pulls.cannot_auto_merge_desc=コンフリクトが発生しているため、このプルリクエストを自動的にマージすることはできません。
pulls.cannot_auto_merge_helper=競合を解決するためには、手動でマージする必要があります。
+pulls.create_merge_commit=マージコミットを作成する
+pulls.rebase_before_merging=マージする前に再配置します。
+pulls.commit_description=コミットの説明
pulls.merge_pull_request=プルリクエストをマージします。
-pulls.open_unmerged_pull_exists=`You can't perform reopen operation because there is already an open pull request (#%d) from same repository with same merge information and is waiting for merging.`
+pulls.open_unmerged_pull_exists=`同じリポジトリに同じマージ情報持つ未解決のプルリクエスト (#%d) が存在するため再び開くことができません。`
+pulls.delete_branch=ブランチの削除
+pulls.delete_branch_has_new_commits=マージ後に新しいコミットが行われているため、ブランチを削除することはできません。
milestones.new=新しいマイルストーン
milestones.open_tab=%d オープン
@@ -587,27 +666,27 @@ milestones.closed=%s を閉じました
milestones.no_due_date=期限なし
milestones.open=開く
milestones.close=閉じる
-milestones.new_subheader=あなたの課題を整理するためマイルス トーンを作成します。
-milestones.create=マイルス トーンを作成
+milestones.new_subheader=あなたの課題を整理するためマイルストーンを作成します。
+milestones.create=マイルストーンを作成
milestones.title=タイトル
milestones.desc=説明
milestones.due_date=期日 (オプション)
milestones.clear=消去
-milestones.invalid_due_date_format=期限日付のフォーマットが無効、'yyyy-mm-dd' のフォーマットが必要です。
-milestones.create_success=マイルス トーン '%s' が正常に作成されました!
-milestones.edit=マイルス トーンを編集
-milestones.edit_subheader=人々を混乱させないため、マイルス トーンにより良い説明を使用します。
+milestones.invalid_due_date_format=期日のフォーマットが無効です、 'yyyy-mm-dd' の形式である必要があります。
+milestones.create_success=マイルストーン '%s' が正常に作成されました!
+milestones.edit=マイルストーンを編集
+milestones.edit_subheader=メンバーを混乱させないよう、マイルストーンの説明はわかりやすくしましょう。
milestones.cancel=キャンセル
-milestones.modify=マイルス トーンを変更します。
-milestones.edit_success=マイルス トーン '%s' の変更が正常に保存されました。
-milestones.deletion=マイルス トーンの削除
-milestones.deletion_desc=このマイルス トーンを削除すると、関連課題に該当情報が削除されます。続行しますか。
-milestones.deletion_success=マイルス トーンは正常に削除されました。
+milestones.modify=マイルストーンを変更
+milestones.edit_success=マイルストーン '%s' の変更が正常に保存されました!
+milestones.deletion=マイルストーンの削除
+milestones.deletion_desc=マイルストーンを削除すると、課題との紐付け情報が削除されます。続行しますか?
+milestones.deletion_success=マイルストーンは正常に削除されました!
wiki=Wiki
wiki.welcome=Wiki へようこそ!
wiki.welcome_desc=Wikiとは、あなたのプロジェクトを文書化し、複数人で一緒に編集する場所です。
-wiki.create_first_page=最初のページを作成する。
+wiki.create_first_page=最初のページを作成する
wiki.page=ページ
wiki.filter_page=フィルターページ
wiki.new_page=新しいページを作成
@@ -617,64 +696,94 @@ wiki.last_commit_info=%s このページを編集 %s
wiki.edit_page_button=編集
wiki.new_page_button=新規ページ
wiki.delete_page_button=ページの削除
-wiki.delete_page_notice_1=This will delete the page "%s". Please be certain.
+wiki.delete_page_notice_1=ページ "%s" が削除されます。ご確認ください。
wiki.page_already_exists=既に同じ名前のWiki ページが存在します。
wiki.pages=ページ
wiki.last_updated=最終更新 %s
settings=設定
settings.options=オプション
-settings.collaboration=コラボレーション
+settings.collaboration=共同編集
settings.collaboration.admin=管理
settings.collaboration.write=書込
settings.collaboration.read=読込
-settings.collaboration.undefined=Undefined
+settings.collaboration.undefined=未定義
+settings.branches=ブランチ
+settings.branches_bare=リポジトリが初期の状態ではブランチの設定はおこなえません。まずは何かプッシュしてください。
+settings.default_branch=デフォルトブランチ
+settings.default_branch_desc=デフォルトブランチは、コードのコミットやプルリクエスト、オンライン編集において「基点」となるブランチです。
+settings.update=更新
+settings.update_default_branch_unsupported=このサーバー上のGitバージョンではデフォルトブランチの変更がサポートされていません。
+settings.update_default_branch_success=このリポジトリのデフォルトブランチが更新されました!
+settings.protected_branches=保護されたブランチ
+settings.protected_branches_desc=force pushや偶発的な削除からの保護、コミッターのホワイトリスト設定をおこないます。
+settings.choose_a_branch=ブランチを選択...
+settings.branch_protection=ブランチの保護
+settings.branch_protection_desc=%s ブランチの保護設定を選択してください。
+settings.protect_this_branch=このブランチを保護
+settings.protect_this_branch_desc=force pushの無効化と、ブランチの削除防止をおこないます。
+settings.protect_require_pull_request=直接のプッシュの代わりに、プルリクエストの作成が必要
+settings.protect_require_pull_request_desc=このブランチへの直接のプッシュを無効にするオプションを有効化します。コミットは、別の保護されていないブランチへプッシュをしたのちに、プルリクエストを通してマージする必要があります。
+settings.protect_whitelist_committers=このブランチにプッシュできるユーザー
+settings.protect_whitelist_committers_desc=このブランチに直接プッシュできるユーザーやチームをホワイトリストに追加してください。ホワイトリストのユーザーは、プルリクエストによるチェックを必要としません。
+settings.protect_whitelist_users=このブランチにプッシュできるユーザー
+settings.protect_whitelist_search_users=ユーザーを検索
+settings.protect_whitelist_teams=このブランチに直接プッシュすることができるチーム
+settings.protect_whitelist_search_teams=チームを検索
+settings.update_protect_branch_success=このブランチの保護設定が更新されました!
settings.hooks=Webhooks
settings.githooks=Git のフック
settings.basic_settings=基本設定
-settings.mirror_settings=Mirror Settings
+settings.mirror_settings=ミラー設定
settings.sync_mirror=今すぐ同期
-settings.mirror_sync_in_progress=Mirror syncing is in progress, please refresh page in about a minute.
+settings.mirror_sync_in_progress=ミラー同期中です。1分後にページを更新してください。
settings.site=公式サイト
settings.update_settings=設定の更新
settings.change_reponame_prompt=この変更はリンクがリポジトリに関連付ける方法に影響します。
settings.advanced_settings=拡張設定
-settings.wiki_desc=Enable wiki system
-settings.use_internal_wiki=Use builtin wiki
-settings.use_external_wiki=外部 wiki を使用します。
+settings.wiki_desc=Wiki システムを有効にする
+settings.use_internal_wiki=内蔵 Wiki を使用する
+settings.allow_public_wiki_desc=非公開リポジトリであってもWikiへのアクセスは誰でも可能にする
+settings.use_external_wiki=外部 Wiki を使用する
settings.external_wiki_url=外部 Wiki の URL
-settings.external_wiki_url_desc=Visitors will be redirected to URL when they click on the tab.
-settings.issues_desc=Enable issue tracker
-settings.use_internal_issue_tracker=Use builtin lightweight issue tracker
+settings.external_wiki_url_desc=訪問者がタブをクリックしたとき、このURLにリダイレクトされます。
+settings.issues_desc=課題トラッキングツールを有効
+settings.use_internal_issue_tracker=軽量な内蔵の課題トラッキングシステムを使用
+settings.allow_public_issues_desc=非公開リポジトリであっても課題へのアクセスは誰でも可能にする
settings.use_external_issue_tracker=外部課題トラッキングシステムを使用
+settings.external_tracker_url=外部課題トラッキングツール URL
+settings.external_tracker_url_desc=訪問者がタブをクリックしたとき、このURLにリダイレクトされます。
settings.tracker_url_format=外部課題トラッキングツール URLのフォーマット
-settings.tracker_issue_style=External Issue Tracker Naming Style:
+settings.tracker_issue_style=外部課題トラッキングシステムの命名方式:
settings.tracker_issue_style.numeric=数値
-settings.tracker_issue_style.alphanumeric=Alphanumeric
-settings.tracker_url_format_desc=You can use placeholder {user} {repo} {index} for user name, repository name and issue index.
-settings.pulls_desc=Enable pull requests to accept public contributions
+settings.tracker_issue_style.alphanumeric=英数字
+settings.tracker_url_format_desc=ユーザー名、リポジトリ名、課題番号を埋め込むために {user} {repo} {index} が使用できます。
+settings.pulls_desc=プルリクエストを有効にし、リポジトリとブランチ間のコントリビューションを受け入れる
+settings.pulls.ignore_whitespace=空白の変更を無視する
+settings.pulls.allow_rebase_merge=コミットをマージするためのリベースの使用を許可する
settings.danger_zone=危険地帯
+settings.cannot_fork_to_same_owner=元の持ち主に向けてフォークすることは出来ません。
settings.new_owner_has_same_repo=新しいオーナーは、既に同じ名前のリポジトリを持っています。
-settings.convert=Convert To Regular Repository
-settings.convert_desc=You can convert this mirror to a regular repository. This cannot be reversed.
-settings.convert_notices_1=- This operation will convert this repository mirror into a regular repository and cannot be undone.
-settings.convert_confirm=Confirm Conversion
-settings.convert_succeed=Repository has been converted to regular type successfully.
+settings.convert=通常リポジトリへ変更
+settings.convert_desc=ミラーリポジトリを通常のリポジトリに変更します。この操作は元に戻せません。
+settings.convert_notices_1=- この操作によりリポジトリはミラーリポジトリから通常リポジトリへと変更され、元に戻すことはできません。
+settings.convert_confirm=変更を確認
+settings.convert_succeed=リポジトリは正常に通常リポジトリへ変更されました。
settings.transfer=オーナー移転
-settings.transfer_desc=リポジトリをあなたが管理者権限を持っている別のユーザーまた組織に移譲します。
+settings.transfer_desc=このリポジトリを、別のユーザーまたはあなたが管理者権限を所持している組織に委譲します。
settings.transfer_notices_1=-新しい所有者が個人ユーザーの場合、あなたがアクセスできなくなります。
-settings.transfer_notices_2=- You will conserve access if new owner is an organization and if you're one of the owners.
+settings.transfer_notices_2=- 新しい所有者が組織で、あなたがその組織の所有者である場合はアクセス権が残ります。
settings.transfer_form_title=操作を確認するために、以下の情報を入力してください。
settings.wiki_delete=Wikiのデータ消去
settings.wiki_delete_desc=Wikiのデータを消去すると元に戻すことは出来ません。よく確認してください。
-settings.wiki_delete_notices_1=- This will delete and disable the wiki for %s
+settings.wiki_delete_notices_1=- %s の Wiki を削除して無効にします。
settings.wiki_deletion_success=Wikiのデータ消去が完了しました。
settings.delete=このリポジトリを削除
settings.delete_desc=リポジトリを削除すると元に戻せません。確実に確認してください。
settings.delete_notices_1=-この操作は元に戻せません 。
-settings.delete_notices_2=- This operation will permanently delete the everything of this repository, including Git data, issues, comments and accesses of collaborators.
-settings.delete_notices_fork_1=- All forks will become independent after deletion.
-settings.deletion_success=Repository has been deleted successfully!
+settings.delete_notices_2=-この操作はこのリポジトリで、Git データ、問題、コメント協力アクセスなどすべて削除されます。
+settings.delete_notices_fork_1=- 削除後、すべてのフォークは独立したリポジトリになります。
+settings.deletion_success=リポジトリが正常に削除されました。
settings.update_settings_success=リポジトリ オプションが更新されました。
settings.transfer_owner=新しいオーナー
settings.make_transfer=転送
@@ -682,26 +791,31 @@ settings.transfer_succeed=リポジトリの所有権は正常に転送されま
settings.confirm_delete=削除を確認
settings.add_collaborator=新しい共同編集者を追加
settings.add_collaborator_success=新しい共同編集者が追加されました。
-settings.delete_collaborator=Delete
-settings.collaborator_deletion=Collaborator Deletion
-settings.collaborator_deletion_desc=This user will no longer have collaboration access to this repository after deletion. Do you want to continue?
+settings.delete_collaborator=削除
+settings.collaborator_deletion=共同編集者の削除
+settings.collaborator_deletion_desc=削除後、このユーザーはこのリポジトリに、共同編集のためのアクセスができなくなります。続行しますか?
settings.remove_collaborator_success=共同編集者が削除されました。
-settings.search_user_placeholder=Search users
+settings.search_user_placeholder=ユーザーを検索...
settings.org_not_allowed_to_be_collaborator=組織を共同編集者として追加することはできません。
-settings.user_is_org_member=ユーザーは組織の一員なので、共同編集者として追加することはできません。
-settings.add_webhook=Webhook を追加
settings.hooks_desc=Webhooksは、Gogsで特定のイベントの発生時に指定された外部サービスに通知を許可します。イベントが発生すると、それぞれ指定されたUrlに、POSTリクエストが送られます。詳細はこちらのの Webhooks ガイドをご覧ください。
+settings.webhooks.add_new=Add a new webhook:
+settings.webhooks.choose_a_type=Choose a type...
+settings.add_webhook=Webhook を追加
settings.webhook_deletion=Webhook を削除
settings.webhook_deletion_desc=このwebhookを削除すると、すべての情報と配信履歴が削除されます。続行しますか?
settings.webhook_deletion_success=Webhook が正常に削除されました。
settings.webhook.test_delivery=テスト配信
-settings.webhook.test_delivery_desc=Send a fake push event delivery to test your webhook settings
-settings.webhook.test_delivery_success=Test webhook has been added to delivery queue. It may take few seconds before it shows up in the delivery history.
+settings.webhook.test_delivery_desc=Webhook 設定をテストするために、フェイクのpushイベントを送信します
+settings.webhook.test_delivery_success=テスト Webhook が配信キューに追加されました。配信履歴に表示されるまでにはしばらく時間がかかる場合があります。
+settings.webhook.redelivery=再送信
+settings.webhook.redelivery_success=フックタスク '%s' が配信キューに再び追加されました。配信履歴に表示されるまでにはしばらく時間がかかる場合があります。
settings.webhook.request=リクエスト
settings.webhook.response=レスポンス
settings.webhook.headers=ヘッダ
settings.webhook.payload=ペイロード
settings.webhook.body=ボディ
+settings.webhook.err_cannot_parse_payload_url=Cannot parse payload URL: %v
+settings.webhook.url_resolved_to_blocked_local_address=Payload URL resolved to a local network address that is implicitly blocked.
settings.githooks_desc=Git のフックは Git 自体によって提供されています。以下のリストのファイルを編集して、サポートされているフックのカスタム操作を適用することができます。
settings.githook_edit_desc=もしフックがアクティブではない場合は、サンプルコンテンツが表示されます。コンテンツを空白にするにはこのフックを無効にします。
settings.githook_name=フックの名前
@@ -711,19 +825,30 @@ settings.add_webhook_desc=私たちは、指定されたURLに購読されたイ
settings.payload_url=ペイロードの URL
settings.content_type=コンテンツ タイプ
settings.secret=秘密
-settings.slack_username=ユーザ名
+settings.secret_desc=秘密キーは、 X-Gogs-Signature ヘッダーを介してペイロードの HMAC SHA256 六角ダイジェストとして送信されます。
+settings.slack_username=ユーザー名
settings.slack_icon_url=アイコン URL
settings.slack_color=カラー
-settings.event_desc=どのイベントをこのWEBフックのトリガーにしますか?
+settings.event_desc=どのイベントをこの Webhook のトリガーにしますか?
settings.event_push_only=push イベントのみ
-settings.event_send_everything=すべて が必要です。
-settings.event_choose=必要なものを選択しましょう。
-settings.event_create=Create
-settings.event_create_desc=ブランチ、またはタグを作成
-settings.event_pull_request=Pull Request
-settings.event_pull_request_desc=Pull request opened, closed, reopened, edited, assigned, unassigned, label updated, label cleared, or synchronized.
+settings.event_send_everything=すべてのイベント
+settings.event_choose=必要なものを選択
+settings.event_create=作成
+settings.event_create_desc=ブランチやタグの作成時
+settings.event_delete=削除
+settings.event_delete_desc=ブランチやタグの削除時
+settings.event_fork=フォーク
+settings.event_fork_desc=リポジトリがフォークされた時
settings.event_push=プッシュ
-settings.event_push_desc=Git リポジトリにプッシュ
+settings.event_push_desc=リポジトリへのプッシュがされた時
+settings.event_issues=課題
+settings.event_issues_desc=課題の開始・終了・再開・編集・アサイン・アサイン解除・ラベル更新・ラベル削除・マイルストーン紐付け・マイルストーン紐付け解除がされた時
+settings.event_pull_request=プルリクエスト
+settings.event_pull_request_desc=プルリクエストの開始・終了・再開・編集・アサイン・アサイン解除・ラベル更新・ラベル削除・マイルストーン紐付け・マイルストーン紐付け解除・同期がされた時
+settings.event_issue_comment=課題へのコメント
+settings.event_issue_comment_desc=課題へのコメントが作成・編集・削除された時
+settings.event_release=リリース
+settings.event_release_desc=リポジトリでリリースが公開された時
settings.active=アクティブ
settings.active_helper=このフックのトリガーが引かれた時に、イベントの詳細を配信します。
settings.add_hook_success=新しい webhook が追加されました。
@@ -732,14 +857,17 @@ settings.update_hook_success=Webhook を更新しました。
settings.delete_webhook=Webhook を削除
settings.recent_deliveries=最近のデリバリー
settings.hook_type=フックタイプ
-settings.add_slack_hook_desc= Slack インテグレーションをリポジトリに追加します。
+settings.add_slack_hook_desc=リポジトリに Slack 連携を追加します。
+settings.add_discord_hook_desc=リポジトリに Discord 連携を追加します。
+settings.add_dingtalk_hook_desc=リポジトリに Dingtalk 連携を追加します。
settings.slack_token=トークン
settings.slack_domain=ドメイン
settings.slack_channel=チャンネル
settings.deploy_keys=デプロイキー
+settings.deploy_keys_helper=お探しですか? 個人公開鍵を追加する場合は、アカウント設定からおこなえます。
settings.add_deploy_key=デプロイキーを追加
settings.deploy_key_desc=個人アカウントのSSHキーとは異なり、デプロイキーは読み取り専用アクセスとなります。
-settings.no_deploy_keys=でプロキーは1つも追加されていません。
+settings.no_deploy_keys=デプロイキーは1つも追加されていません。
settings.title=タイトル
settings.deploy_key_content=コンテント
settings.key_been_used=デプロイキーが使用されています。
@@ -748,6 +876,8 @@ settings.add_key_success=新しいデプロイキー '%s'が正常に追加さ
settings.deploy_key_deletion=デプロイキーを削除
settings.deploy_key_deletion_desc=このデプロイキーを削除すると、このリポジトリに関連するすべてのアクセス権も削除されます。続行しますか。
settings.deploy_key_deletion_success=デプロイキーが正常に削除された!
+settings.description_desc=リポジトリの説明(512文字以内)
+settings.description_length=利用可能な文字
diff.browse_source=ソースを参照
diff.parent=親
@@ -755,23 +885,22 @@ diff.commit=コミット
diff.data_not_available=差分データは利用できません。
diff.show_diff_stats=差分情報を表示
diff.show_split_view=分割表示
-diff.show_unified_view=Unified View
-diff.stats_desc=共有%d 個のファイルを変更した、%d 個の追加 と %d 個の削除を含む
+diff.show_unified_view=一括表示
+diff.stats_desc=%d ファイル変更、%d 行追加、%d 行削除
diff.bin=BIN
diff.view_file=ファイルの表示
-diff.file_suppressed=File diff suppressed because it is too large
-diff.too_many_files=Some files were not shown because too many files changed in this diff
+diff.file_suppressed=ファイルの差分が大きいため隠しています
+diff.too_many_files=この差分においてかなりの量のファイルが変更されているため、一部のファイルを表示していません
release.releases=リリース
release.new_release=新しいリリース
release.draft=ドラフト
release.prerelease=プレリリース
-release.stable=安定
release.edit=編集
-release.ahead=このリリース以降 %s へ %d コミット
+release.ahead=このリリース以降 %[2]s へ %[1]d コミット
release.source_code=ソース コード
-release.new_subheader=Publish releases to iterate product.
-release.edit_subheader=詳細な変更ログは、ユーザーに何が改善されたかの理解を助けることができます。
+release.new_subheader=製品を反復するためにリリースを公開する。
+release.edit_subheader=詳細な変更ログは、ユーザーが改善点を理解するのに役立つでしょう。
release.tag_name=タグ名
release.target=ターゲット
release.tag_helper=既存のタグを選択するか、新しいタグを作成し発行します。
@@ -791,8 +920,8 @@ release.deletion=リリースの削除
release.deletion_desc=このリリースを削除すると、対応するGitのタグも削除されます。よろしいですか?
release.deletion_success=リリースが正常に削除されました。
release.tag_name_already_exist=このタグ名には既にリリースが存在します。
-release.tag_name_invalid=Tag name is not valid.
-release.downloads=Downloads
+release.tag_name_invalid=タグ名が不正です。
+release.downloads=ダウンロード
[org]
org_name_holder=組織名
@@ -800,7 +929,7 @@ org_full_name_holder=組織のフルネーム
org_name_helper=偉大な組織の名は短く覚えやすいです。
create_org=組織を作成
repo_updated=最終更新
-people=人々
+people=メンバー
invite_someone=誰かを招待
teams=チーム
lower_members=メンバー
@@ -813,8 +942,8 @@ team_name_helper=会話の時、この名前を使用しチーム名を表明し
team_desc_helper=このチームに関する全ての情報は?
team_permission_desc=このチームに必要な権限レベルは?
-form.name_reserved=組織名 '%s' は予約されています。
-form.name_pattern_not_allowed=組織名のパターン '%s' は許可されていません。
+form.name_not_allowed=Organization name or pattern %q is not allowed.
+form.team_name_not_allowed=チーム名またはパターン %q は許可されていません。
settings=設定
settings.options=オプション
@@ -823,31 +952,31 @@ settings.website=WEBサイト
settings.location=ロケーション
settings.update_settings=設定の更新
settings.update_setting_success=組織の設定が更新されました。
-settings.change_orgname_prompt=This change will affect how links relate to the organization.
+settings.change_orgname_prompt=この変更は組織へのリンクに影響します。
settings.update_avatar_success=組織のアバター画像が正常に更新されました。
settings.delete=組織を削除
settings.delete_account=この組織を削除
settings.delete_prompt=この操作をすると組織が完全に削除され、二度と元に戻すことができなくなります !
settings.confirm_delete_account=削除を確認
settings.delete_org_title=組織の削除
-settings.delete_org_desc=この組織は完全に削除されます、継続しますか?
+settings.delete_org_desc=この組織は完全に削除されます。よろしいですか?
settings.hooks_desc=この組織のもとで すべてのリポジトリ に対してトリガーされる webhook を追加します。
-members.membership_visibility=Membership Visibility:
+members.membership_visibility=所属状況を公開:
members.public=パブリック
-members.public_helper=プライベートにする
-members.private=プライベート
+members.public_helper=非公開にする
+members.private=非公開
members.private_helper=公開する
members.member_role=メンバーの役割:
members.owner=オーナー
members.member=メンバー
members.remove=削除
-members.leave=退出
+members.leave=脱退
members.invite_desc=%s に新しいメンバーを追加
members.invite_now=今すぐ招待
teams.join=参加
-teams.leave=退出
+teams.leave=脱退
teams.read_access=読み取りアクセス権
teams.read_access_helper=このチームはリポジトリの閲覧とクローンをすることができます。
teams.write_access=書き込みアクセス権
@@ -875,7 +1004,7 @@ teams.add_nonexistent_repo=追加しようとしているリポジトリは存
[admin]
dashboard=ダッシュボード
-users=ユーザ
+users=ユーザー
organizations=組織
repositories=リポジトリ
authentication=認証
@@ -886,12 +1015,19 @@ first_page=First
last_page=Last
total=合計: %d
+dashboard.build_info=ビルド情報
+dashboard.app_ver=アプリケーションのバージョン
+dashboard.git_version=Git バージョン
+dashboard.go_version=Go バージョン
+dashboard.build_time=ビルド日時
+dashboard.build_commit=Build commit
dashboard.statistic=統計
dashboard.operations=操作
dashboard.system_status=システム モニターのステータス
-dashboard.statistic_info=Gogs データベースは %d ユーザ, %d 組織, %d 公開鍵, %d リポジトリ, %d ウォッチ, %d スター, %d 行動, %d アクセス, %d 問題, %d コメント, %d ソーシャルアカウント, %d フォロー, %d ミラー, %d リリース, %d ログイン元, %d webhook, %d マイルストーン, %d ラベル, %d フックタスク, %d チーム, %d アップデートタスク, %d 添付ファイル の情報を持っています。
+dashboard.statistic_info=Gogs データベースは %d 人のユーザー、%d 個の組織、%d 個の公開鍵、%d 個のリポジトリ、%d 個のウォッチ、%d 個のスター、%d 回のアクション、%d 回のアクセス、%d 個の課題、%d 個のコメント、%d 個のソーシャルアカウント、%d 個のフォロー、%d 個のミラー、%d 個のリリース、%d 個のログイン元、%d 個のwebフック、%d 個のマイルストーン、%d 個のラベル、%d 個のフックタスク、%d 個のチーム、%d 更新タスク、%d 個の添付ファイルの情報を保持しています。
dashboard.operation_name=操作の名前
dashboard.operation_switch=スイッチ
+dashboard.select_operation_to_run=操作を選択してください
dashboard.operation_run=実行
dashboard.clean_unbind_oauth=結び付けられていない OAuth をクリーン
dashboard.clean_unbind_oauth_success=結び付けられていない全ての OAuth を正常に削除しました。
@@ -900,15 +1036,15 @@ dashboard.delete_inactivate_accounts_success=すべての非アクティブア
dashboard.delete_repo_archives=リポジトリのすべてのアーカイブを削除
dashboard.delete_repo_archives_success=リポジトリのすべてのアーカイブが正常に削除されました。
dashboard.delete_missing_repos=Gitファイルが失われたリポジトリのすべてのレコードを削除
-dashboard.delete_missing_repos_success=All repository records that lost Git files have been deleted successfully.
+dashboard.delete_missing_repos_success=すべてのGitファイルを失ったレポジトリレコードが正常に削除されました。
dashboard.git_gc_repos=リポジトリでのガベージコレクションを実行します。
dashboard.git_gc_repos_success=すべてのリポジトリは正常にガベージ コレクションを行いました。
dashboard.resync_all_sshkeys='.ssh/ authorized_keys' ファイルを再生成します。(警告:Gogsキー以外は失われます)
dashboard.resync_all_sshkeys_success=すべての公開鍵が正常に書き換えられました。
-dashboard.resync_all_update_hooks=リポジトリの update フックをすべて再更新する(カスタムの設定パスが変更されたときに必要)
-dashboard.resync_all_update_hooks_success=リポジトリの update フックがすべて正常に再更新されました。
-dashboard.reinit_missing_repos=Reinitialize all repository records that lost Git files
-dashboard.reinit_missing_repos_success=All repository records that lost Git files have been reinitialized successfully.
+dashboard.resync_all_hooks=すべてリポジトリの pre-receive, update, post-receive フックを再同期する。
+dashboard.resync_all_hooks_success=すべてリポジトリの pre-receive, update, post-receive フックが正常に再同期されました。
+dashboard.reinit_missing_repos=Gitファイルが失われたリポジトリのすべてのレコードを再初期化する
+dashboard.reinit_missing_repos_success=すべてのGitファイルを失ったレポジトリレコードが正常に再初期化されました。
dashboard.server_uptime=サーバーの稼働時間
dashboard.current_goroutine=現在のGoroutine
@@ -943,30 +1079,30 @@ dashboard.gc_times=GC実行回数
users.user_manage_panel=ユーザー管理パネル
users.new_account=新規アカウントを作成
users.name=名前
-users.activated=アクティブ化
-users.admin=アドミン
+users.activated=有効
+users.admin=管理者
users.repos=リポジトリ
-users.created=作成されました
+users.created=作成日時
users.send_register_notify=登録通知をユーザーに送信
users.new_success=新規アカウント '%s' が正常に作成されました。
users.edit=編集
users.auth_source=認証ソース
users.local=ローカル
users.auth_login_name=認証ログイン名
-users.password_helper=それをそのまま空のままにします。
-users.update_profile_success=アカウントのプロファイルが更新されました。
+users.password_helper=変更しない場合は空白のままにしてください。
+users.update_profile_success=アカウント情報が更新されました。
users.edit_account=アカウントの編集
-users.max_repo_creation=Maximum Repository Creation Limit
-users.max_repo_creation_desc=(Set -1 to use global default limit)
-users.is_activated=アカウントがアクティブされました
-users.prohibit_login=This account is prohibited to login
-users.is_admin=このアカウントには管理者の権限を持つ
-users.allow_git_hook=このアカウントには Git のフックを作成する権限を持つ
-users.allow_import_local=This account has permissions to import local repositories
-users.update_profile=アカウント ・ プロファイルを更新
+users.max_repo_creation=最大リポジトリ作成数
+users.max_repo_creation_desc=(デフォルトの設定を使用する場合は -1 を設定してください)
+users.is_activated=アカウントの有効化
+users.prohibit_login=ログイン禁止のアカウント
+users.is_admin=管理者権限を持つアカウント
+users.allow_git_hook=Git フックの作成権限を持つアカウント
+users.allow_import_local=ローカルリポジトリをインポートする権限を持つアカウント
+users.update_profile=アカウント情報を更新
users.delete_account=このアカウントを削除
users.still_own_repo=アカウント所有のリポジトリがあり、リポジトリの削除または所有者の移譲が必要です。
-users.still_has_org=アカウントはまだ組織のメンバーであり、組織から退出するか削除する必要があります。
+users.still_has_org=このアカウントは1つ以上の組織に所属しているため、先に組織を脱退させるか組織を削除する必要があります。
users.deletion_success=アカウントが正常に削除されました。
orgs.org_manage_panel=組織の管理パネル
@@ -977,158 +1113,248 @@ orgs.members=メンバー
repos.repo_manage_panel=リポジトリの管理パネル
repos.owner=オーナー
repos.name=名前
-repos.private=プライベート
-repos.watches=Watches
-repos.stars=Stars
+repos.private=非公開
+repos.watches=ウォッチ
+repos.stars=スター
repos.issues=課題
+repos.size=容量
-auths.auth_manage_panel=認証管理パネル
+auths.auth_sources=認証ソース
auths.new=新しいソースを追加
auths.name=名前
auths.type=タイプ
-auths.enabled=Enabled
+auths.enabled=有効
+auths.default=デフォルト
auths.updated=更新しました
auths.auth_type=認証タイプ
auths.auth_name=認証名
-auths.security_protocol=Security Protocol
+auths.security_protocol=セキュリティプロトコル
auths.domain=ドメイン
auths.host=ホスト
auths.port=ポート
auths.bind_dn=バインド DN
+auths.bind_dn_helper='%s'はユーザー名のプレースホルダとして使用できます。 例)DOM \%s
auths.bind_password=バインド パスワード
auths.bind_password_helper=警告: このパスワードは暗号化されずに格納されます。特権を持つアカウントに使用しないでください。
-auths.user_base=ユーザ検索ベース
+auths.user_base=ユーザー検索ベース
auths.user_dn=User DN
-auths.attribute_username=Username attribute
-auths.attribute_username_placeholder=Leave empty to use sign-in form field value for user name.
+auths.attribute_username=ユーザー名属性
+auths.attribute_username_placeholder=ログインフォームの値を使う場合は空にしてください。
auths.attribute_name=名前属性
auths.attribute_surname=名字属性
auths.attribute_mail=Eメール属性
-auths.attributes_in_bind=Fetch attributes in Bind DN context
-auths.filter=User フィルター
+auths.verify_group_membership=グループ メンバーシップを確認します。
+auths.group_search_base_dn=グループ サーチベースDN
+auths.group_filter=グループ フィルター
+auths.group_attribute_contain_user_list=ユーザーのリストを含むグループ属性
+auths.user_attribute_listed_in_group=グループのユーザー属性
+auths.attributes_in_bind=属性をバインドDNのコンテクストから取得する
+auths.filter=ユーザーフィルター
auths.admin_filter=Admin フィルター
auths.ms_ad_sa=Ms Ad SA
auths.smtp_auth=SMTP 認証の種類
auths.smtphost=SMTP ホスト
auths.smtpport=SMTP ポート
auths.allowed_domains=許可されているドメイン
-auths.allowed_domains_helper=Leave it empty to not restrict any domains. Multiple domains should be separated by comma ','.
+auths.allowed_domains_helper=ドメイン制限をおこなわない場合は空のままにしてください。複数のドメインを記入する場合は、カンマ ',' で区切ってください。
auths.enable_tls=TLS 暗号化を有効にする
auths.skip_tls_verify=TLSベリファイを省略
auths.pam_service_name=PAMサービス名
auths.enable_auto_register=自動登録を有効にする
-auths.tips=ヒント
auths.edit=認証設定を編集
-auths.activated=認証がアクティブされました
+auths.activated=認証の有効化
+auths.default_auth=この認証を、既定のログイン ソースとする
auths.new_success=新しい認証 '%s' が正常に追加されました。
auths.update_success=認証の設定が正常に更新されました。
auths.update=認証設定を更新
auths.delete=この認証を削除
auths.delete_auth_title=認証削除
auths.delete_auth_desc=認証を削除します、継続しますか?
-auths.still_in_used=This authentication is still used by some users, please delete or convert these users to another login type first.
+auths.still_in_used=この認証を使用しているユーザーがいます。ユーザーを削除するか、別のログイン方法に割り当ててください。
auths.deletion_success=認証が正常に削除されました。
+auths.login_source_exist=ログイン ソース '%s' は既に存在します。
+auths.github_api_endpoint=APIエンドポイント
+config.not_set=(未設定)
config.server_config=サーバーの構成
-config.app_name=アプリケーション名
-config.app_ver=アプリケーションのバージョン
-config.app_url=アプリケーションの URL
-config.domain=ドメイン
-config.offline_mode=オフラインモード
-config.disable_router_log=ルーターのログを無効にする
-config.run_user=実行ユーザ
+config.brand_name=ブランド名
+config.run_user=実行ユーザー
config.run_mode=実行モード
-config.repo_root_path=リポジトリのルートパス
-config.static_file_root_path=静的ファイルのルートパス
-config.log_file_root_path=ログ ファイルのルート パス
-config.script_type=スクリプトの種類
-config.reverse_auth_user=リバース認証ユーザ
-
-config.ssh_config=SSH Configuration
-config.ssh_enabled=Enabled
-config.ssh_start_builtin_server=Start Builtin Server
-config.ssh_domain=Domain
-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
-
-config.db_config=データベースの構成
-config.db_type=タイプ
-config.db_host=ホスト
-config.db_name=名前
-config.db_user=ユーザ
-config.db_ssl_mode=SSL モード
-config.db_ssl_mode_helper=(「postgres」のみ)
-config.db_path=パス
-config.db_path_helper=(for "sqlite3" and "tidb")
-
-config.service_config=サービスの構成
-config.register_email_confirm=電子メールの確認を必要
-config.disable_register=登録を無効にする
-config.show_registration_button=登録ボタンを表示します。
-config.require_sign_in_view=サインインを要求
-config.mail_notify=メール通知
-config.disable_key_size_check=最小キー サイズ チェックを無効にします
-config.enable_captcha=Captchaを有効にする
-config.active_code_lives=コードリンクの有効期限をアクティブ
-config.reset_password_code_lives=パスワードリンクの有効期限をリセット
+config.server.external_url=外部 URL
+config.server.domain=ドメイン
+config.server.protocol=プロトコル
+config.server.http_addr=HTTPアドレス
+config.server.http_port=HTTP ポート
+config.server.cert_file=証明書ファイル
+config.server.key_file=キーファイル
+config.server.tls_min_version=最小TLSバージョン
+config.server.unix_socket_permission=Unixソケットの権限
+config.server.local_root_url=ローカル ルート URL
+config.server.offline_mode=オフラインモード
+config.server.disable_router_log=ルーターログを無効にする
+config.server.enable_gzip=Gzip を有効化
+config.server.app_data_path=アプリケーション データ パス
+config.server.load_assets_from_disk=Load assets from disk
+config.server.landing_url=Landing URL
+
+config.ssh_config=SSH設定
+config.ssh.enabled=有効
+config.ssh.domain=Exposed domain
+config.ssh.port=Exposed port
+config.ssh.root_path=Root path
+config.ssh.keygen_path=Keygen パス
+config.ssh.key_test_path=鍵テストパス
+config.ssh.minimum_key_size_check=最小キーサイズチェック
+config.ssh.minimum_key_sizes=最小キーサイズ
+config.ssh.rewrite_authorized_keys_at_start=Rewrite "authorized_keys" at start
+config.ssh.start_builtin_server=内蔵サーバーを起動
+config.ssh.listen_host=待受ホスト
+config.ssh.listen_port=待受ポート
+config.ssh.server_ciphers=Server ciphers
+config.ssh.server_macs=Server MACs
+config.ssh.server_algorithms=Server algorithms
+
+config.repo_config=リポジトリの設定
+config.repo.root_path=ルートパス
+config.repo.script_type=Script type
+config.repo.ansi_chatset=ANSI 文字コード
+config.repo.force_private=非公開にする
+config.repo.max_creation_limit=最大作成数
+config.repo.preferred_licenses=Preferred licenses
+config.repo.disable_http_git=HTTP Git の無効化
+config.repo.enable_local_path_migration=Enable local path migration
+config.repo.enable_raw_file_render_mode=Enable raw file render mode
+config.repo.commits_fetch_concurrency=Commits fetch concurrency
+config.repo.editor.line_wrap_extensions=Editor line wrap extensions
+config.repo.editor.previewable_file_modes=Editor previewable file modes
+config.repo.upload.enabled=Upload enabled
+config.repo.upload.temp_path=Upload temporary path
+config.repo.upload.allowed_types=Upload allowed types
+config.repo.upload.file_max_size=Upload file size limit
+config.repo.upload.max_files=Upload files limit
+
+config.db_config=データベース設定
+config.db.type=DB種類
+config.db.host=DBホスト
+config.db.name=DB名
+config.db.schema=Schema
+config.db.schema_helper=(for "postgres" only)
+config.db.user=DBユーザー
+config.db.ssl_mode=SSL モード
+config.db.ssl_mode_helper=("postgres"のみ)
+config.db.path=DBパス
+config.db.path_helper=("sqlite3"のみ)
+config.db.max_open_conns=Maximum open connections
+config.db.max_idle_conns=Maximum idle connections
+
+config.security_config=セキュリティ設定
+config.security.login_remember_days=Login remember days
+config.security.cookie_remember_name=Remember cookie
+config.security.cookie_username=Username cookie
+config.security.cookie_secure=セキュアなクッキーを有効にする
+config.security.reverse_proxy_auth_user=Reverse proxy authentication header
+config.security.enable_login_status_cookie=Enable login status cookie
+config.security.login_status_cookie_name=Login status cookie
+config.security.local_network_allowlist=Local network allowlist
+
+config.email_config=Email configuration
+config.email.enabled=Enabled
+config.email.subject_prefix=Subject prefix
+config.email.host=ホスト
+config.email.from=From
+config.email.user=ユーザー
+config.email.disable_helo=HELOを無効にする
+config.email.helo_hostname=HELO hostname
+config.email.skip_verify=Skip certificate verify
+config.email.use_certificate=Use custom certificate
+config.email.cert_file=Certificate file
+config.email.key_file=Key file
+config.email.use_plain_text=プレーンテキストを使用する
+config.email.add_plain_text_alt=Add plain text alternative
+config.email.send_test_mail=Send test email
+config.email.test_mail_failed=Failed to send test email to '%s': %v
+config.email.test_mail_sent=Test email has been sent to '%s'.
+
+config.auth_config=Authentication configuration
+config.auth_custom_logout_url=Custom logout URL
+config.auth.activate_code_lives=Activate code lives
+config.auth.reset_password_code_lives=Reset password code lives
+config.auth.require_email_confirm=Require email confirmation
+config.auth.require_sign_in_view=Require sign in view
+config.auth.disable_registration=登録を無効にする
+config.auth.enable_registration_captcha=登録時のCAPTCHAを有効にする
+config.auth.enable_reverse_proxy_authentication=リバースプロキシ認証を有効にする
+config.auth.enable_reverse_proxy_auto_registration=リバースプロキシの自動登録を有効にする
+config.auth.reverse_proxy_authentication_header=リバースプロキシ認証ヘッダー
+
+config.user_config=ユーザー設定
+config.user.enable_email_notify=メール通知を有効にする
+
+config.session_config=セッションの設定
+config.session.provider=Provider
+config.session.provider_config=Provider config
+config.session.cookie_name=Cookie
+config.session.https_only=HTTPS のみ
+config.session.gc_interval=GC 間隔
+config.session.max_life_time=Max life time
+config.session.csrf_cookie_name=CSRF cookie
+
+config.cache_config=キャッシュの設定
+config.cache.adapter=Adapter
+config.cache.interval=GC 間隔
+config.cache.host=ホスト
+
+config.http_config=HTTP の設定
+config.http.access_control_allow_origin=Access control allow origin
+
+config.attachment_config=Attachment configuration
+config.attachment.enabled=Enabled
+config.attachment.path=パス
+config.attachment.allowed_types=Allowed types
+config.attachment.max_size=サイズ制限
+config.attachment.max_files=ファイルの制限
+
+config.release_config=リリースの構成
+config.release.attachment.enabled=添付ファイルが有効になっています
+config.release.attachment.allowed_types=添付ファイルで許可されるタイプ
+config.release.attachment.max_size=添付ファイルのサイズ制限
+config.release.attachment.max_files=添付ファイルのサイズ制限
+
+config.picture_config=画像の設定
+config.picture.avatar_upload_path=User avatar upload path
+config.picture.repo_avatar_upload_path=Repository avatar upload path
+config.picture.gravatar_source=Gravatarのソース
+config.picture.disable_gravatar=Gravatarを無効にする
+config.picture.enable_federated_avatar=Enable federated avatars
+
+config.mirror_config=ミラー構成
+config.mirror.default_interval=Default interval
config.webhook_config=Webhook設定
-config.queue_length=キューの長さ
-config.deliver_timeout=送信タイムアウト
-config.skip_tls_verify=TLSの確認を省略
-
-config.mailer_config=メーラーの構成
-config.mailer_enabled=有効にした
-config.mailer_disable_helo=HELOコマンド無効
-config.mailer_name=名前
-config.mailer_host=ホスト
-config.mailer_user=ユーザ
-config.send_test_mail=Send Test Email
-config.test_mail_failed=Fail to send test email to '%s': %v
-config.test_mail_sent=Test email has been sent to '%s'.
-
-config.oauth_config=OAuth 構成
-config.oauth_enabled=Enabled
-
-config.cache_config=キャッシュの構成
-config.cache_adapter=キャッシュ アダプター
-config.cache_interval=キャッシュ間隔
-config.cache_conn=キャッシュ接続
-
-config.session_config=セッションの構成
-config.session_provider=セッション プロバイダー
-config.provider_config=プロバイダーの構成
-config.cookie_name=クッキーの名前
-config.enable_set_cookie=クッキーの設定を有効にする
-config.gc_interval_time=GC 間隔
-config.session_life_time=セッションのライフタイム
-config.https_only=HTTPS のみ
-config.cookie_life_time=クッキーのライフタイム
-
-config.picture_config=画像構成
-config.picture_service=画像サービス
-config.disable_gravatar=グラバターを無効にする
-config.enable_federated_avatar=Enable Federated Avatars
-
-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
-
-config.log_config=ログの構成
-config.log_mode=ログ モード
+config.webhook.types=Types
+config.webhook.deliver_timeout=配信のタイムアウト
+config.webhook.skip_tls_verify=TLS検証をスキップ
+
+config.git_config=Git 設定
+config.git.disable_diff_highlight=Diff のシンタックスハイライトを無効にする
+config.git.max_diff_lines=Diff lines limit (for a single file)
+config.git.max_diff_line_characters=Diff の最大文字数(1行あたり)
+config.git.max_diff_files=Diff files limit (for a single diff)
+config.git.gc_args=GC の引数
+config.git.migrate_timeout=Migration timeout
+config.git.mirror_timeout=Mirror fetch timeout
+config.git.clone_timeout=クローンのタイムアウト
+config.git.pull_timeout=Pull タイムアウト
+config.git.gc_timeout=GC タイムアウト
+
+config.lfs_config=LFS設定
+config.lfs.storage=ストレージ
+config.lfs.objects_path=Objects path
+
+config.log_config=ログの設定
+config.log_file_root_path=ログファイルのルートパス
+config.log_mode=モード
+config.log_options=オプション
monitor.cron=Cron タスク
monitor.name=名前
@@ -1152,24 +1378,31 @@ notices.delete_all=すべての通知を削除
notices.type=タイプ
notices.type_1=リポジトリ
notices.desc=説明
-notices.op=Op。
+notices.op=操作
notices.delete_success=システム通知が正常に削除されました。
[action]
create_repo=がリポジトリ %s を作成しました
-rename_repo=%[1]s から [3]s にリポジトリ名を変更しました
-commit_repo=%[4]sを%[3]sにプッシュしました
-create_issue=`問題 %s#%[2]s を開きました`
-close_issue=`closed issue %s#%[2]s`
-reopen_issue=`reopened issue %s#%[2]s`
+rename_repo=が %[1]s から %[3]s にリポジトリ名を変更しました
+commit_repo=が %[4]s に %[3]s をプッシュしました
+compare_commits=これらの %d コミットの比較を表示
+transfer_repo=リポジトリ %s を %s へ転送しました
+create_issue=`課題 %s#%[2]s を開きました`
+close_issue=`課題 %s#%[2]s を閉じました`
+reopen_issue=`課題 %s#%[2]s が再び開かれました`
+comment_issue=`が課題 %s#%[2]s にコメントしました`
create_pull_request=`プルリクエスト %s[2]sを作成`
-close_pull_request=`closed pull request %s#%[2]s`
-reopen_pull_request=`reopened pull request %s#%[2]s`
-comment_issue=`問題 %s#%[2]s のコメント`
+close_pull_request=`プルリクエスト %s#%[2]s を閉じました`
+reopen_pull_request=`プルリクエスト %s#%[2]s が再び開かれました`
merge_pull_request=`プルリクエスト %s[2]sをマージしました`
-transfer_repo=リポジトリ %s を %s へ転送しました
-push_tag=%[3]s に タグ %[2]s をプッシュしました
-compare_commits=これらの %d コミットの比較を表示
+create_branch=が %[4]s に新しいブランチ %[3]s を作成しました
+delete_branch=%[3]s のブランチ %[2]s を削除しました
+push_tag=が %[3]s にタグ %[2]s をプッシュしました
+delete_tag=%[3]s のタグ %[2]s を削除しました
+fork_repo=リポジトリを %s にフォークしました
+mirror_sync_push=%[4]s の %[3]s へのコミットをミラーから反映しました
+mirror_sync_create=新しい参照%[2]sを%[3]sにミラーから反映しました
+mirror_sync_delete=%[3]s の参照 %[2]s をミラーから同期および削除しました
[tool]
ago=前
@@ -1191,6 +1424,7 @@ months=%d ヶ月 %s
years=%d 年 %s
raw_seconds=秒
raw_minutes=分
+raw_hours=時間
[dropzone]
default_message=ここにファイルをドロップまたはクリックしてアップロードします。
diff --git a/conf/locale/locale_ko-KR.ini b/conf/locale/locale_ko-KR.ini
new file mode 100644
index 00000000000..69e72d01e95
--- /dev/null
+++ b/conf/locale/locale_ko-KR.ini
@@ -0,0 +1,1436 @@
+app_desc=편리한 설치형 Git 서비스
+
+home=홈
+dashboard=대시보드
+explore=탐색
+help=도움말
+sign_in=로그인
+sign_out=로그아웃
+sign_up=가입하기
+register=가입하기
+website=웹 사이트
+page=페이지
+template=템플릿
+language=언어
+create_new=만들기...
+user_profile_and_more=사용자 프로필 및 기타
+signed_in_as=다음 사용자로 로그인됨
+
+username=사용자명
+email=이메일
+password=비밀번호
+re_type=재입력
+captcha=보안 문자
+
+repository=저장소
+organization=조직
+mirror=미러
+new_repo=새 저장소
+new_migrate=새 마이그레이션
+new_mirror=새로운 미러
+new_fork=새로운 포크 저장소
+new_org=새로운 조직
+manage_org=조직 관리
+admin_panel=관리자 패널
+account_settings=계정 설정
+settings=설정
+your_profile=프로필
+your_settings=설정
+
+activities=활동
+pull_requests=풀 리퀘스트
+issues=이슈
+
+cancel=취소
+
+[status]
+page_not_found=페이지를 찾을 수 없음
+internal_server_error=내부 서버 오류
+
+[install]
+install=설치
+title=첫 실행을 위한 설치단계
+docker_helper=Gogs를 Docker에서 운영하고 있다면 안내를 읽고 변경해 주세요!
+requite_db_desc=Gogs는 MySQL, PostgreSQL, SQLite3, TiDB (MySQL protocol)을 필요로 합니다.
+db_title=데이터베이스 설정
+db_type=데이터베이스 유형
+host=호스트
+user=사용자
+password=비밀번호
+db_name=데이터베이스 이름
+db_schema=스키마
+db_helper=MySQL에서는 utf8_general_ci 캐릭터셋으로 INNODB엔진을 이용해 주세요
+ssl_mode=SSL 모드
+path=경로
+sqlite_helper=SQLite3 데이터베이스의 경로입니다. 서비스를 시작할 때는 반드시 절대 경로를 사용해주세요.
+err_empty_db_path=SQLite3 데이터베이스의 경로는 비워둘 수 없습니다.
+no_admin_and_disable_registration=관리자 계정을 만들지 않고 등록을 비활성화할 수 없습니다.
+err_empty_admin_password=관리자 암호는 비워둘 수 없습니다.
+
+general_title=애플리케이션 일반 설정
+app_name=애플리케이션 이름
+app_name_helper=이곳에 조직 이름을 입력해 주세요
+repo_path=저장소 최상위 경로
+repo_path_helper=모든 Git 원격 저장소는 이 디렉터리에 저장 됩니다.
+run_user=데몬 사용자 계정
+run_user_helper=사용자 계정은 저장소에 접근할 권한과 Gogs를 실행 할 권한이 있어야 합니다.
+domain=도메인
+domain_helper=Git SSH url에 영향을 미칩니다.
+ssh_port=SSH 포트
+ssh_port_helper=SSH서버가 실행되고 있는 포트를 입력하세요. 비워둘 경우 SSH를 사용하지 않습니다.
+use_builtin_ssh_server=내장 SSH 서버 사용
+use_builtin_ssh_server_popup=시스템 SSH 디먼과 구별하기 위해 Git 작업을 위한 빌트인 SSH 서버를 시작하세요.
+http_port=HTTP 포트
+http_port_helper=포트 번호는 애플리케이션에서 열고 있습니다.
+app_url=애플리케이션 URL
+app_url_helper=이 작업은 HTTP/HTTPS 클론 URL과 이메일의 어딘가에 영향을 미칩니다.
+log_root_path=로그 경로
+log_root_path_helper=로그 파일을 쓸 디렉터리.
+enable_console_mode=콘솔 모드 활성화
+enable_console_mode_popup=파일 모드 외에 콘솔에 로그를 인쇄하세요.
+default_branch=기본 브랜치
+
+optional_title=추가설정
+email_title=이메일 서비스 설정
+smtp_host=SMTP 호스트
+smtp_from=From
+smtp_from_helper=메일 발송 주소(RFC 5322). 일반적인 이메일 주소형태나 "Name" 형태를 입력할 수 있습니다.
+mailer_user=발송 주소 메일
+mailer_password=발송 주소의 비밀번호
+register_confirm=등록 확인 활성화
+mail_notify=메일 알림 활성화
+server_service_title=서버 및 기타 서비스 설정
+offline_mode=오프라인 모드 활성화
+offline_mode_popup=프로덕션 모드에서도 CDN을 사용하지 않습니다. 모든 리소스가 로컬에서 전송됩니다.
+disable_gravatar=Gravatar 서비스를 사용 안 함
+disable_gravatar_popup=Gravatar 및 사용자 지정 소스를 사용 하지 않습니다. 모든 아바타는 업로드하거나 기본 아바타가 제공됩니다.
+federated_avatar_lookup=연합 아바타 조회 활성화
+federated_avatar_lookup_popup=libravatar 기반 오픈소스 서비스 사용 목적으로 연합 아바타 조회를 허용하기
+disable_registration=직접 등록할 수 없게 함
+disable_registration_popup=사용자가 직접 등록할 수 없게 합니다. 관리자만이 추가할 수 있습니다.
+enable_captcha=Captcha 활성화
+enable_captcha_popup=사용자 등록시 캡차 요구
+require_sign_in_view=페이지를 보기 위해 로그인 사용 활성화
+require_sign_in_view_popup=로그인 사용자만 페이지를 볼 수 있습니다. 방문자는 로그인/가입 페이지만 볼 수 있을 것입니다.
+admin_setting_desc=ID가 1인, 첫번째로 생성된 계정이 관리자 계정이 되므로, 지금 계정을 생성하지 않으셔도 됩니다.
+admin_title=관리자 계정 설정
+admin_name=이름
+admin_password=비밀번호
+confirm_password=비밀번호 확인
+admin_email=관리자 이메일
+install_gogs=Gogs 설치하기
+test_git_failed='git' 명령 테스트 실패: %v
+sqlite3_not_available=설치하신 버전은 SQLite3을 지원하지 않으므로, %s로부터 공식 빌드를 설치하시기 바랍니다. gobuild 버전이 아닙니다.
+invalid_db_setting=데이터베이스 설정이 올바르지 않습니다: %v
+invalid_repo_path=저장소 루트 경로가 올바르지 않습니다: %v
+run_user_not_match=실행 유저가 현재 유저가 아닙니다: %s -> %s
+smtp_host_missing_port=SMTP 호스트 포트가 주소에 없습니다.
+invalid_smtp_from=SMTP 보낸 사람 필드가 유효하지 않습니다: %v
+save_config_failed=설정을 저장할 수 없습니다: %v
+init_failed=프로그램을 초기화하는데 실패하였습니다: %v
+invalid_admin_setting=관리자 계정 설정이 잘못되었습니다: %v
+install_success=환영합니다! Gogs를 선택해 주셔서 감사합니다.
+invalid_log_root_path=로그 루트 경로가 올바르지 않습니다: %v
+
+[home]
+uname_holder=사용자 이름이나 이메일
+password_holder=비밀번호
+switch_dashboard_context=대시보드 컨텍스트 바꾸기
+my_repos=내 저장소
+show_more_repos=더 많은 저장소 보기
+collaborative_repos=협업 저장소
+my_orgs=내 조직
+my_mirrors=내 미러 저장소들
+view_home=%s 보기
+
+issues.in_your_repos=당신의 저장소에
+
+[explore]
+repos=저장소
+users=유저
+organizations=조직
+search=검색
+
+[auth]
+create_new_account=새 계정 생성
+register_hepler_msg=이미 계정을 가지고 계신가요? 로그인하세요!
+social_register_hepler_msg=계정을 가지고 계신가요? 연결하세요!
+disable_register_prompt=죄송합니다, 가입이 비활성화 되어있습니다. 사이트 관리자에게 문의 해주세요.
+disable_register_mail=죄송합니다. 메일 등록이 비활성화 되었습니다.
+auth_source=인증 소스 편집
+local=로컬
+remember_me=자동 로그인
+forgot_password=비밀번호 찾기
+forget_password=비밀번호를 잊으셨습니까?
+sign_up_now=계정이 필요하신가요? 지금 가입하세요.
+confirmation_mail_sent_prompt=새로운 확인 메일이 %s로 전송되었습니다. 받은 편지함으로 도착한 메일을 %d시간 안에 확인해서 등록 절차를 완료하십시오.
+active_your_account=계정 활성화
+prohibit_login=로그인 금지됨
+prohibit_login_desc=당신의 계정이 로그인 금지 되었습니다. 관리자에게 문의해주세요.
+resent_limit_prompt=죄송합니다. 이미 최근에 활성화 메일을 요청하셨습니다. 다른 이메일 요청을 하시기 전 3분을 기다리셔야 합니다.
+has_unconfirmed_mail=안녕하세요 %s, 이메일 주소(%s)가 확인되지 않았습니다. 확인 메일을 받으시지 못하겼거나 새로운 확인 메일이 필요하다면, 아래 버튼을 클릭해 재발송하실 수 있습니다.
+resend_mail=여기를 눌러 확인 메일 재전송
+send_reset_mail=여기를 눌러 비밀번호 초기화 메일을 (재)전송
+reset_password=비밀번호 초기화
+invalid_code=죄송합니다. 확인 코드가 만료되었거나 유효하지 않습니다.
+reset_password_helper=이곳을 눌러 비밀번호를 재설정
+password_too_short=비밀번호의 길이는 6글자 미만일 수 없습니다.
+non_local_account=Gogs 계정이 아니면 암호를 변경할 수 없습니다.
+
+login_two_factor=2단계 인증
+login_two_factor_passcode=인증 패스코드
+login_two_factor_enter_recovery_code=2단계 복구 코드를 입력하세요
+login_two_factor_recovery=2단계 복구
+login_two_factor_recovery_code=복구 코드
+login_two_factor_enter_passcode=2단계 패스코드를 입력하세요
+login_two_factor_invalid_recovery_code=복구 코드가 사용 중이거나 유효하지 않습니다.
+
+[mail]
+activate_account=계정을 활성화하세요
+activate_email=이메일 주소 확인
+reset_password=비밀번호 초기화
+register_success=등록 성공, 환영합니다.
+register_notify=잘 오셨습니다
+
+[modal]
+yes=예
+no=아니오
+modify=수정
+
+[form]
+UserName=사용자 이름
+RepoName=저장소 이름
+Email=이메일 주소
+Password=비밀번호
+Retype=비밀번호 확인
+SSHTitle=SSH 키 이름
+HttpsUrl=HTTPS URL
+PayloadUrl=페이로드 URL
+TeamName=팀 이름
+AuthName=권한 이름
+AdminEmail=관리자 이메일
+
+NewBranchName=새로운 브랜치명
+CommitSummary=커밋 요약
+CommitMessage=커밋 메시지
+CommitChoice=커밋 선택
+TreeName=파일 경로
+Content=컨텐츠
+
+require_error=` 비어 있을 수 없습니다.`
+alpha_dash_error=`은(는) 숫자, 알파벳, 대시(-_) 문자로만 구성되어야 합니다.`
+alpha_dash_dot_error=` 숫자, 알파벳, 점(.), 대시(-_) 문자로만 구성되어야 합니다.`
+alpha_dash_dot_slash_error=` 은(는) 알파벳, 숫자, 대시(-_), 점, 슬래시로만 구성되어야 합니다.`
+size_error=` %s 글자여야 합니다.`
+min_size_error=` 최소 %s 글자여야 합니다.`
+max_size_error=` %s 글자를 넘을 수 없습니다.`
+email_error=` 올바른 이메일 주소가 아닙니다.`
+url_error=` 올바른 URL이 아닙니다.`
+include_error=` 반드시 '%s'를 포함해야 합니다.`
+unknown_error=알 수 없는 오류:
+captcha_incorrect=보안문자가 일치하지 않습니다.
+password_not_match=비밀번호와 비밀번호 확인이 동일하지 않습니다.
+
+username_been_taken=이미 사용중인 사용자 이름입니다.
+repo_name_been_taken=이미 사용중인 저장소 이름입니다.
+org_name_been_taken=이미 사용중인 조직 이름입니다.
+team_name_been_taken=이미 사용중인 팀 이름입니다.
+email_been_used=이미 사용중인 이메일 주소입니다.
+username_password_incorrect=사용자 이름이나 비밀번호가 올바르지 않습니다.
+auth_source_mismatch=선택 인증 소스는 사용자와 연결 됩니다.
+enterred_invalid_repo_name=입력한 저장소 이름이 올바른지 확인하십시오.
+enterred_invalid_owner_name=입력한 사용자 이름이 올바른지 확인하십시오.
+enterred_invalid_password=입력한 비밀번호가 올바른지 확인하십시오.
+user_not_exist=존재하지 않는 사용자입니다.
+last_org_owner=소유자 팀에서 마지막 사용자를 제거하는 것은 허용되지 않습니다. 최소한 한명의 소유자가 있어야 합니다.
+
+invalid_ssh_key=죄송합니다. SSH 키를 확인할 수 없습니다: %s
+unable_verify_ssh_key=Gogs에서 SSH 키를 검증할 수 없었지만 유효한 키로 가정하였습니다. 키가 올바른지 다시 확인해 주세요.
+auth_failed=인증 실패: %v
+
+still_own_repo=하나 이상의 저장소를 소유하고 있습니다. 저장소를 삭제하거나 다른사람에게 이전해야 합니다.
+still_has_org=하나 이상의 조직의 멤버로 소속되어 있습니다. 탈퇴하거나 조직을 삭제해야 합니다.
+org_still_own_repo=조직이 소유하고 있는 저장소가 있습니다. 삭제하거나 이전해야 합니다.
+
+target_branch_not_exist=대상 브랜치가 존재하지 않습니다.
+
+[user]
+change_avatar=아바타 변경
+join_on=가입 :
+repositories=저장소
+activity=공개 활동
+followers=팔로워
+starred=Starred
+following=팔로우 중
+follow=추적하기
+unfollow=추적해제
+
+form.name_not_allowed=사용자 이름 또는 패턴 %q 은(는) 허용되지 않습니다.
+
+[settings]
+profile=프로필
+password=비밀번호
+avatar=아바타
+ssh_keys=SSH 키
+security=보안
+repos=저장소
+orgs=조직
+applications=애플리케이션
+delete=계정 삭제
+
+public_profile=공개 프로필
+profile_desc=이메일 주소가 공개되며, 사이트를 통해 작업하거나 계정과 관련된 모든 알림에 사용됩니다.
+password_username_disabled=내부계정이 아닌 유형의 사용자는 이름 변경이 허용되지 않습니다.
+full_name=성명
+website=웹 사이트
+location=위치
+update_profile=프로필 업데이트
+update_profile_success=프로필이 성공적으로 업데이트 되었습니다.
+change_username=사용자명 변경
+change_username_prompt=이 변경은 당신의 계정과 연관된 모든 링크에 영향을 줍니다.
+continue=계속하기
+cancel=취소
+
+lookup_avatar_by_mail=이메일로 아바타 조회
+federated_avatar_lookup=연합 아바타 조회
+enable_custom_avatar=사용자정의 아바타를 사용
+choose_new_avatar=새로운 아바타 선택
+update_avatar=아바타 설정 업데이트
+delete_current_avatar=현재 아바타 삭제
+uploaded_avatar_not_a_image=업로드 된 파일은 이미지가 아닙니다.
+update_avatar_success=아바타 설정을 성공적으로 변경하였습니다.
+
+change_password=비밀번호 변경
+old_password=현재 비밀번호
+new_password=새 비밀번호
+retype_new_password=새 비밀번호 다시 입력
+password_incorrect=현재 비밀번호가 잘못되었습니다.
+change_password_success=비밀번호가 성공적으로 변경되었습니다. 이제 새로운 비밀번호로 로그인할 수 있습니다.
+password_change_disabled=로컬이 아닌 사용자는 자기 암호를 변경할 수 없습니다.
+
+emails=이메일 주소
+manage_emails=이메일 주소 관리
+email_desc=주 사용 이메일 주소는 알림과 기타 작업에 사용됩니다.
+primary=기본
+primary_email=기본으로 설정
+delete_email=삭제
+email_deletion=이메일 삭제
+email_deletion_desc=이메일 주소를 삭제하면 당신의 계정과 연관된 정보도 함께 삭제됩니다. 계속 하시겠습니까?
+email_deletion_success=이메일 주소를 성공적으로 삭제되하였습니다!
+email_deletion_primary=기본 이메일 주소를 삭제할 수 없습니다.
+add_new_email=새 이메일 주소 추가
+add_email=이메일 추가
+add_email_confirmation_sent=새로운 이메일 주소 인증이 '%s'로 발송되었습니다. %d시간 안에 확인 절차를 완료하셔야 합니다.
+add_email_success=새로운 이메일 주소를 성공적으로 추가하였습니다.
+
+manage_ssh_keys=SSH 키 관리
+add_key=키 추가
+ssh_desc=다음은 이 계정과 연결된 SSH키 목록입니다. 이 키들은 누구든지 당신의 모든 저장소에 접근할 수 있게 해줍니다. 매우 중요한 것이므로 직접 등록한 것인지 확인하십시오.
+ssh_helper=방법을 모르나요?SSH key에 대한 Github의 가이드를 참조하거나 SSH를 사용하면서 생길 수 있는 문제를 해결하세요
+add_new_key=SSH 키 추가
+ssh_key_been_used=공개키 내용이 사용 되었습니다.
+ssh_key_name_used=같은 이름의 공개키가 이미 존재합니다.
+key_name=키 이름
+key_content=컨텐츠
+add_key_success=새로운 SSH 키 '%s'가 성공적으로 추가 되었습니다!
+delete_key=삭제
+ssh_key_deletion=SSH 키 삭제
+ssh_key_deletion_desc=이 SSH키를 삭제하면 관계된 계정의 모든 접근권한이 삭제됩니다. 계속 하시겠습니까?
+ssh_key_deletion_success=SSH key가 삭제되었습니다.
+add_on=추가 :
+last_used=마지막 사용 :
+no_activity=최근 활동 없음
+key_state_desc=이 키는 최근 1주일 동안 사용된 적이 있습니다.
+token_state_desc=이 토큰은 최근 1주일 동안 사용된 적이 있습니다.
+
+two_factor=2단계 인증
+two_factor_status=상태:
+two_factor_on=켜기
+two_factor_off=끄기
+two_factor_enable=활성화
+two_factor_disable=비활성화
+two_factor_view_recovery_codes=복구 코드를 안전한 장소에 저장해 두십시오. 인증 애플리케이션에 접근할 수 없을때 사용할 수 있습니다.
+two_factor_http=HTTP/HTTPS 작업에 더이상 평문 사용자명과 비밀번호를 사용할 수 없습니다. 개인 액세스 토큰을 생성후 사용해 주세요. 예. %[3]s.
+two_factor_enable_title=2단계 인증 활성화
+two_factor_scan_qr=인증 애플리케이션으로 이 이미지를 스캔하세요:
+two_factor_or_enter_secret=또는 이 비밀키를 입력하세요:
+two_factor_then_enter_passcode=그리고 코드를 입력하세요:
+two_factor_verify=확인
+two_factor_invalid_passcode=입력한 코드가 올바르지 않습니다. 다시 시도해 주세요!
+two_factor_reused_passcode=입력하신 비밀번호가 이미 사용되였습니.다른 비밀번호를 사용해보십시오!.
+two_factor_enable_error=2단계 인증 활성화 실패: %v
+two_factor_enable_success=2단계 인증이 성공적으로 활성화되었습니다!
+two_factor_recovery_codes_title=2단계 인증 복구 코드
+two_factor_recovery_codes_desc=복구 코드는 당신이 2단계 인증 프로그램에 접근할 수 없을때 사용합니다. 각 코드들은 한 번만 사용될 수 있습니다. 이 코드들은 안전한 장소에 보관하세요.
+two_factor_regenerate_recovery_codes=복구 코드 재생성
+two_factor_regenerate_recovery_codes_error=복구 코드 재생성 실패: %v
+two_factor_regenerate_recovery_codes_success=성공적으로 새로운 복구 코드가 생성되었습니다!
+two_factor_disable_title=2단계 인증 비활성화
+two_factor_disable_desc=2단계 인증을 끄면 보안 수준이 낮아집니다. 계속하시겠습니까?
+two_factor_disable_success=2단계 인증이 성공적으로 비활성화되었습니다!
+
+manage_access_token=개인 액세스 토큰 관리
+generate_new_token=새 토큰을 생성
+tokens_desc=Gogs Api에 액세스 하는 데 사용할 수 있는 토큰입니다.
+access_token_tips=개인 액세스 토큰은 사용자 이름 또는 비밀번호로 사용할 수 있습니다. Git 애플리케이션에서는 'x-access-token'을 사용자 이름으로 사용하고, 개인 액세스 토큰을 비밀번호로 사용하는 것이 권장됩니다.
+
+new_token_desc=각 토큰은 당신의 모든 권한을 행사할 수 있습니다.
+token_name=토큰 이름
+generate_token=토큰 생성
+generate_token_succees=액세스 토큰이 생성되었습니다. 이번에만 확인할 수 있으니 잘 보관하세요.
+delete_token=삭제
+access_token_deletion=개인 액세스 토큰 삭제
+access_token_deletion_desc=이 토큰을 사용하는 애플리케이션의 접근권한 또한 삭제됩니다. 계속 하시겠습니까?
+delete_token_success=액세스 토큰이 삭제되었습니다. 애플리케이션의 업데이트도 잊지 마세요.
+token_name_exists=같은 이름의 토큰이 이미 존재합니다.
+
+orgs.none=당신은 어떤 조직의 구성원도 아닙니다.
+orgs.leave_title=조직 떠나기
+orgs.leave_desc=조직을 떠난 후에는 모든 리포지토리와 팀에 액세스 할 수 없게 됩니다. 계속 하시겠습니까?
+
+repos.leave=나가기
+repos.leave_title=저장소 나가기
+repos.leave_desc=이 페지를 떠나면 저장소에 액세스할수 없게 됩니다. 계속하시겠습니까?
+repos.leave_success=당신은 저장소 '%s' 에서 성공적으로 탈퇴하였습니다.!
+
+delete_account=계정 삭제
+delete_prompt=당신의 계정을 삭제합니다. 완료된 후에는 취소할 수 없습니다.
+confirm_delete_account=삭제 승인
+delete_account_title=계정 삭제
+delete_account_desc=이 계정은 영구적으로 삭제 될 것입니다. 계속 하시겠습니까?
+
+[repo]
+owner=소유자
+repo_name=저장소 이름
+repo_name_helper=좋은 저장소 이름은 짧고 기억하기 좋은 유니크한 키워드로 이루어 집니다.
+visibility=가시성
+unlisted=비공개
+visiblity_helper=이 저장소는 비공개 저장소입니다
+unlisted_helper=이 저장소는 비공개 저장소입니다.
+visiblity_helper_forced=사이트 관리자가 모든 저장소를 비공개로 변경하였습니다.
+visiblity_fork_helper=(이 값의 변경은 모든 포크에 영향을 줍니다)
+clone_helper=클론하는데에 도움이 필요하면 Help에 방문하세요.
+fork_repo=저장소 포크
+fork_from=원본 프로젝트 :
+fork_visiblity_helper=포크한 저장소의 공개 설정을 변경할 수 없습니다.
+repo_desc=설명
+repo_lang=언어
+repo_gitignore_helper=.gitignore 서식을 선택합니다
+license=라이센스
+license_helper=라이센스 파일 선택
+readme=Readme
+readme_helper=Readme 템플릿 선택
+auto_init=선택한 파일과 템플릿으로 이 저장소를 초기화 합니다.
+create_repo=저장소 만들기
+default_branch=기본 브랜치
+mirror_prune=정리
+mirror_prune_desc=원격에 존재하지 않는 모든 원격 추적 참조들을 제거
+mirror_interval=미러링 주기 (시간)
+mirror_address=미러 대상 주소
+mirror_address_desc=주소에 필요한 자격 증명을 포함하십시오.
+mirror_last_synced=마지막으로 동기화됨
+watchers=주시하고 있는 사람들
+stargazers=별을 준 사람들
+forks=포크
+repo_description_helper=저장소 설명.최대 512길이의 문자열이 가능합니다.
+repo_description_length=가능한 문자열입니다.
+
+form.reach_limit_of_creation=소유자가 저장소 만들기 최대 제한에 (%d개) 도달했습니다.
+form.name_not_allowed=저장소명 또는 패턴 %q 은(는) 허용되지 않습니다.
+
+need_auth=인증 필요
+migrate_type=마이그레이션 유형
+migrate_type_helper=이 저장소는 미러가 됩니다.
+migrate_repo=저장소 마이그레이션
+migrate.clone_address=클론 주소
+migrate.clone_address_desc=HTTP/HTTPS/GIT URL일 수 있습니다.
+migrate.clone_address_desc_import_local=로컬 서버 경로를 기준으로 저장소를 마이그레이션 할 수도 있습니다.
+migrate.permission_denied=로컬 저장소는 가져오기를 할 수 없습니다.
+migrate.invalid_local_path=잘못된 로컬 경로입니다. 존재하지 않는 경로거나 폴더가 아닙니다.
+migrate.clone_address_resolved_to_blocked_local_address=복제 주소는 암묵적으로 차단된 로컬 네트워크 주소로 확인되었습니다.
+migrate.failed=마이그레이션 실패: %v
+
+mirror_from=의 미러
+forked_from=원본 프로젝트 :
+copy_link=복사
+copy_link_success=복사됨!
+copy_link_error=⌘-C 나 Ctrl-C를 눌러 복사
+copied=복사 완료
+unwatch=Unwatch
+watch=Watch
+unstar=Unstar
+star=Star
+fork=포크
+
+no_desc=설명 없음
+quick_guide=퀵 가이드
+clone_this_repo=이 저장소 복제
+create_new_repo_command=커맨드 라인에서 새 저장소 만들기
+push_exist_repo=커맨드 라인에서 기존 저장소 푸시하기
+bare_message=이 저장소에는 아직 내용이 없습니다.
+
+files=파일
+branch=브렌치
+tree=트리
+filter_branch_and_tag=브랜치나 태그로 필터
+branches=브랜치
+tags=태그
+issues=이슈
+pulls=풀 리퀘스트
+labels=레이블
+milestones=마일스톤
+commits=커밋
+git_branches=브랜치
+releases=릴리즈
+file_raw=Raw
+file_history=히스토리
+file_view_raw=원본 보기
+file_permalink=고유링크
+file_too_large=이 파일은 표시하기엔 너무 큽니다.
+video_not_supported_in_browser=이 브라우저는 HTML5 비디오 태그를 지원하지 않습니다.
+
+branches.overview=개요
+branches.active_branches=활성 브랜치
+branches.stale_branches=오래된 브랜치
+branches.all=모든 브랜치
+branches.updated_by=%[2]s이 %[1]s를 업데이트
+branches.change_default_branch=기본 브랜치 변경
+branches.default_deletion_not_allowed=Cannot delete the default branch.
+branches.protected_deletion_not_allowed=Cannot delete a protected branch.
+
+editor.new_file=파일 생성
+editor.upload_file=파일 업로드
+editor.edit_file=파일 수정
+editor.preview_changes=변경내용 미리보기
+editor.cannot_edit_non_text_files=텍스트가 아닌 파일을 편집할 수 없습니다.
+editor.edit_this_file=해당 파일 편집
+editor.must_be_on_a_branch=파일 변경을 제안하려면 해당하는 브랜치에 있어야 합니다.
+editor.fork_before_edit=파일을 편집 하기 전에 이 저장소를 포크 해야 합니다.
+editor.delete_this_file=이 파일을 삭제
+editor.must_have_write_access=이 파일에 변경 사항을 제안하기 위해서는 쓰기 권한이 있어야 합니다.
+editor.file_delete_success='%s' 파일이 성공적으로 삭제 되었습니다!
+editor.name_your_file=파일 명...
+editor.filename_help=디렉토리를 추가하려면, 디렉토리명을 입력하고 /를 누르십시오. 디렉토리를 제거하려면 필드의 시작 부분으로 이동하여 백 스페이스 키를 누릅니다.
+editor.or=혹은
+editor.cancel_lower=취소
+editor.commit_changes=변경 내용을 커밋
+editor.add_tmpl='%s/' 추가
+editor.add=추가 '%s'
+editor.update=업데이트 '%s'
+editor.delete=삭제 '%s'
+editor.commit_message_desc=선택적 확장 설명을 추가
+editor.commit_directly_to_this_branch=%s 브랜치에서 직접 커밋해주세요.
+editor.create_new_branch=이 커밋에 대한 새로운 브랜치를 만들고 끌어오기 요청을 시작합니다.
+editor.new_branch_name_desc=새로운 브랜치 명
+editor.cancel=취소
+editor.filename_cannot_be_empty=파일명이 빈칸입니다.
+editor.branch_already_exists=이 저장소에 브랜치 '%s'가 이미 존재합니다.
+editor.directory_is_a_file=항목 '%s'의 상위 경로는 이 저장소의 디렉토리가 아닌 파일입니다.
+editor.file_is_a_symlink=파일 '%s'는 웹 에디터에서 수정할 수 없는 심볼릭 링크입니다.
+editor.filename_is_a_directory=파일명 '%s'는 이 저장소에 이미 존재하는 디렉토리명입니다.
+editor.file_editing_no_longer_exists=편집중인 파일 '%s'는 저장소에 더 이상 존재하지 않습니다.
+editor.file_changed_while_editing=편집을 시작한 이후 파일 내용이 변경되었습니다. 변경된 내용을 보려면 여기를 누르십시오. 변경 사항을 덮어 쓰려면 다시 커밋을 누르십시오.
+editor.file_already_exists=이 저장소에 이름이 '%s'인 파일이 이미 존재합니다.
+editor.no_changes_to_show=표시할 변경사항이 없습니다.
+editor.fail_to_update_file=파일 '%s'를 변경/추가 하는데 실패하였습니다. 에러: %v
+editor.fail_to_delete_file=파일 '%s'를 삭제하는데 실패하였습니다. 오유: %v
+editor.add_subdir=하위 디렉토리 추가...
+editor.unable_to_upload_files=파일 '%s'를 업로드하는데 실패하였습니다. 에러: %v
+editor.upload_files_to_dir=파일 업로드 '%s'
+
+commits.commit_history=커밋 기록
+commits.commits=커밋
+commits.search=커밋 검색
+commits.find=찾기
+commits.author=작성자
+commits.message=메시지
+commits.date=날짜
+commits.older=이전
+commits.newer=최신
+
+issues.new=새로운 이슈
+issues.new.labels=레이블
+issues.new.no_label=레이블 없음
+issues.new.clear_labels=레이블 초기화
+issues.new.milestone=마일스톤
+issues.new.no_milestone=마일스톤 없음
+issues.new.clear_milestone=마일스톤 초기화
+issues.new.open_milestone=마일스톤 생성
+issues.new.closed_milestone=마일스톤 닫기
+issues.new.assignee=담당자
+issues.new.clear_assignee=담당자 초기화
+issues.new.no_assignee=담당자 없음
+issues.create=이슈 생성
+issues.new_label=새로운 레이블
+issues.new_label_placeholder=레이블 이름...
+issues.create_label=레이블 만들기
+issues.label_templates.title=사전정의 라벨 로드
+issues.label_templates.info=아직 라벨이 없습니다. 위의 '새 라벨' 버튼을 클릭하여 라벨을 하나 만들거나 사전정의 세트를 사용할 수 있습니다.
+issues.label_templates.helper=라벨 세트 선택
+issues.label_templates.use=라벨 세트 사용
+issues.label_templates.fail_to_load_file=라벨 템플릿 파일 '%s'를 로드하는데 실패하였습니다.: %v
+issues.open_tab=%d 오픈
+issues.close_tab=%d 닫힘
+issues.filter_label=레이블
+issues.filter_label_no_select=선택한 레이블 없음
+issues.filter_milestone=마일스톤
+issues.filter_milestone_no_select=선택한 마일스톤 없음
+issues.filter_assignee=담당자
+issues.filter_assginee_no_select=선택된 담당자 없음
+issues.filter_type=유형
+issues.filter_type.all_issues=모든 이슈
+issues.filter_type.assigned_to_you=나에게 할당됨
+issues.filter_type.created_by_you=내가 생성함
+issues.filter_type.mentioning_you=나를 언급함
+issues.filter_sort=정렬
+issues.filter_sort.latest=최신
+issues.filter_sort.oldest=오래된
+issues.filter_sort.recentupdate=최근 업데이트
+issues.filter_sort.leastupdate=가장 최근에 업데이트
+issues.filter_sort.mostcomment=가장 많은 코멘트
+issues.filter_sort.leastcomment=가장 적은 코멘트
+issues.opened_by= %[3]s가 %[1]s을 오픈
+issues.opened_by_fake=%[2]s이 %[1]s를 오픈
+issues.previous=이전
+issues.next=다음
+issues.open_title=오픈
+issues.closed_title=닫힘
+issues.num_comments=%d개의 코멘트
+issues.commented_at=`코멘트됨, %s`
+issues.delete_comment_confirm=이 댓글을 정말 삭제하시겠습니까?
+issues.no_content=아직 콘텐츠가 없습니다.
+issues.close_issue=닫기
+issues.close_comment_issue=클로즈 및 코멘트
+issues.reopen_issue=Reopen
+issues.reopen_comment_issue=Reopen 및 코멘트
+issues.create_comment=코멘트
+issues.closed_at=`%[2]s가 Close`
+issues.reopened_at=`%[2]s를 다시 열음`
+issues.commit_ref_at=` 커밋 %[2]s에서 이 이슈 언급`
+issues.poster=포스터
+issues.collaborator=협업자
+issues.owner=소유자
+issues.sign_in_require_desc=로그인하여 이 대화에 참여
+issues.edit=수정
+issues.cancel=취소
+issues.save=저장
+issues.label_title=레이블 이름
+issues.label_color=레이블 색상
+issues.label_count=레이블 %d개
+issues.label_open_issues=열린 이슈 %d개
+issues.label_edit=수정
+issues.label_delete=삭제
+issues.label_modify=레이블 수정
+issues.label_deletion=레이블 삭제
+issues.label_deletion_desc=이 라벨 삭제시 관련된 모든 이슈도 제거 됩니다. 계속 하시겠습니까?
+issues.label_deletion_success=라벨이 성공적으로 삭제 되었습니다!
+issues.num_participants=참여자 %d명
+issues.attachment.open_tab=`클릭하여 "%s" 새탭으로 보기`
+issues.attachment.download=' "%s"를 다운로드 하려면 클릭 하십시오 '
+
+pulls.new=새 풀 리퀘스트
+pulls.compare_changes=변경 사항 비교
+pulls.compare_changes_desc=두개의 브랜치의 변경 사항을 비교하고 풀 리퀘스트를 만듭니다.
+pulls.compare_base=베이스
+pulls.compare_compare=비교
+pulls.filter_branch=Filter Branch
+pulls.no_results=결과 없음
+pulls.nothing_to_compare=Base 와 head 브랜치가 동일해서 비교할 게 없습니다.
+pulls.nothing_merge_base=두 브런치의 리력이 완전히 다르므로 비교할수 없습니다.
+pulls.has_pull_request=`이 두 타겟 사이엔 이미 풀 리퀘스트가 있습니다:%[2]s#%[3]d`
+pulls.create=풀 리퀘스트 생성
+pulls.title_desc=%[2]s 에서 %[3]s 로 %[1]d commits 를 머지하려 합니다
+
+pulls.merged_title_desc=%[2]s 에서 %[3]s 로 %[1]d commits 를 머지했습니다 %[4]s
+pulls.tab_conversation=대화
+pulls.tab_commits=커밋
+pulls.tab_files=파일 변경됨
+pulls.reopen_to_merge=머지 작업을 수행하려면 이 풀리퀘스트를 다시 열어주세요.
+pulls.merged=병합
+pulls.has_merged=이 풀리퀘스트가 성공적으로 머지되었습니다!
+pulls.data_broken=fork 정보의 삭제로 인해 이 풀리퀘스트의 데이터는 손상되었습니다.
+pulls.is_checking=아직 컨플릭트 여부 체크 중입니다, 잠시 후 이 페이지를 리프레시 해주세요.
+pulls.can_auto_merge_desc=이 풀리퀘스트는 자동적으로 머지될 수 있습니다.
+pulls.cannot_auto_merge_desc=컨플릭이 존재해서 이 풀리퀘스트는 자동을 머지될 수 없습니다.
+pulls.cannot_auto_merge_helper=컨플릭을 해결하려면 수동으로 머지해 주십시오.
+pulls.create_merge_commit=합치기커밋 생성
+pulls.rebase_before_merging=병합 하기 전에 리베이스
+pulls.commit_description=커밋설명
+pulls.merge_pull_request=풀리퀘스트 머지
+pulls.open_unmerged_pull_exists=`같은 리파지토리에서 같은 머지 정보로 만들어진 풀리퀘스트 (#%d) 가 이미 오픈 상태이고 머지를 기다리고 있기 때문에 다시 열기 작업을 할 수 없습니다.`
+pulls.delete_branch=브랜치 삭제
+pulls.delete_branch_has_new_commits=이 브랜치는 병합된 이후에 새로운 커밋들을 가지고 있으므로 삭제할 수 없습니다.
+
+milestones.new=새로운 마일스톤
+milestones.open_tab=%d개 열림
+milestones.close_tab=%d개 닫힘
+milestones.closed=닫힘 %s
+milestones.no_due_date=기한 없음
+milestones.open=열기
+milestones.close=닫기
+milestones.new_subheader=마일스톤을 만들어 이슈를 관리하기
+milestones.create=마일스톤 생성
+milestones.title=타이틀
+milestones.desc=설명
+milestones.due_date=기한 (선택 사항)
+milestones.clear=지우기
+milestones.invalid_due_date_format=기한일 형식이 잘못되었습니다 'yyyy-mm-dd'.
+milestones.create_success=마일스톤 '%s'가 생성되었습니다!
+milestones.edit=마일스톤 편집
+milestones.edit_subheader=마일스톤에 대한 자세한 설명을 기술하여 사용자들의 이해를 도우세요.
+milestones.cancel=취소
+milestones.modify=마일스톤 수정
+milestones.edit_success=마일스톤 '%s'의 변경사항이 성공적으로 저장되었습니다.
+milestones.deletion=마일스톤 삭제
+milestones.deletion_desc=이 마일스톤 삭제시 관련된 모든 이슈도 제거 됩니다. 계속 하시겠습니까?
+milestones.deletion_success=마일스톤이 성공적으로 삭제 되었습니다!
+
+wiki=위키
+wiki.welcome=위키에 오신것을 환영합니다!
+wiki.welcome_desc=위키는 프로젝트를 문서화 하고 더 좋게 만들어 나가는 곳입니다.
+wiki.create_first_page=첫 번째 페이지 만들기
+wiki.page=페이지
+wiki.filter_page=Filter page
+wiki.new_page=새 페이지 만들기
+wiki.default_commit_message=이 업데이트에 대한 메모를 작성하세요.(선택사항)
+wiki.save_page=페이지 저장하기
+wiki.last_commit_info=%s이(가) %s에 이 페이지를 수정함
+wiki.edit_page_button=수정하기
+wiki.new_page_button=새로운 페이지
+wiki.delete_page_button=페이지 삭제
+wiki.delete_page_notice_1=이것은 페이지 %s 를 삭제할 것입니다. 다시 한번 확인하세요.
+wiki.page_already_exists=같은 이름의 위키 페이지가 이미 존재 합니다.
+wiki.pages=페이지
+wiki.last_updated=마지막 업데이트: %s
+
+settings=설정
+settings.options=옵션
+settings.collaboration=공동 작업
+settings.collaboration.admin=관리자
+settings.collaboration.write=쓰기
+settings.collaboration.read=읽기
+settings.collaboration.undefined=미정의
+settings.branches=브랜치
+settings.branches_bare=당신은 빈 저장소에 대한 브런치를 관리할수 없습니다. 먼저 저장소에 내용을 푸쉬하십시오.
+settings.default_branch=기본 브랜치
+settings.default_branch_desc=기본 브랜치는 코드 커밋, 풀 리퀘스트 및 온라인 편집을 위한 "기본" 브랜치로 간주됩니다.
+settings.update=업데이트
+settings.update_default_branch_unsupported=서버의 Git 버전에서는 기본 브랜치 변경이 지원되지 않습니다.
+settings.update_default_branch_success=이 레포지토리의 기본 브랜치가 성공적으로 설정되었습니다!
+settings.protected_branches=보호된 브랜치
+settings.protected_branches_desc=보호된 브랜치는 force 푸시, 실수로 인한 코드 삭제를 방지하며 코드 커미터를 화이트리스트 합니다.
+settings.choose_a_branch=브랜치를 선택하세요...
+settings.branch_protection=브랜치 보호
+settings.branch_protection_desc=브랜치 %s 의 보호 설정을 선택하세요.
+settings.protect_this_branch=이 브랜치를 보호하기
+settings.protect_this_branch_desc=Force 푸시와 삭제를 비활성화합니다.
+settings.protect_require_pull_request=직접 push 를 하지 않고 Pull Request 를 필요로 하도록 합니다.
+settings.protect_require_pull_request_desc=이 브랜치에 직접 푸시를 하는 것을 막고 싶다면 이 옵션을 활성화하세요. 커밋은 다른 비보호 브랜치에 푸시되어야 하며 이 브랜치에는 Pull Request 를 통해 병합될 것입니다.
+settings.protect_whitelist_committers=이 브랜치에 푸시할 수 있는 유저
+settings.protect_whitelist_committers_desc=이 브랜치에 직접 푸시할 수 있는 허용 목록에 사람 또는 팀을 추가합니다. 허용 목록에 있는 사용자는 풀 리퀘스트 확인을 거치지 않습니다.
+settings.protect_whitelist_users=이 브랜치에 푸시를 할 수 있는 유저
+settings.protect_whitelist_search_users=유저 검색
+settings.protect_whitelist_teams=이 브랜치에 푸시할 수 있는 팀의 멤버들
+settings.protect_whitelist_search_teams=팀 검색
+settings.update_protect_branch_success=브랜치의 보호 옵션이 성공적으로 업데이트되었습니다!
+settings.hooks=Webhooks
+settings.githooks=Git Hooks
+settings.basic_settings=기본 설정
+settings.mirror_settings=미러 설정
+settings.sync_mirror=지금 동기화
+settings.mirror_sync_in_progress=미러 동기화 진행 중입니다. 약 1분 뒤에 페이지를 새로 고침 하세요.
+settings.site=공식 사이트
+settings.update_settings=설정 저장
+settings.change_reponame_prompt=이 변경은 이 저장소와 연관된 링크들에 영향을 줄 것입니다.
+settings.advanced_settings=고급 설정
+settings.wiki_desc=위키 시스템 활성화
+settings.use_internal_wiki=내장 위키 사용
+settings.allow_public_wiki_desc=저장소가 비공개되어 있으면 위키에 공개적으로 접속할 수 있도록 허용하기
+settings.use_external_wiki=외부 위키 사용하기
+settings.external_wiki_url=외부 위키 URL
+settings.external_wiki_url_desc=탭을 클릭하면 URL로 리다이렉트됩니다.
+settings.issues_desc=이슈 추적기를 사용하도록 설정
+settings.use_internal_issue_tracker=내장된 경량 이슈 트레커를 사용
+settings.allow_public_issues_desc=저장소가 비공개인 경우 이슈에 공개적으로 접속할 수 있도록 허용하기
+settings.use_external_issue_tracker=외부 이슈 트래커 사용하기
+settings.external_tracker_url=외부 이슈 트래커 URL
+settings.external_tracker_url_desc=방문자는 탭을 클릭하면 URL로 리다이렉트 됩니다.
+settings.tracker_url_format=외부 이슈 트래커 URL 형식
+settings.tracker_issue_style=외부 이슈 트래커 명명 스타일:
+settings.tracker_issue_style.numeric=숫자
+settings.tracker_issue_style.alphanumeric=문자 숫자
+settings.tracker_url_format_desc={user} {repo} {index} 사용자 명, 저장소 명, 이슈 인덱스를 사용하여 표시자를 사용할 수 있습니다.
+settings.pulls_desc=다른 저장소와 브랜치 간의 기여를 수용할 수 있도록 풀 리퀘스트 활성화
+settings.pulls.ignore_whitespace=공백 변경 무시
+settings.pulls.allow_rebase_merge=커밋을 머지하기 위해 리베이스 사용 허용
+settings.danger_zone=위험 설정
+settings.cannot_fork_to_same_owner=본인 소유의 저장소를 본인 명의로 포크할 수 없습니다.
+settings.new_owner_has_same_repo=새로운 소유자가 같은 이름의 저장소를 이미 가지고 있습니다. 다른 이름을 선택해주세요.
+settings.convert=일반 리파지토리로 변환
+settings.convert_desc=이 미러를 일반 리파지토리로 변환할 수 없습니다. 반대로는 할 수 없습니다.
+settings.convert_notices_1=- 이 작업은 저장소 미러를 일반 저장소로 변환하며 취소할 수 없습니다.
+settings.convert_confirm=변환 확인
+settings.convert_succeed=저장소를 일반 형식으로 변환하는데 성공하였습니다.
+settings.transfer=소유권 이전
+settings.transfer_desc=이 저장소를 다른 사용자 또는 관리자 권한이 있는 조직으로 이전하십시오.
+settings.transfer_notices_1=- 새 소유자가 개인 사용자인 경우 접근 권한을 잃게됩니다.
+settings.transfer_notices_2=- 새 소유자가 조직이고 소유자인 경우 접근 권한이 유지됩니다.
+settings.transfer_form_title=작업을 확인하려면 다음 정보를 입력하십시오.
+settings.wiki_delete=위키 데이터 지우기
+settings.wiki_delete_desc=위키 데이터를 지우고 나면 되돌릴 수 없습니다. 다시 한번 확인하세요.
+settings.wiki_delete_notices_1=- 이것은 %s의 Wiki를 비활성화 시키고 삭제할 것입니다.
+settings.wiki_deletion_success=저장소의 Wiki 데이터가 성공적으로 삭제 되었습니다.
+settings.delete=이 저장소 삭제
+settings.delete_desc=저장소를 지우고 나면 되돌릴 수 없습니다. 다시 한번 확인하세요.
+settings.delete_notices_1=- 이 작업은 취소할 수 없습니다.
+settings.delete_notices_2=- 이 작업을 수행하면 Git 데이터, 이슈, 댓글, 협업자 액세스 등 이 저장소의 모든 내용이 영구적으로 삭제됩니다.
+settings.delete_notices_fork_1=- 모든 포크들은 삭제 후에도 독립적으로 유지됩니다.
+settings.deletion_success=저장소가 성공적으로 삭제 되었습니다!
+settings.update_settings_success=저장소 옵션이 성공적으로 업데이트 되었습니다.
+settings.transfer_owner=새 소유자
+settings.make_transfer=저장소 전송
+settings.transfer_succeed=저장소 소유권을 성공적으로 이전했습니다.
+settings.confirm_delete=삭제 확인
+settings.add_collaborator=새 공동작업자 추가
+settings.add_collaborator_success=새로운 공동작업자가 추가 되었습니다.
+settings.delete_collaborator=제거
+settings.collaborator_deletion=공동작업자 삭제
+settings.collaborator_deletion_desc=이 사용자는 더 이상 이 저장소의 공동 작업을 위한 접근 권한을 가질 수 없게 됩니다. 계속 하시겠습니까?
+settings.remove_collaborator_success=공동작업자가 삭제 되었습니다.
+settings.search_user_placeholder=사용자 검색...
+settings.org_not_allowed_to_be_collaborator=조직을 공동 작업자로 추가할 수 없습니다.
+settings.hooks_desc=웹후크는 기본적인 HTTP POST 이벤트 트리거입니다. Gogs에서 무슨 일이 발생할 때마다, 지정한 대상 호스트에 알림을 보냅니다. 웹후크 안내서에서 자세히 알아보십시오.
+settings.webhooks.add_new=새 웹훅 추가
+settings.webhooks.choose_a_type=유형 선택...
+settings.add_webhook=Webhook 추가
+settings.webhook_deletion=Webhook 삭제
+settings.webhook_deletion_desc=이 웹훅을 삭제하면 정보와 모든 전송기록이 제거됩니다. 계속 하시겠습니까?
+settings.webhook_deletion_success=Webhook을 성공적으로 삭제했습니다!
+settings.webhook.test_delivery=전달 시험
+settings.webhook.test_delivery_desc=가짜 푸시 이벤트 전달하여 웹훅 설정을 테스트합니다.
+settings.webhook.test_delivery_success=Webhook 테스트가 delivery 큐에 추가되었습니다. delivery 기록에서 나오기까지 몇 초의 시간이 걸릴 것입니다.
+settings.webhook.redelivery=재전송
+settings.webhook.redelivery_success=웹훅 작업 '%s'이(가) 다시 전달 큐에 추가되었습니다. 전달 상태는 이력에서 잠시 후 반영됩니다.
+settings.webhook.request=요청
+settings.webhook.response=응답
+settings.webhook.headers=제목
+settings.webhook.payload=페이로드
+settings.webhook.body=본문
+settings.webhook.err_cannot_parse_payload_url=페이로드 URL을 구문 분석할 수 없습니다: %v
+settings.webhook.url_resolved_to_blocked_local_address=로컬 네트워크 주소로 확인된 페이로드 URL이 암묵적으로 차단되었습니다.
+settings.githooks_desc=Git Hooks는 Git 자체에서 제공되며, 아래 목록에서 지원되는 후크 파일을 편집하여 사용자 정의 작업을 수행 할 수 있습니다.
+settings.githook_edit_desc=후크가 비활성인 경우 샘플 콘텐츠가 표시됩니다. 내용을 빈 값으로 두면 이 훅은 비활성화됩니다.
+settings.githook_name=Hook 이름
+settings.githook_content=Hook 내용
+settings.update_githook=Hook 갱신
+settings.add_webhook_desc=Gogs는 발생한 이벤트와 관련하여 지정한 URL로 POST 요청을 보냅니다. 또한 후크를 트리거 할 때 어떤 데이터 형식을 사용할지 지정할 수 있습니다.(JSON, x-www-form-urlencoded, XML 등) 자세한 내용은 웹훅 안내서를 참조하십시오.
+settings.payload_url=페이로드 URL
+settings.content_type=컨텐츠 타입
+settings.secret=비밀
+settings.secret_desc=시크릿은 X-Gogs-Signature 헤더를 통해 페이로드의 SHA256 HMAC 16진수 다이제스트로 전송됩니다.
+settings.slack_username=사용자 이름
+settings.slack_icon_url=아이콘 URL
+settings.slack_color=색
+settings.event_desc=이 웹훅을 언제 실행하시겠습니까?
+settings.event_push_only=단순한 푸시 이벤트입니다.
+settings.event_send_everything=모든 것이 필요합니다.
+settings.event_choose=필요한 것을 선택해주세요.
+settings.event_create=생성
+settings.event_create_desc=브랜치 또는 태그를 생성합니다.
+settings.event_delete=삭제
+settings.event_delete_desc=브랜치나 태그 삭제됨
+settings.event_fork=포크
+settings.event_fork_desc=저장소 포크됨
+settings.event_push=푸시
+settings.event_push_desc=깃 저장소로 푸시
+settings.event_issues=이슈
+settings.event_issues_desc=이슈가 생성됨, 닫힘, 다시 열림, 편집됨, 담당자 지정 또는 해제, 라벨 업데이트 또는 제거, 마일스톤 지정 또는 해제됨.
+settings.event_pull_request=끌어오기 요청
+settings.event_pull_request_desc=Pull request opened, closed, reopened, edited, assigned, unassigned, label updated, label cleared, milestoned, demilestoned, or synchronized.
+settings.event_issue_comment=이슈 댓글
+settings.event_issue_comment_desc=이슈 댓글이 작성, 편집 또는 삭제되었습니다.
+settings.event_release=릴리즈
+settings.event_release_desc=저장소에 릴리즈가 출시되었습니다.
+settings.active=활성
+settings.active_helper=후크를 트리거하면 이벤트에 대한 세부 정보도 전달됩니다.
+settings.add_hook_success=새로운 웹훅이 생성되었습니다.
+settings.update_webhook=Webhook 갱신
+settings.update_hook_success=웹훅이 업데이트 되었습니다.
+settings.delete_webhook=Webhook 삭제
+settings.recent_deliveries=최근의 Deliveries
+settings.hook_type=훅 타입
+settings.add_slack_hook_desc=저장소에 슬랙연동을 추가
+settings.add_discord_hook_desc=Add Discord integration to your repository.
+settings.add_dingtalk_hook_desc=Add Dingtalk integration to your repository.
+settings.slack_token=토큰
+settings.slack_domain=도메인
+settings.slack_channel=채널
+settings.deploy_keys=배포 키
+settings.deploy_keys_helper=Common Gotcha! If you're looking for adding personal public keys, please add them in your account settings.
+settings.add_deploy_key=배포 키 추가
+settings.deploy_key_desc=배포 키는 읽기 전용 입니다. 개인 계정 SSH 키와 동일하지 않습니다.
+settings.no_deploy_keys=배포 키를 추가하지 않았습니다.
+settings.title=제목
+settings.deploy_key_content=내용
+settings.key_been_used=배포 키 컨텐츠가 사용되었습니다.
+settings.key_name_used=동일한 이름 가진 배포 키가 이미 존재합니다.
+settings.add_key_success=새로운 배포 키 '%s'가 성공적으로 추가 되었습니다!
+settings.deploy_key_deletion=배포 키 삭제
+settings.deploy_key_deletion_desc=이 배포키를 삭제하면 이 저장소와 관련된 모든 접근 권한이 삭제됩니다. 계속 하시겠습니까?
+settings.deploy_key_deletion_success=배포 키가 성공적으로 삭제되었습니다!
+settings.description_desc=저장소 설명입니다. 최대 512길이의 문자열이 가능합니다.
+settings.description_length=사용 가능한 문자열
+
+diff.browse_source=소스 검색
+diff.parent=부모
+diff.commit=커밋
+diff.data_not_available=아직 변경 데이터를 사용할 수 없습니다.
+diff.show_diff_stats=변경상태 보기
+diff.show_split_view=분할 보기
+diff.show_unified_view=통합 보기
+diff.stats_desc=%d개의 변경된 파일과 %d개의 추가작업 그리고 %d개의 파일을 삭제
+diff.bin=BIN
+diff.view_file=파일 보기
+diff.file_suppressed=파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+diff.too_many_files=이 변경점에서 너무 많은 파일들이 변경되어 몇몇 파일들은 표시되지 않았습니다.
+
+release.releases=릴리즈
+release.new_release=새로운 릴리즈
+release.draft=초안
+release.prerelease=사전 릴리즈
+release.edit=편집
+release.ahead=이 릴리스 이후로 %d %s에 커밋합니다.
+release.source_code=소스 코드
+release.new_subheader=릴리스를 게시하여 제품 반복하기.
+release.edit_subheader=상세한 변경 로그는 개선된 내용을 사용자가 이해할 수 있도록 도와줍니다.
+release.tag_name=태그 이름
+release.target=대상
+release.tag_helper=태그를 선택하거나 새로운 태그를 만들어 게시
+release.title=제목
+release.content=컨텐츠
+release.write=쓰기
+release.preview=미리보기
+release.loading=로딩중...
+release.prerelease_desc=이것은 사전 릴리즈
+release.prerelease_helper=이 릴리즈는 제품-준비가 되어있지 않았음을 알려드립니다.
+release.cancel=취소
+release.publish=릴리즈 게시
+release.save_draft=초안 저장
+release.edit_release=릴리즈 편집
+release.delete_release=이 릴리즈를 삭제
+release.deletion=릴리즈 삭제
+release.deletion_desc=이 릴리즈를 삭제하면 깃 태그도 삭제됩니다. 정말로 진행하시겠습니까?
+release.deletion_success=릴리즈가 성공적으로 삭제되었습니다!
+release.tag_name_already_exist=이 태그 이름을 가진 릴리즈가 이미 존재합니다.
+release.tag_name_invalid=태그 명이 올바르지 않습니다.
+release.downloads=다운로드
+
+[org]
+org_name_holder=조직 이름
+org_full_name_holder=조직 전체 이름
+org_name_helper=멋진 조직 이름은 짧고 기억하기 쉽습니다.
+create_org=새로운 조직
+repo_updated=업데이트됨
+people=구성원
+invite_someone=다른 사람 초대
+teams=팀
+lower_members=회원
+lower_repositories=저장소
+create_new_team=새로운 팀 생성
+org_desc=설명
+team_name=팀 이름
+team_desc=설명
+team_name_helper=대화에서 이 팀을 언급할 때 이 이름을 사용합니다.
+team_desc_helper=이 팀은 무엇입니까?
+team_permission_desc=이 팀이 가진 권한이 무엇입니까?
+
+form.name_not_allowed=Organization name or pattern %q is not allowed.
+form.team_name_not_allowed=Team name or pattern %q is not allowed.
+
+settings=설정
+settings.options=옵션
+settings.full_name=성명
+settings.website=웹 사이트
+settings.location=위치
+settings.update_settings=설정 업데이트
+settings.update_setting_success=조직 설정이 성공적으로 변경되었습니다.
+settings.change_orgname_prompt=이 변경은 이 저장소와 연관된 조직들에 영향을 줄 것입니다.
+settings.update_avatar_success=조직 아바타 설정을 성공적으로 변경하였습니다.
+settings.delete=조직 삭제
+settings.delete_account=이 조직을 삭제합니다.
+settings.delete_prompt=조직이 영구적으로 삭제됩니다. 그리고 취소할 수 없습니다.
+settings.confirm_delete_account=삭제 승인
+settings.delete_org_title=조직 삭제
+settings.delete_org_desc=이 조직이 영구적으로 삭제됩니다. 정말로 진행하시겠습니까?
+settings.hooks_desc=이 조직의 모든 저장소에서 실행되는 웹훅을 추가합니다.
+
+members.membership_visibility=회원 표시:
+members.public=공개
+members.public_helper=비공개로 전환
+members.private=비공개
+members.private_helper=공개로 전환
+members.member_role=회원 역할:
+members.owner=소유자
+members.member=멤버
+members.remove=제거
+members.leave=나가기
+members.invite_desc=새로운 맴버를 %s에 추가:
+members.invite_now=지금 초대하기
+
+teams.join=가입
+teams.leave=탈퇴
+teams.read_access=읽기 접근
+teams.read_access_helper=이 팀이 저장소들을 복제하거나 열람할 수 있게됩니다.
+teams.write_access=쓰기 접근
+teams.write_access_helper=이 팀이 저장소들을 읽거나 푸시할 수 있게 됩니다.
+teams.admin_access=관리자 접근
+teams.admin_access_helper=이 팀이 저장소들을 푸시하거나 끌어오고, 새로운 공동 작업자를 추가할 수 있게됩니다.
+teams.no_desc=이 팀은 설명이 없습니다.
+teams.settings=설정
+teams.owners_permission_desc=소유자는 모든 저장소에 대한 모든 권한을 가지며 조직에 관리자 권한을 가지고 있습니다.
+teams.members=팀 구성원
+teams.update_settings=설정 업데이트
+teams.delete_team=이 팀을 삭제하기
+teams.add_team_member=팀 구성원 추가
+teams.delete_team_title=팀 삭제
+teams.delete_team_desc=이 팀을 삭제하면 몇몇 저장소에대해 팀 구성원이 접근 권한을 잃게됩니다. 계속하시겠습니까?
+teams.delete_team_success=팀이 성공적으로 삭제되었습니다.
+teams.read_permission_desc=이 팀의 읽기 권한을 부여: 회원은 이 팀의 저장소를 보거나 복제할 수 있습니다.
+teams.write_permission_desc=이 팀의 쓰기 권한을 부여: 회원은 이 팀의 저장소를 읽거나 푸시할 수 있습니다.
+teams.admin_permission_desc=이 팀의 관리자 권한을 부여: 회원은 이 팀의 저장소를 읽거나 푸시하거나 추가하고 공동 작업자를 추가할 수 있습니다.
+teams.repositories=팀 저장소
+teams.search_repo_placeholder=저장소 검색...
+teams.add_team_repository=팀 저장소 추가
+teams.remove_repo=삭제
+teams.add_nonexistent_repo=추가하려는 저장소를 존재하지 않습니다. 먼저 생성해주세요.
+
+[admin]
+dashboard=대시보드
+users=사용자
+organizations=조직
+repositories=저장소
+authentication=인증
+config=설정
+notices=시스템 공지
+monitor=모니터링
+first_page=처음
+last_page=마지막
+total=총: %d
+
+dashboard.build_info=빌드정보
+dashboard.app_ver=애플리케이션 버전
+dashboard.git_version=Git 버전
+dashboard.go_version=Go 버전
+dashboard.build_time=태그 만들기
+dashboard.build_commit=빌드 커밋
+dashboard.statistic=통계
+dashboard.operations=작업
+dashboard.system_status=시스템 모니터 상태
+dashboard.statistic_info=Gogs 데이터베이스에는 %d명의 사용자, %d 조직, %d 공개 키, %d 저장소, %d 주시, %d 별, %d 활동, %d 접근, %d 이슈, %d 댓글, %d 소셜 계정, %d 팔로우, %d 미러, %d 릴리즈, %d 로그인 소스, %d 웹훅, %d 마일스톤, %d 라벨, %d 훅 태스크, %d 팀, %d 업데이트 태스크, %d 첨부파일이 있습니다.
+dashboard.operation_name=작업 명
+dashboard.operation_switch=스위치
+dashboard.select_operation_to_run=Please select operation to run
+dashboard.operation_run=실행
+dashboard.clean_unbind_oauth=연결되지 않은 OAuth들을 정리
+dashboard.clean_unbind_oauth_success=연결되지 않은 모든 OAuth들이 성공적으로 삭제되었습니다.
+dashboard.delete_inactivate_accounts=활성화되지 않은 모든 계정을 삭제합니다.
+dashboard.delete_inactivate_accounts_success=활성화 되지 않은 모든 계정들이 성공적으로 삭제되었습니다.
+dashboard.delete_repo_archives=모든 저장소와 아카이브를 삭제합니다.
+dashboard.delete_repo_archives_success=모든 저장소와 아카이브가 성공적으로 삭제되었습니다.
+dashboard.delete_missing_repos=깃 파일들을 잃어버린 모든 저장소를 삭제합니다.
+dashboard.delete_missing_repos_success=깃 파일을 잃은 모든 저장소가 성공적으로 삭제되었습니다.
+dashboard.git_gc_repos=저장소들의 가비지 콜렉션을 진행합니다.
+dashboard.git_gc_repos_success=모든 저장소의 가비지 콜렉션이 성공적으로 완료되었습니다.
+dashboard.resync_all_sshkeys='.ssh/authorized_keys' 파일을 다시 작성합니다. (주의: non-Gogs키는 손실됩니다)
+dashboard.resync_all_sshkeys_success=모든 공개키들이 성공적으로 재작성되었습니다.
+dashboard.resync_all_hooks=Resync pre-receive, update and post-receive hooks of all repositories
+dashboard.resync_all_hooks_success=All repositories' pre-receive, update and post-receive hooks have been resynced successfully.
+dashboard.reinit_missing_repos=깃 파일들을 잃어버린 모든 저장소를 다시 초기화합니다.
+dashboard.reinit_missing_repos_success=깃 파일을 잃은 모든 저장소를 다시 초기화 하는데 성공하였습니다.
+
+dashboard.server_uptime=서버를 켠 시간
+dashboard.current_goroutine=현재 Go루틴
+dashboard.current_memory_usage=현재 메모리 사용율
+dashboard.total_memory_allocated=전체 할당 메모리
+dashboard.memory_obtained=메모리 확보
+dashboard.pointer_lookup_times=포인터 조회 시간
+dashboard.memory_allocate_times=메모리 할당 시간
+dashboard.memory_free_times=메모리 가용 시간
+dashboard.current_heap_usage=현재 힙 사용현황
+dashboard.heap_memory_obtained=힙 메모리 확보
+dashboard.heap_memory_idle=힙 메모리 유휴
+dashboard.heap_memory_in_use=힙 메모리 사용중
+dashboard.heap_memory_released=힙 메모리 풀림
+dashboard.heap_objects=힙 객체
+dashboard.bootstrap_stack_usage=부트스트랩 스택 사용현황
+dashboard.stack_memory_obtained=스택 메모리 확보
+dashboard.mspan_structures_usage=MSpan 구조 사용현황
+dashboard.mspan_structures_obtained=MSpan 구조 확보
+dashboard.mcache_structures_usage=MCache 구조 사용현황
+dashboard.mcache_structures_obtained=MCache 구조 확보
+dashboard.profiling_bucket_hash_table_obtained=버켓 해시 테이블 확보 프로파일링
+dashboard.gc_metadata_obtained=가비지 콜렉션 메타 데이터 확보
+dashboard.other_system_allocation_obtained=기타 시스템 할당 확보
+dashboard.next_gc_recycle=다음 가비지 콜렉션 순환
+dashboard.last_gc_time=마지막 가비지 콜렉션 시간
+dashboard.total_gc_time=모든 가비지 콜렉션 중지
+dashboard.total_gc_pause=모든 가비지 콜렉션 중지
+dashboard.last_gc_pause=마지막 가비지 콜렉션 중지
+dashboard.gc_times=가비지 콜렉션 시간
+
+users.user_manage_panel=사용자 관리 패널
+users.new_account=새 계정 생성
+users.name=이름
+users.activated=활성화됨
+users.admin=관리자
+users.repos=저장소
+users.created=작성일
+users.send_register_notify=사용자에게 등록 알림 보내기
+users.new_success=새로운 계정 '%s'가 성공적으로 생성 되었습니다.
+users.edit=수정하기
+users.auth_source=인증 소스
+users.local=로컬
+users.auth_login_name=인증 로그인 이름
+users.password_helper=변경되지 않은 상태로 두려면 비워둡니다.
+users.update_profile_success=프로필이 성공적으로 업데이트 되었습니다.
+users.edit_account=계정 설정
+users.max_repo_creation=최대 저장소 생성 제한
+users.max_repo_creation_desc=(-1로 설정하면 전역 기본 제한을 따릅니다.)
+users.is_activated=계정이 활성화되었습니다.
+users.prohibit_login=이 계정은 로그인할 수 없습니다.
+users.is_admin=이 계정은 관리자 권한이 있습니다.
+users.allow_git_hook=이 계정은 깃훅을 생성할 수 있습니다.
+users.allow_import_local=이 계정은 로컬 저장소 가져오기 권한이 있습니다.
+users.update_profile=프로필 변경
+users.delete_account=계정 삭제
+users.still_own_repo=이 계정은 하나 이상의 저장소를 소유하고 있습니다. 먼저 저장소를 삭제하거나 다른 사람에게 이전해야 합니다.
+users.still_has_org=이 계정은 하나 이상의 조직의 멤버로 소속되어 있습니다. 먼저 탈퇴하거나 조직을 삭제해야 합니다.
+users.deletion_success=계정이 성공적으로 삭제되었습니다.
+
+orgs.org_manage_panel=조직 관리 패널
+orgs.name=이름
+orgs.teams=팀
+orgs.members=멤버
+
+repos.repo_manage_panel=저장소 관리 패널
+repos.owner=소유자
+repos.name=이름
+repos.private=비공개
+repos.watches=지켜보기
+repos.stars=Stars
+repos.issues=이슈
+repos.size=크기
+
+auths.auth_sources=인증 소스
+auths.new=새로운 소스를 추가
+auths.name=이름
+auths.type=유형
+auths.enabled=활성화됨
+auths.default=기본값
+auths.updated=업데이트됨
+auths.auth_type=인증 유형
+auths.auth_name=인증 이름
+auths.security_protocol=보안 프로토콜
+auths.domain=도메인
+auths.host=호스트
+auths.port=포트
+auths.bind_dn=DN 연결
+auths.bind_dn_helper=You can use '%s' as placeholder for username, e.g. DOM\%s
+auths.bind_password=비밀번호 연결
+auths.bind_password_helper=경고: 이 암호는 일반 텍스트로 저장됩니다. 높은 권한의 계정을 사용하지 마십시오.
+auths.user_base=사용자 검색 기준
+auths.user_dn=사용자 DN
+auths.attribute_username=유저 명 속성
+auths.attribute_username_placeholder=사용자 이름에 대한 로그인 폼 필드 값을 사용하려면 비워 둡니다.
+auths.attribute_name=첫번째 이름 속성
+auths.attribute_surname=성씨 속성
+auths.attribute_mail=이메일 속성
+auths.verify_group_membership=그룹 구성원 자격을 확인
+auths.group_search_base_dn=그룹 설정 Base DN
+auths.group_filter=그룹 필터
+auths.group_attribute_contain_user_list=Group Attribute Containing List of Users
+auths.user_attribute_listed_in_group=User Attribute Listed in Group
+auths.attributes_in_bind=DN 컨텍스트에서 속성을 가져와 연결합니다.
+auths.filter=사용자 필터
+auths.admin_filter=관리자 필터
+auths.ms_ad_sa=Ms Ad SA
+auths.smtp_auth=SMTP 인증 유형
+auths.smtphost=SMTP 호스트
+auths.smtpport=SMTP 포트
+auths.allowed_domains=허용된 도메인
+auths.allowed_domains_helper=도메인을 제안하지 않으려면 비워둡니다. 여러 도메인은 ',' 콤마를 이용해 구분합니다.
+auths.enable_tls=TLS 암호화 활성화
+auths.skip_tls_verify=TLS 검증 건너뛰기
+auths.pam_service_name=PAM 서비스 명
+auths.enable_auto_register=자동 등록을 활성화
+auths.edit=인증 설정 편집
+auths.activated=이 인증정보는 활성화되어있습니다.
+auths.default_auth=This authentication is default login source
+auths.new_success=새로운 인증 '%s'가 성공적으로 추가 되었습니다.
+auths.update_success=인증 설정이 성공적으로 변경되었습니다.
+auths.update=인증 설정 업데이트
+auths.delete=이 인증을 삭제합니다.
+auths.delete_auth_title=인증 삭제
+auths.delete_auth_desc=이 인증이 삭제됩니다. 정말로 진행하시겠습니까?
+auths.still_in_used=이 인증은 아직 몇몇 사용자들이 사용하고 있습니다, 먼저 사용자들의 로그인 유형을 삭제하거나 변경해주십시오.
+auths.deletion_success=인증이 성공적으로 삭제 되었습니다!
+auths.login_source_exist=로그인 소스 '%s'는 이미 존재합니다.
+auths.github_api_endpoint=API 끝점
+
+config.not_set=(설정되지 않음)
+config.server_config=서버 설정
+config.brand_name=브랜드 이름
+config.run_user=데몬 실행 계정
+config.run_mode=실행 모드
+config.server.external_url=외부 URL
+config.server.domain=도메인
+config.server.protocol=프로토콜
+config.server.http_addr=HTTP 주소
+config.server.http_port=HTTP 포트
+config.server.cert_file=인증서 파일
+config.server.key_file=키 파일
+config.server.tls_min_version=최소 TLS 버전
+config.server.unix_socket_permission=Unix 소켓 권한
+config.server.local_root_url=로컬 최상위 URL
+config.server.offline_mode=오프라인 모드
+config.server.disable_router_log=라우터 로그 비활성화
+config.server.enable_gzip=Gzip 활성화
+config.server.app_data_path=애플리케이션 데이터 경로
+config.server.load_assets_from_disk=디스크에서 요소 불러오기
+config.server.landing_url=랜딩 URL
+
+config.ssh_config=SSH 설정
+config.ssh.enabled=활성화됨
+config.ssh.domain=노출된 도메인
+config.ssh.port=노출 포트
+config.ssh.root_path=최상위 경로
+config.ssh.keygen_path=키 생성 경로
+config.ssh.key_test_path=키 테스트 경로
+config.ssh.minimum_key_size_check=최소 키 크기 검사
+config.ssh.minimum_key_sizes=최소 키 사이즈
+config.ssh.rewrite_authorized_keys_at_start=Rewrite "authorized_keys" at start
+config.ssh.start_builtin_server=빌트인 서버 시작
+config.ssh.listen_host=수신 대기 호스트
+config.ssh.listen_port=수신 대기 포트
+config.ssh.server_ciphers=서버 암호화
+config.ssh.server_macs=Server MACs
+config.ssh.server_algorithms=Server algorithms
+
+config.repo_config=저장소 설정
+config.repo.root_path=최상위 경로
+config.repo.script_type=스크립트 유형
+config.repo.ansi_chatset=ANSI 문자열
+config.repo.force_private=비공개 강제
+config.repo.max_creation_limit=최대 생성 제한
+config.repo.preferred_licenses=선호 라이선스
+config.repo.disable_http_git=HTTP Git 비활성화
+config.repo.enable_local_path_migration=로컬 경로 마이그레이션 활성화
+config.repo.enable_raw_file_render_mode=raw 파일 렌더링 모드 활성화
+config.repo.commits_fetch_concurrency=Commits fetch concurrency
+config.repo.editor.line_wrap_extensions=편집기 줄 바꿈 확장
+config.repo.editor.previewable_file_modes=Editor previewable file modes
+config.repo.upload.enabled=업로드 활성화됨
+config.repo.upload.temp_path=임시 경로 업로드
+config.repo.upload.allowed_types=허용되는 유형 업로드
+config.repo.upload.file_max_size=업로드 파일 크기 제한
+config.repo.upload.max_files=업로드 파일 제한
+
+config.db_config=데이터베이스 설정
+config.db.type=유형
+config.db.host=호스트
+config.db.name=이름
+config.db.schema=스키마
+config.db.schema_helper=("postgres" 전용)
+config.db.user=사용자
+config.db.ssl_mode=SSL 모드
+config.db.ssl_mode_helper=("postgres" 전용)
+config.db.path=경로
+config.db.path_helper={"sqlite3" 전용)
+config.db.max_open_conns=Maximum open connections
+config.db.max_idle_conns=Maximum idle connections
+
+config.security_config=보안 설정
+config.security.login_remember_days=로그인 기억 날짜
+config.security.cookie_remember_name=쿠키 기억하기
+config.security.cookie_username=사용자 이름 쿠키
+config.security.cookie_secure=보안 쿠키 활성화
+config.security.reverse_proxy_auth_user=Reverse proxy authentication header
+config.security.enable_login_status_cookie=로그인 상태 쿠키 활성화
+config.security.login_status_cookie_name=로그인 상태 쿠키
+config.security.local_network_allowlist=Local network allowlist
+
+config.email_config=이메일 설정
+config.email.enabled=활성화됨
+config.email.subject_prefix=제목 접두어
+config.email.host=호스트
+config.email.from=보내는 사람
+config.email.user=사용자
+config.email.disable_helo=HELO 비활성화
+config.email.helo_hostname=HELO 호스트 이름
+config.email.skip_verify=인증서 검증 건너뛰기
+config.email.use_certificate=커스텀 인증서 사용하기
+config.email.cert_file=인증서 파일
+config.email.key_file=키 파일
+config.email.use_plain_text=평문 텍스트 사용
+config.email.add_plain_text_alt=평문 텍스트 대체 추가
+config.email.send_test_mail=테스트 이메일 보내기
+config.email.test_mail_failed=Failed to send test email to '%s': %v
+config.email.test_mail_sent='%s'로 테스트 이메일을 보냈습니다.
+
+config.auth_config=Authentication configuration
+config.auth_custom_logout_url=Custom logout URL
+config.auth.activate_code_lives=Activate code lives
+config.auth.reset_password_code_lives=Reset password code lives
+config.auth.require_email_confirm=이메일 인증 필요
+config.auth.require_sign_in_view=Require sign in view
+config.auth.disable_registration=등록 비활성화
+config.auth.enable_registration_captcha=등록시 CAPTCHA 사용
+config.auth.enable_reverse_proxy_authentication=Enable reverse proxy authentication
+config.auth.enable_reverse_proxy_auto_registration=Enable reverse proxy auto registration
+config.auth.reverse_proxy_authentication_header=Reverse proxy authentication header
+
+config.user_config=User configuration
+config.user.enable_email_notify=이메일 알림 활성화
+
+config.session_config=세션 설정
+config.session.provider=공급자
+config.session.provider_config=공급자 설정
+config.session.cookie_name=쿠키
+config.session.https_only=HTTPS만
+config.session.gc_interval=GC 간격
+config.session.max_life_time=Max life time
+config.session.csrf_cookie_name=CSRF 쿠키
+
+config.cache_config=캐시 설정
+config.cache.adapter=Adapter
+config.cache.interval=GC 간격
+config.cache.host=호스트
+
+config.http_config=HTTP 설정
+config.http.access_control_allow_origin=Access control allow origin
+
+config.attachment_config=첨부 파일 설정
+config.attachment.enabled=활성화됨
+config.attachment.path=경로
+config.attachment.allowed_types=허용 유형
+config.attachment.max_size=크기 제한
+config.attachment.max_files=파일 제한
+
+config.release_config=릴리즈 설정
+config.release.attachment.enabled=첨부 파일 활성화됨
+config.release.attachment.allowed_types=허용되는 첨부 파일 유형
+config.release.attachment.max_size=첨부 파일 크기 제한
+config.release.attachment.max_files=첨부 파일 제한
+
+config.picture_config=이미지 설정
+config.picture.avatar_upload_path=사용자 아바타 업로드 경로
+config.picture.repo_avatar_upload_path=Repository avatar upload path
+config.picture.gravatar_source=Gravatar source
+config.picture.disable_gravatar=Gravatar 비활성화
+config.picture.enable_federated_avatar=Enable federated avatars
+
+config.mirror_config=미러 설정
+config.mirror.default_interval=기본 간격
+
+config.webhook_config=웹훅 설정
+config.webhook.types=유형
+config.webhook.deliver_timeout=배달 제한 시간
+config.webhook.skip_tls_verify=TLS 검증 건너뛰기
+
+config.git_config=깃 설정
+config.git.disable_diff_highlight=Disable diff syntax highlight
+config.git.max_diff_lines=Diff lines limit (for a single file)
+config.git.max_diff_line_characters=Diff characters limit (for a single line)
+config.git.max_diff_files=Diff files limit (for a single diff)
+config.git.gc_args=GC 인수
+config.git.migrate_timeout=마이그레이션 제한 시간
+config.git.mirror_timeout=미러 페치 제한 시간
+config.git.clone_timeout=클론 제한 시간
+config.git.pull_timeout=풀 제한 시간
+config.git.gc_timeout=GC 제한 시간
+
+config.lfs_config=LFS 구성
+config.lfs.storage=저장소
+config.lfs.objects_path=Objects path
+
+config.log_config=로그 설정
+config.log_file_root_path=로그 파일 최상위 경로
+config.log_mode=모드
+config.log_options=설정
+
+monitor.cron=Cron 작업
+monitor.name=이름
+monitor.schedule=스케줄
+monitor.next=다음 시간
+monitor.previous=이전 시간
+monitor.execute_times=실행 시간
+monitor.process=실행중인 프로세스들
+monitor.desc=설명
+monitor.start=시작 시간
+monitor.execute_time=실행 시간
+
+notices.system_notice_list=시스템 공지
+notices.view_detail_header=공지 세부사항 보기
+notices.actions=동작
+notices.select_all=모두 선택
+notices.deselect_all=모두 선택 해제
+notices.inverse_selection=선택 반전
+notices.delete_selected=선택 삭제
+notices.delete_all=모든 알림을 삭제
+notices.type=유형
+notices.type_1=저장소
+notices.desc=설명
+notices.op=일.
+notices.delete_success=시스템 알림들이 성공적으로 삭제되었습니다.
+
+[action]
+create_repo=저장소를 만들었습니다. %s
+rename_repo=%[1]s에서에서 %[3]s으로 저장소 이름을 바꾸었습니다.
+commit_repo=%[4]s에서 %[3]s으로 푸시함
+compare_commits=이 %d개의 커밋에 대한 비교 보기
+transfer_repo=%s에서 %s로 저장소가 전송되었습니다.
+create_issue=`열린 이슈 %s #%[2]s`
+close_issue=`닫힌 이슈 %s #%[2]s`
+reopen_issue=`다시 열린 이슈 %s #%[2]s`
+comment_issue=`이슈에 댓글이 달렸습니다. %s #%[2]s`
+create_pull_request=`만들어진 끌어오기 요청 %s #%[2]s`
+close_pull_request=`닫힌 끌어오기 요청 %s #%[2]s`
+reopen_pull_request=`다시 열린 끌어오기 요청 %s #%[2]s`
+merge_pull_request=`병합된 끌어오기 요청 %s #%[2]s`
+create_branch=created new branch %[3]s at %[4]s
+delete_branch=deleted branch %[2]s at %[3]s
+push_tag=태그 %[2]s를 %[3]s로 푸시함
+delete_tag=%[3]s에서 code>%[2]s 태그 삭제됨
+fork_repo=forked a repository to %s
+mirror_sync_push=synced commits to %[3]s at %[4]s from mirror
+mirror_sync_create=synced new reference %[2]s to %[3]s from mirror
+mirror_sync_delete=synced and deleted reference %[2]s at %[3]s from mirror
+
+[tool]
+ago=전
+from_now=지금부터
+now=현재
+1s=1 초 %s
+1m=1 분 %s
+1h=1 시간 %s
+1d=1 일 %s
+1w=1 주 %s
+1mon=1 개월 %s
+1y=1 년 %s
+seconds=%d 초 %s
+minutes=%d 분 %s
+hours=%d 시간 %s
+days=%d 일 %s
+weeks=%d 주 %s
+months=%d 달 %s
+years=%d 년 %s
+raw_seconds=초
+raw_minutes=분
+raw_hours=시간
+
+[dropzone]
+default_message=여기에 파일을 끌어 놓거나 클릭하여 업로드하세요.
+invalid_input_type=이 종류의 파일은 업로드할 수 없습니다.
+file_too_big=파일 크기({{filesize}} MB)가 최대 크기({{maxFilesize}} MB)를 초과합니다.
+remove_file=파일 제거
+
diff --git a/conf/locale/locale_lv-LV.ini b/conf/locale/locale_lv-LV.ini
index c6dd4b53a32..98d1cf9d7a5 100644
--- a/conf/locale/locale_lv-LV.ini
+++ b/conf/locale/locale_lv-LV.ini
@@ -9,7 +9,6 @@ sign_out=Izrakstīties
sign_up=Reģistrēties
register=Reģistrēties
website=Mājas lapa
-version=Versija
page=Lapa
template=Sagatave
language=Valoda
@@ -44,23 +43,27 @@ issues=Problēmas
cancel=Atcelt
+[status]
+page_not_found=Page Not Found
+internal_server_error=Internal Server Error
+
[install]
install=Instalācija
title=Instalācijas soļi pirmo reizi palaižot
docker_helper=Ja Gogs tiek lietots zem Docker, izlasiet uzmanīgi vadlīnijas, pirms ko maināt šajā lapā!
-requite_db_desc=Gogs nepieciešams MySQL, PostgreSQL, SQLite3 vai TiDB.
+requite_db_desc=Gogs requires MySQL, PostgreSQL, SQLite3 or TiDB (via MySQL protocol).
db_title=Datu bāzes iestatījumi
db_type=Datu bāzes veids
host=Resursdators
user=Lietotājs
password=Parole
db_name=Datu bāzes nosaukums
+db_schema=Schema
db_helper=Nepieciešams izmantot MySQL INNODB dzini ar rakstzīmju kopu utf8_general_ci.
ssl_mode=SSL režīms
path=Ceļš
-sqlite_helper=SQLite3 vai TiDB datu bāzēs faila ceļš. Izmantojiet absolūto ceļu, startējot kā servisu.
-err_empty_db_path=Nepieciešams norādīt SQLite3 vai TiDB datu bāzes atrašanās vietu.
-err_invalid_tidb_name=TiDB datu bāzes nosaukums nevar saturēt simbolus "." un "-".
+sqlite_helper=Faila ceļs uz SQLite3 datu bāzi. Norādiet absolūtu ceļu, kad laižat kā servisu.
+err_empty_db_path=SQLite3 datu bāzes ceļš nevar būt tukšs.
no_admin_and_disable_registration=Reģistrāciju nevar atslēgt, kamēr nav izveidots administratora konts.
err_empty_admin_password=Administratora kontam ir obligāti jānorāda parole.
@@ -75,12 +78,17 @@ domain=Domēns
domain_helper=Tas ietekmē SSH klonēšanas URL.
ssh_port=SSH ports
ssh_port_helper=Porta numurs, kuru izmanto Jūsu SSH serveris, atstājiet tukšu, ja nevēlaties izmantot SSH.
+use_builtin_ssh_server=Izmantot iebūvēto SSH serveri
+use_builtin_ssh_server_popup=Startēt iebūvēto SSH serveri Git darbībām, lai atšķirtu no sistēmas SSH servisa.
http_port=HTTP ports
http_port_helper=Porta numurs pēc kura lietojumprogrammai būs iespējams pieslēgties.
app_url=Lietotnes URL
app_url_helper=Tas ietekmē HTTP/HTTPS klonēšanas URL un e-pasta saturā izsūtītās saites.
log_root_path=Žurnalizēšanas direktorija
log_root_path_helper=Direktorija, kurā tiks glabāti žurnāla faili.
+enable_console_mode=Iespējot konsoles režīmu
+enable_console_mode_popup=Papildus faila režīmam, papildus rakstīt žurnāla ierakstus konsolē.
+default_branch=Default Branch
optional_title=Neobligātie iestatījumi
email_title=E-pasta pakalpojuma iestatījumi
@@ -116,7 +124,10 @@ sqlite3_not_available=Jūsu versija neatbalsta SQLite3, lūdzu lejupielādējiet
invalid_db_setting=Datu bāzes iestatījums nav pareizs: %v
invalid_repo_path=Repozitorija atrašanās vieta ir nekorekta: %v
run_user_not_match=Izpildes lietotājs nav pašreizējais lietotājs: %s -> %s
+smtp_host_missing_port=SMTP adresē nav norādīts ports.
+invalid_smtp_from=SMTP sūtītāja lauks ir nekorekts: %v
save_config_failed=Neizdevās saglabāt konfigurāciju: %v
+init_failed=Failed to initialize application: %v
invalid_admin_setting=Nekorekts admin konta iestatījums: %v
install_success=Laipni lūdzam! Mēs priecājamies, ka Jūs izvēlaties Gogs, patīkamu lietošanu!
invalid_log_root_path=Norādītā žurnalizēšanas direktorija ir kļūdaina: %v
@@ -137,6 +148,7 @@ issues.in_your_repos=Jūsu repozitorijos
[explore]
repos=Repozitoriji
users=Lietotāji
+organizations=Organizācijas
search=Meklēt
[auth]
@@ -145,6 +157,8 @@ register_hepler_msg=Jau ir konts? Pieraksties tagad!
social_register_hepler_msg=Jau ir konts? Sasaisti tagad!
disable_register_prompt=Atvainojiet, reģistrācija ir atspējota. Lūdzu, sazinieties ar vietnes administratoru.
disable_register_mail=Atvainojiet, reģistrācijas e-pasta apstiprināšana ir atspējota.
+auth_source=Autentificēšanas avots
+local=Local
remember_me=Atcerēties mani
forgot_password=Aizmirsu paroli
forget_password=Aizmirsi paroli?
@@ -156,7 +170,6 @@ prohibit_login_desc=Ar Jūsu kontu nav atļauts pieteikties, sazinoties ar lapas
resent_limit_prompt=Atvainojiet, Jūs sūtījāt aktivizācijas e-pastu pārāk bieži. Lūdzu, gaidiet 3 minūtes.
has_unconfirmed_mail=Sveiki %s, Jums ir neapstiprināta e-pasta adrese (%s). Ja neesat saņēmis apstiprināšanas e-pastu vai Jums ir nepieciešams nosūtīt jaunu, lūdzu, nospiediet pogu, kas atrodas zemāk.
resend_mail=Nospiediet šeit, lai vēlreiz nosūtītu aktivizācijas e-pastu
-email_not_associate=Šī e-pasta adrese nav saistīta ar Jūsu kontu.
send_reset_mail=Spiediet šeit, lai nosūtītu paroles maiņas vēstuli uz Jūsu e-pastu
reset_password=Atjaunot savu paroli
invalid_code=Atvainojiet, Jūsu apstiprināšanas kodam ir beidzies derīguma termiņš vai arī tas ir nepareizs.
@@ -164,6 +177,14 @@ reset_password_helper=Nospiediet šeit, lai atjaunotu paroli
password_too_short=Paroles garums nedrīkst būt mazāks par 6.
non_local_account=Tikai lokālie konti var nomainīt savu paroli Gogs.
+login_two_factor=Divu faktoru autentifikācija
+login_two_factor_passcode=Autentifikācijas kods
+login_two_factor_enter_recovery_code=Ievadiet divu faktoru atjaunošanas kodu
+login_two_factor_recovery=Divu faktoru atjaunošana
+login_two_factor_recovery_code=Atjaunošanas kods
+login_two_factor_enter_passcode=Ievadiet divu faktoru kodu
+login_two_factor_invalid_recovery_code=Atjaunošanas kods jau ir izmantots vai nav pareizs.
+
[mail]
activate_account=Lūdzu, aktivizējiet savu kontu
activate_email=Apstipriniet savu e-pasta adresi
@@ -199,6 +220,7 @@ Content=Saturs
require_error=` nedrīkst būt tukšs.`
alpha_dash_error=` drīkst saturēt tikai latīņu alfabēta burtus, ciparus vai domuzīmes (-_).`
alpha_dash_dot_error=` drīkst saturēt tikai latīņu alfabēta burtus, ciparus, domuzīmes (-_) vai punktu.`
+alpha_dash_dot_slash_error=` drīkst saturēt tikai latīņu alfabēta burtus, ciparus, domuzīmes (-_), slīpsvītru vai punktu.`
size_error=` jābūt %s simbolus garam.`
min_size_error=` jabūt vismaz %s simbolu garumā.`
max_size_error=` jabūt ne mazāk kā %s simbolu garumā.`
@@ -215,6 +237,7 @@ org_name_been_taken=Organizācijas nosaukums ir jau aizņemts.
team_name_been_taken=Komandas nosaukums ir jau aizņemts.
email_been_used=E-pasta adrese jau tiek izmantota.
username_password_incorrect=Lietotājvārds vai parole nav pareiza.
+auth_source_mismatch=Izvēlētais autentificēšanas avots nav saistīts ar lietotāju.
enterred_invalid_repo_name=Lūdzu, pārliecinieties, vai ievadītā repozitorija nosaukums ir pareizs.
enterred_invalid_owner_name=Lūdzu, pārliecinieties, vai ievadītā īpašnieka vārds ir pareizs.
enterred_invalid_password=Lūdzu pārliecinieties, vai Jūsu ievadītā parole ir pareiza.
@@ -242,19 +265,18 @@ following=Seko
follow=Sekot
unfollow=Nesekot
-form.name_reserved=Lietotāja vārds '%s' jau ir aizņemts.
-form.name_pattern_not_allowed=Lietotāja vārds '%s' nav atļauts.
+form.name_not_allowed=User name or pattern %q is not allowed.
[settings]
profile=Profils
password=Parole
avatar=Profila attēls
ssh_keys=SSH atslēgas
-social=Sociālie konti
-applications=Lietotnes
+security=Drošība
+repos=Repozitoriji
orgs=Organizācijas
+applications=Lietotnes
delete=Dzēst kontu
-uid=Lietotāja ID
public_profile=Publiskais profils
profile_desc=Jūsu e-pasta adrese ir publiska un tiks izmantota, lai nosūtītju Jums paziņojumus, kas saistīti ar Jūsu kontu vai darbībām veiktām caur šo mājas lapu.
@@ -295,6 +317,7 @@ delete_email=Dzēst
email_deletion=E-pasta dzēšana
email_deletion_desc=Dzēšot šo e-pasta adresi, tiks dzēsta arī visa ar to saistītā informācija no Jūsu konta. Vai vēlaties turpināt?
email_deletion_success=E-pasta adrese ir veiksmīgi izdzēsta!
+email_deletion_primary=Cannot delete primary email address.
add_new_email=Pievienot jaunu e-pasta adresi
add_email=Pievienot e-pastu
add_email_confirmation_sent=Jauns apstiprinājuma e-pasts tika nosūtīts uz '%s', pārbaudiet savu e-pastu tuvāko %d stundu laikā, lai pabeigtu apstiprināšanas procesu.
@@ -320,14 +343,36 @@ no_activity=Nav nesenas aktivitātes
key_state_desc=Šī atslēga tika izmantota pēdējo 7 dienu laikā
token_state_desc=Šis talons tika izmantots pēdējo 7 dienu laikā
-manage_social=Pārvaldīt piesaistītos sociālos kontus
-social_desc=Šeit tiek attēloti visi sociālie konti, kas ir piesaistīti Jūsu kontam. Dzēsiet visus, kurus Jūs neatpazīstat.
-unbind=Atsaistīt
-unbind_success=Sociālais konts tika atsaistīts.
+two_factor=Divu faktoru autentifikācija
+two_factor_status=Statuss:
+two_factor_on=Ieslēgts
+two_factor_off=Izslēgts
+two_factor_enable=Iespējot
+two_factor_disable=Atspējot
+two_factor_view_recovery_codes=View and save your recovery codes in a safe place. You can use them as passcode if you lose access to your authentication application.
+two_factor_http=HTTP/HTTPS darbībām vairs nav iespējams izmantot tikai lietotāja vārdu un paroli. Izveidojiet un izmantojiet Personīgo piekļuves talonu kā pilnvaru, piemēram, %[3]s.
+two_factor_enable_title=Iespējot divu faktoru autentifikāciju
+two_factor_scan_qr=Please use your authentication application to scan the image:
+two_factor_or_enter_secret=Vai ievadiet noslēpumu:
+two_factor_then_enter_passcode=Pēc tam ievadiet kodu:
+two_factor_verify=Pārbaudīt
+two_factor_invalid_passcode=Ievadītais piekļuves kods nav derīgs. Lūdzu mēģiniet vēlreiz!
+two_factor_reused_passcode=Ievadītais piekļuves kods jau ir izmantots. Lūdzu mēģiniet citu!
+two_factor_enable_error=Divu faktoru autentifikācijas iespējošana neizdevās: %v
+two_factor_enable_success=Two-factor authentication has enabled for your account successfully!
+two_factor_recovery_codes_title=Two-factor Authentication Recovery Codes
+two_factor_recovery_codes_desc=Recovery codes are used when you temporarily lose access to your authentication application. Each recovery code can only be used once, please keep these codes in a safe place.
+two_factor_regenerate_recovery_codes=Regenerate Recovery Codes
+two_factor_regenerate_recovery_codes_error=Regenerate recovery codes failed: %v
+two_factor_regenerate_recovery_codes_success=New recovery codes has been generated successfully!
+two_factor_disable_title=Atspējot divu faktoru autentifikāciju
+two_factor_disable_desc=Your account security level will decrease after disabled two-factor authentication. Do you want to continue?
+two_factor_disable_success=Divu faktoru autentificēšana ir atspējota!
manage_access_token=Pārvaldīt personīgos piekļuves talonus
generate_new_token=Ģenerēt jaunu talonu
tokens_desc=Taloni, kurus esat uzģenerējuši, kas var tikt izmantoti, lai piekļūtu Gogs API.
+access_token_tips=The personal access token may be used as either username or password. It is recommended to use the "x-access-token" as the username and the personal access token as the password for Git applications.
new_token_desc=Pašlaik visiem taloniem ir pilna piekļuve Jūsu kontam.
token_name=Talona nosaukums
generate_token=Ģenerēt talonu
@@ -336,6 +381,16 @@ delete_token=Dzēst
access_token_deletion=Personīgā piekļuves talona dzēšana
access_token_deletion_desc=Dzēšot personīgo piekļuves talonu, tiks liegta piekļuve aplikācijām, kas to izmanto. Vai vēlaties turpināt?
delete_token_success=Personīgās piekļuves talons veiksmīgi izdzēsts! Neaizmirstiet nomainīt uz citu aplikācijās, kas to izmantoja.
+token_name_exists=Token with same name already exists.
+
+orgs.none=Jūs neesat nevienas organizācijas dalībnieks.
+orgs.leave_title=Pamest organizāciju
+orgs.leave_desc=You will lose access to all repositories and teams after you left the organization. Do you want to continue?
+
+repos.leave=Pamest
+repos.leave_title=Pamest repozitoriju
+repos.leave_desc=Tiks zaudēta piekļuve repozitorijam, kad būsiet to pametis. Vai patiešām vēlaties turpināt?
+repos.leave_success=Repozitorijs '%s' veiksmīgi pamests!
delete_account=Dzēst savu kontu
delete_prompt=Šī darbība pilnībā izdzēsīs Jūsu kontu, kā arī tā ir NEATGRIEZENISKA!
@@ -348,7 +403,9 @@ owner=Īpašnieks
repo_name=Repozitorija nosaukums
repo_name_helper=Labi repzotoriju nosaukumi ir īsi, tādi kurus viegli atcerēties un unikāli.
visibility=Redzamība
+unlisted=Unlisted
visiblity_helper=Šis repozitorijs ir privāts
+unlisted_helper=This repository is Unlisted
visiblity_helper_forced=Lapas administrators ir noteicis, ka visiem repozitorijiem ir jābūt privātiem
visiblity_fork_helper=(Šīs vērtības maiņa ietekmēs arī visus atdalītos repozitorijus)
clone_helper=Nepieciešama palīdzība kā veikt klonēšana? Apmeklējiet Palīdzība lapu!
@@ -364,7 +421,7 @@ readme=LasiMani
readme_helper=Izvēlieties faila LasiMani sagatavi
auto_init=Inicializēt šo repozitoriju ar izvēlētajiem failiem un sagatavi
create_repo=Izveidot repozitoriju
-default_branch=Noklusējuma atzars
+default_branch=Noklusētais atzars
mirror_prune=Izmest
mirror_prune_desc=Izdzēst visas ārējās atsauces, kas ārējā repozitorijā vairs neeksistē
mirror_interval=Spoguļošanas intervāls (stundās)
@@ -374,24 +431,26 @@ mirror_last_synced=Pēdējo reizi sinhronizēts
watchers=Novērotāji
stargazers=Zvaigžņdevēji
forks=Atdalītie repozitoriji
+repo_description_helper=Repozitorija apraksts. Maksimālais garums 512 rakstzīmes.
+repo_description_length=Pieejamās rakstzīmes
form.reach_limit_of_creation=Īpašnieks sasniedza maksimālu pieļaujamo (%d) izveidoto repozitoriju skaitu.
-form.name_reserved=Repozitorija nosaukums '%s' ir rezervēts.
-form.name_pattern_not_allowed=Repozitorija nosaukums '%s' nav atļauts.
+form.name_not_allowed=Repository name or pattern %q is not allowed.
need_auth=Nepieciešama autorizācija
migrate_type=Migrācijas veids
migrate_type_helper=Šis repozitorijs būs spogulis
migrate_repo=Migrēt repozitoriju
migrate.clone_address=Klonēšanas adrese
-migrate.clone_address_desc=Tas var būt HTTP/HTTPS/GIT URL vai ceļš uz lokālā servera.
+migrate.clone_address_desc=Tas var būt HTTP/HTTPS/GIT URL.
+migrate.clone_address_desc_import_local=You're also allowed to migrate a repository by local server path.
migrate.permission_denied=Jums nav tiesību importēt lokālu repozitoriju.
migrate.invalid_local_path=Nekorents lokālais ceļš, tas neeksistē vai nav direktorijs.
+migrate.clone_address_resolved_to_blocked_local_address=Clone address resolved to a local network address that is implicitly blocked.
migrate.failed=Migrācija neizdevās: %v
mirror_from=spogulis no
forked_from=atdalīts no
-fork_from_self=Nav iespējams atdalīt repozitoriju, kuram esat īpašnieks!
copy_link=Kopēt
copy_link_success=Nokopēts!
copy_link_error=Nospiediet ⌘-C vai Ctrl-C, lai nokopētu
@@ -407,9 +466,9 @@ quick_guide=Īsa pamācība
clone_this_repo=Klonēt šo repozitoriju
create_new_repo_command=Izveidot jaunu repozitoriju komandrindā
push_exist_repo=Nosūtīt izmaiņas no komandrindas eksistējošam repozitorijam
-repo_is_empty=Šis repozitorijs ir tukšs, apskatiet atkal vēlāk!
+bare_message=This repository does not have any content yet.
-code=Kods
+files=Faili
branch=Atzars
tree=Koks
filter_branch_and_tag=Filtrēt atzarus vai tagus
@@ -420,12 +479,23 @@ pulls=Izmaiņu pieprasījumi
labels=Etiķetes
milestones=Atskaites punkti
commits=Revīzijas
+git_branches=Atzari
releases=Laidieni
file_raw=Neapstrādāts
file_history=Vēsture
file_view_raw=Rādīt neapstrādātu
file_permalink=Patstāvīgā saite
file_too_large=Šis fails ir par lielu, lai to parādītu
+video_not_supported_in_browser=Jūsu pārlūks neatbalsta HTML5 video.
+
+branches.overview=Pārskats
+branches.active_branches=Aktīvie atzari
+branches.stale_branches=Pamests atzars
+branches.all=Visi atzari
+branches.updated_by=%[2]s atjaunoja %[1]s
+branches.change_default_branch=Mainīt noklusēto atzaru
+branches.default_deletion_not_allowed=Cannot delete the default branch.
+branches.protected_deletion_not_allowed=Cannot delete a protected branch.
editor.new_file=Jauns fails
editor.upload_file=Augšupielādēt failu
@@ -455,16 +525,19 @@ editor.cancel=Atcelt
editor.filename_cannot_be_empty=Nav ievadīts faila nosaukums.
editor.branch_already_exists=Atzars '%s' šajā repozitorijā jau eksistē.
editor.directory_is_a_file=Ieraksts '%s' vecāka ceļā ir fails nevis direktorija šajā repozitorijā.
+editor.file_is_a_symlink=Fails '%s" ir norāde, kuru nav iespējams labot no tīmekļa redaktora.
editor.filename_is_a_directory=Faila nosaukums '%s' sakrīt ar direktorijas nosaukumu šajā repozitorijā.
editor.file_editing_no_longer_exists=Fails '%s', ko labojat, vairs neeksistē repozitorijā.
editor.file_changed_while_editing=Faila saturs ir mainījies kopš brīža, kad sākāt to labot. Nospiediet šeit, lai redzētu kas ir mainījies vai nospiediet atkārtoti pabeigt revīziju, lai pārrakstītu izmaiņas.
editor.file_already_exists=Fails ar nosaukumu '%s' repozitorijā jau eksistē.
editor.no_changes_to_show=Nav izmaiņu, ko rādīt.
editor.fail_to_update_file=Neizdevās izmainīt/izveidot failu '%s', kļūda: %v
+editor.fail_to_delete_file=Neizdevās dzēst failu '%s', kļūda: %v
editor.add_subdir=Pievienot apakšdirektoriju...
editor.unable_to_upload_files=Neizdevās augšupielādēt failus uz direktoriju '%s', kļūda: %v
editor.upload_files_to_dir=Augšupielādēt failus uz direktoriju '%s'
+commits.commit_history=Revīziju vēsture
commits.commits=Revīzijas
commits.search=Meklēt revīzijas
commits.find=Meklēt
@@ -562,6 +635,7 @@ pulls.compare_compare=salīdzināmais
pulls.filter_branch=Filtrēt atzarus
pulls.no_results=Nekas netika atrasts.
pulls.nothing_to_compare=Nav ko salīdzināt, jo bāzes un salīdzināmie atzari ir vienādi.
+pulls.nothing_merge_base=There is nothing to compare because two branches have completely different history.
pulls.has_pull_request=`Jau eksistē izmaiņu pieprasījums starp šiem diviem atzariem: %[2]s#%[3]d`
pulls.create=Izveidot izmaiņu pieprasījumu
pulls.title_desc=vēlas sapludināt %[1]d revīzijas no %[2]s uz %[3]s
@@ -577,8 +651,13 @@ pulls.is_checking=Notiek konfliktu pārbaude, mirkli uzgaidiet un atjaunojiet la
pulls.can_auto_merge_desc=Šo izmaiņu pieprasījumu var automātiski saplūdināt.
pulls.cannot_auto_merge_desc=Šis izmaiņu pieprasījums nevar tikt automātiski saplūdināts konfliktu dēļ.
pulls.cannot_auto_merge_helper=Lūdzu sapludiniet manuāli, lai atrisinātu konfliktus.
+pulls.create_merge_commit=Create a merge commit
+pulls.rebase_before_merging=Rebase before merging
+pulls.commit_description=Commit Description
pulls.merge_pull_request=Izmaiņu pieprasījuma sapludināšana
pulls.open_unmerged_pull_exists=`Jūs nevarat veikt atkārtotas atvēršanas darbību, jo jau eksistē izmaiņu pieprasījums (#%d) no šī repozitorija ar tādu pašu sapludināšanas informāciju un gaida sapludināšanu.`
+pulls.delete_branch=Dzēst atzaru
+pulls.delete_branch_has_new_commits=Branch cannot be deleted because it has new commits after mergence.
milestones.new=Jauns atskaites punkts
milestones.open_tab=%d atvērti
@@ -629,6 +708,29 @@ settings.collaboration.admin=Administrators
settings.collaboration.write=Rakstīšanas
settings.collaboration.read=Skatīšanās
settings.collaboration.undefined=Nedefinētas
+settings.branches=Atzari
+settings.branches_bare=You cannot manage branches for bare repository. Please push some content first.
+settings.default_branch=Noklusētais atzars
+settings.default_branch_desc=Noklusētais atzars tiek uzskatīts par pamata atzaru koda revīzijām, izmaiņu pieprasījumiem un tiešsaistes rediģēšanai.
+settings.update=Atjaunot
+settings.update_default_branch_unsupported=Change default branch is not supported by the Git version on server.
+settings.update_default_branch_success=Default branch of this repository has been updated successfully!
+settings.protected_branches=Aizsargātie atzari
+settings.protected_branches_desc=Protect branches from force pushing, accidental deletion and whitelist code committers.
+settings.choose_a_branch=Izvēlēties atzarus...
+settings.branch_protection=Atzaru aizsargāšana
+settings.branch_protection_desc=Please choose protect options for branch %s.
+settings.protect_this_branch=Aizsargāt šo atzaru
+settings.protect_this_branch_desc=Disable force pushes and prevent from deletion.
+settings.protect_require_pull_request=Require pull request instead direct pushing
+settings.protect_require_pull_request_desc=Enable this option to disable direct pushing to this branch. Commits have to be pushed to another non-protected branch and merged to this branch through pull request.
+settings.protect_whitelist_committers=Whitelist who can push to this branch
+settings.protect_whitelist_committers_desc=Add people or teams to whitelist of direct push to this branch. Users in whitelist will bypass require pull request check.
+settings.protect_whitelist_users=Lietotāji, kas var nosūtīt izmaiņas uz šo atzaru
+settings.protect_whitelist_search_users=Meklēt lietotajus
+settings.protect_whitelist_teams=Teams for which members of them can push to this branch
+settings.protect_whitelist_search_teams=Meklēt komandas
+settings.update_protect_branch_success=Protect options for this branch has been updated successfully!
settings.hooks=Tīmekļa āķi
settings.githooks=Git āķi
settings.basic_settings=Pamatiestatījumi
@@ -641,19 +743,26 @@ settings.change_reponame_prompt=Šī izmaiņa ietekmēs saites, kas ir saistīta
settings.advanced_settings=Papildu iestatījumi
settings.wiki_desc=Iespējot vikivietnes
settings.use_internal_wiki=Izmantot iebūvēto vikivietni
+settings.allow_public_wiki_desc=Atļaut publisko piekļuvi vikivietnei, ja repozitorijs ir privāts
settings.use_external_wiki=Izmantot ārējo vikivietni
settings.external_wiki_url=Ārējās Vikivietnes adrese
settings.external_wiki_url_desc=Apmeklētāji tiks novirzīti uz adresi, kad viņi uzklikšķinās uz cilnes.
settings.issues_desc=Iespējot problēmu sekotāju
settings.use_internal_issue_tracker=Izmantot iebūvētu vieglu problēmu sekotāju
+settings.allow_public_issues_desc=Atļaut publisko piekļuvi problēmām, ja repozitorijs ir privāts
settings.use_external_issue_tracker=Izmantot ārējo problēmu sekotāju
+settings.external_tracker_url=Ārējā problēmu sekotāja URL
+settings.external_tracker_url_desc=Visitors will be redirected to URL when they click on the tab.
settings.tracker_url_format=Ārējā problēmu sekotāja adreses formāts
settings.tracker_issue_style=Ārējā problēmu reģistra nosaukumu stils:
settings.tracker_issue_style.numeric=Cipari
settings.tracker_issue_style.alphanumeric=Burti un cipari
settings.tracker_url_format_desc=Jūs varat izmantot {user}{repo}{index} lietotājvārdam, repozitorija nosaukumam un problēmas identifikātoram.
-settings.pulls_desc=Iespējot izmaiņu pieprasījumus lai saņemtu publiskus ieguldījumus
+settings.pulls_desc=Enable pull requests to accept contributions between repositories and branches
+settings.pulls.ignore_whitespace=Ignorēt atstarpju izmaiņas
+settings.pulls.allow_rebase_merge=Allow use rebase to merge commits
settings.danger_zone=Bīstamā zona
+settings.cannot_fork_to_same_owner=You cannot fork a repository to its original owner.
settings.new_owner_has_same_repo=Jaunajam īpašniekam jau ir repozitorijs ar šādu nosaukumu.
settings.convert=Konvertēt uz parastu repozitoriju
settings.convert_desc=Šo spoguli ir iespējams konvertēt par parastu repozitoriju. Šī ir neatgriezeniska darbība.
@@ -688,20 +797,25 @@ settings.collaborator_deletion_desc=Šim lietotājam pēc dzēšanas vairs nebū
settings.remove_collaborator_success=Līdzstrādnieks tika noņemts.
settings.search_user_placeholder=Meklēt lietotāju...
settings.org_not_allowed_to_be_collaborator=Organizāciju nav atļauts pievienot kā līdzstrādnieku.
-settings.user_is_org_member=Lietotājs ir organizācijas biedrs, kas nevar tikt pievienots kā līdzstrādnieks.
-settings.add_webhook=Pievienot tīmekļa āķi
settings.hooks_desc=Tīmekļa āķi ļauj paziņot ārējiem servisiem par noteiktiem notikomiem, kas notiek Git servisā. Kad iestāsies kāds notikums, katram ārējā servisa URL tiks nosūtīts POST pieprasījums. Lai uzzinātu sīkāk skatieties Tīmekļa āķu rokasgrāmatā.
+settings.webhooks.add_new=Add a new webhook:
+settings.webhooks.choose_a_type=Choose a type...
+settings.add_webhook=Pievienot tīmekļa āķi
settings.webhook_deletion=Dzēst tīmekļa āķi
settings.webhook_deletion_desc=Dzēšot tīmekļa āķi tiks dzēsta visa ar to saistītā informācija un izpildes vēsture. Vai vēlaties turpināt?
settings.webhook_deletion_success=Tīmekļa āķis tika veiksmīgi izdzēsts!
settings.webhook.test_delivery=Testa piegāde
settings.webhook.test_delivery_desc=Veikt viltus push-notikuma piegādi lai notestētu Jūsu tīmekļa āķa iestatījumus
settings.webhook.test_delivery_success=Testa web-āķis ir pievienots piegādes rindai. Var paiet dažas sekundes, kamēr tas parādīsies piegāžu vēsturē.
+settings.webhook.redelivery=Redelivery
+settings.webhook.redelivery_success=Hook task '%s' has been readded to delivery queue. It may take few seconds to update delivery status in history.
settings.webhook.request=Pieprasījums
settings.webhook.response=Atbilde
settings.webhook.headers=Galvenes
settings.webhook.payload=Derīgā krava
settings.webhook.body=Saturs
+settings.webhook.err_cannot_parse_payload_url=Cannot parse payload URL: %v
+settings.webhook.url_resolved_to_blocked_local_address=Payload URL resolved to a local network address that is implicitly blocked.
settings.githooks_desc=Git āķus apstrādā pats Git. Jūs varat labot atbalsīto āku failus sarakstā zemāk, lai veiktu pielāgotas darbības.
settings.githook_edit_desc=Ja āķis nav aktīvs, tiks attēlots piemērs kā to izmantot. Atstājot āķa saturu tukšu, tas tiks atspējots.
settings.githook_name=Āķa nosaukums
@@ -711,6 +825,7 @@ settings.add_webhook_desc=Uz norādīto URL tiks nosūtīts POST pi
settings.payload_url=Vērtuma URL
settings.content_type=Satura tips
settings.secret=Noslēpums
+settings.secret_desc=Secret will be sent as SHA256 HMAC hex digest of payload via X-Gogs-Signature header.
settings.slack_username=Lietotājvārds
settings.slack_icon_url=Ikonas URL
settings.slack_color=Krāsa
@@ -720,10 +835,20 @@ settings.event_send_everything=Vēlos saņemt visu.
settings.event_choose=Atzīmēt, ko vēlos saņemt.
settings.event_create=Izveidot
settings.event_create_desc=Atzara vai taga izveidošana
-settings.event_pull_request=Izmaiņu pieprasījums
-settings.event_pull_request_desc=Atvērts, aizvērts, atkāroti atvērts, labots, piešķirts vai noņemts izmaiņu pieprasījums, vai mainīta etiķete, vai veikta sinhronizācija.
+settings.event_delete=Dzēst
+settings.event_delete_desc=Atzars vai tags izdzēsts
+settings.event_fork=Atdalīts
+settings.event_fork_desc=Repozitorijs atdalīts
settings.event_push=Izmaiņu nosūtīšana
settings.event_push_desc=Git izmaiņu nosūtīšana uz repozitoriju
+settings.event_issues=Problēmas
+settings.event_issues_desc=Issue opened, closed, reopened, edited, assigned, unassigned, label updated, label cleared, milestoned, or demilestoned.
+settings.event_pull_request=Izmaiņu pieprasījums
+settings.event_pull_request_desc=Pull request opened, closed, reopened, edited, assigned, unassigned, label updated, label cleared, milestoned, demilestoned, or synchronized.
+settings.event_issue_comment=Problēmas komentārs
+settings.event_issue_comment_desc=Issue comment created, edited, or deleted.
+settings.event_release=Laidiens
+settings.event_release_desc=Laidiens publicēts repozitorijā.
settings.active=Aktīvs
settings.active_helper=Tiks nosūtīti notikuma dati, kad nostrādās šis āķis.
settings.add_hook_success=Jauns tīmekļa āķis tika veiksmīgi pievienots.
@@ -733,10 +858,13 @@ settings.delete_webhook=Dzēst tīmekļa āķi
settings.recent_deliveries=Pēdējās piegādes
settings.hook_type=Āķa veids
settings.add_slack_hook_desc=PIevienot Slack integrāciju Jūsu repozitorijā.
+settings.add_discord_hook_desc=Add Discord integration to your repository.
+settings.add_dingtalk_hook_desc=Add Dingtalk integration to your repository.
settings.slack_token=Talons
settings.slack_domain=Domēns
settings.slack_channel=Kanāls
settings.deploy_keys=Izvietot atslēgas
+settings.deploy_keys_helper=Common Gotcha! If you're looking for adding personal public keys, please add them in your account settings.
settings.add_deploy_key=Pievienot izvietošanas atslēgu
settings.deploy_key_desc=Izvietošanas atslēgai ir tikai lasīšanas piekļuve. Tā nav tā pati kā Jūsu personīgā konta SSH atslēga.
settings.no_deploy_keys=Nav pievienota neviena izvietošanas atslēga.
@@ -748,6 +876,8 @@ settings.add_key_success=Izvietošanas atslēga '%s' tik veiksmīgi pievienota!
settings.deploy_key_deletion=Dzēst izvietošanas atslēgu
settings.deploy_key_deletion_desc=Dzēšot šo izvietošanas atslēgu tiks noņemta arī ar to saistītā piekļuve šim repozitorijam. Vai vēlaties turpināt?
settings.deploy_key_deletion_success=Izvietošanas atslēga tika veiksmīgi izdzēsta!
+settings.description_desc=Description of repository. Maximum 512 characters length.
+settings.description_length=Available characters
diff.browse_source=Pārlūkot izejas kodu
diff.parent=vecāks
@@ -766,7 +896,6 @@ release.releases=Laidieni
release.new_release=Jauns laidiens
release.draft=Melnraksts
release.prerelease=Pirmsizlaides versija
-release.stable=Stabila
release.edit=labot
release.ahead=%d revīzijas atzarā %s kopš šī laidiena
release.source_code=Izejas kods
@@ -813,8 +942,8 @@ team_name_helper=Šo nosaukumu varēs izmantot, lai pieminētu komandu sarunās.
team_desc_helper=Komandas apraksts
team_permission_desc=Kādām tiesībām šai komandai būtu jābūt?
-form.name_reserved=Organizācijas nosaukums '%s' ir rezervēts.
-form.name_pattern_not_allowed=Organizācijas nosaukums '%s' nav atļauts.
+form.name_not_allowed=Organization name or pattern %q is not allowed.
+form.team_name_not_allowed=Team name or pattern %q is not allowed.
settings=Iestatījumi
settings.options=Opcijas
@@ -886,12 +1015,19 @@ first_page=Pirmā
last_page=Pēdējā
total=Kopā: %d
+dashboard.build_info=Build Information
+dashboard.app_ver=Application version
+dashboard.git_version=Git versija
+dashboard.go_version=Go versija
+dashboard.build_time=Build time
+dashboard.build_commit=Build commit
dashboard.statistic=Statistika
dashboard.operations=Darbības
dashboard.system_status=Sistēmas uzraudzības statuss
dashboard.statistic_info=Gogs datu bāze satur %d lietotājus, %d organizācijas, %d publiskās atslēgas, %d repozitorijus, %d vērošanas, %d atzīmētas zvaigznītes, %d darbības, %d piekļuves, %d problēmas, %d komentārus, %d sociālos kontus, %d sekošanas, %d spoguļošanas, %d izlaides, %d login sources, %d tīmekļa āķus, %d starpposmus, %d etiķetes, %d āķu uzdevumus, %d komandas, %d labotus uzdevumus, %d pielikumus.
dashboard.operation_name=Darbības nosaukums
dashboard.operation_switch=Pārslēgt
+dashboard.select_operation_to_run=Please select operation to run
dashboard.operation_run=Palaist
dashboard.clean_unbind_oauth=Notīrīt nesaistītās OAuth biļetes
dashboard.clean_unbind_oauth_success=Visas nesaistītās OAuth biļetes tika veiksmīgi izdzēstas.
@@ -905,8 +1041,8 @@ dashboard.git_gc_repos=Veikt repozitoriju datu sakārtošānu (git gc)
dashboard.git_gc_repos_success=Datu sakārtošana visiem repozitorijiem veiksmīgi pabeigta.
dashboard.resync_all_sshkeys=Pārrakstīt '.ssh/authorized_keys' failu (brīdinājums: ne-Git atslēgas tiks pazaudētas)
dashboard.resync_all_sshkeys_success=Visas publiskās atslēgas tika veiksmīgi pārrakstītas.
-dashboard.resync_all_update_hooks=Pārrakstīt visu repozitoriju izmaiņu āķus (nepieciešams, ja tiek mainīta konfigurācijas faila atrašanās vieta)
-dashboard.resync_all_update_hooks_success=Visu repozitoriju izmaiņu āķi tika veiksmīgi pārrakstīti.
+dashboard.resync_all_hooks=Resync pre-receive, update and post-receive hooks of all repositories
+dashboard.resync_all_hooks_success=All repositories' pre-receive, update and post-receive hooks have been resynced successfully.
dashboard.reinit_missing_repos=Atkārtoti inicializēt visus repozitorija ierakstus, kam trūkst Git failu
dashboard.reinit_missing_repos_success=Visi repozitorija ieraksti, kam trūkst Git faili, tika atkārtoti inicializēti.
@@ -981,12 +1117,14 @@ repos.private=Privāts
repos.watches=Vērošana
repos.stars=Atzīmētās zvaigznītes
repos.issues=Problēmas
+repos.size=Izmērs
-auths.auth_manage_panel=Autentifikācijas pārvaldības panelis
+auths.auth_sources=Authentication Sources
auths.new=Pievienot jaunu avotu
auths.name=Nosaukums
auths.type=Veids
auths.enabled=Iespējota
+auths.default=Default
auths.updated=Atjaunināta
auths.auth_type=Autentifikācijas tips
auths.auth_name=Autentifikācijas nosaukums
@@ -995,6 +1133,7 @@ auths.domain=Domēns
auths.host=Resursdators
auths.port=Ports
auths.bind_dn=Saistīšanas DN
+auths.bind_dn_helper=You can use '%s' as placeholder for username, e.g. DOM\%s
auths.bind_password=Saistīšanas parole
auths.bind_password_helper=Brīdinājums: Šī parole tiks saglabāta nešifrētā veidā. Neizmantojiet kontu ar augstām privilēģijām.
auths.user_base=Lietotāja pamatnosacījumi
@@ -1004,6 +1143,11 @@ auths.attribute_username_placeholder=Atstājiet tukšu, lai izmantotu lietotājv
auths.attribute_name=Vārda atribūts
auths.attribute_surname=Uzvārda atribūts
auths.attribute_mail=E-pasta atribūts
+auths.verify_group_membership=Pārbaudīt grupas piederību
+auths.group_search_base_dn=Grupas meklēšanas pamata DN
+auths.group_filter=Group Filter
+auths.group_attribute_contain_user_list=Group Attribute Containing List of Users
+auths.user_attribute_listed_in_group=User Attribute Listed in Group
auths.attributes_in_bind=Nolasīt atribūtus no saistīšanas DN konteksta
auths.filter=Lietotāju filts
auths.admin_filter=Administratoru filtrs
@@ -1017,9 +1161,9 @@ auths.enable_tls=Iespējot TLS šifrēšanu
auths.skip_tls_verify=Izlaist TLS verifikāciju
auths.pam_service_name=PAM servisa nosaukums
auths.enable_auto_register=Iespējot automātisko reģistrāciju
-auths.tips=Padomi
auths.edit=Labot autentifikācijas iestatījumus
auths.activated=Autentifikācija ir aktivizēta
+auths.default_auth=This authentication is default login source
auths.new_success=Jauna autentifikācija '%s' tika veiksmīgi pievienota.
auths.update_success=Autentifikācijas iestatījumi tika veiksmīgi saglabāti.
auths.update=Mainīt autentifikācijas iestatījumus
@@ -1028,107 +1172,189 @@ auths.delete_auth_title=Autentifikācijas dzēšana
auths.delete_auth_desc=Šī autentifikācija tiks dzēsta, vai vēlaties turpināt?
auths.still_in_used=Daži lietotāji joprojām izmanto šo autentifikācijas veidu. Nepieciešams veikt šo lietotāju konvertāciju vai dzēšanu.
auths.deletion_success=Autentifikācija tika veiksmīgi izdzēsta!
+auths.login_source_exist=Pieteikšanās avots '%s' jau eksistē.
+auths.github_api_endpoint=API Endpoint
+config.not_set=(nav noteikts)
config.server_config=Servera konfigurācija
-config.app_name=Lietotnes nosaukums
-config.app_ver=Lietotnes versija
-config.app_url=Lietotnes URL
-config.domain=Domēns
-config.offline_mode=Bezsaistes režīms
-config.disable_router_log=Atspējot maršrutētāja žurnalizēšanu
+config.brand_name=Brand name
config.run_user=Izpildes lietotājs
config.run_mode=Izpildes režīms
-config.repo_root_path=Repozitoriju glabāšanas vieta
-config.static_file_root_path=Statisko failu atrašanās vieta
-config.log_file_root_path=Žurnalizēšanas failu glabāšanas vieta
-config.script_type=Skripta veids
-config.reverse_auth_user=Reversā lietotāja autentifikācija
+config.server.external_url=External URL
+config.server.domain=Domēns
+config.server.protocol=Protokols
+config.server.http_addr=HTTP adrese
+config.server.http_port=HTTP ports
+config.server.cert_file=Sertifikāta fails
+config.server.key_file=Privātais kriptogrāfijas atslēgas fails
+config.server.tls_min_version=Minimālā TLS versija
+config.server.unix_socket_permission=Unix socket permission
+config.server.local_root_url=Local root URL
+config.server.offline_mode=Offline mode
+config.server.disable_router_log=Disable router log
+config.server.enable_gzip=Iespējot Gzip
+config.server.app_data_path=Application data path
+config.server.load_assets_from_disk=Load assets from disk
+config.server.landing_url=Landing URL
config.ssh_config=SSH konfigurācija
-config.ssh_enabled=Iespējots
-config.ssh_start_builtin_server=Startēt iebūvēto serveri
-config.ssh_domain=Domēns
-config.ssh_port=Ports
-config.ssh_listen_port=Klausīšanās ports
-config.ssh_root_path=Saknes ceļš
-config.ssh_key_test_path=Atslēgu pārbaudes ceļš
-config.ssh_keygen_path=Keygen ('ssh-keygen') ceļš
-config.ssh_minimum_key_size_check=Minimālā atslēgas lieluma pārbaude
-config.ssh_minimum_key_sizes=Minimālais atslēgas lielums
+config.ssh.enabled=Iespējots
+config.ssh.domain=Exposed domain
+config.ssh.port=Exposed port
+config.ssh.root_path=Root path
+config.ssh.keygen_path=Keygen path
+config.ssh.key_test_path=Key test path
+config.ssh.minimum_key_size_check=Minimum key size check
+config.ssh.minimum_key_sizes=Minimum key sizes
+config.ssh.rewrite_authorized_keys_at_start=Rewrite "authorized_keys" at start
+config.ssh.start_builtin_server=Start builtin server
+config.ssh.listen_host=Listen host
+config.ssh.listen_port=Listen port
+config.ssh.server_ciphers=Server ciphers
+config.ssh.server_macs=Server MACs
+config.ssh.server_algorithms=Server algorithms
+
+config.repo_config=Repozitorija konfigurācija
+config.repo.root_path=Root path
+config.repo.script_type=Script type
+config.repo.ansi_chatset=ANSI charset
+config.repo.force_private=Force private
+config.repo.max_creation_limit=Max creation limit
+config.repo.preferred_licenses=Preferred licenses
+config.repo.disable_http_git=Disable HTTP Git
+config.repo.enable_local_path_migration=Enable local path migration
+config.repo.enable_raw_file_render_mode=Enable raw file render mode
+config.repo.commits_fetch_concurrency=Commits fetch concurrency
+config.repo.editor.line_wrap_extensions=Editor line wrap extensions
+config.repo.editor.previewable_file_modes=Editor previewable file modes
+config.repo.upload.enabled=Upload enabled
+config.repo.upload.temp_path=Upload temporary path
+config.repo.upload.allowed_types=Upload allowed types
+config.repo.upload.file_max_size=Upload file size limit
+config.repo.upload.max_files=Upload files limit
config.db_config=Datu bāzes konfigurācija
-config.db_type=Veids
-config.db_host=Resursdators
-config.db_name=Nosaukums
-config.db_user=Lietotājs
-config.db_ssl_mode=SSL režīms
-config.db_ssl_mode_helper=(tikai PostgreSQL datu bāzei)
-config.db_path=Ceļš
-config.db_path_helper=(priekš "sqlite3" and "tidb")
-
-config.service_config=Pakalpojuma konfigurācija
-config.register_email_confirm=Pieprasīt e-pasta apstiprināšanu
-config.disable_register=Atspējot jaunu lietotāju reģistrāciju
-config.show_registration_button=Rādīt reģistrēšanās pogu
-config.require_sign_in_view=Nepieciešama autorizācija
-config.mail_notify=Pasta paziņojumi
-config.disable_key_size_check=Atspējot atslēgas minimālā garuma pārbaudi
-config.enable_captcha=Iespējot drošības kodu
-config.active_code_lives=Aktīvā koda ilgums
-config.reset_password_code_lives=Paroles atiestatīšanas koda ilgums
+config.db.type=Tips
+config.db.host=Host
+config.db.name=Datubāzes nosaukums
+config.db.schema=Schema
+config.db.schema_helper=(for "postgres" only)
+config.db.user=Datubāzes lietotājs
+config.db.ssl_mode=SSL mode
+config.db.ssl_mode_helper=(for "postgres" only)
+config.db.path=Path
+config.db.path_helper=(for "sqlite3"only)
+config.db.max_open_conns=Maximum open connections
+config.db.max_idle_conns=Maximum idle connections
+
+config.security_config=Security configuration
+config.security.login_remember_days=Login remember days
+config.security.cookie_remember_name=Remember cookie
+config.security.cookie_username=Username cookie
+config.security.cookie_secure=Enable secure cookie
+config.security.reverse_proxy_auth_user=Reverse proxy authentication header
+config.security.enable_login_status_cookie=Enable login status cookie
+config.security.login_status_cookie_name=Login status cookie
+config.security.local_network_allowlist=Local network allowlist
+
+config.email_config=E-pasta iestatījumi
+config.email.enabled=Iespējots
+config.email.subject_prefix=Subject prefix
+config.email.host=Host
+config.email.from=Sūtītājs
+config.email.user=Lietotājs
+config.email.disable_helo=Disable HELO
+config.email.helo_hostname=HELO hostname
+config.email.skip_verify=Skip certificate verify
+config.email.use_certificate=Use custom certificate
+config.email.cert_file=Certificate file
+config.email.key_file=Key file
+config.email.use_plain_text=Use plain text
+config.email.add_plain_text_alt=Add plain text alternative
+config.email.send_test_mail=Nosūtīt pārbaudes e-pastu
+config.email.test_mail_failed=Failed to send test email to '%s': %v
+config.email.test_mail_sent=Test email has been sent to '%s'.
+
+config.auth_config=Authentication configuration
+config.auth_custom_logout_url=Custom logout URL
+config.auth.activate_code_lives=Activate code lives
+config.auth.reset_password_code_lives=Reset password code lives
+config.auth.require_email_confirm=Require email confirmation
+config.auth.require_sign_in_view=Require sign in view
+config.auth.disable_registration=Disable registration
+config.auth.enable_registration_captcha=Enable registration captcha
+config.auth.enable_reverse_proxy_authentication=Enable reverse proxy authentication
+config.auth.enable_reverse_proxy_auto_registration=Enable reverse proxy auto registration
+config.auth.reverse_proxy_authentication_header=Reverse proxy authentication header
+
+config.user_config=User configuration
+config.user.enable_email_notify=Enable email notification
-config.webhook_config=Tīkla āķu konfigurācija
-config.queue_length=Rindas garums
-config.deliver_timeout=Piegādes noildze
-config.skip_tls_verify=Izlaist TLS pārbaudi
-
-config.mailer_config=Sūtītāja konfigurācija
-config.mailer_enabled=Iespējots
-config.mailer_disable_helo=Atspējot HELO
-config.mailer_name=Nosaukums
-config.mailer_host=Resursdators
-config.mailer_user=Lietotājs
-config.send_test_mail=Nosūtīt pārbaudes e-pastu
-config.test_mail_failed=Neizdevās nosūtīt pārbaudes e-pasta vēstuli uz '%s': %v
-config.test_mail_sent=Pārbaudes e-pasta vēstule tika nosūtīta uz '%s'.
-
-config.oauth_config=OAuth konfigurācija
-config.oauth_enabled=Iespējota
+config.session_config=Sesijas konfigurācja
+config.session.provider=Provider
+config.session.provider_config=Provider config
+config.session.cookie_name=Cookie
+config.session.https_only=Tikai HTTPS
+config.session.gc_interval=GC interval
+config.session.max_life_time=Max life time
+config.session.csrf_cookie_name=CSRF cookie
config.cache_config=Kešatmiņas konfigurācija
-config.cache_adapter=Kešatmiņas adapteris
-config.cache_interval=Kešatmiņas intervāls
-config.cache_conn=Kešatmiņas pieslēguma parametri
-
-config.session_config=Sesijas konfigurācja
-config.session_provider=Sesijas nodrošinātājs
-config.provider_config=Pakalpojumu sniedzēja konfigurācija
-config.cookie_name=Sīkdatnes nosaukums
-config.enable_set_cookie=Ļaut izmantot sīkdatnes
-config.gc_interval_time=GC laika intervāls
-config.session_life_time=Sesijas ilgums
-config.https_only=Tikai HTTPS
-config.cookie_life_time=Sīkdatņu glabāšanas ilgums
+config.cache.adapter=Adapter
+config.cache.interval=GC interval
+config.cache.host=Host
+
+config.http_config=HTTP konfigurācija
+config.http.access_control_allow_origin=Access control allow origin
+
+config.attachment_config=Attachment configuration
+config.attachment.enabled=Iespējots
+config.attachment.path=Path
+config.attachment.allowed_types=Atļautie tipi
+config.attachment.max_size=Maksimālais izmērs
+config.attachment.max_files=Maksimālais failu skaits
+
+config.release_config=Release configuration
+config.release.attachment.enabled=Pielikums iespējots
+config.release.attachment.allowed_types=Atļautie pielikuma tipi
+config.release.attachment.max_size=Pielikuma maksimālais izmērs
+config.release.attachment.max_files=Maksimālais pielikuma failu skaits
config.picture_config=Attēlu konfigurācija
-config.picture_service=Lokāli attēli
-config.disable_gravatar=Atspējot Gravatar
-config.enable_federated_avatar=Iespējot apvienotās profila bildes
+config.picture.avatar_upload_path=User avatar upload path
+config.picture.repo_avatar_upload_path=Repository avatar upload path
+config.picture.gravatar_source=Gravatar source
+config.picture.disable_gravatar=Disable Gravatar
+config.picture.enable_federated_avatar=Enable federated avatars
+
+config.mirror_config=Mirror configuration
+config.mirror.default_interval=Noklusētais intervāls
+
+config.webhook_config=Tīkla āķu konfigurācija
+config.webhook.types=Types
+config.webhook.deliver_timeout=Deliver timeout
+config.webhook.skip_tls_verify=Skip TLS verify
config.git_config=Git konfigurācija
-config.git_disable_diff_highlight=Atspējot salīdzināšanas sintakses iekrāsošanu
-config.git_max_diff_lines=Maksimālais salīdzināmo rindu skaits vienam failam
-config.git_max_diff_line_characters=Maksimālais salīdzināmo simbolu skaits vienai rindai
-config.git_max_diff_files=Maksimālais salīdzināmo failu skaits, ko attēlot
-config.git_gc_args=GC argumenti
-config.git_migrate_timeout=Migrācijas noilgums
-config.git_mirror_timeout=Spoguļa atjaunošanas noilgums
-config.git_clone_timeout=Klonēšanas darbības noilgums
-config.git_pull_timeout=Izmaiņu saņemšanas darbības noilgums
-config.git_gc_timeout=GC darbības noilgums
+config.git.disable_diff_highlight=Disable diff syntax highlight
+config.git.max_diff_lines=Diff lines limit (for a single file)
+config.git.max_diff_line_characters=Diff characters limit (for a single line)
+config.git.max_diff_files=Diff files limit (for a single diff)
+config.git.gc_args=GC arguments
+config.git.migrate_timeout=Migration timeout
+config.git.mirror_timeout=Mirror fetch timeout
+config.git.clone_timeout=Clone timeout
+config.git.pull_timeout=Pull timeout
+config.git.gc_timeout=GC timeout
+
+config.lfs_config=LFS configuration
+config.lfs.storage=Storage
+config.lfs.objects_path=Objects path
config.log_config=Žurnalizēšanas konfigurācija
-config.log_mode=Žurnalizēšanas veids
+config.log_file_root_path=Žurnalizēšanas failu glabāšanas vieta
+config.log_mode=Režīms
+config.log_options=Opcijas
monitor.cron=Cron uzdevumi
monitor.name=Nosaukums
@@ -1159,17 +1385,24 @@ notices.delete_success=Sistēmas paziņojumi tika veiksmīgi izdzēstas.
create_repo=izveidoja repozitoriju %s
rename_repo=pārsauca repozitoriju no %[1]s uz %[3]s
commit_repo=veica izmaiņu nosūtīšanu atzaram %[3]s repozitorijā %[4]s
+compare_commits=Salīdzināt šīs %d revīzijas
+transfer_repo=mainīja repozitorija %s īpašnieku uz %s
create_issue=`reģistrēja problēmu %s#%[2]s`
close_issue=`slēdza problēmu %s#%[2]s`
reopen_issue=`atkārtoti atvēra problēmu %s#%[2]s`
+comment_issue=`pievienoja komentāru problēmai %s#%[2]s`
create_pull_request=`izveidoja izmaiņu pieprasījumu %s#%[2]s`
close_pull_request=`aizvēra izmaiņu pieprasījumu %s#%[2]s`
reopen_pull_request=`atkārtoti atvēra izmaiņu pieprasījumu %s#%[2]s`
-comment_issue=`pievienoja komentāru problēmai %s#%[2]s`
merge_pull_request=`sapludināja izmaiņu pieprasījumu %s#%[2]s`
-transfer_repo=mainīja repozitorija %s īpašnieku uz %s
+create_branch=izveidoja jaunu atzaru %[3]s repozitorijā %[4]s
+delete_branch=izdzēsa atzaru %[2]s repozitorijā %[3]s
push_tag=pievienoja tagu %[2]s repozitorijam %[3]s
-compare_commits=Salīdzināt šīs %d revīzijas
+delete_tag=izdzēsa tagu %[2]s repozitorijā %[3]s
+fork_repo=atdalīja repozitoriju uz %s
+mirror_sync_push=synced commits to %[3]s at %[4]s from mirror
+mirror_sync_create=synced new reference %[2]s to %[3]s from mirror
+mirror_sync_delete=synced and deleted reference %[2]s at %[3]s from mirror
[tool]
ago=atpakaļ
@@ -1191,6 +1424,7 @@ months=%d mēneši %s
years=%d gadi %s
raw_seconds=sekundes
raw_minutes=minūtes
+raw_hours=hours
[dropzone]
default_message=Ievelciet failus šeit vai noklikšķiniet, lai augšupielādētu.
diff --git a/conf/locale/locale_mn-MN.ini b/conf/locale/locale_mn-MN.ini
new file mode 100644
index 00000000000..5defd608003
--- /dev/null
+++ b/conf/locale/locale_mn-MN.ini
@@ -0,0 +1,1434 @@
+app_desc=Хамгийн хялбар GIT үйлчилгээ
+
+home=Эхлэл
+dashboard=Удирдлага
+explore=Бүгдийг харах
+help=Тусламж
+sign_in=Нэвтрэх
+sign_out=Гарах
+sign_up=Бүртгүүлэх
+register=Бүртгүүлэх
+website=Вэбсайт
+page=Хуудас
+template=Загвар
+language=Хэл
+create_new=Шинээр нэмэх...
+user_profile_and_more=Хэрэглэгчийн профайл болон бусад
+signed_in_as=Нэвтэрсэн хэрэглэгч
+
+username=Нэвтрэх нэр
+email=Имэйл
+password=Нууц үг
+re_type=Дахин бичих
+captcha=Батлах тэмдэгт
+
+repository=Репо
+organization=Байгууллага
+mirror=Хуулбарлах
+new_repo=Шинэ Репо
+new_migrate=Шинэ
+new_mirror=Шинэ хуулбар
+new_fork=Шинэ Репо Салаалах
+new_org=Шинэ Байгууллага
+manage_org=Байгууллага удирдах
+admin_panel=Админ удирдлага
+account_settings=Дансны тохиргоо
+settings=Тохиргоо
+your_profile=Таны профайл
+your_settings=Таны тохиргоо
+
+activities=Үйлдлүүд
+pull_requests=Татаж авах хүсэлтүүд
+issues=Асуудал
+
+cancel=Болих
+
+[status]
+page_not_found=Хуудас олдсонгүй
+internal_server_error=Сервертэй холбогдоход алдаа гарлаа.
+
+[install]
+install=Суулгах
+title=Install Steps For First-time Run
+docker_helper=If you're running Gogs inside Docker, please read Guidelines carefully before you change anything in this page!
+requite_db_desc=Gogs requires MySQL, PostgreSQL, SQLite3 or TiDB (via MySQL protocol).
+db_title=Database Settings
+db_type=Database Type
+host=Host
+user=User
+password=Password
+db_name=Database Name
+db_schema=Schema
+db_helper=Please use INNODB engine with utf8_general_ci charset for MySQL.
+ssl_mode=SSL Mode
+path=Path
+sqlite_helper=The file path of SQLite3 database. Please use absolute path when you start as service.
+err_empty_db_path=SQLite3 database path cannot be empty.
+no_admin_and_disable_registration=You cannot disable registration without creating an admin account.
+err_empty_admin_password=Admin password cannot be empty.
+
+general_title=Application General Settings
+app_name=Application Name
+app_name_helper=Put your organization name here huge and loud!
+repo_path=Repository Root Path
+repo_path_helper=All Git remote repositories will be saved to this directory.
+run_user=Run User
+run_user_helper=The user must have access to Repository Root Path and run Gogs.
+domain=Domain
+domain_helper=This affects SSH clone URLs.
+ssh_port=SSH Port
+ssh_port_helper=Port number which your SSH server is using, leave it empty to disable SSH feature.
+use_builtin_ssh_server=Use Builtin SSH Server
+use_builtin_ssh_server_popup=Start builtin SSH server for Git operations to distinguish from system SSH daemon.
+http_port=HTTP Port
+http_port_helper=Port number which application will listen on.
+app_url=Application URL
+app_url_helper=This affects HTTP/HTTPS clone URL and somewhere in email.
+log_root_path=Log Path
+log_root_path_helper=Directory to write log files to.
+enable_console_mode=Enable Console Mode
+enable_console_mode_popup=In addition to file mode, also print logs to console.
+default_branch=Default Branch
+
+optional_title=Optional Settings
+email_title=Email Service Settings
+smtp_host=SMTP Host
+smtp_from=From
+smtp_from_helper=Mail from address, RFC 5322. It can be just an email address, or the "Name" format.
+mailer_user=Sender Email
+mailer_password=Sender Password
+register_confirm=Enable Register Confirmation
+mail_notify=Enable Mail Notification
+server_service_title=Server and Other Services Settings
+offline_mode=Enable Offline Mode
+offline_mode_popup=Disable CDN even in production mode, all resource files will be served locally.
+disable_gravatar=Disable Gravatar Service
+disable_gravatar_popup=Disable Gravatar and custom sources, all avatars are uploaded by users or default.
+federated_avatar_lookup=Enable Federated Avatars Lookup
+federated_avatar_lookup_popup=Enable federated avatars lookup to use federated open source service based on libravatar.
+disable_registration=Disable Self-registration
+disable_registration_popup=Disable user self-registration, only admin can create accounts.
+enable_captcha=Enable Captcha
+enable_captcha_popup=Require validate captcha for user self-registration.
+require_sign_in_view=Enable Require Sign In to View Pages
+require_sign_in_view_popup=Only signed in users can view pages, visitors will only be able to see sign in/up pages.
+admin_setting_desc=You don't need to create an admin account right now. The first user in the users table will be automatically granted admin access.
+admin_title=Admin Account Settings
+admin_name=Username
+admin_password=Password
+confirm_password=Confirm Password
+admin_email=Admin Email
+install_gogs=Install Gogs
+test_git_failed=Failed to test 'git' command: %v
+sqlite3_not_available=Your release version does not support SQLite3, please download the official binary version from %s, NOT the gobuild version.
+invalid_db_setting=Database setting is not correct: %v
+invalid_repo_path=Repository root path is invalid: %v
+run_user_not_match=Run user isn't the current user: %s -> %s
+smtp_host_missing_port=SMTP Host port missing from address.
+invalid_smtp_from=SMTP From field is invalid: %v
+save_config_failed=Failed to save configuration: %v
+init_failed=Failed to initialize application: %v
+invalid_admin_setting=Admin account setting is invalid: %v
+install_success=Welcome! We're glad that you chose Gogs, have fun and take care.
+invalid_log_root_path=Log root path is invalid: %v
+
+[home]
+uname_holder=Нэвтрэх нэр эсвэл имэйл
+password_holder=Нууц үг
+switch_dashboard_context=Удирдлагын сайт руу шилжих
+my_repos=Миний Репонууд
+show_more_repos=Бусад Репонуудыг харах...
+collaborative_repos=Дундын Репонууд
+my_orgs=Миний Байгууллага
+my_mirrors=Миний Хуулбарууд
+view_home=Харах %s
+
+issues.in_your_repos=Таны Репо-д
+
+[explore]
+repos=Репонууд
+users=Хэрэглэгчид
+organizations=Байгууллагууд
+search=Хайлт
+
+[auth]
+create_new_account=Шинэ данс үүсгэх
+register_hepler_msg=Та хэрэглэгчийн эрхээ үүсгэсэн бол Нэвтрэх хуудас руу шилжих!
+social_register_hepler_msg=Данс үүсгэсэн бол? Нэвтрэх хуудас руу шилжих!
+disable_register_prompt=Уучлаарай, бүртгэл идэвхгүй байна. Сайтын админтай холбоо барина уу.
+disable_register_mail=Уучлаарай, имэйлийн үйлчилгээ идэвхгүй байна. Сайтын админтай холбоо барина уу.
+auth_source=Баталгаажуулалтын эх сурвалж
+local=Локал
+remember_me=Сануулах
+forgot_password=Нууц үг сэргээх
+forget_password=Нууц үг сэргээх?
+sign_up_now=Данс үүсгэх бол? Одоо бүртгүүлнэ үү.
+confirmation_mail_sent_prompt=Таны %s хаяг руу баталгаажуулах имэйл илгээлээ, та %d цагийн дотор имэйлээ шалгаж баталгаажуулна уу.
+active_your_account=Дансаа идэвхижүүлэх
+prohibit_login=Нэвтрэх эрх түгжигдсэн
+prohibit_login_desc=Таны нэвтрэх эрх түгжигдсэн. Сайтын админтай холбоо барина уу.
+resent_limit_prompt=Уучлаарай, та саяхан данс идэвхжүүлэх хүсэлт илгээсэн байна. 3 минут хүлээгээд дахин оролдоно уу.
+has_unconfirmed_mail=Сайн байна уу %s, таны (%s) имэйл хаяг баталгаажаагүй байна. Хэрэв танд баталгаажуулах имэйл ирээгүй эсвэл шинээр баталгаажуулах имэйл авах шаардлагатай бол доорх товчийг дарна уу.
+resend_mail=Баталгаажуулах имэйлээ дахин илгээх бол энд дарна уу
+send_reset_mail=Нууц үгээ шинэчлэх имэйлийг (дахин) илгээх бол энд дарна уу
+reset_password=Нууц үгээ сэргээх
+invalid_code=Уучлаарай, таны баталгаажуулах кодын хугацаа дууссан эсвэл хүчин төгөлдөр бус байна.
+reset_password_helper=Нууц үгээ шинэчлэх бол энд дарна уу
+password_too_short=Нууц үгийн урт нь дор хаяж 6 тэмдэгт байх ёстой.
+non_local_account=Гадаад хэрэглэгчид нууц үгээ солих боломжгүй.
+
+login_two_factor=2 давхар баталгаажуулалт
+login_two_factor_passcode=Баталгаажуулалтын нууц код
+login_two_factor_enter_recovery_code=2 давхар баталгаажуулалтын дахин сэргээх код оруулах
+login_two_factor_recovery=2 давхар баталгаажуулалтын код сэргээх
+login_two_factor_recovery_code=Сэргээх код
+login_two_factor_enter_passcode=2 давхар баталгаажуулалтын нууц үгээ оруулна уу
+login_two_factor_invalid_recovery_code=Сэргээх код өмнө нь ашиглагдсан эсвэл хүчингүй байна.
+
+[mail]
+activate_account=Бүртгэлээ идэвхжүүлнэ үү
+activate_email=Имэйл хаягаа баталгаажуулна уу
+reset_password=Нууц үгээ дахин сэргээх
+register_success=Бүртгэл амжилттай боллоо, тавтай морилно уу
+register_notify=Манай системд тавтай морилно уу
+
+[modal]
+yes=Тийм
+no=Үгүй
+modify=Засах
+
+[form]
+UserName=Нэвтрэн нэр
+RepoName=Репо нэр
+Email=Имэйл хаяг
+Password=Нууц үг
+Retype=Дахин оруулна уу
+SSHTitle=SSH түлхүүрийн нэр
+HttpsUrl=HTTPS хаяг
+PayloadUrl=Payload хаяг
+TeamName=Багийн нэр
+AuthName=Зөвшөөрлийн нэр
+AdminEmail=Админы имэйл
+
+NewBranchName=Шинэ салаа нэр
+CommitSummary=Коммит мэдээлэл
+CommitMessage=Коммит мессеж
+CommitChoice=Коммит сонголт
+TreeName=Файлын зам
+Content=Агуулга
+
+require_error=` талбарын оруулна уу.`
+alpha_dash_error=` үсэг, тоо эсвэл зураас (-_) агуулсан тэмдэгтүүд оруулна уу.`
+alpha_dash_dot_error=` үсэг, тоо, зураас (-_) эсвэл цэг агуулсан тэмдэгтүүд оруулна уу.`
+alpha_dash_dot_slash_error=` үсэг, тоо, зураас (-_), цэг эсвэл налуу зураас агуулсан тэмдэгтүүд оруулна уу.`
+size_error=` талбар нь %s тэмдэгтийн уртай байна.`
+min_size_error=` талбар нь хамгийн багадаа %s тэмдэгтийн уртай байна.`
+max_size_error=` талбар нь хамгийн ихдээ %s тэмдэгтийн уртай байна.`
+email_error=` буруу имэйл хаяг оруулсан байна.`
+url_error=` буруу URL оруулсан байна.`
+include_error=` талбар '%s' тэмдэгт заавал оруулах ёстой.`
+unknown_error=Үл мэдэгдэх алдаа:
+captcha_incorrect=Батлах тэмдэгт буруу байна.
+password_not_match=Нууц үг болон дахин оруулсан нууц үг тохирохгүй байна.
+
+username_been_taken=Нэвтрэх нэр аль хэдийн бүртгэгдсэн байна. Өөр нэр сонгоно уу.
+repo_name_been_taken=Репо нэр аль хэдийн бүртгэгдсэн байна. Өөр нэр сонгоно уу.
+org_name_been_taken=Байгууллагын нэр аль хэдийн бүртгэгдсэн байна. Өөр нэр сонгоно уу.
+team_name_been_taken=Багийн нэр аль хэдийн бүртгэгдсэн байна. Өөр нэр сонгоно уу.
+email_been_used=Имэйл хаяг аль хэдийн бүртгэгдсэн байна. Өөр нэр сонгоно уу.
+username_password_incorrect=Хэрэглэгчийн нэр эсвэл нууц үг буруу байна.
+auth_source_mismatch=Сонгосон танил нэвтрэлтийн эх сурвалж нь хэрэглэгчтэй холбоогүй болно.
+enterred_invalid_repo_name=Таны оруулсан Репо нэр зөв эсэхийг шалгана уу.
+enterred_invalid_owner_name=Таны оруулсан эзэмшигчийн нэр зөв эсэхийг шалгана уу.
+enterred_invalid_password=Таны оруулсан нууц үг зөв эсэхийг шалгана уу.
+user_not_exist=Оруулсан хэрэглэгч олдохгүй байна.
+last_org_owner=Байгууллага багадаа нэг хэрэглэгчтэй байх ёстой тул сүүлийн хэрэглэгчийг хасах боломжгүй.
+
+invalid_ssh_key=Уучлаарай, таны SSH түлхүүрийг баталгаажуулж чадсангүй: %s
+unable_verify_ssh_key=Сервер таны SSH түлхүүрийг баталгаажуулах боломжгүй байна, гэхдээ энэ түлхүүр хүчин төгөлдөр байх ёстой. Та дахин нягтална уу.
+auth_failed=Баталгаажуулалт амжилтгүй боллоо: %v
+
+still_own_repo=Таны данс аль нэг Репо эзэмшиж байгаа тул та тэдгээрийг устгах эсвэл шилжүүлэх хэрэгтэй.
+still_has_org=Таны данс аль нэг байгууллагын гишүүнчлэлтэй байгаа тул та эхлээд байгууллагаас гарах эсвэл гишүүнчлэлээсээ устгах хэрэгтэй.
+org_still_own_repo=Энэ байгууллага нь аль нэг Репо эзэмшиж байгаа тул та эхлээд устгах эсвэл шилжүүлэх ёстой.
+
+target_branch_not_exist=Сонгосон салаа олдохгүй байна.
+
+[user]
+change_avatar=Өөрийн зургаа солих
+join_on=Бүртгүүлсэн
+repositories=Репонууд
+activity=Олон нийтийн үйл ажиллагаа
+followers=Дагагчид
+starred=Тэмдэглэсэн Репонууд
+following=Дагасан
+follow=Дагах
+unfollow=Дагахаа болих
+
+form.name_not_allowed=%q нэвтрэх нэр эсвэл загвар зөвшөөрөгдөхгүй байна.
+
+[settings]
+profile=Профайл
+password=Нууц үг
+avatar=Зураг
+ssh_keys=SSH түлхүүрүүд
+security=Нууцлал
+repos=Репонууд
+orgs=Байгууллагууд
+applications=Аппликэшнүүл
+delete=Данс устгах
+
+public_profile=Профайл
+profile_desc=Таны имэйл хаяг олон нийтэд нээлттэй тул данстай холбоотой аливаа мэдэгдэл, сайтаар дамжуулан вэбэд суурилсан аливаа үйл ажиллагаанд ашиглагдах болно.
+password_username_disabled=Гадаад хэрэглэгчид Нэвтрэх нэрээ өөрчлөх боломжгүй.
+full_name=Бүтэн нэр
+website=Вэбсайт
+location=Байршил
+update_profile=Профайл өөрчлөх
+update_profile_success=Таны профайл амжилттай өөрчлөгдлөө.
+change_username=Нэвтрэх нэр өөрчлөгдсөн
+change_username_prompt=Энэ өөрчлөлт нь таны данстай холбоотой мэдээллүүд дээр нөлөөлнө.
+continue=Үргэлжлүүлэх
+cancel=Болих
+
+lookup_avatar_by_mail=Имэйл хайгаар зураг хайх
+federated_avatar_lookup=Нээлттэй зураг хайх
+enable_custom_avatar=Өөрийн зурагаа оруулах
+choose_new_avatar=Шинэ зураг сонгох
+update_avatar=Зургийн тохиргоо өөрчлөх
+delete_current_avatar=Одоогийн зураг устгах
+uploaded_avatar_not_a_image=Хуулсан файл зураг биш байна.
+update_avatar_success=Таны зургийн тохиргоо амжилттай өөрчлөгдлөө.
+
+change_password=Нууц үг солих
+old_password=Одоогийн нууц үг
+new_password=Шинэ нууц үг
+retype_new_password=Шинэ нууц үг давтах
+password_incorrect=Одоогийн нууц үгээ буруу оруулсан байна.
+change_password_success=Таны нууц үг амжилттай өөрчлөгдсөн тул нэвтрэхэд ашиглаж болно.
+password_change_disabled=Гадаад хэрэглэгчид нууц үгээ өөрчлөж болохгүй.
+
+emails=Имэйл хаягууд
+manage_emails=Имэйл хаягуудыг удирдах
+email_desc=Таны үндсэн имэйл хаягийг мэдэгдэл болон бусад үйл ажиллагаанд ашиглах болно.
+primary=Үндсэн
+primary_email=Үндсэн болгох
+delete_email=Устгах
+email_deletion=Имэйл устгах
+email_deletion_desc=Энэ имэйл хаягийг устгаснаар холбогдох мэдээллийг таны данснаас устгах болно. Та үргэлжлүүлэхийг хүсч байна уу?
+email_deletion_success=Имэйлийг амжилттай устгалаа!
+email_deletion_primary=Cannot delete primary email address.
+add_new_email=Шинэ имэйл хаяг нэмэх
+add_email=Имэйл нэмэх
+add_email_confirmation_sent=Шинэ баталгаажуулах имэйлийг '%s' хаяг руу илгээлээ. Баталгаажуулах процессыг дуусгахын тулд имэйл нээж дараагийн %d цагийн дотор баталгаажуулна уу.
+add_email_success=Таны шинэ имэйл хаяг амжилттай нэмэгдлээ.
+
+manage_ssh_keys=SSH түлхүүрүүдийг удирдах
+add_key=Түлхүүр нэмэх
+ssh_desc=Энэ бол таны данстай холбоотой SSH түлхүүрүүдийн жагсаалт юм. Эдгээр түлхүүрүүд нь эдгээрийг ашиглаж байгаа бүх хүмүүст таны агуулахад нэвтрэх боломжийг олгодог тул та эдгээрийг найдвартай хадгалах нь маш чухал юм.
+ssh_helper=Яаж үүсгэхээ мэдэхгүй байна уу? Та SSH түлхүүр үүсгэхтэй холбоотой GitHub-ийн SSH түлхүүр үүсгэх зааврыг харах эсвэл нийтлэг гардаг асуудлуудыг шийдэх.
+add_new_key=SSH түлхүүр нэмэх
+ssh_key_been_used=Нийтийн түлхүүрийн утга бүртгэгдсэн байна.
+ssh_key_name_used=Ижил нэртэй нийтийн түлхүүр бүртгэгдсэн байна.
+key_name=Түлхүүрийн нэр
+key_content=Утга
+add_key_success=Шинэ SSH түлхүүр '%s' амжилттай нэмэгдлээ!
+delete_key=Устгах
+ssh_key_deletion=SSH түлхүүр Устгах
+ssh_key_deletion_desc=Энэ SSH түлхүүрийг устгаснаар таны бүртгэлд холбогдох бүх хандалт устах болно. Та үргэлжлүүлэхийг хүсч байна уу?
+ssh_key_deletion_success=SSH түлхүүрийг амжилттай устгалаа!
+add_on=Нэмэгдсэн
+last_used=Сүүлд ашигласан
+no_activity=Ашиглалтын мэдээлэл бүртгэгдээгүй байна.
+key_state_desc=Энэ түлхүүрийг сүүлийн 7 хоногт ашиглагдсан байна
+token_state_desc=Энэхүү токен сүүлийн 7 хоногт ашиглагдсан байна
+
+two_factor=2 давхар танилт
+two_factor_status=Төлөв:
+two_factor_on=Идэвхитэй
+two_factor_off=Идэвхигүй
+two_factor_enable=Идэвхижүүлэх
+two_factor_disable=Идэвхигүй болгох
+two_factor_view_recovery_codes=Та өөрийн сэргээх кодуудаа найдвартай хадгалах хэрэгтэй. Хэрэв та системд нэвтрэх эрхээ алдсан бол тэдгээрийг нууц код болгон ашиглаж болно.
+two_factor_http=HTTP/HTTPS үйлдлийн хувьд та энгийн хэрэглэгчийн нэр нууц үг ашиглах боломжгүй. Та Хувийн хандах токен үүсгэж ашиглана уу. %[3]s.
+two_factor_enable_title=2 давхар танилт идэвхжүүлэх
+two_factor_scan_qr=Өөрийн танилтын аппликэшнээ ашиглаж зургийг скан хийнэ үү:
+two_factor_or_enter_secret=Эсвэл нууц үгээ оруулна уу:
+two_factor_then_enter_passcode=Дараа нь нууц кодоо оруулна уу:
+two_factor_verify=Баталгаажуулах
+two_factor_invalid_passcode=Таны оруулсан нууц код буруу байна, дахин оролдоно уу!
+two_factor_reused_passcode=Таны оруулсан нууц код аль хэдийн ашиглагдсан байна, өөр код оруулна уу!
+two_factor_enable_error=Хоёр давхар баталгаажуулалтыг идэвхжүүлж чадсангүй: %v
+two_factor_enable_success=Хоёр давхар баталгаажуулалтыг амжилттай идэвхижүүллээ!
+two_factor_recovery_codes_title=Хоёр давхар баталгаажуулалтын сэргээх кодууд
+two_factor_recovery_codes_desc=Таныг баталгаажуулах програмд нэвтрэх эрхээ алдах үед сэргээх кодыг ашигладаг. Сэргээх код бүрийг зөвхөн нэг удаа ашиглаж болно, эдгээр кодыг найдвартай хадгална уу.
+two_factor_regenerate_recovery_codes=Сэргээх кодуудыг дахин үүсгэх
+two_factor_regenerate_recovery_codes_error=Сэргээх кодуудыг дахин үүсгэхэд алдаа гарлаа: %v
+two_factor_regenerate_recovery_codes_success=Сэргээх кодуудыг амжилттай үүсгэлээ!
+two_factor_disable_title=Хоёр давхар баталгаажуулалтыг идэвхигүй болгох
+two_factor_disable_desc=Хоёр давхар баталгаажуулалтыг идэвхгүй болгосны дараа таны дансны аюулгүй байдлын түвшин буурах болно. Та үргэлжлүүлэхийг хүсч байна уу?
+two_factor_disable_success=Хоёр давхар баталгаажуулалтыг амжилттай идэвхигүй болголоо!
+
+manage_access_token=Хувийн хандалтын токенуудыг удирдах
+generate_new_token=Шинэ токен үүсгэх
+tokens_desc=Таны үүсгэсэн токенуудыг Gogs API-д нэвтрэхэд ашиглаж болно.
+access_token_tips=The personal access token may be used as either username or password. It is recommended to use the "x-access-token" as the username and the personal access token as the password for Git applications.
+new_token_desc=Токен бүр таны дансанд бүрэн нэвтрэх боломжтой болно.
+token_name=Токены нэр
+generate_token=Токены үүсгэх
+generate_token_succees=Таны хандалтын токен амжилттай үүслээ! Дараа дахин харах боломжгүй тул яг одоо хуулж аваарай!
+delete_token=Устгах
+access_token_deletion=Хувийн хандалтын токен устгах
+access_token_deletion_desc=Энэхүү хувийн хандалтын токеныг устгаснаар програмын холбогдох бүх хандалтыг устгах болно. Та үргэлжлүүлэхийг хүсч байна уу?
+delete_token_success=Хувийн хандалтын токеныг амжилттай устгалаа! Програмаа шинэчлэхийг бүү мартаарай.
+token_name_exists=Токентой ижил нэр бүртгэгдсэн байна.
+
+orgs.none=Та ямар ч байгууллагын гишүүн биш байна.
+orgs.leave_title=Байгууллагаас гарах
+orgs.leave_desc=Байгууллагаас гарсны дараа та бүх Репо, багуудад хандах эрхээ алдах болно. Та үргэлжлүүлэхийг хүсч байна уу?
+
+repos.leave=Гарах
+repos.leave_title=Репо-с гарах
+repos.leave_desc=Та гарсны дараа Репо руу нэвтрэх эрхээ алдах болно. Та үргэлжлүүлэхийг хүсч байна уу?
+repos.leave_success=Та '%s' Репо-с амжилттай гарлаа!
+
+delete_account=Бүртгэлээ устгах
+delete_prompt=Энэ ажиллагаа нь таны акаунтыг бүр мөсөн устгах бөгөөд ЭРГЭН СЭРГЭЭХ боломжгүй болно!
+confirm_delete_account=Устгалтыг баталгаажуулна уу
+delete_account_title=Данс устгах
+delete_account_desc=Энэ акаунтыг бүр мөсөн устгах гэж байна, та үргэлжлүүлэхийг хүсч байна уу?
+
+[repo]
+owner=Эзэмшигч
+repo_name=Репо нэр
+repo_name_helper=Сайн Репо нэр нь ихэвчлэн богино, мартагдашгүй, өвөрмөц түлхүүр үгсээс бүрддэг.
+visibility=Харагдах байдал
+unlisted=Unlisted
+visiblity_helper=Энэ Репо нь Хувийн
+unlisted_helper=This repository is Unlisted
+visiblity_helper_forced=Сайтын админ бүх Репо Хувийн байх тохируулга хийсэн байна.
+visiblity_fork_helper=(Энэ утгыг өөрчлөх нь бүх салаалсан хувилбарт нөлөөлнө)
+clone_helper=Хуулж авахад тусламж хэрэгтэй байна уу? Тусламж цэсэнд зочилно уу!
+fork_repo=Репо салаалах
+fork_from=Аль Репо-с салаалах
+fork_visiblity_helper=Та салаалсан Репо-ын харагдах байдлыг өөрчлөх боломжгүй.
+repo_desc=Тодорхойлолт
+repo_lang=Хэл
+repo_gitignore_helper=.gitignore загварыг сонгох
+license=Лиценз
+license_helper=Лицензийн файлыг сонгоно уу
+readme=Заавар
+readme_helper=Зааврын загварыг сонгоно уу
+auto_init=Энэ Репо-н сонгосон файл, загвараар эхлүүлнэ үү
+create_repo=Репо үүсгэх
+default_branch=Анхны салаа хувилбар
+mirror_prune=Цэвэрлэх
+mirror_prune_desc=Алсаас хянадаг нөөцүүдийг устгах
+mirror_interval=Хуулбарлах интервал (цаг)
+mirror_address=Хуулбарлах хаяг
+mirror_address_desc=Хэрэглэгчийн шаардлагатай мэдээллийг хаягт оруулна уу.
+mirror_last_synced=Сүүлд синк хийсэн
+watchers=Үзэх жагсаалтад нэмсэн хэрэглэгчид
+stargazers=Онцлох жагсаалтад нэмсэн хэрэглэгчид
+forks=Салаанууд
+repo_description_helper=Репо тодорхойлолт. Ихдээ 512 тэмдэгтийн урттай.
+repo_description_length=Боломжтой тэмдэгтүүд
+
+form.reach_limit_of_creation=Эзэмшигч нь Репо үүсгэх %d дээд хязгаарт хүрсэн байна.
+form.name_not_allowed=%q Репо нэр эсвэл загвар зөвшөөрөгдөхгүй байна.
+
+need_auth=Зөвшөөрөл хэрэгтэй
+migrate_type=Шилжүүлэх төрөл
+migrate_type_helper=Энэ Репо нь толин хуулбар болно.
+migrate_repo=Репо шилжүүлэх
+migrate.clone_address=Хуулбарлах хаяг
+migrate.clone_address_desc=HTTP/HTTPS/GIT хаяг байж болно.
+migrate.clone_address_desc_import_local=Та мөн Репо-г дотоод серверийн замаар шилжүүлэхийг зөвшөөрдөг.
+migrate.permission_denied=Орон дотоод Репо-г импортлох боломжгүй байна.
+migrate.invalid_local_path=Дотоод зам буруу байна, энэ хаяг дээр үүсээгүй эсвэл дирекдор биш байна.
+migrate.clone_address_resolved_to_blocked_local_address=Clone address resolved to a local network address that is implicitly blocked.
+migrate.failed=Шилжүүлэлт амжилтгүй боллоо: %v
+
+mirror_from=-ын хуулбар
+forked_from=-с салаалсан
+copy_link=Хуулах
+copy_link_success=Хуулсан!
+copy_link_error=⌘-C эсвэл Ctrl-C дарж хуулна
+copied=Амжилттай хууллаа
+unwatch=Үзэх жагсаалтаас хасах
+watch=Үзэх жагсаалтад нэмэх
+unstar=Онцлох жагсаалтаас хасах
+star=Онцлох жагсаалтад нэмэх
+fork=Салаа
+
+no_desc=Тайлбар байхгүй
+quick_guide=Товч гарын авлага
+clone_this_repo=Энэ Репо-г хуулах
+create_new_repo_command=Шинэ Репо command line-р үүсгэх
+push_exist_repo=Өмнө үүссэн Репо руу command line-р хуулах
+bare_message=Энэ Репо-д одоогоор ямар нэг мэдээлэл алга байна.
+
+files=Файлууд
+branch=Салаа
+tree=Мод
+filter_branch_and_tag=Салаа болон тагаар хайх
+branches=Салаанууд
+tags=Тагууд
+issues=Асуудлууд
+pulls=Хуулах хүсэлтүүд
+labels=Шошгууд
+milestones=Чухал үйл явдлууд
+commits=Коммитууд
+git_branches=Салаанууд
+releases=Хувилбарууд
+file_raw=Анхны өгөгдөл
+file_history=Түүх
+file_view_raw=Анхны өгөгдөл харах
+file_permalink=Байнгын холболт
+file_too_large=Энэ файлыг харуулахад хэтэрхий том байна
+video_not_supported_in_browser=Таны хөтөч HTML5 видео тагыг дэмждэггүй.
+
+branches.overview=Товч мэдээлэл
+branches.active_branches=Идэвхтэй салаанууд
+branches.stale_branches=Хуучирсан салаанууд
+branches.all=Бүх салаанууд
+branches.updated_by=Шинэчлэгдсэн %[1]s by %[2]s
+branches.change_default_branch=Анхны салаа өөрчлөх
+branches.default_deletion_not_allowed=Cannot delete the default branch.
+branches.protected_deletion_not_allowed=Cannot delete a protected branch.
+
+editor.new_file=Шинэ файл
+editor.upload_file=Файл хуулах
+editor.edit_file=Файл засах
+editor.preview_changes=Өөрчлөлтийг урьдчилан харах
+editor.cannot_edit_non_text_files=Текстэн бус файлуудыг засах боломжгүй
+editor.edit_this_file=Энэ файлыг засах
+editor.must_be_on_a_branch=Энэ файлд өөрчлөлт оруулах эсвэл санал болгохын тулд та тус салаан дээр байх ёстой
+editor.fork_before_edit=Файлыг засахаасаа өмнө та энэ Репо-г салаалах хэрэгтэй
+editor.delete_this_file=Энэ файлыг устгах
+editor.must_have_write_access=Энэ файлд өөрчлөлт оруулах эсвэл санал болгохын тулд танд бичих хандалттай байх ёстой
+editor.file_delete_success='%s' файлыг амжилттай устгалаа!
+editor.name_your_file=Файлын нэр ...
+editor.filename_help=Директор нэмэхийн тулд, нэрээ бичээд / дарна уу. Директор устгахын тулд, талбарын эхэнд очоод backspace товчийг дарна уу.
+editor.or=эсвэл
+editor.cancel_lower=болих
+editor.commit_changes=Өөрчлөлтийг хадгалах
+editor.add_tmpl='%s/<Файлын нэр>' нэмэх
+editor.add=Нэмэх '%s'
+editor.update=Өөрчлөх '%s'
+editor.delete=Устгах '%s'
+editor.commit_message_desc=Нэмэлт өргөтгөсөн тайлбар нэмэх...
+editor.commit_directly_to_this_branch=%s хувилбар луу шууд өөрчлөлтийг хадгалах.
+editor.create_new_branch=Энэ коммитоор шинэ хувилбар үүсгэж татаж авах хүсэлт үүсгэх.
+editor.new_branch_name_desc=Шинэ хувилбарын нэр...
+editor.cancel=Болих
+editor.filename_cannot_be_empty=Файлын нэр оруулна уу.
+editor.branch_already_exists='%s' хувилбар тус Репо-д өмнө нь үүссэн байна.
+editor.directory_is_a_file='%s' сан дахь директор биш файл байна.
+editor.file_is_a_symlink='%s' файлыг вэб editor-с өөрчлөх боломжгүй байна.
+editor.filename_is_a_directory='%s' файл нь тус Репо-д өмнө нь үүссэн байна.
+editor.file_editing_no_longer_exists=Таны өөрчлөх гэж буй '%s' файл нь Репо-д олдохгүй байна.
+editor.file_changed_while_editing=Таныг засварлаж эхэлснээс хойш файлын агуулга өөрчлөгдсөн байна. Энд дарж юу өөрчлөгдсөнийг харах эсвэл тус өөрчлөлтийг дарж дахин commmit хийж болно.
+editor.file_already_exists='%s' нэртэй файл нь тус Репо-д өмнө нь үүссэн байна.
+editor.no_changes_to_show=Ямар нэгэн өөрчлөлт ороогүй байна.
+editor.fail_to_update_file='%s' файл үүсгэх/өөрчлөх үед дараах алдаа гарлаа: %v
+editor.fail_to_delete_file='%s' файл устгах үед дараах алдаа гарлаа: %v
+editor.add_subdir=Дэд директор нэмэх...
+editor.unable_to_upload_files='%s' руу файл upload хийх үед дараах алдаа гарлаа: %v
+editor.upload_files_to_dir='%s' руу файл upload хийх
+
+commits.commit_history=Коммит түүх
+commits.commits=Коммитууд
+commits.search=Коммит хайх
+commits.find=Хайх
+commits.author=Эзэн
+commits.message=Мессеж
+commits.date=Огноо
+commits.older=Хуучин
+commits.newer=Шинэ
+
+issues.new=Шинэ асуудал
+issues.new.labels=Шошгууд
+issues.new.no_label=Шошгогүй
+issues.new.clear_labels=Шошгууд цэвэрлэх
+issues.new.milestone=Үе шат
+issues.new.no_milestone=Үе шат заахгүй
+issues.new.clear_milestone=Үе шат цэвэрлэх
+issues.new.open_milestone=Нээлттэй үе шатууд
+issues.new.closed_milestone=Хаагдсан үе шатууд
+issues.new.assignee=Хариуцагч
+issues.new.clear_assignee=Хариуцагч цэвэрлэх
+issues.new.no_assignee=Хариуцагч байхгүй
+issues.create=Шинэ асуудал
+issues.new_label=Шинэ шошго
+issues.new_label_placeholder=Шошго нэр ...
+issues.create_label=Шошго үүсгэх
+issues.label_templates.title=Урьдчилан тодорхойлсон шошгуудын багцыг харах
+issues.label_templates.info=Одоохондоо шошго байхгүй байна. Та дээрх "Шинэ шошго" товчийг дарж үүсгэх эсвэл доор урьдчилан тодорхойлсон багцыг ашиглах боломжтой.
+issues.label_templates.helper=Шошгоны багцыг сонгоно уу
+issues.label_templates.use=Энэхүү шошгоны багцыг ашиглана уу
+issues.label_templates.fail_to_load_file=Шошгоны загварын файлыг ачаалж чадсангүй '%s': %v
+issues.open_tab=%d Нээлттэй
+issues.close_tab=%d Хаалттай
+issues.filter_label=Шошго
+issues.filter_label_no_select=Шошго сонгоогүй байна
+issues.filter_milestone=Үе шат
+issues.filter_milestone_no_select=Үе шат сонгоогүй байна
+issues.filter_assignee=Хариуцагч
+issues.filter_assginee_no_select=Хариуцагч сонгоогүй байна
+issues.filter_type=Төрөл
+issues.filter_type.all_issues=Бүх асуудал
+issues.filter_type.assigned_to_you=Танд оноогдсон
+issues.filter_type.created_by_you=Таны үүсгэсэн
+issues.filter_type.mentioning_you=Таныг дурдсан
+issues.filter_sort=Эрэмбэлэх
+issues.filter_sort.latest=Сүүлд үүссэн нь эхэндээ
+issues.filter_sort.oldest=Түрүүнд үүссэн нь эхэндээ
+issues.filter_sort.recentupdate=Саяхан шинэчлэгдсэн
+issues.filter_sort.leastupdate=Хамгийн сүүлд шинэчлэгдсэн
+issues.filter_sort.mostcomment=Хамгийн олон саналтай
+issues.filter_sort.leastcomment=Хамгийн бага саналтай
+issues.opened_by=нээсэн %[1]s by %[3]s
+issues.opened_by_fake=нээсэн %[1]s by %[2]s
+issues.previous=Өмнөх
+issues.next=Дараах
+issues.open_title=Нээсэн
+issues.closed_title=Хаасан
+issues.num_comments=%d саналууд
+issues.commented_at=`санал үлдээсэн %s`
+issues.delete_comment_confirm=Та энэ саналыг устгахдаа итгэлтэй байна уу?
+issues.no_content=Харуулах агуулга байхгүй байна.
+issues.close_issue=Хаах
+issues.close_comment_issue=Санал бичээд хаах
+issues.reopen_issue=Дахин нээх
+issues.reopen_comment_issue=Санал бичээд дахин нээх
+issues.create_comment=Санал
+issues.closed_at=`хаасан %[2]s`
+issues.reopened_at=`дахин нээсэн %[2]s`
+issues.commit_ref_at=`энэ асуудлыг %[2]s коммитоос иш татсан болно`
+issues.poster=Зурагт хуудас
+issues.collaborator=Хамтрагч
+issues.owner=Эзэмшигч
+issues.sign_in_require_desc=Энэ хэлэлцүүлгэнд нэгдэхийн тулт та нэвтэрнэ үү.
+issues.edit=Засах
+issues.cancel=Цуцлах
+issues.save=Хадгалах
+issues.label_title=Шошгоны нэр
+issues.label_color=Шошгоны өнгө
+issues.label_count=%d шошго
+issues.label_open_issues=%d нээлттэй асуудлууд
+issues.label_edit=Засах
+issues.label_delete=Устгах
+issues.label_modify=Шошгыг өөрчлөх
+issues.label_deletion=Шошгыг устгах
+issues.label_deletion_desc=Энэ шошгыг устгаснаар холбогдох бүх асуудлаар түүний мэдээллийг устгах болно. Та үргэлжлүүлэхийг хүсч байна уу?
+issues.label_deletion_success=Шошгыг амжилттай устгалаа!
+issues.num_participants=%d Оролцогчид
+issues.attachment.open_tab=`Энд дараад "%s" шинэ таб дээр харах`
+issues.attachment.download=`Энд дараад "%s" татаж авах`
+
+pulls.new=Шинэ татах хүсэлт
+pulls.compare_changes=Өөрчлөлтийг харьцуулах
+pulls.compare_changes_desc=Хоёр хуулбарыг харьцуулж, өөрчлөлт оруулах хүсэлтийг гаргана уу.
+pulls.compare_base=үндэс
+pulls.compare_compare=харьцуулах
+pulls.filter_branch=Салаагаар шүүх
+pulls.no_results=Үр дүн олдсонгүй.
+pulls.nothing_to_compare=Үндэс болон Толгой хуулбарууд ижил тул харьцуулах зүйл алга байна.
+pulls.nothing_merge_base=Хоёр хуулбар огт өөр түүхтэй тул харьцуулах зүйл алга.
+pulls.has_pull_request=`Энэ хоёр зорилтот хуулбарын хооронд татах хүсэлт аль хэдийн ирсэн байна: %[2]s#%[3]d`
+pulls.create=Татах хүсэлтийг бий болгох
+pulls.title_desc=%[1]d-ийг %[2]s-оос %[3]s руу нэгтгэхийг хүсэлт
+pulls.merged_title_desc=%[1]d-ийг %[2]s-оос %[3]s %[4]s болгон нэгтгэв
+pulls.tab_conversation=Харилцаа
+pulls.tab_commits=Коммитууд
+pulls.tab_files=Өөрчилсөн файлууд
+pulls.reopen_to_merge=Нэгтгэх ажиллагааг гүйцэтгэхийн тулд энэ татах хүсэлтийг дахин нээнэ үү.
+pulls.merged=Нэгтгэсэн
+pulls.has_merged=Энэхүү татах хүсэлтийг амжилттай нэгтгэв!
+pulls.data_broken=Энэхүү татах хүсэлтийн өгөгдөл нь садааны мэдээллийг устгасан тул эвдэрсэн байна.
+pulls.is_checking=Давхцал шалгах ажил үргэлжилж байна, хэдэн хоромын дараа хуудсыг шинэчилнэ үү.
+pulls.can_auto_merge_desc=Энэхүү татах хүсэлтийг автоматаар нэгтгэх боломжтой.
+pulls.cannot_auto_merge_desc=Давхцалтай тул энэ татах хүсэлтийг автоматаар нэгтгэх боломжгүй.
+pulls.cannot_auto_merge_helper=Зөрчлийг арилгахын тулд гараар нэгтгэнэ үү.
+pulls.create_merge_commit=Нэгтгэх хүсэлт үүсгэх
+pulls.rebase_before_merging=Нэгдэхээс өмнө дахин байрлуулах
+pulls.commit_description=Коммитын тайлбар
+pulls.merge_pull_request=Татах хүсэлтийг нэгтгэх
+pulls.open_unmerged_pull_exists=`Тус Репо-с ижил нэгтгэх мэдээлэлтэй нээлттэй татах хүсэлт (#%d) аль хэдийн ирсэн, нэгтгэхээ хүлээж байгаа тул та дахин нээх үйлдлийг хийж чадахгүй.`
+pulls.delete_branch=Салааг устгах
+pulls.delete_branch_has_new_commits=Нэгтгэсний дараа шинэ өөрчлөлт орсон тул тус салааг устгах боломжгүй байна.
+
+milestones.new=Шинэ үе шат
+milestones.open_tab=%d Нээлттэй
+milestones.close_tab=%d Хаалттай
+milestones.closed=Хаалттай %s
+milestones.no_due_date=Дуусах хугацаагүй
+milestones.open=Нээх
+milestones.close=Хаах
+milestones.new_subheader=Асуудлуудаа цэгцлэх чухал үе шатуудыг бий болго.
+milestones.create=Үе шат үүсгэх
+milestones.title=Гарчиг
+milestones.desc=Тайлбар
+milestones.due_date=Дуусах хугацаа (заавал биш)
+milestones.clear=Цэвэрлэх
+milestones.invalid_due_date_format=Дуусах хугацааг зөв форматтай оруулна уу, 'yyyy-mm-dd' форматтай байх ёстой.
+milestones.create_success='%s' үе шат амжилттай үүслээ!
+milestones.edit=Үе шат засах
+milestones.edit_subheader=Үе шат оруулахдаа тайлбарын тодорхой оруулна уу. Тэгвэл хэрэглэг төөрөлдөхгүй.
+milestones.cancel=Болих
+milestones.modify=Үе шат өөрчлөх
+milestones.edit_success='%s' үе шатыг амжилттай өөрчиллөө!
+milestones.deletion=Үе шат устгах
+milestones.deletion_desc=Үе шатыг устгаснаар холбогдох бүх асуудал дахь мэдээллийг устгах болно. Та үргэлжлүүлэхийг хүсч байна уу?
+milestones.deletion_success=Үе шатыг амжилттай устгалаа!
+
+wiki=Мэдлэгийн сан
+wiki.welcome=Мэдлэгийн санд тавтай морилно уу!
+wiki.welcome_desc=Мэдлэгийн сан бол төслөө хамтдаа баримтжуулж, сайжруулах боломж олгодог талбар юм.
+wiki.create_first_page=Эхний хуудсыг үүсгэх
+wiki.page=Хуудас
+wiki.filter_page=Хуудсыг шүүх
+wiki.new_page=Шинэ хуудас үүсгэх
+wiki.default_commit_message=Энэхүү шинэчлэлтийн талаар тэмдэглэл бичнэ үү (заавал биш).
+wiki.save_page=Хуудас хадгалах
+wiki.last_commit_info=%s энэ хуудсыг %s засварлав
+wiki.edit_page_button=Засах
+wiki.new_page_button=Шинэ хуудас
+wiki.delete_page_button=Хуудсыг устгах
+wiki.delete_page_notice_1=Та "%s" хуудсын утсгах уу. Баталгаажуулна уу!
+wiki.page_already_exists=Ижил нэртэй хуудас аль хэдийн үүссэн байна.
+wiki.pages=Хуудсууд
+wiki.last_updated=Сүүлд өөрчлөгдсөн %s
+
+settings=Тохиргоо
+settings.options=Сонголтууд
+settings.collaboration=Сонголтууд
+settings.collaboration.admin=Админ
+settings.collaboration.write=Бичих
+settings.collaboration.read=Унших
+settings.collaboration.undefined=Тодорхойгүй
+settings.branches=Хуулбарууд
+settings.branches_bare=Та хоосон Репо-г удирдах боломжгүй. Эхлээд ямар нэг мэдээлэл хуулах ёстой.
+settings.default_branch=Репо үндэс
+settings.default_branch_desc=Репо үндэс-г код ажиллуулах, хүсэлт гаргах, онлайн засварлахад зориулсан "суурь" хуулбар гэж үздэг.
+settings.update=Шинэчлэх
+settings.update_default_branch_unsupported=Анхдагч хуулбарыг өөрчлөхийг сервер дээрх Git хувилбар дэмждэггүй.
+settings.update_default_branch_success=Энэ репозиторын анхдагч хуулбар амжилттай шинэчлэгдсэн!
+settings.protected_branches=Хаалттай хуулбарууд
+settings.protected_branches_desc=Хаалттай хуулбар нь санамсаргүйгээр устгах, цагаан жагсаалт оруулахаас хамгаална.
+settings.choose_a_branch=Хуулбар сонгох...
+settings.branch_protection=Хуулбар хамгаалалт
+settings.branch_protection_desc=%s хуулбарыг хамгаалах сонголтыг сонгоно уу.
+settings.protect_this_branch=Энэ хуулбарыг хамгаалах
+settings.protect_this_branch_desc=Энэ хуулбар луу push хийхийг хориглох.
+settings.protect_require_pull_request=Push хийхийн оронд шууд pull хийж авах
+settings.protect_require_pull_request_desc=Энэ хуулбар луу push хийхийг хориглох бол идэвхжүүлнэ үү.
+settings.protect_whitelist_committers=Энэ хуулбар руу push хийх боломжтой хэрэглэгчид
+settings.protect_whitelist_committers_desc=Энэ хуулбар руу шууд push хийх боломжтой хэрэглэгчид. Цагаан жагсаалтад бүртгэгдсэн хэрэглэгчид тус хуулбар луу шууд push хийх боломжтойв
+settings.protect_whitelist_users=Энэ хуулбар руу түлхэх боломжтой хэрэглэгчид
+settings.protect_whitelist_search_users=Хэрэглэгчдийг хайх
+settings.protect_whitelist_teams=Тэдний гишүүд энэ салбар руу түлхэх боломжтой багууд
+settings.protect_whitelist_search_teams=Баг хайх
+settings.update_protect_branch_success=Энэ хуулбарыг хамгаалах сонголтыг амжилттай шинэчиллээ!
+settings.hooks=Webhooks
+settings.githooks=Git Hooks
+settings.basic_settings=Үндсэн тохиргоо
+settings.mirror_settings=Хуулбарын Тохиргоо
+settings.sync_mirror=Одоо нэгтгэе
+settings.mirror_sync_in_progress=Хуулбарыг нэгтгэх ажил хийгдэж байна, түр хүлээгээд хуудсыг дахин шинэчилнэ үү.
+settings.site=Албан ёсны сайт
+settings.update_settings=Тохиргоог шинэчлэх
+settings.change_reponame_prompt=Энэ өөрчлөлт нь холбоосууд репозитортой хэрхэн холбогдоход нөлөөлнө.
+settings.advanced_settings=Нарийвчилсан тохиргоо
+settings.wiki_desc=Мэдлэгийн сангийн системийг идэвхжүүлэх
+settings.use_internal_wiki=Мэдлэгийн сан ашиглах
+settings.allow_public_wiki_desc=Репо нь хувийн байх үед мэдлэгийн сан руу олон нийтийн хандалтыг зөвшөөрөх
+settings.use_external_wiki=Гадаад мэдлэгийн сан ашиглах
+settings.external_wiki_url=Гадаад мэдлэгийн сангийн URL
+settings.external_wiki_url_desc=Зочид таб дээр дарахад URL руу шилжих болно.
+settings.issues_desc=Асуудлыг хянагчийг идэвхжүүлэх
+settings.use_internal_issue_tracker=Хялбар мэдлэгийн сан ашиглах
+settings.allow_public_issues_desc=Репозитор хувийн тохиолдолд олон нийтэд хандах боломжийг олгоно
+settings.use_external_issue_tracker=Гадаад асуудал хянагч ашиглах
+settings.external_tracker_url=Гадаад дугаар хянагч URL
+settings.external_tracker_url_desc=Зочид таб дээр дарахад URL руу дахин чиглүүлэгдэх болно.
+settings.tracker_url_format=Гадаад асуудал хянагч URL формат
+settings.tracker_issue_style=Гадаад дугаар хянагч нэрлэх хэв маяг:
+settings.tracker_issue_style.numeric=Тоо
+settings.tracker_issue_style.alphanumeric=Тоо болон үсэг
+settings.tracker_url_format_desc=Хэрэглэгчийн нэр, репозиторийн нэр, асуудлын индексийг оруулахдаа та {user} {repo} {index} -ийг ашиглаж болно.
+settings.pulls_desc=Репо ба хувилбарын хооронд pull хүсэлтийг идэвхжүүлэх
+settings.pulls.ignore_whitespace=Хоосон зайг алгасах
+settings.pulls.allow_rebase_merge=Буцаан хуулбарлахыг зөвшөөрөх
+settings.danger_zone=Аюултай талбар
+settings.cannot_fork_to_same_owner=Та тус Репо-г анх үүсгэсэн хэрэглэгчид шилжүүлэх боломжгүй.
+settings.new_owner_has_same_repo=Ижил нэртэй Репо байна. Өөр нэр сонгоно уу.
+settings.convert=Энгийн Репо руу хөрвүүлэх
+settings.convert_desc=Та энэ хуулбарыг энгий Репо руу хөрвүүлэх боломжтой. Буцаах боломжгүй.
+settings.convert_notices_1=- Энэ үйлдэл нь энэхүү Репо хуулбарыг энгийн Репо болгон хөрвүүлэх бөгөөд буцаах боломжгүй.
+settings.convert_confirm=Хөрвүүлэлтийг баталгаажуулна уу
+settings.convert_succeed=Репо энгийн Репо руу амжилттай хөрвөлөө.
+settings.transfer=Эзэмшигч шилжүүлэх
+settings.transfer_desc=Энэ нь тус Репо-г өөр эзэмшигч рүү шилжүүлнэ.
+settings.transfer_notices_1=- Хэрэв шинэ эзэмшигч нь хаалттай хэрэглэгч бол та хандах эрхээ алдах болно.
+settings.transfer_notices_2=- Хэрэв шинэ эзэмшигч нь байгууллага байгаад та тус байгууллагын хэрэглэгч бол та нэвтрэх эрхээ хадгалах болно.
+settings.transfer_form_title=Үйл ажиллагаагаа баталгаажуулахын тулд дараахь мэдээллийг оруулна уу:
+settings.wiki_delete=Wiki өгөгдлийг устгах
+settings.wiki_delete_desc=Устгасанаас хойш сэргээх боломжгүй учир болгоомжтой хандана уу.
+settings.wiki_delete_notices_1=- Энэ нь %s-ийн wiki-г устгах ба идэвхгүй болгох болно
+settings.wiki_deletion_success=Репо-ийн вики мэдээллийг амжилттай устгалаа.
+settings.delete=Энэ репо-г устгах
+settings.delete_desc=Устгасанаас хойш сэргээх боломжгүй учир болгоомжтой хандана уу.
+settings.delete_notices_1=- Энэ үйлдлийн БУЦААХ боломжгүй.
+settings.delete_notices_2=- Энэ ажиллагаа нь Git-ийн өгөгдөл, асуудал, сэтгэгдэл, хамтран ажиллагсдын хандалт зэрэг энэ репо дахь бүх зүйлийг бүрмөсөн устгах болно.
+settings.delete_notices_fork_1=- Бүх хувилбарууд устгасны дараа бие даасан хувилбар болно.
+settings.deletion_success=Репо-г амжилттай устгалаа!
+settings.update_settings_success=Репо тохиргоонууд амжилттай шинэчлэгдлээ.
+settings.transfer_owner=Шинэ эзэмшигч
+settings.make_transfer=Шилжүүлэх
+settings.transfer_succeed=Репо эзэмшлийг амжилттай шилжүүллээ.
+settings.confirm_delete=Устгалтыг баталгаажуулах
+settings.add_collaborator=Хамтран ажиллагч нэмэх
+settings.add_collaborator_success=Хамтран ажиллагч нэмэгдлээ .
+settings.delete_collaborator=Устгах
+settings.collaborator_deletion=Хамтран ажиллагч устгах
+settings.collaborator_deletion_desc=Энэ хэрэглэгч устгасны дараа энэ агуулахад хамтын ажиллагааны хандалт байхгүй болно. Та үргэлжлүүлэхийг хүсч байна уу?
+settings.remove_collaborator_success=Хамтран ажиллагчийг амжилттай устгала.
+settings.search_user_placeholder=Хэрэглэгч хайх...
+settings.org_not_allowed_to_be_collaborator=Байгууллагыг хамтран ажиллагчаар нэмж оруулахыг хориглоно.
+settings.hooks_desc=Webhooks нь үндсэн HTTP POST үйл явдалтай адилхан байдаг. Gogs-д ямар нэгэн үйлдэл болох үед бид таны зааж өгсөн зорилтот хост руу мэдэгдэх болно.
+settings.webhooks.add_new=Шинэ Webhook нэмэх:
+settings.webhooks.choose_a_type=Төрөл сонгох ...
+settings.add_webhook=Webhook нэмэх
+settings.webhook_deletion=Webhook устгах
+settings.webhook_deletion_desc=Энэ Webhook-г устгаснаар түүний мэдээлэл болон хүргэлтийн түүхийг устгах болно. Та үргэлжлүүлэхийг хүсч байна уу?
+settings.webhook_deletion_success=Webhook-г амжилттай устгалаа
+settings.webhook.test_delivery=Туршилтын хүргэлт
+settings.webhook.test_delivery_desc=Вэбхүүкийн тохиргоог шалгахын тулд хуурамч push хүсэлт илгээмжийг илгээнэ үү
+settings.webhook.test_delivery_success=Туршилтын webhook нь ажлын дараалалд нэмэгдсэн. Тус өөрчлөлтийг хадгалахад багахан хугаацаа орно.
+settings.webhook.redelivery=Дахин илгээх
+settings.webhook.redelivery_success='%s' hook ажил дахин нэмэгдлээ. Тус өөрчлөлтийг хадгалахад багахан хугаацаа орно.
+settings.webhook.request=Хүсэлт
+settings.webhook.response=Хариу
+settings.webhook.headers=Толгой
+settings.webhook.payload=Ачаалах
+settings.webhook.body=Бие
+settings.webhook.err_cannot_parse_payload_url=Тус хаягаас ачааллаж чадсангүй : %v
+settings.webhook.url_resolved_to_blocked_local_address=Payload URL resolved to a local network address that is implicitly blocked.
+settings.githooks_desc=Git Hooks -ийг Git тодорхойлдог, та зөвшөөрөгдсөн hooks файлуудыг засвардах боломжтой.
+settings.githook_edit_desc=Хэрэв hook идэвхгүй бол жишээ агуулгыг танилцуулах болно. Агуулгыг утгыыг үлдээвэл энэ hook идэвхгүй болно.
+settings.githook_name=Hook нэр
+settings.githook_content=Hook агуулга
+settings.update_githook=Hook өөрчлөх
+settings.add_webhook_desc=Gogs нь таны оруулсан URL руу POST хүсэлтийг болон болсон үйл явдлын талаарх дэлгэрэнгүй мэдээллийг илгээх болно. Та hook ашигласан тохиолдолд ямар төрлийн өгөгдлийн формат авахыг хүсч байгаагаа зааж өгч болно (JSON, x-www-form-urlencoded, XML гэх мэт). Дэлгэрэнгүй мэдээллийг манай Webhooks гарын авлагаас авах боломжтой.
+settings.payload_url=Ачаалах URL
+settings.content_type=Агуулгын төрөл
+settings.secret=Нууцлал
+settings.secret_desc=Нууцлах толгой файл нь SHA256 HMAC <код> X-Gogs-гарын үсэг ашиглана.
+settings.slack_username=Хэрэглэгчийн нэр
+settings.slack_icon_url=Айкон хаяг
+settings.slack_color=Өнгө
+settings.event_desc=Хэзээ энэ webhook ашиглагдах вэ?
+settings.event_push_only=Зөвхөн push хийх
+settings.event_send_everything=Надад бүгд хэрэгтэй
+settings.event_choose=Надад хэрэгтэй зүйлээ сонгох
+settings.event_create=Үүсгэх
+settings.event_create_desc=Үүсгэх хувилбар/таг
+settings.event_delete=Устгах
+settings.event_delete_desc=Устгах хувилбар/таг
+settings.event_fork=Хуулбар
+settings.event_fork_desc=Хуулбар репо
+settings.event_push=Push
+settings.event_push_desc=Git push
+settings.event_issues=Асуудлууд
+settings.event_issues_desc=Энэ асуудал нээгдсэн, хаагдсан, дахин нээгдсэн, засварлагдсан, томилогдсон, хуваарилагдаагүй, шошгыг шинэчилсэн, шошгыг цэвэрлэсэн, тэмдэглэсэн.
+settings.event_pull_request=Pull хүсэлт
+settings.event_pull_request_desc=Хүсэлтийг нээх, хаах, дахин нээх, засах, хуваарилах, хуваарилах, шошгыг шинэчлэх, шошгыг цэвэрлэх, тэмдэглэх, demonestones эсвэл синхрончлох.
+settings.event_issue_comment=Тайлбар
+settings.event_issue_comment_desc=Тайлбарыг үүсгэсэн, засварласан эсвэл устгасан.
+settings.event_release=Хувилбар
+settings.event_release_desc=Хувилбар репод амжилттай нийтлэгдлээ.
+settings.active=Идэвхитэй
+settings.active_helper=Hook дэлгэрэнгүй мэдээлэл.
+settings.add_hook_success=Шинэ webhook нэмэгдлээ.
+settings.update_webhook=Webhook өөрчлөх
+settings.update_hook_success=Webhook өөрчлөгдлөө.
+settings.delete_webhook=Webhook устгах
+settings.recent_deliveries=Сүүлийн үеийн хүргэлт
+settings.hook_type=Hook төрөл
+settings.add_slack_hook_desc=Slack интеграци нэмэх.
+settings.add_discord_hook_desc=Discord интеграци нэмэх.
+settings.add_dingtalk_hook_desc=Dingtalk интеграци нэмэх.
+settings.slack_token=Токен
+settings.slack_domain=Домайн
+settings.slack_channel=Суваг
+settings.deploy_keys=Deploy Keys
+settings.deploy_keys_helper=Хэрэв та хувийн нийтийн түлхүүрүүдийг нэмэх гэж байгаа бол үүнийг дансны тохиргоондоо нэмнэ үү.
+settings.add_deploy_key=Deploy Key нэмэх
+settings.deploy_key_desc=Deploy keys зөвхөн унших эрхтэй байна. Эдгээр нь хувийн дансны SSH түлхүүрүүдтэй адил биш юм.
+settings.no_deploy_keys=Та deploy key нэмээгүй байна.
+settings.title=Нэр
+settings.deploy_key_content=Мэдээлэл
+settings.key_been_used=Deploy key мэдээлэл ашиглагдсан байна.
+settings.key_name_used=Ижил нэртэй Deploy key үүссэн байна.
+settings.add_key_success='%s' deploy key амжилттай үүслээ!
+settings.deploy_key_deletion=Deploy Key устгах
+settings.deploy_key_deletion_desc=Энэ Deploy Key устгаснаар хамаарал бүхий Репо-д хандах эрхгүй болно. Үргэлжлүүлэх үү?
+settings.deploy_key_deletion_success=Deploy key-г амжилттай устгалаа!
+settings.description_desc=Репо тайлбар. Ихдээ 512 тэмдэгт.
+settings.description_length=Боломжтой тэмдэгтүүд
+
+diff.browse_source=Эх сурвалжийг харах
+diff.parent=parent
+diff.commit=commit
+diff.data_not_available=Өөрчлөлтийн мэдээлэл алга байна .
+diff.show_diff_stats=Өөрчлөлтийн статистик харах
+diff.show_split_view=Өөрчлөлтийг ялгаж харах
+diff.show_unified_view=Өөрчлөллтийг нэгтгэж харах
+diff.stats_desc= %d өөрчлөгдсөн %d нэмэгдсэн , %d устгасан
+diff.bin=BIN
+diff.view_file=Файл харах
+diff.file_suppressed=Файлын зөрүү хэтэрхий том тул дарагдсан байна
+diff.too_many_files=Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно
+
+release.releases=Хувилбар
+release.new_release=Шинэ хувилбар
+release.draft=Драфт
+release.prerelease=Урьдчилсан хувилбар
+release.edit=засах
+release.ahead=%d commit ирсэн байна %s хувилбараас хойш
+release.source_code=Эх код
+release.new_subheader=Бүтээгдэхүүнийг давтан хийх хувилбаруудыг нийтлэх.
+release.edit_subheader=Өөрчлөлтийн дэлгэрэнгүй бүртгэл нь хэрэглэгчдэд сайжруулсан зүйлийг ойлгоход тусална.
+release.tag_name=Шошгоны нэр
+release.target=Сонгох
+release.tag_helper=Одоо байгаа тагийг сонгох, эсвэл нийтлэхдээ шинэ таг үүсгэх.
+release.title=Нэр
+release.content=Агуулга
+release.write=Бичих
+release.preview=Урьдчилан харах
+release.loading=Ачааллаж байна ...
+release.prerelease_desc=Энэ бол урьдчилсан хувилбар
+release.prerelease_helper=Энэ хувилбар нь шууд байрлуулахад бэлэн биш байгааг тэмдэглэх.
+release.cancel=Болих
+release.publish=Хувилбарыг ашиглах
+release.save_draft=Драфт хадгалах
+release.edit_release=Хувилбар засах
+release.delete_release=Энэ хувилбарыг устгэх
+release.deletion=Хувилбар устгах
+release.deletion_desc=Энэ хувилбарыг устгаснаар холбогдох Git таг устах болно. Та үргэлжлүүлэхийг хүсч байна уу?
+release.deletion_success=Хувилбарыг амжилттай устгалаа!
+release.tag_name_already_exist=Энэ шошгоны нэртэй хувилбар аль хэдийнэ гарсан байна.
+release.tag_name_invalid=Тагийн нэр буруу байна.
+release.downloads=Татах
+
+[org]
+org_name_holder=Байгууллагын нэр
+org_full_name_holder=Байгууллагын бүтэн нэр
+org_name_helper=Байгууллагын нэрээ богино, санахад хялбар оруулна уу.
+create_org=Байгууллаг үүсгэх
+repo_updated=Шинэчилсэн
+people=Хүмүүс
+invite_someone=Урилга илгээх
+teams=Багууд
+lower_members=гишүүд
+lower_repositories=репонууд
+create_new_team=Баг үүсгэх
+org_desc=Тайлбар
+team_name=Багийн нэр
+team_desc=Тайлбар
+team_name_helper=Та цаашид энэ нэрийг ашиглана.
+team_desc_helper=Багийн тодорхойлолт?
+team_permission_desc=Багт ямар эрх шаардлагатай вэ?
+
+form.name_not_allowed=Organization name or pattern %q is not allowed.
+form.team_name_not_allowed=Team name or pattern %q is not allowed.
+
+settings=Тохиргоо
+settings.options=Сонголтууд
+settings.full_name=Бүтэн нэр
+settings.website=Вэбсайт
+settings.location=Байршил
+settings.update_settings=Тохиргоог шинэчлэх
+settings.update_setting_success=Байгууллагын тохиргоог амжилттай шинэчиллээ.
+settings.change_orgname_prompt=Энэ өөрчлөлт нь холбоосууд нь байгууллагатай хэрхэн холбогдоход нөлөөлнө.
+settings.update_avatar_success=Байгууллагын аватар тохиргоог амжилттай шинэчиллээ.
+settings.delete=Delete Organization
+settings.delete_account=Байгууллагыг устгах
+settings.delete_prompt=Байгууллага бүрмөсөн устгагдах бөгөөд үүнийг дахин сэргээх БОЛОМЖГҮЙ !
+settings.confirm_delete_account=Устгалтыг баталгаажуулах
+settings.delete_org_title=Байгууллагыг устгах
+settings.delete_org_desc=Энэ байгууллага бүрмөсөн устах бол, үргэлжлүүлнэ үү?
+settings.hooks_desc=Энэ байгууллагын харьяалагдах бүх репо -д webhooks нэмнэ үү.
+
+members.membership_visibility=Гишүүнчлэлийн харагдах байдал:
+members.public=Нээлттэй
+members.public_helper=хаалттай болгох
+members.private=Хаалттай
+members.private_helper=нээлттэй болгох
+members.member_role=Хэрэглэгчийн эрх:
+members.owner=Эзэмшигч
+members.member=Гишүүн
+members.remove=Устгах
+members.leave=Гарах
+members.invite_desc=%s гишүүн нэмэх :
+members.invite_now=Урих
+
+teams.join=Нэгдэх
+teams.leave=Гарах
+teams.read_access=Унших эрх
+teams.read_access_helper=Тус репо-г үзэх болон хуулах боломжтой болно.
+teams.write_access=Бичих эрх
+teams.write_access_helper=Тус репо-г үзэх болон хуулахаас гадна бичих боломжтой болно.
+teams.admin_access=Админ эрх
+teams.admin_access_helper=Тус репо-г үзэх болон хуулахаас гадна бичих боломжтой. Мөн хамтран ажиллах хэрэглэгч нэмэх эрхтэй болно.
+teams.no_desc=Энэ багт ямар ч тайлбар байхгүй
+teams.settings=Тохиргоо
+teams.owners_permission_desc=Эзэмшигч нь бүх репо-г удирдах админ эрхтэй.
+teams.members=Багийн гишүүд
+teams.update_settings=Өөрчлөх тохиргоо
+teams.delete_team=Энэ багийг устгах
+teams.add_team_member=Багийн гишүүн нэмэх
+teams.delete_team_title=Багийн устгах
+teams.delete_team_desc=Энэ багийг устгахад тус багийн гишүүд хамаарал бүхий зарим репо руу хандах эрхээ алдаж магадгүй юм. Та үргэлжлүүлэхийг үү?
+teams.delete_team_success=Багийг амжилттай устгалаа.
+teams.read_permission_desc=Энэ багт гишүүнээр элсэх нь Унших эрхийг олгоно: гишүүд репозиторыг үзэх, хуулбарлах боломжтой.
+teams.write_permission_desc=Энэ багийн гишүүнчлэл нь Бичих эрхийг өгдөг: гишүүд репозиторыг уншиж, бичих боломжтой.
+teams.admin_permission_desc=Энэ багийн гишүүнчлэл нь Админ эрх олгоно: гишүүд репозиторыг уншиж, бичих, хэрэглэгч нэмж оруулах боломжтой.
+teams.repositories=Багийн репонууд
+teams.search_repo_placeholder=Репо хайх...
+teams.add_team_repository=Багт репо нэмэх
+teams.remove_repo=Устгах
+teams.add_nonexistent_repo=Таны нэмэх гэж буй репо үүсээгүй байна.
+
+[admin]
+dashboard=Хянах самбар
+users=Хэрэглэгчид
+organizations=Байгууллагууд
+repositories=Репонууд
+authentication=Баталгаажуулалт
+config=Тохиргоо
+notices=Системийн мэдэгдэл
+monitor=Хяналт
+first_page=Эхний
+last_page=Сүүлийн
+total=Нийт: %d
+
+dashboard.build_info=Build мэдээлэл
+dashboard.app_ver=Аппликэшн хувилбар
+dashboard.git_version=Git хувилбар
+dashboard.go_version=Go хувилбар
+dashboard.build_time=Build цаг
+dashboard.build_commit=Build commit
+dashboard.statistic=Статистик
+dashboard.operations=Ажиллагаа
+dashboard.system_status=Системийн төлөв
+dashboard.statistic_info=Gogs өгөгдлийн бааз нь %d хэрэглэгч, %d байгууллага, %d нийтийн түлхүүр, %d репо, %d дагасан, %d тэмдэглэсэн, %d үйлдэл хийгдсэн, %d хандалт авсан, %d асуудал нийтэлсэн, %d саналтай, %d social данс, %d дагагч, %d хуулбар, %d хувилбар, %d нэвтрэх эх сурвалж, %d webhooks, %d чухал үйл явдлууд, %d шошго, %d hook үйл ажиллагаа, %d баг, %d өөрчлөх үйл ажиллагаа, %d хавсралтай байна.
+dashboard.operation_name=Үйлдлийн нэр
+dashboard.operation_switch=Солих
+dashboard.select_operation_to_run=Ажиллуулах үйлдлийг сонгоно уу
+dashboard.operation_run=Run
+dashboard.clean_unbind_oauth=Ашиглаагүй OAuthes цэвэрлэх
+dashboard.clean_unbind_oauth_success=Бүх ашиглаагүй OAuthes-ийг амжилттай устгалаа.
+dashboard.delete_inactivate_accounts=Бүх идэвхгүй дансыг устгах
+dashboard.delete_inactivate_accounts_success=Бүх идэвхгүй данс амжилттай устгалаа.
+dashboard.delete_repo_archives=Бүх репо архив устгах
+dashboard.delete_repo_archives_success=Бүх репо архив данс амжилттай устгалаа.
+dashboard.delete_missing_repos=Git Файлгүй болсон бүх Репо-г устах
+dashboard.delete_missing_repos_success=Git Файлгүй болсон бүх Репо амжилттай устгалаа.
+dashboard.git_gc_repos=Бусад шаардлагагүй мэдээллийг цэвэрлэх
+dashboard.git_gc_repos_success=Шаардлагаггүй мэдэлллүүд амжилттай устлаа
+dashboard.resync_all_sshkeys='.ssh/authorized_keys' файлыг дахин бичих (анхааруулга: Gogs-ийн биш түлхүүрүүд алдагдах болно)
+dashboard.resync_all_sshkeys_success=Бүх нийтийн түлхүүрүүдийг амжилттай дахин бичлээ.
+dashboard.resync_all_hooks=Бүх репо-г дахин шинэчлэх
+dashboard.resync_all_hooks_success=Бүх репо-г амжилттай дахин бичлээ.
+dashboard.reinit_missing_repos=Git файлуудыг алдсан бүх репозиторыг дахин эхлүүлэх
+dashboard.reinit_missing_repos_success=Git файлуудыг алдсан бүх репозиторыг амжилттай дахин эхлүүллээ.
+
+dashboard.server_uptime=Серверийн ажилласан хугацаа
+dashboard.current_goroutine=Одоогийн
+dashboard.current_memory_usage=Санах ойн одоогийн хэрэглээ
+dashboard.total_memory_allocated=Хуваарилагдсан санах ой
+dashboard.memory_obtained=Авсан санах ой
+dashboard.pointer_lookup_times=Pointer харах хугацаа
+dashboard.memory_allocate_times=Санах ой хуваарилах хугацаа
+dashboard.memory_free_times=Санах ой чөлөөлөх хугацаа
+dashboard.current_heap_usage=Current Heap Usage
+dashboard.heap_memory_obtained=Heap санах ой
+dashboard.heap_memory_idle=Heap санах ой хүлээлгийн горим
+dashboard.heap_memory_in_use=Heap санах ой ашиглаж байгаа
+dashboard.heap_memory_released=Heap санах ой чөлөөлсөн
+dashboard.heap_objects=Heap объект
+dashboard.bootstrap_stack_usage=Bootstrap Stack хэрэглээ
+dashboard.stack_memory_obtained=Stack санах ой
+dashboard.mspan_structures_usage=MSpan бүтцийн хэрэглээ
+dashboard.mspan_structures_obtained=MSpan бүтэц
+dashboard.mcache_structures_usage=MCache бүтцийн хэрэглээ
+dashboard.mcache_structures_obtained=MCache бүтэц
+dashboard.profiling_bucket_hash_table_obtained=Hash Table
+dashboard.gc_metadata_obtained=GC метадата
+dashboard.other_system_allocation_obtained=Бусад хуваарилагдсан
+dashboard.next_gc_recycle=Дараагийн GC Recycle
+dashboard.last_gc_time=Сүүлийн GC Time-с хойш
+dashboard.total_gc_time=Нийт GC цаг
+dashboard.total_gc_pause=Нийт GC зогсолт
+dashboard.last_gc_pause=Сүүлийн GC зогсолт
+dashboard.gc_times=GC цаг
+
+users.user_manage_panel=Хэрэглэгч удирдах
+users.new_account=Хэрэлэгч үүсгэх
+users.name=Нэр
+users.activated=Идэвхитэй
+users.admin=Админ
+users.repos=Репо
+users.created=Үүсгэсэн
+users.send_register_notify=Хэрэглэгчид бүртгэлийн мэдэгдэл илгээх
+users.new_success='%s' шинэ данс амжилттай үүслээ.
+users.edit=Засах
+users.auth_source=Нэвтрэлтийн төрөл
+users.local=Дотоод
+users.auth_login_name=Нэвтрэх нэр
+users.password_helper=Өөрчлөхгүй бол хоосон орхино уу.
+users.update_profile_success=Бүртгэлийн профайл амжилттай шинэчлэгдсэн..
+users.edit_account=Бүртгэлээ засах
+users.max_repo_creation=Репо үүсгэх хамгийн дээд хязгаар
+users.max_repo_creation_desc=(Хязрааргүй бол -1 гэж бичнэ үү)
+users.is_activated=Энэ бүртгэл идэвхжсэн байна
+users.prohibit_login=Энэ дансанд нэвтрэхийг хориглоно
+users.is_admin=Энэ дансанд администраторын зөвшөөрөл байна
+users.allow_git_hook=Энэ дансанд Git hooks үүсгэх зөвшөөрөл байна
+users.allow_import_local=Энэ данс нь дотоод репозиторыг импортлох зөвшөөрөлтэй
+users.update_profile=Бүртгэлийн профайлыг шинэчлэх
+users.delete_account=Энэ дансыг устгах
+users.still_own_repo=Энэ данс дор хаяж нэг репо-г эзэмших эрхтэй хэвээр байгаа тул та эхлээд устгах эсвэл шилжүүлэх хэрэгтэй.
+users.still_has_org=Энэ данс дор хаяж нэг байгууллагын гишүүнчлэлтэй хэвээр байгаа тул та эхлээд байгууллагуудаас гарах эсвэл устгах хэрэгтэй.
+users.deletion_success=Бүртгэлийг амжилттай устгалаа!
+
+orgs.org_manage_panel=Байгууллага удирдах
+orgs.name=Нэр
+orgs.teams=Багууд
+orgs.members=Гишүүд
+
+repos.repo_manage_panel=Репо удирдах
+repos.owner=Эзэмшигч
+repos.name=Нэр
+repos.private=Хувийн
+repos.watches=Үзсэн
+repos.stars=Тэмдэглэсэн
+repos.issues=Шийдвэрлэх асуудал
+repos.size=Хэмжээний
+
+auths.auth_sources=Баталгаажуулалтын эх сурвалжууд
+auths.new=Шинэ эх сурвалж нэмэх
+auths.name=Нэр
+auths.type=Төрөл
+auths.enabled=Идэвхжүүлсэн
+auths.default=Үндсэн
+auths.updated=Шинэчилсэн
+auths.auth_type=Баталгаажуулалтын төрөл
+auths.auth_name=Баталгаажуулалтын нэр
+auths.security_protocol=Нууцлалын протокол
+auths.domain=Домайн
+auths.host=Хост
+auths.port=Порт
+auths.bind_dn=DN-г холбох
+auths.bind_dn_helper=Та '%s'-ийг хэрэглэгчийн нэрэнд зориулж ашиглаж болно, ж.нь. DOM\%s
+auths.bind_password=Нууц үгийг холбох
+auths.bind_password_helper=Анхааруулга: Энэ нууц үг энгийн текстэнд хадгалагддаг.
+auths.user_base=Хэрэглэгчийн хайлтын бааз
+auths.user_dn=Хэрэглэгчийн DN
+auths.attribute_username=Хэрэглэгчийн нэрийн шинж чанар
+auths.attribute_username_placeholder=Хэрэглэгчийн нэр дээр нэвтрэх хэлбэрийн талбарын утгыг ашиглахын тулд хоосон орхино уу.
+auths.attribute_name=Нэр тодорхойлолт
+auths.attribute_surname=Овог тодорхойлолт
+auths.attribute_mail=Имэйл тодорхойлолт
+auths.verify_group_membership=Бүлгийн гишүүнчлэлийг баталгаажуулах
+auths.group_search_base_dn=Бүлгийн DN хайлтын бааз
+auths.group_filter=Бүлгийн шүүлтүүр
+auths.group_attribute_contain_user_list=Хэрэглэгчийн жагсаалтыг агуулсан бүлэг тодорхойлолт
+auths.user_attribute_listed_in_group=Бүлэг доторх хэрэглэгчийн тодорхойлолт
+auths.attributes_in_bind=DN тодорхойлолт
+auths.filter=Хэрэглэгчийн шүүлтүүр
+auths.admin_filter=Админы шүүлтүүр
+auths.ms_ad_sa=Ms Ad SA
+auths.smtp_auth=SMTP тохиргоо
+auths.smtphost=SMTP Хост
+auths.smtpport=SMTP Порт
+auths.allowed_domains=Зөвшөөрөгдсөн домайн
+auths.allowed_domains_helper=Домэйнийг хамааралгүй бол хоосон орхино уу. Олон домэйныг ',' гэсэн таслалаар тусгаарлана.
+auths.enable_tls=TLS шифрлэлтийг идэвхжүүлэх
+auths.skip_tls_verify=TLS баталгаажуулалтыг алгасах
+auths.pam_service_name=PAM үйлчилгээний нэр
+auths.enable_auto_register=Автомат бүртгэлийг идэвхжүүлэх
+auths.edit=Баталгаажуулалтын тохиргоог засах
+auths.activated=Энэ баталгаажуулалт идэвхжсэн байна
+auths.default_auth=Үндсэн танилт нэвтрэлт
+auths.new_success=Шинэ танилт нэвтрэлт '%s' амжилттай нэмэгдэв.
+auths.update_success=Баталгаажуулалтын тохиргоог амжилттай шинэчиллээ.
+auths.update=Баталгаажуулалтын тохиргоог шинэчлэх
+auths.delete=Энэ баталгаажуулалтыг устгах
+auths.delete_auth_title=Баталгаажуулалтыг устгах
+auths.delete_auth_desc=Энэ баталгаажуулалтыг устгах гэж байна, үргэлжлүүлэх үү?
+auths.still_in_used=Энэхүү нэвтрэлт танилтыг зарим хэрэглэгчид ашигладаг хэвээр байгаа тул эхлээд эдгээр хэрэглэгчдийг устгаж эсвэл өөр нэвтрэх хэлбэрт хөрвүүлнэ үү.
+auths.deletion_success=Баталгаажуулалтыг амжилттай устгалаа!
+auths.login_source_exist='% s' танил нэвтрэлтийн төрөл өмнө үүссэн байна.
+auths.github_api_endpoint=API Endpoint
+
+config.not_set=(тохируулаагүй)
+config.server_config=Серверийн тохиргоо
+config.brand_name=Брэндийн нэр
+config.run_user=Ажиллуулах хэрэглэгч
+config.run_mode=Ажиллуулах горим
+config.server.external_url=Гадаад хаяг
+config.server.domain=Домайн
+config.server.protocol=Протокод
+config.server.http_addr=HTTP хаяг
+config.server.http_port=HTTP порт
+config.server.cert_file=Certificate файл
+config.server.key_file=Key файл
+config.server.tls_min_version=TLS хувилбар /багадаа/
+config.server.unix_socket_permission=Unix сокет зөвшөөрөл
+config.server.local_root_url=Дотоод үндсэн URL
+config.server.offline_mode=Офлайн горим
+config.server.disable_router_log=Рүүэрийн бүртгэлийг идэвхгүй болгох
+config.server.enable_gzip=Gzip-ийг идэвхжүүлэх
+config.server.app_data_path=Өгөгдөл хадгалах зам
+config.server.load_assets_from_disk=Нөөц хадгалах зам
+config.server.landing_url=Үндсэн URL
+
+config.ssh_config=SSH тохиргоо
+config.ssh.enabled=Идэвхитэй
+config.ssh.domain=Домэйн
+config.ssh.port=Порт
+config.ssh.root_path=Зам
+config.ssh.keygen_path=Түлхүүрийн зам
+config.ssh.key_test_path=Түлхүүрийн тест зам
+config.ssh.minimum_key_size_check=Түлхүүрийн хамгийн бага хэмжээ шалгах
+config.ssh.minimum_key_sizes=Түлхүүрийн хамгийн бага хэмжээ
+config.ssh.rewrite_authorized_keys_at_start=Дахин чиглүүлэх "authorized_keys"
+config.ssh.start_builtin_server=Дотоод серверийг эхлүүлэх
+config.ssh.listen_host=Сонсох хост
+config.ssh.listen_port=Сонсох порт
+config.ssh.server_ciphers=Серверийн шифр
+config.ssh.server_macs=Server MACs
+config.ssh.server_algorithms=Server algorithms
+
+config.repo_config=Хадгалах сангийн тохиргоо
+config.repo.root_path=Root буюу эх зам
+config.repo.script_type=Скриптийн төрөл
+config.repo.ansi_chatset=ANSI charset
+config.repo.force_private=Албадан нууцлах
+config.repo.max_creation_limit=Хамгийн их үүсгэх хязгаар
+config.repo.preferred_licenses=Бэлтгэсэн лицензүүд
+config.repo.disable_http_git=HTTP Git идэвхигүй болгох
+config.repo.enable_local_path_migration=Дотоод нэгтгэл зөвшөөрөх
+config.repo.enable_raw_file_render_mode=Raw файл горимыг идэвхжүүлэх
+config.repo.commits_fetch_concurrency=Зэрэгцээ commit зөвшөөрөх
+config.repo.editor.line_wrap_extensions=Editor мөр өргөтгөх
+config.repo.editor.previewable_file_modes=Editor удидчилж харах
+config.repo.upload.enabled=Upload идэвхижүүлэх
+config.repo.upload.temp_path=Upload файлын зам
+config.repo.upload.allowed_types=Upload зөвшөөрөгдсөн төрлүүд
+config.repo.upload.file_max_size=Upload файлын хэмжээ ихдээ
+config.repo.upload.max_files=Upload файлын тоо ихдээ
+
+config.db_config=Өгөгдлийн баазын тохиргоо
+config.db.type=Төрөл
+config.db.host=Хост
+config.db.name=Нэр
+config.db.schema=Schema
+config.db.schema_helper=(for "postgres" only)
+config.db.user=Хэрэглэгчийн нэр
+config.db.ssl_mode=SSL
+config.db.ssl_mode_helper=(зөвхөн "postgres"-ийн хувьд)
+config.db.path=Зам
+config.db.path_helper=(зөвхөн "sqlite3"-ийн хувьд)
+config.db.max_open_conns=Нээлттэй холболтын тоо ихдээ
+config.db.max_idle_conns=Идэвхигүй холболтын тоо ихдээ
+
+config.security_config=Аюулгүй байдлын тохиргоо
+config.security.login_remember_days=Login remember days
+config.security.cookie_remember_name=Remember cookie
+config.security.cookie_username=Username cookie
+config.security.cookie_secure=Enable secure cookie
+config.security.reverse_proxy_auth_user=Reverse proxy authentication header
+config.security.enable_login_status_cookie=Enable login status cookie
+config.security.login_status_cookie_name=Login status cookie
+config.security.local_network_allowlist=Local network allowlist
+
+config.email_config=Имэйл тохиргоо
+config.email.enabled=Идэвхитэй
+config.email.subject_prefix=Гарчигийн өмнө
+config.email.host=Хост
+config.email.from=Хэнээс
+config.email.user=Хэрэглэгч
+config.email.disable_helo=HELO идэвхигүй
+config.email.helo_hostname=HELO хостын нэр
+config.email.skip_verify=Гэрчилгээ баталгаажуулалтыг алгасах
+config.email.use_certificate=Өөрийн гэрчилгээ ашиглах
+config.email.cert_file=Certificate файл
+config.email.key_file=Key файл
+config.email.use_plain_text=Текст баталгаажуулалт ашиглах
+config.email.add_plain_text_alt=Текстийн өөр хувилбар
+config.email.send_test_mail=Имэйл илгээж турших
+config.email.test_mail_failed=Туршилтын имэйлийг '%s': %v рүү илгээж чадсангүй
+config.email.test_mail_sent=Туршилтын имэйл '%s' рүү илгээгдлээ.
+
+config.auth_config=Authentication тохиргоо
+config.auth_custom_logout_url=Custom logout URL
+config.auth.activate_code_lives=Кодын ашиглалтыг идэвхжүүлэх
+config.auth.reset_password_code_lives=Нууц үгийн кодыг шинэчлэх
+config.auth.require_email_confirm=Имэйлээр баталгаажуулахыг шаардана
+config.auth.require_sign_in_view=Нэвтрэхийг шаардана
+config.auth.disable_registration=Бүртгэлийг идэвхгүй болгох
+config.auth.enable_registration_captcha=Бүртгэлийн captcha-г идэвхжүүлэх
+config.auth.enable_reverse_proxy_authentication=Урвуу прокси нэвтрэлт танилтыг идэвхжүүлэх
+config.auth.enable_reverse_proxy_auto_registration=Урвуу прокси автомат бүртгэлийг идэвхжүүлэх
+config.auth.reverse_proxy_authentication_header=Урвуу прокси баталгаажуулах header
+
+config.user_config=Хэрэглэгчийн тохиргоо
+config.user.enable_email_notify=Имэйл тохиргоо
+
+config.session_config=Session тохиргоо
+config.session.provider=Нийлүүлэгч
+config.session.provider_config=Нийлүүлэгчийн тохиргоо
+config.session.cookie_name=Cookie
+config.session.https_only=зөвхөн HTTPS
+config.session.gc_interval=GC хугацаа
+config.session.max_life_time=Хадгалагдах хугацаа хамгийн ихдээ
+config.session.csrf_cookie_name=CSRF cookie
+
+config.cache_config=Cache тохиргоо
+config.cache.adapter=Адаптер
+config.cache.interval=GC хугацаа
+config.cache.host=Хост
+
+config.http_config=HTTP тохиргоо
+config.http.access_control_allow_origin=Access control allow origin
+
+config.attachment_config=Хавсралтын тохиргоо
+config.attachment.enabled=Идэвхитэй
+config.attachment.path=Зам
+config.attachment.allowed_types=Зөвшөөрөгдсөн төрлүүд
+config.attachment.max_size=Хэмжээний хязгаар
+config.attachment.max_files=Файлын хязгаар
+
+config.release_config=Хувилбарын тохиргоо
+config.release.attachment.enabled=Хавсралт идэвхжсэн
+config.release.attachment.allowed_types=Хавсралтын зөвшөөрөгдсөн төрлүүд
+config.release.attachment.max_size=Хавсралтын хэмжээ хязгаар
+config.release.attachment.max_files=Хавсралтын файлын хязгаар
+
+config.picture_config=Зургийн тохиргоо
+config.picture.avatar_upload_path=Хэрэглэгчийн аватар байршуулах зам
+config.picture.repo_avatar_upload_path=Агуулахын аватар байршуулах зам
+config.picture.gravatar_source=Граватар эх сурвалж
+config.picture.disable_gravatar=Граватарыг идэвхгүй болгох
+config.picture.enable_federated_avatar=Холбогдсон аватаруудыг идэвхжүүлэх
+
+config.mirror_config=Хуулбарын тохиргоо
+config.mirror.default_interval=Анхдагч интервал
+
+config.webhook_config=Webhook тохиргоо
+config.webhook.types=Төрлүүд
+config.webhook.deliver_timeout=Дамжуулах хугацаа
+config.webhook.skip_tls_verify=TLS баталгаажуулалтыг алгасах
+
+config.git_config=Git тохиргоо
+config.git.disable_diff_highlight=Ялгааг тодруулж харуулахыг болих
+config.git.max_diff_lines=Ялгаатай мөрийн тоо ихдээ (нэг файлын хувьд)
+config.git.max_diff_line_characters=Ялгаатай тэмдэгтийн тоо (нэг мөрийн хувьд)
+config.git.max_diff_files== Ялгаатай файлын тоо (нэг өөрчлөлтийн хувьд)
+config.git.gc_args=GC аргументууд
+config.git.migrate_timeout=Нэгтгэх хугацаа
+config.git.mirror_timeout=Mirror timeout
+config.git.clone_timeout=Clone timeout
+config.git.pull_timeout=Pull timeout
+config.git.gc_timeout=GC timeout
+
+config.lfs_config=LFS тохиргоо
+config.lfs.storage=Зай
+config.lfs.objects_path=Объектын зам
+
+config.log_config=Лог мэдээллийн тохируулга
+config.log_file_root_path=Лог мэдээллийн зам
+config.log_mode=Горим
+config.log_options=Сонголтууд
+
+monitor.cron=Cron ажлууд
+monitor.name=Нэр
+monitor.schedule=Хуваарь
+monitor.next=Дараах
+monitor.previous=Өмнөх
+monitor.execute_times=Ажилласан
+monitor.process=Ажиллаж байгаа
+monitor.desc=Тайлбар
+monitor.start=Эхлэх цаг
+monitor.execute_time=Ажиллах хугацаа
+
+notices.system_notice_list=Системийн мэдэгдэл
+notices.view_detail_header=Мэдэгдэлийн дэлгэрэнгүйг үзэх
+notices.actions=Үйлдэл
+notices.select_all=Бүгдийг сонгох
+notices.deselect_all=Бүгдийг цуцлах
+notices.inverse_selection=Урвуугаар сонгох
+notices.delete_selected=Сонгогдсоныг устгах
+notices.delete_all=Бүх мэдэгдлийг устгах
+notices.type=Төрөл
+notices.type_1=Репо
+notices.desc=Тайлбар
+notices.op=заавал биш.
+notices.delete_success=Системийн мэдэгдлийг амжилттай устгасан.
+
+[action]
+create_repo=%s репо-г үүсгэлээ
+rename_repo=%[1]s репо-г %[3]s болгож өөрчиллөө
+commit_repo=Push хийсэн %[3]s%[4]s
+compare_commits=Эдгээр %d commit-уудын харьцуулалтыг харах
+transfer_repo=репо-г %s -с %s рүү шилжүүллээ
+create_issue=`нээлттэй %s#%[2]s`
+close_issue=`хаалттай %s#%[2]s`
+reopen_issue=`дахин нээсэн %s#%[2]s`
+comment_issue=`сэтгэгдэл үлдээсэн %s#%[2]s`
+create_pull_request=`pull request үүсгэсэн %s#%[2]s`
+close_pull_request=`pull request хаасан %s#%[2]s`
+reopen_pull_request=`pull request дахин нээсэн %s#%[2]s`
+merge_pull_request=`pull request нэгтгэсэн %s#%[2]s`
+create_branch=шинэ хуулбар үүсгэсэн %[3]s at %[4]s
+delete_branch=устгасах хуулбар %[2]s at %[3]s
+push_tag=pushed таг %[2]s to %[3]s
+delete_tag=deleted таг %[2]s at %[3]s
+fork_repo=Репо-х %s хуулбарласан
+mirror_sync_push=%[3]s-с %[4]s-д нэгтгэсэн
+mirror_sync_create=%[2]s-с %[3]s-д нэгтгэсэн
+mirror_sync_delete=code>%[2]s -с %[3]s-д нэгтгэж, устгасан
+
+[tool]
+ago=өмнө
+from_now=одооноос
+now=одоо
+1s=1 секунд %s
+1m=1 минут %s
+1h=1 цаг %s
+1d=1 өдөр %s
+1w=1 долоо хоног %s
+1mon=1 сар %s
+1y=1 жил %s
+seconds=%d секунд %s
+minutes=%d минут %s
+hours=%d цаг %s
+days=%d өдөр %s
+weeks=%d долоо хоног %s
+months=%d сар %s
+years=%d жил %s
+raw_seconds=секунд
+raw_minutes=минут
+raw_hours=цаг
+
+[dropzone]
+default_message=Файлуудаа энд чирж тавина уу эсвэл Файл товчин дээр дарна уу.
+invalid_input_type=Та ийм төрлийн файл байршуулах боломжгүй.
+file_too_big=Файлын хэмжээ ({{filesize}} MB) дээд хязгаар ({{maxFilesize}} MB) -аас хэтэрсэн байна.
+remove_file=Файлыг устгах
+
diff --git a/conf/locale/locale_nl-NL.ini b/conf/locale/locale_nl-NL.ini
index 8edaabde0f9..38d8fa84d66 100644
--- a/conf/locale/locale_nl-NL.ini
+++ b/conf/locale/locale_nl-NL.ini
@@ -9,11 +9,10 @@ sign_out=Uitloggen
sign_up=Aanmelden
register=Registreren
website=Website
-version=Versie
page=Pagina
template=Sjabloon
language=Taal
-create_new=Creëren...
+create_new=Toevoegen...
user_profile_and_more=Gebruikersprofiel en meer
signed_in_as=Aangemeld als
@@ -40,27 +39,31 @@ your_settings=Uw instellingen
activities=Activiteiten
pull_requests=Pull requests
-issues=Kwesties
+issues=Issues
cancel=Annuleren
+[status]
+page_not_found=Pagina niet gevonden
+internal_server_error=Interne Server Fout
+
[install]
install=Installatie
title=Installatiestappen voor de eerste keer opstarten
docker_helper=Als u gebruik maakt Gogs binnen Docker, lees dan de richtlijnen voordat u iets veranderen op deze pagina!
-requite_db_desc=Gogs vereist MySQL, PostgreSQL, SQite3 of TiDB.
+requite_db_desc=Gogs heeft MySQL, PostgreSQL, SQLite3 of TiDB (via het MySQL protocool) nodig.
db_title=Database-instellingen
db_type=Database-type
host=Host
user=Gebruikersnaam
password=Wachtwoord
-db_name=Database naam
+db_name=Databasenaam
+db_schema=Schema
db_helper=Gebruik InnoDB engine met utf8_general_ci karakterset voor MySQL.
ssl_mode=SSL-modus
path=Pad
-sqlite_helper=Het pad van de SQLite3- of TiDB-database. Als u Gogs start als een service, geef dan een absoluut pad op.
-err_empty_db_path=SQLite3 of TiDB databankpad mag niet leeg.
-err_invalid_tidb_name=TiDB databank naam niet tekens kunnen "." en "-".
+sqlite_helper=Het pad van de SQLite3-database. Als u Gogs start als een service, geef dan een absoluut pad op.
+err_empty_db_path=SQLite3 database pad mag niet leeg zijn.
no_admin_and_disable_registration=Je kunt niet de registratie uit te schakelen zonder een beheerders account.
err_empty_admin_password=Beheerder wachtwoord kan niet leeg zijn.
@@ -75,12 +78,17 @@ domain=Domein
domain_helper=Dit heeft invloed op de SSH kloon URLs
ssh_port=SSH-poort
ssh_port_helper=Nummer van de poort die uw SSH-server gebruikt, laat dit leeg om de SSH functie uit te schakelen.
+use_builtin_ssh_server=Gebruik de ingebouwde SSH server
+use_builtin_ssh_server_popup=Start de ingebouwde SSH server zodat de Git operaties herkenbaar zijn tegenover het systeem SSH Deamon.
http_port=HTTP-poort
http_port_helper=Poortnummer waar het programma naar luistert.
app_url=Applicatie URL
app_url_helper=Dit heeft invloed op de HTTP/HTTPS kloon urls en de urls die in de email worden gebruikt
log_root_path=Log-pad
log_root_path_helper=Directory waar logbestanden opgeslagen worden.
+enable_console_mode=Schakel Console modus in
+enable_console_mode_popup=Naast de bestand modus print het ook de logs naar de console.
+default_branch=Standaard branch
optional_title=Optionele instellingen
email_title=E-mail service instellingen
@@ -96,8 +104,8 @@ offline_mode=Off line modus inschakelen
offline_mode_popup=Schakel CDN uit in productiemodus, alle bestanden worden lokaal aangeboden.
disable_gravatar=Gravatar Service uitschakelen
disable_gravatar_popup=Schakel Gravatar en andere bronnen uit, alle avatars worden door gebruikers geüpload of zijn standaard.
-federated_avatar_lookup=Enable Federated Avatars Lookup
-federated_avatar_lookup_popup=Enable federated avatars lookup to use federated open source service based on libravatar.
+federated_avatar_lookup=Federated Avatars zoekopdracht inschakelen
+federated_avatar_lookup_popup=Schakel federated avatars zoekopdracht in om de op libravatar gebaseerde leveranciers te gebruiken.
disable_registration=Schakel zelfregistratie uit
disable_registration_popup=Schakel zelfregistratie uit, alleen admins kunnen accounts maken.
enable_captcha=Inschakelen Captcha
@@ -116,7 +124,10 @@ sqlite3_not_available=Uw versie biedt geen ondersteuning voor SQLite3, download
invalid_db_setting=Uw database instellingen zijn niet correct: %v
invalid_repo_path=Repositorie basis map is niet correct: %v
run_user_not_match=De uitvoerende gebruiker is niet de huidig gebruiker: %s -> %s
+smtp_host_missing_port=SMTP-Host mist een poort in het adres.
+invalid_smtp_from=SMTP-van-veld is niet geldig: %v
save_config_failed=Kan de configuratie niet opslaan: %v
+init_failed=Programma initialiseren mislukt: %v
invalid_admin_setting=Uw admin-instellingen zijn niet geldig: %v
install_success=Welkom! Wij zijn veheugd dat u voor Gogs heeft gekozen, veel plezier en tot ziens
invalid_log_root_path=Ongeldig log-pad: %v
@@ -126,7 +137,7 @@ uname_holder=Gebruikersnaam of e-mail
password_holder=Wachtwoord
switch_dashboard_context=Wissel voorpaginacontext
my_repos=Mijn repositories
-show_more_repos=Show more repositories...
+show_more_repos=Toon meer repositories...
collaborative_repos=Gedeelde repositories
my_orgs=Mijn organisaties
my_mirrors=Mijn mirrors
@@ -137,6 +148,7 @@ issues.in_your_repos=In uw repositories
[explore]
repos=Repositories
users=Gebruikers
+organizations=Organisaties
search=Zoeken
[auth]
@@ -145,24 +157,33 @@ register_hepler_msg=Heeft u al een account? Meld u nu aan!
social_register_hepler_msg=Heeft u al een account? Koppel nu!
disable_register_prompt=Sorry, registratie is uitgeschakeld. Neem contact op met de beheerder van deze site.
disable_register_mail=Sorry, bevestiging van registratie per e-mail is uitgeschakeld.
+auth_source=Authenticatiebron
+local=Lokaal
remember_me=Onthoud mij
forgot_password=Wachtwoord vergeten
forget_password=Wachtwoord vergeten?
sign_up_now=Een account nodig? Meld u nu aan.
confirmation_mail_sent_prompt=Een bevestigingsemail is gestuurd naar %s, Bevestig u aanvraag binnen %d uren om uw registratie te voltooien.
active_your_account=Activeer uw account
-prohibit_login=Login Prohibited
-prohibit_login_desc=Your account is prohibited to login, please contact site admin.
+prohibit_login=Inloggen niet toegestaan
+prohibit_login_desc=U mag met dit account niet inloggen, neem contact op met de websitebeheerder.
resent_limit_prompt=Sorry, u heeft te snel na elkaar een aanvraag gedaan voor een activatie mail. Wacht drie minuten voor uw volgende aanvraag.
has_unconfirmed_mail=Beste %s, u heeft een onbevestigd e-mailadres (%s). Als u nog geen bevestiging heeft ontvangen, of u een nieuwe aanvraag wilt doen, klik dan op de onderstaande knop.
resend_mail=Klik hier om uw activatie mail nog een keer te verzenden
-email_not_associate=Dit e-mailadres is niet gekoppeld aan een account.
send_reset_mail=Klik hier om uw wachtwoord reset mail (nogmaals) te versturen
reset_password=Reset uw wachtwoord
invalid_code=Sorry, uw bevestigingscode is verlopen of niet meer geldig.
reset_password_helper=Klik hier om uw wachtwoord opnieuw in te stellen.
password_too_short=De lengte van uw wachtwoord moet minimaal zes karakters zijn.
-non_local_account=Non-local accounts cannot change passwords through Gogs.
+non_local_account=Niet lokale accounts mogen hun wachtwoord niet veranderen via Gogs.
+
+login_two_factor=Twee-traps authenticatie
+login_two_factor_passcode=Authenticatie wachtwoord
+login_two_factor_enter_recovery_code=Voer de two-factor herstelcode in
+login_two_factor_recovery=Two-factor herstel
+login_two_factor_recovery_code=Herstel code
+login_two_factor_enter_passcode=Voer een two-factor wachtwoord in
+login_two_factor_invalid_recovery_code=Herstelcode is al gebruikt of ongeldig.
[mail]
activate_account=Activeer uw account
@@ -189,16 +210,17 @@ TeamName=Team naam
AuthName=Autorisatienaam
AdminEmail=E-mail beheerder
-NewBranchName=New branch name
-CommitSummary=Commit summary
-CommitMessage=Commit message
-CommitChoice=Commit choice
+NewBranchName=Nieuwe branch naam
+CommitSummary=Commit samenvatting
+CommitMessage=Commit bericht
+CommitChoice=Keuze toepassen
TreeName=Bestandspad
Content=Inhoud
require_error=kan niet leeg zijn.
alpha_dash_error=moet een valide alfanumeriek of dash(-_) karakter zijn.
alpha_dash_dot_error=moet een valide alfanumeriek, dash(-_) of (.) punt karakter zijn.
+alpha_dash_dot_slash_error=` moet een geldige alfanumeriek, (lage) streepje (-_), punt of een schuin karakter zijn.`
size_error=moet groter zijn dan %s
min_size_error=moet minimaal %s karakters bevatten.
max_size_error=mag maximaal %s karakters bevatten.
@@ -215,6 +237,7 @@ org_name_been_taken=Organisatie naam is al in gebruik.
team_name_been_taken=Team naam is al in gebruik.
email_been_used=e-mailadres is al in gebruik.
username_password_incorrect=Gebruikersnaam of wachtwoord is niet correct.
+auth_source_mismatch=De geselecteerde authenticatiebron is niet gekoppeld aan de gebruiker.
enterred_invalid_repo_name=U heeft een onjuiste repositorie naam ingevoerd.
enterred_invalid_owner_name=U heeft een onjuiste eigenaar ingevoerd.
enterred_invalid_password=U heeft een onjuiste wachtwoord ingevoerd.
@@ -242,19 +265,18 @@ following=Volgt
follow=Volg
unfollow=Niet meer volgen
-form.name_reserved=De gebruikersnaam '%s' is gereserveerd.
-form.name_pattern_not_allowed=Het gebruikersnaam patroon '%s' is niet toegestaan.
+form.name_not_allowed=User name or pattern %q is not allowed.
[settings]
profile=Profiel
password=Wachtwoord
avatar=Profielfoto
ssh_keys=SSH-sleutels
-social=Sociale netwerk-accounts
-applications=Toepassingen
+security=Beveiliging
+repos=Repositories
orgs=Organisaties
+applications=Toepassingen
delete=Verwijder account
-uid=uid
public_profile=Openbaar profiel
profile_desc=Uw e-mailadres is openbaar en zal gebruikt worden voor alle account gerelateerde berichtgevingen en bewerkingingen die via de website worden gedaan.
@@ -295,6 +317,7 @@ delete_email=Verwijder
email_deletion=E-mail Verwijderen
email_deletion_desc=Dit e-mailadres verwijdert, worden gerelateerde informatie van uw account te verwijderen. Wil je verdergaan?
email_deletion_success=E-mail is succesvol verwijderd!
+email_deletion_primary=Kan het primaire e-mailadres niet verwijderen.
add_new_email=Nieuw e-mailadres toevoegen
add_email=E-mailadres toevoegen
add_email_confirmation_sent=Een nieuwe bevestiging e-mail werd verstuurd naar '%s', gelieve uw inbox in de komende %d uren te controleren om het bevestigingsproces te voltooien.
@@ -320,14 +343,36 @@ no_activity=Geen recente activiteiten
key_state_desc=Deze sleutel werd gebruikt in de laatste 7 dagen
token_state_desc=Deze token is de laatste 7 dagen gebruikt
-manage_social=Beheer gekoppelde sociale accounts
-social_desc=Dit is een lijst van de bijbehorende sociale accounts koppelingen, Verwijder eventueel koppelingen die u niet herkent.
-unbind=Loskoppelen
-unbind_success=Sociaal account is ontkoppeld.
+two_factor=Twee-factor authenticatie
+two_factor_status=Status:
+two_factor_on=Aan
+two_factor_off=Uit
+two_factor_enable=Inschakelen
+two_factor_disable=Uitschakelen
+two_factor_view_recovery_codes=View and save your recovery codes in a safe place. You can use them as passcode if you lose access to your authentication application.
+two_factor_http=For HTTP/HTTPS operations, you are no longer able to use plain username and password. Please create and use Personal Access Token as your credential, e.g. %[3]s.
+two_factor_enable_title=Tweestapsverificatie inschakelen
+two_factor_scan_qr=Please use your authentication application to scan the image:
+two_factor_or_enter_secret=Of voer het geheim in:
+two_factor_then_enter_passcode=Then enter passcode:
+two_factor_verify=Verifiëren
+two_factor_invalid_passcode=The passcode you entered is not valid, please try again!
+two_factor_reused_passcode=The passcode you entered has already been used, please try another one!
+two_factor_enable_error=Enable Two-factor authentication failed: %v
+two_factor_enable_success=Two-factor authentication has enabled for your account successfully!
+two_factor_recovery_codes_title=Two-factor Authentication Recovery Codes
+two_factor_recovery_codes_desc=Recovery codes are used when you temporarily lose access to your authentication application. Each recovery code can only be used once, please keep these codes in a safe place.
+two_factor_regenerate_recovery_codes=Regenerate Recovery Codes
+two_factor_regenerate_recovery_codes_error=Regenerate recovery codes failed: %v
+two_factor_regenerate_recovery_codes_success=New recovery codes has been generated successfully!
+two_factor_disable_title=Disable Two-factor Authentication
+two_factor_disable_desc=Your account security level will decrease after disabled two-factor authentication. Do you want to continue?
+two_factor_disable_success=Two-factor authentication has disabled successfully!
manage_access_token=Persoonlijke toegangstokens beheren
generate_new_token=Nieuwe Token genereren
tokens_desc=Tokens die u hebt gegenereerd om toegang tot de Gogs APIs te verkrijgen.
+access_token_tips=The personal access token may be used as either username or password. It is recommended to use the "x-access-token" as the username and the personal access token as the password for Git applications.
new_token_desc=Zoals voor nu, moet elke token zal hebben volledige toegang tot uw account.
token_name=Symbolische naam
generate_token=Token genereren
@@ -336,6 +381,16 @@ delete_token=Verwijderen
access_token_deletion=Persoonlijke toegang token verwijderen
access_token_deletion_desc=Verwijderen van deze persoonlijke toegang token zal alle verwante toegang verwijderen. Wilt u doorgaan?
delete_token_success=Persoonlijke toegangstoken is met succes verwijderd! Vergeet niet uw toepassingen ook bij te werken.
+token_name_exists=Token with same name already exists.
+
+orgs.none=U bent geen lid van een organisatie.
+orgs.leave_title=Een organisatie verlaten
+orgs.leave_desc=U verliest toegang tot alle repositories en teams nadat u de organisatie verlaten hebt. Wilt u doorgaan?
+
+repos.leave=Verlaat
+repos.leave_title=Verlaat repository
+repos.leave_desc=You will lose access to the repository after you left. Do you want to continue?
+repos.leave_success=You have left repository '%s' successfully!
delete_account=Verwijder uw account
delete_prompt=Deze handeling zal uw account definitief verwijderen, u kunt dit NIET terug draaien!
@@ -348,7 +403,9 @@ owner=Eigenaar
repo_name=Naam van repository
repo_name_helper=Een goede repository-naam is kort, makkelijk te onthouden en uniek.
visibility=Zichtbaarheid
+unlisted=Unlisted
visiblity_helper=Deze repositorie is privaat
+unlisted_helper=This repository is Unlisted
visiblity_helper_forced=Sitebeheerder heeft alle nieuwe repositories gedwongen privé te zijn
visiblity_fork_helper=(Verandering van deze waarde zal van invloed zijn op alle forks)
clone_helper=De behoeftehulp van klonen? Bezoek helpen!
@@ -357,7 +414,7 @@ fork_from=Afsplitsing van
fork_visiblity_helper=U kunt de zichtbaarheid van een geforkte repository niet aanpassen.
repo_desc=Omschrijving
repo_lang=Taal
-repo_gitignore_helper=Select .gitignore templates
+repo_gitignore_helper=Selecteer .gitignore sjablonen
license=Licentie
license_helper=Selecteer een licentie bestand
readme=Leesmij-bestand
@@ -365,7 +422,7 @@ readme_helper=Selecteer een sjabloon voor het Leesmij-bestand
auto_init=Initialiseer deze repositorie met de geselecteerde bestanden en sjabloon
create_repo=Nieuwe repository
default_branch=Standaard branch
-mirror_prune=Prune
+mirror_prune=Opschonen
mirror_prune_desc=Remove any remote-tracking references that no longer exist on the remote
mirror_interval=Mirror interval(uur)
mirror_address=Kopie-adres
@@ -374,24 +431,26 @@ mirror_last_synced=Laatste synchronisatie
watchers=Volgers
stargazers=Stargazers
forks=Forks
+repo_description_helper=Description of repository. Maximum 512 characters length.
+repo_description_length=Available characters
form.reach_limit_of_creation=De eigenaar heeft maximale creatie limiet van %d repositories bereikt.
-form.name_reserved=Repositorienaam '%s' is gereserveerd.
-form.name_pattern_not_allowed=Repositorie naampatroon '%s' is niet toegestaan.
+form.name_not_allowed=Repository name or pattern %q is not allowed.
need_auth=Autorisatie vereist
migrate_type=Migratie type
migrate_type_helper=Deze repositorie zal een mirror zijn
migrate_repo=Migreer repositorie
migrate.clone_address=Clone adres
-migrate.clone_address_desc=Dit kan een HTTP/HTTPS/GIT URL zijn of een lokaal pad.
+migrate.clone_address_desc=Dit kan een HTTP/HTTPS/GIT URL zijn.
+migrate.clone_address_desc_import_local=You're also allowed to migrate a repository by local server path.
migrate.permission_denied=U bent niet toegestaan om deze lokale repositories te importeren.
migrate.invalid_local_path=Ongeldig lokaal pad, het pad bestaat niet of het is geen map.
+migrate.clone_address_resolved_to_blocked_local_address=Clone address resolved to a local network address that is implicitly blocked.
migrate.failed=Migratie is mislukt: %v
mirror_from=spiegel van
forked_from=geforked van
-fork_from_self=U kunt geen repository forken die u al beheert!
copy_link=Kopieer
copy_link_success=Gekopieerd!
copy_link_error=Druk op ⌘-C of Ctrl-C om te kopiëren
@@ -407,25 +466,36 @@ quick_guide=Snelstart gids
clone_this_repo=Kloon deze repositorie
create_new_repo_command=Maak een nieuwe repositorie aan vanaf de console
push_exist_repo=Push een bestaande repositorie vanaf de console
-repo_is_empty=Deze repositories is leeg is, probeer het later opnieuw!
+bare_message=Deze repository bevat nog geen inhoud.
-code=Code
+files=Bestanden
branch=Aftakking
tree=Boom
filter_branch_and_tag=Filter branch of tag
branches=Aftakkingen
tags=Labels
-issues=Kwesties
+issues=Issues
pulls=Pull-aanvragen
labels=Labels
milestones=Mijlpalen
commits=Commits
+git_branches=Branches
releases=Publicaties
file_raw=Ruwe
file_history=Geschiedenis
file_view_raw=Weergave ruwe
file_permalink=Permalink
-file_too_large=This file is too large to be shown
+file_too_large=Dit bestand is te groot om te worden getoond
+video_not_supported_in_browser=Uw browser ondersteunt geen HTML5 video label.
+
+branches.overview=Overzicht
+branches.active_branches=Active Branches
+branches.stale_branches=Stale Branches
+branches.all=All Branches
+branches.updated_by=Updated %[1]s by %[2]s
+branches.change_default_branch=Change Default Branch
+branches.default_deletion_not_allowed=Cannot delete the default branch.
+branches.protected_deletion_not_allowed=Cannot delete a protected branch.
editor.new_file=Nieuw bestand
editor.upload_file=Bestand uploaden
@@ -436,35 +506,38 @@ editor.edit_this_file=Bestand aanpassen
editor.must_be_on_a_branch=Je moet in een branch zijn om aanpassingen te maken of voor te stellen
editor.fork_before_edit=Je moet deze repository eerst vorken om dit bestand aan te kunnen passen
editor.delete_this_file=Verwijder dit bestand
-editor.must_have_write_access=You must have write access to make or propose changes to this file
-editor.file_delete_success=File '%s' has been deleted successfully!
-editor.name_your_file=Name your file...
-editor.filename_help=To add directory, just type it and press /. To remove a directory, go to the beginning of the field and press backspace.
-editor.or=or
-editor.cancel_lower=cancel
-editor.commit_changes=Commit Changes
-editor.add_tmpl=Add '%s/'
-editor.add=Add '%s'
-editor.update=Update '%s'
-editor.delete=Delete '%s'
-editor.commit_message_desc=Add an optional extended description...
+editor.must_have_write_access=U moet schrijftoegang hebben om aanpassingen te maken of voor te stellen in dit bestand
+editor.file_delete_success=Bestand '%s' is succesvol verwijderd!
+editor.name_your_file=Bestandsnaam...
+editor.filename_help=Om een map toe te voegen, begin met typen en druk op /. Om een map te verwijderen, ga naar het begin van het veld en druk op backspace.
+editor.or=of
+editor.cancel_lower=annuleren
+editor.commit_changes=Wijzigingen toepassen
+editor.add_tmpl='%s/' toevoegen
+editor.add='%s' toevoegen
+editor.update='%s' updaten
+editor.delete='%s' verwijderen
+editor.commit_message_desc=Voeg een optionele beschrijving toe...
editor.commit_directly_to_this_branch=Commit directly to the %s branch.
editor.create_new_branch=Create a new branch for this commit and start a pull request.
-editor.new_branch_name_desc=New branch name...
-editor.cancel=Cancel
-editor.filename_cannot_be_empty=Filename cannot be empty.
-editor.branch_already_exists=Branch '%s' already exists in this repository.
+editor.new_branch_name_desc=Naam nieuwe aftakking...
+editor.cancel=Annuleren
+editor.filename_cannot_be_empty=Bestandsnaam mag niet leeg zijn.
+editor.branch_already_exists=Aftakking '%s' bestaat al in deze repository.
editor.directory_is_a_file=Entry '%s' in the parent path is a file not a directory in this repository.
+editor.file_is_a_symlink=The file '%s' is a symlink that cannot be modified from the web editor.
editor.filename_is_a_directory=The filename '%s' is an existing directory in this repository.
-editor.file_editing_no_longer_exists=The file '%s' you are editing no longer exists in the repository.
+editor.file_editing_no_longer_exists=Het bestand '%s' die u aan het bewerken bent bestaat niet meer in deze repository.
editor.file_changed_while_editing=File content has been changed since you started editing. Click here to see what have been changed or press commit again to overwrite those changes.
editor.file_already_exists=A file with name '%s' already exists in this repository.
-editor.no_changes_to_show=There are no changes to show.
+editor.no_changes_to_show=Er zijn geen wijzigingen om weer te geven.
editor.fail_to_update_file=Failed to update/create file '%s' with error: %v
-editor.add_subdir=Add subdirectory...
+editor.fail_to_delete_file=Failed to delete file '%s' with error: %v
+editor.add_subdir=Submap toevoegen...
editor.unable_to_upload_files=Failed to upload files to '%s' with error: %v
-editor.upload_files_to_dir=Upload files to '%s'
+editor.upload_files_to_dir=Bestanden uploaden naar '%s'
+commits.commit_history=Commit History
commits.commits=Commits
commits.search=Zoeken
commits.find=zoek
@@ -491,9 +564,9 @@ issues.new_label=Nieuw Label
issues.new_label_placeholder=Tekst label...
issues.create_label=Maak label
issues.label_templates.title=Load a predefined set of labels
-issues.label_templates.info=There aren’t any labels yet. You can click on the "New Label" button above to create one or use a predefined set below.
-issues.label_templates.helper=Select a label set
-issues.label_templates.use=Use this label set
+issues.label_templates.info=Er zijn nog geen labels. U kunt op de 'Nieuw label'-knop drukken om een nieuwe toe te voegen of een voorgedefinieerde set hieronder gebruiken.
+issues.label_templates.helper=Selecteer een labelset
+issues.label_templates.use=Deze labelset gebruiken
issues.label_templates.fail_to_load_file=Failed to load label template file '%s': %v
issues.open_tab=%d Open
issues.close_tab=%d gesloten
@@ -504,7 +577,7 @@ issues.filter_milestone_no_select=Geen geselecteerde mijlpaal
issues.filter_assignee=Aangewezene
issues.filter_assginee_no_select=Geen geselecteerde verantwoordelijke
issues.filter_type=Type
-issues.filter_type.all_issues=Alle kwesties
+issues.filter_type.all_issues=Alle issues
issues.filter_type.assigned_to_you=Aan jou toegewezen
issues.filter_type.created_by_you=Aangemaakt door jou
issues.filter_type.mentioning_you=Vermelden jou
@@ -522,8 +595,8 @@ issues.next=Volgende
issues.open_title=Open
issues.closed_title=Gesloten
issues.num_comments=%d opmerkingen
-issues.commented_at=`commented %s`
-issues.delete_comment_confirm=Are you sure you want to delete this comment?
+issues.commented_at=`reageerde %s`
+issues.delete_comment_confirm=Weet u zeker dat u deze reactie wilt verwijderen?
issues.no_content=Er is nog geen inhoud.
issues.close_issue=Sluit
issues.close_comment_issue=Sluit en geef commentaar
@@ -551,8 +624,8 @@ issues.label_deletion=Verwijder label
issues.label_deletion_desc=Het verwijderen van dit label zal alle informatie in de gerelateerde problemen verwijderen. Wilt u doorgaan?
issues.label_deletion_success=Label werd met succes verwijderd!
issues.num_participants=%d deelnemers
-issues.attachment.open_tab=`Click to see "%s" in a new tab`
-issues.attachment.download=`Click to download "%s"`
+issues.attachment.open_tab=`Klik om "%s" in een nieuw tabblad te bekijken`
+issues.attachment.download=`Klik om te downloaden "%s"`
pulls.new=Nieuwe Pull aanvraag
pulls.compare_changes=Vergelijk veranderingen
@@ -562,6 +635,7 @@ pulls.compare_compare=vergelijk
pulls.filter_branch=Filter branch
pulls.no_results=Geen resultaten gevonden.
pulls.nothing_to_compare=Er is niets te vergelijken omdat base en head branches dezelfde zijn.
+pulls.nothing_merge_base=There is nothing to compare because two branches have completely different history.
pulls.has_pull_request=' Er is al een pull-aanvraag tussen deze twee targets: %[2]s #% [3]d'
pulls.create=Pull verzoek aanmaken
pulls.title_desc=wil %[1]d commits van %[2]s samenvoegen met %[3]s
@@ -577,8 +651,13 @@ pulls.is_checking=Controle van conflicten is nog bezig, ververs deze pagina in e
pulls.can_auto_merge_desc=Dit pull-request kan automatisch samengevoegd worden.
pulls.cannot_auto_merge_desc=Dit pull-request kan niet worden gemerged omdat er conflicten zijn.
pulls.cannot_auto_merge_helper=Gelieve beide versies manueel samen te voegen om de conflicten op te lossen.
+pulls.create_merge_commit=Create a merge commit
+pulls.rebase_before_merging=Rebase before merging
+pulls.commit_description=Commit Description
pulls.merge_pull_request=Samenvoegen van pull verzoek
pulls.open_unmerged_pull_exists=U kan de bewerking 'heropenen' niet uitvoeren omdat er al een pull-aanvraag (#%d) is van dezelfde repository met dezelfde informatie. Voeg deze eerst samen.
+pulls.delete_branch=Aftakking verwijderen
+pulls.delete_branch_has_new_commits=Branch cannot be deleted because it has new commits after mergence.
milestones.new=Nieuwe mijlpaal
milestones.open_tab=%d geopend
@@ -625,35 +704,65 @@ wiki.last_updated=Laatst bijgewerkt: %s
settings=Instellingen
settings.options=Opties
settings.collaboration=Samenwerking
-settings.collaboration.admin=Admin
-settings.collaboration.write=Write
-settings.collaboration.read=Read
-settings.collaboration.undefined=Undefined
+settings.collaboration.admin=Beheer
+settings.collaboration.write=Schrijven
+settings.collaboration.read=Lezen
+settings.collaboration.undefined=Niet gedefinieerd
+settings.branches=Branches
+settings.branches_bare=You cannot manage branches for bare repository. Please push some content first.
+settings.default_branch=Default Branch
+settings.default_branch_desc=The default branch is considered the "base" branch for code commits, pull requests and online editing.
+settings.update=Bijwerken
+settings.update_default_branch_unsupported=Change default branch is not supported by the Git version on server.
+settings.update_default_branch_success=Default branch of this repository has been updated successfully!
+settings.protected_branches=Protected Branches
+settings.protected_branches_desc=Protect branches from force pushing, accidental deletion and whitelist code committers.
+settings.choose_a_branch=Choose a branch...
+settings.branch_protection=Branch Protection
+settings.branch_protection_desc=Please choose protect options for branch %s.
+settings.protect_this_branch=Protect this branch
+settings.protect_this_branch_desc=Disable force pushes and prevent from deletion.
+settings.protect_require_pull_request=Require pull request instead direct pushing
+settings.protect_require_pull_request_desc=Enable this option to disable direct pushing to this branch. Commits have to be pushed to another non-protected branch and merged to this branch through pull request.
+settings.protect_whitelist_committers=Whitelist who can push to this branch
+settings.protect_whitelist_committers_desc=Add people or teams to whitelist of direct push to this branch. Users in whitelist will bypass require pull request check.
+settings.protect_whitelist_users=Users who can push to this branch
+settings.protect_whitelist_search_users=Doorzoek gebruikers
+settings.protect_whitelist_teams=Teams for which members of them can push to this branch
+settings.protect_whitelist_search_teams=Search teams
+settings.update_protect_branch_success=Protect options for this branch has been updated successfully!
settings.hooks=Webhooks
settings.githooks=Git-hooks
settings.basic_settings=Basis instellingen
settings.mirror_settings=Mirror Settings
-settings.sync_mirror=Sync Now
+settings.sync_mirror=Nu synchroniseren
settings.mirror_sync_in_progress=Mirror syncing is in progress, please refresh page in about a minute.
settings.site=Officiële site
settings.update_settings=Instellingen bewerken
settings.change_reponame_prompt=Deze verandering zal gevolgen hebben voor hoe links zich verhouden tot de repository.
settings.advanced_settings=Geavanceerde opties
-settings.wiki_desc=Enable wiki system
-settings.use_internal_wiki=Use builtin wiki
+settings.wiki_desc=Wiki-systeem inschakelen
+settings.use_internal_wiki=Ingebouwde wiki gebruiken
+settings.allow_public_wiki_desc=Allow public access to wiki when repository is private
settings.use_external_wiki=Externe wiki gebruiken
settings.external_wiki_url=Externe wiki-URL
settings.external_wiki_url_desc=Bezoekers worden doorgestuurd naar de URL als ze op het tabblad klikken.
-settings.issues_desc=Enable issue tracker
-settings.use_internal_issue_tracker=Use builtin lightweight issue tracker
+settings.issues_desc=Issuetracker inschakelen
+settings.use_internal_issue_tracker=Gebruik ingebouwde eenvoudige issuetracker
+settings.allow_public_issues_desc=Allow public access to issues when repository is private
settings.use_external_issue_tracker=Externe issuetracker gebruiken
+settings.external_tracker_url=URL externe issuetracker
+settings.external_tracker_url_desc=Bezoekers worden doorgestuurd naar de URL als ze op het tabblad klikken.
settings.tracker_url_format=URL-formaat externe issuetracker
-settings.tracker_issue_style=External Issue Tracker Naming Style:
-settings.tracker_issue_style.numeric=Numeric
-settings.tracker_issue_style.alphanumeric=Alphanumeric
+settings.tracker_issue_style=Naamgevingstijl externe issuetracker:
+settings.tracker_issue_style.numeric=Nummeriek
+settings.tracker_issue_style.alphanumeric=Alfanummeriek
settings.tracker_url_format_desc=U kan de aanduidingen {user} {repo} {index} gebruiken voor de gebruikersnaam, de naam van de repository en de lijst van open tickets.
-settings.pulls_desc=Schakel 'pull request' in om publieke bijdragen te mogelijk te maken
+settings.pulls_desc=Enable pull requests to accept contributions between repositories and branches
+settings.pulls.ignore_whitespace=Ignore changes in whitespace
+settings.pulls.allow_rebase_merge=Allow use rebase to merge commits
settings.danger_zone=Gevaren zone
+settings.cannot_fork_to_same_owner=You cannot fork a repository to its original owner.
settings.new_owner_has_same_repo=De nieuwe eigenaar heeft al een repositorie met deze naam
settings.convert=Converteren naar gewone repository
settings.convert_desc=U kunt deze mirror converteren naar een gewone repository. Dit kan niet ongedaan worden gemaakt.
@@ -672,7 +781,7 @@ settings.wiki_deletion_success=De repository met wiki data is succesvol gewist.
settings.delete=Verwijder deze repositorie
settings.delete_desc=Als u eenmaal een repositorie verwijderd is er geen weg terug. Gelieve zeker te zijn van uw acties.
settings.delete_notices_1=- Deze bewerking kan NIET ongedaan gemaakt worden.
-settings.delete_notices_2=- Deze bewerking verwijdert permanent alle informatie van deze repository met inbegrip van Git gegevens, tickets, opmerkingen en de toegang van medewerkers.
+settings.delete_notices_2=- This operation will permanently delete everything in this repository, including Git data, issues, comments and collaborator access.
settings.delete_notices_fork_1=- All forks will become independent after deletion.
settings.deletion_success=Repository is succesvol verwijderd!
settings.update_settings_success=Repositorie instellingen zijn succesvol bijgewerkt.
@@ -688,20 +797,25 @@ settings.collaborator_deletion_desc=Deze gebruiker zal niet langer toegang hebbe
settings.remove_collaborator_success=medewerker is verwijderd.
settings.search_user_placeholder=Zoek gebruiker...
settings.org_not_allowed_to_be_collaborator=De organisatie kan niet toegevoegd worden als medewerker.
-settings.user_is_org_member=Gebruiker is lid van de organisatie die als een medewerker kan niet worden toegevoegd.
-settings.add_webhook=Webhook toevoegen
settings.hooks_desc=Webhooks dat de externe diensten om kennisgevingen te ontvangen wanneer bepaalde gebeurtenissen op Gogs plaatsvinden. Wanneer de opgegeven gebeurtenissen plaatsvinden, sturen we een POST-aanvraag naar elk van de URL's die u opgeeft. Meer informatie vindt u in onze Webhooks gids.
+settings.webhooks.add_new=Add a new webhook:
+settings.webhooks.choose_a_type=Choose a type...
+settings.add_webhook=Webhook toevoegen
settings.webhook_deletion=Webhook verwijderen
settings.webhook_deletion_desc=Verwijderen van deze webhook zal de informatie en alle geschiedenis verwijderen. Wilt u doorgaan?
settings.webhook_deletion_success=Webhook is succesvol verwijderd!
settings.webhook.test_delivery=Test-bezorging
settings.webhook.test_delivery_desc=Stuur een nep push bericht om de webhook te testen
settings.webhook.test_delivery_success=De test webhook is toegevoegd aan de wachtrij. Het kan enkele seconden duren voor deze in de geschiedenis wordt weergegeven.
+settings.webhook.redelivery=Redelivery
+settings.webhook.redelivery_success=Hook task '%s' has been readded to delivery queue. It may take few seconds to update delivery status in history.
settings.webhook.request=Verzoek
settings.webhook.response=Antwoord
settings.webhook.headers=Headers
settings.webhook.payload=Lading
settings.webhook.body=Inhoud
+settings.webhook.err_cannot_parse_payload_url=Cannot parse payload URL: %v
+settings.webhook.url_resolved_to_blocked_local_address=Payload URL resolved to a local network address that is implicitly blocked.
settings.githooks_desc=Git haken worden aangedreven door Git zelf, u kunt bestanden van ondersteunde haken in de lijst hieronder om aangepaste acties van toepassing bewerken.
settings.githook_edit_desc=Als haak niet actief is, zal monster inhoud worden gepresenteerd. Verlof inhoud leeg zal deze haak uitschakelen.
settings.githook_name=Haak naam
@@ -711,6 +825,7 @@ settings.add_webhook_desc=We sturen een POST-aanvraag naar de onder
settings.payload_url=Nettolading URL
settings.content_type=Content type
settings.secret=Geheim
+settings.secret_desc=Secret will be sent as SHA256 HMAC hex digest of payload via X-Gogs-Signature header.
settings.slack_username=Gebruikersnaam
settings.slack_icon_url=Icoon URL
settings.slack_color=Kleur
@@ -720,10 +835,20 @@ settings.event_send_everything=Ik moet alles hebben.
settings.event_choose=Laat me kiezen wat ik nodig heb.
settings.event_create=Creëer
settings.event_create_desc=Branch, of tag aangemaakt
-settings.event_pull_request=Pull Request
-settings.event_pull_request_desc=Pull request opened, closed, reopened, edited, assigned, unassigned, label updated, label cleared, or synchronized.
+settings.event_delete=Verwijderen
+settings.event_delete_desc=Branch or tag deleted
+settings.event_fork=Fork
+settings.event_fork_desc=Repository forked
settings.event_push=Push
settings.event_push_desc=Git push naar een repository
+settings.event_issues=Issues
+settings.event_issues_desc=Issue opened, closed, reopened, edited, assigned, unassigned, label updated, label cleared, milestoned, or demilestoned.
+settings.event_pull_request=Pull request
+settings.event_pull_request_desc=Pull request opened, closed, reopened, edited, assigned, unassigned, label updated, label cleared, milestoned, demilestoned, or synchronized.
+settings.event_issue_comment=Issue Comment
+settings.event_issue_comment_desc=Issue comment created, edited, or deleted.
+settings.event_release=Release
+settings.event_release_desc=Release published in a repository.
settings.active=Actief
settings.active_helper=We zullen details van de gebeurtenissen af leveren wanneer deze webhook wordt geactiveerd.
settings.add_hook_success=Nieuwe webhook toegevoegd.
@@ -733,10 +858,13 @@ settings.delete_webhook=Webhook verwijderen
settings.recent_deliveries=Recente bezorgingen
settings.hook_type=Type hook
settings.add_slack_hook_desc= toegestane vertraging integratie toevoegen aan uw repository.
+settings.add_discord_hook_desc=Add Discord integration to your repository.
+settings.add_dingtalk_hook_desc=Add Dingtalk integration to your repository.
settings.slack_token=Slack token
settings.slack_domain=Slack domein
settings.slack_channel=Slack kanaal
settings.deploy_keys=Installeer sleutels
+settings.deploy_keys_helper=Common Gotcha! If you're looking for adding personal public keys, please add them in your account settings.
settings.add_deploy_key=Toevoegen deploy sleutel
settings.deploy_key_desc=Sleutels voor uitrol hebben enkel leesrechten. Ze zijn niet dezelfde als de SSH sleutels van persoonlijke accounts.
settings.no_deploy_keys=U hebt nog geen deploy sleutels toegevoegd.
@@ -748,6 +876,8 @@ settings.add_key_success=Nieuwe deploy sleutel '%s' werd succesvol toegevoegd!
settings.deploy_key_deletion=Verwijder deploy sleutel
settings.deploy_key_deletion_desc=Het verwijderen van deze deploy sleutel zal alle gerelateerde toegang verwijderen voor deze repositorie. Wilt u doorgaan?
settings.deploy_key_deletion_success=Deploy sleutel werd met succes verwijderd!
+settings.description_desc=Description of repository. Maximum 512 characters length.
+settings.description_length=Available characters
diff.browse_source=Bladeren bron
diff.parent=bovenliggende
@@ -766,7 +896,6 @@ release.releases=Releases
release.new_release=Nieuwe release
release.draft=Concept
release.prerelease=Voorlopige versie
-release.stable=Stabiel
release.edit=bewerken
release.ahead=%d aanpassingen aan %s sinds deze versie
release.source_code=Broncode
@@ -791,7 +920,7 @@ release.deletion=Release verwijderen
release.deletion_desc=Als deze release verwijdert, worden de bijbehorende Git tag ook gewist. Wilt u doorgaan?
release.deletion_success=Release is verwijderd!
release.tag_name_already_exist=Versie met deze naam bestaat al.
-release.tag_name_invalid=Tag name is not valid.
+release.tag_name_invalid=Labelnaam is niet geldig.
release.downloads=Downloads
[org]
@@ -813,8 +942,8 @@ team_name_helper=U gebruikt deze naam om dit team te vermelden in conversaties.
team_desc_helper=Waar gaat dit team doen?
team_permission_desc=Welke privileges zou dit team moeten hebben?
-form.name_reserved=Organisatienaam '%s' is gereserveerd.
-form.name_pattern_not_allowed=Organisatie naampatroon '%s' is niet toegestaan.
+form.name_not_allowed=Organization name or pattern %q is not allowed.
+form.team_name_not_allowed=Team name or pattern %q is not allowed.
settings=Instellingen
settings.options=Opties
@@ -847,7 +976,7 @@ members.invite_desc=Voeg nieuw lid toe aan %s:
members.invite_now=Nu uitnodigen
teams.join=Lid worden
-teams.leave=Vertlaat
+teams.leave=Verlaat
teams.read_access=Leestoegang
teams.read_access_helper=Dit team is in staat om zijn repositories te bekijken en te klonen.
teams.write_access=Schrijf toegang
@@ -886,12 +1015,19 @@ first_page=Eerste
last_page=Laatste
total=Totaal: %d
+dashboard.build_info=Build Information
+dashboard.app_ver=Application version
+dashboard.git_version=Git version
+dashboard.go_version=Go version
+dashboard.build_time=Build time
+dashboard.build_commit=Build commit
dashboard.statistic=Statistieken
dashboard.operations=Bewerkingen
dashboard.system_status=Status Systeemmonitor
dashboard.statistic_info=Gogs database heeft %d gebruikers, %d organisaties, %d openbare sleutels, %d repositories, %d volgers, %d sterren, %d acties, %d participanten, %d issues, %d reacties, %d sociale accounten, %d volgers, %d mirrors, %d publicaties, %d login bronnen, %d webhooks, %d mijlpalen, %d labels, %d hook taken, %d teams, %d bijgewerkte taken, %d bijlagen.
dashboard.operation_name=Bewerking naam
dashboard.operation_switch=Omschakelen
+dashboard.select_operation_to_run=Please select operation to run
dashboard.operation_run=Uitvoeren
dashboard.clean_unbind_oauth=Clean unbound OAuths
dashboard.clean_unbind_oauth_success=Alle OAuthes binding hebben verwijderd.
@@ -905,8 +1041,8 @@ dashboard.git_gc_repos=Garbage collectie uitvoeren
dashboard.git_gc_repos_success=Garbage collectie met succes uitgevoerd.
dashboard.resync_all_sshkeys=Herschrijf '.ssh/authorized_keys' (Let op: alle sleutels die niet van Gogs zijn zullen verloren gaan!)
dashboard.resync_all_sshkeys_success=Alle publieke sleutels zijn herschreven.
-dashboard.resync_all_update_hooks=Herschrijf alle repositorie-hooks (nodig als de configuratie bestandslocatie is gewijzigd)
-dashboard.resync_all_update_hooks_success=Alle repositorie-hooks zijn herschreven.
+dashboard.resync_all_hooks=Resync pre-receive, update and post-receive hooks of all repositories
+dashboard.resync_all_hooks_success=All repositories' pre-receive, update and post-receive hooks have been resynced successfully.
dashboard.reinit_missing_repos=Alle repositories zonder Git files opnieuw initialiseren
dashboard.reinit_missing_repos_success=Alle repositories zonder Git files zijn succesvol opnieuw geinitializeerd.
@@ -959,14 +1095,14 @@ users.edit_account=Bewerk account
users.max_repo_creation=Maximum-limiet voor aanmaken van repositories
users.max_repo_creation_desc=(Zet op -1 om de globale limiet te gebruiken)
users.is_activated=Dit account is geactiveerd
-users.prohibit_login=This account is prohibited to login
+users.prohibit_login=Dit account is verboden om in te loggen
users.is_admin=Dit account heeft beheerdersrechten
users.allow_git_hook=Deze account beschikt over machtigingen voor het maken van Git haken
users.allow_import_local=Dit account mag lokale repositories importeren
users.update_profile=Account profiel bijwerken
users.delete_account=Dit account verwijderen
users.still_own_repo=Dit account is nog steeds eigendom van een repositorie. U moet deze repositorie eerst verwijderen of overdragen.
-users.still_has_org=Deze account nog steeds lidmaatschap van organisatie, u hebt naar links of hen eerst verwijderen.
+users.still_has_org=Dit account is nog lid van ten minste één organisatie. Zeg dit lidmaatschap voor dit account op of verwijder de organisatie eerst.
users.deletion_success=Het account is verwijderd!
orgs.org_manage_panel=Organisaties beheren
@@ -980,30 +1116,38 @@ repos.name=Naam
repos.private=Prive
repos.watches=Volgers
repos.stars=Sterren
-repos.issues=Kwesties
+repos.issues=Issues
+repos.size=Size
-auths.auth_manage_panel=Authenticatie-beheer paneel
+auths.auth_sources=Authenticatiebronnen
auths.new=Nieuwe bron toevoegen
auths.name=Naam
auths.type=Type
auths.enabled=Ingeschakeld
+auths.default=Default
auths.updated=Bijgewerkt
auths.auth_type=Authenticatietype
auths.auth_name=Authenticatienaam
-auths.security_protocol=Security Protocol
+auths.security_protocol=Beveiligingsprotocol
auths.domain=Domein
auths.host=Host
auths.port=Poort
auths.bind_dn=Binden DN
+auths.bind_dn_helper=You can use '%s' as placeholder for username, e.g. DOM\%s
auths.bind_password=Bind wachtwoord
auths.bind_password_helper=Opgelet: Dit wachtwoord wordt opgeslagen als leesbare tekst. Gebruik geen account met verhoogde rechten.
auths.user_base=User Search Base
auths.user_dn=User DN
auths.attribute_username=Gebruikersnaam attribuut
auths.attribute_username_placeholder=Laat leeg om het login veld van het formulier te gebruiken als gebruikersnaam.
-auths.attribute_name=Voornaam attribuut
+auths.attribute_name=First Name Attribute
auths.attribute_surname=Achternaam attribuut
auths.attribute_mail=E-mail attribuut
+auths.verify_group_membership=Verify group membership
+auths.group_search_base_dn=Group Search Base DN
+auths.group_filter=Group Filter
+auths.group_attribute_contain_user_list=Group Attribute Containing List of Users
+auths.user_attribute_listed_in_group=User Attribute Listed in Group
auths.attributes_in_bind=Verkrijg attributes van de Bind DN context
auths.filter=Gebruikersfilter
auths.admin_filter=Beheerdersfilter
@@ -1017,9 +1161,9 @@ auths.enable_tls=Activeer TLS-encryptie
auths.skip_tls_verify=TLS-verificatie overslaan
auths.pam_service_name=PAM servicenaam
auths.enable_auto_register=Activeer automatische registratie
-auths.tips=Tips
auths.edit=Verificatie-instelling bewerken
auths.activated=Deze autorisatiemethode is geactiveerd
+auths.default_auth=Deze authenticatie bron is de standaard bron
auths.new_success=Nieuwe authenticatie '%s' werd toegevoegd.
auths.update_success=Authenticatie instellingen zijn succesvol gewijzigd.
auths.update=Authenticatie-instellingen bijwerken
@@ -1027,108 +1171,190 @@ auths.delete=Deze authenticatiewijze verwijderen
auths.delete_auth_title=Authenticatie verwijderd
auths.delete_auth_desc=Deze authenticatie zal verwijderd worden, wil je verdergaan?
auths.still_in_used=This authentication is still used by some users, please delete or convert these users to another login type first.
-auths.deletion_success=Authentication has been deleted successfully!
+auths.deletion_success=Authenticatie is met succes verwijderd!
+auths.login_source_exist=Login source '%s' already exists.
+auths.github_api_endpoint=API Endpoint
+config.not_set=(not set)
config.server_config=Serverconfiguratie
-config.app_name=Applicatienaam
-config.app_ver=Applicatieversie
-config.app_url=Applicatie-URL
-config.domain=Domein
-config.offline_mode=Offline-modus
-config.disable_router_log=Router-log uitschakelen
+config.brand_name=Brand name
config.run_user=Uitvoerende gebruiker
config.run_mode=Uitvoer modus
-config.repo_root_path=Repositorie basis pad
-config.static_file_root_path=Statische bestanden basis pad
-config.log_file_root_path=Log bestand basis pad
-config.script_type=Script type
-config.reverse_auth_user=Omgekeerde verificatie gebruiker
+config.server.external_url=External URL
+config.server.domain=Domain
+config.server.protocol=Protocol
+config.server.http_addr=HTTP address
+config.server.http_port=HTTP port
+config.server.cert_file=Certificate file
+config.server.key_file=Key file
+config.server.tls_min_version=Minimum TLS version
+config.server.unix_socket_permission=Unix socket permission
+config.server.local_root_url=Local root URL
+config.server.offline_mode=Offline mode
+config.server.disable_router_log=Disable router log
+config.server.enable_gzip=Enable Gzip
+config.server.app_data_path=Application data path
+config.server.load_assets_from_disk=Load assets from disk
+config.server.landing_url=Landing URL
config.ssh_config=SSH-configuratie
-config.ssh_enabled=Ingeschakeld
-config.ssh_start_builtin_server=Ingebouwde server starten
-config.ssh_domain=Domein
-config.ssh_port=Poort
-config.ssh_listen_port=Luister op poort
-config.ssh_root_path=Root-pad
-config.ssh_key_test_path=Pad voor key-tests
-config.ssh_keygen_path=Pad van keygen ('ssh-keygen')
-config.ssh_minimum_key_size_check=Controleer minimale key-lengte
-config.ssh_minimum_key_sizes=Minimale key-lengtes
+config.ssh.enabled=Enabled
+config.ssh.domain=Exposed domain
+config.ssh.port=Exposed port
+config.ssh.root_path=Root path
+config.ssh.keygen_path=Keygen path
+config.ssh.key_test_path=Key test path
+config.ssh.minimum_key_size_check=Minimum key size check
+config.ssh.minimum_key_sizes=Minimum key sizes
+config.ssh.rewrite_authorized_keys_at_start=Rewrite "authorized_keys" at start
+config.ssh.start_builtin_server=Start builtin server
+config.ssh.listen_host=Listen host
+config.ssh.listen_port=Listen port
+config.ssh.server_ciphers=Server ciphers
+config.ssh.server_macs=Server MACs
+config.ssh.server_algorithms=Server algorithms
+
+config.repo_config=Repository configuration
+config.repo.root_path=Root path
+config.repo.script_type=Script type
+config.repo.ansi_chatset=ANSI charset
+config.repo.force_private=Force private
+config.repo.max_creation_limit=Max creation limit
+config.repo.preferred_licenses=Preferred licenses
+config.repo.disable_http_git=Disable HTTP Git
+config.repo.enable_local_path_migration=Enable local path migration
+config.repo.enable_raw_file_render_mode=Enable raw file render mode
+config.repo.commits_fetch_concurrency=Commits fetch concurrency
+config.repo.editor.line_wrap_extensions=Editor line wrap extensions
+config.repo.editor.previewable_file_modes=Editor previewable file modes
+config.repo.upload.enabled=Upload enabled
+config.repo.upload.temp_path=Upload temporary path
+config.repo.upload.allowed_types=Upload allowed types
+config.repo.upload.file_max_size=Upload file size limit
+config.repo.upload.max_files=Upload files limit
config.db_config=Databaseconfiguratie
-config.db_type=Type
-config.db_host=Host
-config.db_name=Naam
-config.db_user=Gebruiker
-config.db_ssl_mode=SSL modus
-config.db_ssl_mode_helper=(alleen voor "postgres")
-config.db_path=Pad
-config.db_path_helper=(voor "sqlite3" en "tidb")
-
-config.service_config=Serviceconfiguratie
-config.register_email_confirm=E-mailbevestiging registreren
-config.disable_register=Registratie uitgeschakeld
-config.show_registration_button=Registeren knop weergeven
-config.require_sign_in_view=Inloggen vereist om te kunnen inzien
-config.mail_notify=E-mailnotificaties
-config.disable_key_size_check=Controle op key-lengte uitschakelen
-config.enable_captcha=CAPTCHA inschakelen
-config.active_code_lives=Actieve Code leven
-config.reset_password_code_lives=Reset wachtwoord Code leven
+config.db.type=Type
+config.db.host=Host
+config.db.name=Name
+config.db.schema=Schema
+config.db.schema_helper=(for "postgres" only)
+config.db.user=User
+config.db.ssl_mode=SSL mode
+config.db.ssl_mode_helper=(for "postgres" only)
+config.db.path=Path
+config.db.path_helper=(for "sqlite3"only)
+config.db.max_open_conns=Maximum open connections
+config.db.max_idle_conns=Maximum idle connections
+
+config.security_config=Security configuration
+config.security.login_remember_days=Login remember days
+config.security.cookie_remember_name=Remember cookie
+config.security.cookie_username=Username cookie
+config.security.cookie_secure=Enable secure cookie
+config.security.reverse_proxy_auth_user=Reverse proxy authentication header
+config.security.enable_login_status_cookie=Enable login status cookie
+config.security.login_status_cookie_name=Login status cookie
+config.security.local_network_allowlist=Local network allowlist
+
+config.email_config=Email configuration
+config.email.enabled=Enabled
+config.email.subject_prefix=Subject prefix
+config.email.host=Host
+config.email.from=From
+config.email.user=User
+config.email.disable_helo=Disable HELO
+config.email.helo_hostname=HELO hostname
+config.email.skip_verify=Skip certificate verify
+config.email.use_certificate=Use custom certificate
+config.email.cert_file=Certificate file
+config.email.key_file=Key file
+config.email.use_plain_text=Use plain text
+config.email.add_plain_text_alt=Add plain text alternative
+config.email.send_test_mail=Send test email
+config.email.test_mail_failed=Failed to send test email to '%s': %v
+config.email.test_mail_sent=Test email has been sent to '%s'.
+
+config.auth_config=Authentication configuration
+config.auth_custom_logout_url=Custom logout URL
+config.auth.activate_code_lives=Activate code lives
+config.auth.reset_password_code_lives=Reset password code lives
+config.auth.require_email_confirm=Require email confirmation
+config.auth.require_sign_in_view=Require sign in view
+config.auth.disable_registration=Disable registration
+config.auth.enable_registration_captcha=Enable registration captcha
+config.auth.enable_reverse_proxy_authentication=Enable reverse proxy authentication
+config.auth.enable_reverse_proxy_auto_registration=Enable reverse proxy auto registration
+config.auth.reverse_proxy_authentication_header=Reverse proxy authentication header
+
+config.user_config=User configuration
+config.user.enable_email_notify=Enable email notification
-config.webhook_config=Webhook configuratie
-config.queue_length=Lengte van wachtrij
-config.deliver_timeout=Bezorging verlooptijd
-config.skip_tls_verify=TLS certificaat controle overslaan
-
-config.mailer_config=Mailerconfiguatie
-config.mailer_enabled=Ingeschakeld
-config.mailer_disable_helo=Schakel HELO uit
-config.mailer_name=Naam
-config.mailer_host=Host
-config.mailer_user=Gebruiker
-config.send_test_mail=Testbericht verzenden
-config.test_mail_failed=Verzending van een testmail naar '%s' is mislukt: %v
-config.test_mail_sent=Test-email is verstuurd naar '%s'.
-
-config.oauth_config=OAuth-configuratie
-config.oauth_enabled=Ingeschakeld
+config.session_config=Sessieconfiguratie
+config.session.provider=Provider
+config.session.provider_config=Provider config
+config.session.cookie_name=Cookie
+config.session.https_only=HTTPS only
+config.session.gc_interval=GC interval
+config.session.max_life_time=Max life time
+config.session.csrf_cookie_name=CSRF cookie
config.cache_config=Cache-configuratie
-config.cache_adapter=Cache-adapter
-config.cache_interval=Cache-interval
-config.cache_conn=Cache-connectie
-
-config.session_config=Sessieconfiguratie
-config.session_provider=Sessieprovider
-config.provider_config=Provider config
-config.cookie_name=Cookie naam
-config.enable_set_cookie=Set Cookie inschakelen
-config.gc_interval_time=GC interval time
-config.session_life_time=Sessie duur
-config.https_only=Alleen HTTPS
-config.cookie_life_time=Cookie duur leeftijd
+config.cache.adapter=Adapter
+config.cache.interval=GC interval
+config.cache.host=Host
+
+config.http_config=HTTP configuration
+config.http.access_control_allow_origin=Access control allow origin
+
+config.attachment_config=Attachment configuration
+config.attachment.enabled=Enabled
+config.attachment.path=Path
+config.attachment.allowed_types=Allowed types
+config.attachment.max_size=Size limit
+config.attachment.max_files=Files limit
+
+config.release_config=Release configuration
+config.release.attachment.enabled=Attachment enabled
+config.release.attachment.allowed_types=Attachment allowed types
+config.release.attachment.max_size=Attachment size limit
+config.release.attachment.max_files=Attachment files limit
config.picture_config=Foto configuratie
-config.picture_service=Foto service
-config.disable_gravatar=Gravatar uitschakelen
-config.enable_federated_avatar=Enable Federated Avatars
-
-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
+config.picture.avatar_upload_path=User avatar upload path
+config.picture.repo_avatar_upload_path=Repository avatar upload path
+config.picture.gravatar_source=Gravatar source
+config.picture.disable_gravatar=Disable Gravatar
+config.picture.enable_federated_avatar=Enable federated avatars
+
+config.mirror_config=Mirror configuration
+config.mirror.default_interval=Default interval
+
+config.webhook_config=Webhook configuratie
+config.webhook.types=Types
+config.webhook.deliver_timeout=Deliver timeout
+config.webhook.skip_tls_verify=Skip TLS verify
+
+config.git_config=Gitconfiguratie
+config.git.disable_diff_highlight=Disable diff syntax highlight
+config.git.max_diff_lines=Diff lines limit (for a single file)
+config.git.max_diff_line_characters=Diff characters limit (for a single line)
+config.git.max_diff_files=Diff files limit (for a single diff)
+config.git.gc_args=GC arguments
+config.git.migrate_timeout=Migration timeout
+config.git.mirror_timeout=Mirror fetch timeout
+config.git.clone_timeout=Clone timeout
+config.git.pull_timeout=Pull timeout
+config.git.gc_timeout=GC timeout
+
+config.lfs_config=LFS configuration
+config.lfs.storage=Storage
+config.lfs.objects_path=Objects path
config.log_config=Logconfiguratie
-config.log_mode=Log-modus
+config.log_file_root_path=Log bestand basis pad
+config.log_mode=Mode
+config.log_options=Options
monitor.cron=Cron-taken
monitor.name=Naam
@@ -1157,19 +1383,26 @@ notices.delete_success=System notices have been deleted successfully.
[action]
create_repo=repositorie aangemaakt in %s
-rename_repo=renamed repository from %[1]s to %[3]s
+rename_repo=hernoemde repository van %[1]s naar %[3]s
commit_repo=push update naar %[3]s in %[4]s
+compare_commits=Toon vergelijking voor deze %d commits
+transfer_repo=repositorie verplaatst naar %s naar %s
create_issue=`opende issue in %s#%[2]s`
-close_issue=`closed issue %s#%[2]s`
-reopen_issue=`reopened issue %s#%[2]s`
-create_pull_request=`created pull request %s#%[2]s`
-close_pull_request=`closed pull request %s#%[2]s`
-reopen_pull_request=`reopened pull request %s#%[2]s`
+close_issue=`gesloten issue %s#%[2]s`
+reopen_issue=`heropende issue %s#%[2]s`
comment_issue=`reactie op issue %s#%[2]s`
-merge_pull_request=`merged pull request %s#%[2]s`
-transfer_repo=repositorie verplaatst naar %s naar %s
+create_pull_request=`maakte pull request %s#%[2]s`
+close_pull_request=`sloot pull request %s#%[2]s`
+reopen_pull_request=`heropende pull request %s#%[2]s`
+merge_pull_request=`voegde pull request samen %s#%[2]s`
+create_branch=created new branch %[3]s at %[4]s
+delete_branch=deleted branch %[2]s at %[3]s
push_tag=geduwd label %[2]s naar %[3]s
-compare_commits=Toon vergelijking voor deze %d commits
+delete_tag=deleted tag %[2]s at %[3]s
+fork_repo=forked a repository to %s
+mirror_sync_push=synced commits to %[3]s at %[4]s from mirror
+mirror_sync_create=synced new reference %[2]s to %[3]s from mirror
+mirror_sync_delete=synced and deleted reference %[2]s at %[3]s from mirror
[tool]
ago=geleden
@@ -1191,6 +1424,7 @@ months=%d maanden %s
years=%d jaren %s
raw_seconds=seconden
raw_minutes=minuten
+raw_hours=hours
[dropzone]
default_message=Drop bestanden hier of klik om te uploaden.
diff --git a/conf/locale/locale_pl-PL.ini b/conf/locale/locale_pl-PL.ini
index cabffb1db36..6eaab7b746b 100644
--- a/conf/locale/locale_pl-PL.ini
+++ b/conf/locale/locale_pl-PL.ini
@@ -9,7 +9,6 @@ sign_out=Wyloguj
sign_up=Zarejestruj się
register=Zarejestruj się
website=Strona
-version=Wersja
page=Strona
template=Szablon
language=Język
@@ -44,23 +43,27 @@ issues=Problemy
cancel=Anuluj
+[status]
+page_not_found=Strona nie została znaleziona
+internal_server_error=Wewnętrzny błąd serwera
+
[install]
install=Instalacja
title=Kroki instalacyjne dla pierwszego uruchomienia
docker_helper=Jeśli używasz Gogs wewnątrz Dockera, proszę przeczytaj wytyczne, zanim zmienisz coś na tej stronie!
-requite_db_desc=Gogs wymaga MySQL, PostgreSQL, SQLite3 lub TiDB.
+requite_db_desc=Gogs requires MySQL, PostgreSQL, SQLite3 or TiDB (via MySQL protocol).
db_title=Ustawienia bazy danych
db_type=Typ bazy danych
host=Host
user=Użytkownik
password=Hasło
db_name=Nazwa bazy danych
+db_schema=Schema
db_helper=Proszę użyć silnika INNODB z kodowaniem utf8_general_ci dla MySQL.
ssl_mode=Tryb SSL
path=Ścieżka
-sqlite_helper=Ścieżka do pliku bazy danych SQLite3 lub TiDB. Proszę użyć ścieżki bezwzględnej podczas uruchamiania usługi.
-err_empty_db_path=Ścieżka do bazy danych SQLite3 lub TiDB nie może być pusta.
-err_invalid_tidb_name=Nazwa bazy danych TiDB nie może zawierać znaków "." i "-".
+sqlite_helper=Ścieżka do pliku bazy danych SQLite3. Proszę użyć ścieżki bezwzględnej podczas uruchamiania usługi.
+err_empty_db_path=Ścieżka do pliku bazy danych SQLite3 nie może być pusta.
no_admin_and_disable_registration=Rejestracji nie można wyłączyć bez tworzenia konta admina.
err_empty_admin_password=Hasło admina nie może być puste.
@@ -75,18 +78,23 @@ domain=Domena
domain_helper=To wpłynie na URLe do klonowania poprzez SSH.
ssh_port=Port SSH
ssh_port_helper=Numer portu, z którego korzysta z serwer SSH; pozostaw puste, aby wyłączyć funkcję SSH.
+use_builtin_ssh_server=Użyj wbudowanego serwera SSH
+use_builtin_ssh_server_popup=Uruchom wbudowany serwer SSH dla odróżnienia operacji GIT od systemowego demona SSH.
http_port=Port HTTP
http_port_helper=Numer portu na którym aplikacja jest dostępna.
app_url=Adres URL aplikacji
app_url_helper=To wpłynie na adresy klonowania HTTP/HTTPS i w wiadomościach e-mail.
log_root_path=Ścieżka dla logów
log_root_path_helper=Katalog do zapisu logów.
+enable_console_mode=Włącz tryb konsolowy
+enable_console_mode_popup=Oprócz zapisywania do pliku wyświetlaj logi także w konsoli.
+default_branch=Default Branch
optional_title=Ustawienia opcjonalne
email_title=Ustawienia serwera e-mail
smtp_host=Serwer SMTP
smtp_from=Od
-smtp_from_helper=Adres w polu "Od", zgodnie z RFC 5322. Może być to po prostu adres email, bądź adres w formacie "Nazwa" .
+smtp_from_helper=Adres w polu „Od”, zgodnie z RFC 5322. Może być to po prostu adres email, bądź adres w formacie „Nazwa” .
mailer_user=E-mail nadawcy
mailer_password=Hasło nadawcy
register_confirm=Włącz potwierdzenia rejestracji
@@ -96,8 +104,8 @@ offline_mode=Włącz tryb offline
offline_mode_popup=Wyłącz CDN, nawet w trybie produkcyjnym, wszystkie pliki zasobów będą podawane lokalnie.
disable_gravatar=Wyłącz usługę Gravatar
disable_gravatar_popup=Wyłącz Gravatar i niestandardowe źrodła, awatary muszą być przesyłane przez użytkowników.
-federated_avatar_lookup=Enable Federated Avatars Lookup
-federated_avatar_lookup_popup=Enable federated avatars lookup to use federated open source service based on libravatar.
+federated_avatar_lookup=Włączyć wyszukiwanie avatarów w powiązanych systemach
+federated_avatar_lookup_popup=Włączyć wyszukiwanie avatarów w powiązanych systemach opartych na usłudze libravatar.
disable_registration=Wyłącz samodzielną rejestrację
disable_registration_popup=Wyłącz samodzielną rejestrację użytkownika, tylko administrator będzie mógł tworzyć konta.
enable_captcha=Włącz Captcha
@@ -111,12 +119,15 @@ admin_password=Hasło
confirm_password=Potwierdź hasło
admin_email=E-mail administratora
install_gogs=Zainstaluj Gogs
-test_git_failed=Nie udało się przetestować polecenia "git": %v
+test_git_failed=Nie udało się przetestować polecenia „git”: %v
sqlite3_not_available=Twoje wydanie nie obsługuje SQLite3, proszę pobrać oficjalne wydanie z %s, a NIE wersję z gobuild.
invalid_db_setting=Ustawienia bazy danych nie są poprawne: %v
invalid_repo_path=Ścieżka repozytoriów nie jest poprawna: %v
run_user_not_match=Użytkownik aplikacji nie jest aktualnym użytkownikiem: %s -> %s
+smtp_host_missing_port=W SMTP Host brakuje portu w adresie.
+invalid_smtp_from=Pole SMTP OD nie jest prawidłowe: %v
save_config_failed=Nie udało się zapisać konfiguracji: %v
+init_failed=Nie udało się zainicjować aplikacji: %v
invalid_admin_setting=Nieprawidłowe ustawienia konta admina: %v
install_success=Cześć! Cieszymy się, że wybierałeś Gogs, baw się dobrze.
invalid_log_root_path=Ścieżka dla logów jest niepoprawna: %v
@@ -137,6 +148,7 @@ issues.in_your_repos=W Twoich repozytoriach
[explore]
repos=Repozytoria
users=Użytkownicy
+organizations=Organizacje
search=Wyszukiwanie
[auth]
@@ -145,6 +157,8 @@ register_hepler_msg=Masz już konto? Zaloguj się teraz!
social_register_hepler_msg=Masz już konto? Powiąż je teraz!
disable_register_prompt=Przepraszamy rejestracja została wyłączona. Prosimy o kontakt z administratorem serwisu.
disable_register_mail=Przepraszamy, potwierdzenia rejestracji zostały wyłączone przez administratora.
+auth_source=Źródło uwierzytelniania
+local=Lokalne
remember_me=Zapamiętaj mnie
forgot_password=Zapomniałem hasła
forget_password=Zapomniałeś hasła?
@@ -156,7 +170,6 @@ prohibit_login_desc=Nie możesz się zalogować na to konto, skontaktuj się z
resent_limit_prompt=Niestety, zbyt często wysyłasz e-mail aktywacyjny. Proszę odczekać 3 minuty.
has_unconfirmed_mail=Witaj, %s, masz niepotwierdzony adres e-mail (%s). Jeśli nie otrzymałeś wiadomości e-mail z potwierdzeniem lub potrzebujesz wysłać nową, kliknij na poniższy przycisk.
resend_mail=Kliknij tutaj, aby wysłać e-mail aktywacyjny
-email_not_associate=Ten adres e-mail nie jest skojarzony z żadnym kontem.
send_reset_mail=Kliknij tutaj, aby (ponownie) wysłać e-mail z instrukcjami resetowania hasła
reset_password=Resetowanie hasła
invalid_code=Niestety, Twój kod potwierdzający wygasł lub jest nieprawidłowy.
@@ -164,6 +177,14 @@ reset_password_helper=Kliknij tutaj, aby zresetować hasło
password_too_short=Długość hasła nie może być mniejsza niż 6 znaków.
non_local_account=Nie lokalne konta nie mogą zmieniać haseł przez Gogs.
+login_two_factor=Weryfikacja dwuetapowa
+login_two_factor_passcode=Kod uwierzytelniania
+login_two_factor_enter_recovery_code=Wprowadź kod odzyskiwania weryfikacji dwuetapowej
+login_two_factor_recovery=Dwuetapowe odzyskiwanie kodu
+login_two_factor_recovery_code=Kod odzyskiwania
+login_two_factor_enter_passcode=Wprowadź hasło dwuetapowe
+login_two_factor_invalid_recovery_code=Kod odzyskiwania został już wykorzystany lub nie jest prawidłowy.
+
[mail]
activate_account=Prosimy aktywować swoje konto
activate_email=Potwierdź swój adres e-mail
@@ -190,15 +211,16 @@ AuthName=Nazwa autoryzacji
AdminEmail=E-mail administratora
NewBranchName=Nazwa nowej gałęzi
-CommitSummary=Commit summary
-CommitMessage=Commit message
-CommitChoice=Commit choice
+CommitSummary=Podsumowanie commitu
+CommitMessage=Wiadomość commitu
+CommitChoice=Wybór commitu
TreeName=Ścieżka pliku
-Content=Content
+Content=Treść
require_error=` nie może być puste.`
alpha_dash_error=` musi się składać z prawidłowych znaków alfanumerycznych, myślników oraz podkreśleń.`
alpha_dash_dot_error=` musi się składać z prawidłowych znaków alfanumerycznych, myślników, podkreśleń oraz kropek.`
+alpha_dash_dot_slash_error=` musi być alfa/numeryczny lub zawierać daszek, myślnik, kropkę lub ukośnik.`
size_error=` musi być wielkości %s.`
min_size_error=` musi zawierać co najwyżej %s znaków.`
max_size_error=` musi zawierać co najwyżej %s znaków.`
@@ -215,6 +237,7 @@ org_name_been_taken=Nazwa organizacji jest już zajęta.
team_name_been_taken=Nazwa zespołu jest już zajęta.
email_been_used=Adres e-mail jest już zarejestrowany.
username_password_incorrect=Nazwa użytkownika lub hasło nie jest prawidłowe.
+auth_source_mismatch=Wybrane źródło uwierzytelniania nie jest związane z użytkownikiem.
enterred_invalid_repo_name=Upewnij się, że wprowadzona nazwa repozytorium jest poprawna.
enterred_invalid_owner_name=Upewnij się, że nazwa właściciela repozytorium jest poprawna.
enterred_invalid_password=Proszę upewnij się, że wprowadzono hasło jest poprawne.
@@ -242,19 +265,18 @@ following=Obserwowani
follow=Obserwuj
unfollow=Przestań obserwować
-form.name_reserved=Nazwa użytkownika "%s" jest zarezerwowana.
-form.name_pattern_not_allowed=Wzorzec nazwy użytkownika "%s" jest niedozwolony.
+form.name_not_allowed=Nazwa użytkownika lub wzór %q jest niedozwolony.
[settings]
profile=Profil
password=Hasło
-avatar=Avatar
+avatar=Awatar
ssh_keys=Klucze SSH
-social=Konta społecznościowe
-applications=Aplikacje
+security=Bezpieczeństwo
+repos=Repozytoria
orgs=Organizacje
+applications=Aplikacje
delete=Usuń konto
-uid=UID
public_profile=Profil publiczny
profile_desc=Twój adres e-mail jest publiczny i będzie używany dla wszystkich powiadomień związanych z kontem i dla każdej operacji wykonanej przez tę stronę.
@@ -269,8 +291,8 @@ change_username_prompt=Ta zmiana wpłynie na sposób w jaki łącza odnoszą si
continue=Kontynuuj
cancel=Anuluj
-lookup_avatar_by_mail=Lookup Avatar by mail
-federated_avatar_lookup=Federated Avatar Lookup
+lookup_avatar_by_mail=Wyszukaj Avatar po mailu
+federated_avatar_lookup=Wyszukiwanie Avatarów w powiązanych systemach
enable_custom_avatar=Włącz niestandardowe awatary
choose_new_avatar=Wybierz nowy avatar
update_avatar=Zaktualizuj ustawienia awatara
@@ -295,6 +317,7 @@ delete_email=Usuń
email_deletion=Usunięcie wiadomości e-mail
email_deletion_desc=Usunięcie tego adresu e-mail spowoduje usunięcie innych informacji związanych z Twoim kontem. Czy chcesz kontynuować?
email_deletion_success=E-mail został usunięty pomyślnie!
+email_deletion_primary=Cannot delete primary email address.
add_new_email=Dodaj nowy e-mail
add_email=Dodaj e-mail
add_email_confirmation_sent=Nowa wiadomość e-mail z potwierdzeniem została wysłana do '%s', proszę sprawdzić swoją skrzynkę odbiorczą w ciągu %d godzin, aby dokończyć proces potwierdzania.
@@ -320,14 +343,36 @@ no_activity=Brak aktywności
key_state_desc=Ten klucz został użyty w ciągu ostatnich 7 dni
token_state_desc=Ten token został użyty w ciągu ostatnich 7 dni
-manage_social=Zarządzaj powiązanymi kontami społecznościowymi
-social_desc=To jest lista powiązanych kont społecznościowych. Usuń powiązania, których nie rozpoznajesz.
-unbind=Usuń powiązanie
-unbind_success=Konto społecznościowe zostało odpięte.
+two_factor=Weryfikacja dwuetapowa
+two_factor_status=Status:
+two_factor_on=Włączony
+two_factor_off=Wyłączony
+two_factor_enable=Włącz
+two_factor_disable=Wyłącz
+two_factor_view_recovery_codes=Wyświetl i zapisz Twoje kody odzyskiwania w bezpiecznym miejscu. Można użyć ich jako kod dostępu, jeśli stracisz dostęp do aplikacji uwierzytelniania.
+two_factor_http=Dla operacji HTTP/HTTPS już nie jest obsługiwana zwykła nazwa użytkownika i hasło. Prosimy o tworzenie i używanie osobistych tokenów dostępu jako swoich poświadczeń, np.: %[3]s.
+two_factor_enable_title=Włącz weryfikację dwuetapową
+two_factor_scan_qr=Proszę używać uwierzytelniania aplikacji do skanowania obrazów:
+two_factor_or_enter_secret=Lub wprowadź sekret:
+two_factor_then_enter_passcode=Następnie wprowadź kod dostępu:
+two_factor_verify=Weryfikuj
+two_factor_invalid_passcode=Wprowadzony kod nie jest prawidłowy, spróbuj ponownie!
+two_factor_reused_passcode=Ten kod jest już używany, spróbuj ponownie!
+two_factor_enable_error=Włączenie dwuetapowego uwierzytelniania nie powiodło się: %v
+two_factor_enable_success=Uwierzytelnianie dwuetapowe Twojego konta zostało włączone pomyślnie!
+two_factor_recovery_codes_title=Kody odzyskiwania uwierzytelniania dwuetapowego
+two_factor_recovery_codes_desc=Kody odzyskiwania są używane, gdy tymczasowo utracić dostęp do aplikacji uwierzytelniania. Każdy kod odzyskiwania może być tylko używany raz, Proszę zachować te kody w bezpiecznym miejscu.
+two_factor_regenerate_recovery_codes=Ponownie wygeneruj kody odzyskiwania
+two_factor_regenerate_recovery_codes_error=Ponowne wygenerowanie kodu odzyskiwania nie powiodło się: %v
+two_factor_regenerate_recovery_codes_success=Nowy kod odzyskiwania został wygenerowany pomyślnie!
+two_factor_disable_title=Wyłącz weryfikację dwuetapową
+two_factor_disable_desc=Poziom zabezpieczeń konta zmniejszy się po wyłączeniu uwierzytelnianie dwuetapowego. Czy chcesz kontynuować?
+two_factor_disable_success=Uwierzytelnianie dwuetapowe wyłączono pomyślnie!
manage_access_token=Zarządzaj osobistymi tokenami dostępu
generate_new_token=Wygeneruj nowy token
tokens_desc=Tokeny, które wygenerowałeś, mogą być użyte do dostępu do API Gogs.
+access_token_tips=The personal access token may be used as either username or password. It is recommended to use the "x-access-token" as the username and the personal access token as the password for Git applications.
new_token_desc=Jak na razie, każdy token zapewnia pełen dostęp do Twojego konta.
token_name=Nazwa tokena
generate_token=Wygeneruj token
@@ -336,6 +381,16 @@ delete_token=Usuń
access_token_deletion=Usuwanie osobistego tokena dostępu
access_token_deletion_desc=Usunięcie tego tokena osobistego dostęp spowoduje usunięcie wszystkich powiązanych dostępów do aplikacji. Czy chcesz kontynuować?
delete_token_success=Osobisty token dostępu został usunięty pomyślnie! Nie zapomnij również zaktualizować swoich aplikacji.
+token_name_exists=Token o takiej nawie już istniej.
+
+orgs.none=Nie jesteś członkiem żadnej organizacji.
+orgs.leave_title=Opuść organizację
+orgs.leave_desc=Po opuszczeniu organizacji utracisz dostęp do wszystkich repozytoriów i zespołów. Czy chcesz kontynuować?
+
+repos.leave=Opuść
+repos.leave_title=Opuść repozytorium
+repos.leave_desc=Po opuszczeniu, stracisz dostęp do repozytorium. Czy chcesz kontynuować?
+repos.leave_success=Pomyślnie opuściłeś repozytorium '%s'!
delete_account=Usuń swoje konto
delete_prompt=Ta operacja trwale usunie Twoje konto i NIE MOŻE zostać cofnięta!
@@ -348,7 +403,9 @@ owner=Właściciel
repo_name=Nazwa repozytorium
repo_name_helper=Dobre nazwy repozytorium są krótkie, wpadające w pamięć i unikalne.
visibility=Widoczność
+unlisted=Unlisted
visiblity_helper=To repozytorium jest prywatne
+unlisted_helper=This repository is Unlisted
visiblity_helper_forced=Administrator systemu wymaga, żeby wszystkie nowe repozytoria były Prywatne
visiblity_fork_helper=(Zmiana tej wartości wpłynie na wszystkie forki)
clone_helper=Potrzebujesz pomocy z klonowaniem? Odwiedź Pomoc!
@@ -357,7 +414,7 @@ fork_from=Forkuj z
fork_visiblity_helper=Fork nie może zmieniać swojej widoczności
repo_desc=Opis
repo_lang=Język
-repo_gitignore_helper=Select .gitignore templates
+repo_gitignore_helper=Wybierz szablony pliku .gitignore
license=Licencja
license_helper=Wybierz plik licencji
readme=Readme
@@ -370,28 +427,30 @@ mirror_prune_desc=Usuń wszystkie śledzone odwołania które nie istnieją w zd
mirror_interval=Częstotliwość kopiowania (godziny)
mirror_address=Adres kopii lustrzanej
mirror_address_desc=Proszę podać wymagane poświadczenia użytkownika w adresie.
-mirror_last_synced=Last Synced
+mirror_last_synced=Ostatnia synchronizacja
watchers=Obserwujący
stargazers=Polubienia
forks=Forki
+repo_description_helper=Opis repozytorium. Maksymalnie 512 znaków.
+repo_description_length=Dostępne znaki
form.reach_limit_of_creation=Właściciel osiągnął limit maksymalnej ilości repozytoriów %d.
-form.name_reserved=Nazwa repozytorium "%s" jest zarezerwowana.
-form.name_pattern_not_allowed=Wzorzec nazwy repozytorium "%s" jest niedozwolony.
+form.name_not_allowed=Nazwa repozytorium lub wzór %q jest niedozwolony.
need_auth=Wymaga autoryzacji
migrate_type=Typ migracji
migrate_type_helper=To repozytorium będzie kopią lustrzaną
migrate_repo=Przenieś repozytorium
migrate.clone_address=Sklonuj adres
-migrate.clone_address_desc=To może być adres HTTP/HTTPS/GIT lub ścieżka lokalna serwera.
+migrate.clone_address_desc=URL może być adresem HTTP/HTTPS/GIT.
+migrate.clone_address_desc_import_local=Masz także możliwość migracji repozytorium przez ścieżka serwera lokalnego.
migrate.permission_denied=Nie możesz importować lokalnych repozytoriów.
migrate.invalid_local_path=Ścieżka jest niepoprawna. Nie istnieje lub nie jest katalogiem.
+migrate.clone_address_resolved_to_blocked_local_address=Clone address resolved to a local network address that is implicitly blocked.
migrate.failed=Migracja nie powiodła się: %v
mirror_from=kopia lustrzana
forked_from=sklonowany z
-fork_from_self=Nie możesz forkować swojego własnego repozytorium!
copy_link=Kopiuj
copy_link_success=Skopiowane!
copy_link_error=Naciśnij klawisze ⌘-C i Ctrl-C, aby skopiować
@@ -407,9 +466,9 @@ quick_guide=Skrócona instrukcja
clone_this_repo=Klonuj repozytorium
create_new_repo_command=Utwórz nowe repozytorium z wiersza poleceń
push_exist_repo=Prześlij istniejące repozytorium z wiersza poleceń
-repo_is_empty=To repozytorium jest puste, proszę wrócić później!
+bare_message=To repozytorium nie ma jeszcze żadnej zawartości.
-code=Kod
+files=Pliki
branch=Gałąź
tree=Drzewo
filter_branch_and_tag=Filtruj gałąź lub tag
@@ -420,51 +479,65 @@ pulls=Oczekujące zmiany
labels=Etykiety
milestones=Kamienie milowe
commits=Commity
+git_branches=Gałęzie
releases=Wydania
file_raw=Czysty
file_history=Historia
file_view_raw=Zobacz czysty
file_permalink=Bezpośredni odnośnik
file_too_large=Ten plik jest zbyt duży, aby go wyświetlić
-
-editor.new_file=New file
-editor.upload_file=Upload file
-editor.edit_file=Edit file
-editor.preview_changes=Preview Changes
-editor.cannot_edit_non_text_files=Cannot edit non-text files
-editor.edit_this_file=Edit this file
-editor.must_be_on_a_branch=You must be on a branch to make or propose changes to this file
+video_not_supported_in_browser=Twoja przeglądarka nie obsługuje znacznika HTML5 video.
+
+branches.overview=Przegląd
+branches.active_branches=Aktywne gałęzie
+branches.stale_branches=Stare gałęzie
+branches.all=Wszystkie gałęzie
+branches.updated_by=Zaktualizowano %[1]s przez %[2]s
+branches.change_default_branch=Zmiana domyślnej gałęzi
+branches.default_deletion_not_allowed=Cannot delete the default branch.
+branches.protected_deletion_not_allowed=Cannot delete a protected branch.
+
+editor.new_file=Nowy plik
+editor.upload_file=Załaduj plik
+editor.edit_file=Edytuj plik
+editor.preview_changes=Podgląd zmian
+editor.cannot_edit_non_text_files=Nie można edytować plików nietekstowych
+editor.edit_this_file=Edytuj ten plik
+editor.must_be_on_a_branch=Musisz być na gałęzi aby zgłosić lub zaproponować zmiany do tego pliku
editor.fork_before_edit=Musisz sforkować to repozytorium przed edycją tego pliku
-editor.delete_this_file=Delete this file
-editor.must_have_write_access=You must have write access to make or propose changes to this file
-editor.file_delete_success=File '%s' has been deleted successfully!
-editor.name_your_file=Name your file...
-editor.filename_help=To add directory, just type it and press /. To remove a directory, go to the beginning of the field and press backspace.
-editor.or=or
-editor.cancel_lower=cancel
-editor.commit_changes=Commit Changes
-editor.add_tmpl=Add '%s/'
-editor.add=Add '%s'
-editor.update=Update '%s'
-editor.delete=Delete '%s'
-editor.commit_message_desc=Add an optional extended description...
-editor.commit_directly_to_this_branch=Commit directly to the %s branch.
-editor.create_new_branch=Create a new branch for this commit and start a pull request.
-editor.new_branch_name_desc=New branch name...
-editor.cancel=Cancel
-editor.filename_cannot_be_empty=Filename cannot be empty.
-editor.branch_already_exists=Branch '%s' already exists in this repository.
-editor.directory_is_a_file=Entry '%s' in the parent path is a file not a directory in this repository.
-editor.filename_is_a_directory=The filename '%s' is an existing directory in this repository.
-editor.file_editing_no_longer_exists=The file '%s' you are editing no longer exists in the repository.
-editor.file_changed_while_editing=File content has been changed since you started editing. Click here to see what have been changed or press commit again to overwrite those changes.
-editor.file_already_exists=A file with name '%s' already exists in this repository.
-editor.no_changes_to_show=There are no changes to show.
-editor.fail_to_update_file=Failed to update/create file '%s' with error: %v
-editor.add_subdir=Add subdirectory...
-editor.unable_to_upload_files=Failed to upload files to '%s' with error: %v
-editor.upload_files_to_dir=Upload files to '%s'
-
+editor.delete_this_file=Usuń ten plik
+editor.must_have_write_access=Musisz mieć uprawnienia do zapisu aby zgłosić lub zaproponować zmiany do tego pliku
+editor.file_delete_success=Plik '%s' został usunięty pomyślnie!
+editor.name_your_file=Nazwij plik...
+editor.filename_help=Aby dodać katalog, wpisz nazwę i naciśnij przycisk /. Aby usunąć katalog, przejdź do początku pola i naciśnij klawisz backspace.
+editor.or=lub
+editor.cancel_lower=anuluj
+editor.commit_changes=Zatwierdź zmiany
+editor.add_tmpl=Dodaj '%s/'
+editor.add=Dodaj '%s'
+editor.update=Zaktualizuj '%s'
+editor.delete=Usuń '%s'
+editor.commit_message_desc=Dodaj dodatkowy rozszerzony opis...
+editor.commit_directly_to_this_branch=Commituj bezpośrednio do gałęzi %s.
+editor.create_new_branch=Stwórz nową gałąź dla tego commita i rozpocznij pull request.
+editor.new_branch_name_desc=Nazwa nowej gałęzi...
+editor.cancel=Anuluj
+editor.filename_cannot_be_empty=Nazwa pliku nie może być pusta.
+editor.branch_already_exists=Gałąź '%s' już istnieje w tym repozytorium.
+editor.directory_is_a_file=Wpis '%s' w ścieżce nadrzędnej jest plikiem a nie katalogiem w tym repozytorium.
+editor.file_is_a_symlink=Plik '%s' jest dowiązaniem symbolicznym, które nie mogą być modyfikowane z poziomu przeglądarki internetowej.
+editor.filename_is_a_directory=Nazwa '%s' jest istniejącym katalogiem w tym repozytorium.
+editor.file_editing_no_longer_exists=Plik '%s' który edytujesz nie istnieje już w tym repozytorium.
+editor.file_changed_while_editing=Zawartość pliku została zmieniona od rozpoczęcia edycji. Kliknij tutaj aby zobaczyć, co zostało zmienione lub naciśnij commit ponownie aby nadpisać te zmiany.
+editor.file_already_exists=Nazwa pliku '%s' już istnieje w tym repozytorium.
+editor.no_changes_to_show=Brak zmian do pokazania.
+editor.fail_to_update_file=Tworzenie/aktualizacja pliku '%s' nie powiodła się z błędem: %v
+editor.fail_to_delete_file=Nie można usunąć pliku '%s' z powodu błędu: %v
+editor.add_subdir=Dodaj podkatalog...
+editor.unable_to_upload_files=Wysyłanie plików do '%s' nie powiodło się z błędem: %v
+editor.upload_files_to_dir=Prześlij pliki do '%s'
+
+commits.commit_history=Historia zmian
commits.commits=Commity
commits.search=Przeszukaj commity
commits.find=Szukaj
@@ -490,11 +563,11 @@ issues.create=Utwórz problem
issues.new_label=Nowa etykieta
issues.new_label_placeholder=Etykieta...
issues.create_label=Utwórz etykietę
-issues.label_templates.title=Load a predefined set of labels
-issues.label_templates.info=There aren’t any labels yet. You can click on the "New Label" button above to create one or use a predefined set below.
-issues.label_templates.helper=Select a label set
+issues.label_templates.title=Załaduj wstępnie przygotowany zestaw etykiet
+issues.label_templates.info=Nie ma jeszcze żadnych etykiet. Kliknij na przycisk „Nowa etykieta” powyżej, aby utworzyć lub użyć poniższego zestawu wstępnie zdefiniowanego.
+issues.label_templates.helper=Wybierz zestaw etykiet
issues.label_templates.use=Użyj ten zestaw etykiet
-issues.label_templates.fail_to_load_file=Failed to load label template file '%s': %v
+issues.label_templates.fail_to_load_file=Ładowanie pliku szablonu etykiety '%s' nie powiodło się: %v
issues.open_tab=Otwarte %d
issues.close_tab=Zamknięte %d
issues.filter_label=Etykieta
@@ -551,8 +624,8 @@ issues.label_deletion=Usunięcie etykiety
issues.label_deletion_desc=Usunięcie tej etykiety spowoduje usuniecie jej ze wszystkich powiązanych problemów. Czy na pewno chcesz kontynuować?
issues.label_deletion_success=Etykieta została usunięta pomyślnie!
issues.num_participants=%d uczestników
-issues.attachment.open_tab=`Kliknij, aby zobaczyć "%s" w nowej karcie`
-issues.attachment.download=`Kliknij, aby pobrać "%s"`
+issues.attachment.open_tab=`Kliknij, aby zobaczyć „%s” w nowej karcie`
+issues.attachment.download=`Kliknij, aby pobrać „%s”`
pulls.new=Nowy pull request
pulls.compare_changes=Porównaj zmiany
@@ -562,6 +635,7 @@ pulls.compare_compare=porównaj
pulls.filter_branch=Filtruj branch
pulls.no_results=Nie znaleziono wyników.
pulls.nothing_to_compare=Nie ma nic do porównania, ponieważ gałęzie bazy i head są identyczne.
+pulls.nothing_merge_base=Nie ma nic do porównania, ponieważ dwie gałęzie mają zupełnie inną historię.
pulls.has_pull_request=`Istnieje już pull request dla tych dwóch celów: %[2]s#%[3]d`
pulls.create=Utwórz Pull Request
pulls.title_desc=chce scalić %[1]d commity/ów z %[2]s do %[3]s
@@ -577,8 +651,13 @@ pulls.is_checking=Sprawdzanie konfliktów jeszcze trwa, proszę odświeżyć str
pulls.can_auto_merge_desc=Pull request może być automatycznie scalony.
pulls.cannot_auto_merge_desc=Pull request nie może być automatycznie scalony z powodu konfliktów.
pulls.cannot_auto_merge_helper=Proszę scalić ręcznie, aby rozwiązać konflikty.
+pulls.create_merge_commit=Utwórz scalający commit
+pulls.rebase_before_merging=Rebase przed scaleniem
+pulls.commit_description=Opis commitu
pulls.merge_pull_request=Scal Pull Request
pulls.open_unmerged_pull_exists=`Nie można otworzyć ponownie ponieważ już istnieje gotowy do scalenia pull request (#%d) z tego samego repozytorium z tymi samymi informacjami.`
+pulls.delete_branch=Usuń gałąź
+pulls.delete_branch_has_new_commits=Gałęzi nie można usunąć ponieważ są nowe zmiany po scaleniu.
milestones.new=Nowy kamień milowy
milestones.open_tab=Otwarte %d
@@ -594,7 +673,7 @@ milestones.desc=Opis
milestones.due_date=Termin realizacji (opcjonalnie)
milestones.clear=Wyczyść
milestones.invalid_due_date_format=Format daty realizacji jest nieprawidłowy, musi być "rrrr-mm-dd".
-milestones.create_success=Kamień milowy "%s" został utworzony pomyślnie!
+milestones.create_success=Kamień milowy „%s” został utworzony pomyślnie!
milestones.edit=Edytuj kamień milowy
milestones.edit_subheader=Użyj lepszego opisu, tak aby nie wprowadzać w błąd użytkowników.
milestones.cancel=Anuluj
@@ -617,7 +696,7 @@ wiki.last_commit_info=%s edytuje tę stronę %s
wiki.edit_page_button=Edytuj
wiki.new_page_button=Nowa strona
wiki.delete_page_button=Usuń stronę
-wiki.delete_page_notice_1=Strona zostanie usunięta "%s". Bądź ostrożny.
+wiki.delete_page_notice_1=Strona zostanie usunięta „%s”. Bądź ostrożny.
wiki.page_already_exists=Strona Wiki o tej samej nazwie już istnieje.
wiki.pages=Strony
wiki.last_updated=Ostatnia aktualizacja %s
@@ -629,31 +708,61 @@ settings.collaboration.admin=Administrator
settings.collaboration.write=Zapis
settings.collaboration.read=Odczyt
settings.collaboration.undefined=Niezdefiniowany
+settings.branches=Gałęzie
+settings.branches_bare=Nie można zarządzać pustym repozytorium bare. Proszę wypchnąć najpierw dowolną zawartość.
+settings.default_branch=Domyślna gałąź
+settings.default_branch_desc=Domyślna gałąź jest uważana za podstawową gałąź dla wypychania zmian, pull requestów i edycji online.
+settings.update=Aktualizuj
+settings.update_default_branch_unsupported=Zmiana domyślnej gałęzi nie jest obsługiwana przez wersję Git na serwerze.
+settings.update_default_branch_success=Domyślny gałąź repozytorium została pomyślnie zaktualizowana!
+settings.protected_branches=Chronione gałęzie
+settings.protected_branches_desc=Chroń gałąź z wymuszonego pchania, przypadkowych usunięć i białych listy z prawami zmian w kodzie.
+settings.choose_a_branch=Wybierz gałąź...
+settings.branch_protection=Ochrona gałęzi
+settings.branch_protection_desc=Proszę wybrać opcje zabezpieczeń dla gałęzi %s.
+settings.protect_this_branch=Chroń tą gałąź
+settings.protect_this_branch_desc=Wyłącz wymuszanie wypchnięć zmian i zabroń usuwania.
+settings.protect_require_pull_request=Wymagane utworzenie Pull Requesta zamiast bezpośredniego wypchnięcia
+settings.protect_require_pull_request_desc=Włącz tę opcję aby wyłączyć bezpośrednie pchanie do tej gałęzi. Zmiany muszą być wypychane do innej niechronionej gałęzi i scalone z tą gałęzią, za pośrednictwem Pull Requesta.
+settings.protect_whitelist_committers=Biała lista, kto może wypychać do tej gałęzi
+settings.protect_whitelist_committers_desc=Dodaj osoby lub zespoły do białej listy wypychających, do tej gałęzi. Użytkownicy z białej listy nie będą czekać na zatwierdzenie pull requesta.
+settings.protect_whitelist_users=Użytkownicy, którzy mogą popchnąć do tej gałęzi
+settings.protect_whitelist_search_users=Szukaj użytkowników
+settings.protect_whitelist_teams=Zespoły, których członkowie mogą popchnąć do tej gałęzi
+settings.protect_whitelist_search_teams=Szukaj drużyn
+settings.update_protect_branch_success=Opcje zabezpieczeń dla tej gałęzi zostały pomyślnie zaktualizowane!
settings.hooks=Webhooki
settings.githooks=Hooki Git
settings.basic_settings=Ustawienia podstawowe
-settings.mirror_settings=Mirror Settings
+settings.mirror_settings=Kopia lustrzana ustawień
settings.sync_mirror=Synchronizuj teraz
-settings.mirror_sync_in_progress=Mirror syncing is in progress, please refresh page in about a minute.
+settings.mirror_sync_in_progress=Synchronizacja kopii lustrzanej jest w toku, odśwież stronę w ciągu minuty.
settings.site=Oficjalna Strona
settings.update_settings=Aktualizuj ustawienia
settings.change_reponame_prompt=Zmiana nazwy repozytorium wpłynie na linki do niego.
settings.advanced_settings=Ustawienia zaawansowane
settings.wiki_desc=Włącz system wiki
settings.use_internal_wiki=Użyj wbudowanego wiki
+settings.allow_public_wiki_desc=Umożliw publiczny dostęp do wiki, gdy repozytorium jest prywatne
settings.use_external_wiki=Użyj zewnętrznego Wiki
settings.external_wiki_url=Adres URL zewnętrznego Wiki
settings.external_wiki_url_desc=Odwiedzający zostaną przekierowani do adresu URL po kliknięciu zakładki.
-settings.issues_desc=Enable issue tracker
-settings.use_internal_issue_tracker=Use builtin lightweight issue tracker
+settings.issues_desc=Włącz system zgłaszania problemów
+settings.use_internal_issue_tracker=Użyj wbudowany lekki system zgłaszania problemów
+settings.allow_public_issues_desc=Umożliw publiczny dostęp do zagadnień, gdy repozytorium jest prywatne
settings.use_external_issue_tracker=Użyj zewnętrznego systemu zgłaszania problemów
+settings.external_tracker_url=URL zewnętrznego trackera zagadnień
+settings.external_tracker_url_desc=Odwiedzający zostaną przekierowani do adresu URL po kliknięciu zakładki.
settings.tracker_url_format=Format dla adresu URL zewnętrznego systemu
settings.tracker_issue_style=Styl nazw zewnętrznego systemu zgłaszania problemów:
settings.tracker_issue_style.numeric=Numeryczny
settings.tracker_issue_style.alphanumeric=Alfanumeryczne
settings.tracker_url_format_desc=Symbole zastępcze {user} {repo} {index} mogą być użyte dla nazwy użytkownika, nazwy repozytorium i numeru problemu.
-settings.pulls_desc=Włącz obsługę pull request, aby akceptować publiczny wkład
+settings.pulls_desc=Włącz żądania pobierania, aby akceptować wkład pomiędzy repozytoriami i gałęziami
+settings.pulls.ignore_whitespace=Ignoruj zmiany w białych znakach
+settings.pulls.allow_rebase_merge=Zezwalaj na użycie rebase do scalenia commitów
settings.danger_zone=Strefa niebezpieczeństwa
+settings.cannot_fork_to_same_owner=Nie można sforkować repozytorium do pierwotnego właściciela.
settings.new_owner_has_same_repo=Nowy właściciel już posiada repozytorium o tej samej nazwie.
settings.convert=Konwersja na repozytorium regularne
settings.convert_desc=Możesz przekonwertować ten mirror na repozytorium regularne. Ta czynność nie może być odwrócona.
@@ -688,20 +797,25 @@ settings.collaborator_deletion_desc=Ten użytkownik nie będzie miał dostępu w
settings.remove_collaborator_success=Współpracownik został usunięty.
settings.search_user_placeholder=Szukaj użytkownika...
settings.org_not_allowed_to_be_collaborator=Organizacji nie można dodać jako współpracownika.
-settings.user_is_org_member=Użytkownik jest członkiem organizacji, który nie może być dodany jako współpracownik.
-settings.add_webhook=Dodaj webhooka
settings.hooks_desc=Webooki działają tak jak proste wywołania HTTP POST. Jeśli cokolwiek zdarzy się w Gogs, wyślemy powiadomienie do wybranego hosta. Więcej informacji można znaleźć w przewodniku webhooków.
+settings.webhooks.add_new=Add a new webhook:
+settings.webhooks.choose_a_type=Wybierz typ...
+settings.add_webhook=Dodaj webhooka
settings.webhook_deletion=Usuń webhooka
settings.webhook_deletion_desc=Usunięcie tego webooka spowoduje usunięcie powiązanych informacji i wpisów w historii. Czy chcesz kontynuować?
settings.webhook_deletion_success=Webhook został pomyślnie usunięty!
settings.webhook.test_delivery=Testuj dostawę
settings.webhook.test_delivery_desc=Wyślij fałszywe zdarzenie push aby przetestować ustawienie webhooka
settings.webhook.test_delivery_success=Testowy webhook został dodany do kolejki dostawy. To może zająć kilka sekund, zanim to pojawia się w historii dostawy.
+settings.webhook.redelivery=Redystrybucja
+settings.webhook.redelivery_success=Zadanie '%s' zostało ponownie dodane do kolejki. Może upłynąć kilka sekund, aby zaktualizować jego status w historii.
settings.webhook.request=Żądanie
settings.webhook.response=Odpowiedź
settings.webhook.headers=Nagłówki
settings.webhook.payload=Zawartość
settings.webhook.body=Treść
+settings.webhook.err_cannot_parse_payload_url=Cannot parse payload URL: %v
+settings.webhook.url_resolved_to_blocked_local_address=Payload URL resolved to a local network address that is implicitly blocked.
settings.githooks_desc=Hooki Git są obsługiwane bezpośrednio przez Git. Pliki obsługiwanych hooków z poniższej listy mogą być edytowane, aby wykonywać niestandardowe operacje.
settings.githook_edit_desc=Jeśli hook jest nieaktywny, zaprezentowana zostanie przykładowa treść. Pozostawienie pustej wartości wyłączy ten hook.
settings.githook_name=Nazwa hooka
@@ -711,6 +825,7 @@ settings.add_webhook_desc=Wyślemy żądanie POST pod poniższy adr
settings.payload_url=URL do wywołania
settings.content_type=Typ zawartości
settings.secret=Sekret
+settings.secret_desc=Sekret zostanie wysłany jako SHA256 HMAC hex digest of payload z nagłówkiem X-Gogs-Signature.
settings.slack_username=Użytkownik
settings.slack_icon_url=Adres URL ikony
settings.slack_color=Kolor
@@ -720,10 +835,20 @@ settings.event_send_everything=Potrzebuję wszystkiego.
settings.event_choose=Pozwól mi wybrać, czego potrzebuję.
settings.event_create=Utwórz
settings.event_create_desc=Utworzono gałąź lub tag
-settings.event_pull_request=Pull Request
-settings.event_pull_request_desc=Pull request opened, closed, reopened, edited, assigned, unassigned, label updated, label cleared, or synchronized.
+settings.event_delete=Usuń
+settings.event_delete_desc=Gałąź lub tag usunięty
+settings.event_fork=Forkuj
+settings.event_fork_desc=Repozytorium zforkowane
settings.event_push=Wypchnięcie
settings.event_push_desc=Wypchnięcie (push) do repozytorium Git
+settings.event_issues=Zagadnienia
+settings.event_issues_desc=Zagadnienie otwarte, zamknięte, ponownie otwarte, wyedytowane, przypisane, nieprzypisane, etykieta uaktualniona, etykieta wyczyszczona, kamień milowy, kamień milowy usunięty.
+settings.event_pull_request=Pull Request
+settings.event_pull_request_desc=Pull request otwarty, zamknięty, ponownie otwarty, edytowany, przypisany, nieprzypisany, etykieta zaktualizowana, etykieta wyczyszczona, kamień milowy, kamień milowy wyczyszczony; lub zsynchronizowany.
+settings.event_issue_comment=Komentarz zagadnienia
+settings.event_issue_comment_desc=Komentarz zagadnienia utworzony, wyedytowany lub usunięty.
+settings.event_release=Wydanie
+settings.event_release_desc=Wydanie opublikowane w repozytorium.
settings.active=Aktywny
settings.active_helper=Dostarczymy szczegóły zdarzenia, gdy ten webhook zostanie wywołany.
settings.add_hook_success=Nowy webhook został dodany.
@@ -733,10 +858,13 @@ settings.delete_webhook=Usuń webhook
settings.recent_deliveries=Ostatnie wywołania
settings.hook_type=Typ hooka
settings.add_slack_hook_desc=Dodaj integrację ze Slackiem do Twojego repozytorium.
+settings.add_discord_hook_desc=Dodaj integrację Discord do Twojego repozytorium.
+settings.add_dingtalk_hook_desc=Dodaj integrację Dingtalk do Twojego repozytorium.
settings.slack_token=Token
settings.slack_domain=Domena
settings.slack_channel=Kanał
settings.deploy_keys=Klucze wdrożeniowe
+settings.deploy_keys_helper=TIP! Jeśli szukasz dodawanie osobistych kluczy publicznych, dodaj je proszę w ustawieniach konta.
settings.add_deploy_key=Dodaj klucz wdrożenia
settings.deploy_key_desc=Klucze wdrożenia pozwalają na dostęp tylko do odczytu. To nie to samo co klucze SSH dla konta osobistego.
settings.no_deploy_keys=Nie dodałeś żadnego klucza wdrożenia.
@@ -748,6 +876,8 @@ settings.add_key_success=Nowy klucz wdrożenia '%s' został pomyślnie dodany!
settings.deploy_key_deletion=Utwórz klucz wdrożenia
settings.deploy_key_deletion_desc=Usunięcie tego klucza wdrożenia spowoduje usunięcie powiązanego dostępu do tego repozytorium. Czy chcesz kontynuować?
settings.deploy_key_deletion_success=Klucz wdrożenia został pomyślnie usunięty!
+settings.description_desc=Opis repozytorium. Maksymalnie 512 znaków.
+settings.description_length=Dostępne znaki
diff.browse_source=Przeglądaj źródła
diff.parent=rodzic
@@ -766,7 +896,6 @@ release.releases=Wydania
release.new_release=Nowe wydanie
release.draft=Szkic
release.prerelease=Wersja wstępna
-release.stable=Stabilny
release.edit=edytuj
release.ahead=%d commitów w %s od tego wydania
release.source_code=Kod źródłowy
@@ -813,8 +942,8 @@ team_name_helper=Będziesz używał tej nazwy do wywoływania tego zespołu w dy
team_desc_helper=Czym zajmuje się ten zespół?
team_permission_desc=Jaki poziom uprawnień powinien mieć ten zespół?
-form.name_reserved=Nazwa organizacji "%s" jest zarezerwowana.
-form.name_pattern_not_allowed=Wzorzec nazwy organizacji "%s" jest niedozwolony.
+form.name_not_allowed=Organization name or pattern %q is not allowed.
+form.team_name_not_allowed=Team name or pattern %q is not allowed.
settings=Ustawienia
settings.options=Opcje
@@ -886,12 +1015,19 @@ first_page=Pierwsza
last_page=Ostatnia
total=Ogółem: %d
+dashboard.build_info=Informacje o kompilacji
+dashboard.app_ver=Wersja aplikacji
+dashboard.git_version=Wersja Git
+dashboard.go_version=Wersja Go
+dashboard.build_time=Data kompilacji
+dashboard.build_commit=Zbuduj commit
dashboard.statistic=Statystyki
dashboard.operations=Operacje
dashboard.system_status=Stan monitora systemu
dashboard.statistic_info=Baza danych Gogs zawiera %d użytkowników, %d organizacji, %d kluczy publicznych, %d repozytoriów, %d obserwujących, %d polubionych, %d akcji, %d tokenów, %d problemów, %d komenatrzy, %d kont społecznościowych, %d obserwacji, %d mirrorów, %d wydań, %d login sources, %d webhooków, %d kamieni milowych, %d labels, %d zadań hooków, %d zespołów, %d zadań aktualizacji, %d załączników.
dashboard.operation_name=Nazwa operacji
dashboard.operation_switch=Przełącz
+dashboard.select_operation_to_run=Wybierz operację do uruchomienia
dashboard.operation_run=Uruchom
dashboard.clean_unbind_oauth=Usuń niepowiązane wpisy OAuth
dashboard.clean_unbind_oauth_success=Wszystkie niepowiązane wpisy OAuth zostały pomyślnie usunięte.
@@ -905,8 +1041,8 @@ dashboard.git_gc_repos=Usuń śmieci z repozytoriów
dashboard.git_gc_repos_success=Wszystkie repozytoria zakończyły odśmiecanie pomyślnie.
dashboard.resync_all_sshkeys=Przeładuj klucze publiczne w pliku '.ssh/authorized_keys' (uwaga: klucze poza Gogs zostaną usunięte)
dashboard.resync_all_sshkeys_success=Przeładowanie kluczy publicznych zakończyło się sukcesem.
-dashboard.resync_all_update_hooks=Przepisz pliki update hook repozytoriów (wymagane przy zmianie ścieżki do pliku konfiguracji)
-dashboard.resync_all_update_hooks_success=Wszystkie pliki update hook repozytoriów zostały pomyślnie przepisane.
+dashboard.resync_all_hooks=Ponowa synchronizacja wpływa na wypychanie, aktualizowanie i odbieranie zmian we wszystkich repozytoriach
+dashboard.resync_all_hooks_success=Ponowa synchronizacja została wykonana pomyślnie we wszystkich repozytoriach.
dashboard.reinit_missing_repos=Ponownie inicjalizuj wszystkie repozytoria, które straciły pliki Git
dashboard.reinit_missing_repos_success=Wszystkie repozytoria, które straciły pliki Git, zostały ponownie zainicjować pomyślnie.
@@ -981,12 +1117,14 @@ repos.private=Prywatne
repos.watches=Obserwujących
repos.stars=Polubienia
repos.issues=Problemy
+repos.size=Rozmiar
-auths.auth_manage_panel=Panel zarządzania uwierzytelnianiem
+auths.auth_sources=Źródła uwierzytelniania
auths.new=Dodaj nowe źródło
auths.name=Nazwa
auths.type=Typ
auths.enabled=Włączono
+auths.default=Domyślne
auths.updated=Zaktualizowano
auths.auth_type=Typ uwierzytelniania
auths.auth_name=Nazwa uwierzytelniania
@@ -995,6 +1133,7 @@ auths.domain=Domena
auths.host=Host
auths.port=Port
auths.bind_dn=Bind DN
+auths.bind_dn_helper=Możesz użyć '%s' jako symbol zastępczy dla nazwy użytkownika, np. DOM\%s
auths.bind_password=Hasło Bind
auths.bind_password_helper=Ostrzeżenie: To hasło jest przechowywane w postaci zwykłego tekstu. Nie należy używać wysoko uprzywilejowanego konta.
auths.user_base=Baza wyszukiwania
@@ -1004,6 +1143,11 @@ auths.attribute_username_placeholder=Zostaw puste aby użyć wartości podanej p
auths.attribute_name=Atrybut imienia
auths.attribute_surname=Atrybut nazwiska
auths.attribute_mail=Atrybut e-mail
+auths.verify_group_membership=Sprawdź członkostwo w grupie
+auths.group_search_base_dn=Grupa wyszukiwania Base DN
+auths.group_filter=Filtr grupy
+auths.group_attribute_contain_user_list=Atrybut grupy zawierający listę użytkowników
+auths.user_attribute_listed_in_group=Atrybut użytkownika wymieniony w grupie
auths.attributes_in_bind=Pobierz atrybuty w kontekście Bind DN
auths.filter=Filtr użytkownika
auths.admin_filter=Filtr administratora
@@ -1017,9 +1161,9 @@ auths.enable_tls=Włącz szyfrowanie TLS
auths.skip_tls_verify=Pomiń weryfikację protokołu TLS
auths.pam_service_name=Nazwa usługi PAM
auths.enable_auto_register=Włącz automatyczną rejestrację
-auths.tips=Wskazówki
auths.edit=Edytuj ustawienia uwierzytelniania
auths.activated=To uwierzytelnienie zostało aktywowane
+auths.default_auth=To uwierzytelnianie jest domyślnym źródłem logowania
auths.new_success=Pomyślnie dodano nowe uwierzytelnianie '%s'.
auths.update_success=Ustawienia uwierzytelnienia zostały zaktualizowane pomyślnie.
auths.update=Aktualizuj ustawienia uwierzytelniania
@@ -1028,107 +1172,189 @@ auths.delete_auth_title=Usunięcie uwierzytelnienia
auths.delete_auth_desc=To uwierzytelnienie zostanie usunięte, czy chcesz kontynuować?
auths.still_in_used=Ten rodzaj autentykacji jest wciąż wykorzystywany przez niektórych użytkowników. Usuń lub przekonwertuj użytkowników, aby wykorzystywali inny typ logowania.
auths.deletion_success=Uwierzytelnienie zostało usunięte pomyślnie!
+auths.login_source_exist=Login '%s' już istnieje.
+auths.github_api_endpoint=Punkt końcowy API
+config.not_set=(nie ustawiono)
config.server_config=Konfiguracja serwera
-config.app_name=Nazwa aplikacji
-config.app_ver=Wersja aplikacji
-config.app_url=Adres URL aplikacji
-config.domain=Domena
-config.offline_mode=Tryb offline
-config.disable_router_log=Wyłącz dziennik routera
+config.brand_name=Nazwa marki
config.run_user=Użytkownik uruchomieniowy
config.run_mode=Tryb uruchamienia
-config.repo_root_path=Ścieżka repozytoriów
-config.static_file_root_path=Ścieżka plików statycznych
-config.log_file_root_path=Ścieżka plików dziennika
-config.script_type=Typ skryptu
-config.reverse_auth_user=Użytkownik dostarczony przez odwrotne proxy
+config.server.external_url=Zewnętrzny URL
+config.server.domain=Domena
+config.server.protocol=Protokół
+config.server.http_addr=Adres HTTP
+config.server.http_port=Port HTTP
+config.server.cert_file=Pliki certyfikatu
+config.server.key_file=Plik klucza
+config.server.tls_min_version=Minimalna wersja TLS
+config.server.unix_socket_permission=Unix socket permission
+config.server.local_root_url=Lokalny główny adres URL
+config.server.offline_mode=Tryb offline
+config.server.disable_router_log=Wyłącz dziennik routera
+config.server.enable_gzip=Włącz Gzip
+config.server.app_data_path=Ścieżka danych aplikacji
+config.server.load_assets_from_disk=Wczytaj zasoby z dysku
+config.server.landing_url=Landing URL
config.ssh_config=Konfiguracja SSH
-config.ssh_enabled=Aktywne
-config.ssh_start_builtin_server=Uruchom serwer wbudowany
-config.ssh_domain=Domena
-config.ssh_port=Port
-config.ssh_listen_port=Port nasłuchu
-config.ssh_root_path=Ścieżka katalogu głównego
-config.ssh_key_test_path=Ścieżka klucza testowego
-config.ssh_keygen_path=Ścieżka generatora ('ssh-keygen')
-config.ssh_minimum_key_size_check=Sprawdzanie minimalnej długości klucza
-config.ssh_minimum_key_sizes=Minimalne rozmiary kluczy
+config.ssh.enabled=Aktywne
+config.ssh.domain=Exposed domain
+config.ssh.port=Exposed port
+config.ssh.root_path=Ścieżka katalogu głównego
+config.ssh.keygen_path=Keygen path
+config.ssh.key_test_path=Key test path
+config.ssh.minimum_key_size_check=Minimum key size check
+config.ssh.minimum_key_sizes=Minimum key sizes
+config.ssh.rewrite_authorized_keys_at_start=Rewrite "authorized_keys" at start
+config.ssh.start_builtin_server=Uruchom wbudowany serwer
+config.ssh.listen_host=Listen host
+config.ssh.listen_port=Port nasłuchu
+config.ssh.server_ciphers=Server ciphers
+config.ssh.server_macs=Server MACs
+config.ssh.server_algorithms=Server algorithms
+
+config.repo_config=Konfiguracja repozytorium
+config.repo.root_path=Ścieżka katalogu głównego
+config.repo.script_type=Typ skryptu
+config.repo.ansi_chatset=Zestaw znaków ANSI
+config.repo.force_private=Wymuś tryb prywatny
+config.repo.max_creation_limit=Max creation limit
+config.repo.preferred_licenses=Wybrana licencja
+config.repo.disable_http_git=Wyłącz Git przez HTTP
+config.repo.enable_local_path_migration=Enable local path migration
+config.repo.enable_raw_file_render_mode=Enable raw file render mode
+config.repo.commits_fetch_concurrency=Commits fetch concurrency
+config.repo.editor.line_wrap_extensions=Editor line wrap extensions
+config.repo.editor.previewable_file_modes=Editor previewable file modes
+config.repo.upload.enabled=Upload enabled
+config.repo.upload.temp_path=Upload temporary path
+config.repo.upload.allowed_types=Upload allowed types
+config.repo.upload.file_max_size=Upload file size limit
+config.repo.upload.max_files=Upload files limit
config.db_config=Konfiguracja bazy danych
-config.db_type=Typ
-config.db_host=Host
-config.db_name=Nazwa
-config.db_user=Użytkownik
-config.db_ssl_mode=Tryb SSL
-config.db_ssl_mode_helper=(tylko dla "postgres")
-config.db_path=Ścieżka
-config.db_path_helper=(dla "sqlite3" i "tidb")
-
-config.service_config=Konfiguracja usługi
-config.register_email_confirm=Wymagaj potwierdzenia e-mail
-config.disable_register=Wyłącz rejestrację
-config.show_registration_button=Pokazuj przycisk rejestracji
-config.require_sign_in_view=Wymagaj bycia zalogowanym
-config.mail_notify=Powiadomienia e-mail
-config.disable_key_size_check=Wyłącz sprawdzanie minimalnego rozmiaru klucza
-config.enable_captcha=Włącz Captcha
-config.active_code_lives=Ważność kodów aktywacyjnych
-config.reset_password_code_lives=Czas życia kodu resetowania hasła
+config.db.type=Typ
+config.db.host=Host
+config.db.name=Nazwa
+config.db.schema=Schema
+config.db.schema_helper=(for "postgres" only)
+config.db.user=Użytkownik
+config.db.ssl_mode=Tryb SSL
+config.db.ssl_mode_helper=(for "postgres" only)
+config.db.path=Ścieżka
+config.db.path_helper=(for "sqlite3"only)
+config.db.max_open_conns=Maximum open connections
+config.db.max_idle_conns=Maximum idle connections
+
+config.security_config=Security configuration
+config.security.login_remember_days=Login remember days
+config.security.cookie_remember_name=Pamiętaj pliki cookies
+config.security.cookie_username=Username cookie
+config.security.cookie_secure=Enable secure cookie
+config.security.reverse_proxy_auth_user=Reverse proxy authentication header
+config.security.enable_login_status_cookie=Enable login status cookie
+config.security.login_status_cookie_name=Login status cookie
+config.security.local_network_allowlist=Local network allowlist
+
+config.email_config=Konfiguracja E-mail
+config.email.enabled=Włączono
+config.email.subject_prefix=Subject prefix
+config.email.host=Host
+config.email.from=Od
+config.email.user=Użytkownik
+config.email.disable_helo=Wyłącz HELO
+config.email.helo_hostname=HELO hostname
+config.email.skip_verify=Pomiń weryfikację certyfikatu
+config.email.use_certificate=Use custom certificate
+config.email.cert_file=Certificate file
+config.email.key_file=Plik klucza
+config.email.use_plain_text=Użyj zwykłego tekstu
+config.email.add_plain_text_alt=Dodaj prosty tekst alternatywny
+config.email.send_test_mail=Wyślij wiadomość testową
+config.email.test_mail_failed=Nie udało się wysłać wiadomości testowej do '%s': %v
+config.email.test_mail_sent=Wiadomość testowa została wysłana do '%s'.
+
+config.auth_config=Konfiguracja uwierzytelniania
+config.auth_custom_logout_url=Custom logout URL
+config.auth.activate_code_lives=Activate code lives
+config.auth.reset_password_code_lives=Reset password code lives
+config.auth.require_email_confirm=Wymagaj potwierdzenia adresu e-mail
+config.auth.require_sign_in_view=Require sign in view
+config.auth.disable_registration=Wyłącz rejestrację
+config.auth.enable_registration_captcha=Enable registration captcha
+config.auth.enable_reverse_proxy_authentication=Enable reverse proxy authentication
+config.auth.enable_reverse_proxy_auto_registration=Enable reverse proxy auto registration
+config.auth.reverse_proxy_authentication_header=Reverse proxy authentication header
+
+config.user_config=Konfiguracja użytkownika
+config.user.enable_email_notify=Enable email notification
-config.webhook_config=Konfiguracja webhooka
-config.queue_length=Długość kolejki
-config.deliver_timeout=Limit czasu zdarzenia
-config.skip_tls_verify=Pomiń weryfikację protokołu TLS
-
-config.mailer_config=Konfiguracja poczty
-config.mailer_enabled=Aktywne
-config.mailer_disable_helo=Wyłącz HELO
-config.mailer_name=Nazwa
-config.mailer_host=Host
-config.mailer_user=Użytkownik
-config.send_test_mail=Wyślij email testowy
-config.test_mail_failed=Nieudane wysłanie wiadomości email do '%s': %v
-config.test_mail_sent=Testowa wiadomość email została wysłana do '%s'.
-
-config.oauth_config=Konfiguracja OAuth
-config.oauth_enabled=Aktywne
+config.session_config=Konfiguracja sesji
+config.session.provider=Dostawca
+config.session.provider_config=Provider config
+config.session.cookie_name=Ciasteczka
+config.session.https_only=Tylko HTTPS
+config.session.gc_interval=Interwał GC
+config.session.max_life_time=Maksymalny czas życia
+config.session.csrf_cookie_name=CSRF cookie
config.cache_config=Konfiguracja cache
-config.cache_adapter=Adapter cache
-config.cache_interval=Interwał pamięci podręcznej
-config.cache_conn=Połączenie z pamięcią podręczną
-
-config.session_config=Konfiguracja sesji
-config.session_provider=Dostawca sesji
-config.provider_config=Konfiguracja dostawcy
-config.cookie_name=Nazwa ciasteczka
-config.enable_set_cookie=Włącz ciasteczka
-config.gc_interval_time=Interwał odśmiecania
-config.session_life_time=Czas życia sesji
-config.https_only=Tylko HTTPS
-config.cookie_life_time=Czas życia ciasteczka
+config.cache.adapter=Adapter
+config.cache.interval=GC interval
+config.cache.host=Host
+
+config.http_config=Konfiguracja HTTP
+config.http.access_control_allow_origin=Access control allow origin
+
+config.attachment_config=Attachment configuration
+config.attachment.enabled=Włączono
+config.attachment.path=Ścieżka
+config.attachment.allowed_types=Dozwolone typy
+config.attachment.max_size=Limit rozmiaru
+config.attachment.max_files=Limit plików
+
+config.release_config=Konfiguracja wydania
+config.release.attachment.enabled=Attachment enabled
+config.release.attachment.allowed_types=Attachment allowed types
+config.release.attachment.max_size=Attachment size limit
+config.release.attachment.max_files=Attachment files limit
config.picture_config=Ustawienia obrazów
-config.picture_service=Serwis obrazów
-config.disable_gravatar=Wyłącz Gravatara
-config.enable_federated_avatar=Enable Federated Avatars
+config.picture.avatar_upload_path=User avatar upload path
+config.picture.repo_avatar_upload_path=Repository avatar upload path
+config.picture.gravatar_source=Źródło Gravatar
+config.picture.disable_gravatar=Wyłącz Gravatar
+config.picture.enable_federated_avatar=Enable federated avatars
+
+config.mirror_config=Konfiguracja serwera lustrzanego
+config.mirror.default_interval=Domyślny interwał
+
+config.webhook_config=Konfiguracja webhooka
+config.webhook.types=Typy
+config.webhook.deliver_timeout=Deliver timeout
+config.webhook.skip_tls_verify=Pomiń weryfikację TLS
config.git_config=Konfiguracja Git
-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=Limit czasu migracji
-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
+config.git.disable_diff_highlight=Disable diff syntax highlight
+config.git.max_diff_lines=Diff lines limit (for a single file)
+config.git.max_diff_line_characters=Diff characters limit (for a single line)
+config.git.max_diff_files=Diff files limit (for a single diff)
+config.git.gc_args=Argumenty GC
+config.git.migrate_timeout=Limit czasu migracji
+config.git.mirror_timeout=Mirror fetch timeout
+config.git.clone_timeout=Clone timeout
+config.git.pull_timeout=Pull timeout
+config.git.gc_timeout=GC timeout
+
+config.lfs_config=LFS configuration
+config.lfs.storage=Magazyn
+config.lfs.objects_path=Ścieżka obiektów
config.log_config=Konfiguracja dziennika
-config.log_mode=Tryb dziennika
+config.log_file_root_path=Ścieżka plików dziennika
+config.log_mode=Tryb
+config.log_options=Ustawienia
monitor.cron=Zadania cron
monitor.name=Nazwa
@@ -1159,17 +1385,24 @@ notices.delete_success=Powiadomienia systemowe zostały pomyślnie usunięte.
create_repo=tworzy repozytorium %s
rename_repo=zmienia nazwę repozytorium %[1]s na %[3]s
commit_repo=wypycha do %[3]s w %[4]s
+compare_commits=Zobacz porównanie tych %d commitów
+transfer_repo=przenosi repozytorium %s do %s
create_issue=`zgłasza problem %s#%[2]s`
close_issue=`zamknięcie problemu %s#%[2]s`
reopen_issue=`ponowne otwarcie problemu %s#%[2]s`
+comment_issue=`komentuje problem %s#%[2]s`
create_pull_request=`tworzy pull request %s#%[2]s`
close_pull_request=`zamknięcie pull request %s#%[2]s`
reopen_pull_request=`ponowne otwarcie pull request %s#%[2]s`
-comment_issue=`komentuje problem %s#%[2]s`
merge_pull_request=`scala pull request %s#%[2]s`
-transfer_repo=przenosi repozytorium %s do %s
+create_branch=stworzył nową gałąź %[3]s at %[4]s
+delete_branch=usunął gałąź %[2]s at %[3]s
push_tag=taguje %[2]s w %[3]s
-compare_commits=Zobacz porównanie tych %d commitów
+delete_tag=usunięty tag %[2]s % [3]s
+fork_repo=rozwidlone repozytorium do %s
+mirror_sync_push=zsynchronizowano commit z %[3]s na %[4]s z kopii lustrzanej
+mirror_sync_create=zsynchronizowano nowy odnośnik %[2]s to %[3]s z mirrora
+mirror_sync_delete=zsynchronizowano i usunięto odnośnik %[2]s at %[3]s z mirrora
[tool]
ago=temu
@@ -1191,6 +1424,7 @@ months=%d miesięcy %s
years=%d lat %s
raw_seconds=sekund
raw_minutes=minut
+raw_hours=godziny
[dropzone]
default_message=Upuść pliki tutaj lub kliknij, aby przesłać.
diff --git a/conf/locale/locale_pt-BR.ini b/conf/locale/locale_pt-BR.ini
index 783678e4106..bfc8d88ddbc 100644
--- a/conf/locale/locale_pt-BR.ini
+++ b/conf/locale/locale_pt-BR.ini
@@ -1,7 +1,7 @@
-app_desc=Um serviço de Git hospedável e amigável escrito em Go
+app_desc=Um serviço de Git auto-hospedado e amigável escrito em Go
home=Página inicial
-dashboard=Painel
+dashboard=Painel de controle
explore=Explorar
help=Ajuda
sign_in=Entrar
@@ -9,13 +9,12 @@ sign_out=Sair
sign_up=Cadastrar
register=Registrar
website=Site
-version=Versão
page=Página
-template=Template
+template=Modelo
language=Idioma
create_new=Criar...
-user_profile_and_more=Perfil do usuário e configurações
-signed_in_as=Logado como
+user_profile_and_more=Perfil do usuário e mais
+signed_in_as=Entrou como
username=Usuário
email=E-mail
@@ -44,23 +43,27 @@ issues=Problemas
cancel=Cancelar
+[status]
+page_not_found=Página Não Encontrada
+internal_server_error=Erro interno do servidor
+
[install]
install=Instalação
title=Etapas de instalação para primeira execução
docker_helper=Se você está rodando o Gogs dentro do Docker, por favor leia os Guias cuidadosamente antes de mudar qualquer coisa nesta página!
-requite_db_desc=Gogs requer MySQL, PostgreSQL, SQLite3 ou TiDB.
+requite_db_desc=Gogs requires MySQL, PostgreSQL, SQLite3 or TiDB (via MySQL protocol).
db_title=Configurações de banco de dados
db_type=Tipo de banco de dados
host=Host
user=Usuário
password=Senha
db_name=Nome do banco de dados
+db_schema=Schema
db_helper=Por favor, use o mecanismo INNODB com o conjunto de caracteres utf8_general_ci para MySQL.
ssl_mode=Modo SSL
path=Caminho
-sqlite_helper=O caminho do arquivo de banco de dados SQLite3 ou TiDB. Por favor use o caminho absoluto quando você iniciar como serviço.
-err_empty_db_path=O Caminho do banco de dados SQLite3 ou TiDB não pode ser vazio.
-err_invalid_tidb_name=Nome do banco de dados TiDB não permite os caracteres "." e "-".
+sqlite_helper=Caminho para o arquivo de banco de dados SQLite3. Use o caminho absoluto ao iniciar como serviço.
+err_empty_db_path=Deve haver um caminho para o banco de dados SQLite3.
no_admin_and_disable_registration=Você não pode desabilitar o registro sem criar uma conta de administrador.
err_empty_admin_password=A senha de administrador não pode ser vazia.
@@ -75,12 +78,17 @@ domain=Domínio
domain_helper=Isto afeta URLs para o clone via SSH.
ssh_port=Porta SSH
ssh_port_helper=Número da porta que seu servidor SSH está usando, deixe vazio para desativar o recurso SSH.
+use_builtin_ssh_server=Usar o servidor SSH embutido
+use_builtin_ssh_server_popup=Iniciar o servidor SSH embutido para operações Git, para diferenciar do serviço SSH do sistema.
http_port=Porta HTTP
http_port_helper=Número da porta em que a aplicação irá executar.
app_url=URL do aplicativo
app_url_helper=Isto afeta a URL de clone via HTTP/HTTPs e também o e-mail.
log_root_path=Caminho do log
log_root_path_helper=Pasta dos arquivos de log.
+enable_console_mode=Ativar o modo de console
+enable_console_mode_popup=Além do modo de arquivo, exibir registros (log) no console.
+default_branch=Default Branch
optional_title=Configurações opcionais
email_title=Configurações do serviço de e-mail
@@ -116,7 +124,10 @@ sqlite3_not_available=Sua versão não suporta SQLite3, por favor faça o downlo
invalid_db_setting=Configuração do banco de dados não está correta: %v
invalid_repo_path=A raiz do repositório é inválida: %v
run_user_not_match=O usuário da execução não é o usuário atual: %s -> %s
+smtp_host_missing_port=O endereço do host SMTP não possui porta.
+invalid_smtp_from=O SMTP do campo não é válido: %v
save_config_failed=Falha ao salvar a configuração: %v
+init_failed=Falha ao inicializar a aplicação: %v
invalid_admin_setting=Configuração da conta de administrador está inválida: %v
install_success=Bem-vindo! Estamos contentes que você escolheu o Gogs, divirta-se e tenha cuidado.
invalid_log_root_path=Pasta raíz do log é inválida: %v
@@ -137,6 +148,7 @@ issues.in_your_repos=Em seus repositórios
[explore]
repos=Repositórios
users=Usuários
+organizations=Organizações
search=Pesquisar
[auth]
@@ -145,6 +157,8 @@ register_hepler_msg=Já tem uma conta? Entre agora!
social_register_hepler_msg=Já tem uma conta? Junte-se agora!
disable_register_prompt=Desculpe, novos registros estão desabilitados. Por favor entre em contato com o administrador do site.
disable_register_mail=Desculpe, a confirmação de registro por e-mail foi desabilitada.
+auth_source=Fonte de autenticação
+local=Local
remember_me=Lembrar de mim
forgot_password=Esqueci a senha
forget_password=Esqueceu a senha?
@@ -156,7 +170,6 @@ prohibit_login_desc=Sua conta foi proibida de efetuar login, por favor contate o
resent_limit_prompt=Desculpe, você está enviando um e-mail de ativação com muita frequência. Por favor, aguarde 3 minutos.
has_unconfirmed_mail=Oi %s, você possui um endereço de e-mail não confirmado (%s). Se você não recebeu um e-mail de confirmação ou precisa reenviar um novo, clique no botão abaixo.
resend_mail=Clique aqui para reenviar seu e-mail de ativação
-email_not_associate=Este endereço de e-mail não é associado à nenhuma conta.
send_reset_mail=Clique aqui para (re)enviar seu e-mail de redefinição da senha
reset_password=Redefinir sua senha
invalid_code=Desculpe, seu código de confirmação expirou ou não é válido.
@@ -164,6 +177,14 @@ reset_password_helper=Clique aqui para redefinir sua senha
password_too_short=O comprimento da senha não pode ser menor que 6.
non_local_account=Não é possível mudar a senha de contas remotas pelo Gogs.
+login_two_factor=Autenticação de dois fatores
+login_two_factor_passcode=Senha de Autenticação
+login_two_factor_enter_recovery_code=Insira um código de recuperação
+login_two_factor_recovery=Recuperação de autenticação
+login_two_factor_recovery_code=Código de Recuperação
+login_two_factor_enter_passcode=Insira uma senha p/ autenticação
+login_two_factor_invalid_recovery_code=O código de recuperação já foi usado ou é inválido.
+
[mail]
activate_account=Por favor, ative sua conta
activate_email=Verifique seu endereço de e-mail
@@ -199,6 +220,7 @@ Content=Conteúdo
require_error=` não pode estar vazio.`
alpha_dash_error=` devem ser caracteres alfanuméricos, hífen (-) ou sublinhado (_).`
alpha_dash_dot_error=` devem ser caracteres alfanuméricos ou hífen (-) ou sublinhado (_).`
+alpha_dash_dot_slash_error=` apenas alfanuméricos e pontuações (hifens, pontos e barras).`
size_error=`deve ser do tamanho %s.`
min_size_error=` deve conter pelo menos %s caracteres.`
max_size_error=` deve conter no máximo %s caracteres.`
@@ -215,6 +237,7 @@ org_name_been_taken=Nome da organização já foi tomado.
team_name_been_taken=Nome da equipe já existe.
email_been_used=Endereço de e-mail já foi usado.
username_password_incorrect=Usuário ou senha incorretos.
+auth_source_mismatch=A fonte de autenticação selecionada não está associada ao usuário.
enterred_invalid_repo_name=Por favor certifique-se que informou o nome do repositório corretamente.
enterred_invalid_owner_name=Por favor, verifique se o nome do proprietário está correto.
enterred_invalid_password=Por favor, verifique se a senha que você digitou está correta.
@@ -242,19 +265,18 @@ following=Seguindo
follow=Seguir
unfollow=Deixar de seguir
-form.name_reserved=O nome de usuário '%s' não pode ser usado.
-form.name_pattern_not_allowed=Não é permitido usar o padrão '%s' para o nome de usuário.
+form.name_not_allowed=Nome de usuário ou padrão %q não é permitido.
[settings]
profile=Perfil
password=Senha
avatar=Avatar
ssh_keys=Chaves SSH
-social=Contas sociais
-applications=Aplicativos
+security=Segurança
+repos=Repositórios
orgs=Organizações
+applications=Aplicativos
delete=Deletar conta
-uid=Uid
public_profile=Perfil público
profile_desc=Seu endereço de E-mail é publico e será usado para qualquer notificação relacionada à conta, e qualquer operação na web feita através do site.
@@ -295,6 +317,7 @@ delete_email=Deletar
email_deletion=Exclusão do email
email_deletion_desc=Ao Excluir este endereço de e-mail será removido informações relacionadas com a sua conta. Você deseja continuar?
email_deletion_success=O E-mail foi excluído com sucesso!
+email_deletion_primary=Cannot delete primary email address.
add_new_email=Adicionar novo endereço de e-mail
add_email=Adicionar e-mail
add_email_confirmation_sent=Um novo e-mail de confirmação foi enviado para '%s'. Por favor, verifique sua Caixa de Entrada dentro das próximas %d horas, para concluir o processo de confirmação.
@@ -320,14 +343,36 @@ no_activity=Nenhuma atividade recente
key_state_desc=Usada a pelo menos 7 dias
token_state_desc=Este token é usado em pelo menos 7 dias
-manage_social=Gerenciar contas sociais associadas
-social_desc=Esta é uma lista de contas sociais. Remova qualquer ligação que você não reconheça.
-unbind=Desvincular
-unbind_success=A conta social foi desvinculada.
+two_factor=Autenticação de dois fatores
+two_factor_status=Estado:
+two_factor_on=Ativado
+two_factor_off=Desativado
+two_factor_enable=Ativar
+two_factor_disable=Desativar
+two_factor_view_recovery_codes=Consulte e salve seus códigos de recuperação num local seguro. Você poderá usá-los como senha se perder acesso ao seu aplicativo de autenticação.
+two_factor_http=Para operações em HTTP/HTTPS, você não poderá mais usar seu nome de usuário e senha. Crie e use um Token de Acesso Pessoal como credencial (p. ex.: %[3]%).
+two_factor_enable_title=Ativar autenticação de dois fatores
+two_factor_scan_qr=Use o seu aplicativo de autenticação para escanear a imagem:
+two_factor_or_enter_secret=Ou informe o segredo:
+two_factor_then_enter_passcode=Em seguida digite a senha:
+two_factor_verify=Verificar
+two_factor_invalid_passcode=A senha inserida é inválida. Tente novamente!
+two_factor_reused_passcode=A senha fornecida já foi usada, por favor tente outra!
+two_factor_enable_error=Falha ao ativar a autenticação de dois fatores: %v
+two_factor_enable_success=A autenticação de dois fatores foi ativada para a sua conta com sucesso!
+two_factor_recovery_codes_title=Códigos de recup. p/ autenticação de dois fatores
+two_factor_recovery_codes_desc=Os códigos de recuperação são usados se você perder acesso ao seu aplicativo de autenticação. Cada código pode ser usado apenas uma vez. Salve-os num lugar seguro.
+two_factor_regenerate_recovery_codes=Gerar códigos de recuperação
+two_factor_regenerate_recovery_codes_error=Falha ao gerar códigos de recuperação: %v
+two_factor_regenerate_recovery_codes_success=Novos códigos de recuperação gerados com sucesso!
+two_factor_disable_title=Desativar a autenticação de dois fatores
+two_factor_disable_desc=O nível de segurança da sua conta diminuirá após desativar a autenticação de dois fatores. Deseja mesmo continuar?
+two_factor_disable_success=A autenticação de dois fatores foi desativada com sucesso!
manage_access_token=Gerenciar tokens de acesso pessoal
generate_new_token=Gerar novo token
tokens_desc=Tokens gerados por você que podem ser usados para acessar a API do Gogs.
+access_token_tips=The personal access token may be used as either username or password. It is recommended to use the "x-access-token" as the username and the personal access token as the password for Git applications.
new_token_desc=Por enquanto, todo token terá acesso completo à sua conta.
token_name=Nome do token
generate_token=Gerar token
@@ -336,6 +381,16 @@ delete_token=Excluir
access_token_deletion=Exclusão do token de acesso pessoal
access_token_deletion_desc=Ao Excluir este token de acesso pessoal será removido todos os acessos do aplicativo. Você deseja continuar?
delete_token_success=O Token de acesso pessoal foi removido com sucesso! Não se esqueça de atualizar seus aplicativos também.
+token_name_exists=Já existe um token com o mesmo nome.
+
+orgs.none=Você não é participante de nenhuma organização.
+orgs.leave_title=Deixar uma organização
+orgs.leave_desc=Você perderá acesso a todos os repositórios e equipes após deixar a organização. Deseja continuar?
+
+repos.leave=Sair
+repos.leave_title=Sair do repositório
+repos.leave_desc=Você irá perder acesso ao repositório após sair. Deseja continuar?
+repos.leave_success=Você saiu do repositório “%s” com sucesso!
delete_account=Deletar sua conta
delete_prompt=A operação deletará sua conta permanentemente, e NÃO PODERÁ ser desfeita!
@@ -348,7 +403,9 @@ owner=Dono
repo_name=Nome do repositório
repo_name_helper=Nomes de repositórios bons são pequenos, memorizáveis e únicos.
visibility=Visibilidade
+unlisted=Unlisted
visiblity_helper=Este é um repositório privado
+unlisted_helper=This repository is Unlisted
visiblity_helper_forced=O adminstrador forçou todos os novos repositórios para serem privados
visiblity_fork_helper=(A alteração desse valor irá afetar todos os forks)
clone_helper=Precisa de ajuda com o clone? Visite a Ajuda!
@@ -374,24 +431,26 @@ mirror_last_synced=Última sincronização
watchers=Observadores
stargazers=Usuários que estrelaram
forks=Forks
+repo_description_helper=Descrição do repositório. Tamanho máximo de 512 caracteres.
+repo_description_length=Caracteres disponíveis
form.reach_limit_of_creation=O proprietário atingiu o limite máximo de criação de repositórios de %d.
-form.name_reserved=O nome de repositório '%s' não pode ser usado.
-form.name_pattern_not_allowed=Não é permitido usar o padrão '%s' para o nome de repositório.
+form.name_not_allowed=Nome de usuário ou padrão %q não é permitido.
need_auth=Precisa de autorização
migrate_type=Tipo de migração
migrate_type_helper=Este repositório será um mirror
migrate_repo=Migrar repositório
migrate.clone_address=Endereço de clone
-migrate.clone_address_desc=Isto pode ser uma URL de HTTP/HTTPS/GIT ou um caminho de diretório local.
+migrate.clone_address_desc=Pode ser um URL HTTP/HTTPS/GIT.
+migrate.clone_address_desc_import_local=Você também pode migrar um repositório pelo path do servidor local.
migrate.permission_denied=Você não pode importar repositórios locais.
migrate.invalid_local_path=Caminho local inválido, não existe ou não é um diretório.
+migrate.clone_address_resolved_to_blocked_local_address=Clone address resolved to a local network address that is implicitly blocked.
migrate.failed=Migração falhou: %v
mirror_from=mirror de
forked_from=fork de
-fork_from_self=Você não pode criar fork de um repositório que já é seu!
copy_link=Copiar
copy_link_success=Copiado!
copy_link_error=Pressione ⌘-C ou Ctrl-C para copiar
@@ -407,9 +466,9 @@ quick_guide=Guia rápido
clone_this_repo=Clonar este repositório
create_new_repo_command=Criar um novo repositório na linha de comando
push_exist_repo=Push um repositório existente na linha de comando
-repo_is_empty=Este repositório está vazio, por favor volte mais tarde!
+bare_message=Este repositório ainda não possui conteúdo.
-code=Código
+files=Arquivos
branch=Branch
tree=Tree
filter_branch_and_tag=Filtrar branch ou tag
@@ -420,12 +479,23 @@ pulls=Pull Requests
labels=Etiquetas
milestones=Milestones
commits=Commits
+git_branches=Branches
releases=Versões
file_raw=Raw
file_history=Histórico
file_view_raw=Ver raw
file_permalink=Link permanente
file_too_large=Este arquivo é muito grande para ser exibido
+video_not_supported_in_browser=Seu navegador não suporta a tag de vídeo do HTML5.
+
+branches.overview=Visão geral
+branches.active_branches=Branches ativos
+branches.stale_branches=Branches obsoletos
+branches.all=Todos os branches
+branches.updated_by=Atualizado %[1]s por %[2]s
+branches.change_default_branch=Modificar branch padrão
+branches.default_deletion_not_allowed=Cannot delete the default branch.
+branches.protected_deletion_not_allowed=Cannot delete a protected branch.
editor.new_file=Novo arquivo
editor.upload_file=Enviar arquivo
@@ -455,16 +525,19 @@ editor.cancel=Cancelar
editor.filename_cannot_be_empty=Nome do arquivo não pode ser vazio.
editor.branch_already_exists=Branch '%s' já existe neste repositório.
editor.directory_is_a_file=Entrada '%s' no caminho pai é um arquivo e não uma pasta neste repositório.
+editor.file_is_a_symlink=O arquivo '%s' é um link simbólico que não pode ser modificado a partir do editor da web.
editor.filename_is_a_directory=O arquivo '%s' é uma pasta existente neste repositório.
editor.file_editing_no_longer_exists=O arquivo '%s' que você está editando não existe mais neste repositório.
editor.file_changed_while_editing=O conteúdo do arquivo mudou desde que você começou a editar. Clique aqui para ver o que mudou ou pressione efetivar novamente para sobrescrever esses mudanças.
editor.file_already_exists=Um arquivo com nome '%s' já existe neste repositório.
editor.no_changes_to_show=Nenhuma alteração a mostrar.
editor.fail_to_update_file=Houve erro ao criar ou atualizar arquivo '%s': %v
+editor.fail_to_delete_file=Falha ao excluir arquivo '%s' com erro: %v
editor.add_subdir=Adicionar o subdiretório...
editor.unable_to_upload_files=Houve erro ao fazer upload de arquivos para '%s': %v
editor.upload_files_to_dir=Enviar arquivos para '%s'
+commits.commit_history=Histórico de commits
commits.commits=Commits
commits.search=Pesquisar commits
commits.find=Buscar
@@ -562,6 +635,7 @@ pulls.compare_compare=comparar
pulls.filter_branch=Filtrar branch
pulls.no_results=Nada encontrado.
pulls.nothing_to_compare=Não há nada para comparar porque o branch base e o head estão iguais.
+pulls.nothing_merge_base=Não há o que comparar pois os dois branches possuem históricos completamente diferentes.
pulls.has_pull_request=`Já existem pull requests entre esses dois alvos: %[2]s#%[3]d`
pulls.create=Criar Pull Request
pulls.title_desc=quer mesclar %[1]d commits de %[2]s em %[3]s
@@ -577,8 +651,13 @@ pulls.is_checking=A verificação do conflito ainda está em progresso, por favo
pulls.can_auto_merge_desc=O merge deste Pull Pequest pode ser aplicado automaticamente.
pulls.cannot_auto_merge_desc=O merge deste Pull Request não pode ser aplicado automaticamente pois há conflitos.
pulls.cannot_auto_merge_helper=Por favor, aplique o merge manualmente para resolver os conflitos.
+pulls.create_merge_commit=Criar commit de um merge
+pulls.rebase_before_merging=Execute rebase antes de fazer merge
+pulls.commit_description=Descrição do Commit
pulls.merge_pull_request=Solicitação de merge de Pull Request
pulls.open_unmerged_pull_exists=`Você não pode executar a operação de reabrir porque já existe um Pull request aberto (#%d) do mesmo repositório com as mesmas informações de merge e está esperando pelo merge.`
+pulls.delete_branch=Excluir Branch
+pulls.delete_branch_has_new_commits=O branch não pode ser excluído por possuir novos commits após o merge.
milestones.new=Novo milestone
milestones.open_tab=%d abertos
@@ -629,6 +708,29 @@ settings.collaboration.admin=Administrador
settings.collaboration.write=Escrita
settings.collaboration.read=Leitura
settings.collaboration.undefined=Indefinido
+settings.branches=Branches
+settings.branches_bare=Não é possível gerenciar branches num repositório vazio. Adicione conteúdo primeiro.
+settings.default_branch=Branch padrão
+settings.default_branch_desc=O branch padrão é considerado branch "base" para commits, pull requests e edição on-line.
+settings.update=Atualizar
+settings.update_default_branch_unsupported=Mudar o branch padrão não é suportado pela versão do Git no servidor.
+settings.update_default_branch_success=O branch padrão deste repositório foi atualizado com sucesso!
+settings.protected_branches=Branches protegidos
+settings.protected_branches_desc=Proteger branches de push forçado, remoção acidental e committers da lista branca.
+settings.choose_a_branch=Selecione um branch...
+settings.branch_protection=Proteção de Branch
+settings.branch_protection_desc=Escolha opções de proteção para o branch %s.
+settings.protect_this_branch=Proteger este branch
+settings.protect_this_branch_desc=Desabilita pushes forçados e previne remoção.
+settings.protect_require_pull_request=Requer pull request ao invés de push direto
+settings.protect_require_pull_request_desc=Habilite esta opção para desabilitar push direto para este branch. Os commits precisam sofrer um push para outro branch não protegido e merge para este branch por meio de um pull request.
+settings.protect_whitelist_committers=Incluir na lista branca quem pode fazer push para este branch
+settings.protect_whitelist_committers_desc=Adicionar pessoas ou equipes para a lista branca de push direto para este branch. Usuários na lista branca contornarão a verificação de necessidade de pull request.
+settings.protect_whitelist_users=Usuários que podem realizar push para este branch
+settings.protect_whitelist_search_users=Pesquisar usuários
+settings.protect_whitelist_teams=Equipes cujos membros podem realizar push para este branch
+settings.protect_whitelist_search_teams=Buscar times
+settings.update_protect_branch_success=As opções de proteção deste branch foram atualizadas com sucesso!
settings.hooks=Webhooks
settings.githooks=Hooks do Git
settings.basic_settings=Configurações básicas
@@ -641,19 +743,26 @@ settings.change_reponame_prompt=Esta mudança irá afetar os links para este rep
settings.advanced_settings=Configurações avançadas
settings.wiki_desc=Habilitar sistema de wiki
settings.use_internal_wiki=Usar wiki nativa
+settings.allow_public_wiki_desc=Permitir acesso público à wiki quando o repositório for privado
settings.use_external_wiki=Usar wiki externa
settings.external_wiki_url=URL externa da wiki
settings.external_wiki_url_desc=Os visitantes serão redirecionados para a URL ao clicar na aba.
settings.issues_desc=Habilitar issue tracker
settings.use_internal_issue_tracker=Usar o issue tracker nativo
+settings.allow_public_issues_desc=Permitir acesso público a problemas quando o repositório for privado
settings.use_external_issue_tracker=Usar issue tracker externo
+settings.external_tracker_url=URL do Issue Tracker Externo
+settings.external_tracker_url_desc=Visitantes serão redirecionados ao URL quando clicarem na aba.
settings.tracker_url_format=Formato de URL do issue tracker externo
settings.tracker_issue_style=Estilo de nome de issue tracker externo:
settings.tracker_issue_style.numeric=Numérico
settings.tracker_issue_style.alphanumeric=Alfanumérico
settings.tracker_url_format_desc=Você pode usar o espaço reservado {user} {repo} {index} para o nome do usuário, índice de nome e a questão do repositório.
-settings.pulls_desc=Habilitar Pull Requests para aceitar contribuições públicas
+settings.pulls_desc=Habilitar pull requests para aceitar contribuições entre repositórios e branches
+settings.pulls.ignore_whitespace=Ignorar alterações em espaço em branco
+settings.pulls.allow_rebase_merge=Permitir rebase para commits via merge
settings.danger_zone=Zona de perigo
+settings.cannot_fork_to_same_owner=Não se pode realizar fork de um repositório para seu dono original.
settings.new_owner_has_same_repo=O novo dono já tem um repositório com o mesmo nome. Por favor, escolha outro nome.
settings.convert=Converter para repositório tradicional
settings.convert_desc=Você pode converter este espelho em um repositório tradicional. Esta ação não pode ser revertida.
@@ -672,7 +781,7 @@ settings.wiki_deletion_success=Dados de wiki do repositório foram deletados com
settings.delete=Deletar este repositório
settings.delete_desc=Uma vez que você remova um repositório, não tem volta. Por favor, tenha certeza.
settings.delete_notices_1=-Esta operação NÃO PODERÁ ser desfeita.
-settings.delete_notices_2=- Esta operação irá apagar permanentemente o tudo deste repositório, incluindo os dados do Git, Issues, comentários e acessos dos colaboradores.
+settings.delete_notices_2=- Esta operação irá apagar permanentemente tudo neste repositório, incluindo commits, issues, comentários, o wiki e colaboradores.
settings.delete_notices_fork_1=-Todos os forks se tornarão independentes após a exclusão.
settings.deletion_success=Repositório excluído com sucesso!
settings.update_settings_success=As opções do repositório foram atualizadas com sucesso.
@@ -688,20 +797,25 @@ settings.collaborator_deletion_desc=Este usuário não terá mais acesso de cola
settings.remove_collaborator_success=O colaborador foi removido.
settings.search_user_placeholder=Pesquisar usuário...
settings.org_not_allowed_to_be_collaborator=Organização não tem permissão para ser adicionada como um colaborador.
-settings.user_is_org_member=O usuário é um membro da organização que não pode ser adicionado como um colaborador.
-settings.add_webhook=Adicionar Webhook
settings.hooks_desc=Hooks da web ou Webhooks permitem serviços externos serem notificados quando certos eventos acontecem no Gogs. Quando acontecem os eventos especificados, enviaremos uma solicitação POST para cada uma das URLs que você fornecer. Saiba mais no nosso Guia de Webhooks.
+settings.webhooks.add_new=Adicionar um novo webhook:
+settings.webhooks.choose_a_type=Escolha um tipo...
+settings.add_webhook=Adicionar Webhook
settings.webhook_deletion=Deletar Webhook
settings.webhook_deletion_desc=Deletar este Webhook vai remover sua informação e todo o histórico de entrega. Deseja continuar?
settings.webhook_deletion_success=Webhook deletado com sucesso!
settings.webhook.test_delivery=Entrega de teste
settings.webhook.test_delivery_desc=Enviar uma entrega de evento de Push falso para testar suas configurações de webhook
settings.webhook.test_delivery_success=O Webhook de teste foi adicionado para a fila de entrega. Pode demorar alguns segundos antes de ser exibido no histórico de entrega.
+settings.webhook.redelivery=Re-entrega
+settings.webhook.redelivery_success=A tarefa hook '%s' foi readicionada à fila de entrega. Pode demorar alguns segundos para a situação da entrega no histórico ser atualizada.
settings.webhook.request=Solicitação
settings.webhook.response=Resposta
settings.webhook.headers=Cabeçalhos
settings.webhook.payload=Payload
settings.webhook.body=Corpo
+settings.webhook.err_cannot_parse_payload_url=Não foi possível analisar a URL da carga: %v
+settings.webhook.url_resolved_to_blocked_local_address=Payload URL resolved to a local network address that is implicitly blocked.
settings.githooks_desc=Hooks do Git são ofertados pelo próprio Git, você pode editar arquivos de hooks suportados na lista abaixo para aplicar operações personalizadas.
settings.githook_edit_desc=Se o hook não estiver ativo, o conteúdo de exemplo será apresentado. Deixar o conteúdo em branco irá desativar esse hook.
settings.githook_name=Nome do Hook
@@ -711,6 +825,7 @@ settings.add_webhook_desc=Enviaremos uma solicitação POST para o
settings.payload_url=URL de Payload
settings.content_type=Tipo de conteúdo
settings.secret=Secreto
+settings.secret_desc=O segredo será enviado como digest hexadecimal SHA256 HMAC do payload via cabeçalho X-Gogs-Signature.
settings.slack_username=Nome de usuário
settings.slack_icon_url=URL do ícone
settings.slack_color=Cor
@@ -720,10 +835,20 @@ settings.event_send_everything=Preciso de tudo.
settings.event_choose=Deixe-me escolher o que eu preciso.
settings.event_create=Criar
settings.event_create_desc=Branch ou Tag criado
-settings.event_pull_request=Pull Request
-settings.event_pull_request_desc=Pull request aberto, fechado, reaberto, atribuído, desatribuído, teve etiqueta atualizada ou limpada ou foi sincronizado.
+settings.event_delete=Apagar
+settings.event_delete_desc=Branch ou tag excluído
+settings.event_fork=Fork
+settings.event_fork_desc=Feito fork do repositório
settings.event_push=Push
settings.event_push_desc=Git push para o repositório
+settings.event_issues=Problemas
+settings.event_issues_desc=Problema aberto, fechado, reaberto, editado, atribuído, desatribuído, etiqueta atualizada, etiqueta limpa, milestone definido ou milestone indefinido.
+settings.event_pull_request=Pull Request
+settings.event_pull_request_desc=Pull request aberto, fechado, reaberto, editado, atribuído, desatribuído, etiqueta atualizada, etiqueta limpa, milestone definido, milestone indefinido ou sincronizado.
+settings.event_issue_comment=Comentário do Problema
+settings.event_issue_comment_desc=Comentário do problema criado, editado ou excluído.
+settings.event_release=Lançamento
+settings.event_release_desc=Lançamento publicado em um repositório.
settings.active=Ativo
settings.active_helper=Enviaremos detalhes do evento quando este hook for acionado.
settings.add_hook_success=Novos hooks de web foram adicionados.
@@ -733,10 +858,13 @@ settings.delete_webhook=Excluir Webhook
settings.recent_deliveries=Entregas Recentes
settings.hook_type=Tipo de Hook
settings.add_slack_hook_desc=Adicionar Slack de integração para o seu repositório.
+settings.add_discord_hook_desc=Adicionar integração do Discord ao seu repositório.
+settings.add_dingtalk_hook_desc=Adicionar integração do Dingtalk ao seu repositório.
settings.slack_token=Token
settings.slack_domain=Domínio
settings.slack_channel=Canal
settings.deploy_keys=Chaves de Deploy
+settings.deploy_keys_helper=Pegadinha Comum! Se estiver buscando adicionar chaves públicas pessoais, faça isto nas suas configurações da conta.
settings.add_deploy_key=Nova chave
settings.deploy_key_desc=Chave de Deploy só tem acesso somente leitura. Não é igual as chaves SSH de conta pessoal.
settings.no_deploy_keys=Você ainda não adicionou nenhuma chave de Deploy.
@@ -748,6 +876,8 @@ settings.add_key_success=A nova chave de Deploy '%s' foi adicionada com sucesso!
settings.deploy_key_deletion=Exclusão de chave de Deploy
settings.deploy_key_deletion_desc=Excluir esta chave de Deploy removerá permissões de acesso a este repositório. Quer mesmo continuar?
settings.deploy_key_deletion_success=Chave de Deploy excluída com sucesso!
+settings.description_desc=Descrição do repositório. Tamanho máximo de 512 caracteres.
+settings.description_length=Caracteres disponíveis
diff.browse_source=Ver código fonte
diff.parent=pai
@@ -766,7 +896,6 @@ release.releases=Versões
release.new_release=Nova versão
release.draft=Rascunho
release.prerelease=Versão prévia
-release.stable=Estável
release.edit=editar
release.ahead=%d commits para %s depois desta versão
release.source_code=Código fonte
@@ -813,8 +942,8 @@ team_name_helper=Você usará este nome para mencionar esta equipe em conversas.
team_desc_helper=Do que trata essa equipe?
team_permission_desc=Que nível de permissão esta equipe deve ter?
-form.name_reserved=O nome de organização '%s' não pode ser usado.
-form.name_pattern_not_allowed=Não é permitido usar o padrão '%s' para o nome de organização.
+form.name_not_allowed=Nome da organização ou padrão %q não é permitido.
+form.team_name_not_allowed=Nome do time ou padrão %q não é permitido.
settings=Configurações
settings.options=Opções
@@ -886,12 +1015,19 @@ first_page=Primeira
last_page=Última
total=Total: %d
+dashboard.build_info=Informações da compilação
+dashboard.app_ver=Versão do aplicativo
+dashboard.git_version=Versão do Git
+dashboard.go_version=Versão Go
+dashboard.build_time=Data de compilação
+dashboard.build_commit=Commit da compilação
dashboard.statistic=Estatística
dashboard.operations=Operações
dashboard.system_status=Status do monitor de sistema
dashboard.statistic_info=O banco de dados do Gogs contém %d usuários, %d organizações, %d chaves públicas, %d repositórios, %d observadores, %d estrelas, %d ações, %d acessos, %d questões, %d comentários, %d contas sociais, %d seguidores, %d espelhos, %d versões, %d origens de login, %d Hooks da Web, %d milestones, %d labels, %d tarefas hook, %d equipes, %d tarefas de atualização, %d anexos.
dashboard.operation_name=Nome da operação
dashboard.operation_switch=Trocar
+dashboard.select_operation_to_run=Selecione a operação para executar
dashboard.operation_run=Executar
dashboard.clean_unbind_oauth=Limpar OAuthes não acoplados
dashboard.clean_unbind_oauth_success=Todos OAuthes desvinculados foram excluídos com sucesso.
@@ -905,8 +1041,8 @@ dashboard.git_gc_repos=Fazer coleta de lixo nos repositórios
dashboard.git_gc_repos_success=Em todos repositórios, a coleta de lixo foi realizada com sucesso.
dashboard.resync_all_sshkeys=Reescrever o arquivo '.ssh/authorized_keys' (atenção: chaves que não sejam do Gogs serão perdidas)
dashboard.resync_all_sshkeys_success=Todas as chaves públicas foram reescritas com sucesso.
-dashboard.resync_all_update_hooks=Reescrever todos os hooks de atualização dos repositórios (necessário quando o caminho de configuração customizado é alterado)
-dashboard.resync_all_update_hooks_success=Os hooks de atualização de todos os repositórios foram reescritos com sucesso.
+dashboard.resync_all_hooks=Ressincronizar hooks pre-receive, update e post-receive de todos os repositórios
+dashboard.resync_all_hooks_success=Os hooks pre-receive, update e post-receive de todos os repositórios foram ressincronizados com sucesso.
dashboard.reinit_missing_repos=Reinicializar todos os registros de repositório que perderam os arquivos do Git
dashboard.reinit_missing_repos_success=Todos os repositórios que perderam arquivos do Git foram reinicializados com sucesso.
@@ -981,12 +1117,14 @@ repos.private=Privado
repos.watches=Observadores
repos.stars=Favoritos
repos.issues=Issues
+repos.size=Tamanho
-auths.auth_manage_panel=Painel de gerenciamento da autenticação
+auths.auth_sources=Fontes de autenticação
auths.new=Adicionar nova fonte
auths.name=Nome
auths.type=Tipo
auths.enabled=Habilitado
+auths.default=Padrão
auths.updated=Atualizado
auths.auth_type=Tipo de autenticação
auths.auth_name=Nome da autenticação
@@ -995,15 +1133,21 @@ auths.domain=Domínio
auths.host=Host
auths.port=Porta
auths.bind_dn=Vincular DN
+auths.bind_dn_helper=Você pode usar '%s' como placeholderpara o nome de usuário, por exemplo, DOM\%s
auths.bind_password=Vincular senha
auths.bind_password_helper=Atenção: Esta senha é armazenada em texto plano. Não use uma conta com muitos privilégios.
auths.user_base=Base de pesquisa do usuário
auths.user_dn=Usuário do DN
auths.attribute_username=Atributo nome de usuário
auths.attribute_username_placeholder=Deixe vazio para usar o valor do campo de formulário de entrada de nome de usuário.
-auths.attribute_name=Atributo primeiro nome
+auths.attribute_name=Atributo do Nome
auths.attribute_surname=Atributo sobrenome
auths.attribute_mail=Atributo e-mail
+auths.verify_group_membership=Verificar associação a grupo
+auths.group_search_base_dn=Grupo de Pesquisa DN Base
+auths.group_filter=Filtro de Grupo
+auths.group_attribute_contain_user_list=Atributo do grupo contendo a lista de usuários
+auths.user_attribute_listed_in_group=Atributo do usuário listado no grupo
auths.attributes_in_bind=Buscar os atributos no contexto de Bind DN
auths.filter=Filtro de usuário
auths.admin_filter=Filtro de administrador
@@ -1017,9 +1161,9 @@ auths.enable_tls=Habilitar Criptografia TLS
auths.skip_tls_verify=Ignorar verificação de TLS
auths.pam_service_name=Nome de Serviço PAM
auths.enable_auto_register=Habilitar Registro Automático
-auths.tips=Dicas
auths.edit=Editar a configuração de autenticação
auths.activated=Esta autenticação foi ativada
+auths.default_auth=Esta autenticação é uma fonte padrão de login
auths.new_success=Nova autenticação '%s' foi adicionada com sucesso.
auths.update_success=A configuração da autenticação foi atualizada com sucesso.
auths.update=Atualizar a configuração da autenticação
@@ -1028,107 +1172,189 @@ auths.delete_auth_title=Exclusão da autenticação
auths.delete_auth_desc=Esta autenticação esta prestes a ser excluída, deseja continuar?
auths.still_in_used=Esta autenticação ainda é usada por alguns usuários. Por favor remova ou converta esses usuários para outro tipo de login primeiro.
auths.deletion_success=Autenticação excluída com sucesso!
+auths.login_source_exist=A fonte de login '%s" já existe.
+auths.github_api_endpoint=Endpoint da API
+config.not_set=(não definido)
config.server_config=Configuração do servidor
-config.app_name=Nome do aplicativo
-config.app_ver=Versão do aplicativo
-config.app_url=URL do aplicativo
-config.domain=Domínio
-config.offline_mode=Modo Offline
-config.disable_router_log=Desabilitar o Log do router
+config.brand_name=Nome da marca
config.run_user=Usuário de execução
config.run_mode=Modo de execução
-config.repo_root_path=Caminho raiz do repositório
-config.static_file_root_path=Caminho raiz para arquivo estático
-config.log_file_root_path=Caminho raiz para arquivo de log
-config.script_type=Tipo de script
-config.reverse_auth_user=Usuário de autenticação reversa
+config.server.external_url=URL externa
+config.server.domain=Domínio
+config.server.protocol=Protocolo
+config.server.http_addr=Endereço HTTP
+config.server.http_port=Porta HTTP
+config.server.cert_file=Arquivo de certificado
+config.server.key_file=Arquivo chave
+config.server.tls_min_version=Versão mínima de TLS
+config.server.unix_socket_permission=Permissão de soquete Unix
+config.server.local_root_url=URL raiz local
+config.server.offline_mode=Modo offline
+config.server.disable_router_log=Desabilitar log do router
+config.server.enable_gzip=Ativar Gzip
+config.server.app_data_path=Caminho de dados da aplicação
+config.server.load_assets_from_disk=Carregar ativos do disco
+config.server.landing_url=Landing URL
config.ssh_config=Configuração de SSH
-config.ssh_enabled=Habilitado
-config.ssh_start_builtin_server=Iniciar servidor embutido
-config.ssh_domain=Domínio
-config.ssh_port=Porta
-config.ssh_listen_port=Porta de escuta
-config.ssh_root_path=Caminho da raiz
-config.ssh_key_test_path=Caminho da chave de teste
-config.ssh_keygen_path=Caminho do keygen ('ssh-keygen')
-config.ssh_minimum_key_size_check=Verificar tamanho mínimo da chave
-config.ssh_minimum_key_sizes=Tamanhos mínimos da chave
+config.ssh.enabled=Enabled
+config.ssh.domain=Exposed domain
+config.ssh.port=Exposed port
+config.ssh.root_path=Root path
+config.ssh.keygen_path=Keygen path
+config.ssh.key_test_path=Key test path
+config.ssh.minimum_key_size_check=Minimum key size check
+config.ssh.minimum_key_sizes=Minimum key sizes
+config.ssh.rewrite_authorized_keys_at_start=Rewrite "authorized_keys" at start
+config.ssh.start_builtin_server=Start builtin server
+config.ssh.listen_host=Listen host
+config.ssh.listen_port=Listen port
+config.ssh.server_ciphers=Server ciphers
+config.ssh.server_macs=Server MACs
+config.ssh.server_algorithms=Server algorithms
+
+config.repo_config=Configuração do Repositório
+config.repo.root_path=Root path
+config.repo.script_type=Script type
+config.repo.ansi_chatset=ANSI charset
+config.repo.force_private=Force private
+config.repo.max_creation_limit=Max creation limit
+config.repo.preferred_licenses=Preferred licenses
+config.repo.disable_http_git=Disable HTTP Git
+config.repo.enable_local_path_migration=Enable local path migration
+config.repo.enable_raw_file_render_mode=Enable raw file render mode
+config.repo.commits_fetch_concurrency=Commits fetch concurrency
+config.repo.editor.line_wrap_extensions=Editor line wrap extensions
+config.repo.editor.previewable_file_modes=Editor previewable file modes
+config.repo.upload.enabled=Upload enabled
+config.repo.upload.temp_path=Upload temporary path
+config.repo.upload.allowed_types=Upload allowed types
+config.repo.upload.file_max_size=Upload file size limit
+config.repo.upload.max_files=Upload files limit
config.db_config=Configuração do banco de dados
-config.db_type=Tipo
-config.db_host=Host
-config.db_name=Nome
-config.db_user=Usuário
-config.db_ssl_mode=Modo SSL
-config.db_ssl_mode_helper=(apenas para "postgres")
-config.db_path=Caminho
-config.db_path_helper=(para "sqlite3" e "tidb")
-
-config.service_config=Configuração do serviço
-config.register_email_confirm=Requerer confirmação de e-mail
-config.disable_register=Desabilitar registro
-config.show_registration_button=Mostrar botão de registo
-config.require_sign_in_view=Requerer entrar no Gogs para visualizar
-config.mail_notify=Notificação de e-mail
-config.disable_key_size_check=Desativar verificação de tamanho mínimo da chave
-config.enable_captcha=Habilitar o captcha
-config.active_code_lives=Ativar Code Lives
-config.reset_password_code_lives=Redefinir senha de Code Lives
+config.db.type=Type
+config.db.host=Host
+config.db.name=Name
+config.db.schema=Schema
+config.db.schema_helper=(for "postgres" only)
+config.db.user=User
+config.db.ssl_mode=SSL mode
+config.db.ssl_mode_helper=(for "postgres" only)
+config.db.path=Path
+config.db.path_helper=(for "sqlite3"only)
+config.db.max_open_conns=Maximum open connections
+config.db.max_idle_conns=Maximum idle connections
+
+config.security_config=Security configuration
+config.security.login_remember_days=Login remember days
+config.security.cookie_remember_name=Remember cookie
+config.security.cookie_username=Username cookie
+config.security.cookie_secure=Enable secure cookie
+config.security.reverse_proxy_auth_user=Reverse proxy authentication header
+config.security.enable_login_status_cookie=Enable login status cookie
+config.security.login_status_cookie_name=Cookie para estado do login
+config.security.local_network_allowlist=Local network allowlist
+
+config.email_config=Email configuration
+config.email.enabled=Enabled
+config.email.subject_prefix=Subject prefix
+config.email.host=Host
+config.email.from=From
+config.email.user=User
+config.email.disable_helo=Disable HELO
+config.email.helo_hostname=HELO hostname
+config.email.skip_verify=Skip certificate verify
+config.email.use_certificate=Use custom certificate
+config.email.cert_file=Certificate file
+config.email.key_file=Key file
+config.email.use_plain_text=Use plain text
+config.email.add_plain_text_alt=Add plain text alternative
+config.email.send_test_mail=Send test email
+config.email.test_mail_failed=Failed to send test email to '%s': %v
+config.email.test_mail_sent=Test email has been sent to '%s'.
+
+config.auth_config=Authentication configuration
+config.auth_custom_logout_url=Custom logout URL
+config.auth.activate_code_lives=Activate code lives
+config.auth.reset_password_code_lives=Reset password code lives
+config.auth.require_email_confirm=Require email confirmation
+config.auth.require_sign_in_view=Require sign in view
+config.auth.disable_registration=Disable registration
+config.auth.enable_registration_captcha=Enable registration captcha
+config.auth.enable_reverse_proxy_authentication=Enable reverse proxy authentication
+config.auth.enable_reverse_proxy_auto_registration=Enable reverse proxy auto registration
+config.auth.reverse_proxy_authentication_header=Reverse proxy authentication header
+
+config.user_config=User configuration
+config.user.enable_email_notify=Enable email notification
-config.webhook_config=Configuração de Hook da Web
-config.queue_length=Tamanho da fila
-config.deliver_timeout=Intervalo de entrega
-config.skip_tls_verify=Pular verificação de TLS
-
-config.mailer_config=Configuração de envio de e-mail
-config.mailer_enabled=Habilitado
-config.mailer_disable_helo=Desabilitar HELO
-config.mailer_name=Nome
-config.mailer_host=Host
-config.mailer_user=Usuário
-config.send_test_mail=Enviar email de teste
-config.test_mail_failed=Falha ao enviar o email de teste para '%s': %v
-config.test_mail_sent=O email de teste foi enviado para '%s'.
-
-config.oauth_config=Configuração do OAuth
-config.oauth_enabled=Habilitado
+config.session_config=Configuração da sessão
+config.session.provider=Provider
+config.session.provider_config=Provider config
+config.session.cookie_name=Cookie
+config.session.https_only=HTTPS only
+config.session.gc_interval=GC interval
+config.session.max_life_time=Max life time
+config.session.csrf_cookie_name=CSRF cookie
config.cache_config=Configuração de cache
-config.cache_adapter=Adaptador de cache
-config.cache_interval=Intervalo de cache
-config.cache_conn=Conexão de cache
-
-config.session_config=Configuração da sessão
-config.session_provider=Provedor da sessão
-config.provider_config=Configuração do provedor
-config.cookie_name=Nome do cookie
-config.enable_set_cookie=Habilitar uso de cookie
-config.gc_interval_time=Tempo de Intervalo do GC
-config.session_life_time=Tempo de vida da sessão
-config.https_only=Apenas HTTPS
-config.cookie_life_time=Tempo de vida do cookie
+config.cache.adapter=Adapter
+config.cache.interval=GC interval
+config.cache.host=Host
+
+config.http_config=Configuração de HTTP
+config.http.access_control_allow_origin=Access control allow origin
+
+config.attachment_config=Attachment configuration
+config.attachment.enabled=Enabled
+config.attachment.path=Path
+config.attachment.allowed_types=Allowed types
+config.attachment.max_size=Size limit
+config.attachment.max_files=Files limit
+
+config.release_config=Release configuration
+config.release.attachment.enabled=Attachment enabled
+config.release.attachment.allowed_types=Attachment allowed types
+config.release.attachment.max_size=Attachment size limit
+config.release.attachment.max_files=Attachment files limit
config.picture_config=Configuração da imagem
-config.picture_service=Serviço de imagens
-config.disable_gravatar=Desativar Gravatar
-config.enable_federated_avatar=Habilitar avatares federativos
+config.picture.avatar_upload_path=User avatar upload path
+config.picture.repo_avatar_upload_path=Repository avatar upload path
+config.picture.gravatar_source=Gravatar source
+config.picture.disable_gravatar=Disable Gravatar
+config.picture.enable_federated_avatar=Enable federated avatars
+
+config.mirror_config=Mirror configuration
+config.mirror.default_interval=Default interval
+
+config.webhook_config=Configuração de Hook da Web
+config.webhook.types=Types
+config.webhook.deliver_timeout=Deliver timeout
+config.webhook.skip_tls_verify=Skip TLS verify
config.git_config=Configuração do Git
-config.git_disable_diff_highlight=Habilitar realce de mudanças no diff
-config.git_max_diff_lines=Máximo de linhas mostradas no diff (para um único arquivo)
-config.git_max_diff_line_characters=Máximo de caracteres mostrados no diff (para uma única linha)
-config.git_max_diff_files=Máximo de arquivos a serem mostrados no diff
-config.git_gc_args=Argumentos do GC
-config.git_migrate_timeout=Timeout de migração
-config.git_mirror_timeout=Timeout para sincronização de mirror
-config.git_clone_timeout=Timeout para operação de clone
-config.git_pull_timeout=Timeout para operação de pull
-config.git_gc_timeout=Timeout para execução do GC
+config.git.disable_diff_highlight=Disable diff syntax highlight
+config.git.max_diff_lines=Diff lines limit (for a single file)
+config.git.max_diff_line_characters=Diff characters limit (for a single line)
+config.git.max_diff_files=Diff files limit (for a single diff)
+config.git.gc_args=GC arguments
+config.git.migrate_timeout=Migration timeout
+config.git.mirror_timeout=Mirror fetch timeout
+config.git.clone_timeout=Clone timeout
+config.git.pull_timeout=Pull timeout
+config.git.gc_timeout=GC timeout
+
+config.lfs_config=LFS configuration
+config.lfs.storage=Storage
+config.lfs.objects_path=Objects path
config.log_config=Configuração de log
-config.log_mode=Modo do log
+config.log_file_root_path=Caminho raiz para arquivo de log
+config.log_mode=Modo
+config.log_options=Opções
monitor.cron=Tarefas cron
monitor.name=Nome
@@ -1159,17 +1385,24 @@ notices.delete_success=Avisos do sistema foram excluídos com sucesso.
create_repo=repositório criado %s
rename_repo=renomeou o o repositório %[1]s para %[3]s
commit_repo=pushed para %[3]s em %[4]s
+compare_commits=Ver comparação entre esses %d commits
+transfer_repo=repositório transferido de %s para %s
create_issue=`questão aberta %s#%[2]s`
close_issue=`questão fechada %s#%[2]s`
reopen_issue=`questão reaberta %s#%[2]s`
+comment_issue=`comentou sobre a questão %s#%[2]s`
create_pull_request=`criou o pull request %s#%[2]s`
close_pull_request=`fechou o pull request %s#%[2]s`
reopen_pull_request=`reabriu o pull request %s#%[2]s`
-comment_issue=`comentou sobre a questão %s#%[2]s`
merge_pull_request=`mesclou o pull request %s#%[2]s`
-transfer_repo=repositório transferido de %s para %s
+create_branch=criado novo branch %[3]s em %[4]s
+delete_branch=excluído branch %[2]s em %[3]s
push_tag=Foi feito push na tag %[2]s para %[3]s
-compare_commits=Ver comparação entre esses %d commits
+delete_tag=excluída tag %[2]s em %[3]s
+fork_repo=repositório criado %s
+mirror_sync_push=synced commits to %[3]s at %[4]s from mirror
+mirror_sync_create=synced new reference %[2]s to %[3]s from mirror
+mirror_sync_delete=synced and deleted reference %[2]s at %[3]s from mirror
[tool]
ago=atrás
@@ -1191,6 +1424,7 @@ months=%d meses %s
years=%d anos %s
raw_seconds=segundos
raw_minutes=minutos
+raw_hours=hours
[dropzone]
default_message=Arraste e solte arquivos aqui, ou clique para selecioná-los.
diff --git a/conf/locale/locale_pt-PT.ini b/conf/locale/locale_pt-PT.ini
new file mode 100644
index 00000000000..4aed948ffb1
--- /dev/null
+++ b/conf/locale/locale_pt-PT.ini
@@ -0,0 +1,1434 @@
+app_desc=Um Serviço Git fácil e simples
+
+home=Página Principal
+dashboard=Painel de administração
+explore=Explorar
+help=Ajuda
+sign_in=Iniciar Sessão
+sign_out=Terminar Sessão
+sign_up=Criar conta
+register=Registe-se
+website=Site Web
+page=Página
+template=Modelo
+language=Língua
+create_new=Criar...
+user_profile_and_more=Perfil do utilizador e mais
+signed_in_as=Sessão iniciada como
+
+username=Nome de utilizador
+email=Endereço de email
+password=Palavra-chave
+re_type=Escreva de novo
+captcha=Captcha
+
+repository=Repositório
+organization=Organização
+mirror=Espelho
+new_repo=Novo repositório
+new_migrate=Nova migração
+new_mirror=Espelho novo
+new_fork=Nova divisão de repositório
+new_org=Nova organização
+manage_org=Gerir organizações
+admin_panel=Painel de Administração
+account_settings=Configurações de conta
+settings=Definições
+your_profile=Perfil
+your_settings=Suas configurações
+
+activities=Atividades
+pull_requests=Pull requests
+issues=Questões
+
+cancel=Cancelar
+
+[status]
+page_not_found=Página Não Encontrada
+internal_server_error=Erro do servidor interno
+
+[install]
+install=Instalação
+title=Procedimentos para a instalação inicial
+docker_helper=Se estiver a executar o Gogs dentro de uma instância Docker, por favor leia asOrientações com atenção, antes de alterar algo nesta página!
+requite_db_desc=Gogs requer uma destas base de dados: MySQL, PostgreSQL, SQLite3 ou TiDB (usando o protocolo MySQL).
+db_title=Configurações da Base de Dados
+db_type=Tipo de Base de Dados
+host=Servidor
+user=Utilizador
+password=Palavra-Chave
+db_name=Nome da base de dados
+db_schema=Esquema
+db_helper=Por favor, utilize o motor INNODB do MySQL, com suporte para o mapa de caracteres utf8_general_ci.
+ssl_mode=Modo SSL
+path=Directoria
+sqlite_helper=Localização da base de dados SQLite3. Por favor indique o caminho completo quando inicia o Gogs como serviço.
+err_empty_db_path=A localização da base de dados SQLite3 não pode estar vazia.
+no_admin_and_disable_registration=Não é possível desabilitar o registo de utilizadores, sem ter se criado uma conta de administrador.
+err_empty_admin_password=A palavra-chave do administrador não pode ser vazia.
+
+general_title=Configurações gerais da aplicação
+app_name=Nome da aplicação
+app_name_helper=Insira o nome da sua organização aqui!
+repo_path=Endereço raiz do repositório
+repo_path_helper=Todos os repositórios remotos Git, serão guardados dentro desta directoria.
+run_user=Executar em nome do utilizador
+run_user_helper=O utilizador tem de deter acesso á raiz da directoria do repositório, e para executar o Gogs.
+domain=Domínio
+domain_helper=Isto afecta os URLs a clonar.
+ssh_port=Porta SSH
+ssh_port_helper=A porta em que o serviço SSH está a correr, deixar o campo vazio para desactivar a funcionalidade SSH.
+use_builtin_ssh_server=Usar o servidor SSH embutido
+use_builtin_ssh_server_popup=Iniciar o servidor SSH embutido para operações Git, para se distinguir do serviço SSH do sistema.
+http_port=Porta HTTP
+http_port_helper=Número da porta onde a aplicação irá escutar.
+app_url=URL da aplicação
+app_url_helper=Isto afecta o URL de HTTP/HTTPS e no e-mail.
+log_root_path=Caminho dos Logs
+log_root_path_helper=Directoria para aonde gravar os Logs.
+enable_console_mode=Ativar o Modo Consola
+enable_console_mode_popup=Para além de guardar logs num ficheiro, mostrá-los na consola.
+default_branch=Ramo por omissão
+
+optional_title=Configurações opcionais
+email_title=Configurações do serviço de e-mail
+smtp_host=Anfitrião SMTP
+smtp_from=De
+smtp_from_helper=O endereço a ser utilizado no campo Mail from, conforme RFC 5322. Pode ser simplesmente um endereço de e-mail, ou no formato "Nome" .
+mailer_user=Email do remetente
+mailer_password=Senha do remetente
+register_confirm=Activar a confirmação de registo
+mail_notify=Ativar notificação por email
+server_service_title=Configurações do servidor e outros serviços
+offline_mode=Ativar modo offline
+offline_mode_popup=Desactivar o CDN, mesmo em modo de produção, todos os recursos serão disponibilizados localmente.
+disable_gravatar=Desactivar o serviço Gravatar
+disable_gravatar_popup=Desactivar o Gravatar e outras fontes. Todos os avatares serão carregados pelos utilizadores, ou utilizado um de padrão.
+federated_avatar_lookup=Activar a pesquisa de avatares federados
+federated_avatar_lookup_popup=Activar a pesquisa de avatares federados com recurso ao serviço open source baseado no libravatar.
+disable_registration=Desactivar o registo automático
+disable_registration_popup=Desactivar o registo automático de utilizadores, somente o administrador os pode criar.
+enable_captcha=Activar o Captcha
+enable_captcha_popup=Requerer a validação do Captcha aquando do registo automático de utilizadores.
+require_sign_in_view=Requerer que o utilizador esteja registado de modo a poder visualizar páginas
+require_sign_in_view_popup=Somente utilizadores registado podem visualizar as restantes páginas. Visitantes somente irão ver as paginas de registo.
+admin_setting_desc=Não é necessário criar uma conta de administração neste momento, em todo caso o utilizador que tiver o ID=1, irá obter direitos de administração automaticamente.
+admin_title=Configurações da conta de administração
+admin_name=Nome de utilizador
+admin_password=Senha
+confirm_password=Confirmar senha
+admin_email=E-mail de administração
+install_gogs=Instalar Gogs
+test_git_failed=Falha ao testar o commando 'git': %v
+sqlite3_not_available=A versão actual não suporta SQLite3. Por favor obtenha a versão de produção oficial em %s, e não a versão de desenvolvimento.
+invalid_db_setting=Configurações da base de dados estão incorretas: %v
+invalid_repo_path=A directoria para o repositório é invalida: %v
+run_user_not_match=O utilizador de execução não é igual ao utilizador actual: %s -> %s
+smtp_host_missing_port=Porta em falta no endereço SMTP.
+invalid_smtp_from=Campo SMTP From inválido: %v
+save_config_failed=Falha ao salvar a configuração: %v
+init_failed=Falha ao inicializar a aplicação: %v
+invalid_admin_setting=Configuração do utilizador de administração está inválida: %v
+install_success=Bem-vindo! Estamos contentes por ter escolhido o Gogs, esperemos que goste.
+invalid_log_root_path=Caminho da pasta de logs inválida: %v
+
+[home]
+uname_holder=Nome de utilizador ou email
+password_holder=Palavra-Chave
+switch_dashboard_context=Alternar o contexto do Dashboard
+my_repos=Os meus repositórios
+show_more_repos=Mostrar mais repositórios...
+collaborative_repos=Repositórios Colaborativos
+my_orgs=As minhas Organizações
+my_mirrors=Os meus mirrors
+view_home=Ver %s
+
+issues.in_your_repos=Nos seus repositórios
+
+[explore]
+repos=Repositórios
+users=Utilizadores
+organizations=Organizações
+search=Pesquisa
+
+[auth]
+create_new_account=Criar Nova Conta
+register_hepler_msg=Já tem uma conta? Inicie sessão!
+social_register_hepler_msg=Já tem uma conta? Ligue-a agora!
+disable_register_prompt=Desculpe, o registo de novos utilizadores está desativado. Por favor contacte o administrador.
+disable_register_mail=Desculpe, os serviços de email estão desativados. Por favor contacte o administrador.
+auth_source=Tipo de autenticação
+local=Local
+remember_me=Manter sessão iniciada
+forgot_password=Esqueci-me da palavra-passe
+forget_password=Esqueceu a sua senha?
+sign_up_now=Precisa de uma conta? Inscreva-se agora.
+confirmation_mail_sent_prompt=Um novo e-mail de confirmação foi enviado para %s, por favor verifique caixa de correio dentro das próximas %d horas para completar o processo de registo.
+active_your_account=Ative a sua conta
+prohibit_login=Início de sessão proibido
+prohibit_login_desc=A sua conta está proibida para início de sessão, por favor contacte o administrador.
+resent_limit_prompt=Pedimos desculpa mas um pedido de e-mail de ativação foi efetuado recentemente. Por favor espere 3 minutos e tente novamente.
+has_unconfirmed_mail=Olá %s, tem um endereço de e-mail não confirmado (%s). Se não recebeu um e-mail de confirmação ou precisa que seja reenviado um novo, por favor clique no botão abaixo.
+resend_mail=Clique aqui para reenviar o seu e-mail de ativação
+send_reset_mail=Clique aqui para (re)enviar um e-mail de restauro de senha
+reset_password=Restaurar a sua senha
+invalid_code=Desculpe, o seu código de confirmação expirou ou é inválido.
+reset_password_helper=Clique aqui para restaurar a sua senha
+password_too_short=O tamanho da senha não pode ser inferior a 6.
+non_local_account=Contas não-locais não podem mudar a palavra-passe através do Gogs.
+
+login_two_factor=Autenticação em dois passos
+login_two_factor_passcode=Passcode de autenticação
+login_two_factor_enter_recovery_code=Digite um código de recuperação de dois passos
+login_two_factor_recovery=Recuperação de dois passos
+login_two_factor_recovery_code=Codigo de recuperação
+login_two_factor_enter_passcode=Digite um código de recuperação de dois passos
+login_two_factor_invalid_recovery_code=Código de recuperação foi usado ou não válido.
+
+[mail]
+activate_account=Por favor ative a sua conta
+activate_email=Verifique o seu endereço de e-mail
+reset_password=Restaure a sua senha
+register_success=Registo efetuado com sucesso, Bem-vindo
+register_notify=Bem-vindo a bordo
+
+[modal]
+yes=Sim
+no=Não
+modify=Modificar
+
+[form]
+UserName=Nome de utilizador
+RepoName=Nome do repositório
+Email=Endereço de e-mail
+Password=Senha
+Retype=Reescreva a sua senha
+SSHTitle=Nome da chave SSH
+HttpsUrl=URL HTTPS
+PayloadUrl=URL Payload
+TeamName=Nome da equipa
+AuthName=Nome de autorização
+AdminEmail=E-mail de administração
+
+NewBranchName=Novo nome de branch
+CommitSummary=Sumário do commit
+CommitMessage=Mensagem do commit
+CommitChoice=Escolha o commit
+TreeName=Localização do ficheiro
+Content=Conteúdo
+
+require_error=` não pode estar vazio.`
+alpha_dash_error=` têm de ser caracteres alfa-numéricos ou traço(-_).`
+alpha_dash_dot_error=` têm de ser caracteres alfa-numéricos, traço(-_) ou ponto.`
+alpha_dash_dot_slash_error=` tem de ser composto por caracteres alfanuméricos, traços (-_), pontos ou barras.`
+size_error=` tem de ter tamanho %s.`
+min_size_error=` tem de conter pelo menos %s caracteres.`
+max_size_error=` pode conter no máximo %s caracteres.`
+email_error=` não é um endereço de e-mail válido.`
+url_error=` não é um URL válido.`
+include_error=` tem de conter o texto '%s'.`
+unknown_error=Erro desconhecido:
+captcha_incorrect=Captcha não coincide.
+password_not_match=Senha e confirmação da senha não são iguais.
+
+username_been_taken=Nome de utilizador já em uso.
+repo_name_been_taken=Nome de repositório já em uso.
+org_name_been_taken=Nome de organização já em uso.
+team_name_been_taken=Nome de equipa já em uso.
+email_been_used=Endereço de e-mail já em uso.
+username_password_incorrect=Nome de utilizador ou palavra-passe incorretos.
+auth_source_mismatch=A fonte de autenticação selecionada não está associada com o utilizador.
+enterred_invalid_repo_name=Por favor certifique-se que o nome do repositório inserido está correto.
+enterred_invalid_owner_name=Certifique-se de que o nome do proprietário que introduziu está correcto.
+enterred_invalid_password=Por favor certifique-se que a palavra-passe inserido está correta.
+user_not_exist=Este utilizador não existe.
+last_org_owner=A remoção do último utilizador da equipa proprietária não é permitida, pois sempre deve haver pelo menos um proprietário em uma determinada organização.
+
+invalid_ssh_key=Lamentamos, mas não conseguimos verificar a sua chave SSH: %s
+unable_verify_ssh_key=Gogs não pode verificar sua chave SSH, mas assumimos que ela é válida, por favor, verifique novamente.
+auth_failed=Falha na autenticação: %v
+
+still_own_repo=Sua conta ainda tem propriedade sobre pelo menos um repositório, você precisa excluí-los ou transferi-los primeiro.
+still_has_org=Sua conta ainda tem participação em pelo menos uma organização, você tem que sair ou excluir suas associações primeiro.
+org_still_own_repo=Esta organização ainda tem a propriedade de repositórios, você deve excluir ou transferi-los primeiro.
+
+target_branch_not_exist=Ramificação de destino não existe.
+
+[user]
+change_avatar=Mudar o seu avatar
+join_on=Juntou-se na
+repositories=Repositórios
+activity=Atividade pública
+followers=Seguidores
+starred=Repositórios favoritos
+following=Seguindo
+follow=Seguir
+unfollow=Deixar de seguir
+
+form.name_not_allowed=Não é permitido usar o padrão '%s' para o nome do utilizador.
+
+[settings]
+profile=Perfil
+password=Palavra-Chave
+avatar=Avatar
+ssh_keys=Chaves SSH
+security=Segurança
+repos=Repositórios
+orgs=Organizações
+applications=Aplicações
+delete=Apagar Conta
+
+public_profile=Perfil Público
+profile_desc=Seu endereço de E-mail é publico e será usado para qualquer notificação relacionada à conta, e qualquer operação na web feita através do site.
+password_username_disabled=Utilizadores remotos não tem permissão para mudarem seu nome de utilizador.
+full_name=Nome Completo
+website=Site
+location=Localização
+update_profile=Atualizar perfil
+update_profile_success=Seu perfil foi actualizado com êxito.
+change_username=Nome de utilizador alterado
+change_username_prompt=Essa alteração vai afectar o modo como as ligações referem-se à sua conta.
+continue=Continuar
+cancel=Cancelar
+
+lookup_avatar_by_mail=Pesquisa de avatar por e-mail
+federated_avatar_lookup=Pesquisa de avatar federado
+enable_custom_avatar=Usar Avatar personalizado
+choose_new_avatar=Escolher novo avatar
+update_avatar=Atualizar a configuração de Avatar
+delete_current_avatar=Excluir o Avatar atual
+uploaded_avatar_not_a_image=Arquivo enviado não é uma imagem.
+update_avatar_success=Sua configuração de avatar foi actualizada com sucesso.
+
+change_password=Alterar senha
+old_password=Senha atual
+new_password=Nova senha
+retype_new_password=Reescreva a nova senha
+password_incorrect=Senha atual incorreta.
+change_password_success=A sua senha foi alterada com sucesso. Pode agora conectar-se utilizando a nova senha.
+password_change_disabled=Utilizadores remotos não tem permissão para mudar a senha.
+
+emails=Endereços de e-mail
+manage_emails=Gerir endereços de e-mail
+email_desc=O seu endereço de e-mail principal será utilizado para notificações e outras operações.
+primary=Principal
+primary_email=Marcar como principal
+delete_email=Eliminar
+email_deletion=Eliminação de e-mail
+email_deletion_desc=Eliminar este endereço de e-mail irá remover todas as informações relacionadas da sua conta. Pretende continuar?
+email_deletion_success=O e-mail foi eliminado com sucesso!
+email_deletion_primary=Não é possível remover o endereço de e-mail primário.
+add_new_email=Adicionar um novo endereço de e-mail
+add_email=Adicionar e-mail
+add_email_confirmation_sent=Um novo e-mail de confirmação foi enviado para '%s', por favor verifique a sua caixa de correio dento das próximas %d horas para completar o processo de confirmação.
+add_email_success=O seu novo endereço de e-mail foi adicionado com sucesso.
+
+manage_ssh_keys=Gerir chaves SSH
+add_key=Adicionar chave
+ssh_desc=Esta é uma lista de chaves SSH associadas com a sua conta. Como estas chaves permitem que qualquer pessoa que as use de ganhar acesso aos seus repositórios, é muito importante que as consiga reconhecer.
+ssh_helper=Não sabe como? Confira o guia do GitHub para criar suas próprias chaves SSH ou resolver problemas comuns que você pode encontrar usando SSH.
+add_new_key=Adicionar chave SSH
+ssh_key_been_used=Uma chave pública com esse mesmo conteúdo já está em uso.
+ssh_key_name_used=Uma outra chave pública já existe com esse mesmo nome.
+key_name=Nome da chave
+key_content=Conteúdo
+add_key_success=Nova chave SSH '%s' foi adicionado com sucesso!
+delete_key=Eliminar
+ssh_key_deletion=Exclusão Chave SSH
+ssh_key_deletion_desc=Excluindo a chave SSH irá remover todos os acessos para sua conta. Deseja continuar?
+ssh_key_deletion_success=Chave SSH foi excluída com sucesso!
+add_on=Adicionado em
+last_used=Usado pela última vez em
+no_activity=Nenhuma atividade recente
+key_state_desc=Esta chave foi usada nos últimos 7 dias
+token_state_desc=Este token foi usado nos últimos 7 dias
+
+two_factor=Autenticação em dois passos
+two_factor_status=Estado:
+two_factor_on=Ligado
+two_factor_off=Desligado
+two_factor_enable=Ativar
+two_factor_disable=Desativar
+two_factor_view_recovery_codes=Ver e guardar os seus códigos de recuperação num lugar seguro. Pode usá-los como senha, se perder o acesso à sua aplicação de autenticação.
+two_factor_http=Para operações de HTTP/HTTPS, não será possivel usar a senha e nome de utilizador simples. Crie e use umToken de acesso pessoal como credencial, e.g. %[3]s.
+two_factor_enable_title=Ativar autenticação em dois passos
+two_factor_scan_qr=Por favor, use a sua aplicação de autenticação para digitalizar a imagem:
+two_factor_or_enter_secret=Ou digite o segredo:
+two_factor_then_enter_passcode=Depois digite o código:
+two_factor_verify=Verificar
+two_factor_invalid_passcode=A senha inserida não é válida, por favor tente novamente!
+two_factor_reused_passcode=A senha inserida já foi usada, por favor, tente outra!
+two_factor_enable_error=Ativar autenticação em dois passos: %v
+two_factor_enable_success=Autenticação em dois passos foi ativada para com sucesso!
+two_factor_recovery_codes_title=Códigos de recupeção de autenticação em dois passos
+two_factor_recovery_codes_desc=Os códigos de recuperação são utilizados se perder acesso a sua aplicação de autenticação. Cada código só pode ser utilizado uma vez, por favor, guarde estes códigos em lugar seguro.
+two_factor_regenerate_recovery_codes=Regenerar códigos de recuperação
+two_factor_regenerate_recovery_codes_error=Erro ao gerar códigos de recuperação
+two_factor_regenerate_recovery_codes_success=Novos códigos de recuperação gerados com sucesso!
+two_factor_disable_title=Desativar a Autenticação de dois fatores
+two_factor_disable_desc=O nível de segurança da sua conta diminuirá após desativar a autenticação de dois fatores. Deseja mesmo continuar?
+two_factor_disable_success=A autenticação de dois fatores foi desativada com sucesso!
+
+manage_access_token=Gerir Tokens de Acesso Pessoal
+generate_new_token=Gerar Novo Token
+tokens_desc=Tokens que gerou que podem ser usadas para aceder as APIs do Gogs.
+access_token_tips=O token de acesso pessoal pode ser usado tanto como nome do utilizador ou senha de acesso. É recomendado usar o "x-access-token" como o nome do utilizador e o token de acesso pessoal como a senha para aplicações Git.
+new_token_desc=Cada token vai ter acesso completo à sua conta.
+token_name=Nome do Token
+generate_token=Gerar Token
+generate_token_succees=O seu token de acesso foi gerado com sucesso! Certifique-se de copiá-lo agora, pois você não será capaz de vê-lo novamente mais tarde!
+delete_token=Eliminar
+access_token_deletion=Exclusão de Token de acesso pessoal
+access_token_deletion_desc=Ao excluir este token de acesso pessoal serão removidos todos os acessos da aplicação. Deseja continuar?
+delete_token_success=O Token de acesso pessoal foi removido com sucesso! Não se esqueça de atualizar as suas aplicações também.
+token_name_exists=Já existe um símbolo com o mesmo nome.
+
+orgs.none=Não é membro de nenhuma organização.
+orgs.leave_title=Sair da Organização
+orgs.leave_desc=Perderá acesso a todos os repositórios e equipas após deixar a organização. Deseja continuar?
+
+repos.leave=Sair
+repos.leave_title=Sair do repositório
+repos.leave_desc=Irá perder acesso ao repositório após sair. Deseja continuar?
+repos.leave_success=Saiu do repositório '%s' com sucesso!
+
+delete_account=Excluir a sua conta
+delete_prompt=A operação irá apagar sua conta permanentemente, e não será possível a sua recuperação!
+confirm_delete_account=Confirmar a exclusão
+delete_account_title=Exclusão de conta
+delete_account_desc=Esta conta vai ser excluída permanentemente, deseja continuar?
+
+[repo]
+owner=Proprietário
+repo_name=Nome do Repositório
+repo_name_helper=Um Bom nome de repositório e pequeno, memorável e único.
+visibility=Visibilidade
+unlisted=Não listado
+visiblity_helper=Este repositório é Privado
+unlisted_helper=Este repositório não está listado
+visiblity_helper_forced=Administrador do site forçou todos os novos repositórios paraPrivado
+visiblity_fork_helper=(Alterar desse valor irá afetar todos os forks)
+clone_helper=Precisa de ajuda com o clone? Visite a Ajuda!
+fork_repo=Fork do Repositório
+fork_from=Fork de
+fork_visiblity_helper=Não pode alterar a visibilidade de um repositório que foi forked.
+repo_desc=Descrição
+repo_lang=Língua
+repo_gitignore_helper=Selecionar templates .gitignore
+license=Licença
+license_helper=Selecione um arquivo de licença
+readme=Leia-me
+readme_helper=Selecione um modelo de readme
+auto_init=Inicializar este repositório com os arquivos selecionados e modelo
+create_repo=Criar Repositório
+default_branch=Ramo de Padrão
+mirror_prune=Purgar
+mirror_prune_desc=Remova quaisquer referências remotas que não existem mais remotamente
+mirror_interval=Intervalo de Mirror (hora)
+mirror_address=Endereço do Mirror
+mirror_address_desc=Por favor, inclua as credenciais de utilizador necessários no endereço.
+mirror_last_synced=Última sincronização
+watchers=Observadores
+stargazers=Fãns
+forks=Forks
+repo_description_helper=Descrição do repositório. Máximo de 512 caracteres.
+repo_description_length=Caracteres disponíveis
+
+form.reach_limit_of_creation=O criador chegou ao limite de criação de %d repositórios.
+form.name_not_allowed=Não é permitido utilizar o padrão '%s' para o nome do repositório.
+
+need_auth=Autorização necessária
+migrate_type=Tipo de migração
+migrate_type_helper=Este repositório será um mirror
+migrate_repo=Migrar o Repositório
+migrate.clone_address=Clonar Endereço
+migrate.clone_address_desc=Isto pode ser um URL de HTTP/HTTPS/GIT.
+migrate.clone_address_desc_import_local=Você também pode migrar um repositório pelo caminho do servidor local.
+migrate.permission_denied=Não está autorizado a importar repositórios locais.
+migrate.invalid_local_path=Caminho local inválido, o caminho não existe ou não é um directório.
+migrate.clone_address_resolved_to_blocked_local_address=Clonar endereço resolvido para um endereço de rede local implicitamente bloqueado.
+migrate.failed=Migração falhada: %v
+
+mirror_from=mirror de
+forked_from=biforcado de
+copy_link=Copiar
+copy_link_success=Copiado!
+copy_link_error=Pressione ⌘-C ou Ctrl-C para copiar
+copied=Copiado
+unwatch=Deixar de vigiar
+watch=Vigiar
+unstar=Retirar estrela
+star=Colocar Estrela
+fork=Fork
+
+no_desc=Sem descrição
+quick_guide=Guia rápido
+clone_this_repo=Clonar este repositório
+create_new_repo_command=Criar um novo repositório na linha de comandos
+push_exist_repo=Empurrar um repositório existente na linha de comandos
+bare_message=Este repositório ainda não tem qualquer conteúdo.
+
+files=Ficheiros
+branch=Ramo
+tree=Árvore
+filter_branch_and_tag=Filtrar branch ou tag
+branches=Ramos
+tags=Etiquetas
+issues=Problemas
+pulls=Pull Requests
+labels=Etiquetas
+milestones=Objetivos
+commits=Commits
+git_branches=Ramos
+releases=Lançamentos
+file_raw=Em bruto
+file_history=Histórico
+file_view_raw=Ver em Bruto
+file_permalink=Link permanente
+file_too_large=Este ficheiro é muito grande para ser visualizado
+video_not_supported_in_browser=Seu navegador não suporta a tag de vídeo em HTML5.
+
+branches.overview=Vista Geral
+branches.active_branches=Ramificações Activas
+branches.stale_branches=Ramificações Obsoletas
+branches.all=Todas as Ramificações
+branches.updated_by=Atualizado %[1]s por %[2]s
+branches.change_default_branch=Mudar Ramificação Predefinida
+branches.default_deletion_not_allowed=Cannot delete the default branch.
+branches.protected_deletion_not_allowed=Cannot delete a protected branch.
+
+editor.new_file=Novo Ficheiro
+editor.upload_file=Enviar ficheiro
+editor.edit_file=Edita ficheiro
+editor.preview_changes=Pré-visualizar Alterações
+editor.cannot_edit_non_text_files=Impossível editar ficheiros que não são do tipo texto
+editor.edit_this_file=Editar este ficheiro
+editor.must_be_on_a_branch=Deve estar num branch para propor mudanças a este arquivo
+editor.fork_before_edit=Deve fazer um fork deste repositório antes de editar o ficheiro
+editor.delete_this_file=Apagar este ficheiro
+editor.must_have_write_access=Você deve ter permissões de escrita para fazer ou propor alterações a este ficheiro
+editor.file_delete_success=Ficheiro '%s' foi excluído com sucesso!
+editor.name_your_file=Nomeie o seu ficheiro...
+editor.filename_help=Para adicionar uma pasta, digite o nome e pressione /. Para remover uma pasta, vá para o inicio do campo e pressione backspace.
+editor.or=ou
+editor.cancel_lower=cancelar
+editor.commit_changes=Confirmar alterações
+editor.add_tmpl=Adicionar '%s/ '
+editor.add=Adicionar '%s '
+editor.update=Atualizar %s
+editor.delete=Eliminar %s
+editor.commit_message_desc=Adicione uma descrição opcional estendida...
+editor.commit_directly_to_this_branch=Commit diretamente no branch %s.
+editor.create_new_branch=Crie um novo branch para este commit e inicie um pull request.
+editor.new_branch_name_desc=Novo nome do branch...
+editor.cancel=Cancelar
+editor.filename_cannot_be_empty=Nome do ficheiro não pode ser vazio.
+editor.branch_already_exists=Branch '%s' já existe neste repositório.
+editor.directory_is_a_file=Entrada '%s' no caminho pai é um ficheiro e não uma pasta neste repositório.
+editor.file_is_a_symlink=O ficheiro '%s' é um link simbólico que não pode ser modificado a partir do editor web.
+editor.filename_is_a_directory=O ficheiro '%s' é uma pasta existente neste repositório.
+editor.file_editing_no_longer_exists=O ficheiro '%s' que está a editar já não existe neste repositório.
+editor.file_changed_while_editing=O conteúdo do ficheiro mudou desde que começou a edita-lo. Clique aqui para ver o que mudou ou pressione Commit novamente para sobrescrever as mudanças.
+editor.file_already_exists=Um ficheiro com nome '%s' já existe neste repositório.
+editor.no_changes_to_show=Não existem alterações a mostrar.
+editor.fail_to_update_file=Falha ao criar/atualizar ficheiro '%s': com o erro:%v
+editor.fail_to_delete_file=Falha ao apagar ficheiro '%s' com o erro: %v
+editor.add_subdir=Adicionar sub-diretório...
+editor.unable_to_upload_files=Falha ao fazer upload de ficheiros para '%s': com o erro:%v
+editor.upload_files_to_dir=Enviar ficheiros para '%s'
+
+commits.commit_history=Histórico de Commits
+commits.commits=Commits
+commits.search=Procurar commits
+commits.find=Pesquisar
+commits.author=Autor
+commits.message=Mensagem
+commits.date=Data
+commits.older=Antigo
+commits.newer=Recente
+
+issues.new=Novo Problema
+issues.new.labels=Etiquetas
+issues.new.no_label=Sem Etiqueta
+issues.new.clear_labels=Limpar Etiquetas
+issues.new.milestone=Objetivo
+issues.new.no_milestone=Sem Objetivo
+issues.new.clear_milestone=Limpar Objetivo
+issues.new.open_milestone=Objetivos Abertos
+issues.new.closed_milestone=Objetivos Fechados
+issues.new.assignee=Atribuído a
+issues.new.clear_assignee=Limpar atribuição
+issues.new.no_assignee=Sem utilizador atribuido
+issues.create=Criar um problema
+issues.new_label=Nova etiqueta
+issues.new_label_placeholder=Nome da etiqueta...
+issues.create_label=Criar etiqueta
+issues.label_templates.title=Carregar um conjunto predefinido de etiquetas
+issues.label_templates.info=Ainda não existem quaisquer etiquetas. Pode clicar no botão "Nova etiqueta" acima para criar uma ou selecione um conjunto pré-definido em baixo.
+issues.label_templates.helper=Selecione um conjunto de etiquetas
+issues.label_templates.use=Usar este conjunto de etiquetas
+issues.label_templates.fail_to_load_file=Falha ao carregar a ficheiro modelo de etiquetas '%s': %v
+issues.open_tab=%d Aberto
+issues.close_tab=%d Fechado
+issues.filter_label=Etiqueta
+issues.filter_label_no_select=Sem etiqueta selecionada
+issues.filter_milestone=Objetivo
+issues.filter_milestone_no_select=Nenhum milestone selecionado
+issues.filter_assignee=Atribuído a
+issues.filter_assginee_no_select=Sem utilizador atribuido
+issues.filter_type=Tipo
+issues.filter_type.all_issues=Todos os problemas
+issues.filter_type.assigned_to_you=Atribuído a si
+issues.filter_type.created_by_you=Criado por si
+issues.filter_type.mentioning_you=Mencionado por sí
+issues.filter_sort=Ordenar
+issues.filter_sort.latest=Mais recente
+issues.filter_sort.oldest=Mais antigo
+issues.filter_sort.recentupdate=Recentemente actualizado
+issues.filter_sort.leastupdate=Menos recentemente atualizado
+issues.filter_sort.mostcomment=Mais comentado
+issues.filter_sort.leastcomment=Menos comentado
+issues.opened_by=%[1]s aberto por %[3]s
+issues.opened_by_fake=aberto %[1]s por %[2]s
+issues.previous=Anterior
+issues.next=Próximo
+issues.open_title=Aberto
+issues.closed_title=Fechado
+issues.num_comments=%d comentários
+issues.commented_at=`comentado %s`
+issues.delete_comment_confirm=Tem certeza que deseja apagar este comentário?
+issues.no_content=Ainda não existe conteúdo.
+issues.close_issue=Fechar
+issues.close_comment_issue=Comentar e fechar
+issues.reopen_issue=Reabrir
+issues.reopen_comment_issue=Comentar e re-abrir
+issues.create_comment=Comentário
+issues.closed_at=`fechado %[2]s`
+issues.reopened_at=`reaberto %[2]s`
+issues.commit_ref_at=`referenciou este problema num commit %[2]s`
+issues.poster=Cartaz
+issues.collaborator=Colaborador
+issues.owner=Proprietário
+issues.sign_in_require_desc=Faça login para participar desta conversação.
+issues.edit=Editar
+issues.cancel=Cancelar
+issues.save=Guardar
+issues.label_title=Nome da etiqueta
+issues.label_color=Cor da etiqueta
+issues.label_count=%d etiquetas
+issues.label_open_issues=%d abrir problemas
+issues.label_edit=Editar
+issues.label_delete=Eliminar
+issues.label_modify=Modificação de etiqueta
+issues.label_deletion=Eliminação de etiqueta
+issues.label_deletion_desc=Excluir esta etiqueta retirará a sua informação de todos os problemas relacionados. Deseja continuar?
+issues.label_deletion_success=A etiqueta foi excluída com sucesso!
+issues.num_participants=%d Participantes
+issues.attachment.open_tab=`Clique para ver "%s" numa nova aba`
+issues.attachment.download=`Clique para baixar "%s"`
+
+pulls.new=Novo Pull Request
+pulls.compare_changes=Comparar alterações
+pulls.compare_changes_desc=Comparar dois branches e criar um pull request com as alterações.
+pulls.compare_base=base
+pulls.compare_compare=comparar
+pulls.filter_branch=Filtrar branch
+pulls.no_results=Não foram encontrados resultados.
+pulls.nothing_to_compare=Não há nada para comparar porque o branch base e o cabeçalho estão iguais.
+pulls.nothing_merge_base=Não há o que comparar pois os dois branches possuem históricos completamente diferentes.
+pulls.has_pull_request=`Já existe um pull requests entre estes dois alvos: %[2]s#%[3]d`
+pulls.create=Criar Pull Request
+pulls.title_desc=quer mesclar %[1]d commits de %[2]s em %[3]s
+pulls.merged_title_desc=mesclou %[1]d commits de %[2]s em %[3]s %[4]s
+pulls.tab_conversation=Conversação
+pulls.tab_commits=Commits
+pulls.tab_files=Ficheiros modificados
+pulls.reopen_to_merge=Por favor reabra este pull request para executar a operação de merge.
+pulls.merged=Merge realizado
+pulls.has_merged=O merge deste pull request foi aplicado com sucesso!
+pulls.data_broken=Os dados deste Pull Request foram quebrados devido à remoção de informação do fork.
+pulls.is_checking=A verificação do conflito ainda está em progresso, por favor recarregue a página dentro de instantes.
+pulls.can_auto_merge_desc=O merge deste Pull Pequest pode ser aplicado automaticamente.
+pulls.cannot_auto_merge_desc=O merge deste Pull Request não pode ser aplicado automaticamente porque existem conflitos.
+pulls.cannot_auto_merge_helper=Por favor, aplique o merge manualmente para resolver os conflitos.
+pulls.create_merge_commit=Criar um commit de merge
+pulls.rebase_before_merging=Rebase antes de merging
+pulls.commit_description=Descrição de Commit
+pulls.merge_pull_request=Solicitar merge de Pull Request
+pulls.open_unmerged_pull_exists=`Não pode executar a operação de reabrir porque já existe um Pull request (#%d) do mesmo repositório com as mesmas informações de merge que está a aguardar pelo merge.`
+pulls.delete_branch=Excluir Branch
+pulls.delete_branch_has_new_commits=O branch não pode ser excluído por possuir novos commits após o merge.
+
+milestones.new=Novo Objetivo
+milestones.open_tab=%d Aberto
+milestones.close_tab=%d Fechado
+milestones.closed=Fechados %s
+milestones.no_due_date=Sem data de vaidade
+milestones.open=Aberto
+milestones.close=Fechar
+milestones.new_subheader=Crie marcos para gerir os seus problemas.
+milestones.create=Criar objetivo
+milestones.title=Título
+milestones.desc=Descrição
+milestones.due_date=Data de vencimento (opcional)
+milestones.clear=Limpar
+milestones.invalid_due_date_format=Formato inválido. O valor de data devera ser 'aaaa-mm-dd'.
+milestones.create_success=O Milestone '%s' foi criado com sucesso!
+milestones.edit=Editar objetivo
+milestones.edit_subheader=Utilize uma boa descrição para o Milestone, assim as pessoas não ficarão confusas.
+milestones.cancel=Cancelar
+milestones.modify=Editar objetivo
+milestones.edit_success=O Milestone '%s' foi alterado com sucesso!
+milestones.deletion=Exclusão do Milestone
+milestones.deletion_desc=Excluir este Milestone irá remover toda sua informação em todos as issues a que estiver associado. Deseja continuar?
+milestones.deletion_success=Milestone excluído com sucesso!
+
+wiki=Wiki
+wiki.welcome=Bem-vindo à wiki!
+wiki.welcome_desc=Wiki é o lugar onde poderá documentar o seu projeto em conjunto e torná-lo melhor.
+wiki.create_first_page=Criar a primeira página
+wiki.page=Página
+wiki.filter_page=Filtrar página
+wiki.new_page=Criar nova página
+wiki.default_commit_message=Escrever um comentário sobre esta atualização (opcional).
+wiki.save_page=Guardar página
+wiki.last_commit_info=%s editou esta página %s
+wiki.edit_page_button=Editar
+wiki.new_page_button=Nova página
+wiki.delete_page_button=Remover Página
+wiki.delete_page_notice_1=Isto irá apagar a página "%s". Por favor, certifique-se.
+wiki.page_already_exists=Já existe uma página de wiki com o mesmo nome.
+wiki.pages=Páginas
+wiki.last_updated=Última atualização %s
+
+settings=Definições
+settings.options=Opções
+settings.collaboration=Colaboração
+settings.collaboration.admin=Admin
+settings.collaboration.write=Escrever
+settings.collaboration.read=Ler
+settings.collaboration.undefined=Indefinido
+settings.branches=Branches
+settings.branches_bare=Não é possível gerir branches num repositório vazio. Por favor adicione algum conteúdo primeiro.
+settings.default_branch=Ramo de Padrão
+settings.default_branch_desc=O branch padrão é considerado a "base" branch para commits, pull requests e edição on-line.
+settings.update=Atualizar
+settings.update_default_branch_unsupported=Mudar o branch padrão não é suportado pela versão do Git no servidor.
+settings.update_default_branch_success=O branch padrão deste repositório foi atualizado com sucesso!
+settings.protected_branches=Branches Protegidos
+settings.protected_branches_desc=Proteger branches de push forçado, remoção acidental e committers da lista de desbloqueio.
+settings.choose_a_branch=Selecione um Branch...
+settings.branch_protection=Proteção de Branch
+settings.branch_protection_desc=Escolha opções de proteção para o branch %s.
+settings.protect_this_branch=Proteger este branch
+settings.protect_this_branch_desc=Desativa pushes forçados e prevenir remoção.
+settings.protect_require_pull_request=Requerer pull request em vez de push direto
+settings.protect_require_pull_request_desc=Ative esta opção para desativar push direto para este branch. Os Commits precisam de um push para outro branch não protegido e merge para este branch por meio de um pull request.
+settings.protect_whitelist_committers=Incluir na lista de desbloqueio quem pode fazer push para este branch
+settings.protect_whitelist_committers_desc=Adicionar pessoas ou equipas na lista de desbloqueio de push direto para este branch. Utilizadores na lista de desbloqueio contornarão a verificação de pull request.
+settings.protect_whitelist_users=Utilizadores que podem realizar push para este branch
+settings.protect_whitelist_search_users=Pesquisar utilizadores
+settings.protect_whitelist_teams=Equipas cujos membros podem realizar push para este branch
+settings.protect_whitelist_search_teams=Procurar Equipas
+settings.update_protect_branch_success=As opções de proteção deste branch foram atualizadas com sucesso!
+settings.hooks=Webhooks
+settings.githooks=Hooks do Git
+settings.basic_settings=Definições Básicas
+settings.mirror_settings=Definições de janela
+settings.sync_mirror=Sincronizar agora
+settings.mirror_sync_in_progress=A sincronização do mirror está a decorrer, por favor atualize a página em aproximadamente um minuto.
+settings.site=Site oficial
+settings.update_settings=Actualizar definições
+settings.change_reponame_prompt=Esta alteração irá afetar os links relacionados com este repositório.
+settings.advanced_settings=Definições Avançadas
+settings.wiki_desc=Ativar sostema Wiki
+settings.use_internal_wiki=Utilizar wiki nativa
+settings.allow_public_wiki_desc=Permitir acesso público à wiki quando o repositório for privado
+settings.use_external_wiki=Utilizar wiki externa
+settings.external_wiki_url=URL externo da Wiki
+settings.external_wiki_url_desc=Os visitantes serão redirecionados para o URL ao clicar na aba.
+settings.issues_desc=Ativar gestor de problemas
+settings.use_internal_issue_tracker=Utilizar o issue tracker nativo
+settings.allow_public_issues_desc=Permitir acesso público a problemas quando o repositório e privado
+settings.use_external_issue_tracker=Usar gestor de problemas externo
+settings.external_tracker_url=URL do gestor de problemas externo
+settings.external_tracker_url_desc=Visitantes serão redirecionados para o URL quando clicarem na aba.
+settings.tracker_url_format=Formato de URL do Issue Tracker Externo
+settings.tracker_issue_style=Estilo de nome de Issue Tracker Externo:
+settings.tracker_issue_style.numeric=Numérico
+settings.tracker_issue_style.alphanumeric=Alfanumérico
+settings.tracker_url_format_desc=Pode utilizar o espaço reservado {user} {repo} {index} para o nome de utilizador, índice de nome e a questão do repositório.
+settings.pulls_desc=Ativar pull requests para aceitar contribuições entre repositórios e branches
+settings.pulls.ignore_whitespace=Ignorar alterações com espaço em branco
+settings.pulls.allow_rebase_merge=Permitir rebase para commits via merge
+settings.danger_zone=Zona de perigo
+settings.cannot_fork_to_same_owner=Não pode realizar fork de um repositório para o seu dono original.
+settings.new_owner_has_same_repo=O novo dono já tem um repositório com o mesmo nome. Por favor, escolha outro nome.
+settings.convert=Converter para Repositório Tradicional
+settings.convert_desc=Pode converter este Mirror num repositório tradicional. Esta ação não pode ser revertida.
+settings.convert_notices_1=- Esta operação vai converter este repositório Mirror num repositório tradicional e esta ação não pode ser revertida.
+settings.convert_confirm=Confirmar Conversão
+settings.convert_succeed=Repositório Mirror convertido para tradicional com sucesso.
+settings.transfer=Transferir Propriedade
+settings.transfer_desc=Transferir este repositório para outro utilizador ou organização onde tem direitos de administrador.
+settings.transfer_notices_1=- Irá perder o acesso se o novo dono for um utilizador individual.
+settings.transfer_notices_2=- Irá manter acesso se o novo dono é uma organização e se é um dos donos.
+settings.transfer_form_title=Por favor Informe a seguinte informação para confirmar a sua operação:
+settings.wiki_delete=Apagar dados da Wiki
+settings.wiki_delete_desc=Uma vez que apague os dados da wiki, não e possível reverte-los. Por favor, certifique-se.
+settings.wiki_delete_notices_1=- Isto irá excluir e desativar o wiki para %s
+settings.wiki_deletion_success=Os dados da wiki do repositório foram apagados com sucesso.
+settings.delete=Apagar Este Repositório
+settings.delete_desc=Uma vez que remova um repositório, não e possível reverte-lo. Por favor certifique-se.
+settings.delete_notices_1=Esta operação NÃO PODERÁ ser desfeita.
+settings.delete_notices_2=- Esta operação irá apagar permanentemente tudo neste repositório, incluindo dados do Git, commits, issues, comentários, o wiki e acesso dos colaboradores.
+settings.delete_notices_fork_1=-Todos os forks ficarão independentes após a exclusão.
+settings.deletion_success=Repositório excluído com sucesso!
+settings.update_settings_success=As opções do repositório foram atualizadas com sucesso.
+settings.transfer_owner=Novo proprietário
+settings.make_transfer=Fazer transferência
+settings.transfer_succeed=A propriedade do repositório foi transferida com sucesso.
+settings.confirm_delete=Confirme a eliminação
+settings.add_collaborator=Adicionar novo colaborador
+settings.add_collaborator_success=Novo colaborador foi adicionado.
+settings.delete_collaborator=Eliminar
+settings.collaborator_deletion=Exclusão de colaborador
+settings.collaborator_deletion_desc=Este utilizador perderá acesso ao repositório. Deseja continuar?
+settings.remove_collaborator_success=Colaborador foi removido.
+settings.search_user_placeholder=Procurar utilizador...
+settings.org_not_allowed_to_be_collaborator=A organização não tem permissão para ser adicionada como colaboradora.
+settings.hooks_desc=Webhooks são muito parecidos com triggers básicos de eventos HTTP POST. Sempre que algo ocorre no Gogs, vamos lidar com a notificação para o host de destino especificado. Saiba mais no nosso Guia de Webhooks.
+settings.webhooks.add_new=Add a new webhook:
+settings.webhooks.choose_a_type=Escolha um tipo...
+settings.add_webhook=Adicionar Webhook
+settings.webhook_deletion=Apagar um Webhook
+settings.webhook_deletion_desc=Apagar este Webhook vai remover sua informação e todo o histórico de entrega. Deseja continuar?
+settings.webhook_deletion_success=Webhook foi apagado com sucesso!
+settings.webhook.test_delivery=Teste de entrega
+settings.webhook.test_delivery_desc=Enviar uma entrega de evento Push falso para testar as configurações de Webhook
+settings.webhook.test_delivery_success=O Webhook de teste foi adicionado a fila de entrega. Pode demorar alguns segundos antes de ser exibido no histórico de entrega.
+settings.webhook.redelivery=Reentrega
+settings.webhook.redelivery_success=A tarefa Hook '%s' foi re-adicionada à fila de entrega. Pode demorar alguns segundos para o estado da entrega no histórico ser atualizada.
+settings.webhook.request=Pedido
+settings.webhook.response=Resposta
+settings.webhook.headers=Cabeçalho
+settings.webhook.payload=Payload
+settings.webhook.body=Corpo
+settings.webhook.err_cannot_parse_payload_url=Cannot parse payload URL: %v
+settings.webhook.url_resolved_to_blocked_local_address=Payload URL resolved to a local network address that is implicitly blocked.
+settings.githooks_desc=Hooks do Git são disponibilizados pelo próprio Git, pode editar ficheiros de Hooks suportados na lista abaixo para aplicar operações personalizadas.
+settings.githook_edit_desc=Se o hook estiver inativo, o conteúdo de exemplo será apresentado. Deixar o conteúdo em branco irá desativar este hook.
+settings.githook_name=Nome do Hook
+settings.githook_content=Conteúdo do Hook
+settings.update_githook=Atualizar Hook
+settings.add_webhook_desc=Enviaremos uma solicitação POST para o URL abaixo com detalhes de quaisquer eventos que ocorreram. Pode também especificar qual formato de dados que gostaria de receber no trigger do hook (JSON, x-www-form-urlencoded, XML, etc). Mais informação pode ser encontrada em Guia de Webhooks.
+settings.payload_url=URL Payload
+settings.content_type=Tipo de Conteúdo
+settings.secret=Código secreto
+settings.secret_desc=O segredo será enviado como SHA256 HMAC hex digest do payload via X-Gogs-Signature.
+settings.slack_username=Nome de utilizador
+settings.slack_icon_url=URL do Ícone
+settings.slack_color=Cor
+settings.event_desc=Quando este webhook devera ser ativado?
+settings.event_push_only=Apenas o evento push
+settings.event_send_everything=Preciso de tudo
+settings.event_choose=Deixe-me escolher o que eu preciso
+settings.event_create=Criar
+settings.event_create_desc=Branch ou Tag criado
+settings.event_delete=Eliminar
+settings.event_delete_desc=Branch ou tag excluído
+settings.event_fork=Fork
+settings.event_fork_desc=Efetuado Fork do repositório
+settings.event_push=Push
+settings.event_push_desc=Git push para um repositório
+settings.event_issues=Problemas
+settings.event_issues_desc=Problema aberto, fechado, reaberto, editado, atribuído, retirada atribuição, etiqueta atualizada, etiqueta limpa, milestone definido ou milestone indefinido.
+settings.event_pull_request=Pull Request
+settings.event_pull_request_desc=Pull Request aberto, fechado, reaberto, editado, atribuído, retirada atribuição, etiqueta atualizada, etiqueta limpa, milestone definido, milestone indefinido ou sincronizado.
+settings.event_issue_comment=Comentário do Problema
+settings.event_issue_comment_desc=Comentário do problema criado, editado ou excluído.
+settings.event_release=Lançamento
+settings.event_release_desc=Lançamento publicado no repositório.
+settings.active=Ativo
+settings.active_helper=Enviaremos detalhes do evento quando este hook for ativado.
+settings.add_hook_success=Novos webhook foram adicionados.
+settings.update_webhook=Atualizar Webhook
+settings.update_hook_success=Webhook atualizado.
+settings.delete_webhook=Excluir Webhook
+settings.recent_deliveries=Entregas Recentes
+settings.hook_type=Tipo de Hook
+settings.add_slack_hook_desc=Adicionar Slack de integração para o seu repositório.
+settings.add_discord_hook_desc=Adicionar integração do Discord para o seu repositório.
+settings.add_dingtalk_hook_desc=Adicionar integração do Dingtalk ao seu repositório.
+settings.slack_token=Token
+settings.slack_domain=Domínio
+settings.slack_channel=Canal
+settings.deploy_keys=Chaves de Deploy
+settings.deploy_keys_helper=Common Gotcha! Se estiver a tentar adicionar chaves públicas pessoais, faça-o nas suas configurações da conta.
+settings.add_deploy_key=Adicionar Chave de Deploy
+settings.deploy_key_desc=Chave de Deploy só tem acesso de leitura. Não é igual as chaves SSH da conta pessoal.
+settings.no_deploy_keys=Ainda não adicionou nenhuma chave de Deploy.
+settings.title=Título
+settings.deploy_key_content=Conteúdo
+settings.key_been_used=Conteúdo da Chave de Deploy foi utilizado.
+settings.key_name_used=Uma chave de Deploy já existe com este nome.
+settings.add_key_success=Nova chave de Deploy '%s' foi adicionada com sucesso!
+settings.deploy_key_deletion=Apagar chave de Deploy
+settings.deploy_key_deletion_desc=Excluir esta chave de Deploy removerá permissões de acesso a este repositório. Deseja continuar?
+settings.deploy_key_deletion_success=Chave de Deploy excluída com sucesso!
+settings.description_desc=Descrição do repositório. Máximo de 512 caracteres.
+settings.description_length=Caracteres disponíveis
+
+diff.browse_source=Ver Fonte
+diff.parent=pai
+diff.commit=commit
+diff.data_not_available=Dados Diff Não Disponíveis.
+diff.show_diff_stats=Mostrar Estatísticas Diff
+diff.show_split_view=Visão Dividida
+diff.show_unified_view=Visão Unificada
+diff.stats_desc= %d ficheiros alterados com %d adições e %d exclusões
+diff.bin=BIN
+diff.view_file=Ver Ficheiro
+diff.file_suppressed=Diff do ficheiro suprimidas por serem muito extensas
+diff.too_many_files=Alguns ficheiros não foram mostrados porque muitos ficheiros mudaram neste diff
+
+release.releases=Lançamentos
+release.new_release=Novos lançamentos
+release.draft=Rascunho
+release.prerelease=Versão Prévia
+release.edit=editar
+release.ahead=%d commits para %s depois desta versão
+release.source_code=Código Fonte
+release.new_subheader=Publicar versões para iterar o produto.
+release.edit_subheader=Um changelog detalhado pode ajudar utilizadores a entenderem o que foi melhorado.
+release.tag_name=Nome da etiqueta
+release.target=Destino
+release.tag_helper=Escolha uma tag existente, ou crie uma nova tag em publicar.
+release.title=Título
+release.content=Conteúdo
+release.write=Escrever
+release.preview=Pré-visualizar
+release.loading=A carregar...
+release.prerelease_desc=Esta é uma versão prévia
+release.prerelease_helper=Salientamos que esta versão não esta pronta para produção.
+release.cancel=Cancelar
+release.publish=Publicar Versão
+release.save_draft=Guardar Rascunho
+release.edit_release=Editar Versão
+release.delete_release=Apagar esta Versão
+release.deletion=Exclusão de Versão
+release.deletion_desc=Apagar esta versão vai remover a tag do git correspondente. Deseja continuar?
+release.deletion_success=A versão foi removida com sucesso!
+release.tag_name_already_exist=Já existe uma versão com este nome de tag.
+release.tag_name_invalid=Nome de tag não é válido.
+release.downloads=Transferências
+
+[org]
+org_name_holder=Nome da organização
+org_full_name_holder=Nome completo da organização
+org_name_helper=Nomes de grandes organizações são curtos e memoráveis.
+create_org=Criar Organização
+repo_updated=Atualizado
+people=Membros
+invite_someone=Convidar
+teams=Equipas
+lower_members=membros
+lower_repositories=repositórios
+create_new_team=Criar equipa
+org_desc=Descrição
+team_name=Nome da equipa
+team_desc=Descrição
+team_name_helper=Utilizara este nome para mencionar esta equipa em conversas.
+team_desc_helper=Do que se trata essa equipa?
+team_permission_desc=Que nível de permissão esta equipa deve ter?
+
+form.name_not_allowed=Organization name or pattern %q is not allowed.
+form.team_name_not_allowed=Team name or pattern %q is not allowed.
+
+settings=Configurações
+settings.options=Opções
+settings.full_name=Nome Completo
+settings.website=WebSite
+settings.location=Localização
+settings.update_settings=Atualizar Configurações
+settings.update_setting_success=Configuração da organização foi atualizada com sucesso.
+settings.change_orgname_prompt=Esta alteração vai afetar como os links se relacionam nesta organização.
+settings.update_avatar_success=A configuração de avatar da organização foi atualizado com sucesso.
+settings.delete=Excluir organização
+settings.delete_account=Excluir esta organização
+settings.delete_prompt=A operação irá excluir esta organização permanentemente, e NÃO PODERÁ ser desfeita!
+settings.confirm_delete_account=Confirmar exclusão
+settings.delete_org_title=Exclusão da Organização
+settings.delete_org_desc=Esta organização será excluída permanentemente, Deseja continuar?
+settings.hooks_desc=Adicionar Webhooks que serão acionados para todos os repositórios desta organização.
+
+members.membership_visibility=Visibilidade da Associação:
+members.public=Público
+members.public_helper=tornar privado
+members.private=Privado
+members.private_helper=tornar público
+members.member_role=Categoria de Membro:
+members.owner=Proprietário
+members.member=Membro
+members.remove=Remover
+members.leave=Sair
+members.invite_desc=Adicionar novo membro a %s:
+members.invite_now=Convidar agora
+
+teams.join=Juntar
+teams.leave=Sair
+teams.read_access=Acesso de leitura
+teams.read_access_helper=Esta equipa poderá ver e clonar os próprios repositórios.
+teams.write_access=Acesso de escrita
+teams.write_access_helper=Esta equipa será capaz de ler os seus repositórios, bem como fazer push para eles.
+teams.admin_access=Acesso de administração
+teams.admin_access_helper=Esta equipa será capaz de fazer push/pull nos seus repositórios, bem como adicionar outros colaboradores.
+teams.no_desc=Esta equipa não tem descrição
+teams.settings=Definições
+teams.owners_permission_desc=Donos tem acesso total a todos repositórios e também direitos de administrador na organização.
+teams.members=Membros da equipa
+teams.update_settings=Actualizar definições
+teams.delete_team=Apagar esta equipa
+teams.add_team_member=Adicionar um Membro
+teams.delete_team_title=Eliminação de equipa
+teams.delete_team_desc=Esta equipa será excluída, membros desta equipa poderão perder acesso a alguns repositórios. Deseja continuar?
+teams.delete_team_success=A equipa foi excluída com sucesso.
+teams.read_permission_desc=Membros desta equipa concedem acesso para Leitura: membros podem ver e clonar os repositórios da equipa.
+teams.write_permission_desc=Membros desta equipa concedem acesso para Escrita: membros podem ler e fazer push para os repositórios da equipa.
+teams.admin_permission_desc=Membros nesta equipa concedem acesso de Administrador: Membros podem ler, fazer push e adicionar outros colaboradores para os repositórios da equipa.
+teams.repositories=Repositórios de equipa
+teams.search_repo_placeholder=Procurar repositório...
+teams.add_team_repository=Adicionar repositório de equipa
+teams.remove_repo=Remover
+teams.add_nonexistent_repo=O repositório que está a tentar adicionar não existe, por favor crie-o primeiro.
+
+[admin]
+dashboard=Painel de administração
+users=Utilizadores
+organizations=Organizações
+repositories=Repositórios
+authentication=Autenticações
+config=Configuração
+notices=Notificações de Sistema
+monitor=Monitorização
+first_page=Primeiro
+last_page=Último
+total=Total: %d
+
+dashboard.build_info=Informações da compilação
+dashboard.app_ver=Versão da Aplicação
+dashboard.git_version=Versão do Git
+dashboard.go_version=Versão do Go
+dashboard.build_time=Tempo de compilação
+dashboard.build_commit=Submissão da compilação
+dashboard.statistic=Estatísticas
+dashboard.operations=Operações
+dashboard.system_status=Monitorização de estado do sistema
+dashboard.statistic_info=A base de dados do Gogs contém %d utilizadores, %d organizações, %d chaves públicas, %d repositórios, %d observadores, %d estrelas, %d ações, %d acessos, %d questões, %d comentários, %d contas sociais, %d seguidores, %d mirrors, %d versões, %d origens de login, %d Hooks da Web, %d milestones, %d labels, %d tarefas hook, %d equipas, %d tarefas de atualização, %d anexos.
+dashboard.operation_name=Nome de operação
+dashboard.operation_switch=Mudar
+dashboard.select_operation_to_run=Seleccione a operação para executar
+dashboard.operation_run=Executar
+dashboard.clean_unbind_oauth=Limpar OAuthes desvinculados
+dashboard.clean_unbind_oauth_success=Todos OAuthes desvinculados foram excluídos com sucesso.
+dashboard.delete_inactivate_accounts=Excluir todas as contas inativas
+dashboard.delete_inactivate_accounts_success=Todas as contas inativas foram excluídas com sucesso.
+dashboard.delete_repo_archives=Excluir todos os ficheiros dos repositórios
+dashboard.delete_repo_archives_success=Todos os ficheiros dos repositórios foram excluídos com sucesso.
+dashboard.delete_missing_repos=Apagar todos os repositórios que perderam ficheiros do Git
+dashboard.delete_missing_repos_success=Todos os registos de repositórios que perderam ficheiros do Git foram apagados com sucesso.
+dashboard.git_gc_repos=Fazer coleta de lixo nos repositórios
+dashboard.git_gc_repos_success=Em todos repositórios a coleta de lixo foi realizada com sucesso.
+dashboard.resync_all_sshkeys=Reescrever '.ssh/authorized_keys' (atenção: chaves que não sejam do Gogs serão perdidas)
+dashboard.resync_all_sshkeys_success=Todas as chaves públicas foram reescritas com sucesso.
+dashboard.resync_all_hooks=Ressincronizar hooks pre-receive, update e post-receive de todos os repositórios
+dashboard.resync_all_hooks_success=Os hooks pre-receive, update e post-receive de todos os repositórios foram ressincronizados com sucesso.
+dashboard.reinit_missing_repos=Reinicializar todos os registos de repositório que perderam os ficheiros do Git
+dashboard.reinit_missing_repos_success=Todos os repositórios que perderam ficheiros do Git foram reinicializados com sucesso.
+
+dashboard.server_uptime=Uptime do Servidor
+dashboard.current_goroutine=Goroutines Atuais
+dashboard.current_memory_usage=Utilização de memória atual
+dashboard.total_memory_allocated=Total de memória alocada
+dashboard.memory_obtained=Memória obtida
+dashboard.pointer_lookup_times=Nº Consulta de Ponteiros
+dashboard.memory_allocate_times=Nº Alocações de Memória
+dashboard.memory_free_times=Nº de Libertações de Memória
+dashboard.current_heap_usage=Uso Atual da Heap
+dashboard.heap_memory_obtained=Memória de Heap Obtida
+dashboard.heap_memory_idle=Memória da Heap Idle
+dashboard.heap_memory_in_use=Memória da Heap em Uso
+dashboard.heap_memory_released=Memória da Heap Libertada
+dashboard.heap_objects=Objetos na Heap
+dashboard.bootstrap_stack_usage=Uso de Bootstrap Stack
+dashboard.stack_memory_obtained=Memória de Stack Obtida
+dashboard.mspan_structures_usage=Utilização de Estruturas de MSpan
+dashboard.mspan_structures_obtained=Estruturas de MSpan Obtidas
+dashboard.mcache_structures_usage=Utilização de Estruturas MCache
+dashboard.mcache_structures_obtained=Estruturas de MCache Obtidas
+dashboard.profiling_bucket_hash_table_obtained=Perfil Obtido da Bucket Hash Table
+dashboard.gc_metadata_obtained=Metadados do GC Obtidos
+dashboard.other_system_allocation_obtained=Outra Alocação de Sistema Obtida
+dashboard.next_gc_recycle=Próxima Reciclagem do GC
+dashboard.last_gc_time=Desde da Ultima Vez do GC
+dashboard.total_gc_time=Pausa Total do GC
+dashboard.total_gc_pause=Pausa Total do GC
+dashboard.last_gc_pause=Última Pausa do GC
+dashboard.gc_times=Nº Execuções do GC
+
+users.user_manage_panel=Painel de Gestão de Utilizador
+users.new_account=Criar Nova Conta
+users.name=Nome
+users.activated=Ativado
+users.admin=Admin
+users.repos=Repos
+users.created=Criado
+users.send_register_notify=Enviar Notificação de Registo ao Utilizador
+users.new_success=Nova conta '%s' foi criada com sucesso.
+users.edit=Editar
+users.auth_source=Fontes de autenticação
+users.local=Local
+users.auth_login_name=Autenticação de nome de usuário
+users.password_helper=Deixe em branco para não alterar.
+users.update_profile_success=O perfil da conta foi atualizado com sucesso.
+users.edit_account=Editar conta
+users.max_repo_creation=Limite Máximo de Criação de Repositórios
+users.max_repo_creation_desc=(Utilize "-1" para utilizar o limite padrão)
+users.is_activated=Esta conta está ativada
+users.prohibit_login=Esta conta está proibida de efetuar login
+users.is_admin=Esta conta tem permissões de administrador
+users.allow_git_hook=Esta conta tem permissões para criar hooks do Git
+users.allow_import_local=Esta conta tem permissões para importar repositórios locais
+users.update_profile=Atualizar perfil
+users.delete_account=Apagar Conta
+users.still_own_repo=Esta conta ainda é proprietária de pelo menos um repositório, deve excluir ou transferi-lo primeiro.
+users.still_has_org=Esta conta ainda faz parte de pelo menos uma organização, deve sair ou excluí-la primeiro.
+users.deletion_success=Conta foi excluída com sucesso!
+
+orgs.org_manage_panel=Painel de Gestão de Organização
+orgs.name=Nome
+orgs.teams=Equipas
+orgs.members=Membros
+
+repos.repo_manage_panel=Painel de gestão de repositório
+repos.owner=Proprietário
+repos.name=Nome
+repos.private=Privado
+repos.watches=Monitorizado
+repos.stars=Estrelas
+repos.issues=Problemas
+repos.size=Tamanho
+
+auths.auth_sources=Fontes de autenticação
+auths.new=Adicionar Nova Fonte
+auths.name=Nome
+auths.type=Tipo
+auths.enabled=Ativada
+auths.default=Predefinido
+auths.updated=Atualizado
+auths.auth_type=Tipo de autenticação
+auths.auth_name=Nome de autenticação
+auths.security_protocol=Protocolo de segurança
+auths.domain=Domínio
+auths.host=Anfitrião
+auths.port=Porta
+auths.bind_dn=Vincular DN
+auths.bind_dn_helper=Pode utilizar '%s' como placeholder para o nome de utilizador, por exemplo, DOM\%s
+auths.bind_password=Vincular Senha
+auths.bind_password_helper=Atenção: Esta senha é armazenada texto. Não utilize uma conta com privilégios elevados.
+auths.user_base=Base de Pesquisa de Utilizador
+auths.user_dn=Utilizador do DN
+auths.attribute_username=Atributo do Utilizador
+auths.attribute_username_placeholder=Deixe vazio para utilizar o valor do campo do formulário de entrada do nome de utilizador.
+auths.attribute_name=Atributo do Primeiro Nome
+auths.attribute_surname=Atributo do Sobrenome
+auths.attribute_mail=Atributo do e-mail
+auths.verify_group_membership=Verificar associação a grupo
+auths.group_search_base_dn=Base Pesquisa de grupo DN
+auths.group_filter=Filtro de Grupo
+auths.group_attribute_contain_user_list=Atributos de Grupo com Lista de Utilizadores
+auths.user_attribute_listed_in_group=Atributo de Utilizador Listado no Grupo
+auths.attributes_in_bind=Procurar atributos no contexto de Vinculo DN
+auths.filter=Filtro de Utilizador
+auths.admin_filter=Filtro de Administrador
+auths.ms_ad_sa=Microsoft Active Directory SA
+auths.smtp_auth=Tipo de Autenticação SMTP
+auths.smtphost=Anfitrião SMTP
+auths.smtpport=Porta SMTP
+auths.allowed_domains=Domínios Permitidos
+auths.allowed_domains_helper=Deixe em branco para permitir qualquer domínio. Vários domínios devem ser separados por vírgula ','.
+auths.enable_tls=Ativar encriptação TLS
+auths.skip_tls_verify=Ignorar Verificação TLS
+auths.pam_service_name=Nome do Serviço PAM
+auths.enable_auto_register=Ativar Registo Automático
+auths.edit=Editar Configuração de Autenticação
+auths.activated=Esta Autenticação foi Ativada
+auths.default_auth=Essa autenticação é a fonte de login padrão
+auths.new_success=Nova autenticação '%s' foi adicionada com sucesso.
+auths.update_success=A configuração da autenticação foi atualizada com sucesso.
+auths.update=Atualizar Configuração de Autenticação
+auths.delete=Apagar Esta Autenticação
+auths.delete_auth_title=Exclusão da Autenticação
+auths.delete_auth_desc=Esta autenticação esta prestes a ser excluída, deseja continuar?
+auths.still_in_used=Esta autenticação ainda é utilizada por alguns utilizadores. Por favor remova ou converta esses utilizadores para outro tipo de login primeiro.
+auths.deletion_success=Autenticação foi excluída com sucesso!
+auths.login_source_exist=A fonte de login '%s" já existe.
+auths.github_api_endpoint=Endpoint da API
+
+config.not_set=(não definido)
+config.server_config=Configuração do Servidor
+config.brand_name=Nome da marca
+config.run_user=Utilizador de execução
+config.run_mode=Mode de execução
+config.server.external_url=URL externo
+config.server.domain=Domínio
+config.server.protocol=Protocolo
+config.server.http_addr=Endereço HTTP
+config.server.http_port=Porta HTTP
+config.server.cert_file=Ficheiro de certificado criptográfico
+config.server.key_file=Ficheiro da chave criptográfica privada
+config.server.tls_min_version=Versão mínima TLS
+config.server.unix_socket_permission=Permissão de soquete Unix
+config.server.local_root_url=URL raíz local
+config.server.offline_mode=Modo offline
+config.server.disable_router_log=Desativar o log do Router
+config.server.enable_gzip=Activar Gzip
+config.server.app_data_path=Caminho de dados da aplicação
+config.server.load_assets_from_disk=Carregar activos do disco
+config.server.landing_url=URL de Destino
+
+config.ssh_config=Configuração SSH
+config.ssh.enabled=Activado
+config.ssh.domain=Domínio exposto
+config.ssh.port=Porta exposta
+config.ssh.root_path=Caminho para a raíz
+config.ssh.keygen_path=Localização do gerador de chaves criptográficas
+config.ssh.key_test_path=Localização do teste das chaves criptográficas
+config.ssh.minimum_key_size_check=Verificação de tamanho mínimo da chave
+config.ssh.minimum_key_sizes=Tamanhos mínimos de chaves
+config.ssh.rewrite_authorized_keys_at_start=Rewrite "authorized_keys" at start
+config.ssh.start_builtin_server=Iniciar servidor embutido
+config.ssh.listen_host=Servidor
+config.ssh.listen_port=Porta do servidor
+config.ssh.server_ciphers=Cifras do servidor
+config.ssh.server_macs=MACs do servidor
+config.ssh.server_algorithms=Algoritmos do servidor
+
+config.repo_config=Configuração de repositório
+config.repo.root_path=Localização base
+config.repo.script_type=Tipo de script
+config.repo.ansi_chatset=ANSI charset
+config.repo.force_private=Forçar privado
+config.repo.max_creation_limit=Limite máximo de criação
+config.repo.preferred_licenses=Licenças preferidas
+config.repo.disable_http_git=Desativar Git HTTP
+config.repo.enable_local_path_migration=Ativar a migração de caminho local
+config.repo.enable_raw_file_render_mode=Ativar o modo de renderização do ficheiro bruto
+config.repo.commits_fetch_concurrency=Commits fetch concurrency
+config.repo.editor.line_wrap_extensions=Extensões de quebra automática de linha do editor
+config.repo.editor.previewable_file_modes=Editor previewable file modes
+config.repo.upload.enabled=Envio ativado
+config.repo.upload.temp_path=Caminho temporário para envios
+config.repo.upload.allowed_types=Tipos de envios permitidos
+config.repo.upload.file_max_size=Tamanho limite de ficheiros enviados
+config.repo.upload.max_files=Quantidade limite de ficheiros enviados
+
+config.db_config=Configuração da base de dados
+config.db.type=Tipo
+config.db.host=Anfitrião
+config.db.name=Nome
+config.db.schema=Esquema
+config.db.schema_helper=(apenas para "postgres")
+config.db.user=Utilizador
+config.db.ssl_mode=Modo SSL
+config.db.ssl_mode_helper=(apenas para "postgres")
+config.db.path=Caminho
+config.db.path_helper=(apenas para "sqlite3")
+config.db.max_open_conns=Máximo de conexões abertas
+config.db.max_idle_conns=Máximo de conexões ociosas
+
+config.security_config=Configuração da segurança
+config.security.login_remember_days=Dias lembrados de login
+config.security.cookie_remember_name=Lembrar do cookie
+config.security.cookie_username=Cookie do nome do utilizador
+config.security.cookie_secure=Ativar cookie seguro
+config.security.reverse_proxy_auth_user=Cabeçalho de autenticação de proxy reverso
+config.security.enable_login_status_cookie=Enable login status cookie
+config.security.login_status_cookie_name=Login status cookie
+config.security.local_network_allowlist=Local network allowlist
+
+config.email_config=Configuração de E-mail
+config.email.enabled=Ativado
+config.email.subject_prefix=Prefixo do assunto
+config.email.host=Anfitrião
+config.email.from=De
+config.email.user=Utilizador
+config.email.disable_helo=Desativar HELO
+config.email.helo_hostname=Nome de anfitrião HELO
+config.email.skip_verify=Skip certificate verify
+config.email.use_certificate=Usar certificado personalizado
+config.email.cert_file=Ficheiro de certificado criptográfico
+config.email.key_file=Ficheiro da chave criptográfica
+config.email.use_plain_text=Usar texto simples
+config.email.add_plain_text_alt=Adicionar alternativa de texto simples
+config.email.send_test_mail=Enviar e-mail de teste
+config.email.test_mail_failed=Falhou o envio do e-mail de teste para '%s': %v
+config.email.test_mail_sent=O e-mail de teste foi enviado para '%s'.
+
+config.auth_config=Configuração da autenticação
+config.auth_custom_logout_url=Custom logout URL
+config.auth.activate_code_lives=Activate code lives
+config.auth.reset_password_code_lives=Reset password code lives
+config.auth.require_email_confirm=Exigir confirmação por e-mail
+config.auth.require_sign_in_view=Exigir login para ver
+config.auth.disable_registration=Desativar registo
+config.auth.enable_registration_captcha=Ativar captcha para registar
+config.auth.enable_reverse_proxy_authentication=Ativar autenticação do proxy reverso
+config.auth.enable_reverse_proxy_auto_registration=Ativar o registo automático do proxy reverso
+config.auth.reverse_proxy_authentication_header=Cabeçalho de autenticação de proxy reverso
+
+config.user_config=Configuração do utilizador
+config.user.enable_email_notify=Ativar a notificação por e-mail
+
+config.session_config=Configuração de sessão
+config.session.provider=Provedor
+config.session.provider_config=Configuração do provedor
+config.session.cookie_name=Cookie
+config.session.https_only=Somente HTTPS
+config.session.gc_interval=GC interval
+config.session.max_life_time=Max life time
+config.session.csrf_cookie_name=CSRF cookie
+
+config.cache_config=Configuração de cache
+config.cache.adapter=Adaptador
+config.cache.interval=Intervalo de GC
+config.cache.host=Anfitrião
+
+config.http_config=Configuração HTTP
+config.http.access_control_allow_origin=Access control allow origin
+
+config.attachment_config=Configuração de anexos
+config.attachment.enabled=Ativado
+config.attachment.path=Caminho
+config.attachment.allowed_types=Tipos permitidos
+config.attachment.max_size=Limite de tamanho
+config.attachment.max_files=Limite de ficheiros
+
+config.release_config=Release configuration
+config.release.attachment.enabled=Attachment enabled
+config.release.attachment.allowed_types=Attachment allowed types
+config.release.attachment.max_size=Tamanho máximo dos anexos
+config.release.attachment.max_files=Attachment files limit
+
+config.picture_config=Configuração de imagem
+config.picture.avatar_upload_path=User avatar upload path
+config.picture.repo_avatar_upload_path=Repository avatar upload path
+config.picture.gravatar_source=Gravatar source
+config.picture.disable_gravatar=Disable Gravatar
+config.picture.enable_federated_avatar=Enable federated avatars
+
+config.mirror_config=Mirror configuration
+config.mirror.default_interval=Intervalo predefinido
+
+config.webhook_config=Configuração de WebHook
+config.webhook.types=Tipos
+config.webhook.deliver_timeout=Deliver timeout
+config.webhook.skip_tls_verify=Skip TLS verify
+
+config.git_config=Configuração Git
+config.git.disable_diff_highlight=Disable diff syntax highlight
+config.git.max_diff_lines=Diff lines limit (for a single file)
+config.git.max_diff_line_characters=Diff characters limit (for a single line)
+config.git.max_diff_files=Diff files limit (for a single diff)
+config.git.gc_args=GC arguments
+config.git.migrate_timeout=Migration timeout
+config.git.mirror_timeout=Mirror fetch timeout
+config.git.clone_timeout=Clone timeout
+config.git.pull_timeout=Pull timeout
+config.git.gc_timeout=GC timeout
+
+config.lfs_config=LFS configuration
+config.lfs.storage=Storage
+config.lfs.objects_path=Objects path
+
+config.log_config=Configuração de Log
+config.log_file_root_path=Caminho Raiz para Ficheiro Log
+config.log_mode=Modo
+config.log_options=Opções
+
+monitor.cron=Tarefas Cron
+monitor.name=Nome
+monitor.schedule=Programa
+monitor.next=Próxima vez
+monitor.previous=Vez anterior
+monitor.execute_times=Tempos de Execução
+monitor.process=Processos em Execução
+monitor.desc=Descrição
+monitor.start=Hora de início
+monitor.execute_time=Tempo de Execução
+
+notices.system_notice_list=Sistema de Notificações
+notices.view_detail_header=Ver Detalhe de Notificações
+notices.actions=Ações
+notices.select_all=Selecionar Todas
+notices.deselect_all=Desselecionar Todas
+notices.inverse_selection=Inverter Seleção
+notices.delete_selected=Apagar Seleção
+notices.delete_all=Apagar todas as notificações
+notices.type=Tipo
+notices.type_1=Repositório
+notices.desc=Descrição
+notices.op=Op.
+notices.delete_success=Notificações do sistema foram apagados com sucesso.
+
+[action]
+create_repo=repositório criado %s
+rename_repo=renomeou o o repositório %[1]s para %[3]s
+commit_repo=pushed para %[3]s em %[4]s
+compare_commits=Ver comparação para estes %d commits
+transfer_repo=repositório transferido de %s para %s
+create_issue=`questão aberta %s#%[2]s`
+close_issue=`questão fechada %s#%[2]s`
+reopen_issue=`questão reaberta %s#%[2]s`
+comment_issue=`comentou a questão %s#%[2]s`
+create_pull_request=`criou pull request %s#%[2]s`
+close_pull_request=`fechou pull request %s#%[2]s`
+reopen_pull_request=`reabriu pull request %s#%[2]s`
+merge_pull_request=`mesclou pull request %s#%[2]s`
+create_branch=criado novo branch %[3]s em %[4]s
+delete_branch=apagado branch %[2]s em %[3]s
+push_tag=feito push tag %[2]s para %[3]s
+delete_tag=apagada tag %[2]s em %[3]s
+fork_repo=forked repositório para %s
+mirror_sync_push=sincronizados commits para %[3]s em %[4]s do mirror
+mirror_sync_create=nova referência sincronizada %[2]s para %[3]s do mirror
+mirror_sync_delete=referência sincronizada e apagada %[2]s em %[3]s do mirror
+
+[tool]
+ago=atrás
+from_now=a partir de agora
+now=agora
+1s=1 segundo %s
+1m=há 1 minuto %s
+1h=há 1 hora %s
+1d=há 1 dia %s
+1w=há 1 semana %s
+1mon=há 1 mês %s
+1y=há 1 ano %s
+seconds=há %d segundos %s
+minutes=há %d minutos %s
+hours=há %d horas %s
+days=há %d dias %s
+weeks=há %d semanas %s
+months=há %d meses %s
+years=há %d anos %s
+raw_seconds=segundos
+raw_minutes=minutos
+raw_hours=hours
+
+[dropzone]
+default_message=Coloque os ficheiros aqui ou clique em enviar.
+invalid_input_type=Não é possivel enviar ficheiros deste tipo.
+file_too_big=Tamanho do ficheiro ({{filesize}} MB) excede o tamanho máximo ({{maxFilesize}} MB).
+remove_file=Remover ficheiro
+
diff --git a/conf/locale/locale_ro-RO.ini b/conf/locale/locale_ro-RO.ini
new file mode 100644
index 00000000000..6f99aa67874
--- /dev/null
+++ b/conf/locale/locale_ro-RO.ini
@@ -0,0 +1,1434 @@
+app_desc=Un serviciu Git auto-găzduit fără dureri de cap
+
+home=Acasă
+dashboard=Prezentare generală
+explore=Explorează
+help=Ajutor
+sign_in=Autentificare
+sign_out=Deconectare
+sign_up=Înregistrare
+register=Înregistrare
+website=Site web
+page=Pagina
+template=Șablon
+language=Limba
+create_new=Creare...
+user_profile_and_more=Profilul utilizatorului și multe altele
+signed_in_as=Conectat ca
+
+username=Numele de utilizator
+email=E-mail
+password=Parolă
+re_type=Introduceți din nou
+captcha=Captcha
+
+repository=Repositoriu
+organization=Organizație
+mirror=Replici
+new_repo=Repositoriu nou
+new_migrate=Migrare nouă
+new_mirror=Replică nouă
+new_fork=Repositoriu nou bifurcat
+new_org=Organizație nouă
+manage_org=Gestionare organizații
+admin_panel=Panou Administrator
+account_settings=Setări cont
+settings=Setări
+your_profile=Profilul dumneavoastră
+your_settings=Setările tale
+
+activities=Activități
+pull_requests=Trageți solicitările
+issues=Probleme
+
+cancel=Anulare
+
+[status]
+page_not_found=Pagina nu a fost găsită
+internal_server_error=Eroare internă de server
+
+[install]
+install=Instalare
+title=Pașii de instalare pentru prima rulare
+docker_helper=Dacă rulați Gogs în interiorul Docker, vă rugăm să citiți Regulile cu atenție înainte de a schimba ceva în această pagină!
+requite_db_desc=Gogs necesită MySQL, PostgreSQL, SQLite3 sau TiDB (prin protocolul MySQL).
+db_title=Setări bază de date
+db_type=Tipul bazei de date
+host=Gazdă
+user=Utilizator
+password=Parolă
+db_name=Numele bazei de date
+db_schema=Schemă
+db_helper=Vă rugăm să utilizați motorul INNODB cu un set de caractere utf8_general_ci pentru MySQL.
+ssl_mode=Mod SSL
+path=Cale
+sqlite_helper=Calea fișierului bazei de date SQLite3. Vă rugăm să utilizați calea absolută când începeți ca serviciu.
+err_empty_db_path=Calea bazei de date SQLite3 nu poate fi goală.
+no_admin_and_disable_registration=Nu puteți dezactiva înregistrarea fără a crea un cont de administrator.
+err_empty_admin_password=Parola de administrator nu poate fi goală.
+
+general_title=Setări generale ale aplicației
+app_name=Numele aplicației
+app_name_helper=Pune-ți numele organizației aici imens și tare!
+repo_path=Calea de rădăcină a depozitului
+repo_path_helper=Toate repositoriile de la distanță Git vor fi salvate în acest director.
+run_user=Rulați utilizator
+run_user_helper=Utilizatorul trebuie să aibă acces la Calea Root din Repositoriu și să execute Gogs.
+domain=Domeniu
+domain_helper=Aceasta afectează adresele URL ale clonelor SSH.
+ssh_port=Portul SSH
+ssh_port_helper=Numărul de port pe care îl folosește serverul dvs. SSH, lăsați-l gol pentru a dezactiva funcția SSH.
+use_builtin_ssh_server=Utilizați serverul SSH încorporat
+use_builtin_ssh_server_popup=Porniți serverul SSH încorporat pentru operațiunile Git pentru a distinge de demonul SSH de sistem.
+http_port=Portul HTTP
+http_port_helper=Numărul de port pe care aplicația va asculta.
+app_url=Adresa URL a aplicației
+app_url_helper=Aceasta afectează URL-ul clonării HTTP / HTTPS și undeva în e-mail.
+log_root_path=Calea de jurnal
+log_root_path_helper=Director în care să scrie fișiere jurnal.
+enable_console_mode=Activați modul consolă
+enable_console_mode_popup=În plus față de modul fișier, imprimați și jurnalele pentru consolă.
+default_branch=Sucursala implicită
+
+optional_title=Setări opționale
+email_title=Setări servicii de e-mail
+smtp_host=Gazdă SMTP
+smtp_from=De la
+smtp_from_helper=Mail de la adresa, RFC 5322. Poate fi doar o adresă de e-mail sau formatul „Nume” .
+mailer_user=E-mail expeditor
+mailer_password=Parola expeditorului
+register_confirm=Activați confirmarea înregistrării
+mail_notify=Activați notificarea prin e-mail
+server_service_title=Setări server și alte servicii
+offline_mode=Activați modul Offline
+offline_mode_popup=Dezactivați CDN chiar și în modul de producție, toate fișierele de resurse vor fi servite local.
+disable_gravatar=Dezactivați serviciul Gravatar
+disable_gravatar_popup=Dezactivează Gravatar și sursele personalizate, toate avatarurile sunt încărcate de către utilizatori sau implicit.
+federated_avatar_lookup=Activați căutarea avatarurilor federate
+federated_avatar_lookup_popup=Activați căutarea avatarilor federați pentru a utiliza serviciul open source federalizat bazat pe libravatar.
+disable_registration=Dezactivați Auto-înregistrarea
+disable_registration_popup=Dezactivați auto-înregistrarea utilizatorului, numai administratorul poate crea conturi.
+enable_captcha=Activați Captcha
+enable_captcha_popup=Necesită validarea captcha pentru auto-înregistrare.
+require_sign_in_view=Activați Conectare Necesară pentru a vizualiza pagini
+require_sign_in_view_popup=Numai utilizatorii conectați pot vizualiza pagini, vizitatorii vor putea vedea paginile de conectare/înregistrare.
+admin_setting_desc=Nu trebuie să creați un cont de administrator acum. Primului utilizator din tabelul (users) i se va acorda automat acces de administrare.
+admin_title=Setările contului Admin
+admin_name=Nume utilizator
+admin_password=Parolă
+confirm_password=Confirmați Parola
+admin_email=E-mail administrator
+install_gogs=Instalaţi Gogs
+test_git_failed=Eșuare în a testa comanda 'git': %v
+sqlite3_not_available=Versiunea dvs. de lansare nu acceptă SQLite3, vă rugăm să descărcați versiunea binară oficială de la %s, NU versiunea gobuild.
+invalid_db_setting=Setarea bazei de date nu este corectă: %v
+invalid_repo_path=Calea rădăcină a repozitorului nu este validă: %v
+run_user_not_match=Utilizatorul care rulează nu este utilizatorul curent: %s -> %s
+smtp_host_missing_port=Portul gazdă SMTP lipsește din adresă.
+invalid_smtp_from=Câmpul SMTP nu este valid: %v
+save_config_failed=Eșuare în a salva configurația: %v
+init_failed=Nu s-a putut inițializa aplicația: %v
+invalid_admin_setting=Setarea contului de administrator nu este validă: %v
+install_success=Bine ai venit! Ne bucurăm că ai ales Gogs, distrează-te și ai grijă de tine.
+invalid_log_root_path=Calea rădăcină a jurnalului nu este validă: %v
+
+[home]
+uname_holder=Nume utilizator sau e-mail
+password_holder=Parolă
+switch_dashboard_context=Comutați contextul tabloului de bord
+my_repos=Repozitoriile mele
+show_more_repos=Afișează mai multe repozitorii...
+collaborative_repos=Repozitoriile Colaborative
+my_orgs=Organizațiile mele
+my_mirrors=Oglindirile mele
+view_home=Vezi %s
+
+issues.in_your_repos=În repozitorile tale
+
+[explore]
+repos=Repozitorii
+users=Utilizatori
+organizations=Organizații
+search=Căutați
+
+[auth]
+create_new_account=Creați un cont nou
+register_hepler_msg=Aveți deja un cont? Conectați-vă acum!
+social_register_hepler_msg=Aveți deja un cont? Legați acum!
+disable_register_prompt=Ne pare rău, înregistrarea a fost dezactivată. Vă rugăm să contactați administratorul site-ului.
+disable_register_mail=Ne pare rău, serviciile de e-mail sunt dezactivate. Vă rugăm să contactați administratorul site-ului.
+auth_source=Sursa de autentificare
+local=Local
+remember_me=Ține-mă minte
+forgot_password=Ați uitat parola
+forget_password=Ați uitat parola?
+sign_up_now=Nevoie de un cont? Inscrie-te acum.
+confirmation_mail_sent_prompt=Un nou e-mail de confirmare a fost trimis către %s , vă rugăm să verificați căsuța de e-mail în următoarele %d ore pentru a finaliza procesul de înregistrare.
+active_your_account=Activați contul dvs.
+prohibit_login=Conectarea Interzisă
+prohibit_login_desc=Contul dvs. nu are voie să se autentifice. Vă rugăm să contactați administratorul site-ului.
+resent_limit_prompt=Ne pare rău, ați solicitat deja un e-mail de activare recent. Vă rugăm să așteptați 3 minute, apoi încercați din nou.
+has_unconfirmed_mail=Hi %s, you have an unconfirmed email address (%s). If you haven't received a confirmation email or need to resend a new one, please click on the button below.
+resend_mail=Faceți clic aici pentru a retransmite e-mailul de activare
+send_reset_mail=Faceți clic aici pentru a (re) trimite adresa de e-mail de resetare a parolei
+reset_password=Resetați-vă parola
+invalid_code=Ne pare rău, codul dvs. de confirmare a expirat sau nu este valabil.
+reset_password_helper=Faceți clic aici pentru a vă reseta parola
+password_too_short=Lungimea parolei trebuie să fie de cel puțin 6 caractere.
+non_local_account=Conturile non-locale nu pot schimba parolele prin Gogs.
+
+login_two_factor=Autentificare în doi pași
+login_two_factor_passcode=Codul de autentificare
+login_two_factor_enter_recovery_code=Introduceți un cod de recuperare pentru verificarea în doi pași
+login_two_factor_recovery=Recuperare verificare în doi pași
+login_two_factor_recovery_code=Cod de recuperare
+login_two_factor_enter_passcode=Introduceți un cod de recuperare pentru verificarea în doi pași
+login_two_factor_invalid_recovery_code=Cod de recuperare deja utilizat sau nu este valid.
+
+[mail]
+activate_account=Vă rugăm să vă activați contul
+activate_email=Verificați adresa dvs. de e-mail
+reset_password=Resetați-vă parola
+register_success=Înregistrare reușită, bun venit
+register_notify=Bine ați venit la bord
+
+[modal]
+yes=Da
+no=Nu
+modify=Modifică
+
+[form]
+UserName=Nume utilizator
+RepoName=Nume repozitoriu
+Email=Adresa de e-mail
+Password=Parola
+Retype=Reintroduceți parola
+SSHTitle=Numele cheii SSH
+HttpsUrl=URL-ul HTTPS
+PayloadUrl=URL-ul Payload
+TeamName=Numele echipei
+AuthName=Numele autorizației
+AdminEmail=E-mail administrator
+
+NewBranchName=Nume nou ramură
+CommitSummary=Sumar consemnare
+CommitMessage=Mesaj consemnare
+CommitChoice=Alegere consemnare
+TreeName=Cale fișier
+Content=Conținut
+
+require_error=` nu poate fi gol."
+alpha_dash_error=` must be valid alpha or numeric or dash(-_) characters.`
+alpha_dash_dot_error=` must be valid alpha or numeric or dash(-_) or dot characters.`
+alpha_dash_dot_slash_error=` must be valid alpha or numeric or dash(-_) or dot characters or slashes.`
+size_error=` must be size %s.`
+min_size_error=` trebuie să conţină cel puţin %s caractere."
+max_size_error=` trebuie să conţină cel mult %s caractere."
+email_error=` nu este o adresă de e-mail validă`
+url_error=` nu este un URL valid.`
+include_error=' trebuie să conţină subşirul '%s'.'
+unknown_error=Eroare necunoscută:
+captcha_incorrect=Captcha nu se potriveşte.
+password_not_match=Parola și confirmarea parolei nu sunt identice.
+
+username_been_taken=Numele de utilizator a fost deja luat.
+repo_name_been_taken=Numele depozitului a fost deja luat.
+org_name_been_taken=Numele organizației a fost deja luat.
+team_name_been_taken=Numele echipei a fost deja luat.
+email_been_used=Adresa de e-mail a fost deja folosită.
+username_password_incorrect=Numele de utilizator sau parola nu sunt corecte.
+auth_source_mismatch=Sursa de autentificare selectată nu este asociată cu utilizatorul.
+enterred_invalid_repo_name=Asigurați-vă că numele depozitului pe care l-ați introdus este corect.
+enterred_invalid_owner_name=Asigurați-vă că numele pe care l-ați introdus este corect.
+enterred_invalid_password=Asigurați-vă că parola introdusă este corectă.
+user_not_exist=Utilizatorul nu există.
+last_org_owner=Eliminarea ultimului utilizator rămas de la o echipă de proprietari nu este permisă, deoarece o organizație trebuie să aibă întotdeauna cel puțin un proprietar.
+
+invalid_ssh_key=Sorry, we're not able to verify your SSH key: %s
+unable_verify_ssh_key=Gogs nu poate verifica cheia SSH, dar se presupune că este validă. Te rugăm să o verifici.
+auth_failed=Autentificare eșuată: %v
+
+still_own_repo=Contul tău are încă proprietate asupra a cel puțin un depozit, trebuie să îl ștergi sau să îl transferi mai întâi.
+still_has_org=Contul tău încă are calitatea de membru în cel puțin o organizație, trebuie să părăsești sau să ștergi mai întâi abonamentele.
+org_still_own_repo=Această organizație încă are drept de proprietate asupra depozitelor, trebuie să le ștergeți sau să le transferați mai întâi.
+
+target_branch_not_exist=Ramura țintă nu există.
+
+[user]
+change_avatar=Schimbați-vă avatarul
+join_on=Înregistrat pe
+repositories=Repozitorii
+activity=Activitate publică
+followers=Urmăritori
+starred=Repozitorii favorite
+following=Urmăresc
+follow=Urmăriți
+unfollow=Anulați urmărirea
+
+form.name_not_allowed=Numele de utilizator sau modelul %q nu sunt permise.
+
+[settings]
+profile=Profil
+password=Parolă
+avatar=Poză de profil
+ssh_keys=Chei SSH
+security=Securitate
+repos=Repozitorii
+orgs=Organizații
+applications=Aplicații
+delete=Șterge contul
+
+public_profile=Profil public
+profile_desc=Adresa dvs. de e-mail este publică și va fi folosită pentru orice notificări legate de cont și pentru orice operațiuni web realizate prin intermediul site-ului.
+password_username_disabled=Utilizatorilor de tip non-local nu li se permite să își schimbe numele de utilizator.
+full_name=Numele complet
+website=Site web
+location=Locație
+update_profile=Actualizare Profil
+update_profile_success=Profilul a fost actualizat cu succes.
+change_username=Nume utilizator schimbat
+change_username_prompt=Această modificare va afecta modul în care legăturile direcționează spre contul dumneavoastră.
+continue=Continuă
+cancel=Anulează
+
+lookup_avatar_by_mail=Caută imagine de profil prin mail
+federated_avatar_lookup=Activați căutarea avatarurilor federate
+enable_custom_avatar=Folosește imagine de profil personalizată
+choose_new_avatar=Alege o noua imagine de profil
+update_avatar=Actualizează setările imaginii de profil
+delete_current_avatar=Șterge avatarul curent
+uploaded_avatar_not_a_image=Fișierul încărcat nu este o imagine.
+update_avatar_success=Setările imaginii dumneavoastre de profil au fost actualizate cu succes.
+
+change_password=Schimbă Parola
+old_password=Parola actuală
+new_password=Parolă nouă
+retype_new_password=Reintroduceți noua parolă
+password_incorrect=Parola actuală nu este corectă.
+change_password_success=Parola dumneavoastră a fost schimbată cu succes și poate fi acum folosită pentru autentificare.
+password_change_disabled=Utilizatorilor de tip non-local nu li se permite să își schimbe parola.
+
+emails=Adrese de e-mail
+manage_emails=Gestionați adresele de e-mail
+email_desc=Adresa dumneavoastră de e-mail principală va fi utilizată pentru notificări și alte operațiuni.
+primary=Principal
+primary_email=Setează ca principală
+delete_email=Șterge
+email_deletion=Ștergere e-mail
+email_deletion_desc=Ștergerea acestei adrese de e-mail va elimina informațiile aferente din contul dumneavoastră. Doriți să continuați?
+email_deletion_success=Emailul a fost șters cu succes!
+email_deletion_primary=Nu se poate șterge adresa principală de e-mail.
+add_new_email=Adăugați o nouă adresă de e-mail
+add_email=Adăugați E-mail
+add_email_confirmation_sent=Un nou e-mail de confirmare a fost trimis la "%s", vă rugăm să vă verificați căsuța poștală în următoarele %d ore pentru a finaliza procesul de confirmare.
+add_email_success=Noua dumneavoastră adresă de e-mail a fost adăugată cu succes.
+
+manage_ssh_keys=Gestionează cheile SSH
+add_key=Adaugă Cheie
+ssh_desc=Aceasta este o listă de chei SSH asociate contului dumneavoastră. Deoarece aceste chei permit oricui le folosește să obțină acces la depozitele dumneavoastră, este foarte important să vă asigurați că le recunoașteți.
+ssh_helper=Nu știi cum? Consultați ghidul GitHub pentru creați-vă propriile chei SSH ori rezolvați common problems problemele pe care le puteți întâlni folosind SSH.
+add_new_key=Adaugă cheie SSH
+ssh_key_been_used=A fost utilizat conținutul cheii publice.
+ssh_key_name_used=Cheia publică cu același nume a existat deja.
+key_name=Nume cheie
+key_content=Conținut
+add_key_success=Noua cheie SSH "%s" a fost adăugată cu succes!
+delete_key=Șterge
+ssh_key_deletion=Ștergere cheie SSH
+ssh_key_deletion_desc=Ștergerea acestei chei SSH va elimina toate accesele aferente pentru contul dumneavoastră. Doriți să continuați?
+ssh_key_deletion_success=Cheia SSH a fost ștearsă cu succes!
+add_on=Adăugat pe
+last_used=Utilizat ultima dată pe
+no_activity=Nicio activitate recentă
+key_state_desc=Această cheie este utilizată în ultimele 7 zile
+token_state_desc=Acest token este utilizat în ultimele 7 zile
+
+two_factor=Autentificare în doi pași
+two_factor_status=Status:
+two_factor_on=Pornit
+two_factor_off=Oprit
+two_factor_enable=Activează
+two_factor_disable=Dezactivează
+two_factor_view_recovery_codes=Vizualizați și salvați codurile dumneavoastră de recuperare într-un loc sigur. Le puteți utiliza ca și cod de acces dacă pierdeți accesul la aplicația de autentificare.
+two_factor_http=Pentru operațiunile HTTP/HTTPS, nu mai puteți utiliza numele de utilizator și parola simple. Vă rugăm să creați și să utilizați Token de Acces Personal ca și credențial, de ex. %[3]s.
+two_factor_enable_title=Activați autentificarea cu doi factori
+two_factor_scan_qr=Vă rugăm să folosiți aplicația de autentificare pentru a scana imaginea:
+two_factor_or_enter_secret=Sau introduceți secretul:
+two_factor_then_enter_passcode=Apoi introduceți codul de acces:
+two_factor_verify=Verifică
+two_factor_invalid_passcode=Codul de acces pe care l-ați introdus nu este valid, vă rugăm să încercați din nou!
+two_factor_reused_passcode=Codul de acces pe care l-ați introdus a fost deja utilizat, vă rugăm să încercați altul!
+two_factor_enable_error=Activarea autentificării în doi pași a eșuat: %v
+two_factor_enable_success=Autentificarea cu doi factori a fost activată cu succes pentru contul dumneavoastră!
+two_factor_recovery_codes_title=Coduri de recuperare a autentificării cu doi factori
+two_factor_recovery_codes_desc=Codurile de recuperare sunt utilizate atunci când pierdeți temporar accesul la aplicația de autentificare. Fiecare cod de recuperare poate fi utilizat o singură dată, vă rugăm să păstrați aceste coduri într-un loc sigur.
+two_factor_regenerate_recovery_codes=Coduri de recuperare Regenerate
+two_factor_regenerate_recovery_codes_error=Regenerarea codurilor de recuperare a eșuat: %v
+two_factor_regenerate_recovery_codes_success=Noile coduri de recuperare au fost generate cu succes!
+two_factor_disable_title=Dezactivați Autentificarea cu doi factori
+two_factor_disable_desc=Nivelul de securitate al contului dumneavoastră va scădea după ce ați dezactivat autentificarea cu doi factori. Doriți să continuați?
+two_factor_disable_success=Autentificarea cu doi factori a fost dezactivată cu succes!
+
+manage_access_token=Gestionează tokenurile de acces personale
+generate_new_token=Generarea unui nou token
+tokens_desc=Token-urile pe care le-ați generat și care pot fi utilizate pentru a accesa API-urile Gogs.
+access_token_tips=Token-ul personal de acces poate fi folosit ca nume de utilizator sau parolă. Este recomandat să utilizaţi "x-access-token" ca nume de utilizator şi token personal de acces ca parolă pentru aplicaţiile Git.
+new_token_desc=Fiecare token va avea acces deplin la contul dumneavoastră.
+token_name=Nume token
+generate_token=Generează Token
+generate_token_succees=Tokenul de acces a fost generat cu succes! Asigurați-vă că îl copiați acum, deoarece nu îl veți mai putea vedea mai târziu!
+delete_token=Șterge
+access_token_deletion=Ștergerea token-ului de acces personal
+access_token_deletion_desc=Ștergerea acestui token de acces personal va elimina toate accesele aferente aplicației. Doriți să continuați?
+delete_token_success=Tokenul de acces personal a fost eliminat cu succes! Nu uitați să vă actualizați și aplicația.
+token_name_exists=Token-ul cu același nume există deja.
+
+orgs.none=Nu sunteți membru al niciunei organizații.
+orgs.leave_title=Lăsați organizația
+orgs.leave_desc=Veți pierde accesul la toate depozitele și echipele după ce ați părăsit organizația. Doriți să continuați?
+
+repos.leave=Părăsește
+repos.leave_title=Lăsați depozitul
+repos.leave_desc=Veți pierde accesul la depozit după ce ați plecat. Doriți să continuați?
+repos.leave_success=Ați părăsit depozitul '%s' cu succes!
+
+delete_account=Șterge-ți contul
+delete_prompt=Operațiunea vă va șterge contul definitiv și NU POATE fi anulată!
+confirm_delete_account=Confirmă ştergerea
+delete_account_title=Ștergerea contului
+delete_account_desc=Acest cont va fi șters permanent, doriți să continuați?
+
+[repo]
+owner=Proprietar
+repo_name=Numele depozitului
+repo_name_helper=Un nume de depozit bun este, de obicei, compus din cuvinte cheie scurte, memorabile și unice.
+visibility=Vizibilitate
+unlisted=Nelistat
+visiblity_helper=Acest depozit este Private
+unlisted_helper=Acest depozit este Unlisted
+visiblity_helper_forced=Administratorul site-ului a forțat toate depozitele noi să fie Private.
+visiblity_fork_helper=(Modificarea acestei valori va afecta toate bifurcațiile)
+clone_helper=Aveți nevoie de ajutor pentru clonare? Vizitați Help!
+fork_repo=Depozit de bifurcații
+fork_from=Ramură de la
+fork_visiblity_helper=Nu puteți modifica vizibilitatea unui depozit bifurcat.
+repo_desc=Descriere
+repo_lang=Limbă
+repo_gitignore_helper=Selectați șabloanele .gitignore
+license=Licenta
+license_helper=Selectați un fișier de licență
+readme=Citește-mă
+readme_helper=Selectați un șablon readme
+auto_init=Inițializați acest depozit cu fișierele și șablonul selectate
+create_repo=Repozitoriu nou
+default_branch=Sucursala implicită
+mirror_prune=Curăță
+mirror_prune_desc=Îndepărtați orice referințe de urmărire la distanță care nu mai există la distanță
+mirror_interval=Intervalul de oglindire (oră)
+mirror_address=Adresa oglinzii
+mirror_address_desc=Vă rugăm să includeți în adresă credențialele de utilizator necesare.
+mirror_last_synced=Ultima sincronizare
+watchers=Observatori
+stargazers=Privitorii de stele
+forks=Bifurcații
+repo_description_helper=Descrierea depozitului. Lungime maximă de 512 caractere.
+repo_description_length=Caractere disponibile
+
+form.reach_limit_of_creation=Proprietarul a atins limita maximă de creare a %d depozite.
+form.name_not_allowed=Numele depozitului sau modelul %q nu este permis.
+
+need_auth=Autorizație necesară
+migrate_type=Tipul de migrație
+migrate_type_helper=Acest depozit va fi un mirror.
+migrate_repo=Migrarea depozitului
+migrate.clone_address=Adresa de clonare
+migrate.clone_address_desc=Aceasta poate fi o adresă URL HTTP/HTTPS/GIT.
+migrate.clone_address_desc_import_local=De asemenea, vi se permite să migrați un depozit prin calea serverului local.
+migrate.permission_denied=Nu aveți voie să importați depozite locale.
+migrate.invalid_local_path=Cale locală invalidă, nu există sau nu este un director.
+migrate.clone_address_resolved_to_blocked_local_address=Adresa de clonare rezolvată la o adresă de rețea locală care este implicit blocată.
+migrate.failed=Migrarea a eșuat: %v
+
+mirror_from=oglindă de
+forked_from=a fost obținut din
+copy_link=Copiați
+copy_link_success=Copiat!
+copy_link_error=Apasati l-C ori Ctrl-C pentru a copia
+copied=Copiat OK
+unwatch=Nevizionat
+watch=Urmărește
+unstar=Fără stele
+star=Stea
+fork=Bifurcare
+
+no_desc=Fără Descriere
+quick_guide=Ghid rapid
+clone_this_repo=Clonează acest repozitoriu
+create_new_repo_command=Creați un nou depozit în linia de comandă
+push_exist_repo=Împingeți un depozit existent din linia de comandă
+bare_message=Acest depozit nu are încă niciun conținut.
+
+files=Fisiere
+branch=Ramură
+tree=Arbore
+filter_branch_and_tag=Filtrează ramura sau eticheta
+branches=Ramuri
+tags=Etichete
+issues=Probleme
+pulls=Trageți solicitările
+labels=Etichete
+milestones=Repere
+commits=Angajamente
+git_branches=Ramuri
+releases=Variante
+file_raw=Crud
+file_history=Istoric
+file_view_raw=Vizualizează brut
+file_permalink=Permalink
+file_too_large=Acest fișier este prea mare pentru a fi afișat
+video_not_supported_in_browser=Browserul dumneavoastră nu suportă tag-ul video HTML5.
+
+branches.overview=Supervizare
+branches.active_branches=Sucursale active
+branches.stale_branches=Ramuri vechi
+branches.all=Toate ramurile
+branches.updated_by=Actualizat %[1]s prin %[2]s
+branches.change_default_branch=Schimbarea ramurii implicite
+branches.default_deletion_not_allowed=Cannot delete the default branch.
+branches.protected_deletion_not_allowed=Cannot delete a protected branch.
+
+editor.new_file=Fișier nou
+editor.upload_file=Încărcați fișier
+editor.edit_file=Modifica fisier
+editor.preview_changes=Previzualizare Modificări
+editor.cannot_edit_non_text_files=Nu se pot edita fișiere non-text
+editor.edit_this_file=Editați acest fișier
+editor.must_be_on_a_branch=Trebuie să fiți pe o ramură pentru a face sau a propune modificări la acest fișier
+editor.fork_before_edit=Trebuie să creați o bifurcație în acest depozit înainte de a edita fișierul
+editor.delete_this_file=Șterge acest fișier
+editor.must_have_write_access=Trebuie să aveți acces de scriere pentru a face sau a propune modificări la acest fișier.
+editor.file_delete_success=Fișierul '%s' a fost șters cu succes!
+editor.name_your_file=Numiți fișierul dumneavoastră...
+editor.filename_help=Pentru a adăuga un director, trebuie doar să îl introduceți și să apăsați /. Pentru a elimina un director, mergeți la începutul câmpului și apăsați backspace.
+editor.or=sau
+editor.cancel_lower=anulează
+editor.commit_changes=Angajarea modificărilor
+editor.add_tmpl=Adăugați '%s/'
+editor.add=Adăugați '%s'
+editor.update=Actualizați '%s'
+editor.delete=Șterge '%s'
+editor.commit_message_desc=Adăugați o descriere extinsă opțională...
+editor.commit_directly_to_this_branch=Trimiteți direct la branșa %s.
+editor.create_new_branch=Creați o ramură nouă pentru acest commit și începeți o cerere de extragere.
+editor.new_branch_name_desc=Noul nume al filialei...
+editor.cancel=Anuleaza
+editor.filename_cannot_be_empty=Câmpul nu poate fi gol.
+editor.branch_already_exists=Branșa "%s" există deja în acest depozit.
+editor.directory_is_a_file=Intrarea "%s" din fișierul părinte este un fișier și nu un director în acest depozit.
+editor.file_is_a_symlink=Fișierul "%s" este un symlink care nu poate fi modificat din editorul web.
+editor.filename_is_a_directory=Numele fișierului "%s" este un director existent în acest depozit.
+editor.file_editing_no_longer_exists=Fișierul "%s" pe care îl editați nu mai există în depozit.
+editor.file_changed_while_editing=Conținutul fișierului a fost modificat de când ați început editarea. Faceți clic aici pentru a vedea ce au fost modificate sau apăsați din nou commit pentru a suprascrie aceste modificări.
+editor.file_already_exists=Un fișier cu numele "%s" există deja în acest depozit.
+editor.no_changes_to_show=Nu sunt modificări de arătat.
+editor.fail_to_update_file=Nu s-a reușit actualizarea/crearea fișierului "%s" cu eroarea: %v
+editor.fail_to_delete_file=Nu s-a reușit ștergerea fișierului "%s" cu eroarea: %v
+editor.add_subdir=Adăugați subdirectorul...
+editor.unable_to_upload_files=Nu s-a reușit încărcarea fișierelor în "%s" cu eroarea: %v
+editor.upload_files_to_dir=Încărcați fișiere la "%s
+
+commits.commit_history=Istoricul angajamentelor
+commits.commits=Angajamente
+commits.search=Căutați comenzi
+commits.find=Găsiți
+commits.author=Autor
+commits.message=Permisiunea de a trimite mesaje. Dacă este dezactivată, utilizatorul nu va putea trimite nici un fel de mesaj
+commits.date=Data
+commits.older=Mai vechi
+commits.newer=Mai nou
+
+issues.new=Problemă nouă
+issues.new.labels=Etichete
+issues.new.no_label=Fără etichetă
+issues.new.clear_labels=Ștergeți etichetele
+issues.new.milestone=Reper
+issues.new.no_milestone=Nu există Milestone
+issues.new.clear_milestone=Șterge reperul
+issues.new.open_milestone=Repere deschise
+issues.new.closed_milestone=Repere închise
+issues.new.assignee=Alocat lui
+issues.new.clear_assignee=Destinatar clar
+issues.new.no_assignee=Fără destinatar
+issues.create=Creați Issue
+issues.new_label=Etichetă Nouă
+issues.new_label_placeholder=Numele etichetei...
+issues.create_label=Numele etichetei...
+issues.label_templates.title=Încărcați un set predefinit de etichete
+issues.label_templates.info=Încă nu există etichete. Puteți face clic pe butonul "New Label" (Etichetă nouă) de mai sus pentru a crea una sau puteți utiliza un set predefinit de mai jos.
+issues.label_templates.helper=Selectați un set de etichete
+issues.label_templates.use=Utilizați acest set de etichete
+issues.label_templates.fail_to_load_file=Nu a reușit să încarce fișierul șablon de etichetă '%s': %v
+issues.open_tab=%d Deschis
+issues.close_tab=%d închis
+issues.filter_label=Etichetă
+issues.filter_label_no_select=Nici o etichetă selectată
+issues.filter_milestone=Reper
+issues.filter_milestone_no_select=Nu este selectat niciun punct de reper
+issues.filter_assignee=Alocat lui
+issues.filter_assginee_no_select=Nu este selectat Destinatarul
+issues.filter_type=Tip
+issues.filter_type.all_issues=Toate problemele
+issues.filter_type.assigned_to_you=Atribuit dumneavoastră
+issues.filter_type.created_by_you=Create de tine
+issues.filter_type.mentioning_you=Menționându-vă
+issues.filter_sort=Sortare
+issues.filter_sort.latest=Cele mai noi
+issues.filter_sort.oldest=Cele mai vechi
+issues.filter_sort.recentupdate=Nou actualizat
+issues.filter_sort.leastupdate=Cele mai puţin recent actualizate
+issues.filter_sort.mostcomment=Cele mai multe comentarii
+issues.filter_sort.leastcomment=Cel mai puțin comentat
+issues.opened_by=deschis %[1]s cu %[3]s
+issues.opened_by_fake=deschis %[1]s cu %[2]s
+issues.previous=Anterior
+issues.next=Urmatorul
+issues.open_title=Deschideți
+issues.closed_title=Închis
+issues.num_comments=%d comentarii
+issues.commented_at=`a comentat %s`
+issues.delete_comment_confirm=Sigur doriți să ștergeți acest comentariu?
+issues.no_content=Nu există încă niciun conținut.
+issues.close_issue=Închide
+issues.close_comment_issue=Comentați și închideți
+issues.reopen_issue=Redeschide
+issues.reopen_comment_issue=Comentariu și redeschidere
+issues.create_comment=comentariu
+issues.closed_at=`închisă %[2]s`
+issues.reopened_at=`redeschis %[2]s`
+issues.commit_ref_at=`a făcut referire la această problemă dintr-un commit %[2]s`
+issues.poster=Poster
+issues.collaborator=Colaborator
+issues.owner=Proprietar
+issues.sign_in_require_desc=Autentificați-vă pentru a vă alătura acestei conversații.
+issues.edit=Editați
+issues.cancel=Anulare
+issues.save=Salvează
+issues.label_title=Denumire eticheta
+issues.label_color=Culoarea etichetei
+issues.label_count=%d etichete
+issues.label_open_issues=%d probleme deschise
+issues.label_edit=Editați
+issues.label_delete=Șterge
+issues.label_modify=Modificarea etichetei
+issues.label_deletion=Ștergerea etichetei
+issues.label_deletion_desc=Ștergerea acestei etichete va elimina informațiile despre aceasta din toate numerele aferente. Doriți să continuați?
+issues.label_deletion_success=Eticheta a fost ștearsă cu succes!
+issues.num_participants=%d Participanți
+issues.attachment.open_tab=`Click pentru a vedea "%s" într-un tab nou`
+issues.attachment.download=`Click pentru a descărca "%s"`
+
+pulls.new=O nouă cerere de tragere
+pulls.compare_changes=Comparați modificările
+pulls.compare_changes_desc=Comparați două branșe și faceți o cerere de modificare.
+pulls.compare_base=bază
+pulls.compare_compare=compara
+pulls.filter_branch=Filtru branșă
+pulls.no_results=Nu a fost gasit nici un rezultat.
+pulls.nothing_to_compare=Nu este nimic de comparat, deoarece ramurile de bază și cele de cap sunt egale.
+pulls.nothing_merge_base=Nu există nimic de comparat, deoarece cele două branșe au o istorie complet diferită.
+pulls.has_pull_request=`Există deja o solicitare de tragere între aceste două obiective: %[2]s#%[3]d`
+pulls.create=Creați o cerere de extragere
+pulls.title_desc=dorește să fuzioneze %[1]d angajamente din %[2]s în %[3]s
+pulls.merged_title_desc=a fuzionat %[1]d commits de la %[2]s în %[3]s %[4]s
+pulls.tab_conversation=Conversaţie
+pulls.tab_commits=Angajamente
+pulls.tab_files=Fișiere modificate
+pulls.reopen_to_merge=Vă rugăm să redeschideți acest pull request pentru a efectua operațiunea de fuziune.
+pulls.merged=Fuzionată
+pulls.has_merged=Acest pull request a fost fuzionat cu succes!
+pulls.data_broken=Datele acestui pull request au fost întrerupte din cauza ștergerii informațiilor din bifurcație.
+pulls.is_checking=Verificarea conflictelor este încă în curs de desfășurare, vă rugăm să reîmprospătați pagina în câteva momente.
+pulls.can_auto_merge_desc=Acest pull request poate fi fuzionat automat.
+pulls.cannot_auto_merge_desc=Acest pull request nu poate fi fuzionat automat deoarece există conflicte.
+pulls.cannot_auto_merge_helper=Vă rugăm să fuzionați manual pentru a rezolva conflictele.
+pulls.create_merge_commit=Creați un angajament de fuziune
+pulls.rebase_before_merging=Rebase înainte de fuzionare
+pulls.commit_description=Descriere Commit
+pulls.merge_pull_request=Fuzionați Pull Request
+pulls.open_unmerged_pull_exists=`Nu puteți efectua operațiunea de redeschidere deoarece există deja un pull request deschis (#%d) din același depozit cu aceleași informații de fuziune și care așteaptă să fie fuzionat..`
+pulls.delete_branch=Șterge ramura
+pulls.delete_branch_has_new_commits=Branșa nu poate fi ștearsă deoarece are noi comenzi după fuziune.
+
+milestones.new=Reper nou
+milestones.open_tab=%d Deschis
+milestones.close_tab=%d închis
+milestones.closed=Închis %e
+milestones.no_due_date=Fără două date
+milestones.open=Deschideți
+milestones.close=Închide
+milestones.new_subheader=Creați etape importante pentru a vă organiza problemele.
+milestones.create=Creați un reper
+milestones.title=Titlu
+milestones.desc=Descriere
+milestones.due_date=Data scadentă (opţional)
+milestones.clear=Stergeți
+milestones.invalid_due_date_format=Formatul datei scadente este invalid, trebuie să fie 'aaa-ll-zz'.
+milestones.create_success=Reperul de etapă "%s" a fost creat cu succes!
+milestones.edit=Editați Milestone
+milestones.edit_subheader=Folosiți o descriere mai bună pentru etapele importante, astfel încât oamenii să nu fie confuzi.
+milestones.cancel=Anulare
+milestones.modify=Modificați Milestone
+milestones.edit_success=Modificările reperului '%s' au fost salvate cu succes!
+milestones.deletion=Ștergere reper
+milestones.deletion_desc=Ștergerea acestui reper va elimina informațiile despre acesta din toate numerele aferente. Doriți să continuați?
+milestones.deletion_success=Milestone a fost șters cu succes!
+
+wiki=Wiki
+wiki.welcome=Bine ați venit pe Wiki!
+wiki.welcome_desc=Wiki este locul în care doriți să vă documentați împreună proiectul și să îl îmbunătățiți.
+wiki.create_first_page=Creați prima pagină
+wiki.page=Pagina
+wiki.filter_page=Filtrează pagina
+wiki.new_page=Creează o pagină nouă
+wiki.default_commit_message=Scrieți o notă despre această actualizare (opțional).
+wiki.save_page=Salvează pagina
+wiki.last_commit_info=%s a editat această pagină %s
+wiki.edit_page_button=Editați
+wiki.new_page_button=Pagina Nouă
+wiki.delete_page_button=Șterge pagina
+wiki.delete_page_notice_1=Aceasta va șterge pagina "%s". Vă rugăm să fiți sigur.
+wiki.page_already_exists=Pagina Wiki cu același nume există deja.
+wiki.pages=Pagini
+wiki.last_updated=Ultima actualizare %s
+
+settings=Setări
+settings.options=Opţiuni
+settings.collaboration=Colaborare
+settings.collaboration.admin=Administrator
+settings.collaboration.write=Scrie
+settings.collaboration.read=Citiţi
+settings.collaboration.undefined=Nedefinit
+settings.branches=Branșe
+settings.branches_bare=Nu puteți gestiona ramuri pentru depozitul gol. Vă rugăm să împingeți mai întâi niște conținut.
+settings.default_branch=Sucursala implicită
+settings.default_branch_desc=Ramificația implicită este considerată branșa "de bază" pentru confirmările de cod, solicitările de extragere și editarea online.
+settings.update=Actualizaţi
+settings.update_default_branch_unsupported=Modificarea ramurii implicite nu este suportată de versiunea Git de pe server.
+settings.update_default_branch_success=Branșa implicită a acestui depozit a fost actualizată cu succes!
+settings.protected_branches=Branșe protejate
+settings.protected_branches_desc=Protejați ramurile de împingerea forțată, de ștergerea accidentală și puneți pe lista albă a celor care comit coduri.
+settings.choose_a_branch=Alegeți o branșă...
+settings.branch_protection=Protecția Branșei
+settings.branch_protection_desc=Vă rugăm să alegeți opțiunile de protecție pentru sucursală
+settings.protect_this_branch=Protejați această branșă
+settings.protect_this_branch_desc=Dezactivați forța de împingere și împiedicați ștergerea.
+settings.protect_require_pull_request=Necesită cerere de tragere în loc de împingere directă
+settings.protect_require_pull_request_desc=Activați această opțiune pentru a dezactiva împingerea directă către branșa respectivă. Modificările trebuie să fie împinse pe o altă branșă neprotejată și îmbinate în această branșă prin intermediul unei cereri de tragere.
+settings.protect_whitelist_committers=Lista albă a celor care pot face push către această ramură
+settings.protect_whitelist_committers_desc=Adăugați persoane sau echipe pe lista albă de push direct către această branșă. Utilizatorii din lista albă vor ocoli verificarea cererii de extragere obligatorie.
+settings.protect_whitelist_users=Utilizatorii care pot face push către această ramură
+settings.protect_whitelist_search_users=Caută utilizatori
+settings.protect_whitelist_teams=Echipe pentru care membrii lor pot face push către această branșă
+settings.protect_whitelist_search_teams=Căutați echipe
+settings.update_protect_branch_success=Opțiunile de protecție pentru această ramură au fost actualizate cu succes!
+settings.hooks=Webhook-uri
+settings.githooks=Git Hook-uri
+settings.basic_settings=Setări de bază
+settings.mirror_settings=Setări oglindă
+settings.sync_mirror=Sincronizează acum
+settings.mirror_sync_in_progress=Sincronizarea oglinzilor este în curs, vă rugăm să reîmprospătați pagina în aproximativ un minut.
+settings.site=Site oficial
+settings.update_settings=Actualizeaza setari
+settings.change_reponame_prompt=Această modificare va afecta modul în care legăturile se raportează la depozit.
+settings.advanced_settings=Setări Avansate
+settings.wiki_desc=Activați sistemul wiki
+settings.use_internal_wiki=Utilizați wiki încorporat
+settings.allow_public_wiki_desc=Permiteți accesul public la wiki atunci când depozitul este privat
+settings.use_external_wiki=Utilizați un wiki extern
+settings.external_wiki_url=URL-ul Wiki extern
+settings.external_wiki_url_desc=Vizitatorii vor fi redirecționați către URL atunci când fac clic pe fila respectivă.
+settings.issues_desc=Activați trackerul de probleme
+settings.use_internal_issue_tracker=Utilizați un tracker de probleme ușor încorporat
+settings.allow_public_issues_desc=Permiteți accesul public la probleme atunci când depozitul este privat
+settings.use_external_issue_tracker=Utilizați un tracker de probleme extern
+settings.external_tracker_url=URL extern de urmărire a problemelor
+settings.external_tracker_url_desc=Vizitatorii vor fi redirecționați către URL atunci când fac clic pe fila respectivă.
+settings.tracker_url_format=Formatul URL-ului de urmărire a problemelor externe
+settings.tracker_issue_style=External Issue Tracker Stil de denumire:
+settings.tracker_issue_style.numeric=Numeric
+settings.tracker_issue_style.alphanumeric=Alfanumeric
+settings.tracker_url_format_desc=Puteți utiliza caractere de poziție {user} {repo} {index}} pentru numele utilizatorului, numele depozitului și indexul problemei.
+settings.pulls_desc=Activați cererile de tragere pentru a accepta contribuții între depozite și ramuri
+settings.pulls.ignore_whitespace=Ignoră modificările în spațiul alb
+settings.pulls.allow_rebase_merge=Permiteți utilizarea rebase pentru a fuziona comenzi
+settings.danger_zone=Zonă de pericol
+settings.cannot_fork_to_same_owner=Nu puteți transfera un depozit către proprietarul său original.
+settings.new_owner_has_same_repo=Noul proprietar are deja un depozit cu același nume. Vă rugăm să alegeți un alt nume.
+settings.convert=Conversia în depozitul obișnuit
+settings.convert_desc=Puteți converti această oglindă într-un depozit obișnuit. Acest lucru nu poate fi inversat.
+settings.convert_notices_1=- Această operațiune va converti această oglindă de depozit într-un depozit obișnuit și nu poate fi anulată.
+settings.convert_confirm=Confirmați Conversia
+settings.convert_succeed=Depozitul a fost convertit cu succes în tip obișnuit.
+settings.transfer=Transferă rolul de proprietar
+settings.transfer_desc=Transferați acest depozit către un alt utilizator sau către o organizație în care aveți drepturi de administrator.
+settings.transfer_notices_1=- Veți pierde accesul dacă noul proprietar este un utilizator individual.
+settings.transfer_notices_2=- Veți păstra accesul dacă noul proprietar este o organizație și dacă sunteți unul dintre proprietari.
+settings.transfer_form_title=Vă rugăm să introduceți următoarele informații pentru a confirma operațiunea:
+settings.wiki_delete=Ștergere date Wiki
+settings.wiki_delete_desc=Odată ce ștergeți datele wiki nu există cale de întoarcere. Vă rugăm să fiți sigur.
+settings.wiki_delete_notices_1=- Acest lucru va șterge și dezactiva wiki pentru %s
+settings.wiki_deletion_success=Datele Repository wiki au fost șterse cu succes.
+settings.delete=Șterge acest registru
+settings.delete_desc=Odată ce ați șters un depozit, nu mai există cale de întoarcere. Vă rugăm să fiți siguri.
+settings.delete_notices_1=- Această operațiune NU POATE fi anulată.
+settings.delete_notices_2=- Această operațiune va șterge definitiv tot ce se află în acest depozit, inclusiv datele Git, problemele, comentariile și accesul colaboratorilor.
+settings.delete_notices_fork_1=- Toate bifurcațiile vor deveni independente după ștergere.
+settings.deletion_success=Depozitul a fost șters cu succes!
+settings.update_settings_success=Opțiunile depozitului au fost actualizate cu succes.
+settings.transfer_owner=Proprietar Nou
+settings.make_transfer=Efectuați Transferul
+settings.transfer_succeed=Proprietatea depozitelor a fost transferată cu succes.
+settings.confirm_delete=Confirmă ştergerea
+settings.add_collaborator=Adăugați un nou colaborator
+settings.add_collaborator_success=A fost adăugat un nou colaborator.
+settings.delete_collaborator=Șterge
+settings.collaborator_deletion=Ștergerea colaboratorului
+settings.collaborator_deletion_desc=Acest utilizator nu va mai avea acces de colaborare la acest depozit după ștergere. Doriți să continuați?
+settings.remove_collaborator_success=Colaboratorul a fost eliminat.
+settings.search_user_placeholder=Căutare utilizator...
+settings.org_not_allowed_to_be_collaborator=Organizația nu poate fi adăugată în calitate de colaborator.
+settings.hooks_desc=Webhooks sunt asemănătoare cu declanșatoarele de evenimente HTTP POST de bază. Ori de câte ori se întâmplă ceva în Gogs, ne vom ocupa de notificarea către gazda țintă pe care o specificați.
+settings.webhooks.add_new=Adăugați un nou webhook:
+settings.webhooks.choose_a_type=Alegeți un tip...
+settings.add_webhook=Adăugați webhook
+settings.webhook_deletion=Ștergere Webhook
+settings.webhook_deletion_desc=Ștergerea acestui webhook va elimina informațiile și tot istoricul livrărilor. Doriți să continuați?
+settings.webhook_deletion_success=Webhook a fost șters cu succes!
+settings.webhook.test_delivery=Livrare test
+settings.webhook.test_delivery_desc=Trimiteți o livrare falsă a unui eveniment push pentru a testa setările webhook-ului dumneavoastră
+settings.webhook.test_delivery_success=Testul webhook a fost adăugat la coada de livrare. Este posibil să dureze câteva secunde până când va apărea în istoricul livrărilor.
+settings.webhook.redelivery=Reîntoarcerea livrării
+settings.webhook.redelivery_success=Sarcina "%s" a fost adăugată la coada de livrare. Este posibil să dureze câteva secunde pentru a actualiza starea de livrare în istoric.
+settings.webhook.request=Cerere
+settings.webhook.response=Răspuns
+settings.webhook.headers=Anteturi
+settings.webhook.payload=Taxa de plată
+settings.webhook.body=Corp
+settings.webhook.err_cannot_parse_payload_url=Nu se poate analiza URL-ul de încărcare: %v
+settings.webhook.url_resolved_to_blocked_local_address=Adresa URL a încărcăturii utile rezolvată la o adresă de rețea locală care este implicit blocată.
+settings.githooks_desc=Git Hooks sunt alimentate de Git însuși, puteți edita fișierele de cârlige acceptate din lista de mai jos pentru a efectua operațiuni personalizate.
+settings.githook_edit_desc=În cazul în care cârligul este inactiv, va fi prezentat un conținut de probă. Lăsarea conținutului la o valoare goală va dezactiva acest cârlig.
+settings.githook_name=Nume Hook
+settings.githook_content=Continutul Hook-ului
+settings.update_githook=Actualizare Hook
+settings.add_webhook_desc=Gogs va trimite o solicitare POST către URL-ul specificat, împreună cu detalii cu privire la evenimentul care a avut loc. De asemenea, poți specifica ce tip de format de date dorești să primești la declanșarea hook-ului (JSON, x-www-form-urlencoed, XML, etc). Mai multe informaţii pot fi găsite în Ghidul nostru Webhook.
+settings.payload_url=URL-ul Payload
+settings.content_type=Tip de conținut
+settings.secret=Secret
+settings.secret_desc=Secretul va fi trimis ca SHA256 HMAC hex digest al încărcăturii utile prin intermediul antetului X-Gogs-Signature.
+settings.slack_username=Numele de utilizator
+settings.slack_icon_url=Pictogramă URL
+settings.slack_color=Culoare
+settings.event_desc=Când ar trebui declanșat acest webhook?
+settings.event_push_only=Doar evenimentul push
+settings.event_send_everything=Am nevoie de tot
+settings.event_choose=Lasă-mă să aleg ceea ce am nevoie
+settings.event_create=Creați
+settings.event_create_desc=Branșă sau etichetă creată
+settings.event_delete=Șterge
+settings.event_delete_desc=Branșă sau etichetă ștearsă
+settings.event_fork=Bifurcare
+settings.event_fork_desc=Depozitul este bifurcat
+settings.event_push=Push
+settings.event_push_desc=Git push către un depozit
+settings.event_issues=Probleme
+settings.event_issues_desc=Chestiune deschisă, închisă, redeschisă, editată, atribuită, neatribuită, etichetă actualizată, etichetă eliminată, milestonată sau demilestonată.
+settings.event_pull_request=Pull Request
+settings.event_pull_request_desc=Cerere de extragere deschisă, închisă, redeschisă, editată, atribuită, neatribuită, etichetă actualizată, etichetă ștearsă, milestonată, demilestonată sau sincronizată.
+settings.event_issue_comment=Issue Comentariu
+settings.event_issue_comment_desc=Comentariu creat, modificat sau șters.
+settings.event_release=Lansare
+settings.event_release_desc=Versiune publicată într-un depozit.
+settings.active=Activ
+settings.active_helper=De asemenea, se vor furniza detalii privind evenimentul care a declanșat acest hook.
+settings.add_hook_success=A fost adăugat un nou webhook.
+settings.update_webhook=Actualizare Webhook
+settings.update_hook_success=Webhook a fost actualizat.
+settings.delete_webhook=Ștergere Webhook
+settings.recent_deliveries=Livrări recente
+settings.hook_type=Tip Hook
+settings.add_slack_hook_desc=Adăugați integrarea Slack la depozitul dumneavoastră.
+settings.add_discord_hook_desc=Adăugați integrarea Discord la depozitul dumneavoastră.
+settings.add_dingtalk_hook_desc=Adăugați integrarea Dingtalk la depozitul dumneavoastră.
+settings.slack_token=Token
+settings.slack_domain=Domeniu
+settings.slack_channel=Canal
+settings.deploy_keys=Implementarea cheilor
+settings.deploy_keys_helper=Common Gotcha! Dacă doriți să adăugați chei publice personale, adăugați-le în fișierul account settings.
+settings.add_deploy_key=Adăugați cheia de implementare
+settings.deploy_key_desc=Cheile de desfășurare au acces numai pentru citire. Acestea nu sunt identice cu cheile SSH ale contului personal.
+settings.no_deploy_keys=Nu ați adăugat nicio cheie de desfășurare.
+settings.title=Titlu
+settings.deploy_key_content=Conținut
+settings.key_been_used=A fost utilizat conținutul cheie de desfășurare.
+settings.key_name_used=Există deja o cheie de distribuire cu același nume.
+settings.add_key_success=Noua cheie de desfășurare "%s" a fost adăugată cu succes!
+settings.deploy_key_deletion=Ștergeți cheia de distribuire
+settings.deploy_key_deletion_desc=Ștergerea acestei chei de implementare va elimina toate accesele aferente pentru acest depozit. Doriți să continuați?
+settings.deploy_key_deletion_success=Cheia Deploy a fost ștearsă cu succes!
+settings.description_desc=Descrierea depozitului. Lungime maximă de 512 caractere.
+settings.description_length=Caractere disponibile
+
+diff.browse_source=Răsfoiți Sursa
+diff.parent=părinte
+diff.commit=comite
+diff.data_not_available=Diff Data nu este Disponibil.
+diff.show_diff_stats=Arată Statisticile Diff
+diff.show_split_view=Vizualizare divizată
+diff.show_unified_view=Vedere unificată
+diff.stats_desc= %d a modificat fișierele cu %d adăugiri și %d ștergeri
+diff.bin=BIN
+diff.view_file=Vizualizați fișierul
+diff.file_suppressed=Fișier diff suprimat deoarece este prea mare
+diff.too_many_files=Unele fișiere nu au fost afișate deoarece prea multe fișiere au fost modificate în acest diff
+
+release.releases=Variante
+release.new_release=Lansare nouă
+release.draft=Ciorna
+release.prerelease=Versiunea de pre-lansare
+release.edit=Editeaza
+release.ahead=%d se angajează să %s de la această versiune
+release.source_code=Cod sursă
+release.new_subheader=Publicarea de versiuni pentru a itera produsul.
+release.edit_subheader=Jurnalul de modificări detaliat poate ajuta utilizatorii să înţeleagă ce a fost îmbunătăţit.
+release.tag_name=Eticheta nume
+release.target=Ţintă
+release.tag_helper=Alegeți o etichetă existentă sau creați o etichetă nouă la publicare.
+release.title=Titlu
+release.content=Conținut
+release.write=Scrie
+release.preview=Previzualizare
+release.loading=Se încarcă...
+release.prerelease_desc=Aceasta este un pre-release
+release.prerelease_helper=Vom sublinia faptul că acest Release nu este pregătită pentru producție.
+release.cancel=Anulează
+release.publish=Publicare Release
+release.save_draft=Salvați schița
+release.edit_release=Editare Release
+release.delete_release=Evaluați acest Release
+release.deletion=Ștergere Release
+release.deletion_desc=Ștergerea acestui release va șterge eticheta Git corespunzătoare. Doriți să continuați?
+release.deletion_success=Release-ul a fost șters cu succes!
+release.tag_name_already_exist=Release cu aceasta etichetă există deja.
+release.tag_name_invalid=Numele etichetei nu este valid.
+release.downloads=Descărcări
+
+[org]
+org_name_holder=Numele organizaţiei
+org_full_name_holder=Numele complet al organizaţiei
+org_name_helper=Numele grozave ale organizațiilor sunt scurte și memorabile.
+create_org=Creați Organizație
+repo_updated=Actualizat
+people=Persoane
+invite_someone=Invită pe cineva
+teams=Echipe
+lower_members=membri
+lower_repositories=repozitorii
+create_new_team=Creează o echipă nouă
+org_desc=Descriere
+team_name=Nume echipă
+team_desc=Descriere
+team_name_helper=Vei folosi acest nume pentru a menționa această echipă în conversații.
+team_desc_helper=Despre ce este această echipă?
+team_permission_desc=Ce nivel de permisiune ar trebui să aibă această echipă?
+
+form.name_not_allowed=Numele organizației sau modelul %q nu este permis.
+form.team_name_not_allowed=Numele echipei sau modelul %q nu sunt permise.
+
+settings=Setări
+settings.options=Opţiuni
+settings.full_name=Numele Complet
+settings.website=Site web
+settings.location=Locație
+settings.update_settings=Actualizează Setările
+settings.update_setting_success=Setările pentru organizație au fost actualizat cu succes.
+settings.change_orgname_prompt=Această modificare va afecta modul în care linkurile se raportează la organizație.
+settings.update_avatar_success=Avatarul organizației a fost actualizat cu succes.
+settings.delete=Șterge organizația
+settings.delete_account=Șterge această organizație
+settings.delete_prompt=Organizația va fi eliminată definitiv, iar acest lucru NU POATE fi anulat!
+settings.confirm_delete_account=Confirmă ştergerea
+settings.delete_org_title=Ștergerea organizației
+settings.delete_org_desc=Această organizație va fi ștearsă definitiv, vreți să continuați?
+settings.hooks_desc=Adăugați webhook-uri care vor fi declanșate pentru toate depozitele sub această organizație.
+
+members.membership_visibility=Vizibilitate membru:
+members.public=Public
+members.public_helper=fă privat
+members.private=Privat
+members.private_helper=fă public
+members.member_role=Rolul membrului:
+members.owner=Proprietar
+members.member=Membru
+members.remove=Sterge
+members.leave=Părăsește
+members.invite_desc=Adăugați un nou membru la %s:
+members.invite_now=Invitați acum
+
+teams.join=Alătură-te
+teams.leave=Părăsește
+teams.read_access=Acces la citit
+teams.read_access_helper=Această echipă va putea să vizualizeze și să cloneze depozitele sale.
+teams.write_access=Acces la scriere
+teams.write_access_helper=Această echipă va fi capabilă să citească depozitele sale, precum și să facă push către acestea.
+teams.admin_access=Acces Administrator
+teams.admin_access_helper=Această echipă va fi capabilă să citească depozitele sale, precum și să facă push către acestea.
+teams.no_desc=Această echipă nu are o descriere
+teams.settings=Setări
+teams.owners_permission_desc=Proprietarii au acces complet la toate depozitele și au drepturi de administrator pentru organizație.
+teams.members=Membrii echipei
+teams.update_settings=Actualizeaza setari
+teams.delete_team=Șterge această echipă
+teams.add_team_member=Adăugați un membru al echipei
+teams.delete_team_title=Ștergerea echipei
+teams.delete_team_desc=Deoarece această echipă va fi eliminată, este posibil ca membrii ei să nu mai aibă acces la anumite depozite. Doriți să continuați?
+teams.delete_team_success=Echipa dată a fost ștearsă cu succes.
+teams.read_permission_desc=Apartenența la această echipă acordă acces Citește: membrii pot vizualiza și clona depozitele echipei.
+teams.write_permission_desc=Apartenența la această echipă acordă acces de Scriere: membrii pot citi din depozitele echipei și pot face push către acestea.
+teams.admin_permission_desc=Apartenența la această echipă acordă acces Admin: membrii pot citi din, pot face push și pot adăuga colaboratori la depozitele echipei.
+teams.repositories=Depozitele echipei
+teams.search_repo_placeholder=Căutare depozit...
+teams.add_team_repository=Adăugați depozitul echipei
+teams.remove_repo=Sterge
+teams.add_nonexistent_repo=Depozitul pe care încercați să îl adăugați nu există, vă rugăm să îl creați mai întâi.
+
+[admin]
+dashboard=Prezentare generală
+users=Utilizatori
+organizations=Organizații
+repositories=Repozitorii
+authentication=Autentificări
+config=Configurare
+notices=Notificări de sistem
+monitor=Monitorizare
+first_page=Prima
+last_page=Ultima
+total=Total: %d
+
+dashboard.build_info=Informații despre compilare
+dashboard.app_ver=Versiunea aplicației
+dashboard.git_version=Versiune git
+dashboard.go_version=versiune Go
+dashboard.build_time=Timp de compilare
+dashboard.build_commit=Construiți commit
+dashboard.statistic=Statistici
+dashboard.operations=Operații
+dashboard.system_status=Starea monitorului de sistem
+dashboard.statistic_info=Baza de date Gogs conține %d utilizatori, %d organizații, %d chei publice, %d depozite, %d ceasuri, %d stele, %d acțiuni, %d accesări; %d probleme, %d comentarii, %d conturi sociale, %d urmează, %d oglinzi, %d lansări, %d surse de autentificare %d webhooks, %d repere %d etichete, %d sarcini de cârlik, %d echipe, %d sarcini de actualizare, %d atașamente.
+dashboard.operation_name=Numele Operației
+dashboard.operation_switch=Schimbă
+dashboard.select_operation_to_run=Vă rugăm să selectați operațiunea de executat
+dashboard.operation_run=Rulează
+dashboard.clean_unbind_oauth=Curățați OAuthes fără legătură
+dashboard.clean_unbind_oauth_success=Toate OAuthes unbind au fost șterse cu succes.
+dashboard.delete_inactivate_accounts=Șterge toate conturile inactive
+dashboard.delete_inactivate_accounts_success=Toate conturile inactivate au fost șterse cu succes.
+dashboard.delete_repo_archives=Ștergeți toate arhivele depozitelor
+dashboard.delete_repo_archives_success=Toate arhivele depozitelor au fost șterse cu succes.
+dashboard.delete_missing_repos=Ștergeți toate înregistrările de depozit care au pierdut fișiere Git
+dashboard.delete_missing_repos_success=Toate înregistrările depozitelor care au pierdut fișiere Git au fost șterse cu succes.
+dashboard.git_gc_repos=Efectuați colectarea gunoiului pe depozite
+dashboard.git_gc_repos_success=Toate depozitele au efectuat cu succes colectarea gunoiului.
+dashboard.resync_all_sshkeys=Rescrieți fișierul '.ssh/authorized_keys' (atenție: cheile non-Gogs vor fi pierdute)
+dashboard.resync_all_sshkeys_success=Toate cheile publice au fost rescrise cu succes.
+dashboard.resync_all_hooks=Resincronizarea hook-urilor de pre-recepție, actualizare și post-recepție a tuturor depozitelor
+dashboard.resync_all_hooks_success=Toate hook-urile de pre-recepție, actualizare și post-recepție ale depozitelor au fost resincronizate cu succes.
+dashboard.reinit_missing_repos=Reinitializați toate înregistrările de depozit care au pierdut fișiere Git
+dashboard.reinit_missing_repos_success=Toate înregistrările depozitelor care au pierdut fișiere Git au fost reinitializate cu succes.
+
+dashboard.server_uptime=Timp de funcționare a serverului
+dashboard.current_goroutine=Goroutine curente
+dashboard.current_memory_usage=Utilizare Memorie Curentă
+dashboard.total_memory_allocated=Memorie Totală Alocată
+dashboard.memory_obtained=Memorie Obținută
+dashboard.pointer_lookup_times=Timpii de căutare a punctelor
+dashboard.memory_allocate_times=Timpii de alocare a memoriei
+dashboard.memory_free_times=Timpuri fără memorie
+dashboard.current_heap_usage=Utilizarea curentă a Heap
+dashboard.heap_memory_obtained=Memorie Heap obținută
+dashboard.heap_memory_idle=Memorie Heap inactivă
+dashboard.heap_memory_in_use=Memorie Heap în uz
+dashboard.heap_memory_released=Memorie Heap eliberată
+dashboard.heap_objects=Obiecte Heap
+dashboard.bootstrap_stack_usage=Bootstrap Stack Utilizare
+dashboard.stack_memory_obtained=Stack de Memorie Obținută
+dashboard.mspan_structures_usage=Utilizarea Structurilor MSpan
+dashboard.mspan_structures_obtained=Structuri MSpan obținute
+dashboard.mcache_structures_usage=Utilizarea structurilor MCache
+dashboard.mcache_structures_obtained=Structuri MCache Obținute
+dashboard.profiling_bucket_hash_table_obtained=Tabelul Hash Bucket de profilare obținut
+dashboard.gc_metadata_obtained=GC Metadata Obținută
+dashboard.other_system_allocation_obtained=Alte alocări de sistem obținute
+dashboard.next_gc_recycle=Următorul GC Recycle
+dashboard.last_gc_time=De la ultimul GC Time
+dashboard.total_gc_time=Pauză GC totală
+dashboard.total_gc_pause=Pauză GC totală
+dashboard.last_gc_pause=Ultima pauză GC
+dashboard.gc_times=Timpi GC
+
+users.user_manage_panel=Panoul de gestionare a utilizatorilor
+users.new_account=Creați un cont nou
+users.name=Nume
+users.activated=Activat
+users.admin=Administrator
+users.repos=Repo-uri
+users.created=Creat
+users.send_register_notify=Trimiteți notificarea de înregistrare către utilizator
+users.new_success=Noul cont "%s" a fost creat cu succes.
+users.edit=Editați
+users.auth_source=Sursa de autentificare
+users.local=Local
+users.auth_login_name=Autentificare Nume de logare
+users.password_helper=Lăsați-l gol pentru a rămâne neschimbat.
+users.update_profile_success=Profilul contului a fost actualizat cu succes.
+users.edit_account=Editare cont
+users.max_repo_creation=Limita maximă de creare a depozitelor
+users.max_repo_creation_desc=(Setați -1 pentru a utiliza limita globală implicită)
+users.is_activated=Acest cont este activat
+users.prohibit_login=Acest cont este interzis la autentificare
+users.is_admin=Acest cont are permisiuni de administrator
+users.allow_git_hook=Acest cont are permisiuni de a crea hook-uri Git
+users.allow_import_local=Acest cont are permisiunea de a importa depozite locale
+users.update_profile=Actualizați profilul contului
+users.delete_account=Șterge acest cont
+users.still_own_repo=Acest cont are încă proprietate asupra a cel puțin un depozit, trebuie să îl ștergi sau să îl transferi mai întâi.
+users.still_has_org=Acest cont este încă membru în cel puțin o organizație, trebuie să părăsiți sau să ștergeți mai întâi organizațiile.
+users.deletion_success=Contul a fost șters cu succes!
+
+orgs.org_manage_panel=Panou de gestionare a organizației
+orgs.name=Nume
+orgs.teams=Echipe
+orgs.members=Membrii
+
+repos.repo_manage_panel=Panoul de gestionare a depozitelor
+repos.owner=Proprietar
+repos.name=Nume
+repos.private=Privat
+repos.watches=Ceasuri
+repos.stars=Stele
+repos.issues=Probleme
+repos.size=Dimensiune
+
+auths.auth_sources=Surse de autentificare
+auths.new=Adăugați o nouă sursă
+auths.name=Nume
+auths.type=Tip
+auths.enabled=Activat
+auths.default=Prestabilit
+auths.updated=Actualizat
+auths.auth_type=Tipul de Autentificare
+auths.auth_name=Nume de autentificare
+auths.security_protocol=Protocol de Securitate
+auths.domain=Domeniu
+auths.host=Gazdă
+auths.port=Portul
+auths.bind_dn=Legătura DN
+auths.bind_dn_helper=Puteți folosi "%s" ca înlocuitor pentru numele de utilizator, de exemplu, DOM\%s
+auths.bind_password=Conectați parola
+auths.bind_password_helper=Avertisment: Această parolă este stocată în text simplu. Nu utilizați un cont cu privilegii înalte.
+auths.user_base=Baza de căutare a utilizatorilor
+auths.user_dn=Utilizator DN
+auths.attribute_username=Atributul Nume utilizator
+auths.attribute_username_placeholder=Lăsați gol pentru a utiliza valoarea câmpului formularului de conectare pentru numele utilizatorului.
+auths.attribute_name=Atributul primului nume
+auths.attribute_surname=Atributul numelui de familie
+auths.attribute_mail=Atributul de e-mail
+auths.verify_group_membership=Verifică apartenența la grup
+auths.group_search_base_dn=Căutare în grup Baza DN
+auths.group_filter=Filtru de grup
+auths.group_attribute_contain_user_list=Atributul de grup care conține o listă de utilizatori
+auths.user_attribute_listed_in_group=Atributul utilizatorului listat în grup
+auths.attributes_in_bind=Preluarea atributelor în contextul Bind DN
+auths.filter=Filtru utilizator
+auths.admin_filter=Filtru Administrator
+auths.ms_ad_sa=Ms Ad SA
+auths.smtp_auth=Tipul de autentificare SMTP
+auths.smtphost=Gazdă SMTP
+auths.smtpport=Portul SMTP
+auths.allowed_domains=Domenii permise
+auths.allowed_domains_helper=Lăsați-l gol pentru a nu restricționa niciun domeniu. Domeniile multiple trebuie separate prin virgulă ','.
+auths.enable_tls=Activează criptarea TLS
+auths.skip_tls_verify=Omite verificarea TLS
+auths.pam_service_name=Numele serviciului PAM
+auths.enable_auto_register=Activați înregistrarea automată
+auths.edit=Editarea setărilor de autentificare
+auths.activated=Această autentificare este activată
+auths.default_auth=Această autentificare este sursa implicită de autentificare
+auths.new_success=Noua autentificare '%s' a fost adăugată cu succes.
+auths.update_success=Setarea de autentificare a fost actualizată cu succes.
+auths.update=Actualizarea setărilor de autentificare
+auths.delete=Ștergeți această autentificare
+auths.delete_auth_title=Autentificare Ștergere
+auths.delete_auth_desc=Această autentificare va fi ștearsă, doriți să continuați?
+auths.still_in_used=Această autentificare este încă utilizată de unii utilizatori, vă rugăm să ștergeți sau să convertiți mai întâi acești utilizatori la un alt tip de autentificare.
+auths.deletion_success=Autentificarea a fost ștearsă cu succes!
+auths.login_source_exist=Sursa de autentificare '%s' există deja.
+auths.github_api_endpoint=Sfârșit API
+
+config.not_set=(nesetată)
+config.server_config=Configurare server
+config.brand_name=Numele mărcii
+config.run_user=Rulați Utilizatorul
+config.run_mode=Mod rulare
+config.server.external_url=URL-ul extern
+config.server.domain=Domeniu
+config.server.protocol=Protocol
+config.server.http_addr=Adresă HTTP
+config.server.http_port=Portul HTTP
+config.server.cert_file=Fișier certificat
+config.server.key_file=Fișier cheie
+config.server.tls_min_version=Versiunea TLS minimă
+config.server.unix_socket_permission=Permisiune socket Unix
+config.server.local_root_url=URL root local
+config.server.offline_mode=Mod offline
+config.server.disable_router_log=Dezactivați jurnalul routerului
+config.server.enable_gzip=Activați Gzip
+config.server.app_data_path=Calea de date a aplicației
+config.server.load_assets_from_disk=Încărcați active de pe disc
+config.server.landing_url=URL de destinație
+
+config.ssh_config=configurare SSH
+config.ssh.enabled=Activat
+config.ssh.domain=Domeniul expus
+config.ssh.port=Portul expus
+config.ssh.root_path=Calea root-ului
+config.ssh.keygen_path=Calea Keygen
+config.ssh.key_test_path=Calea de testare a cheii
+config.ssh.minimum_key_size_check=Verificarea dimensiunii minime a cheii
+config.ssh.minimum_key_sizes=Dimensiunile minime ale cheilor
+config.ssh.rewrite_authorized_keys_at_start=Rescrie "Autorized_keys" la pornire
+config.ssh.start_builtin_server=Porniți serverul încorporat
+config.ssh.listen_host=Ascultați gazda
+config.ssh.listen_port=Ascultați portul
+config.ssh.server_ciphers=Cifre server
+config.ssh.server_macs=MAC-uri server
+config.ssh.server_algorithms=Algoritmi de server
+
+config.repo_config=Configurarea depozitului
+config.repo.root_path=Calea root-ului
+config.repo.script_type=Tipul script-ului
+config.repo.ansi_chatset=Set de caractere ANSI
+config.repo.force_private=Forțează privat
+config.repo.max_creation_limit=Limită de creare maximă
+config.repo.preferred_licenses=Licențe preferate
+config.repo.disable_http_git=Dezactivează Git HTTP
+config.repo.enable_local_path_migration=Activați migrarea căii locale
+config.repo.enable_raw_file_render_mode=Activați modul de redare a fișierelor brute
+config.repo.commits_fetch_concurrency=Concurența de preluare a angajamentelor
+config.repo.editor.line_wrap_extensions=Extensii de linie de editor
+config.repo.editor.previewable_file_modes=Moduri de fișier previzualizabile de editor
+config.repo.upload.enabled=Încărcare activată
+config.repo.upload.temp_path=Încărcați calea temporară
+config.repo.upload.allowed_types=Tipuri permise de încărcare
+config.repo.upload.file_max_size=Limitare încarcare în funție de mărime
+config.repo.upload.max_files=Limita de încărcare a fișierelor
+
+config.db_config=Configurare Bază de date
+config.db.type=Tip
+config.db.host=Gazdă
+config.db.name=Nume
+config.db.schema=Schemă
+config.db.schema_helper=(doar pentru "postgres")
+config.db.user=Utilizator
+config.db.ssl_mode=Mod SSL
+config.db.ssl_mode_helper=(doar pentru "postgres")
+config.db.path=Cale
+config.db.path_helper=(doar pentru "sqlite3")
+config.db.max_open_conns=Maximul de conexiuni deschise
+config.db.max_idle_conns=Numărul maxim de conexiuni inactive
+
+config.security_config=Configurație de securitate
+config.security.login_remember_days=Autentificare amintiți-vă zile
+config.security.cookie_remember_name=Amintiți-vă cookie-ul
+config.security.cookie_username=Cookie de nume de utilizator
+config.security.cookie_secure=Activați cookie-ul securizat
+config.security.reverse_proxy_auth_user=Antet de autentificare proxy inversat
+config.security.enable_login_status_cookie=Activați cookie-ul de stare de conectare
+config.security.login_status_cookie_name=Cookie de stare de autentificare
+config.security.local_network_allowlist=Rețeaua locală lista de permise
+
+config.email_config=Configurație e-mail
+config.email.enabled=Activat
+config.email.subject_prefix=Prefixul subiectului
+config.email.host=Gazdă
+config.email.from=De la
+config.email.user=Utilizator
+config.email.disable_helo=Dezactivează HELO
+config.email.helo_hostname=HELO nume de gazdă
+config.email.skip_verify=Treceți peste verificarea certificatului
+config.email.use_certificate=Utilizați un certificat personalizat
+config.email.cert_file=Fișier certificat
+config.email.key_file=Fișier cheie
+config.email.use_plain_text=Utilizați text simplu
+config.email.add_plain_text_alt=Adăugați o alternativă de text simplu
+config.email.send_test_mail=Trimiteți un e-mail de testare
+config.email.test_mail_failed=Nu a reușit să trimită un e-mail de test către '%s': %v
+config.email.test_mail_sent=E-mailul de test a fost trimis la '%s'.
+
+config.auth_config=Configurația de autentificare
+config.auth_custom_logout_url=Custom logout URL
+config.auth.activate_code_lives=Activați viețile de cod
+config.auth.reset_password_code_lives=Resetează viețile codului parolei
+config.auth.require_email_confirm=Solicită confirmarea prin e-mail
+config.auth.require_sign_in_view=Necesită semn în vedere
+config.auth.disable_registration=Dezactivarea înregistrării
+config.auth.enable_registration_captcha=Activați captcha de înregistrare
+config.auth.enable_reverse_proxy_authentication=Activați autentificarea proxy-ului invers
+config.auth.enable_reverse_proxy_auto_registration=Activați înregistrarea automată a proxy-ului invers
+config.auth.reverse_proxy_authentication_header=Antet de autentificare proxy inversat
+
+config.user_config=Configurația utilizatorului
+config.user.enable_email_notify=Activați notificarea prin e-mail
+
+config.session_config=Configurația sesiunii
+config.session.provider=Furnizor
+config.session.provider_config=Configurația furnizorului
+config.session.cookie_name=Cookie
+config.session.https_only=Doar HTTPS
+config.session.gc_interval=Interval GC
+config.session.max_life_time=Timp maxim de viață
+config.session.csrf_cookie_name=Cookie CSRF
+
+config.cache_config=Configurația cache-ului
+config.cache.adapter=Adaptor
+config.cache.interval=Interval GC
+config.cache.host=Gazdă
+
+config.http_config=Configurație HTTP
+config.http.access_control_allow_origin=Controlul accesului permite originea
+
+config.attachment_config=Configurația atașamentului
+config.attachment.enabled=Activat
+config.attachment.path=Cale
+config.attachment.allowed_types=Tipuri permise
+config.attachment.max_size=Limita de mărime
+config.attachment.max_files=Limita fişierelor
+
+config.release_config=Configurația de lansare
+config.release.attachment.enabled=Atașament activat
+config.release.attachment.allowed_types=Tipuri permise de atasare
+config.release.attachment.max_size=Limita de dimensiune a atașamentelor
+config.release.attachment.max_files=Limita fişierelor ataşate
+
+config.picture_config=Configurația imaginii
+config.picture.avatar_upload_path=Calea de încărcare a avatarului utilizatorului
+config.picture.repo_avatar_upload_path=Calea de încărcare a avatarului din depozit
+config.picture.gravatar_source=Sursa Gravatar
+config.picture.disable_gravatar=Dezactivați Gravatar
+config.picture.enable_federated_avatar=Activați avatarele federate
+
+config.mirror_config=Mirror configurare
+config.mirror.default_interval=Interval implicit
+
+config.webhook_config=Webhook configurare
+config.webhook.types=Tipuri
+config.webhook.deliver_timeout=Timeout pentru livrare
+config.webhook.skip_tls_verify=Sari peste verificarea TLS
+
+config.git_config=Configurare Git
+config.git.disable_diff_highlight=Dezactivează evidențierea sintaxei diff
+config.git.max_diff_lines=Limita liniilor de diferență (pentru un singur fișier)
+config.git.max_diff_line_characters=Limita de caractere difuze (pentru un singur rând)
+config.git.max_diff_files=Diff file limit (pentru un singur diff)
+config.git.gc_args=Argumentele GC
+config.git.migrate_timeout=Expirare migrare
+config.git.mirror_timeout=Mirror expirarea timpului de preluare
+config.git.clone_timeout=Clonare timp limită
+config.git.pull_timeout=Expirare tragere
+config.git.gc_timeout=GC timp limită de așteptare
+
+config.lfs_config=LFS configurație
+config.lfs.storage=Stocare
+config.lfs.objects_path=Calea obiectelor
+
+config.log_config=Configurație jurnal
+config.log_file_root_path=Calea de root a fişierului jurnal
+config.log_mode=Mod
+config.log_options=Opţiuni
+
+monitor.cron=Sarcini Cron
+monitor.name=Nume
+monitor.schedule=Programul
+monitor.next=Data viitoare
+monitor.previous=Timp anterior
+monitor.execute_times=Timpii de execuție
+monitor.process=Procese de execuție
+monitor.desc=Descriere
+monitor.start=Ora de începere
+monitor.execute_time=Timp de execuție
+
+notices.system_notice_list=Notificări de sistem
+notices.view_detail_header=Vezi detalii notificare
+notices.actions=Acţiuni
+notices.select_all=Selectează toate
+notices.deselect_all=Deselectare toate
+notices.inverse_selection=Inversează selecția
+notices.delete_selected=Şterge selecţia
+notices.delete_all=Șterge toate notificările
+notices.type=Tip
+notices.type_1=Repositoriu
+notices.desc=Descriere
+notices.op=Op.
+notices.delete_success=Notificările de sistem au fost șterse cu succes.
+
+[action]
+create_repo=a creat un repozitoriu %s
+rename_repo=a redenumit repozitoriu din %[1]s în %[3]s
+commit_repo=a împins spre %[3]s la %[4]s
+compare_commits=Vizualizați comparația pentru aceste %d consemnări
+transfer_repo=a transferat repozitoriu %s la %s
+create_issue=`problemă deschisă %s#%[2]s`
+close_issue=`problemă închisă %s#%[2]s`
+reopen_issue=`problemă redeschisă %s#%[2]s`
+comment_issue=`a comentat la problema %s#%[2]s`
+create_pull_request=`a creat cererea de tragere %s#%[2]s`
+close_pull_request=`cerere de tragere închisă %s#%[2]s`
+reopen_pull_request=`redeschisă cererea de tragere %s#%[2]s`
+merge_pull_request=`cerere de tragere comasată %s#%[2]s`
+create_branch=a creat o ramură nouă %[3]s la %[4]s
+delete_branch=ramură ștersă %[2]s la %[3]s
+push_tag=etichetă împinsă %[2]s la %[3]s
+delete_tag=etichetă ștearsă %[2]s la %[3]s
+fork_repo=a bifurcat un repozitoriu la %s
+mirror_sync_push=a sincronizat consemnările de la %[3]s la %[4]s din oglindire
+mirror_sync_create=a sincronizat referință nouă %[2]s la %[3]s din oglindire
+mirror_sync_delete=referință sincronizată și ștersă %[2]s la %[3]s din oglindire
+
+[tool]
+ago=în urmă
+from_now=de acum
+now=acum
+1s=1 secundă %s
+1m=1 minut %s
+1h=1 oră %s
+1d=1 zi %s
+1w=1 săptămână %s
+1mon=1 lună %s
+1y=1 an %s
+seconds=%d secunde %s
+minutes=%d minute %s
+hours=%d ore %s
+days=%d zile %s
+weeks=%d săptămâni %s
+months=%d luni %s
+years=%d ani %s
+raw_seconds=secunde
+raw_minutes=minute
+raw_hours=ore
+
+[dropzone]
+default_message=Trage fișierele aici sau apasă pentru a le încărca.
+invalid_input_type=Nu puteți încărca fișiere de acest tip.
+file_too_big=Dimensiunea fişierului ({{filesize}} MB) depăşeşte dimensiunea maximă ({{maxFilesize}} MB).
+remove_file=Remove files
+
diff --git a/conf/locale/locale_ru-RU.ini b/conf/locale/locale_ru-RU.ini
index 80fad15fdf8..5d2ae996a0d 100644
--- a/conf/locale/locale_ru-RU.ini
+++ b/conf/locale/locale_ru-RU.ini
@@ -4,12 +4,11 @@ home=Главная
dashboard=Панель управления
explore=Обзор
help=Помощь
-sign_in=Войти
+sign_in=Вход
sign_out=Выход
sign_up=Регистрация
register=Регистрация
website=Веб-сайт
-version=Версия
page=Страница
template=Шаблон
language=Язык
@@ -24,10 +23,10 @@ re_type=Введите повторно
captcha=Капча
repository=Репозиторий
-organization=Группа
+organization=Организация
mirror=Зеркало
new_repo=Новый репозиторий
-new_migrate=Новая Миграция
+new_migrate=Новая миграция
new_mirror=Новое зеркало
new_fork=Новое ответвление репозитория
new_org=Новая организация
@@ -44,47 +43,56 @@ issues=Задачи
cancel=Отмена
+[status]
+page_not_found=Страница не найдена
+internal_server_error=Внутренняя ошибка сервера
+
[install]
install=Установка
title=Установочные шаги для первого запуска
docker_helper=Если вы запускаете Gogs внутри Docker, пожалуйста прочтите эти советы внимательно перед тем как что-либо изменить на этой странице!
-requite_db_desc=Gogs требует MySQL, PostgreSQL, SQLite3 или TiDB.
+requite_db_desc=Для работы Gogs требуется MySQL, PostgreSQL, SQLite3 или TiDB (по протоколу MySQL).
db_title=Настройки базы данных
db_type=Тип базы данных
host=Хост
user=Пользователь
password=Пароль
db_name=Имя базы данных
+db_schema=Схема
db_helper=Для MySQL используйте тип таблиц InnoDB с кодировкой utf8_general_ci.
ssl_mode=Режим SSL
path=Путь
-sqlite_helper=Путь к файлу базы данных SQLite3 или TiDB. Укажите абсолютный путь при запуске в качестве службы.
-err_empty_db_path=Путь к базе данных SQLite3 или TiDB не может быть пустым.
-err_invalid_tidb_name=Имя базы данных TiDB не может содержать символы "." и "-".
+sqlite_helper=Путь к файлу базы данный SQLite3. Пожалуйста, используйте абсолютный путь если Gogs запускается как сервис.
+err_empty_db_path=Путь к файлу базы данных SQLite3 не может быть пустым.
no_admin_and_disable_registration=Вы не можете отключить регистрацию до создания учетной записи администратора.
err_empty_admin_password=Пароль администратора не может быть пустым.
general_title=Общие параметры Gogs
app_name=Имя приложения
app_name_helper=Укажите здесь название вашей потрясающей организации!
-repo_path=Путь корня репозитория
+repo_path=Основной путь репозитория
repo_path_helper=Все сетевые репозитории Git будут сохранены в этой директории.
run_user=Пользователь
run_user_helper=У пользователя должен быть доступ к пути к корню репозитория и к запуску Gogs.
domain=Домен
domain_helper=Влияет на URL-адреса для клонирования по SSH.
ssh_port=SSH порт
-ssh_port_helper=Номер порта, который использует SSH сервер. Оставьте пустым, чтобы отключить SSH.
+ssh_port_helper=Номер порта, который использует сервер SSH. Оставьте пустым, чтобы отключить SSH.
+use_builtin_ssh_server=Использовать встроенный сервер SSH
+use_builtin_ssh_server_popup=Запустить встроенный SSH сервер для различения операций Git и системного демона SSH.
http_port=Порт HTTP
http_port_helper=Номер порта, который приложение будет слушать.
app_url=URL приложения
app_url_helper=Этот параметр влияет на URL для клонирования по HTTP/HTTPS и на адреса в электронной почте.
log_root_path=Путь к журналу
log_root_path_helper=Каталог для записи файлов журнала.
+enable_console_mode=Включите режим консоли
+enable_console_mode_popup=В дополнение к файловому режиму, выводить лог в консоль.
+default_branch=Ветка по умолчанию
optional_title=Расширенные настройки
email_title=Настройки службы электронной почты
-smtp_host=Узел SMTP
+smtp_host=Хост SMTP
smtp_from=Из
smtp_from_helper=Почта от адреса, RFC 5322. Это может быть email адрес или формат "Имя" .
mailer_user=Электронная почта отправителя
@@ -95,16 +103,16 @@ server_service_title=Сервер и другие настройки служб
offline_mode=Включение офлайн режима
offline_mode_popup=Отключить CDN даже в производственном режиме, все файлы ресурсов будут раздаваться локально.
disable_gravatar=Отключить службу Gravatar
-disable_gravatar_popup=Отключить Gravatar и пользовательские источники, все аватары по-умолчанию загружаются пользователями.
+disable_gravatar_popup=Отключить Gravatar и пользовательские источники. Используются аватары, загружаемые пользователями, или аватары по умолчанию.
federated_avatar_lookup=Включить поиск внешних Аватаров
-federated_avatar_lookup_popup=Enable federated avatars lookup to use federated open source service based on libravatar.
+federated_avatar_lookup_popup=Включите Поиск федеративного аватара для использования федеративной службы с открытым исходным кодом на основе libravatar.
disable_registration=Отключить самостоятельную регистрацию
disable_registration_popup=Запретить пользователям самостоятельную регистрацию, только администратор может создавать аккаунты.
enable_captcha=Включить капчу
enable_captcha_popup=Запрашивать капчу при регистрации пользователя.
require_sign_in_view=Разрешить требовать авторизацию для просмотра страниц
require_sign_in_view_popup=Только авторизированные пользователи могут просматривать страницы, посетители смогут увидеть только ссылку на авторизацию вверху страницы.
-admin_setting_desc=Вы не должны создать учетную запись администратора прямо сейчас, пользователь с ID = 1 получит доступ с правами администратора автоматически.
+admin_setting_desc=Вам не обязательно создавать учетную запись администратора прямо сейчас, пользователь с ID = 1 получит доступ с правами администратора автоматически.
admin_title=Настройки учётной записи администратора
admin_name=Имя пользователя
admin_password=Пароль
@@ -116,7 +124,10 @@ sqlite3_not_available=Ваша версия не поддерживает SQLite
invalid_db_setting=Настройки базы данных не правильные: %v
invalid_repo_path=Недопустимый путь к корню репозитория: %v
run_user_not_match=Текущий пользователь не является пользователем для запуска: %s -> %s
+smtp_host_missing_port=Не указан порт в адресе хоста SMTP.
+invalid_smtp_from=Поле SMTP From неправильное: %v
save_config_failed=Не удалось сохранить конфигурацию: %v
+init_failed=Не удалось инициализировать приложение: %v
invalid_admin_setting=Указан недопустимый параметр учетной записи администратора: %v
install_success=Добро пожаловать! Мы рады, что вы выбрали Gogs. Веселитесь и берегите себя.
invalid_log_root_path=Недопустимый путь для логов: %v
@@ -137,6 +148,7 @@ issues.in_your_repos=В ваших репозиториях
[explore]
repos=Репозитории
users=Пользователи
+organizations=Организации
search=Поиск
[auth]
@@ -145,6 +157,8 @@ register_hepler_msg=Уже есть аккаунт? Авторизуйтесь!
social_register_hepler_msg=Уже есть учетная запись? Свяжите ее с соцсетью!
disable_register_prompt=Извините, возможность регистрации отключена. Пожалуйста, свяжитесь с администратором сайта.
disable_register_mail=К сожалению подтверждение регистрации по почте отключено.
+auth_source=Тип аутентификации
+local=Локальный
remember_me=Запомнить меня
forgot_password=Забыли пароль
forget_password=Забыли пароль?
@@ -153,22 +167,29 @@ confirmation_mail_sent_prompt=Новое письмо для подтвержд
active_your_account=Активируйте свой аккаунт
prohibit_login=Вход запрещен
prohibit_login_desc=Вход для вашей учетной записи был запрещен, пожалуйста, свяжитесь с администратором сайта.
-resent_limit_prompt=Извините, вы уже запросили активацию по электронной почте недавно. Пожалуйста, подождите 3 минуты, а затем повторите попытку.
-has_unconfirmed_mail=Здравствуйте, %s! У вас есть неподтвержденный адрес электронной почты (%s). Если вам не приходило письмо с подтверждением или нужно выслать новое письмо, нажмите на кнопку ниже.
+resent_limit_prompt=Вы уже запрашивали активацию по электронной почте. Пожалуйста, подождите 3 минуты, а затем повторите попытку.
+has_unconfirmed_mail=Здравствуйте, %s! У вас есть неподтвержденный адрес электронной почты (%s). Если вы не получили письмо с подтверждением или нужно выслать новое письмо, нажмите на кнопку ниже.
resend_mail=Нажмите здесь, чтобы переотправить активационное письмо
-email_not_associate=Этот адрес электронной почты не связан ни с одной учетной записью.
send_reset_mail=Нажмите сюда, чтобы отправить письмо для сброса пароля
reset_password=Сброс пароля
invalid_code=Извините, ваш код подтверждения истек или не является допустимым.
reset_password_helper=Нажмите здесь, чтобы сбросить свой пароль
-password_too_short=Длина пароля не менее 6 символов.
+password_too_short=Длина пароля не может быть менее 6 символов.
non_local_account=Нелокальные аккаунты не могут изменить пароль через Gogs.
+login_two_factor=Двухфакторная аутентификация
+login_two_factor_passcode=Код проверки подлинности
+login_two_factor_enter_recovery_code=Введите код двухфакторной аутентификации
+login_two_factor_recovery=Двухфакторная аутентификация
+login_two_factor_recovery_code=Код восстановления
+login_two_factor_enter_passcode=Введите код двухфакторной аутентификации
+login_two_factor_invalid_recovery_code=Код восстановления был использован или не действителен.
+
[mail]
activate_account=Пожалуйста активируйте свой аккаунт
activate_email=Подтвердите адрес своей электронной почты
reset_password=Восстановите ваш пароль
-register_success=Регистрация окончена. Добро пожаловать!
+register_success=Регистрация завершена. Добро пожаловать
register_notify=Добро пожаловать на борт
[modal]
@@ -190,15 +211,16 @@ AuthName=Имя авторизации
AdminEmail=Электронная почта администратора
NewBranchName=Новая ветка
-CommitSummary=Commit summary
+CommitSummary=Резюме коммита
CommitMessage=Зафиксировать сообщение
-CommitChoice=Commit choice
+CommitChoice=Выбор коммита
TreeName=Путь к файлу
Content=Содержимое
require_error=` не может быть пустым.`
-alpha_dash_error=«должен быть допустимым символьным, числовым или dash(-_) значением.»
-alpha_dash_dot_error=«должен быть допустимым символьным, числовым или dash(-_) символами, включая точку.»
+alpha_dash_error=` должен быть допустимым символьным, числовым или dash(-_) значением.`
+alpha_dash_dot_error=` должен быть допустимым символьным, числовым или dash(-_) символами, включая точку.`
+alpha_dash_dot_slash_error=«должен быть допустимым символьным, числовым или dash(-_) символами, включая точку или слэш.»
size_error=` должен быть размер %s.`
min_size_error=«должен содержать по крайней мере %s символов.»
max_size_error=` должен содержать максимум %s символов.`
@@ -207,7 +229,7 @@ url_error=` не является допустимым URL-адресом.`
include_error=` должен содержать '%s'.`
unknown_error=Неизвестная ошибка:
captcha_incorrect=Капча не пройдена.
-password_not_match=Пароли не совпадают.
+password_not_match=Пароль и подтверждение отличаются.
username_been_taken=Имя пользователя занято.
repo_name_been_taken=Имя репозитория занято.
@@ -215,6 +237,7 @@ org_name_been_taken=Название организации занято.
team_name_been_taken=Название команды занято.
email_been_used=Адрес электронной почты уже используется.
username_password_incorrect=Имя пользователя или пароль не правильный.
+auth_source_mismatch=Выбранный источник проверки подлинности не связан с пользователем.
enterred_invalid_repo_name=Пожалуйста, убедитесь, что введено правильное имя репозитория.
enterred_invalid_owner_name=Убедитесь, что введенное имя владельца верное.
enterred_invalid_password=Убедитесь, что введенный пароль верен.
@@ -227,9 +250,9 @@ auth_failed=Ошибка аутентификации: %v
still_own_repo=На вашем аккаунте все еще остается как минимум один репозиторий, сначала вам нужно удалить или передать его.
still_has_org=Вы находитесь в организации, сперва Вам необходимо покинуть ее или удалить.
-org_still_own_repo=Данная организация все еще является владельцем репозиториев, необходимо удалить или переместить их в начале.
+org_still_own_repo=Данная организация все еще является владельцем репозиториев, сначала нужно удалить или переместить их.
-target_branch_not_exist=Целевая ветка не существует
+target_branch_not_exist=Целевая ветка не существует.
[user]
change_avatar=Изменить аватар
@@ -242,19 +265,18 @@ following=Подписан
follow=Подписаться
unfollow=Отписаться
-form.name_reserved=Имя пользователя '%s' зарезервировано.
-form.name_pattern_not_allowed=Имя пользователя «%s» не допускается.
+form.name_not_allowed=Имя пользователя «%s» не допускается.
[settings]
profile=Профиль
password=Пароль
avatar=Аватар
ssh_keys=SSH ключи
-social=Учетные записи в соцсетях
-applications=Приложения
+security=Безопасность
+repos=Репозитории
orgs=Организации
+applications=Приложения
delete=Удалить аккаунт
-uid=UID
public_profile=Открытый профиль
profile_desc=Адрес вашей электронной почты является публичным и будет использован для любых уведомлений, связанных с аккаунтом, а также для любых действий, совершенных через сайт.
@@ -282,7 +304,7 @@ change_password=Сменить пароль
old_password=Текущий пароль
new_password=Новый пароль
retype_new_password=Подтверждение нового пароля
-password_incorrect=Текущий пароль не правильный.
+password_incorrect=Текущий пароль неправильный.
change_password_success=Пароль сменен успешно. Теперь вы можете войти с новым паролем.
password_change_disabled=Нелокальные пользователи не могут изменить свой пароль.
@@ -290,17 +312,18 @@ emails=Адреса электронной почты
manage_emails=Управление адресами электронной почты
email_desc=Ваш основной адрес электронной почты будет использован для уведомлений и других операций.
primary=Основной
-primary_email=Установить как основной
+primary_email=Сделать основным
delete_email=Удалить
email_deletion=Удаление адреса электронной почты
email_deletion_desc=Удаление этого адреса электронной почты, приведет к удалению связанной с вашим аккаунтом, информации. Вы точно хотите продолжить?
email_deletion_success=Адрес электронной почты успешно удален.
+email_deletion_primary=Невозможно удалить основной адрес эл. почты.
add_new_email=Добавить новый адрес электронной почты
add_email=Добавить электронную почту
add_email_confirmation_sent=Новое подтверждение по электронной почте было отправлено '%s', пожалуйста, проверьте свой почтовый ящик в течение следующих %d часов, чтобы завершить процесс подтверждения.
add_email_success=Новый адрес электронной почты успешно добавлен.
-manage_ssh_keys=Управление SSH ключами
+manage_ssh_keys=Управление ключами SSH
add_key=Добавить ключ
ssh_desc=Это список ключей SSH связанных с вашей учетной записью. Удаляйте любые неизвестные вам ключи.
ssh_helper=Нужна помощь? Ознакомьтесь с нашим путеводителем по созданию SSH-ключей или посмотрите решения частых проблем, связанных с SSH.
@@ -320,14 +343,36 @@ no_activity=Еще не применялся
key_state_desc=Этот ключ использовался за последние 7 дней
token_state_desc=Этот токен использовался за последние 7 дней
-manage_social=Управление привязанными учетными записями в соцсетях
-social_desc=Это список привязанных учетных записей в соцсетях. Удаляйте любые неизвестные вам привязки.
-unbind=Отвязать
-unbind_success=Социальная учетная запись отвязана.
+two_factor=Двухфакторная аутентификация
+two_factor_status=Статус:
+two_factor_on=Включено
+two_factor_off=Выключен
+two_factor_enable=Включить
+two_factor_disable=Выключить
+two_factor_view_recovery_codes=Просмотрите и сохранените коды вашего восстановления в надежном месте. Вы можете использовать их в качестве пароля, если потеряете доступ к приложению.
+two_factor_http=Для операций HTTP/HTTPS вы больше не сможете использовать просто имя пользователя и пароль. Пожалуйста, создайте и используйте для подписи ваших запросов Персональный ключ доступа, например, %[3]s.
+two_factor_enable_title=Включить двухфакторную аутентификацию
+two_factor_scan_qr=Пожалуйста, используйте приложения проверки подлинности для сканирования изображения:
+two_factor_or_enter_secret=Или введите кодовое слово:
+two_factor_then_enter_passcode=Затем введите пароль:
+two_factor_verify=Проверить
+two_factor_invalid_passcode=Введенные пароли не совпадают; пожалуйста, повторите попытку!
+two_factor_reused_passcode=Введенный вами пароль уже используется, пожалуйста, попробуйте другой!
+two_factor_enable_error=Ошибка активация двухфакторной аутентификации: %v
+two_factor_enable_success=Двухфакторная аутентификация активирована для вашей учетной записи!
+two_factor_recovery_codes_title=Коды восстановления для двухфакторная аутентификации
+two_factor_recovery_codes_desc=Коды восстановления должны использоваться, когда у вас нет возможности использовать приложение аутентификации. Каждый код восстановления может быть использован один раз, пожалуйста, держите эти коды в надежном месте.
+two_factor_regenerate_recovery_codes=Сгенерировать новые коды восстановления
+two_factor_regenerate_recovery_codes_error=Ошибка создания новых кодов восстановления: %v
+two_factor_regenerate_recovery_codes_success=Новые коды восстановления созданы!
+two_factor_disable_title=Отключить двухфакторную аутентификацию
+two_factor_disable_desc=Уровень безопасности вашего аккаунта понизится после отключения двухфакторной аутентификации. Вы хотите продолжить?
+two_factor_disable_success=Двухфакторная аутентификация выключена!
manage_access_token=Управление Токенами Персонального Доступа
generate_new_token=Создать новый token
tokens_desc=Созданные вами токены могут использоваться для доступа к Gogs API.
+access_token_tips=The personal access token may be used as either username or password. It is recommended to use the "x-access-token" as the username and the personal access token as the password for Git applications.
new_token_desc=Пока что каждый токен будет иметь полный доступ к вашей учетной записи.
token_name=Имя маркера
generate_token=Генерировать маркер
@@ -336,6 +381,16 @@ delete_token=Удалить
access_token_deletion=Удаление личного токена доступа
access_token_deletion_desc=Удаление этого персонального токена доступа приведет к удалению всех связанных прав доступа к приложению. Вы хотите продолжить?
delete_token_success=Персональный токен доступа успешно удален! Не забудьте изменить настройки вашего приложения.
+token_name_exists=Токен с таким именем уже существует.
+
+orgs.none=Вы не состоите ни в одной организации.
+orgs.leave_title=Покинуть организацию
+orgs.leave_desc=Вы потеряете доступ ко всем репозиториям и командам, как только покинете организацию. Вы хотите продолжить?
+
+repos.leave=Выйти
+repos.leave_title=Покинуть репозиторий
+repos.leave_desc=Вы потеряете доступ к репозиторию, после того, как вы его покинете. Вы хотите продолжить?
+repos.leave_success=Вы покинули репозиторий «%s» успешно!
delete_account=Удалить свой аккаунт
delete_prompt=Этим действием вы удалите свою учетную запись навсегда и НЕ СМОЖЕТЕ ее вернуть!
@@ -348,8 +403,10 @@ owner=Владелец
repo_name=Имя репозитория
repo_name_helper=Лучшие названия репозиториев коротки, запоминаемы и уникальны.
visibility=Видимость
-visiblity_helper=Личный репозиторий
-visiblity_helper_forced=Все новые репозитории являются Личными по желанию администратора сайта
+unlisted=Вне списка
+visiblity_helper=Приватный репозиторий
+unlisted_helper=Этот репозиторий Вне списка
+visiblity_helper_forced=Администрация сайта сделала все новые репозитории Приватными
visiblity_fork_helper=(Изменение этого значения затронет все ответвления)
clone_helper=Нужна помощь в клонировании? Посетите страницу помощи!
fork_repo=Ответвить репозиторий
@@ -366,7 +423,7 @@ auto_init=Инициализировать этот репозиторий вы
create_repo=Создать репозиторий
default_branch=Ветка по умолчанию
mirror_prune=Очистить
-mirror_prune_desc=Remove any remote-tracking references that no longer exist on the remote
+mirror_prune_desc=Удалите ссылки на удаленно отслеживаемые объекты, которых больше нет на удаленном сервере
mirror_interval=Интервал зеркалирования (час)
mirror_address=Адрес зеркала
mirror_address_desc=Укажите необходимые учетные данные в адрес.
@@ -374,24 +431,26 @@ mirror_last_synced=Последняя синхронизация
watchers=Наблюдатели
stargazers=Звездочеты
forks=Ответвления
+repo_description_helper=Описание репозитория. Максимальная длина 512 символов.
+repo_description_length=Доступные символы
form.reach_limit_of_creation=У владельца достигнут максимальный предел в %d создаваемых репозиториев.
-form.name_reserved=Имя репозитория '%s' зарезервировано.
-form.name_pattern_not_allowed=Шаблон имени репозитория '%s' не допускается.
+form.name_not_allowed=Имя или шаблон репозитория% q недопустимы.
need_auth=Требуется авторизация
migrate_type=Тип миграции
migrate_type_helper=Этот репозиторий будет зеркалом
migrate_repo=Перенос репозитория
migrate.clone_address=Скопировать адрес
-migrate.clone_address_desc=Это может быть HTTP/HTTPS/GIT адрес или локальный путь на сервере.
+migrate.clone_address_desc=Это может быть HTTP/HTTPS/GIT URL-адрес.
+migrate.clone_address_desc_import_local=Вы также можете мигрировать репозиторий по локальному пути на сервере.
migrate.permission_denied=У вас нет прав на импорт локальных репозиториев.
migrate.invalid_local_path=Недопустимый локальный путь. Возможно он не существует или является не папкой.
+migrate.clone_address_resolved_to_blocked_local_address=Clone address resolved to a local network address that is implicitly blocked.
migrate.failed=Миграция не удалась: %v
mirror_from=зеркало из
forked_from=ответвлено от
-fork_from_self=Вы не можете ответвить репозиторий, так как Вы уже его владелец!
copy_link=Скопировать
copy_link_success=Скопировано!
copy_link_error=Нажмите ⌘-C или Ctrl-C для копирования
@@ -407,25 +466,36 @@ quick_guide=Краткое руководство
clone_this_repo=Клонировать репозиторий
create_new_repo_command=Создать новый репозиторий из командной строки
push_exist_repo=Отправить существующий репозиторий из командной строки
-repo_is_empty=Этот репозиторий пуст, пожалуйста, возвращайтесь позже!
+bare_message=В репозитории еще нет файлов.
-code=Код
+files=Файлы
branch=Ветка
tree=Дерево
filter_branch_and_tag=Фильтр по ветке или тегу
branches=Ветки
tags=Метки
-issues=Обсуждения
+issues=Задачи
pulls=Запросы на слияние
labels=Метки
milestones=Этапы
commits=Коммиты
+git_branches=Ветки
releases=Релизы
file_raw=Исходник
file_history=История
file_view_raw=Посмотреть исходник
file_permalink=Постоянная ссылка
file_too_large=Этот файл слишком большой, поэтому он не может быть отображен
+video_not_supported_in_browser=Ваш браузер не поддерживает HTML5 видео тэг.
+
+branches.overview=Обзор
+branches.active_branches=Активные ветки
+branches.stale_branches=Устаревшие ветки
+branches.all=Все ветки
+branches.updated_by=Обновлено %[1]s пользователем %[2]s
+branches.change_default_branch=Change Default Branch
+branches.default_deletion_not_allowed=Cannot delete the default branch.
+branches.protected_deletion_not_allowed=Cannot delete a protected branch.
editor.new_file=Новый файл
editor.upload_file=Загрузить файл
@@ -433,13 +503,13 @@ editor.edit_file=Редактировать файл
editor.preview_changes=Просмотр изменений
editor.cannot_edit_non_text_files=Возможно редактировать только текстовые файлы
editor.edit_this_file=Отредактируйте этот файл
-editor.must_be_on_a_branch=You must be on a branch to make or propose changes to this file
+editor.must_be_on_a_branch=Чтобы сделать или предложить изменения вы должны выбрать ветку
editor.fork_before_edit=Создайте ветку репозитория перед редактированием файла
editor.delete_this_file=Удалить файл
editor.must_have_write_access=Вам необходимо иметь доступ на запись, чтобы вносить или предлагать правки этого файла
-editor.file_delete_success=File '%s' has been deleted successfully!
+editor.file_delete_success=Файл «%s» был успешно удален!
editor.name_your_file=Назовите свой файл...
-editor.filename_help=To add directory, just type it and press /. To remove a directory, go to the beginning of the field and press backspace.
+editor.filename_help=Чтобы добавить каталог, просто наберите название и нажмите /. Чтобы удалить каталог, перейдите к началу поля и нажмите клавишу backspace.
editor.or=или
editor.cancel_lower=отмена
editor.commit_changes=Фиксация изменений
@@ -447,24 +517,27 @@ editor.add_tmpl=Добавить '%s/'
editor.add=Добавить '%s'
editor.update=Обновить '%s'
editor.delete=Удалить '%s'
-editor.commit_message_desc=Add an optional extended description...
-editor.commit_directly_to_this_branch=Commit directly to the %s branch.
-editor.create_new_branch=Create a new branch for this commit and start a pull request.
+editor.commit_message_desc=Добавьте необязательное расширенное описание...
+editor.commit_directly_to_this_branch=Сделайте коммит прямо в ветку %s.
+editor.create_new_branch=Создайте новую ветвь для этого коммита, и сделайте пул запрос.
editor.new_branch_name_desc=Новое название ветки...
editor.cancel=Отмена
editor.filename_cannot_be_empty=Имя файла не может быть пустым.
editor.branch_already_exists=Ветка «%s» уже существует в этом репозитории.
-editor.directory_is_a_file=Entry '%s' in the parent path is a file not a directory in this repository.
-editor.filename_is_a_directory=The filename '%s' is an existing directory in this repository.
-editor.file_editing_no_longer_exists=The file '%s' you are editing no longer exists in the repository.
-editor.file_changed_while_editing=File content has been changed since you started editing. Click here to see what have been changed or press commit again to overwrite those changes.
+editor.directory_is_a_file=Запись «%s» в пути на верх является файлом, а не каталогом этого репозитория.
+editor.file_is_a_symlink=Файл '%s' является символической ссылкой, которая не может быть изменена через веб-редактор.
+editor.filename_is_a_directory=Файл «%s» является каталогом в этом репозитории.
+editor.file_editing_no_longer_exists=Редактируемый вами файл «%s» больше не существует в репозитории.
+editor.file_changed_while_editing=Содержимое файла изменилось со времени начала редактирования. нажмите здесь, чтобы увидеть, что было изменено, или нажмите кнопку commit снова, чтобы перезаписать эти изменения.
editor.file_already_exists=Файл с именем «%s» уже существует в этом репозитории.
editor.no_changes_to_show=Нет изменений.
editor.fail_to_update_file=Не удалось обновить/создать файл «%s» из-за ошибки: %v
+editor.fail_to_delete_file=Не удалось удалить файл «%s» из-за ошибки: %v
editor.add_subdir=Добавьте подкаталог...
editor.unable_to_upload_files=Не удалось загрузить файлы в «%s» из-за ошибки: %v
editor.upload_files_to_dir=Загрузить файлы '%s'
+commits.commit_history=История коммитов
commits.commits=Коммиты
commits.search=Поиск коммитов
commits.find=Найти
@@ -477,7 +550,7 @@ commits.newer=Новее
issues.new=Новая задача
issues.new.labels=Метки
issues.new.no_label=Нет меток
-issues.new.clear_labels=Отчистить метки
+issues.new.clear_labels=Очистить метки
issues.new.milestone=Этап
issues.new.no_milestone=Нет этапа
issues.new.clear_milestone=Очистить этап
@@ -491,10 +564,10 @@ issues.new_label=Новая метка
issues.new_label_placeholder=Имя метки...
issues.create_label=Добавить метку
issues.label_templates.title=Загрузить набор предопределённых меток
-issues.label_templates.info=There aren’t any labels yet. You can click on the "New Label" button above to create one or use a predefined set below.
+issues.label_templates.info=Меток пока нет. Вы можете нажать на кнопку «Создать метку», чтобы создать новую или использовать одну из готового набора ниже.
issues.label_templates.helper=Выберите метку
issues.label_templates.use=Использовать ярлык
-issues.label_templates.fail_to_load_file=Failed to load label template file '%s': %v
+issues.label_templates.fail_to_load_file=Не удалось загрузить файл шаблона метки «%s»: %v
issues.open_tab=%d открыто(ы)
issues.close_tab=%d закрыто(ы)
issues.filter_label=Метка
@@ -522,7 +595,7 @@ issues.next=Следующая страница
issues.open_title=Открыто
issues.closed_title=Закрыто
issues.num_comments=комментариев: %d
-issues.commented_at=`commented %s`
+issues.commented_at=`прокомментировал %s`
issues.delete_comment_confirm=Вы уверены, что хотите удалить этот комментарий?
issues.no_content=Пока нет содержимого.
issues.close_issue=Закрыть
@@ -562,6 +635,7 @@ pulls.compare_compare=сравнить
pulls.filter_branch=Фильтр по ветке
pulls.no_results=Результатов не найдено.
pulls.nothing_to_compare=Нечего сравнивать, родительская и текущая ветка одинаковые.
+pulls.nothing_merge_base=Нечего сравнивать, так так история обеих веток полностью отличается.
pulls.has_pull_request=`Уже существует запрос на слияние между двумя целями: %[2]s#%[3]d`
pulls.create=Создать запрос на слияние
pulls.title_desc=хочет смерджить %[1]d коммит(ов) из %[2]s в %[3]s
@@ -577,8 +651,13 @@ pulls.is_checking=Продолжается проверка конфликтов
pulls.can_auto_merge_desc=Этот запрос на слияние может быть объединён автоматически.
pulls.cannot_auto_merge_desc=Этот запрос на слияние не может быть объединён автоматически.
pulls.cannot_auto_merge_helper=Пожалуйста, совершите слияние вручную для урегулирования конфликтов.
+pulls.create_merge_commit=Создать коммит на слияние
+pulls.rebase_before_merging=Выполнить rebase перед слиянием
+pulls.commit_description=Описание коммита
pulls.merge_pull_request=Слить пулл-реквест
pulls.open_unmerged_pull_exists=`Вы не можете снова открыть, поскольку уже существует запрос на слияние (#%d) из того же репозитория с той же информацией о слиянии и ожидающий слияния. `
+pulls.delete_branch=Удалить ветку
+pulls.delete_branch_has_new_commits=Нельзя удалить ветку, так как она имеет новые коммиты после слияния.
milestones.new=Новая контрольная точка
milestones.open_tab=%d открыты
@@ -629,6 +708,29 @@ settings.collaboration.admin=Администратор
settings.collaboration.write=Запись
settings.collaboration.read=Просмотр
settings.collaboration.undefined=Не определено
+settings.branches=Ветки
+settings.branches_bare=Вы не можете управлять ветками для пустого репозитория. Пожалуйста, сначала создайте что-нибудь.
+settings.default_branch=Ветка по умолчанию
+settings.default_branch_desc=Ветка по-умолчанию считается основной для коммитов, запросов на слияние и онлайн-редактирования.
+settings.update=Обновить
+settings.update_default_branch_unsupported=Изменение ветки по умолчанию не поддерживается в версии Git на сервере.
+settings.update_default_branch_success=Ветка по умолчанию для этого репозитория была успешно изменена!
+settings.protected_branches=Защищенные ветки
+settings.protected_branches_desc=Защитить ветки от принудительного push, случайного удаления и разрешить изменения только коммитерам из белого списка.
+settings.choose_a_branch=Выберите ветку...
+settings.branch_protection=Защита веток
+settings.branch_protection_desc=Пожалуйста, выберите параметры защиты для ветки %s.
+settings.protect_this_branch=Защитить эту ветку
+settings.protect_this_branch_desc=Выключить принудительный push и защитить от удаления.
+settings.protect_require_pull_request=Требовать запрос на слияние вместо прямого push
+settings.protect_require_pull_request_desc=Включите этот параметр для запрета прямого push в это ветку. Коммит должен быть запушен в незащищенную ветку и слит в эту ветку через запрос на слияние.
+settings.protect_whitelist_committers=Белый список тех, кто может делать push в эту ветку
+settings.protect_whitelist_committers_desc=Добавьте людей или команды в белый список для прямого доступа к этой ветке. Пользователи из белого списка будут обходить проверку pull request.
+settings.protect_whitelist_users=Пользователи которые могут делать push в эту ветку
+settings.protect_whitelist_search_users=Поиск пользователей
+settings.protect_whitelist_teams=Команды, члены которых могут делать push в эту ветку
+settings.protect_whitelist_search_teams=Поиск команд
+settings.update_protect_branch_success=Параметры защиты этой ветки были успешно обновлены!
settings.hooks=Автоматическое обновление
settings.githooks=Git хуки
settings.basic_settings=Основные параметры
@@ -641,19 +743,26 @@ settings.change_reponame_prompt=Это изменение повлияет на
settings.advanced_settings=Расширенные настройки
settings.wiki_desc=Включить систему Wiki
settings.use_internal_wiki=Использовать встроенную wiki
+settings.allow_public_wiki_desc=Разрешить публичный доступ к wiki-разделу, если репозиторий приватный
settings.use_external_wiki=Использовать внешнюю Wiki
settings.external_wiki_url=URL-адрес внешней Вики
settings.external_wiki_url_desc=Посетители будут перенаправлены на URL-адрес, когда они кликнут по вкладке.
settings.issues_desc=Включить систему отслеживания ошибок
settings.use_internal_issue_tracker=Использовать встроенную легковесную систему отслеживания ошибок
+settings.allow_public_issues_desc=Разрешить публичный доступ к вопросам, если репозиторий приватный
settings.use_external_issue_tracker=Использовать внешнюю систему отслеживания ошибок
+settings.external_tracker_url=URL внешней системы отслеживания ошибок
+settings.external_tracker_url_desc=Посетители будут перенаправлены на URL когда они нажмут на вкладку.
settings.tracker_url_format=Внешний формат ссылки системы отслеживания ошибок.
settings.tracker_issue_style=Стиль Именования Внешней Системы Учета Задач:
settings.tracker_issue_style.numeric=Цифровой
settings.tracker_issue_style.alphanumeric=Буквенноцифровой
settings.tracker_url_format_desc=Вы можете использовать шаблон {user} {repo} {index} для имени пользователя, репозитория и номера задачи.
-settings.pulls_desc=Включить публичные запросы на слияние
+settings.pulls_desc=Разрешить пул-запросы для принятия изменений между репозиториями и ветками
+settings.pulls.ignore_whitespace=Игнорировать изменения в пробельных символах
+settings.pulls.allow_rebase_merge=Разрешить rebase-слияние
settings.danger_zone=Опасная зона
+settings.cannot_fork_to_same_owner=Вы не можете ответвить репозиторий его же владельцу.
settings.new_owner_has_same_repo=У нового владельца уже есть хранилище с таким названием.
settings.convert=Преобразовать в обычный репозиторий
settings.convert_desc=Это зеркало можно преобразовать в обычный репозиторий. Это не может быть отменено.
@@ -672,7 +781,7 @@ settings.wiki_deletion_success=Данные Вики успешно стерты
settings.delete=Удалить этот репозиторий
settings.delete_desc=Будьте внимательны! Как только вы удалите репозиторий — пути назад не будет.
settings.delete_notices_1=- Эта операция НЕ МОЖЕТ быть отменена.
-settings.delete_notices_2=- Эта операция навсегда удалит всё из этого репозитория, включая данные Git, связанные с ним задачи, комментарии и права доступа для сотрудников.
+settings.delete_notices_2=- Эта операция удалит все в этом репозитории, включая данные Git, задачи, комментарии и доступы для соавторов.
settings.delete_notices_fork_1=- Все отвлетвления станут независимыми после удаления.
settings.deletion_success=Репозиторий был успешно удалён!
settings.update_settings_success=Настройки репозитория обновлены успешно.
@@ -688,20 +797,25 @@ settings.collaborator_deletion_desc=Этот пользователь больш
settings.remove_collaborator_success=Соавтор был удален.
settings.search_user_placeholder=Поиск пользователя...
settings.org_not_allowed_to_be_collaborator=Организации не могут быть добавлены как соавторы.
-settings.user_is_org_member=Пользователь является членом организации, члены которой не могут быть добавлены в качестве соавтора.
-settings.add_webhook=Добавить Webhook
settings.hooks_desc=Webhooks позволяют внешним службам получать уведомления при возникновении определенных событий на Gogs. При возникновении указанных событий мы отправим запрос POST на каждый заданный вами URL. Узнать больше можно в нашем Руководстве по Webhooks.
+settings.webhooks.add_new=Добавьте новый веб-перехватчик:
+settings.webhooks.choose_a_type=Выберите тип...
+settings.add_webhook=Добавить Webhook
settings.webhook_deletion=Удалить веб-хук
settings.webhook_deletion_desc=Удаление этого веб-хука приведет к удалению всей, связанной с ним, информации, включая историю. Хотите продолжить?
settings.webhook_deletion_success=Веб-хук успешно удален!
settings.webhook.test_delivery=Проверить доставку
settings.webhook.test_delivery_desc=Отправить push для тестирования настройки веб-хуков
settings.webhook.test_delivery_success=Тест веб-хука была добавлен в очередь доставки. Это может занять несколько секунд, прежде чем он отобразится в истории доставки.
+settings.webhook.redelivery=Повторная доставка
+settings.webhook.redelivery_success=Хук задачи «%s» было отправлен в очередь доставки. Обновление статуса в истории может занять некоторое время.
settings.webhook.request=Запрос
settings.webhook.response=Ответ
settings.webhook.headers=Заголовки
settings.webhook.payload=Содержимое запроса
settings.webhook.body=Тело ответа
+settings.webhook.err_cannot_parse_payload_url=Невозможно разобрать URL-адрес полезной нагрузки: %v
+settings.webhook.url_resolved_to_blocked_local_address=Payload URL resolved to a local network address that is implicitly blocked.
settings.githooks_desc=Git-хуки предоставляются Git самим по себе, вы можете изменять файлы поддерживаемых хуков из списка ниже чтобы выполнять внешние операции.
settings.githook_edit_desc=Если хук не активен, будет подставлен пример содержимого. Пустое значение в этом поле приведет к отключению хука.
settings.githook_name=Название Hook'a
@@ -711,6 +825,7 @@ settings.add_webhook_desc=Мы отправим запрос POST
settings.payload_url=URL обработчика
settings.content_type=Тип содержимого
settings.secret=Secret
+settings.secret_desc=Секрет будет отправлен как SHA256 HMAC контента в шестнадцатеричном виде в заголовке X-Gogs-Signature.
settings.slack_username=Имя пользователя
settings.slack_icon_url=URL иконки
settings.slack_color=Цвет
@@ -720,10 +835,20 @@ settings.event_send_everything=Мне нужно все.
settings.event_choose=Позвольте мне выбрать то, что нужно.
settings.event_create=Создать
settings.event_create_desc=Ветка или тэг созданы
-settings.event_pull_request=Запросы на слияние
-settings.event_pull_request_desc=Pull request opened, closed, reopened, edited, assigned, unassigned, label updated, label cleared, or synchronized.
+settings.event_delete=Удалить
+settings.event_delete_desc=Ветка или метка удалена
+settings.event_fork=Ответвить
+settings.event_fork_desc=Репозиторий склонирован
settings.event_push=Push
settings.event_push_desc=Push в репозиторий
+settings.event_issues=Задачи
+settings.event_issues_desc=Задача изменена
+settings.event_pull_request=Запросы на слияние
+settings.event_pull_request_desc=Запрос слияния открыт, закрыт, переоткрыт, изменён, назначен, снят, метка обновлена, метка убрана, добавлен промежуточный этап, убран промежуточный этап или синхронизирован.
+settings.event_issue_comment=Комментарии в задаче
+settings.event_issue_comment_desc=Комментарий создан, изменен или удален.
+settings.event_release=Релиз
+settings.event_release_desc=Релиз опубликован в репозитории.
settings.active=Активен
settings.active_helper=Подробности о событии, вызвавшем срабатывание хука, также будут предоставлены.
settings.add_hook_success=Был добавлен новый webhook.
@@ -733,10 +858,13 @@ settings.delete_webhook=Удалить автоматическое обновл
settings.recent_deliveries=Недавние рассылки
settings.hook_type=Тип перехватчика
settings.add_slack_hook_desc=Добавить интеграцию с Slack в ваш репозиторий.
+settings.add_discord_hook_desc=Добавить интеграцию с Discord в ваш репозиторий.
+settings.add_dingtalk_hook_desc=Добавить интеграцию с Dingtalk в ваш репозиторий.
settings.slack_token=Token
settings.slack_domain=Домен
settings.slack_channel=Канал
settings.deploy_keys=Ключи развертывания
+settings.deploy_keys_helper=Подсказка: если вы хотите добавить личные публичные ключи, сделайте это в настройках вашего аккаунта.
settings.add_deploy_key=Добавить ключ развертывания
settings.deploy_key_desc=Ключи развёртывания доступны только для чтения. Это не то же самое что и SSH-ключи аккаунта.
settings.no_deploy_keys=Вы не добавляли ключи развертывания.
@@ -748,6 +876,8 @@ settings.add_key_success=Новый ключ развертывания '%s' у
settings.deploy_key_deletion=Удалить ключ развертывания
settings.deploy_key_deletion_desc=Удаление ключа развертывания приведет к удалению всех связанных прав доступа к репозиторию. Вы хотите продолжить?
settings.deploy_key_deletion_success=Ключ развертывания успешно удален!
+settings.description_desc=Описание репозитория. Максимальная длина 512 символов.
+settings.description_length=Доступные символы
diff.browse_source=Просмотр исходного кода
diff.parent=Родитель
@@ -766,7 +896,6 @@ release.releases=Релизы
release.new_release=Новый релиз
release.draft=Черновик
release.prerelease=Пре-релиз
-release.stable=Стабильный
release.edit=Редактировать
release.ahead=%d коммитов %s начиная с этого релиза
release.source_code=Исходный код
@@ -805,7 +934,7 @@ invite_someone=Пригласить кого-нибудь
teams=Команды
lower_members=Участники
lower_repositories=Репозитории
-create_new_team=Создать Новую Команду
+create_new_team=Создать новую команду
org_desc=Описание
team_name=Название команды
team_desc=Описание
@@ -813,8 +942,8 @@ team_name_helper=Вы будете использовать это имя для
team_desc_helper=Что это за команда?
team_permission_desc=Какой уровень разрешений должен быть у этой команды?
-form.name_reserved=Наименование организации '%s' зарезервированно.
-form.name_pattern_not_allowed=Шаблон организации '%s' не допускается.
+form.name_not_allowed=Имя или шаблон организации% q недопустимы.
+form.team_name_not_allowed=Имя команды или шаблон% q недопустимы.
settings=Настройки
settings.options=Опции
@@ -835,9 +964,9 @@ settings.hooks_desc=Добавьте автоматическое обновле
members.membership_visibility=Видимость участника команды:
members.public=Публичный
-members.public_helper=Сделать Приватным
+members.public_helper=Сделать приватным
members.private=Приватный
-members.private_helper=Сделать Публичным
+members.private_helper=Сделать публичным
members.member_role=Роль участника:
members.owner=Владелец
members.member=Участник
@@ -886,12 +1015,19 @@ first_page=Первый
last_page=Последний
total=Всего: %d
+dashboard.build_info=Информация о сборке
+dashboard.app_ver=Версия приложения
+dashboard.git_version=Версия Git
+dashboard.go_version=Версия Go
+dashboard.build_time=Время сборки
+dashboard.build_commit=Коммит сборки
dashboard.statistic=Статистика
dashboard.operations=Операции
dashboard.system_status=Статус системного монитора
dashboard.statistic_info=В базе данных Gogs записано %d пользователей, %d организаций, %d публичных ключей, %d репозиториев, %d подписок на репозитории, %d добавлений в избранное, %d действий, %d доступов, %d задач, %d комментариев, %d социальных учетных записей, %d подписок на пользователей, %d зеркал, %d релизов, %d источников входа, %d веб-хуков, %d этапов, %d меток, %d задач хуков, %d команд, %d задач по обновлению, %d присоединенных файлов.
dashboard.operation_name=Наименование Операции
dashboard.operation_switch=Переключить
+dashboard.select_operation_to_run=Пожалуйста, выберите операцию для запуска
dashboard.operation_run=Запуск
dashboard.clean_unbind_oauth=Удалить не привязанные OAUth
dashboard.clean_unbind_oauth_success=Не привязанные OAuth аккаунты успешно удалены.
@@ -905,13 +1041,13 @@ dashboard.git_gc_repos=Выполнить сборку мусора на реп
dashboard.git_gc_repos_success=Сборка мусора на всех репозиториях успешно выполнена.
dashboard.resync_all_sshkeys=Переписать файл «.ssh/authorized_keys» (осторожно: не Gogs ключи будут утеряны)
dashboard.resync_all_sshkeys_success=Были успешно переписаны все открытые ключи.
-dashboard.resync_all_update_hooks=Перезаписать все апдейт-хуки этого репозитория (необходимо, когда изменен путь до папки конфигураций)
-dashboard.resync_all_update_hooks_success=Апдейт-хуки всех репозиториев успешно перезаписаны.
+dashboard.resync_all_hooks=Повторная синхронизация хуков pre-receive, update и post-receive во всех репозиториях
+dashboard.resync_all_hooks_success=Все хуки pre-receive, update и post-receive во всех репозиториях были успешно повторно синхронизированы.
dashboard.reinit_missing_repos=Реинициализировать все репозитории с утерянными Git файлами
dashboard.reinit_missing_repos_success=Все репозитории с утерянными Git файлами успешно реинициализированы.
dashboard.server_uptime=Время непрерывной работы сервера
-dashboard.current_goroutine=Текущий Goroutines
+dashboard.current_goroutine=Текущих Goroutines
dashboard.current_memory_usage=Текущее использование памяти
dashboard.total_memory_allocated=Всего памяти выделено
dashboard.memory_obtained=Памяти использовано
@@ -981,12 +1117,14 @@ repos.private=Приватный
repos.watches=Следят
repos.stars=В избранном
repos.issues=Задачи
+repos.size=Размер
-auths.auth_manage_panel=Панель управления аутнентификациями
+auths.auth_sources=Типы аутентификации
auths.new=Добавить новый источник
auths.name=Имя
auths.type=Тип
auths.enabled=Включено
+auths.default=По умолчанию
auths.updated=Обновлено
auths.auth_type=Тип аутентификации
auths.auth_name=Имя аутентификации
@@ -995,21 +1133,27 @@ auths.domain=Домен
auths.host=Хост
auths.port=Порт
auths.bind_dn=Привязать DN
+auths.bind_dn_helper=Вы можете использовать '%s' для подстановки имени пользователя, например: DOM\%s
auths.bind_password=Привязать пароль
auths.bind_password_helper=Внимание: Этот пароль сохранен в небезопасном виде. Не используйте высоко-привилегированную учетную запись.
auths.user_base=База для поиска пользователя
auths.user_dn=DN пользователя
auths.attribute_username=Атрибут username
auths.attribute_username_placeholder=Оставьте пустым, чтобы использовать имя пользователя для регистрации.
-auths.attribute_name=Имя аттрибута
+auths.attribute_name=Имя атрибута
auths.attribute_surname=Фамилия аттрибута
auths.attribute_mail=Электронная почта аттрибута
+auths.verify_group_membership=Верифицировать членство в группе
+auths.group_search_base_dn=Base DN для поиска группы
+auths.group_filter=Групповой фильтр
+auths.group_attribute_contain_user_list=Атрибут группы, содержащий список пользователей
+auths.user_attribute_listed_in_group=Пользовательский атрибут, перечисленный в группе
auths.attributes_in_bind=Извлечение атрибутов в виде Bind DN
auths.filter=Фильтр пользователя
auths.admin_filter=Фильтр администратора
auths.ms_ad_sa=Ms Ad SA
auths.smtp_auth=Тип аутентификации SMTP
-auths.smtphost=Узел SMTP
+auths.smtphost=Хост SMTP
auths.smtpport=SMTP-порт
auths.allowed_domains=Разрешенные домены
auths.allowed_domains_helper=Оставьте пустым чтобы не ограничивать домены. Несколько доменов должны быть разделены запятыми ','.
@@ -1017,9 +1161,9 @@ auths.enable_tls=Включение шифрования TLS
auths.skip_tls_verify=Пропустить проверку TLS
auths.pam_service_name=Имя службы PAM
auths.enable_auto_register=Включить автоматическую регистрацию
-auths.tips=Советы
auths.edit=Изменить параметры канала аутентификации
auths.activated=Эта аутентификация активирована
+auths.default_auth=Эта аутентификация является источником входа по умолчанию
auths.new_success=Новый канал аутентификации '%s' успешно создан.
auths.update_success=Настройки канала аутентификации успешно сохранены.
auths.update=Обновить параметры аутентификации
@@ -1028,107 +1172,189 @@ auths.delete_auth_title=Удаление канала аутентификаци
auths.delete_auth_desc=Этот канал аутентификации будет удален. Вы уверены что хотите продолжить?
auths.still_in_used=Эта проверка подлинности до сих пор используется некоторыми пользователями, удалите или преобразуйте этих пользователей в другой тип входа в систему.
auths.deletion_success=Канал аутентификации успешно удален!
+auths.login_source_exist=Источник входа '%s' уже существует.
+auths.github_api_endpoint=Конечная точка API
+config.not_set=(не задано)
config.server_config=Конфигурация сервера
-config.app_name=Имя приложения
-config.app_ver=Версия приложения
-config.app_url=URL приложения
-config.domain=Домен
-config.offline_mode=Автономный режим
-config.disable_router_log=Отключение журнала маршрутизатора
+config.brand_name=Название бренда
config.run_user=Запуск пользователем
config.run_mode=Режим выполнения
-config.repo_root_path=Путь до корня репозитория
-config.static_file_root_path=Статичный путь до файла
-config.log_file_root_path=Путь до папки с логами
-config.script_type=Тип сценария
-config.reverse_auth_user=Заголовок с именем пользователя для авторизации на reverse proxy
+config.server.external_url=Внешний URL
+config.server.domain=Домен
+config.server.protocol=Протокол
+config.server.http_addr=HTTP адрес
+config.server.http_port=Порт HTTP
+config.server.cert_file=Файл сертификата
+config.server.key_file=Файл ключа
+config.server.tls_min_version=Минимальная версия TLS
+config.server.unix_socket_permission=Разрешение сокета Unix
+config.server.local_root_url=Локальный корневой URL
+config.server.offline_mode=Автономный режим
+config.server.disable_router_log=Отключить журнал маршрутизатора
+config.server.enable_gzip=Включить Gzip
+config.server.app_data_path=Путь к данным приложения
+config.server.load_assets_from_disk=Загрузить ассеты с диска
+config.server.landing_url=Landing URL
config.ssh_config=Конфигурация SSH
-config.ssh_enabled=Включено
-config.ssh_start_builtin_server=Запустить встроенный сервер
-config.ssh_domain=Домен
-config.ssh_port=Порт
-config.ssh_listen_port=Прослушиваемый порт
-config.ssh_root_path=Корневой путь
-config.ssh_key_test_path=Путь к тестовому ключу
-config.ssh_keygen_path=Путь к генератору ключей ('ssh-keygen')
-config.ssh_minimum_key_size_check=Минимальный размер ключа проверки
-config.ssh_minimum_key_sizes=Минимальные размеры ключа
+config.ssh.enabled=Включено
+config.ssh.domain=Выделенный домен
+config.ssh.port=Выделенный порт
+config.ssh.root_path=Корневой путь
+config.ssh.keygen_path=Путь к ключу
+config.ssh.key_test_path=Путь к тестовому ключу
+config.ssh.minimum_key_size_check=Проверка минимальной длины ключа
+config.ssh.minimum_key_sizes=Минимальные размеры ключа
+config.ssh.rewrite_authorized_keys_at_start=Перезаписать "authorized_keys" при запуске
+config.ssh.start_builtin_server=Запустить встроенный сервер
+config.ssh.listen_host=Прослушиваемый хост
+config.ssh.listen_port=Прослушиваемый порт
+config.ssh.server_ciphers=Серверные шифры
+config.ssh.server_macs=MAC-серверы
+config.ssh.server_algorithms=Серверные алгоритмы
+
+config.repo_config=Настройка репозитория
+config.repo.root_path=Корневой путь
+config.repo.script_type=Тип скрипта
+config.repo.ansi_chatset=ANSI-кодировка
+config.repo.force_private=Сделать приватным(и) принудительно
+config.repo.max_creation_limit=Максимальный лимит созданий
+config.repo.preferred_licenses=Предпочтительные лицензии
+config.repo.disable_http_git=Выключить HTTP Git
+config.repo.enable_local_path_migration=Включить миграцию с локального пути
+config.repo.enable_raw_file_render_mode=Включить режим рендеринга необработанных файлов
+config.repo.commits_fetch_concurrency=Commits fetch concurrency
+config.repo.editor.line_wrap_extensions=Расширения переноса строки редактора
+config.repo.editor.previewable_file_modes=Editor previewable file modes
+config.repo.upload.enabled=Загрузка включена
+config.repo.upload.temp_path=Загрузить временный путь
+config.repo.upload.allowed_types=Загрузить разрешённые типы
+config.repo.upload.file_max_size=Ограничение размера файлов для загрузки
+config.repo.upload.max_files=Ограничение файлов для загрузки
config.db_config=Конфигурация базы данных
-config.db_type=Тип
-config.db_host=Хост
-config.db_name=Имя
-config.db_user=Пользователь
-config.db_ssl_mode=Режим SSL
-config.db_ssl_mode_helper=(только для «postgres»)
-config.db_path=Путь
-config.db_path_helper=(для "SQLite3" и "TiDB")
-
-config.service_config=Сервисная конфигурация
-config.register_email_confirm=Требуется подтверждение по электронной почте
-config.disable_register=Отключить регистрацию
-config.show_registration_button=Показать кнопку регистрации
-config.require_sign_in_view=Для просмотра необходима авторизация
-config.mail_notify=Почтовые уведомления
-config.disable_key_size_check=Отключить проверку на минимальный размер ключа
-config.enable_captcha=Включить капчу
-config.active_code_lives=Время жизни кода для активации
-config.reset_password_code_lives=Время жизни кода сброса пароля
-
-config.webhook_config=Настройка автоматического обновления репозиции
-config.queue_length=Длина очереди
-config.deliver_timeout=Задержка доставки
-config.skip_tls_verify=Пропустить TLS проверка
-
-config.mailer_config=Настройки почты
-config.mailer_enabled=Включено
-config.mailer_disable_helo=Отключить HELO
-config.mailer_name=Имя
-config.mailer_host=Сервер
-config.mailer_user=Пользователь
-config.send_test_mail=Отправить тестовое письмо
-config.test_mail_failed=Не удалось отправить тестовое письмо «%s»: %v
-config.test_mail_sent=Тестовое письмо было отправлено «%s».
-
-config.oauth_config=Конфигурация OAuth
-config.oauth_enabled=Включено
-
-config.cache_config=Настройки кеша
-config.cache_adapter=Адаптер кэша
-config.cache_interval=Интервал кэширования
-config.cache_conn=Подключение кэша
+config.db.type=Тип
+config.db.host=Сервер
+config.db.name=Имя
+config.db.schema=Схема
+config.db.schema_helper=(только для "postgres")
+config.db.user=Пользователь
+config.db.ssl_mode=Режим SSL
+config.db.ssl_mode_helper=(только для "postgres")
+config.db.path=Путь
+config.db.path_helper=(только для "sqlite3")
+config.db.max_open_conns=Максимальное количество открытых соединений
+config.db.max_idle_conns=Максимальное количество свободных соединений
+
+config.security_config=Конфигурация безопасности
+config.security.login_remember_days=Запоминать дни входа
+config.security.cookie_remember_name=Запоминать cookie
+config.security.cookie_username=Cookie юзернейма
+config.security.cookie_secure=Включить безопасные cookie
+config.security.reverse_proxy_auth_user=Reverse proxy authentication header
+config.security.enable_login_status_cookie=Включить файл cookie состояния входа
+config.security.login_status_cookie_name=Файл cookie состояния входа
+config.security.local_network_allowlist=Список разрешенных локальных сетей
+
+config.email_config=E-mail настройки
+config.email.enabled=Включено
+config.email.subject_prefix=Префикс темы
+config.email.host=Сервер
+config.email.from=Из
+config.email.user=Пользователь
+config.email.disable_helo=Отключить HELO
+config.email.helo_hostname=HELO имя хоста
+config.email.skip_verify=Пропустить проверку сертификата
+config.email.use_certificate=Использовать собственный сертификат
+config.email.cert_file=Файл сертификата
+config.email.key_file=Файл ключа
+config.email.use_plain_text=Использовать простой текст
+config.email.add_plain_text_alt=Добавить альтернативный текст
+config.email.send_test_mail=Отправить тестовое письмо
+config.email.test_mail_failed=Не удалось отправить тестовое письмо на %s: %v
+config.email.test_mail_sent=Тестовое письмо было отправлено на %s
+
+config.auth_config=Конфигурация аутентификации
+config.auth_custom_logout_url=Custom logout URL
+config.auth.activate_code_lives=Activate code lives
+config.auth.reset_password_code_lives=Срок действия кода сброса пароля
+config.auth.require_email_confirm=Требовать подтверждение по электронной почте
+config.auth.require_sign_in_view=Для просмотра требуется войти
+config.auth.disable_registration=Отключить регистрацию
+config.auth.enable_registration_captcha=Включить CAPTCHA при регистрации
+config.auth.enable_reverse_proxy_authentication=Включить аутентификацию обратного прокси
+config.auth.enable_reverse_proxy_auto_registration=Включить авторегистрацию обратного прокси
+config.auth.reverse_proxy_authentication_header=Заголовок аутентификации обратного прокси
+
+config.user_config=Конфигурация пользователя
+config.user.enable_email_notify=Включить почтовые уведомления
config.session_config=Конфигурация сессии
-config.session_provider=Провайдер сессии
-config.provider_config=Конфигурация провайдера
-config.cookie_name=Имя файла cookie
-config.enable_set_cookie=Включить установку cookies
-config.gc_interval_time=Интервал работы сборщика мусора
-config.session_life_time=Время жизни сессии
-config.https_only=Только HTTPS
-config.cookie_life_time=Время жизни файла cookie
+config.session.provider=Провайдер
+config.session.provider_config=Конфигурация провайдера
+config.session.cookie_name=Файл cookie
+config.session.https_only=Только HTTPS
+config.session.gc_interval=GC interval
+config.session.max_life_time=Максимальный срок действия
+config.session.csrf_cookie_name=CSRF-куки
+
+config.cache_config=Настройки кеша
+config.cache.adapter=Адаптер
+config.cache.interval=GC interval
+config.cache.host=Хост
+
+config.http_config=Конфигурация HTTP
+config.http.access_control_allow_origin=Access control allow origin
+
+config.attachment_config=Конфигурация вложений
+config.attachment.enabled=Включено
+config.attachment.path=Путь
+config.attachment.allowed_types=Разрешенные типы
+config.attachment.max_size=Ограничение размера
+config.attachment.max_files=Ограничение файлов
+
+config.release_config=Конфигурация релиза
+config.release.attachment.enabled=Вложения включены
+config.release.attachment.allowed_types=Разрешенные типы вложений
+config.release.attachment.max_size=Лимит размера вложения
+config.release.attachment.max_files=Лимит файлов вложения
config.picture_config=Настройка изображения
-config.picture_service=Сервис изображений
-config.disable_gravatar=Отключить Gravatar
-config.enable_federated_avatar=Включить внешние Аватары
+config.picture.avatar_upload_path=Путь загрузки пользовательского аватара
+config.picture.repo_avatar_upload_path=Путь загрузки аватара в репозитории
+config.picture.gravatar_source=Источник Gravatar
+config.picture.disable_gravatar=Отключить Gravatar
+config.picture.enable_federated_avatar=Включить федеративные аватары
+
+config.mirror_config=Конфигурация зеркала
+config.mirror.default_interval=Интервал по умолчанию
+
+config.webhook_config=Конфигурация Webhook
+config.webhook.types=Типы
+config.webhook.deliver_timeout=Таймаут доставки
+config.webhook.skip_tls_verify=Пропустить проверку TLS
config.git_config=Конфигурация GIT
-config.git_disable_diff_highlight=Отключить подсветку синтаксиса Diff
-config.git_max_diff_lines=Максимальное количество строк Diff (на файл)
-config.git_max_diff_line_characters=Максимальное количество символов Diff (в строке)
-config.git_max_diff_files=Максимальное количество Diff-файлов (при показе)
-config.git_gc_args=Аргументы GC
-config.git_migrate_timeout=Тайм-аут миграции
-config.git_mirror_timeout=Время Ожидания Обновления Зеркала
-config.git_clone_timeout=Время Ожидания Операции Клонирования
-config.git_pull_timeout=Время Ожидания Операции Извлечения
-config.git_gc_timeout=Время Ожидания Операции Сборки Мусора
+config.git.disable_diff_highlight=Disable diff syntax highlight
+config.git.max_diff_lines=Diff lines limit (for a single file)
+config.git.max_diff_line_characters=Diff characters limit (for a single line)
+config.git.max_diff_files=Diff files limit (for a single diff)
+config.git.gc_args=Аргументы GC
+config.git.migrate_timeout=Таймаут миграции
+config.git.mirror_timeout=Mirror fetch timeout
+config.git.clone_timeout=Таймаут клонирования
+config.git.pull_timeout=Pull timeout
+config.git.gc_timeout=GC timeout
+
+config.lfs_config=Конфигурация LFS
+config.lfs.storage=Хранилище
+config.lfs.objects_path=Путь к объектам
config.log_config=Конфигурация журнала
-config.log_mode=Режим журналирования
+config.log_file_root_path=Путь до папки с логами
+config.log_mode=Режим
+config.log_options=Опции
monitor.cron=Задачи cron
monitor.name=Имя
@@ -1159,38 +1385,46 @@ notices.delete_success=Системное уведомление успешно
create_repo=создал(а) репозиторий %s
rename_repo=переименовал(а) репозиторий из %[1]s на %[3]s
commit_repo=запушил(а) %[3]s в %[4]s
+compare_commits=Просмотр сравнение для этих %d коммитов
+transfer_repo=перенес репозиторий %s в %s
create_issue=`открыл(а) задачу %s#%[2]s`
close_issue=`закрыл(а) задачу %s#%[2]s`
reopen_issue=`возобновил(а) задачу %s#%[2]s`
+comment_issue=`прокомментировал(а) вопрос %s#%[2]s`
create_pull_request=`создал запрос на слияние %s#%[2]s`
close_pull_request=`закрыл запрос на слияние %s#%[2]s`
reopen_pull_request=`открыл снова запрос на слияние %s#%[2]s`
-comment_issue=`прокомментировал(а) вопрос %s#%[2]s`
merge_pull_request=`слил пул реквест %s#%[2]s`
-transfer_repo=перенес репозиторий %s в %s
+create_branch=создал новую ветку %[3]s в %[4]s
+delete_branch=удалил ветку %[2]s в %[3]s
push_tag=запушил(а) метку %[2]s в %[3]s
-compare_commits=Просмотр сравнение для этих %d коммитов
+delete_tag=удален тег %[2]s at %[3]s
+fork_repo=склонировать репозиторий в %s
+mirror_sync_push=синхронизированные коммиты с %[3]s на %[4]s из зеркала
+mirror_sync_create=синхронизированные новые ссылки %[2]s к %[3]s из зеркала
+mirror_sync_delete=синхронизированные и удаленные ссылки %[2]s на %[3]s из зеркала
[tool]
ago=назад
from_now=с этого момента
now=сейчас
1s=1 секунду %s
-1m=1 минута %s
+1m=1 минуту %s
1h=1 час %s
1d=1 день %s
1w=1 неделя %s
1mon=1 месяц %s
1y=1 год %s
-seconds=секунд %[2]s: %[1]d
-minutes=минут %[2]s: %[1]d
+seconds=%d секунд %s
+minutes=%d минут %s
hours=%d часов %s
-days=дней %[2]s: %[1]d
-weeks=недель %[2]s: %[1]d
-months=месяцев %[2]s: %[1]d
-years=лет %[2]s: %[1]d
+days=%d дней %s
+weeks=%d недель %s
+months=%d месяцев %s
+years=%d лет %s
raw_seconds=секунд
raw_minutes=минут
+raw_hours=ч.
[dropzone]
default_message=Перетащите файл сюда, или кликните для загрузки.
diff --git a/conf/locale/locale_sk-SK.ini b/conf/locale/locale_sk-SK.ini
new file mode 100644
index 00000000000..a40f9ffa3b6
--- /dev/null
+++ b/conf/locale/locale_sk-SK.ini
@@ -0,0 +1,1434 @@
+app_desc=A painless self-hosted Git service
+
+home=Domovská stránka
+dashboard=Nástenka
+explore=Prehľadávať
+help=Pomoc
+sign_in=Prihlásiť sa
+sign_out=Odhlásiť sa
+sign_up=Zaregistrovať sa
+register=Registrovať
+website=Web stránka
+page=Stránka
+template=Šablóna
+language=Jazyk
+create_new=Vytvoriť...
+user_profile_and_more=Profil používateľa a ďalšie
+signed_in_as=Prihlásený ako
+
+username=Používateľské meno
+email=E-mail
+password=Heslo
+re_type=Zadajte znova
+captcha=Kontrolný kód
+
+repository=Repozitár
+organization=Organizácia
+mirror=Mirror
+new_repo=Nový repozitár
+new_migrate=Nová migrácia
+new_mirror=Nový mirror
+new_fork=Nový fork repozitára
+new_org=Nová organizácia
+manage_org=Spravovať organizácie
+admin_panel=Admin Panel
+account_settings=Nastavenie účtu
+settings=Nastavenia
+your_profile=Váš profil
+your_settings=Vaše Nastavenia
+
+activities=Aktivity
+pull_requests=Pull Requesty
+issues=Issues
+
+cancel=Zrušiť
+
+[status]
+page_not_found=Page Not Found
+internal_server_error=Internal Server Error
+
+[install]
+install=Inštalácia
+title=Postup prvotnej inštalácie
+docker_helper=Ak spúšťate Gogs pod Docker platformou, prečítajte si prosím pozorne Pokyny skôr, ako zmeníte niečo na tejto stránke!
+requite_db_desc=Gogs requires MySQL, PostgreSQL, SQLite3 or TiDB (via MySQL protocol).
+db_title=Nastavenie databázy
+db_type=Typ databázy
+host=Host
+user=Používateľ
+password=Heslo
+db_name=Názov databázy
+db_schema=Schema
+db_helper=Pre MySQL prosím použite INNODB engine so znakovou sadou utf8_general_ci.
+ssl_mode=SSL režim
+path=Cesta
+sqlite_helper=Cesta k súboru databázy SQLite3 alebo TiDB. Pri spustení ako service, použite prosím absolútnu cestu.
+err_empty_db_path=Cesta SQLite3 databázy nemôže byť prázdna.
+no_admin_and_disable_registration=Nemôžete zakázať registráciu bez vytvorenia administrátorského účtu.
+err_empty_admin_password=Heslo administrátora nemôže byť prázdne.
+
+general_title=Základné nastavenia aplikácie
+app_name=Názov aplikácie
+app_name_helper=Tu zadajte obrovským písmom názov vašej organizácie!
+repo_path=Koreňový adresár repozitára
+repo_path_helper=Do tohto adresára budú uložené všetky vzdialené Git repozitáre.
+run_user=Používateľ pre spustenie aplikácie
+run_user_helper=Používateľ musí mať prístup ku koreňovému adresáru repozitára a práva pre spustenie Gogs.
+domain=Doména
+domain_helper=Toto nastavenie ovplyvňuje URL adresy použité pre SSH clone príkaz.
+ssh_port=SSH Port
+ssh_port_helper=Port ktorý používa váš SSH server. Pre vypnutie SSH funckie ponechajte prázdne.
+use_builtin_ssh_server=Použiť vstavaný SSH Server
+use_builtin_ssh_server_popup=Spustiť vstavaný SSH server pre git operácie, aby bol rozpoznaný od systémovej SSH služby.
+http_port=HTTP Port
+http_port_helper=Port na ktorom bude vaśa aplikácia počúvať.
+app_url=URL adresa aplikácie
+app_url_helper=Toto nastavenie ovplyvňuje URL adresu HTTP/HTTPS clone príkazu a taktiež texty v e-mailoch.
+log_root_path=Cesta k log súborom
+log_root_path_helper=Adresár pre zápis log súborov.
+enable_console_mode=Zapnúť režim konzoly
+enable_console_mode_popup=Okrem zápisu do súboru, vytlačiť systémové záznamy aj do konzoly.
+default_branch=Default Branch
+
+optional_title=Nepovinné nastavenia
+email_title=Nastavenie e-mailovej služby
+smtp_host=SMTP Host
+smtp_from=Od
+smtp_from_helper=E-mailová adresa odosielateľa, RFC 5322. Môže byť buď zadaná len e-mailová adresa, alebo zápis vo formáte "Name" .
+mailer_user=E-mailová adresa odosielateľa
+mailer_password=Heslo odosielateľa
+register_confirm=Povoliť potvrdenie registrácie
+mail_notify=Povoliť e-mailové notifikácie
+server_service_title=Nastavenie servra a ostatných služieb
+offline_mode=Povoliť offline režim
+offline_mode_popup=Zakázať CDN aj v produkčnom režime, všetky súbory budú doručené lokálne.
+disable_gravatar=Zakázať službu Gravatar
+disable_gravatar_popup=Zakázať službu Gravatar a taktiež vlastné zdroje, všetky použité avatary sú buď nahraté používateľom alebo sú použité štandardné.
+federated_avatar_lookup=Povoliť vyhľadávanie ikon užívateľov z verejných zdrojov
+federated_avatar_lookup_popup=Povoliť vyhľadávanie ikon užívateľov z verejných zdrojov pre využitie služieb založených na libravatar.
+disable_registration=Zakázať samostatnú registráciu
+disable_registration_popup=Zakázať samostatnú registráciu používateľov, iba administrátor môže vytvárať kontá.
+enable_captcha=Povoliť Captcha
+enable_captcha_popup=Vyžaduj Captcha validáciu pri samostatnej registrácii používateľa.
+require_sign_in_view=Povoliť vyžiadania prihlásenia pre zobrazenie stránok
+require_sign_in_view_popup=Iba prihlásení požívatelia môžu prezerať stránky, navštevníci budú vidieť iba stránky pre prihlásenie a registráciu.
+admin_setting_desc=Administrátorský účet si nemusíte vytvoriť teraz, používateľovi s ID=1 budú automaticky pridelené administrátorské práva.
+admin_title=Nastavenia administrátorského účtu
+admin_name=Používateľské meno
+admin_password=Heslo
+confirm_password=Potvrdiť heslo
+admin_email=E-mail administrátora
+install_gogs=Nainštalujte Gogs
+test_git_failed=Nepodaril sa test príkazu 'git': %v
+sqlite3_not_available=Vaša verzia nepodporuje SQLite3, stiahnite si oficiálnu binárnu verziu z %s, nie gobuild verziu.
+invalid_db_setting=Nastavenie databázy nie je správne: %v
+invalid_repo_path=Koreňová cesta repozitára je neplatná: %v
+run_user_not_match=Používateľ pre spustenie sa nezhoduje s aktuálnym používateľom: %s -> %s
+smtp_host_missing_port=V adrese SMTP servera chýba číslo portu.
+invalid_smtp_from=Hodnota položky SMTP Od: je nesprávne zadaná: %v
+save_config_failed=Chyba pri uložení konfigurácie: %v
+init_failed=Nepodarilo sa inicializovať aplikáciu: %v
+invalid_admin_setting=Nastavenie administrátorského účtu je neplatné: %v
+install_success=Vitajte! Sme radi, že ste si vybrali Gogs, bavte sa a dávajte si pozor.
+invalid_log_root_path=Koreňový adresár pre log súbory je neplatný: %v
+
+[home]
+uname_holder=Používateľské meno alebo e-mail
+password_holder=Heslo
+switch_dashboard_context=Prepnúť kontext nástenky
+my_repos=Moje repozitáre
+show_more_repos=Zobraziť ďalšie repozitáre...
+collaborative_repos=Kolaboratívne repozitáre
+my_orgs=Moje organizácie
+my_mirrors=Moje mirrory
+view_home=Zobraziť %s
+
+issues.in_your_repos=Vo vašich repozitároch
+
+[explore]
+repos=Repozitáre
+users=Používatelia
+organizations=Organizácie
+search=Hľadať
+
+[auth]
+create_new_account=Vytvoriť nový účet
+register_hepler_msg=Máte už účet? Prihláste sa teraz!
+social_register_hepler_msg=Máte už účet? Bindovať teraz!
+disable_register_prompt=Ospravedlňujeme sa, ale registrácia bola vypnutá. Obráťte sa na administrátora stránky.
+disable_register_mail=Ospravedlňujeme sa, potvrdenie registračného e-mailu bolo vypnuté.
+auth_source=Zdroj overovania
+local=Lokálny
+remember_me=Zapamätať prihlásenie
+forgot_password=Zabudnuté heslo
+forget_password=Zabudli ste heslo?
+sign_up_now=Potrebujete účet? Zaregistrujte sa teraz.
+confirmation_mail_sent_prompt=Nový potvrdzovací e-mail bol odoslaný na %s, v priebehu %d hodín si prosím skontrolujte vašu schránku pre dokončenie procesu registrácie.
+active_your_account=Aktivujte svoj účet
+prohibit_login=Prihlásenie zakázané
+prohibit_login_desc=Váš účet ma zakázané prihlásenie, prosím kontaktuje správcu webu.
+resent_limit_prompt=Ospravedlňujeme sa, ale nedávno ste už požiadali o aktivačný email. Prosím počkajte 3 minúty a potom skúste znova.
+has_unconfirmed_mail=Ahoj %s, tvoja e-mailová adresa (%s) je neoverená. Ak si nedostal potvrdzovací email, alebo je potrebné odoslať nový, klikni na tlačidlo nižšie.
+resend_mail=Kliknite sem pre znovu odoslanie aktivačného emailu
+send_reset_mail=Kliknite sem pre (znovu) odoslanie e-mailu na obnovu hesla
+reset_password=Obnovenie hesla
+invalid_code=Ospravedlňujeme sa, váš potvrdzovací kód vypršal alebo nie je platný.
+reset_password_helper=Kliknite sem pre obnovenie hesla
+password_too_short=Dĺžka hesla nemôže byť menej ako 6 znakov.
+non_local_account=Miestne účty nemôžu meniť heslá cez Gogs.
+
+login_two_factor=Dvojfaktorové overenie
+login_two_factor_passcode=Prístupový kód overenia
+login_two_factor_enter_recovery_code=Zadajte obnovovací kód dvojfaktorového overenia
+login_two_factor_recovery=Obnovenie dvojfaktorového overenia
+login_two_factor_recovery_code=Obnovovací kód
+login_two_factor_enter_passcode=Zadajte prístupový kód dvojfaktorového overenia
+login_two_factor_invalid_recovery_code=Obnovovací kód už bol použitý alebo nie je platný.
+
+[mail]
+activate_account=Aktivujte svoj účet prosím
+activate_email=Overte svoju e-mail adresu
+reset_password=Obnovte si vaše heslo
+register_success=Registrácia úspešná, Vitajte
+register_notify=Vitajte na palube
+
+[modal]
+yes=Áno
+no=Nie
+modify=Upraviť
+
+[form]
+UserName=Používateľské meno
+RepoName=Názov repozitára
+Email=E-mailová adresa
+Password=Heslo
+Retype=Zadajte heslo znova
+SSHTitle=Názov SSH kľúča
+HttpsUrl=HTTPS URL
+PayloadUrl=Payload URL
+TeamName=Názov tímu
+AuthName=Názov autorizácie
+AdminEmail=E-mail administrátora
+
+NewBranchName=Názov novej vetvy
+CommitSummary=Zhrnutie commitu
+CommitMessage=Správa ku commitu
+CommitChoice=Potvrďte výber
+TreeName=Cesta k súboru
+Content=Obsah
+
+require_error=` nemôže byť prázdne.`
+alpha_dash_error=` musí pozostávať z platných alfanumerických znakov alebo pomlčiek(-_).`
+alpha_dash_dot_error=` musí pozostávať z platných alfanumerických znakov, pomlčiek(-_) alebo bodiek.`
+alpha_dash_dot_slash_error=` musí obsahovať iba písmená, číslice, bodku, čiarku, pomlčku, podtržník a lomené. `
+size_error=` musí byť dĺžky %s.`
+min_size_error=` musí obsahovať aspoň %s znakov.`
+max_size_error=` musí obsahovať maximálne %s znakov.`
+email_error=` nie je platná emailová adresa.`
+url_error=nie je platnou URL adresou.
+include_error=musí obsahovať podreťazec"%s".
+unknown_error=Neznáma chyba:
+captcha_incorrect=Captcha overenie sa nezhoduje.
+password_not_match=Heslo a potvrdenie hesla nie sú rovnaké.
+
+username_been_taken=Používateľské meno už bolo použité.
+repo_name_been_taken=Názov repozitára už bol použitý.
+org_name_been_taken=Názov organizácie už bol použitý.
+team_name_been_taken=Názov tímu už bol použitý.
+email_been_used=E-mailová adresa už bola použitá.
+username_password_incorrect=Používateľské meno alebo heslo nie je správne.
+auth_source_mismatch=Vybraný zdroj overenia nieje prepojený s užívateľom.
+enterred_invalid_repo_name=Uistite sa prosím, že názov repozitára, ktorý ste zadali je správny.
+enterred_invalid_owner_name=Uistite sa prosím, že meno vlastníka, ktoré ste zadali je správne.
+enterred_invalid_password=Uistite sa prosím, že heslo ktoré ste zadali je správne.
+user_not_exist=Daný používateľ neexistuje.
+last_org_owner=Odstránenie posledného používateľa z tímu vlastníkov nie je povolené, vždy musí existovať aspoň jeden vlastník v danej organizácii.
+
+invalid_ssh_key=Ospravedlňujeme sa, nie sme schopní overiť Váš SSH kľúč: %s
+unable_verify_ssh_key=Gogs nemôže overiť Váš SSH kľúč, ale predpokladáme, že je platný, prosím overte si to.
+auth_failed=Overenie zlyhalo: %v
+
+still_own_repo=K Vašemu účtu je stále priradené aspoň jedno úložisko. Musíte ho najprv odstrániť alebo previesť na iný účet.
+still_has_org=Váš účet je stále priradený aspoň k jednej organizácii. Musíte najprv zrušiť alebo odstrániť členstvo.
+org_still_own_repo=Táto organizácia stále vlastní repozitáre, musíte ich najskôr odstrániť alebo preniesť.
+
+target_branch_not_exist=Cieľová branch neexistuje.
+
+[user]
+change_avatar=Zmeniť svoj avatar
+join_on=Registrovaný
+repositories=Repozitáre
+activity=Verejné činnosti
+followers=Sledujúci
+starred=Označené hviezdičkou
+following=Sledovaní
+follow=Sledovať
+unfollow=Prestať sledovať
+
+form.name_not_allowed=User name or pattern %q is not allowed.
+
+[settings]
+profile=Profil
+password=Heslo
+avatar=Avatar
+ssh_keys=SSH kľúče
+security=Bezpečnosť
+repos=Repozitáre
+orgs=Organizácie
+applications=Aplikácie
+delete=Odstrániť konto
+
+public_profile=Verejný profil
+profile_desc=Vaša emailová adresa je verejná a bude použitá pre upozornenia vzťahujúce sa k vašemu účtu a akejkoľvek operácii vykonanej pomocou stranky.
+password_username_disabled=Zmena užívateľského mena je možná len pre lokálne vytvorených užívateľov.
+full_name=Celé meno
+website=Web stránka
+location=Poloha
+update_profile=Zmeniť profil
+update_profile_success=Váš profil bol úspešne zmenený.
+change_username=Užívateľské meno zmenené
+change_username_prompt=Táto zmena bude mať vplyv na spôsob akým sa odkazy vzťahujú na váš účet.
+continue=Pokračovať
+cancel=Zrušiť
+
+lookup_avatar_by_mail=Vyhľadávať užívateľskú ikonu podľa emailu
+federated_avatar_lookup=Vyhľadanie ikon užívateľov z verejných zdrojov
+enable_custom_avatar=Povoliť používateľský avatar
+choose_new_avatar=Vybrať nový avatar
+update_avatar=Upraviť nastavenia avatara
+delete_current_avatar=Odstrániť aktuálny avatar
+uploaded_avatar_not_a_image=Nahraný súbor nieje obrázok.
+update_avatar_success=Vaše nastavenie avatara bolo úspešne upravené.
+
+change_password=Zmeniť heslo
+old_password=Súčasné heslo
+new_password=Nové heslo
+retype_new_password=Znova zadajte nové heslo
+password_incorrect=Aktuálne heslo nie je správne.
+change_password_success=Vaše heslo bolo úspešne zmenené. Teraz sa môžete prihlásiť pomocou nového hesla.
+password_change_disabled=Používatelia, ktorý niesú lokálneho typu nemajú povolenú zmenu hesla.
+
+emails=E-mailové adresy
+manage_emails=Spravovať e-mailové adresy
+email_desc=Vaša primárna e-mailová adresa bude použitá pre oznámenia a iné operácie.
+primary=Primárny
+primary_email=Nastaviť ako primárny
+delete_email=Odstrániť
+email_deletion=Odstránenie e-mailu
+email_deletion_desc=Vymazaním tejto emailovej adresy sa odstránia súvisiace informácie z vášho účtu. Chcete pokračovať?
+email_deletion_success=Email bol úspešne odstránený!
+email_deletion_primary=Cannot delete primary email address.
+add_new_email=Pridať novú e-mailovú adresu
+add_email=Pridať email
+add_email_confirmation_sent=Nový email s potvrdením bol odoslaný na '%s', v priebehu nasledovných '%d' hodín si prosím skontrolujte vašu schránku pre dokončenie procesu potvrdenia.
+add_email_success=Vaša nová e-mailová adresa bola úspešne pridaná.
+
+manage_ssh_keys=Spravovať SSH kľúče
+add_key=Pridať kľúč
+ssh_desc=Toto je zoznam SSH kľúčov spojených s vaším účtom. Pretože tieto kľúče umožňujú komukoľvek získať prístup k vaším repozitárom, je veľmi dôležité, aby ste ich poznali.
+ssh_helper=Neviete ako? Pozrite sa na GitHub návod pre vytvorenie SSH kľúčov alebo vyriešte bežné problémy, na ktoré môžete naraziť pomocou SSH.
+add_new_key=Pridať SSH kľúč
+ssh_key_been_used=Obsah verejného kľúča sa používa.
+ssh_key_name_used=Verejný kľúč s rovnakým názvom už existuje.
+key_name=Názov kľúča
+key_content=Obsah
+add_key_success=Nový SSH kľúč '%s' bol úspešne pridaný!
+delete_key=Odstrániť
+ssh_key_deletion=Odstránenie SSH kľúča
+ssh_key_deletion_desc=Odstránením tohto SSH kľúča sa odstránia všetky súvisiace prístupy k tomuto repozitáru. Chcete pokračovať?
+ssh_key_deletion_success=SSH kľúč bol úspešne odstránený!
+add_on=Pridané dňa
+last_used=Naposledy použité
+no_activity=Žiadna nedávna aktivita
+key_state_desc=Tento kľúč sa používa posledných 7 dní
+token_state_desc=Tento token sa používa posledných 7 dní
+
+two_factor=Dvojfaktorové overenie
+two_factor_status=Stav:
+two_factor_on=Zapnuté
+two_factor_off=Vypnuté
+two_factor_enable=Povolené
+two_factor_disable=Zakázané
+two_factor_view_recovery_codes=Uložte vaše obnovovacie kódy na bezpečnom mieste. Môžete ich použiť ako prístupové kódy v prípade, keď stratíte prístup k vašej overovacej aplikácii.
+two_factor_http=Už nebudete mať možnosť použiť vaše prihlasovacie údaje pre operácie cez HTTP/HTTPS. Prosíme, vytvorte a používajte osobný príspupový token ako vaše prístupové údaje, napr. %[3]s.
+two_factor_enable_title=Povoliť dvojfaktorové overovanie
+two_factor_scan_qr=Prosím, použite vašu overovaciu aplikáciu pre naskenovanie tohoto obrázku:
+two_factor_or_enter_secret=Alebo zadajte tajný kód:
+two_factor_then_enter_passcode=Potom zadajte prístupový kód:
+two_factor_verify=Overiť
+two_factor_invalid_passcode=Zadaný prístupový kód nie je platný, prosím, skúste to znova!
+two_factor_reused_passcode=Kód, ktorý ste zadali už bol použitý. Prosím, zkúste iný!
+two_factor_enable_error=Povolenie dvojfaktorového overenia zlyhalo: %v
+two_factor_enable_success=Dvojfaktorové overenie bolo pre Váš účet povolené!
+two_factor_recovery_codes_title=Obnovovacie kódy dvojfaktorového overenia
+two_factor_recovery_codes_desc=Obnovovacie kódy sa používajú, keď dočasne stratíte prístup k vašej overovacej aplikácii. Každý obnovovací kód môže byť použitý iba raz, prosím, uchovajte tieto kódy na bezpečnom mieste.
+two_factor_regenerate_recovery_codes=Znovu vygenerovať obnovovacie kódy
+two_factor_regenerate_recovery_codes_error=Vygenerovanie obnovovacích kódov zlyhalo: %v
+two_factor_regenerate_recovery_codes_success=Nové obnovovacie kódy boli vygenerované!
+two_factor_disable_title=Zakázať dvojfaktorové overenie
+two_factor_disable_desc=Úroveň zabezpečenia Vášho účtu sa s vypnutím dvojfaktorového overenia zníži. Chcete pokračovať?
+two_factor_disable_success=Dvojfaktorové overenie bolo zakázané!
+
+manage_access_token=Spravovať osobné prístupové tokeny
+generate_new_token=Vygenerovať nový token
+tokens_desc=Tokeny, ktoré ste vygenerovali je možné použiť na prístup ku Gogs API.
+access_token_tips=The personal access token may be used as either username or password. It is recommended to use the "x-access-token" as the username and the personal access token as the password for Git applications.
+new_token_desc=Každý token bude mať plný prístup ku vašemu účtu.
+token_name=Názov tokenu
+generate_token=Vygenerovať token
+generate_token_succees=Prístupový token bol úspešne vytvorený! Uistite sa, že si ho skopírujete ihneď, pretože už ho nebudete môcť vidieť znova!
+delete_token=Odstrániť
+access_token_deletion=Odstránenie osobného prístupového tokenu
+access_token_deletion_desc=Zmazaním tohto osobného prístupového tokenu sa zmaže všetok prístup súvisiacej aplikácie. Chcete pokračovať?
+delete_token_success=Osobný prístupový token bol úspešne odstránený! Nezabudnite tiež zmeniť nastavenie vašej aplikácie.
+token_name_exists=Rola s rovnakým monom už existuje
+
+orgs.none=Nieste členom žiadnej organizácie.
+orgs.leave_title=Opustiť organizáciu
+orgs.leave_desc=Opustením organizácie stratíte prístup do všetkých jej repozitárov a k jej týmom. Chcete pokračovať?
+
+repos.leave=Opustiť
+repos.leave_title=Opustiť repozitár
+repos.leave_desc=Potom čo opustíte repozitár, stratíte k nemu prístup. Chcete pokračovať?
+repos.leave_success=Opustili ste repozitár '%s'!
+
+delete_account=Odstrániť účet
+delete_prompt=Táto operácie permanentne odstráni Váš účet a táto zmena nemôže byť vrátená!
+confirm_delete_account=Potvrdenie odstránenia
+delete_account_title=Odstránenie účtu
+delete_account_desc=Tento účet bude trvalo odstránený. Chcete pokračovať?
+
+[repo]
+owner=Vlastník
+repo_name=Názov repozitára
+repo_name_helper=Dobrý názov repozitára sa zvyčajne skladá z krátkych, jedinečných a ľahko zapamätateľných kľúčových slov.
+visibility=Viditeľnosť
+unlisted=Unlisted
+visiblity_helper=Tento repozitár je súkromný
+unlisted_helper=This repository is Unlisted
+visiblity_helper_forced=Správca vynútil na všetkých nových repozitároch, aby boli súkromné
+visiblity_fork_helper=(Zmena tejto hodnoty ovplivní všetky repozitáre rozštiepenia)
+clone_helper=Potrebujete pomôcť z klonovaním? Navštívte nápovedu!
+fork_repo=Forknúť repozitár
+fork_from=Forknúť z
+fork_visiblity_helper=Nemôžete zmeniť viditeľnosť repozitára rozštiepenia.
+repo_desc=Popis
+repo_lang=Jazyk
+repo_gitignore_helper=Vyberte šablony .gitignore
+license=Licencia
+license_helper=Vybrať súbor s licenciou
+readme=Súbor Readme
+readme_helper=Vyberte šablónu súboru README
+auto_init=Založiť tento repozitár s vybranými súbormi a šablonou
+create_repo=Vytvoriť repozitár
+default_branch=Predvolená branch
+mirror_prune=Vyčistiť
+mirror_prune_desc=Odstrániť odkazy sledovania vzdialených vetví, ktoré už vo vzdialenom repozitári neexistujú
+mirror_interval=Interval mirroru (v hodinách)
+mirror_address=Adresa zrkadla
+mirror_address_desc=Prosím, pridajte do adresy potrebné prihlasovacie údaje.
+mirror_last_synced=Naposledy synchronizované
+watchers=Pozorovatelia
+stargazers=Sledujúci
+forks=Forky
+repo_description_helper=Popis repozitára. Maximálna dĺžka 512 znakov.
+repo_description_length=Dostupné znaky
+
+form.reach_limit_of_creation=Vlastník dosiahol maximálneho počtu %d vytvorených repozitárov.
+form.name_not_allowed=Repository name or pattern %q is not allowed.
+
+need_auth=Je potrebná autorizácia
+migrate_type=Typ migrácie
+migrate_type_helper=Tento repozitár bude mirror
+migrate_repo=Migrovať repozitár
+migrate.clone_address=Clone adresa
+migrate.clone_address_desc=Toto nemôže byť HTTP/HTTPS/GIT URL.
+migrate.clone_address_desc_import_local=Máte povolené preniesť repozitár pomocou lokálnej cesty na serveri.
+migrate.permission_denied=Nemáte povolené importovať miestne repozitáre.
+migrate.invalid_local_path=Neplatná miestna cesta, buď neexistuje alebo nie je adresárom.
+migrate.clone_address_resolved_to_blocked_local_address=Clone address resolved to a local network address that is implicitly blocked.
+migrate.failed=Migrácia zlyhala: %v
+
+mirror_from=zrkadlo
+forked_from=forknuté z
+copy_link=Kopírovať
+copy_link_success=Skopírované!
+copy_link_error=Pre skopírovanie stlačte ⌘-C alebo Ctrl-C
+copied=Skopírované OK
+unwatch=Odobrať z pozorovaných
+watch=Pridať medzi pozorované
+unstar=Odstrániť z obľúbených
+star=Hviezda
+fork=Fork
+
+no_desc=Žiadny popis
+quick_guide=Rýchly sprievodca
+clone_this_repo=Klonovať tento repozitár
+create_new_repo_command=Vytvoriť nový repozitár v príkazovom riadku
+push_exist_repo=Odoslať existujúci repozitár z príkazového riadku
+bare_message=Tento repozitár ešte nemá obsah.
+
+files=Súbory
+branch=Branch
+tree=Strom
+filter_branch_and_tag=Filter branche alebo tagu
+branches=Branche
+tags=Tagy
+issues=Issues
+pulls=Pull requesty
+labels=Štítky
+milestones=Míľniky
+commits=Commity
+git_branches=Vetvy
+releases=Vydania
+file_raw=Raw
+file_history=História
+file_view_raw=Zobraziť Raw
+file_permalink=Permanentný odkaz
+file_too_large=Tento súbor je príliš veľký na zobrazenie
+video_not_supported_in_browser=Váš prehliadač nepodporuje značku pre HTML5 video.
+
+branches.overview=Prehľad
+branches.active_branches=Aktívne vetvy
+branches.stale_branches=Zastaralé vetvy
+branches.all=Všetky vetvy
+branches.updated_by=%[2]s zmenil %[1]s
+branches.change_default_branch=Zmeniť základnú vetvu
+branches.default_deletion_not_allowed=Cannot delete the default branch.
+branches.protected_deletion_not_allowed=Cannot delete a protected branch.
+
+editor.new_file=Nový súbor
+editor.upload_file=Nahrať súbor
+editor.edit_file=Upraviť súbor
+editor.preview_changes=Náhľad zmien
+editor.cannot_edit_non_text_files=Netextové súbory nie je možné upravovať
+editor.edit_this_file=Upraviť tento súbor
+editor.must_be_on_a_branch=Musíte mať zvolenú vetvu pre úpravu či návrh zmen tohoto súboru
+editor.fork_before_edit=Musíte vykonať rozštiepenie repozitára pred úpravou súboru
+editor.delete_this_file=Vymazať tento súbor
+editor.must_have_write_access=Musíte mať prístup pre zápis pre robenie alebo navrhovanie zmien tohto súboru
+editor.file_delete_success=Súbor '%s' bol úspešne vymazaný!
+editor.name_your_file=Pomenujte váš súbor...
+editor.filename_help=Pre vloženie adresára jednoducho napíšte meno a pridajte /. Pre odstránenie adresára bežte na začiatok poľa a stlačte backspace.
+editor.or=alebo
+editor.cancel_lower=zrušiť
+editor.commit_changes=Uložiť zmeny do commitu
+editor.add_tmpl=Pridať '%s/'
+editor.add=Pridať '%s'
+editor.update=Aktualizovať "%s"
+editor.delete=Vymazať '%s'
+editor.commit_message_desc=Pridať dobrovoľný rozšírený popis...
+editor.commit_directly_to_this_branch=Zapíšte zmeny revízie priamo do vetvy %s.
+editor.create_new_branch=Vytvoriť novú vetvu pre túto revíziu a vytvoriť požiadavku na sťahnutie.
+editor.new_branch_name_desc=Nový názov vetvy...
+editor.cancel=Zrušiť
+editor.filename_cannot_be_empty=Názov súboru nemôže byť prázdny.
+editor.branch_already_exists=Vetva '%s' už existuje v repozitári.
+editor.directory_is_a_file=Položka '%s' v nadradenej ceste je v tomto repozitári súbor, nie adresár.
+editor.file_is_a_symlink=Súbor '%s' je symbolický odkaz a nemôže byť zmenený pomocou webového editora.
+editor.filename_is_a_directory=Meno súboru '%s' v tomto repozitári už existuje.
+editor.file_editing_no_longer_exists=Súbor '%s' ktorý upravujete, už v tomto repozitári neexistuje.
+editor.file_changed_while_editing=Obsah súboru sa zmenil od začiatku úprav. Kliknutím sem zobrazíte, čo sa zmenilo, alebo stlačte znova zapísať zmeny pre prepísanie zmien.
+editor.file_already_exists=Súbor '%s' už v tomto repozitári existuje.
+editor.no_changes_to_show=Žiadne zmeny k zobrazení.
+editor.fail_to_update_file=Vytvorenie alebo zmena súboru '%s' skončila chybou: '%v'
+editor.fail_to_delete_file=Vymazanie súboru '%s' skončilo chybou: '%v'
+editor.add_subdir=Pridať podadresár...
+editor.unable_to_upload_files=Nepodarilo sa nahrať súbor do '%s'. Chyba: %v
+editor.upload_files_to_dir=Nahrať súbory do '%s'
+
+commits.commit_history=História revízii
+commits.commits=Commity
+commits.search=Vyhľadávanie commitov
+commits.find=Nájsť
+commits.author=Autor
+commits.message=Správa
+commits.date=Dátum
+commits.older=Staršie
+commits.newer=Novšie
+
+issues.new=Nová issue
+issues.new.labels=Štítky
+issues.new.no_label=Žiadne štítky
+issues.new.clear_labels=Zrušiť štítky
+issues.new.milestone=Míľnik
+issues.new.no_milestone=Žiadny míľnik
+issues.new.clear_milestone=Vyčistiť míľnik
+issues.new.open_milestone=Otvorené míľniky
+issues.new.closed_milestone=Uzavreté míľniky
+issues.new.assignee=Priradený
+issues.new.clear_assignee=Odobrať priradeného
+issues.new.no_assignee=Žiadny priradený
+issues.create=Vytvoriť issue
+issues.new_label=Nový štítok
+issues.new_label_placeholder=Názov štítku...
+issues.create_label=Vytvoriť štítok
+issues.label_templates.title=Nahrať preddefinovanú sadu značiek
+issues.label_templates.info=Niesu zadané žiadne značky. Pre vytvorenie novej kliknite na tlačítko "Nová značka" alebo použite preddefinovanú sadu.
+issues.label_templates.helper=Vyberte sadu značiek
+issues.label_templates.use=Použiť túto sadu značiek
+issues.label_templates.fail_to_load_file=Nepodarilo sa nahrať súbor šablóny značiek '%s': %v
+issues.open_tab=%d Otvorených
+issues.close_tab=%d Uzavretých
+issues.filter_label=Štítok
+issues.filter_label_no_select=Žiadny vybratý štítok
+issues.filter_milestone=Míľnik
+issues.filter_milestone_no_select=Žiadny vybratý míľnik
+issues.filter_assignee=Priradený
+issues.filter_assginee_no_select=Žiadny vybraný priradený
+issues.filter_type=Typ
+issues.filter_type.all_issues=Všetky issues
+issues.filter_type.assigned_to_you=Priradené vám
+issues.filter_type.created_by_you=Vami vytvorené
+issues.filter_type.mentioning_you=Hovorí o Vás
+issues.filter_sort=Zoradiť
+issues.filter_sort.latest=Najnovšie
+issues.filter_sort.oldest=Najstaršie
+issues.filter_sort.recentupdate=Nedávno aktualizované
+issues.filter_sort.leastupdate=Dávno aktualizované
+issues.filter_sort.mostcomment=Najviac komentované
+issues.filter_sort.leastcomment=Najmenej komentované
+issues.opened_by=otvorené %[1]s užívateľom %[3]s
+issues.opened_by_fake=otvorené %[1]s užívateľom %[2]s
+issues.previous=Predošlý
+issues.next=Ďalšie
+issues.open_title=Otvorená
+issues.closed_title=Uzavrená
+issues.num_comments=%d komentárov
+issues.commented_at=`okomentoval %s`
+issues.delete_comment_confirm=Ste si istý, že chcete odstrániť tento komentár?
+issues.no_content=Zatiaľ neexistuje žiadny obsah.
+issues.close_issue=Uzavrieť
+issues.close_comment_issue=Pridať komentár a uzavrieť
+issues.reopen_issue=Znovu otvoriť
+issues.reopen_comment_issue=Okomentovať a znovu otvoriť
+issues.create_comment=Komentár
+issues.closed_at=`zatvorené %[2]s`
+issues.reopened_at=`znovu otvorené %[2]s`
+issues.commit_ref_at=`sa odvolal na túto issue z commitu %[2]s`
+issues.poster=Autor
+issues.collaborator=Spolupracovník
+issues.owner=Vlastník
+issues.sign_in_require_desc=Prihláste sa pre zapojenie do konverzácie.
+issues.edit=Upraviť
+issues.cancel=Zrušiť
+issues.save=Uložiť
+issues.label_title=Názov štítka
+issues.label_color=Farba štítka
+issues.label_count=%d štítkov
+issues.label_open_issues=%d otvorené issues
+issues.label_edit=Upraviť
+issues.label_delete=Odstrániť
+issues.label_modify=Zmena štítka
+issues.label_deletion=Odstránenie štítka
+issues.label_deletion_desc=Odstránenie tohoto štítka ho odstráni tiež zo všetkých naväzujúcich úloh. Chcete pokračovať?
+issues.label_deletion_success=Štítok bol úspešne odstránený!
+issues.num_participants=%d účastníkov
+issues.attachment.open_tab=`Kliknite pre zobrazenie "%s" v novej záložke`
+issues.attachment.download=`Kliknite pre sťahnutie "%s"`
+
+pulls.new=Nová požiadavka na stiahnutie
+pulls.compare_changes=Porovnať zmeny
+pulls.compare_changes_desc=Porovnať dve branche a vytvoriť pull request zo zmien.
+pulls.compare_base=base
+pulls.compare_compare=porovnať
+pulls.filter_branch=Filter branche
+pulls.no_results=Neboli nájdené žiadne výsledky.
+pulls.nothing_to_compare=Nieje čo porovnávať, pretože base and head branche sú totožné.
+pulls.nothing_merge_base=Nie je čo porovnať pretože dve vetvy majú úplne odlišnú históriu.
+pulls.has_pull_request=`Požiadavka na sťahnutie medzi týmito vetvami už existuje: %[2]s#%[3]d`
+pulls.create=Vytvoriť požiadavku na stiahnutie
+pulls.title_desc=chce zlúčiť %[1]d revíziu z vetvy %[2]s do vetvy %[3]s
+pulls.merged_title_desc=mergnuté %[1]d commitov z %[2]s do %[3]s %[4]s
+pulls.tab_conversation=Konverzácia
+pulls.tab_commits=Commity
+pulls.tab_files=Zmenené súbory
+pulls.reopen_to_merge=Pre realizáciu operácie zlúčenia znovu otvorte tento pull request prosím.
+pulls.merged=Zlúčené
+pulls.has_merged=Tento pull request bol úspešne zlúčený!
+pulls.data_broken=Dáta tejto požiadavky na stiahnutie boli narušené z dôvodu zmazania informácie o rozštiepení.
+pulls.is_checking=Kontrola rozporov stále pokračuje, prosím obnovte stránku za nejakú dobu.
+pulls.can_auto_merge_desc=Tento pull request je možné automaticky zlúčiť.
+pulls.cannot_auto_merge_desc=Tento pull request nemôže byť automaticky zlúčený pretože obsahuje konflikty.
+pulls.cannot_auto_merge_helper=Prosím zlúčte manuálne pre vyriešenie konfliktov.
+pulls.create_merge_commit=Vytvoriť zlúčenú revíziu
+pulls.rebase_before_merging=Rebase pred zlúčením
+pulls.commit_description=Popis Commitu
+pulls.merge_pull_request=Zlúčiť pull request
+pulls.open_unmerged_pull_exists=`Nemôžete znovu otvoriť požiadavku na stiahnutie, pretože požiadavka na stiahnutie z rovnakého repozitára s rovnakými informáciami pre zlúčenie už existuje (#%d) a čaká na zlúčenie.`
+pulls.delete_branch=Odstrániť vetvu
+pulls.delete_branch_has_new_commits=Vetva nemôže byť odstránená, pretože po zlúčení sú v nej nové revízie.
+
+milestones.new=Nový míľnik
+milestones.open_tab=%d Otvorených
+milestones.close_tab=%d Uzavretých
+milestones.closed=Zatvorený %s
+milestones.no_due_date=Bez termínu dokončenia
+milestones.open=Otvoriť
+milestones.close=Uzavrieť
+milestones.new_subheader=Pre organizáciu vašich issues vytvorte míľniky.
+milestones.create=Vytvoriť míľnik
+milestones.title=Názov
+milestones.desc=Popis
+milestones.due_date=Termín (volitelný)
+milestones.clear=Vyčistiť
+milestones.invalid_due_date_format=Formát dátumu termínu je neplatný, musí byť 'rrrr-mm-dd'.
+milestones.create_success=Milník '%s' bol vytvorený!
+milestones.edit=Upraviť míľnik
+milestones.edit_subheader=Pre míľniky použite lepší popis aby neboli ľudia zmätení.
+milestones.cancel=Zrušiť
+milestones.modify=Upraviť míľnik
+milestones.edit_success=Zmeny milníku '%s' boli uložené!
+milestones.deletion=Vymazanie míľnika
+milestones.deletion_desc=Odstránenie tohto milníka ho odstráni zo všetkých naväzujúcich úloh. Chcete pokračovať?
+milestones.deletion_success=Milník bol odstránený!
+
+wiki=Wiki
+wiki.welcome=Vitajte vo Wiki!
+wiki.welcome_desc=Wiki je miesto pre vašu spoločnú dokumentáciu projektu a návody ako ho zlepšiť.
+wiki.create_first_page=Vytvoriť prvú stránku
+wiki.page=Stránka
+wiki.filter_page=Filter stránky
+wiki.new_page=Vytvoriť novú stránku
+wiki.default_commit_message=Napíšte poznámku o tejto úprave (nepovinné).
+wiki.save_page=Uložiť stránku
+wiki.last_commit_info=%s upravil túto stránku %s
+wiki.edit_page_button=Upraviť
+wiki.new_page_button=Nová stránka
+wiki.delete_page_button=Odstrániť stránku
+wiki.delete_page_notice_1=Toto odstráni stránku "%s". Buďte si prosím istí.
+wiki.page_already_exists=Stránka Wiki s rovnakým názvom už existuje.
+wiki.pages=Stránky
+wiki.last_updated=Naposledy zmenené: %s
+
+settings=Nastavenia
+settings.options=Možnosti
+settings.collaboration=Spolupráca
+settings.collaboration.admin=Admin
+settings.collaboration.write=Zápis
+settings.collaboration.read=Prečítať
+settings.collaboration.undefined=Nedefinované
+settings.branches=Vetvy
+settings.branches_bare=Nemôžete spravovať vetvy pre holý repozitár. Prosím, odošlite najskôr nejaký obsah.
+settings.default_branch=Východzia vetva
+settings.default_branch_desc=Východzia vetva je považovaná za "hlavnú" vetvu pre zápisy zmeny revizií, požiadavky na stiahnutie a on-line úpravy.
+settings.update=Zmeniť
+settings.update_default_branch_unsupported=Zmena východzej vetvy nie je podporovaná verziou Gitu, ktorá je na serveri.
+settings.update_default_branch_success=Východzia vetva tohto repozitára bola zmenená!
+settings.protected_branches=Chránené vetvy
+settings.protected_branches_desc=Ochrana vetví pred vynúteným odoslaním, náhodným odstránením a užívateľmi na schválenom zozname.
+settings.choose_a_branch=Vyberte vetvu...
+settings.branch_protection=Ochrana vetvý
+settings.branch_protection_desc=Prosím vyberte možnosti ochrany vetvy %s.
+settings.protect_this_branch=Chrániť túto vetvu
+settings.protect_this_branch_desc=Vypnúť vynútené odosielanie a zabrániť odstráneniu.
+settings.protect_require_pull_request=Vyžaduje požiadavku na stiahnutie miesto priameho odoslania
+settings.protect_require_pull_request_desc=Táto možnosť zakáže priame odosielanie do vetvy. Revízie musia byť odoslané do inej nechránenej vetvy a zlúčené do tejto vetvy pomocou požiadavku na stiahnutie.
+settings.protect_whitelist_committers=Zoznam užívateľov, ktorí môžu odosielať do tejto vetvy
+settings.protect_whitelist_committers_desc=Pridajte užívateľov a týmy, ktoré majú povolenie odosielať do tejto vetvy. Títo užívatelia môžu obísť kontrolu na požiadavku na stiahnutie.
+settings.protect_whitelist_users=Užívatelia, ktorí môžu odosielať do tejto vetvy
+settings.protect_whitelist_search_users=Vyhľadať užívateľa
+settings.protect_whitelist_teams=Týmy, ktorých členovia môžu odosielať do tejto vetvy
+settings.protect_whitelist_search_teams=Vyhľadať týmy
+settings.update_protect_branch_success=Možnosti ochrany tejto vetvy boli zmenené!
+settings.hooks=Webhooky
+settings.githooks=Git hooky
+settings.basic_settings=Základné nastavenia
+settings.mirror_settings=Nastavenie zrkadla
+settings.sync_mirror=Synchronizovať
+settings.mirror_sync_in_progress=Synchronizácia zrkadiel prebieha, prosím načítajte znova stránku približne za minútu.
+settings.site=Oficiálne stránky
+settings.update_settings=Zmeniť nastavenia
+settings.change_reponame_prompt=Táto zmena ovplyvní vzťah odkazov k repozitári.
+settings.advanced_settings=Pokročilé nastavenia
+settings.wiki_desc=Povoliť systém Wiki
+settings.use_internal_wiki=Použiť vstavaný systém Wiki
+settings.allow_public_wiki_desc=Povoliť verejný prístup k Wiki, ak je repozitár súkromný
+settings.use_external_wiki=Používať externú Wiki
+settings.external_wiki_url=URL externej Wiki
+settings.external_wiki_url_desc=Návštevníci budú po kliknutí na danú záložku presmerovaní na túto URL.
+settings.issues_desc=Povoliť systém úloh
+settings.use_internal_issue_tracker=Povoliť vstavaný odľahčený systém úloh
+settings.allow_public_issues_desc=Povoliť verejný prístup k úlohám, ak sa jedná o súkromný repozitár
+settings.use_external_issue_tracker=Použiť externý systém úloh
+settings.external_tracker_url=URL externej evidencie úloh
+settings.external_tracker_url_desc=Návštevníci budú po kliknutí na danú záložku presmerovaní na túto URL.
+settings.tracker_url_format=Formát URL externého systému úloh
+settings.tracker_issue_style=Štýl pomenovania úloh v externom systéme úloh:
+settings.tracker_issue_style.numeric=Numerická
+settings.tracker_issue_style.alphanumeric=Alfanumerické
+settings.tracker_url_format_desc=Môžete použiť zástupné výrazy {user} {repo} {index} pre užívateľské meno, názov repozitára a číslo úlohy.
+settings.pulls_desc=Enable pull requests to accept contributions between repositories and branches
+settings.pulls.ignore_whitespace=Ignorovať zmeny v prázdnom priestore
+settings.pulls.allow_rebase_merge=Povoliť použitie rebase pre zlúčenie revízií
+settings.danger_zone=Riziková zóna
+settings.cannot_fork_to_same_owner=Nemôžete rozštiepiť repozitár jeho vlastníkovi.
+settings.new_owner_has_same_repo=Nový vlastník už repozitár s rovnakým názvom má. Vyberte, prosím, iné meno.
+settings.convert=Previesť na bežný repozitár
+settings.convert_desc=Môžete previesť toto zrkadlo na bežný repozitár. Táto zmena nemôže byť vrátená.
+settings.convert_notices_1=- Táto operácia prevedie tento zrkadlový repozitár na bežný repozitár a táto zmena nemôže byť vrátená.
+settings.convert_confirm=Potvrdiť prevod
+settings.convert_succeed=Repozitár bol prevedený na bežný typ.
+settings.transfer=Prevod vlastníctva
+settings.transfer_desc=Predať tento repozitár inému užívateľovi alebo organizácii, v ktorej ste správca.
+settings.transfer_notices_1=- Stratíte prístup, pokiaľ nový vlastník je samostatný užívateľ.
+settings.transfer_notices_2=Prístup Vám bude zachovaný, pokiaľ nový vlastník je organizácia a vy ste jedným z vlastníkov.
+settings.transfer_form_title=Zadajte prosím nasledujúce informácie pre potvrdenie operácie:
+settings.wiki_delete=Zmazať Wiki Data
+settings.wiki_delete_desc=Pokiaľ zmažete Wiki data, nebude sa možné vrátiť. Buďte si prosím istý.
+settings.wiki_delete_notices_1=- Toto odstráni a vypne Wiki pre %s
+settings.wiki_deletion_success=Data Wiki tohoto repozitára boli zmazané.
+settings.delete=Odstrániť tento repozitár
+settings.delete_desc=Hneď ako odstránite repozitár, nie je možné vrátiť sa späť, Buďte si prosím istý.
+settings.delete_notices_1=- Tuto operáciu nie je možné vrátiť.
+settings.delete_notices_2=Táto akcia nenávratne vymaže všetko v tomto repozitári, vrátane dát Gitu, úkolov, komentárov a prístupov spolupracovníkov.
+settings.delete_notices_fork_1=- Po odstránení sa všetky forky stanú nezávislé.
+settings.deletion_success=Repozitár bol odstránený!
+settings.update_settings_success=Možnosti repozitára boli zmenené.
+settings.transfer_owner=Nový vlastník
+settings.make_transfer=Spraviť presun
+settings.transfer_succeed=Vlastníctvo repozitára bolo presunuté.
+settings.confirm_delete=Potvrdiť odstránenie
+settings.add_collaborator=Pridať nového spolupracovníka
+settings.add_collaborator_success=Nový spolupracovník bol pridaný.
+settings.delete_collaborator=Odstrániť
+settings.collaborator_deletion=Odstránenie spolupracovníka
+settings.collaborator_deletion_desc=Tento užívateľ po tom, čo bude odstránený, už nebude mať prístup do tohto repozitára pre spoluprácu. Chcete pokračovať?
+settings.remove_collaborator_success=Spolupracovník bol odstránený.
+settings.search_user_placeholder=Hľadať užívateľa...
+settings.org_not_allowed_to_be_collaborator=Nieje dovolené pridať organizáciu ako spolupracovníka.
+settings.hooks_desc=Webové háčiky sú podobné základným spúšťačom HTTP, POST udalostí. Kedykoľvek sa niečo stane v Gogs, bude postarané o oznámenie špecifickému cieľovému serveru. Viac o danom sa dozviete v príručke webových háčikov .
+settings.webhooks.add_new=Add a new webhook:
+settings.webhooks.choose_a_type=Choose a type...
+settings.add_webhook=Pridať webhook
+settings.webhook_deletion=Odstrániť webhook
+settings.webhook_deletion_desc=Odstránením tohto webového háčika sa odstránia všetky informácie o ňom a tiež história volaní. Chcete pokračovať?
+settings.webhook_deletion_success=Webový háčik bol odstránený!
+settings.webhook.test_delivery=Test doručiteľnosti
+settings.webhook.test_delivery_desc=Odoslať falošnú udalosť doručenia odoslania pre text vašeho nastavenia webových háčikov
+settings.webhook.test_delivery_success=Testovací webový háčik bol pridaný do fronty doručenia. Bude to trvať niekoľko sekúnd, než sa ukáže v histórii doručenia.
+settings.webhook.redelivery=Znovu doručenie
+settings.webhook.redelivery_success=Úloha háčikov '%s' bola znova pridaná do doručovacej fronty. Zaberie to približne pár sekúnd, pokiaľ bude zmenený stav doručenia v histórii.
+settings.webhook.request=Požiadavka
+settings.webhook.response=Odpoveď
+settings.webhook.headers=Hlavičky
+settings.webhook.payload=Payload
+settings.webhook.body=Telo
+settings.webhook.err_cannot_parse_payload_url=Cannot parse payload URL: %v
+settings.webhook.url_resolved_to_blocked_local_address=Payload URL resolved to a local network address that is implicitly blocked.
+settings.githooks_desc=Háčiky Gitu sú spravované Gitom samotným, môžete v zozname nižšie upraviť súbory podporovaných háčikov k prevádzaniu užívateľských operácií.
+settings.githook_edit_desc=Pokiaľ je hook neaktívny, zobrazí sa ukážkový obsah. Ponechanie prázdneho obsahu zakáže tento hook.
+settings.githook_name=Názov hooku
+settings.githook_content=Obsah hooku
+settings.update_githook=Zmeniť háčik
+settings.add_webhook_desc=Gogs zašle požiadavku typu POST na zadanú URL, spoločne s informáciami o udalosti, ktorá nastala. Môžete tiež špecifikovať, aký dátový formát sa má použiť po spustení daného háčiku (JSON, x-www-form-urlencoded, XML atp.). Viac informacií je v našom Návode na webové háčiky.
+settings.payload_url=URL nákladu
+settings.content_type=Typ obsahu
+settings.secret=Tajný
+settings.secret_desc=Tajný kľúč bude odoslaný ako SHA256 HMAC hexadecimálny prehľad nákladu použitím hlavičky X-Gogs-Signature.
+settings.slack_username=Užívateľské méno
+settings.slack_icon_url=URL ikony
+settings.slack_color=Farba
+settings.event_desc=Kedy by mal byť tento webový háčik spustený?
+settings.event_push_only=Iba pri udalosti odoslanie.
+settings.event_send_everything=Potrebujem všetko.
+settings.event_choose=Nechaj ma vybrať, čo potrebujem.
+settings.event_create=Vytvoriť
+settings.event_create_desc=Branch alebo tag bol vytvorený
+settings.event_delete=Odstrániť
+settings.event_delete_desc=Vetva alebo značka odstránená
+settings.event_fork=Rozštiepenie
+settings.event_fork_desc=Repozitár rozštiepený
+settings.event_push=Push
+settings.event_push_desc=Git push do repozitára
+settings.event_issues=Úlohy
+settings.event_issues_desc=Úloha, ktorá je otvorená, uzavretá, znovuotvorená, zmenená, priradená, nepriradená, má zmenený štítok, odstránený štítok, má priradený milník, nemajúca priradený milník.
+settings.event_pull_request=Pull request
+settings.event_pull_request_desc=Požiadavka na stiahnutie otvorená, uzavrená, znovuotvorená, zmenená, priradená, nepriradená, zmenený štítok, odstránený štítok, má nastavený štítok, zrušenie nastaveného štítku alebo synchronizovaná.
+settings.event_issue_comment=Komentár k úlohe
+settings.event_issue_comment_desc=Komentár k úlohe vytvorený, upravený alebo odstránený.
+settings.event_release=Vydanie
+settings.event_release_desc=Vydanie vystavené v repozitári.
+settings.active=Aktívny
+settings.active_helper=Podrobnosti vzťahujúce sa k udalosti, ktorá spustila háčik, budú doručené tiež.
+settings.add_hook_success=Nový webový háčik bol pridaný.
+settings.update_webhook=Zmeniť webový háčik
+settings.update_hook_success=Webový háčik bol zmenený.
+settings.delete_webhook=Odstrániť webový háčik
+settings.recent_deliveries=Nedávne dodávky
+settings.hook_type=Typ háčiku
+settings.add_slack_hook_desc=Pridať integráciu Slacku do vášho repozitára.
+settings.add_discord_hook_desc=Pridať integráciu Discord do vašeho repozitára.
+settings.add_dingtalk_hook_desc=Pridať Dingtalk integráciu do vášho repozitára.
+settings.slack_token=Token
+settings.slack_domain=Doména
+settings.slack_channel=Kanál
+settings.deploy_keys=Deploy kľúče
+settings.deploy_keys_helper=Prichytení pri čine! Ak chcete pridať osobné verejné kľúče, zadajte ich prosím v nastavenie vášho účtu.
+settings.add_deploy_key=Pridať deploy kľúč
+settings.deploy_key_desc=Deploy kľúče majú iba prístup pre čítanie. Niesú rovnaké ako SSH kľúče účtu.
+settings.no_deploy_keys=Zatiaľ ste nepridali žiadne deploy kľúče.
+settings.title=Názov
+settings.deploy_key_content=Obsah
+settings.key_been_used=Obsah deploy kľúča sa používa.
+settings.key_name_used=Deploy kľúč s rovnakým názvom už existuje.
+settings.add_key_success=Nový deploy kľúč '%s' bol úspešne pridaný!
+settings.deploy_key_deletion=Odstrániť deploy kľúč
+settings.deploy_key_deletion_desc=Odstránením tohto deploy kľúča sa odstránia všetky súvisiace prístupy k tomuto repozitáru. Chcete pokračovať?
+settings.deploy_key_deletion_success=Deploy kľúč bol úspešne odstránený!
+settings.description_desc=Popis repozitára. Maximálna dĺžka 512 znakov.
+settings.description_length=Dostupné znaky
+
+diff.browse_source=Prechádzať zdrojové kódy
+diff.parent=rodič
+diff.commit=commit
+diff.data_not_available=Rozdielové dáta nie sú dostupné.
+diff.show_diff_stats=Ukázať štatistiku rozdielnych dát
+diff.show_split_view=Rozdelené zobrazenie
+diff.show_unified_view=Jednotné zobrazenie
+diff.stats_desc= %d zmenil súbory, kde vykonal %d pridanie a %d odobranie
+diff.bin=BIN
+diff.view_file=Zobraziť súbor
+diff.file_suppressed=Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+diff.too_many_files=Niektoré súbory nie sú zobrazené, pretože je v týchto rozdielových dátach zmenené mnoho súborov
+
+release.releases=Vydania
+release.new_release=Nové vydanie
+release.draft=Koncept
+release.prerelease=Predbežné vydanie
+release.edit=upraviť
+release.ahead=%d revizií do vetvy %s od tohto vydania
+release.source_code=Zdrojový kód
+release.new_subheader=Pre iteráciu produktu zverejňujte vydanie.
+release.edit_subheader=Detailný log zmien môže pomôcť užívateľom porozumieť, čo bolo vylepšené.
+release.tag_name=Názov tagu
+release.target=Cieľ
+release.tag_helper=Vyberte existujúcu značku alebo vytvorte novú pri vydaní.
+release.title=Názov
+release.content=Obsah
+release.write=Zapísať
+release.preview=Náhľad
+release.loading=Načítavanie...
+release.prerelease_desc=Toto je predbežná verzia
+release.prerelease_helper=Zdôrazníme, že toto vydanie nie je hotové pre produkčné nasadenie.
+release.cancel=Zrušiť
+release.publish=Publikovať vydanie
+release.save_draft=Uložiť koncept
+release.edit_release=Upraviť vydanie
+release.delete_release=Odstrániť toto vydanie
+release.deletion=Odstránenie vydania
+release.deletion_desc=Odstránením tohto vydania sa tiež odstráni odpovedajúca značka. Chcete pokračovať?
+release.deletion_success=Vydanie bolo odstránené!
+release.tag_name_already_exist=Vydanie s touto značkou už existuje.
+release.tag_name_invalid=Názov značky je neplatný.
+release.downloads=Súbory k stiahnutiu
+
+[org]
+org_name_holder=Názov organizácie
+org_full_name_holder=Celý názov organizácie
+org_name_helper=Skvelé názvy organizácii sú krátke a zapamätovateľné.
+create_org=Vytvoriť organizáciu
+repo_updated=Zmenené
+people=Ľudia
+invite_someone=Pozvať niekoho
+teams=Tímy
+lower_members=členovia
+lower_repositories=repozitáre
+create_new_team=Vytvoriť nový tím
+org_desc=Popis
+team_name=Názov tímu
+team_desc=Popis
+team_name_helper=Tento názov budete používať pri pomenovaní týmu v konverzáciách.
+team_desc_helper=Prosím popíšte tento tým
+team_permission_desc=Akú úroveň prístupu má mať tento tým?
+
+form.name_not_allowed=Organization name or pattern %q is not allowed.
+form.team_name_not_allowed=Team name or pattern %q is not allowed.
+
+settings=Nastavenia
+settings.options=Možnosti
+settings.full_name=Celé meno
+settings.website=Web stránka
+settings.location=Poloha
+settings.update_settings=Zmeniť nastavenia
+settings.update_setting_success=Nastavenia organizácie boli zmenené.
+settings.change_orgname_prompt=Táto zmena ovplivní vzťah odkazov k organizácii.
+settings.update_avatar_success=Nastavenie ikony organizácie bolo zmenené.
+settings.delete=Odstrániť organizáciu
+settings.delete_account=Odstrániť túto organizáciu
+settings.delete_prompt=Organizácia bude trvalo odstránená a táto zmena nemôže byť vrátená!
+settings.confirm_delete_account=Potvrdenie odstránenia
+settings.delete_org_title=Odstránenie organizácie
+settings.delete_org_desc=Organizácia bude natrvalo odstránená. Chcete pokračovať?
+settings.hooks_desc=Pridajte webové háčiky, ktoré budú spustené nad všetkými repozitármi tejto organizácie.
+
+members.membership_visibility=Viditeľnosť členstva:
+members.public=Verejný
+members.public_helper=zmeniť na súkromné
+members.private=Súkromný
+members.private_helper=zmeniť na verejné
+members.member_role=Rola člena:
+members.owner=Vlastník
+members.member=Člen
+members.remove=Odstrániť
+members.leave=Opustiť
+members.invite_desc=Pridať nového člena do %s:
+members.invite_now=Pozvať teraz
+
+teams.join=Pripojiť sa
+teams.leave=Opustiť
+teams.read_access=Právo čítania
+teams.read_access_helper=Tento tým bude môcť prehliadať a klonovať repozitáre.
+teams.write_access=Právo na zápis
+teams.write_access_helper=Tento tým bude schopný čítať svoje repozitáre a odosielať do nich.
+teams.admin_access=Administrátorský prístup
+teams.admin_access_helper=Tento tým bude schopný odoslať a stiahnuť zmeny do svojich repozitárov, rovnako tak pridať k týmto repozitárom ďalších spolupracovníkov.
+teams.no_desc=Tento tím nemá žiadny popis
+teams.settings=Nastavenia
+teams.owners_permission_desc=Vlastníci majú plný prístup do všetkých repozitárov a majú správcovské práva tejto organizácie.
+teams.members=Členovia tímu
+teams.update_settings=Zmeniť nastavenia
+teams.delete_team=Odstrániť tento tím
+teams.add_team_member=Pridať člena tímu
+teams.delete_team_title=Odstránenie tímu
+teams.delete_team_desc=Keďže bude tento tým odstránený, jeho členovia môžu stratiť prístup do niektorých repozitárov. Chcete pokračovať?
+teams.delete_team_success=Daný tým bol odstránený.
+teams.read_permission_desc=Členstvo v tomto týme poskytuje právo čítania: členovia môžu čítať a vytvárať klony repozitárov týmu.
+teams.write_permission_desc=Členstvo v tomto týme poskytuje právo zápisu: členovia môžu čítať a odosielať do repozitárov týmu.
+teams.admin_permission_desc=Členstvo v tomto týme poskytuje právo správcu: členovia môžu čítať, odosielať do a pridávať spolupracovníkov do repozitárov týmu.
+teams.repositories=Repozitáre týmu
+teams.search_repo_placeholder=Hľadať repozitár...
+teams.add_team_repository=Pridať tímový repozitár
+teams.remove_repo=Odstrániť
+teams.add_nonexistent_repo=Repozitár, ktorý sa snažíte pridať, neexistuje. Najskôr ho vytvorte prosím.
+
+[admin]
+dashboard=Nástenka
+users=Používatelia
+organizations=Organizácie
+repositories=Repozitáre
+authentication=Overenia
+config=Konfigurácia
+notices=Systémové oznámenia
+monitor=Monitoring
+first_page=Prvý
+last_page=Posledný
+total=Celkom: %d
+
+dashboard.build_info=Informácie o zostavení
+dashboard.app_ver=Verzia aplikácie
+dashboard.git_version=Git verzia
+dashboard.go_version=Go verzia
+dashboard.build_time=Čas zostavenia
+dashboard.build_commit=Commit zostavenia
+dashboard.statistic=Štatistika
+dashboard.operations=Operácie
+dashboard.system_status=Monitor stavu systému
+dashboard.statistic_info=Gogs databáza obsahuje %d používateľov, %d organizácií, %d verejných kľúčov, %d repozitárov, %d sledovaní, %d hviezd, %d akcií, %d prístupov, %d issues, %d komentárov, %d sociálnych účtov, %d nasledovaní, %d mirrorov, %d vydaní, %d zdrojov prihlásení, %d webhookov, %d míľnikov, %d štítkov, %d hook úloh, %d tímov, %d aktualizačných úloh, %d príloh.
+dashboard.operation_name=Názov operácie
+dashboard.operation_switch=Prepnúť
+dashboard.select_operation_to_run=Please select operation to run
+dashboard.operation_run=Spustiť
+dashboard.clean_unbind_oauth=Odstráň nenaviazané OAuth tokeny
+dashboard.clean_unbind_oauth_success=Všetky nenaviazané OAuth tokeny boli úspešne odstránené.
+dashboard.delete_inactivate_accounts=Odstrániť všetky neaktívne účty
+dashboard.delete_inactivate_accounts_success=Všetky neaktívne účty boli odstránené.
+dashboard.delete_repo_archives=Odstrániť všetky archívy repozitárov
+dashboard.delete_repo_archives_success=Všetky archívy repozitárov boli odstránené.
+dashboard.delete_missing_repos=Odstrániť všetky záznamy repozitárov, ktoré stratili súbory Gitu
+dashboard.delete_missing_repos_success=Všetky repozitári, ktoré stratili súbory Gitu, boli odstránené.
+dashboard.git_gc_repos=Vykonať čistenie GC nad repozitármi
+dashboard.git_gc_repos_success=Čistenie GC nad všetkými repozitármi bolo vykonané.
+dashboard.resync_all_sshkeys=Prepísať súbor '.ssh/authorized_keys' (upozornenie: kľúče ktoré nevznikli v Gogs budú stratené)
+dashboard.resync_all_sshkeys_success=Všetky verejné kľúče boli prepísané.
+dashboard.resync_all_hooks=Zosynchronizovať háčiky pred-získané, zmeny a po-získaní pre všetky repozitáre
+dashboard.resync_all_hooks_success=Všetky háčiky repozitára pre pred-získanie, zmenu a po-získanie boli zosynchronizované.
+dashboard.reinit_missing_repos=Znovu inicializovať záznamy všetkých repozitárov, ktoré stratili súbory Gitu
+dashboard.reinit_missing_repos_success=Záznamy všetkých repozitárov, ktoré stratili súbory Gitu, boli znova inicializované.
+
+dashboard.server_uptime=Doba prevádzky servera
+dashboard.current_goroutine=Aktuálne Goroutines
+dashboard.current_memory_usage=Aktuálne využitie pamäti
+dashboard.total_memory_allocated=Pridelené pamäti celkom
+dashboard.memory_obtained=Celkom získanej pamäti
+dashboard.pointer_lookup_times=Časy vyhľadávaní ukazáteľov
+dashboard.memory_allocate_times=Časy pridelenia pamäte
+dashboard.memory_free_times=Časy uvoľnenia pamäte
+dashboard.current_heap_usage=Aktuálne využitie pamäti zásobníka
+dashboard.heap_memory_obtained=Získaná pamäť zásobníka
+dashboard.heap_memory_idle=Nečinná pamäť zásobníka
+dashboard.heap_memory_in_use=Používaná pamäť zásobníka
+dashboard.heap_memory_released=Uvoľnená pamäť zásobníka
+dashboard.heap_objects=Objekty zásobníka
+dashboard.bootstrap_stack_usage=Využitie zásobníka prvotného zavedenia
+dashboard.stack_memory_obtained=Celkom získanej pamäte zásobníka
+dashboard.mspan_structures_usage=Použitie štruktúr MSpan
+dashboard.mspan_structures_obtained=Získané štruktúry MSpan
+dashboard.mcache_structures_usage=Použitie štruktúr MCache
+dashboard.mcache_structures_obtained=Získané štruktúry MCache
+dashboard.profiling_bucket_hash_table_obtained=Získaná analytická tabuľka
+dashboard.gc_metadata_obtained=Získané metadata GC
+dashboard.other_system_allocation_obtained=Získaná alokácia ostatných systémových prostriedkov
+dashboard.next_gc_recycle=Ďaľšia GC recycle
+dashboard.last_gc_time=Čas od poslednej GC
+dashboard.total_gc_time=GC pauzy celkom
+dashboard.total_gc_pause=GC pauzy celkom
+dashboard.last_gc_pause=Posledná GC pauza
+dashboard.gc_times=Počet GC
+
+users.user_manage_panel=Panel správy užívateľov
+users.new_account=Vytvoriť nový účet
+users.name=Názov
+users.activated=Aktivovaný
+users.admin=Admin
+users.repos=Repozitáre
+users.created=Vytvorené
+users.send_register_notify=Poslať upozornenie na registráciu úžívateľovi
+users.new_success=Nový účet '%s' bol vytvorený.
+users.edit=Upraviť
+users.auth_source=Zdroj overovania
+users.local=Miestny
+users.auth_login_name=Prihlasovacie meno spôsobu overenia
+users.password_helper=Nechajte prázdne, pokiaľ sa nemá zmeniť.
+users.update_profile_success=Profil účtu bol zmenený.
+users.edit_account=Upraviť účet
+users.max_repo_creation=Limit pre maximálny počet vytvorených repozitárov
+users.max_repo_creation_desc=(Nastavte na -1 pre použitie východzieho systémového limitu)
+users.is_activated=Tento účet je aktivovaný
+users.prohibit_login=Tento účet má zakázané prihlásenie
+users.is_admin=Tento účet má správcovské právo
+users.allow_git_hook=Tento účet má právo vytvárať háčiky Gitu
+users.allow_import_local=Tento účet ma právo importovať miestne repozitáre
+users.update_profile=Zmeniť profil účtu
+users.delete_account=Zmazať tento účet
+users.still_own_repo=Tento účet je stále vlastníkom najmenej jedného repozitára, je potrebné repozitár najskôr odstrániť alebo predať.
+users.still_has_org=Tento účet je členom minimálne jednej organizácie, musíte najskôr dané organizácie opustiť alebo ich odstrániť.
+users.deletion_success=Účet bol úspešne odstránený!
+
+orgs.org_manage_panel=Panel správy organizácii
+orgs.name=Názov
+orgs.teams=Tímy
+orgs.members=Členovia
+
+repos.repo_manage_panel=Panel správy repozitárov
+repos.owner=Vlastník
+repos.name=Názov
+repos.private=Súkromný
+repos.watches=Pozorované
+repos.stars=Hviezdy
+repos.issues=Issues
+repos.size=Veľkosť
+
+auths.auth_sources=Zdroje overenia
+auths.new=Pridať nový zdroj
+auths.name=Názov
+auths.type=Typ
+auths.enabled=Povolené
+auths.default=Predvolený
+auths.updated=Aktualizované
+auths.auth_type=Typ overenia
+auths.auth_name=Názov overenia
+auths.security_protocol=Protokol zabezpečenia
+auths.domain=Doména
+auths.host=Host
+auths.port=Port
+auths.bind_dn=Bind DN
+auths.bind_dn_helper=Môžete použiť '%s' ako miesto pre užívateľské meno, napr. DOM\%s
+auths.bind_password=Heslo pripojenia
+auths.bind_password_helper=Upozornenie: Toto heslo je ukladané nešifrovane. Nepoužívajte pre správcovské účty.
+auths.user_base=Východzie miesto hľadania úživateľov
+auths.user_dn=DN užívateľa
+auths.attribute_username=Užívateľský atribút
+auths.attribute_username_placeholder=Nechajte toto pole prázdne pre použitie hodnoty poľa užívateľského mena z prihlasovacieho formulára.
+auths.attribute_name=Atribút krstného mena
+auths.attribute_surname=Atribút priezviska
+auths.attribute_mail=Atribút e-mailovej adresy
+auths.verify_group_membership=Overovať členstvo v skupine
+auths.group_search_base_dn=Základné DN pre vyhľadávanie skupín
+auths.group_filter=Skupinový filter
+auths.group_attribute_contain_user_list=Skupinový atribút, ktorý obsahuje zoznam úživateľov
+auths.user_attribute_listed_in_group=Atribút užívateľa (v skupine)
+auths.attributes_in_bind=Vyzdvihnúť atribúty v kontexte Bind DN
+auths.filter=Užívateľský filter
+auths.admin_filter=Správcovský filter
+auths.ms_ad_sa=Ms Ad SA
+auths.smtp_auth=Typ overenia SMTP
+auths.smtphost=SMTP Host
+auths.smtpport=SMTP Port
+auths.allowed_domains=Povolené domény
+auths.allowed_domains_helper=Nechajte prázdne, pokiaľ nechcete obmedziť akékoľvek domény. Domény musia byť od seba oddelené čiarkou ','.
+auths.enable_tls=Povoliť šifrovanie TLS
+auths.skip_tls_verify=Preskočiť overenie TLS
+auths.pam_service_name=Názov služby PAM
+auths.enable_auto_register=Povoliť auto registráciu
+auths.edit=Upraviť nastavenie overovania
+auths.activated=Tento spôsob overovania je aktívny
+auths.default_auth=Toto overenie je východzí zdroj prihlásenia
+auths.new_success=Nový spôsob overovania '%s' bol pridaný.
+auths.update_success=Nastavenie overovania bolo zmenené.
+auths.update=Zmeniť nastavenie overovania
+auths.delete=Odstrániť tento spôsob overovania
+auths.delete_auth_title=Odstránenie spôsobu overovania
+auths.delete_auth_desc=Tento spôsob overovania bude odstránený, chcete pokračovať?
+auths.still_in_used=Tento spôsob overovania je stále používaný niektorými užívateľmi. Prosím, najskôr zmeňte u týchto užívateľov typ overenia na iný.
+auths.deletion_success=Spôsob overovania bol odstránený!
+auths.login_source_exist=Zdroj prihlásenia '%s' už existuje.
+auths.github_api_endpoint=Koncový bod API
+
+config.not_set=(nezadané)
+config.server_config=Konfigurácia servera
+config.brand_name=Názov značky
+config.run_user=Používateľ pre spustenie aplikácie
+config.run_mode=Režim spúšťania
+config.server.external_url=Externé URL
+config.server.domain=Doména
+config.server.protocol=Protokol
+config.server.http_addr=HTTP adresa
+config.server.http_port=HTTP port
+config.server.cert_file=Súbor certifikátu
+config.server.key_file=Súbor kľúča
+config.server.tls_min_version=Minimálna verzia TLS
+config.server.unix_socket_permission=Oprávnenie Unix socketu
+config.server.local_root_url=Local root URL
+config.server.offline_mode=Offline mode
+config.server.disable_router_log=Disable router log
+config.server.enable_gzip=Povoliť Gzip
+config.server.app_data_path=Application data path
+config.server.load_assets_from_disk=Load assets from disk
+config.server.landing_url=Landing URL
+
+config.ssh_config=Nastavenie SSH
+config.ssh.enabled=Povolené
+config.ssh.domain=Exposed domain
+config.ssh.port=Exposed port
+config.ssh.root_path=Root path
+config.ssh.keygen_path=Keygen path
+config.ssh.key_test_path=Key test path
+config.ssh.minimum_key_size_check=Minimum key size check
+config.ssh.minimum_key_sizes=Minimum key sizes
+config.ssh.rewrite_authorized_keys_at_start=Rewrite "authorized_keys" at start
+config.ssh.start_builtin_server=Start builtin server
+config.ssh.listen_host=Listen host
+config.ssh.listen_port=Listen port
+config.ssh.server_ciphers=Server ciphers
+config.ssh.server_macs=Server MACs
+config.ssh.server_algorithms=Server algorithms
+
+config.repo_config=Nastavenie repozitára
+config.repo.root_path=Root path
+config.repo.script_type=Script type
+config.repo.ansi_chatset=ANSI charset
+config.repo.force_private=Force private
+config.repo.max_creation_limit=Max creation limit
+config.repo.preferred_licenses=Preferred licenses
+config.repo.disable_http_git=Disable HTTP Git
+config.repo.enable_local_path_migration=Povoliť migráciu z miestnej cesty
+config.repo.enable_raw_file_render_mode=Enable raw file render mode
+config.repo.commits_fetch_concurrency=Commits fetch concurrency
+config.repo.editor.line_wrap_extensions=Editor line wrap extensions
+config.repo.editor.previewable_file_modes=Editor previewable file modes
+config.repo.upload.enabled=Upload enabled
+config.repo.upload.temp_path=Upload temporary path
+config.repo.upload.allowed_types=Upload allowed types
+config.repo.upload.file_max_size=Upload file size limit
+config.repo.upload.max_files=Upload files limit
+
+config.db_config=Konfigurácia databázy
+config.db.type=Type
+config.db.host=Host
+config.db.name=Name
+config.db.schema=Schema
+config.db.schema_helper=(for "postgres" only)
+config.db.user=User
+config.db.ssl_mode=SSL mode
+config.db.ssl_mode_helper=(for "postgres" only)
+config.db.path=Path
+config.db.path_helper=(for "sqlite3"only)
+config.db.max_open_conns=Maximum open connections
+config.db.max_idle_conns=Maximum idle connections
+
+config.security_config=Security configuration
+config.security.login_remember_days=Login remember days
+config.security.cookie_remember_name=Remember cookie
+config.security.cookie_username=Username cookie
+config.security.cookie_secure=Enable secure cookie
+config.security.reverse_proxy_auth_user=Reverse proxy authentication header
+config.security.enable_login_status_cookie=Enable login status cookie
+config.security.login_status_cookie_name=Login status cookie
+config.security.local_network_allowlist=Local network allowlist
+
+config.email_config=Email configuration
+config.email.enabled=Povolené
+config.email.subject_prefix=Subject prefix
+config.email.host=Host
+config.email.from=From
+config.email.user=User
+config.email.disable_helo=Disable HELO
+config.email.helo_hostname=HELO hostname
+config.email.skip_verify=Skip certificate verify
+config.email.use_certificate=Use custom certificate
+config.email.cert_file=Certificate file
+config.email.key_file=Key file
+config.email.use_plain_text=Use plain text
+config.email.add_plain_text_alt=Add plain text alternative
+config.email.send_test_mail=Send test email
+config.email.test_mail_failed=Failed to send test email to '%s': %v
+config.email.test_mail_sent=Test email has been sent to '%s'.
+
+config.auth_config=Authentication configuration
+config.auth_custom_logout_url=Custom logout URL
+config.auth.activate_code_lives=Activate code lives
+config.auth.reset_password_code_lives=Reset password code lives
+config.auth.require_email_confirm=Require email confirmation
+config.auth.require_sign_in_view=Require sign in view
+config.auth.disable_registration=Disable registration
+config.auth.enable_registration_captcha=Enable registration captcha
+config.auth.enable_reverse_proxy_authentication=Enable reverse proxy authentication
+config.auth.enable_reverse_proxy_auto_registration=Enable reverse proxy auto registration
+config.auth.reverse_proxy_authentication_header=Reverse proxy authentication header
+
+config.user_config=User configuration
+config.user.enable_email_notify=Povoliť e-mailové notifikácie
+
+config.session_config=Nastavenie session
+config.session.provider=Provider
+config.session.provider_config=Provider config
+config.session.cookie_name=Cookie
+config.session.https_only=HTTPS only
+config.session.gc_interval=GC interval
+config.session.max_life_time=Max life time
+config.session.csrf_cookie_name=CSRF cookie
+
+config.cache_config=Konfigurácia cache
+config.cache.adapter=Adapter
+config.cache.interval=GC interval
+config.cache.host=Host
+
+config.http_config=HTTP konfigurácia
+config.http.access_control_allow_origin=Access control allow origin
+
+config.attachment_config=Attachment configuration
+config.attachment.enabled=Povolené
+config.attachment.path=Path
+config.attachment.allowed_types=Allowed types
+config.attachment.max_size=Size limit
+config.attachment.max_files=Files limit
+
+config.release_config=Release configuration
+config.release.attachment.enabled=Attachment enabled
+config.release.attachment.allowed_types=Attachment allowed types
+config.release.attachment.max_size=Attachment size limit
+config.release.attachment.max_files=Attachment files limit
+
+config.picture_config=Nastavenie ikony užívateľa
+config.picture.avatar_upload_path=User avatar upload path
+config.picture.repo_avatar_upload_path=Repository avatar upload path
+config.picture.gravatar_source=Gravatar source
+config.picture.disable_gravatar=Disable Gravatar
+config.picture.enable_federated_avatar=Enable federated avatars
+
+config.mirror_config=Mirror configuration
+config.mirror.default_interval=Default interval
+
+config.webhook_config=Nastavenie webových háčikov
+config.webhook.types=Types
+config.webhook.deliver_timeout=Deliver timeout
+config.webhook.skip_tls_verify=Skip TLS verify
+
+config.git_config=Konfigurácia Gitu
+config.git.disable_diff_highlight=Disable diff syntax highlight
+config.git.max_diff_lines=Diff lines limit (for a single file)
+config.git.max_diff_line_characters=Diff characters limit (for a single line)
+config.git.max_diff_files=Diff files limit (for a single diff)
+config.git.gc_args=GC arguments
+config.git.migrate_timeout=Migration timeout
+config.git.mirror_timeout=Mirror fetch timeout
+config.git.clone_timeout=Clone timeout
+config.git.pull_timeout=Pull timeout
+config.git.gc_timeout=GC timeout
+
+config.lfs_config=LFS configuration
+config.lfs.storage=Storage
+config.lfs.objects_path=Objects path
+
+config.log_config=Nastavenie systémových záznamov
+config.log_file_root_path=Koreňový adresár súboru systémových záznamov
+config.log_mode=Režim
+config.log_options=Možnosti
+
+monitor.cron=Cron úlohy
+monitor.name=Názov
+monitor.schedule=Rozvrh
+monitor.next=Nabudúce
+monitor.previous=Predchádzajúci čas
+monitor.execute_times=Doby vykonávania
+monitor.process=Spustené procesy
+monitor.desc=Popis
+monitor.start=Čas štartu
+monitor.execute_time=Doba vykonávania
+
+notices.system_notice_list=Systémové oznámenia
+notices.view_detail_header=Zobraziť detail oznámenia
+notices.actions=Akcie
+notices.select_all=Vybrať všetko
+notices.deselect_all=Zrušiť výber všetkých
+notices.inverse_selection=Prevrátiť výber
+notices.delete_selected=Odstrániť vybrané
+notices.delete_all=Odstrániť všetky oznámenia
+notices.type=Typ
+notices.type_1=Repozitár
+notices.desc=Popis
+notices.op=Op.
+notices.delete_success=Systémové upozornenia boli odstránené.
+
+[action]
+create_repo=vytvoril repozitár %s
+rename_repo=premenoval repozitár z %[1]s na %[3]s
+commit_repo=odoslal do vetvy %[3]s v repositáři %[4]s
+compare_commits=Zobraziť porovnanie týchto %d commitov
+transfer_repo=predal repozitár %s užívateľovi/organizácii %s
+create_issue=`vytvoril úlohu %s#%[2]s`
+close_issue=`uzatvoril úlohu %s#%[2]s`
+reopen_issue=`znovuotvoril úlohu %s#%[2]s`
+comment_issue=`okomentoval úlohu %s#%[2]s`
+create_pull_request=`vytvoril požiadavku na stiahnutie %s#%[2]s`
+close_pull_request=`zatvoril požiadavku na stiahnutie %s#%[2]s`
+reopen_pull_request=`znovuotvoril požiadavku na stiahnutie %s#%[2]s`
+merge_pull_request=`zlúčil požiadavku na stiahnutie %s#%[2]s`
+create_branch=vytvoril novú vetvu %[3]s v %[4]s
+delete_branch=odstránil vetvu %[2]s v %[3]s
+push_tag=odoslal značku %[2]s do repozitára %[3]s
+delete_tag=odstránená značka %[2]s v %[3]s
+fork_repo=rozštiepil repozitár do %s
+mirror_sync_push=synced commits to %[3]s at %[4]s from mirror
+mirror_sync_create=synced new reference %[2]s to %[3]s from mirror
+mirror_sync_delete=synced and deleted reference %[2]s at %[3]s from mirror
+
+[tool]
+ago=pred
+from_now=od tejto chvíle
+now=teraz
+1s=1 sekunda %s
+1m=1 minúta %s
+1h=1 hodinu %s
+1d=1 deň %s
+1w=1 týždeň %s
+1mon=1 mesiac %s
+1y=1 rok %s
+seconds=%d sekúnd %s
+minutes=%d minút %s
+hours=%d hodín %s
+days=%d dní %s
+weeks=%d týždňov %s
+months=%d mesiacov %s
+years=%d rokov %s
+raw_seconds=sekúnd
+raw_minutes=minút
+raw_hours=hours
+
+[dropzone]
+default_message=Pretiahnite súbory sem alebo stlačte Nahrať.
+invalid_input_type=Nie je možné nahrať súbory tohoto typu.
+file_too_big=Veľkosť súboru ({{filesize}} MB) je vyššia než maximálna veľkosť ({{maxFilesize}} MB).
+remove_file=Odstrániť súbor
+
diff --git a/conf/locale/locale_sr-SP.ini b/conf/locale/locale_sr-SP.ini
index ee65a4865f0..1d4f6153792 100644
--- a/conf/locale/locale_sr-SP.ini
+++ b/conf/locale/locale_sr-SP.ini
@@ -4,12 +4,11 @@ home=Почетна
dashboard=Контролни панел
explore=Преглед
help=Помоћ
-sign_in=Пријавите Се
+sign_in=Пријавите се
sign_out=Одјава
sign_up=Регистрација
register=Регистрација
website=Веб-страница
-version=Верзија
page=Страница
template=Шаблон
language=Језик
@@ -44,23 +43,27 @@ issues=Дискусије
cancel=Откажи
+[status]
+page_not_found=Page Not Found
+internal_server_error=Internal Server Error
+
[install]
install=Инсталација
title=Инсталационе кораке за првог покретања
docker_helper=Ако покрећете Gogs унутар Docker, молимо прочитајте ове савете пажљиво пре него што сте било шта променили на овој страници!
-requite_db_desc=Gogs-у је потребно MySQL, PostgreSQL, SQLite3 или TiDB.
+requite_db_desc=Gogs requires MySQL, PostgreSQL, SQLite3 or TiDB (via MySQL protocol).
db_title=Подешавања базе
db_type=Тип базе података
-host=Хост
+host=Домаћин
user=Корисник
password=Лозинка
-db_name=Име базе података
+db_name=Назив базе података
+db_schema=Schema
db_helper=За MySQL користите тип табела InnoDB са кодирањем utf8_general_ci.
ssl_mode=Режим SSL
path=Пут
-sqlite_helper=Пут датотеке за базу података врсте SQLite3 или TiDB. Унесите апсолутни пут када покренете као сервис.
-err_empty_db_path=Пут ка бази података SQLite3 или TiDB не може бити празно.
-err_invalid_tidb_name=Име базе података TiDB не може садржати симболе "." и "-".
+sqlite_helper=Пут датотеке за базу података SQLite3. Молимо користите апсолутни пут када покренете као сервис.
+err_empty_db_path=Пут базе података SQLite3 не може да буде празан.
no_admin_and_disable_registration=Ви не можете онемогућити регистрацију до стварања налог администратора.
err_empty_admin_password=Лозинка администратора не може бити празна.
@@ -75,12 +78,17 @@ domain=Домен
domain_helper=Утиче на URL адресе клониране преко SSH.
ssh_port=SSH порт
ssh_port_helper=Број порта који користи SSH сервер. Оставите празно да бисте онемогућили SSH.
+use_builtin_ssh_server=Користите уграђени SSH Сервер
+use_builtin_ssh_server_popup=Покрени уграђени SSH сервер за Git операције да их разликовати од система SSH daemon.
http_port=Порт HTTP
http_port_helper=Број порта преко којој ће апликација слушати.
app_url=URL адреса апликације
app_url_helper=Ова поставка утиче на URL за клонирање преко HTTP/HTTPS протокола и на адресама е-поште.
log_root_path=Пут до журнала
log_root_path_helper=Директоријум где ће бити снимане датотеке журнала.
+enable_console_mode=Омогући конзол начин
+enable_console_mode_popup=Поред начин датотеке, пошаљи системске извештаје и конзолу.
+default_branch=Default Branch
optional_title=Напредна подешавања
email_title=Подешавања сервиса е-поште
@@ -116,7 +124,10 @@ sqlite3_not_available=Ваша верзија не подржава SQLite3, м
invalid_db_setting=Подешавања базе података су неправилна: %v
invalid_repo_path=Пут до корена спремишта не неправилно: %v
run_user_not_match=Тренутни корисник није корисник за покретање: %s -> %s
+smtp_host_missing_port=У адресу SMTP сервера недостаје порт.
+invalid_smtp_from=Поље SMTP From није важећи: %v
save_config_failed=Није могуће сачувати конфигурацију: %v
+init_failed=Failed to initialize application: %v
invalid_admin_setting=Подешавањна администратора су неправилна: %v
install_success=Добродошли! Ми смо срећни што сте изабрали Gogs.
invalid_log_root_path=Пут до корена журнала је неправилан: %v
@@ -137,6 +148,7 @@ issues.in_your_repos=У вашим спремиштима
[explore]
repos=Спремишта
users=Корисници
+organizations=Организације
search=Претрага
[auth]
@@ -145,6 +157,8 @@ register_hepler_msg=Већ имате налог? Пријавите се!
social_register_hepler_msg=Већ имате налог? Повежите се преко социалне мреже!
disable_register_prompt=Извините регистрација је онемогућено. Молимо вас, контактирајте администратора.
disable_register_mail=Извините, потврда путем поште је онемогућено.
+auth_source=Извор аутентикације
+local=Локално
remember_me=Запамти ме
forgot_password=Заборављена лозинка
forget_password=Заборавили сте лозинку?
@@ -156,7 +170,6 @@ prohibit_login_desc=Улаз у ваш налог је забрањено, мо
resent_limit_prompt=Извините, већ сте недавно тражили активацију путем е-поште. Молимо вас, сачекајте 3 минута и покушајте поново.
has_unconfirmed_mail=Здраво, %s! Имате непотврђену адресу е-поште (%s). Ако вам није стигло писмо са потврдом или морате да пошаљете нову поруку, притисните на пратеће дугме.
resend_mail=Кликните овде да поново пошаљете писмо
-email_not_associate=Ова адреса е-поште није повезана ни са једним налогом.
send_reset_mail=Кликните овде да (поново) пошаљете поруку како би променили лозинку
reset_password=Ресет лозинке
invalid_code=Извините, ваш код за потврду је истекао или није валидан.
@@ -164,6 +177,14 @@ reset_password_helper=Кликните овде да ресетујете ваш
password_too_short=Лозинка неможе бити краћа од 6 карактера.
non_local_account=Нелокални налози не могу да промените лозинку преко Gogs.
+login_two_factor=Двострука аутентификација
+login_two_factor_passcode=Шифра аутентификације
+login_two_factor_enter_recovery_code=Унеси двоструку шифру за опоравак
+login_two_factor_recovery=Двоструки опоравак
+login_two_factor_recovery_code=Шифра за опоравак
+login_two_factor_enter_passcode=Унеси двоструку шифру
+login_two_factor_invalid_recovery_code=Шифра за опоравак је већ била коришћена или није више важећа.
+
[mail]
activate_account=Молимо вас активирајте ваш налог
activate_email=Потврдите вашу адресу е-поште
@@ -183,7 +204,7 @@ Email=Адреса ел. поште
Password=Лозинка
Retype=Поновите лозинку
SSHTitle=Име SSH кључа
-HttpsUrl=HTTPS URL адреса
+HttpsUrl=HTTPS URL
PayloadUrl=URL адреса за слање
TeamName=Име тима
AuthName=Ауторизацијско име
@@ -199,6 +220,7 @@ Content=Садржај
require_error=` не може бити празно.`
alpha_dash_error=` мора се састојати словима, бројевима или dash(-_) карактера.`
alpha_dash_dot_error=` мора се састојати словима, бројевима, dash(-_) карактера, или тачком.`
+alpha_dash_dot_slash_error=` мора да буде слово, број, црта или тачка.`
size_error=` мора бити величине %s.`
min_size_error=` мора да садржи најмање %s карактера.`
max_size_error=` мора да садржи највише %s карактера.`
@@ -215,6 +237,7 @@ org_name_been_taken=Име организације је већ заузето.
team_name_been_taken=Име екипе је већ заузето.
email_been_used=Адреса е-поште се већ користи.
username_password_incorrect=Корисничко име или лозинка није исправна.
+auth_source_mismatch=Изабрани извор потврде идентитета није повезан са корисником.
enterred_invalid_repo_name=Молимо вас, проверите да је име спремишта тачно унешено.
enterred_invalid_owner_name=Молимо вас проверите да сте добро унели име власника.
enterred_invalid_password=Молимо вас проверите да сте добро унели лозинку.
@@ -242,24 +265,23 @@ following=Пратим
follow=Прати
unfollow=Престани да пратиш
-form.name_reserved=Корисничко име '%s' је резервирано.
-form.name_pattern_not_allowed=Корисничко име ликом '%s' није дозвољено.
+form.name_not_allowed=User name or pattern %q is not allowed.
[settings]
profile=Профил
password=Лозинка
avatar=Аватар
ssh_keys=SSH Кључеви
-social=Налози на друштвеним мрежама
-applications=Апликације
+security=Безбедност
+repos=Спремишта
orgs=Организације
-delete=Уклоните налог
-uid=Uid
+applications=Апликације
+delete=Уклоните Hалог
public_profile=Јавни профил
profile_desc=Ваша адреса е-поште је јавна и коришће се за све обавести везане са налогом, као и друге операције почињене кроз Gogs.
password_username_disabled=Нелокални корисници не могу да промене своје кориничко име.
-full_name=Име и презиме
+full_name=Пуно Име
website=Веб страница
location=Локација
update_profile=Ажурирај профил
@@ -286,7 +308,7 @@ password_incorrect=Тренутна лозинка је нетачна.
change_password_success=Лозинка је успешно промењена. Можете се пријавити са новом лозинком.
password_change_disabled=Нелокални корисници не могу да промене своје лозинке.
-emails=Адреса ел. поште
+emails=Адреса е-поште
manage_emails=Управљање адресама е-поште
email_desc=Ваша главна адреса ће се користити за обавештења и других операција.
primary=Главно
@@ -295,6 +317,7 @@ delete_email=Уклони
email_deletion=Брисање адресе е-поште
email_deletion_desc=Брисање ове адресе ће довести до уклањања података. Да ли желите да наставите?
email_deletion_success=Адреса је успешно избрисана!
+email_deletion_primary=Cannot delete primary email address.
add_new_email=Додај нови адресу е-поште
add_email=Додај адресу
add_email_confirmation_sent=Послан је нова потврда на '%s', молимо вас проверите ваше поруке унутар %d сата да бисте завршили поступак потврде.
@@ -320,14 +343,36 @@ no_activity=Нема недавних активности
key_state_desc=Овај кључ је коришћен у задњих 7 дана
token_state_desc=Токен је коришћен у задњих 7 дана
-manage_social=Управљање прикључених друштвеним мрежама
-social_desc=Ово је списак повезаних друштвених мрежа. Уклоните све непознате.
-unbind=Обвежи
-unbind_success=Друштвена мрежа је обвежена.
+two_factor=Двострука аутентификација
+two_factor_status=Стање:
+two_factor_on=Укључено
+two_factor_off=Искључено
+two_factor_enable=Омогући
+two_factor_disable=Онемогући
+two_factor_view_recovery_codes=Гледајте и сачувајте ваше шифре за опоравак на сигурном месту. Можете да их користите у случају да изгубите приступ до апликације за аутентификацију.
+two_factor_http=За HTTP/HTTPS операције, нећете виће моћи да користите корисничко име и лозинку. Молим вас да креирате и користите лични приступни токен као ваш акредитив, на пример %[3]s.
+two_factor_enable_title=Омогући двострука аутентификација
+two_factor_scan_qr=Молим вас користите вашу апликацију за аутентификацију за скенирање слику:
+two_factor_or_enter_secret=Или унесите тајну шифру:
+two_factor_then_enter_passcode=Па унесите шифру:
+two_factor_verify=Проверити
+two_factor_invalid_passcode=Шифрa коју сте унели није важећа, молим бас пробајте поново!
+two_factor_reused_passcode=Љифром који сте унијели се већ користи, молим те пробај опет!
+two_factor_enable_error=Активација двоструке аутентификације није успела: %v
+two_factor_enable_success=Двострука аутентификација је успешно активирана за ваш налог!
+two_factor_recovery_codes_title=Шифра за опоравак за двоструку аутентификацију
+two_factor_recovery_codes_desc=Шифре за опоравак требају када привремено изгубите приступ до апликације за аутентификацију. Свака шифра за опоравак може да се користи само једном, молим вас да сачувате те шифре на сигурном месту.
+two_factor_regenerate_recovery_codes=Обновите шифре за опоравак
+two_factor_regenerate_recovery_codes_error=Обнова шифри за опоравак није успела: %v
+two_factor_regenerate_recovery_codes_success=Нове шифре за опоравак су успешно креиране!
+two_factor_disable_title=Онемогући двоструку аутентификацију
+two_factor_disable_desc=Ниво безбедности вашег налога биће ниже пошто сте онемогућили двоструку аутентификацију. Да ли желите да наставите?
+two_factor_disable_success=Двострука аутентификација је успешно искључена!
manage_access_token=Управљање токенима особном приступу
generate_new_token=Генериши нови токен
tokens_desc=Tокени се могу користити за приступ на API за Gogs.
+access_token_tips=The personal access token may be used as either username or password. It is recommended to use the "x-access-token" as the username and the personal access token as the password for Git applications.
new_token_desc=Сваки API токен ће имати пун приступ вашем налогу.
token_name=Име токена
generate_token=Генериши токен
@@ -336,6 +381,16 @@ delete_token=Уклони
access_token_deletion=Уклоњење токена личног приступа
access_token_deletion_desc=Уклоњење овог токена ће онемогућити сав приступ. Да ли желите да наставите?
delete_token_success=Лични токен је успешно избришен! Не заборавите да ажурирате апликацију.
+token_name_exists=Token with same name already exists.
+
+orgs.none=Нисте члан било које организације.
+orgs.leave_title=Напусти организацију
+orgs.leave_desc=Изгубићете приступ до свих спремишта и тимова после одласка из организације. Да ли желите да наставите?
+
+repos.leave=Изаћи
+repos.leave_title=Напусти српемиште
+repos.leave_desc=Изгубићете приступ до спремишта после одласка. Да ли желите да наставите?
+repos.leave_success=Успешно сте напустили спремиште '%s'!
delete_account=Уклоните ваш налог
delete_prompt=Операција ће трајно избрисати ваш налог, што се НЕ може поввратити!
@@ -348,7 +403,9 @@ owner=Власник
repo_name=Име спремишта
repo_name_helper=Најбоља имена су кратка и јединствена.
visibility=Видљивост
+unlisted=Unlisted
visiblity_helper=Приватно спремиште
+unlisted_helper=This repository is Unlisted
visiblity_helper_forced=Сва нова спремишта су приватна по одлуци администратора.
visiblity_fork_helper=(Промена ове вредности ће утицати на све гране)
clone_helper=Потребна вам помоћ клонирањем? Посетите страницу Помоћ!
@@ -374,24 +431,26 @@ mirror_last_synced=Задње синхронизовано
watchers=Посматрачи
stargazers=Пратиоци
forks=Огранци
+repo_description_helper=Опис спремишта. Максимум 512 карактера.
+repo_description_length=Доступни карактери
form.reach_limit_of_creation=Власник има максимум број %d спремишта.
-form.name_reserved=Име спремишта '%s' је резервирано.
-form.name_pattern_not_allowed=Име спремишта по шаблоном '%s' није дозвољено.
+form.name_not_allowed=Repository name or pattern %q is not allowed.
need_auth=Потребна ауторизација
migrate_type=Тип миграције
migrate_type_helper=Ово спремиште ће бити огледало
migrate_repo=Мигрирајте спремиште
migrate.clone_address=Адреса за клонирање
-migrate.clone_address_desc=Ово може бити URL адреса врсте HTTP/HTTPS/GIT или пут на локалном серверу.
+migrate.clone_address_desc=Могуће је да буде једна HTTP/HTTPS/GIT адреса.
+migrate.clone_address_desc_import_local=Можете и да мигрирате спремиште користећи пут на локалном серверу.
migrate.permission_denied=Немате права на увезете локално спремиште.
migrate.invalid_local_path=Невашећи локални пут. Можда не постоји или није директоријум.
+migrate.clone_address_resolved_to_blocked_local_address=Clone address resolved to a local network address that is implicitly blocked.
migrate.failed=Миграција није успела: %v
mirror_from=огледало од
forked_from=изданак од
-fork_from_self=Ви не можете да креирате огранак спремишта ако сте већ његов власник!
copy_link=Копирај
copy_link_success=Ископирано!
copy_link_error=Кликните ⌘-C или Ctrl-C да копирате
@@ -407,9 +466,9 @@ quick_guide=Кратак водич
clone_this_repo=Клонирај спремиште
create_new_repo_command=Направите ново спремиште са командне линије
push_exist_repo=Push постојећe спремиште са командне линије
-repo_is_empty=Овo спремиште je празнo, молимо вас, вратите се касније!
+bare_message=Ово спремиште не садржи још било који садржај.
-code=Код
+files=Датотеке
branch=Грана
tree=Дрво
filter_branch_and_tag=Профилтрирај по грани или ознаци
@@ -420,12 +479,23 @@ pulls=Захтеви за спајање
labels=Лабеле
milestones=Фазе
commits=Комити
+git_branches=Гране
releases=Издања
file_raw=Датотека
file_history=Историја
file_view_raw=Прегледај саму датотеку
file_permalink=Пермалинк
file_too_large=Ова датотека је превише веика да би се приказала
+video_not_supported_in_browser=Ваш прегледач не подржава HTML5 видео ознаке.
+
+branches.overview=Преглед
+branches.active_branches=Активне гране
+branches.stale_branches=Застареле гране
+branches.all=Све гране
+branches.updated_by=Ажуриран %[1]s од %[2]s
+branches.change_default_branch=Промените подразумевану грану
+branches.default_deletion_not_allowed=Cannot delete the default branch.
+branches.protected_deletion_not_allowed=Cannot delete a protected branch.
editor.new_file=Нова датотека
editor.upload_file=Отпреми датотеку
@@ -455,19 +525,22 @@ editor.cancel=Откажи
editor.filename_cannot_be_empty=Име датотеке неможе бити празно.
editor.branch_already_exists=Грана '%s' већ постоји за ово спремиште.
editor.directory_is_a_file='%s' је већ постојећа датотека а не директоријум у спремишту.
+editor.file_is_a_symlink=Датотека '%s' је једна симболична веза која се не може модификовати из веб-уредника.
editor.filename_is_a_directory='%s' је постојећи директоријум у спремишту.
editor.file_editing_no_longer_exists=Датотека '%s' више не постоји у спремишту.
editor.file_changed_while_editing=Садржај датотеке је промењен од почетка уређивања. Кликните овде да видите шта је промењено или опет поднесите комит да пребришете промене.
editor.file_already_exists=Датотека са именом '%s' већ постоји у овом спремишту.
editor.no_changes_to_show=Нема никаквих промена.
editor.fail_to_update_file=Промена над '%s' није успело са грешком: %v
+editor.fail_to_delete_file=Фајл '%s' није успешно обрисан, разлог грешке: %v
editor.add_subdir=Додај поддиректоријуми...
editor.unable_to_upload_files=Учитање датотеке '%s' није успело са грешкном: %v
editor.upload_files_to_dir=Пошаљи датотеке на '%s'
+commits.commit_history=Историја ревизија
commits.commits=Комити
commits.search=Претражи комите
-commits.find=Претражи
+commits.find=Пронађи
commits.author=Аутор
commits.message=Порука
commits.date=Датум
@@ -562,6 +635,7 @@ pulls.compare_compare=упореди
pulls.filter_branch=Филтер по грани
pulls.no_results=Нема резултата.
pulls.nothing_to_compare=Нема шта да се упореди, гране су исте.
+pulls.nothing_merge_base=Немогуће је упоредити јер двије гране имају потпуно другачију историју.
pulls.has_pull_request=`Већ постоји захтев за спајање између ове две гране: %[2]s#%[3]d`
pulls.create=Поднеси захтев за спајање
pulls.title_desc=жели да споји %[1]d комит(е) из %[2]s у %[3]s
@@ -577,8 +651,13 @@ pulls.is_checking=Провера још увек у току, молимо ва
pulls.can_auto_merge_desc=Овај захтев за спајање може бити обављен аутоматски.
pulls.cannot_auto_merge_desc=Овај захтев за спајање не може бити обављен аутоматски због сукоба.
pulls.cannot_auto_merge_helper=Молимо вас, обавите спајање ручно да би сте разрешили сукобе.
+pulls.create_merge_commit=Направите спајање
+pulls.rebase_before_merging=Поврат пре обједињавања
+pulls.commit_description=Опис ревизије
pulls.merge_pull_request=Обави спајање
pulls.open_unmerged_pull_exists=`Неможете поново отворити јер већ постоји захтев за спајање (#%d) из истог спремишта са истим информацијама о спајању и чека спајање.`
+pulls.delete_branch=Избришите грану
+pulls.delete_branch_has_new_commits=Грана не може да буде избрисана због нових ревизија после уједињења.
milestones.new=Нова фаза
milestones.open_tab=%d отворено
@@ -629,6 +708,29 @@ settings.collaboration.admin=За администратора
settings.collaboration.write=За писање
settings.collaboration.read=Читање
settings.collaboration.undefined=Није дефинисано
+settings.branches=Гране
+settings.branches_bare=Не можете да управљате гране за празно спремиште. Молим да прво ставите неке садржаје.
+settings.default_branch=Подразумевана грана
+settings.default_branch_desc=Подразумевана грана се сматра 'основим' граном за ревизије кода, пул захтеве и онлајн уређивање.
+settings.update=Ажурирање
+settings.update_default_branch_unsupported=Промена подразумеване гране није подржавана од стране Git верзија сервера.
+settings.update_default_branch_success=Подразумевана грана овог спремишта је била успешно ажурирана!
+settings.protected_branches=Заштићене гране
+settings.protected_branches_desc=Заштита гранe од додира, случајног брисања и команди листе кода.
+settings.choose_a_branch=Изаберите Филијалy...
+settings.branch_protection=Заштита Филијала
+settings.branch_protection_desc=Молимо изаберите заштитне опције за грану %s.
+settings.protect_this_branch=Заштити ову филијалy
+settings.protect_this_branch_desc=Онемогућите притисак и заштититy од брисања.
+settings.protect_require_pull_request=Захтев за повлачењем уместо директног додира
+settings.protect_require_pull_request_desc=Омогућите ову опцију да бисте спречили директан додир на ову грану. Обавезно мора бити покренуто у незаштићеној грани затим објединти на ову грану кao захтев за спајање.
+settings.protect_whitelist_committers=Whitelist који може да додирне ову грану
+settings.protect_whitelist_committers_desc=Додајте људе или тимовe у листу белих исправа за директан приступ овој теми. Корисници из беле листе ће заобићи захтев за повлачење захтева.
+settings.protect_whitelist_users=Корисници који могу да додирнy ову грану
+settings.protect_whitelist_search_users=Тражи кориснике
+settings.protect_whitelist_teams=Тимови кao и њихови чланови могу потакнути овy грану
+settings.protect_whitelist_search_teams=Тимови за претрагу
+settings.update_protect_branch_success=Заштитна опција за ову грану је успешно ажурирана!
settings.hooks=Webhooks
settings.githooks=Git хуки
settings.basic_settings=Основна подешавања
@@ -641,19 +743,26 @@ settings.change_reponame_prompt=Ова промена ће утицати на
settings.advanced_settings=Напредна подешавања
settings.wiki_desc=Омогући систем вики
settings.use_internal_wiki=Користи уграђен вики
+settings.allow_public_wiki_desc=Дозволите приступ wiki када је трговина приватна
settings.use_external_wiki=Користи спољни Вики
settings.external_wiki_url=URL адреса спољног Вики
settings.external_wiki_url_desc=Посетиоци ће бити преусмерени URL адреси након што кликну на картицу.
settings.issues_desc=Омогући систем праћења грешака
settings.use_internal_issue_tracker=Користи уграђен систем праћења грешака
+settings.allow_public_issues_desc=Дозволите приступ проблемима када је трговина приватна
settings.use_external_issue_tracker=Користи спољни систем праћења грешака
+settings.external_tracker_url=Екстерни проблем Tracker URL
+settings.external_tracker_url_desc=Посетиоци ће бити преусмерени на URL када кликну на картицу.
settings.tracker_url_format=Спољни формат везе система за праћење грешака
settings.tracker_issue_style=Стил именовања на спољном систему:
settings.tracker_issue_style.numeric=Нумерично
settings.tracker_issue_style.alphanumeric=Алфанумерично
settings.tracker_url_format_desc=Можете да користите шаблон {user} {repo} {index} за корисничко име, спремишта и задатака.
-settings.pulls_desc=Омогући систем захтева за спајање да би сте преузели јавних доприноса
+settings.pulls_desc=Enable pull requests to accept contributions between repositories and branches
+settings.pulls.ignore_whitespace=Занемарите промене у размаку
+settings.pulls.allow_rebase_merge=Дозволи употребу поврата да обједините обавезе
settings.danger_zone=Опасна зона
+settings.cannot_fork_to_same_owner=Не можете поделити спремиште власнику.
settings.new_owner_has_same_repo=Нови власник већ има спремиште по истим називом. Молимо вас изаберите друго име.
settings.convert=Претворити у обично спремиште
settings.convert_desc=Можете претворити огледало у обично спремиште, али та операција не може се укинути.
@@ -672,7 +781,7 @@ settings.wiki_deletion_success=Вики подаци за ово спремиш
settings.delete=Уклони ово спремиште
settings.delete_desc=Нећете мочи повратити спремиште после брисања. Молимо вас, будите сигурни.
settings.delete_notices_1=- Ова операција НЕЋЕ МОЧИ бити укинута.
-settings.delete_notices_2=- Ова операција ће трајно избрисати све из овог спремишта, укључујући и податке Git, задатци, коментаре и приступ сарадницима.
+settings.delete_notices_2=- Ова операција ће трајно избрисати све из овог спремишта, укључујући податке Git, задатке, коментаре и приступ сарадницима.
settings.delete_notices_fork_1=- Сви огранци ће постати независни после уклањање.
settings.deletion_success=Спремиште је успешно избрисано!
settings.update_settings_success=Подешавања спремишта су успешно ажурирани.
@@ -688,20 +797,25 @@ settings.collaborator_deletion_desc=Овај корисник неће имат
settings.remove_collaborator_success=Сарадник је уклоњен.
settings.search_user_placeholder=Претрага корисника...
settings.org_not_allowed_to_be_collaborator=Неможе се додати организација као сарадник.
-settings.user_is_org_member=Корисник је члан организације и потом неможе бити додат као сарадник.
-settings.add_webhook=Додај Webhook
settings.hooks_desc=Webhooks омогућавају спољашњим услугама да приме обавештења када се нешто одређено догоди на Gogs. Сазнајте више у овом водичу за Webhooks.
+settings.webhooks.add_new=Add a new webhook:
+settings.webhooks.choose_a_type=Choose a type...
+settings.add_webhook=Додај Webhook
settings.webhook_deletion=Уклони Webhook
settings.webhook_deletion_desc=Брисање овог Webhook ће довести до уклањања сву наведену информацију, укључујући и историју. Да ли желите да наставите?
settings.webhook_deletion_success=Webhook успешно избрисан!
settings.webhook.test_delivery=Провери испоруку
settings.webhook.test_delivery_desc=Пошаљи push за тестирање подешавања webhook
settings.webhook.test_delivery_success=Тест webhook је додат у месту испоруке. Процес може да потраје неколико секунди пре него што ће показати у историји испоруке.
+settings.webhook.redelivery=Redelivery
+settings.webhook.redelivery_success=Hook задатак '%s' је прочитан редоследом испоруке. Може потрајати неколико секунди да ce ажурира статус испоруке у историји.
settings.webhook.request=Захтев
settings.webhook.response=Одговор
settings.webhook.headers=Наслови
settings.webhook.payload=Садржај захтева
settings.webhook.body=Тело
+settings.webhook.err_cannot_parse_payload_url=Cannot parse payload URL: %v
+settings.webhook.url_resolved_to_blocked_local_address=Payload URL resolved to a local network address that is implicitly blocked.
settings.githooks_desc=Git Hooks пружају Git сами по себи. Можете ажурирати датотеке са подржаним hooks са пратећег списка операције.
settings.githook_edit_desc=Aко Webhook није активан, примерни садржај ће бити представљен. Ако оставите празно, Webhook ће бити онемогућен.
settings.githook_name=Име Hook-а
@@ -711,6 +825,7 @@ settings.add_webhook_desc=Послаћемо захтев POST на
settings.payload_url=URL адреса за слање
settings.content_type=Тип садржаја
settings.secret=Тајна
+settings.secret_desc=Тајна ће бити послата као SHA256 HMAC hex digest корисног оптерећења преко X-Gogs-Signature заглавља.
settings.slack_username=Корисничко име
settings.slack_icon_url=URL адреса иконице
settings.slack_color=Боја
@@ -720,10 +835,20 @@ settings.event_send_everything=У свим догађајима
settings.event_choose=Изабраћу шта ми је потребно.
settings.event_create=Креирај
settings.event_create_desc=Створена грана или ознака
-settings.event_pull_request=Захтев за спајање
-settings.event_pull_request_desc=Захтев за спајање отворенo, затворено, додељено, недодељенo, лабела ажурирана, лабела избрисана, или синхронизовано.
+settings.event_delete=Обриши
+settings.event_delete_desc=Oбрисана грана или ознака
+settings.event_fork=Креирај огранак
+settings.event_fork_desc=Спремиште је допуштено
settings.event_push=Push
settings.event_push_desc=Git push у спремиште
+settings.event_issues=Задаци
+settings.event_issues_desc=Проблем је отворен, затворен, поново отворен, уређен, додељен, не додељен, етикета је ажурирана, етикета је очишћена, помјерена или демилестирана.
+settings.event_pull_request=Захтев за спајање
+settings.event_pull_request_desc=Захтев за спајање отворенo, затворено, додељено, недодељенo, ознака ажурирана, ознака избрисана, створена прекретница, избрисана прекретница, или синхронизовано.
+settings.event_issue_comment=Коментар проблема
+settings.event_issue_comment_desc=Коментар проблема креиран, уређиван или избришен.
+settings.event_release=Издање
+settings.event_release_desc=Издање објављено на спремишту.
settings.active=Активно
settings.active_helper=Детаљи о догађају што је проузроковало hook ће исто бити испоручено.
settings.add_hook_success=Додат је нови webhook.
@@ -733,10 +858,13 @@ settings.delete_webhook=Уклони Webhook
settings.recent_deliveries=Недавне испоруке
settings.hook_type=Тип Hook-а
settings.add_slack_hook_desc=Додавање интеграције Slack у спремиште.
+settings.add_discord_hook_desc=Додавати Discord интеграцију вашем спремишту.
+settings.add_dingtalk_hook_desc=Додајте интеграцију Dingtalk у своје спремиште.
settings.slack_token=Токен
settings.slack_domain=Домен
settings.slack_channel=Канал
settings.deploy_keys=Кључеви за распоређивање
+settings.deploy_keys_helper=Common Gotcha! Ако хоћете да додате личне јавне кључеве, молим вас да их додате у поставке вашег налога.
settings.add_deploy_key=Додај кључ за распоређивање
settings.deploy_key_desc=Кључеви за распоређивање имају само приступ за читање. То није исто што и SSH кључеви.
settings.no_deploy_keys=Нисте додали ниједан кључ за распоређивање.
@@ -748,6 +876,8 @@ settings.add_key_success=Нови кључ распоређивање '%s' је
settings.deploy_key_deletion=Уклони кључ распоређивањa
settings.deploy_key_deletion_desc=Брисање овог кључа за распоређивање ће довести до укидање приступ на овом спремишту. Да ли желите да наставите?
settings.deploy_key_deletion_success=Кључ за распоређивање је успешно обрисан!
+settings.description_desc=Опис спремишта. Максимум 512 карактера.
+settings.description_length=Доступни карактери
diff.browse_source=Преглед изворни кода
diff.parent=родитељ
@@ -766,7 +896,6 @@ release.releases=Издања
release.new_release=Ново издање
release.draft=Нацрт
release.prerelease=Пред-верзија
-release.stable=Стабилно
release.edit=уреди
release.ahead=%d комита на %s почев од овог издања
release.source_code=Изворни код
@@ -813,8 +942,8 @@ team_name_helper=Ви ћете користити то име помињете
team_desc_helper=Шта је циљ овог тима?
team_permission_desc=Који ниво приступа треба имати овај тим?
-form.name_reserved=Име организације '%s' је резервирано.
-form.name_pattern_not_allowed=Шаблон имена '%s' није дозвољено.
+form.name_not_allowed=Organization name or pattern %q is not allowed.
+form.team_name_not_allowed=Team name or pattern %q is not allowed.
settings=Подешавања
settings.options=Опције
@@ -886,12 +1015,19 @@ first_page=Први
last_page=Последњи
total=Укупно: %d
+dashboard.build_info=Build Information
+dashboard.app_ver=Application version
+dashboard.git_version=Git version
+dashboard.go_version=Go version
+dashboard.build_time=Build time
+dashboard.build_commit=Build commit
dashboard.statistic=Статистика
dashboard.operations=Операције
dashboard.system_status=Статус системског монитора
dashboard.statistic_info=У бази података Gogs забележено је %d корисника, %d организације, %d јавних кључева, %d спремишта, %d watches, %d фаворита, %d акције, %d доступа, %d задатака, %d коментара, %d друштвених рачуна, %d пратње, %d огледала, %d издања, %d извора улаза, %d webhooks, %d фаза, %d лабела, %d hook задатака, %d тимова, %d задатака за надоградњу, %d прилога.
dashboard.operation_name=Име операције
dashboard.operation_switch=Пребаци
+dashboard.select_operation_to_run=Please select operation to run
dashboard.operation_run=Покрени
dashboard.clean_unbind_oauth=Уклони неповазане OAuth
dashboard.clean_unbind_oauth_success=Неповезане OAuth налози су успешно избрисани.
@@ -905,8 +1041,8 @@ dashboard.git_gc_repos=Изврши cакупљање смећа на спрем
dashboard.git_gc_repos_success=Сва спремишта су успешно извршили cакупљање смећа.
dashboard.resync_all_sshkeys=Препиши '.ssh/authorized_keys' (опрез: не Gogs тастери ће бити изгубљени)
dashboard.resync_all_sshkeys_success=Сви јавни кључеви су успешно преписани.
-dashboard.resync_all_update_hooks=Препиши сва hook-а за ажурирање спремишта (потребно кад пут конфигурације је промењен)
-dashboard.resync_all_update_hooks_success=Сва hook-а за ажурирање спремишта су успешно промењена.
+dashboard.resync_all_hooks=Поново синхронизујте купљенe pre-receive, ажурирањa и post-receive у свим репозиторијумима
+dashboard.resync_all_hooks_success=Све спремишта pre-receive, ажурирања и post-receive успешно су ресинкронизованa.
dashboard.reinit_missing_repos=Поново постави све податке са изгубљеним Git датотекама
dashboard.reinit_missing_repos_success=Сви подаци са изгубљеним Git датотекама су успешно поново постављени.
@@ -981,12 +1117,14 @@ repos.private=Приватно
repos.watches=Watches
repos.stars=Фаворити
repos.issues=Задаци
+repos.size=Величина
-auths.auth_manage_panel=Контролна панела аутентикације
+auths.auth_sources=Извори аутентичности
auths.new=Додај нови извор
auths.name=Име
auths.type=Тип
auths.enabled=Омогућено
+auths.default=Default
auths.updated=Ажурирано
auths.auth_type=Врста провере аутентичности
auths.auth_name=Име провере аутентичности
@@ -995,15 +1133,21 @@ auths.domain=Домен
auths.host=Хост
auths.port=Порт
auths.bind_dn=Bind DN
+auths.bind_dn_helper=Можете користити „%s” као место за корисничко име, e.g. DOM\%s
auths.bind_password=Bind лозинкa
auths.bind_password_helper=Упозорење: Ова лозинка је сачувана у облику нешифрованом текцту. Не користите високо-привилеговану налог.
auths.user_base=База претраживање корисника
auths.user_dn=DN корисника
auths.attribute_username=Атрибут username
auths.attribute_username_placeholder=Оставите празно да бисте користили корисничко име за регистрацију.
-auths.attribute_name=Име атрибута
+auths.attribute_name=Првo име атрибута
auths.attribute_surname=Презиме атрибута
auths.attribute_mail=Е-маил адреса
+auths.verify_group_membership=Потврдите чланство у групи
+auths.group_search_base_dn=База DN за претраживање групе
+auths.group_filter=Филтер групе
+auths.group_attribute_contain_user_list=Група атрибута која садржи листу корисника
+auths.user_attribute_listed_in_group=Атрибут прилагођен и наведен у групи
auths.attributes_in_bind=Екстракција атрибута у облику Bind DN
auths.filter=Филтер корисника
auths.admin_filter=Филтер администратора
@@ -1017,9 +1161,9 @@ auths.enable_tls=Омогући TLS шифровање
auths.skip_tls_verify=Прескочи TLS проверу
auths.pam_service_name=Назив PAM сервиса
auths.enable_auto_register=Омогући аутоматску регистрацију
-auths.tips=Савети
auths.edit=Промените подешавања канала аутентикације
auths.activated=Овај канал аутентикације је активан
+auths.default_auth=This authentication is default login source
auths.new_success=Нови канал аутентикације '%s' је успешно креиран.
auths.update_success=Подешавања канала аутентикације су успешно ажурирана.
auths.update=Ажурирај подешавања аутентикације
@@ -1028,107 +1172,189 @@ auths.delete_auth_title=Брисање канала аутентикације
auths.delete_auth_desc=Овај канал аутентикације ће бити избрисан. Да ли желите да наставите?
auths.still_in_used=Овај канал аутентикације још увек се користи од стране неких корисника, уклоните или пребаци ове кориснике у друг врсту аутентикације.
auths.deletion_success=Канал аутентикације успешно избрисан!
+auths.login_source_exist=Улазни извор '%s' већ постоји.
+auths.github_api_endpoint=API Endpoint
+config.not_set=(није подешено)
config.server_config=Конфигурација сервера
-config.app_name=Име апликације
-config.app_ver=Верзија апликације
-config.app_url=URL адреса апликације
-config.domain=Домен
-config.offline_mode=Режим ван мреже
-config.disable_router_log=Онемогући журнал рутера
+config.brand_name=Brand name
config.run_user=Покретни корисник
config.run_mode=Режим извршавања
-config.repo_root_path=Пут до корена спремишта
-config.static_file_root_path=Пут до статичке датотеке
-config.log_file_root_path=Пут до журнала
-config.script_type=Врста скрипта
-config.reverse_auth_user=Корисничко име при обрнуту аутентикацију
+config.server.external_url=External URL
+config.server.domain=Domain
+config.server.protocol=Protocol
+config.server.http_addr=HTTP address
+config.server.http_port=HTTP port
+config.server.cert_file=Certificate file
+config.server.key_file=Key file
+config.server.tls_min_version=Minimum TLS version
+config.server.unix_socket_permission=Unix socket permission
+config.server.local_root_url=Local root URL
+config.server.offline_mode=Offline mode
+config.server.disable_router_log=Disable router log
+config.server.enable_gzip=Enable Gzip
+config.server.app_data_path=Application data path
+config.server.load_assets_from_disk=Load assets from disk
+config.server.landing_url=Landing URL
config.ssh_config=SSH конфигурација
-config.ssh_enabled=Омогућено
-config.ssh_start_builtin_server=Покрени уграђени сервер
-config.ssh_domain=Домен
-config.ssh_port=Порт
-config.ssh_listen_port=Порт за слушање
-config.ssh_root_path=Основни пут
-config.ssh_key_test_path=Пут до кључу
-config.ssh_keygen_path=Пут до генератор кључева ('ssh-keygen')
-config.ssh_minimum_key_size_check=Минимална величина провера кључа
-config.ssh_minimum_key_sizes=Минимална величина кључева
+config.ssh.enabled=Enabled
+config.ssh.domain=Exposed domain
+config.ssh.port=Exposed port
+config.ssh.root_path=Root path
+config.ssh.keygen_path=Keygen path
+config.ssh.key_test_path=Key test path
+config.ssh.minimum_key_size_check=Minimum key size check
+config.ssh.minimum_key_sizes=Minimum key sizes
+config.ssh.rewrite_authorized_keys_at_start=Rewrite "authorized_keys" at start
+config.ssh.start_builtin_server=Start builtin server
+config.ssh.listen_host=Listen host
+config.ssh.listen_port=Listen port
+config.ssh.server_ciphers=Server ciphers
+config.ssh.server_macs=Server MACs
+config.ssh.server_algorithms=Server algorithms
+
+config.repo_config=Конфигурација спремишта
+config.repo.root_path=Root path
+config.repo.script_type=Script type
+config.repo.ansi_chatset=ANSI charset
+config.repo.force_private=Force private
+config.repo.max_creation_limit=Max creation limit
+config.repo.preferred_licenses=Preferred licenses
+config.repo.disable_http_git=Disable HTTP Git
+config.repo.enable_local_path_migration=Enable local path migration
+config.repo.enable_raw_file_render_mode=Enable raw file render mode
+config.repo.commits_fetch_concurrency=Commits fetch concurrency
+config.repo.editor.line_wrap_extensions=Editor line wrap extensions
+config.repo.editor.previewable_file_modes=Editor previewable file modes
+config.repo.upload.enabled=Upload enabled
+config.repo.upload.temp_path=Upload temporary path
+config.repo.upload.allowed_types=Upload allowed types
+config.repo.upload.file_max_size=Upload file size limit
+config.repo.upload.max_files=Upload files limit
config.db_config=Конфигурација базе података
-config.db_type=Тип
-config.db_host=Хост
-config.db_name=Име
-config.db_user=Корисник
-config.db_ssl_mode=Режим SSL
-config.db_ssl_mode_helper=(само за postgres)
-config.db_path=Пут
-config.db_path_helper=(за "sqlite3" и "tidb")
-
-config.service_config=Подешавања сервиса
-config.register_email_confirm=Потражи потврду путем е-поштом
-config.disable_register=Искључи нове регистрације
-config.show_registration_button=Прикажи дугме за регистрацију
-config.require_sign_in_view=Прикажи налог за пријаву
-config.mail_notify=Обавештења преко е-поште
-config.disable_key_size_check=Онемогући проверу на минималној величини кључа
-config.enable_captcha=Омогући Captcha
-config.active_code_lives=Дужина живота активних кодова
-config.reset_password_code_lives=Дужина живота ресетних кодова за лозинку
+config.db.type=Type
+config.db.host=Host
+config.db.name=Name
+config.db.schema=Schema
+config.db.schema_helper=(for "postgres" only)
+config.db.user=User
+config.db.ssl_mode=SSL mode
+config.db.ssl_mode_helper=(for "postgres" only)
+config.db.path=Path
+config.db.path_helper=(for "sqlite3"only)
+config.db.max_open_conns=Maximum open connections
+config.db.max_idle_conns=Maximum idle connections
+
+config.security_config=Security configuration
+config.security.login_remember_days=Login remember days
+config.security.cookie_remember_name=Remember cookie
+config.security.cookie_username=Username cookie
+config.security.cookie_secure=Enable secure cookie
+config.security.reverse_proxy_auth_user=Reverse proxy authentication header
+config.security.enable_login_status_cookie=Enable login status cookie
+config.security.login_status_cookie_name=Login status cookie
+config.security.local_network_allowlist=Local network allowlist
+
+config.email_config=Email configuration
+config.email.enabled=Enabled
+config.email.subject_prefix=Subject prefix
+config.email.host=Host
+config.email.from=From
+config.email.user=User
+config.email.disable_helo=Disable HELO
+config.email.helo_hostname=HELO hostname
+config.email.skip_verify=Skip certificate verify
+config.email.use_certificate=Use custom certificate
+config.email.cert_file=Certificate file
+config.email.key_file=Key file
+config.email.use_plain_text=Use plain text
+config.email.add_plain_text_alt=Add plain text alternative
+config.email.send_test_mail=Send test email
+config.email.test_mail_failed=Failed to send test email to '%s': %v
+config.email.test_mail_sent=Test email has been sent to '%s'.
+
+config.auth_config=Authentication configuration
+config.auth_custom_logout_url=Custom logout URL
+config.auth.activate_code_lives=Activate code lives
+config.auth.reset_password_code_lives=Reset password code lives
+config.auth.require_email_confirm=Require email confirmation
+config.auth.require_sign_in_view=Require sign in view
+config.auth.disable_registration=Disable registration
+config.auth.enable_registration_captcha=Enable registration captcha
+config.auth.enable_reverse_proxy_authentication=Enable reverse proxy authentication
+config.auth.enable_reverse_proxy_auto_registration=Enable reverse proxy auto registration
+config.auth.reverse_proxy_authentication_header=Reverse proxy authentication header
+
+config.user_config=User configuration
+config.user.enable_email_notify=Enable email notification
-config.webhook_config=Подешавања Webhook
-config.queue_length=Дужина реда
-config.deliver_timeout=Време до отказивање слања
-config.skip_tls_verify=Прескочи TLS проверу
-
-config.mailer_config=Подешавања поште
-config.mailer_enabled=Омогућено
-config.mailer_disable_helo=Онемогући HELO
-config.mailer_name=Име
-config.mailer_host=Хост
-config.mailer_user=Корисник
-config.send_test_mail=Пошаљи тест поруку
-config.test_mail_failed=Тест писмо '%s' није пошаљено: %v
-config.test_mail_sent=Тест писмо је послато '%s'.
-
-config.oauth_config=Подешавања OAuth
-config.oauth_enabled=Укључено
+config.session_config=Подешавања сесије
+config.session.provider=Provider
+config.session.provider_config=Provider config
+config.session.cookie_name=Cookie
+config.session.https_only=HTTPS only
+config.session.gc_interval=GC interval
+config.session.max_life_time=Max life time
+config.session.csrf_cookie_name=CSRF cookie
config.cache_config=Подешавања кеша
-config.cache_adapter=Кеш адаптер
-config.cache_interval=Кеш интервал
-config.cache_conn=Кеш на вези
-
-config.session_config=Подешавања сесије
-config.session_provider=Добављач сесија
-config.provider_config=Конфигурација на добављачу
-config.cookie_name=Име датотеке cookie
-config.enable_set_cookie=Укључи поставку cookie
-config.gc_interval_time=Интервал cакупљања смећа
-config.session_life_time=Дужина живота сесјие
-config.https_only=Само HTTPS
-config.cookie_life_time=Дужина живота датотеке cookie
+config.cache.adapter=Adapter
+config.cache.interval=GC interval
+config.cache.host=Host
+
+config.http_config=HTTP Конфигурација
+config.http.access_control_allow_origin=Access control allow origin
+
+config.attachment_config=Attachment configuration
+config.attachment.enabled=Enabled
+config.attachment.path=Path
+config.attachment.allowed_types=Allowed types
+config.attachment.max_size=Size limit
+config.attachment.max_files=Files limit
+
+config.release_config=Release configuration
+config.release.attachment.enabled=Attachment enabled
+config.release.attachment.allowed_types=Attachment allowed types
+config.release.attachment.max_size=Attachment size limit
+config.release.attachment.max_files=Attachment files limit
config.picture_config=Подешавање слика
-config.picture_service=Услуга за слике
-config.disable_gravatar=Онемогући Gravatar
-config.enable_federated_avatar=Омогући Federated Avatars
+config.picture.avatar_upload_path=User avatar upload path
+config.picture.repo_avatar_upload_path=Repository avatar upload path
+config.picture.gravatar_source=Gravatar source
+config.picture.disable_gravatar=Disable Gravatar
+config.picture.enable_federated_avatar=Enable federated avatars
+
+config.mirror_config=Mirror configuration
+config.mirror.default_interval=Default interval
+
+config.webhook_config=Подешавања Webhook
+config.webhook.types=Types
+config.webhook.deliver_timeout=Deliver timeout
+config.webhook.skip_tls_verify=Skip TLS verify
config.git_config=Git конфигурација
-config.git_disable_diff_highlight=Онемогући бојење синтаксе када гледате разлике
-config.git_max_diff_lines=Максималан број различитих редова (у датотеци)
-config.git_max_diff_line_characters=Максималан број различитих карактера (у реду)
-config.git_max_diff_files=Максималан број измењених датотека (приказаних)
-config.git_gc_args=Аргументи на cакупљање смећа
-config.git_migrate_timeout=Време до отказања миграције
-config.git_mirror_timeout=Време до отазање синхронизацији огледала
-config.git_clone_timeout=Време до отказивања клонирањем
-config.git_pull_timeout=Време до отказивања pull операцији
-config.git_gc_timeout=Време до отказивања cакупљање смећа
+config.git.disable_diff_highlight=Disable diff syntax highlight
+config.git.max_diff_lines=Diff lines limit (for a single file)
+config.git.max_diff_line_characters=Diff characters limit (for a single line)
+config.git.max_diff_files=Diff files limit (for a single diff)
+config.git.gc_args=GC arguments
+config.git.migrate_timeout=Migration timeout
+config.git.mirror_timeout=Mirror fetch timeout
+config.git.clone_timeout=Clone timeout
+config.git.pull_timeout=Pull timeout
+config.git.gc_timeout=GC timeout
+
+config.lfs_config=LFS configuration
+config.lfs.storage=Storage
+config.lfs.objects_path=Objects path
config.log_config=Kонфигурација журнала
-config.log_mode=Режим журналовања
+config.log_file_root_path=Пут до журнала
+config.log_mode=Режим
+config.log_options=Опције
monitor.cron=Cron задаци
monitor.name=Име
@@ -1159,17 +1385,24 @@ notices.delete_success=Системска обавештавања су успе
create_repo=креира спремиште %s
rename_repo=преимензје спремиште од %[1]s на %[3]s
commit_repo=извршује push на %[3]s у %[4]s
+compare_commits=Поређење ових %d комита
+transfer_repo=преноси спремиште %s на %s
create_issue=`отвара задатак %s#%[2]s`
close_issue=`затвара задатак %s#%[2]s`
reopen_issue=`поново отвара задатак %s#%[2]s`
+comment_issue=`коментарише на задатаку %s#%[2]s`
create_pull_request=`шаље захтев за спајање %s#%[2]s`
close_pull_request=`затвара захтев за спајање %s#%[2]s`
reopen_pull_request=`поново отвара захтев за спајање %s#%[2]s`
-comment_issue=`коментарише на задатаку %s#%[2]s`
merge_pull_request=`прихваћује захтев за спајање %s#%[2]s`
-transfer_repo=преноси спремиште %s на %s
+create_branch=створи нову филијалy %[3]s at %[4]s
+delete_branch=избрисана филијалa %[2]s at %[3]s
push_tag=извршује push са ознаком %[2]s на %[3]s
-compare_commits=Поређење ових %d комита
+delete_tag=избрисана ознака %[2]s at %[3]s
+fork_repo=отворио спремиште %s
+mirror_sync_push=синхронизује се %[3]s у %[4]s из огледала
+mirror_sync_create=синхронизована нова референца %[2]s y %[3]s из огледала
+mirror_sync_delete=синхронизоване и избрисане референце %[2]s y %[3]s из огледала
[tool]
ago=пре
@@ -1191,6 +1424,7 @@ months=%[2]s %[1]d месеци
years=%[2]s %[1]d година
raw_seconds=секунди
raw_minutes=минута
+raw_hours=hours
[dropzone]
default_message=Превуците датотеку овде или кликните за преузимање.
diff --git a/conf/locale/locale_sv-SE.ini b/conf/locale/locale_sv-SE.ini
index c37deb34db6..fda8a860c4a 100644
--- a/conf/locale/locale_sv-SE.ini
+++ b/conf/locale/locale_sv-SE.ini
@@ -9,7 +9,6 @@ sign_out=Logga ut
sign_up=Registrera dig
register=Registrera dig
website=Webbplats
-version=Version
page=Sida
template=Mall
language=Språk
@@ -44,23 +43,27 @@ issues=Problem
cancel=Avbryt
+[status]
+page_not_found=Sidan hittades inte
+internal_server_error=Internt serverfel
+
[install]
install=Installation
title=Steg för att installera för första gången
docker_helper=Om du kör Gogs inuti Docker, vänligen läs Riktninjerna nogrant innan du ändrar någonting på denna sida!
-requite_db_desc=Gogs kräver MySQL, PostgreSQL, SQLite3 eller TiDB.
+requite_db_desc=Gogs requires MySQL, PostgreSQL, SQLite3 or TiDB (via MySQL protocol).
db_title=Databasinställningar
db_type=Databastyp
host=Server
user=Användare
password=Lösenord
db_name=Databasens namn
+db_schema=Schema
db_helper=Se till att i MySQL använda INNODB med teckenuppsättningen utf8_general_ci.
ssl_mode=SSL-läge
path=Filväg
-sqlite_helper=Sökvägen för SQLite3 eller TiDB databas. Vänligen använd den absoluta sökvägen när du kör som en tjänst.
-err_empty_db_path=SQLite3 eller TiDB databassökvägen får inte vara tom.
-err_invalid_tidb_name=TiDB databasnamn tillåter inte tecknen "." och "-".
+sqlite_helper=Sökvägen för SQLite3 databas. Vänligen använd den absoluta sökvägen när du kör som en tjänst.
+err_empty_db_path=Sökvägen till SQLite3 databasen får inte vara tom.
no_admin_and_disable_registration=Du kan inte inaktivera registrering utan att skapa ett administratörskonto.
err_empty_admin_password=Administratörslösenordet får ej vara tomt.
@@ -75,12 +78,17 @@ domain=Domän
domain_helper=Detta påverkar SSH klonings webbadresser.
ssh_port=SSH-port
ssh_port_helper=Portnumret som din SSH-server brukar, lämna tomt för att inaktivera SSH-funktionaliteten.
+use_builtin_ssh_server=Använd inbyggd SSH Server
+use_builtin_ssh_server_popup=Starta inbyggd SSH-server för Git-operationer för att skilja från system-SSH-servern.
http_port=HTTP Port
http_port_helper=Portnumret vilket applikationen kommer lyssnar på.
app_url=Applikationsadressen
app_url_helper=Detta påverkar HTTP/HTTPS kloningsadressen och på platser i e-post.
log_root_path=Loggsökväg
log_root_path_helper=Katalog till vilken loggfiler skrivs.
+enable_console_mode=Aktivera Konsolläge
+enable_console_mode_popup=Utöver fil-läge, skriver även ut loggar till konsol.
+default_branch=Default Branch
optional_title=Övriga inställningar
email_title=E-post tjänstens inställningar
@@ -116,7 +124,10 @@ sqlite3_not_available=Din release stödjer ej SQLite3, ladda vänligen ner den o
invalid_db_setting=Databas inställningen är inkorrekt: %v
invalid_repo_path=Utvecklingskatalogens rotsökväg är ogiltig: %v
run_user_not_match=Köranvändaren är inte aktuell användare: %s -> %s
+smtp_host_missing_port=SMTP-värden saknar port i adressen.
+invalid_smtp_from=SMTP från fält är inte giltigt: %v
save_config_failed=Konfigurationssparningen misslyckades: %v
+init_failed=Det gick inte att initiera appen: %v
invalid_admin_setting=Inställningarna för administratörskontot är felaktiga: %v
install_success=Välkommen! Vi är glada att du väljer Gogs, ha kul och ta hand om dig.
invalid_log_root_path=Ogiltig rotsökväg för loggfiler: %v
@@ -137,6 +148,7 @@ issues.in_your_repos=I dina utvecklingskataloger
[explore]
repos=Utvecklingskataloger
users=Användare
+organizations=Organisationer
search=Sök
[auth]
@@ -145,6 +157,8 @@ register_hepler_msg=Har du redan ett konto? Logga in nu!
social_register_hepler_msg=Har du redan ett konto? Anslut det nu!
disable_register_prompt=Tyvärr är användarregistreringen inaktiverad. Vänligen kontakta din administratör.
disable_register_mail=Tyvärr så är registreringsbekräftelemailutskick inaktiverat.
+auth_source=Autentiseringskälla
+local=Lokal
remember_me=Kom ihåg mig
forgot_password=Glömt lösenord
forget_password=Glömt lösenordet?
@@ -156,7 +170,6 @@ prohibit_login_desc=Ditt konto är förhindrat från att logga in. Vänligen kon
resent_limit_prompt=Tyvärr, du har nyligen begärt ett aktiveringsmail. Vänligen vänta 3 minuter och försök sedan igen.
has_unconfirmed_mail=Hej %s, du har en obekräftad epostaddress (%s). Om du inte har fått ett bekräftelsemail eller behöver ett nytt, klicka på knappen nedan.
resend_mail=Klicka här för att skicka ditt aktiveringsmejl igen
-email_not_associate=Denna e-postadress är inte knutet till något konto.
send_reset_mail=Klicka här för att skicka e-post med lösenordsåterställning (igen)
reset_password=Återställ ditt lösenord
invalid_code=Tyvärr, din bekräftelsekod har antingen upphört att gälla eller är ogiltig.
@@ -164,6 +177,14 @@ reset_password_helper=Klicka här för att återställa ditt lösenord
password_too_short=Lösenordet får ej vara kortare än 6 tecken.
non_local_account=Icke-lokala konton får inte ändra lösenord genom Gogs.
+login_two_factor=Tvåfaktorsautentisering
+login_two_factor_passcode=Autentiseringskod
+login_two_factor_enter_recovery_code=Ange en tvåfaktorsautentisering återställningskod
+login_two_factor_recovery=Tvåfaktorsautentisering Återställning
+login_two_factor_recovery_code=Återställningskod
+login_two_factor_enter_passcode=Ange en tvåfaktorsautentiserings kod
+login_two_factor_invalid_recovery_code=Återställningskoden har använts eller är inte giltig.
+
[mail]
activate_account=Vänligen aktivera ditt konto
activate_email=Verifiera din epostaddress
@@ -199,6 +220,7 @@ Content=Innehåll
require_error=får inte vara tomt
alpha_dash_error=` får bara innehålla bokstäver, nummer och bindestreck (-_).`
alpha_dash_dot_error=` får bara innehålla bokstäver, nummer, bindestreck (-_) och punkt`
+alpha_dash_dot_slash_error=` får bara innehålla bokstäver, nummer, bindestreck (-_), punkt eller snedstreck`
size_error=` måste vara av storleken %s`
min_size_error=` måste innehålla minst %s tecken.`
max_size_error=` får inte innehålla mer än %s tecken.`
@@ -215,6 +237,7 @@ org_name_been_taken=Organisationsnamnet har redan används.
team_name_been_taken=Team namn är redan använt.
email_been_used=E-postadressen har redan använts.
username_password_incorrect=Användarnamnet eller lösenordet är inte korrekt.
+auth_source_mismatch=Den autentiseringskälla som valts är inte associerad med användaren.
enterred_invalid_repo_name=Se till att utvecklingskatalogen som du angav är rätt.
enterred_invalid_owner_name=Kontrollera att ägarnamnet som du angav är rätt.
enterred_invalid_password=Se till att den som lösenord du angett är rätt.
@@ -242,19 +265,18 @@ following=Följer
follow=Följ
unfollow=Sluta följa
-form.name_reserved=Användarnamnet "%s" är reserverad.
-form.name_pattern_not_allowed=Användarnamnet '%s' är inte tillåtet.
+form.name_not_allowed=Användarnamn eller mönster %q är inte tillåtet.
[settings]
profile=Profil
password=Lösenord
avatar=Avatar
ssh_keys=SSH-nycklar
-social=Sociala konton
-applications=Applikationer
+security=Säkerhet
+repos=Utvecklingskataloger
orgs=Organisationer
+applications=Applikationer
delete=Radera konto
-uid=Uid
public_profile=Offentlig profil
profile_desc=Din epostaddress är offentlig och kommer att användas för alla kontorelaterade notifieringar och alla webbaserade åtgärder gjorda på sidan.
@@ -295,6 +317,7 @@ delete_email=Radera
email_deletion=Borttagning Av Epostaddress
email_deletion_desc=Borttagning av denna epostaddress kommer att ta bort relaterad information. Vill du fortsätta?
email_deletion_success=Epostaddressen har tagits bort!
+email_deletion_primary=Cannot delete primary email address.
add_new_email=Lägg till ny e-postadress
add_email=Lägga till e-post
add_email_confirmation_sent=Ett nytt bekräftelsemail har skickats till '%s', kontrollera vänligen din inbox inom dom närmsta %d timmarna för att slutföra bekräftelsen.
@@ -320,14 +343,36 @@ no_activity=Ingen nylig aktivitet
key_state_desc=Denna nyckel har använts inom dom senaste 7 dagarna
token_state_desc=Denna token har används inom dom senaste 7 dagarna
-manage_social=Hantera länkade sociala konton
-social_desc=Detta är en lista över länkade sociala konton. Ta bort alla länkningar som du inte känner igen.
-unbind=Ta bort länkning
-unbind_success=Socialt konto är inte längre länkat.
+two_factor=Tvåfaktorsautentisering
+two_factor_status=Status:
+two_factor_on=På
+two_factor_off=Av
+two_factor_enable=Aktivera
+two_factor_disable=Inaktivera
+two_factor_view_recovery_codes=Visa och spara dina återställningskoder på ett säkert ställe. Du kan använda dem som kod om du förlorar åtkomsten till din autentisering applikation.
+two_factor_http=För HTTP/HTTPS-operationer kan du inte längre använda vanliga användarnamn och lösenord. Vänligen skapa och använda Personlig åtkomsttoken som ditt användarnamn, t.ex. %[3]s.
+two_factor_enable_title=Avaktivera Tvåfaktorsautentisering
+two_factor_scan_qr=Vänligen använd din autentiseringsapp för att skanna bilden:
+two_factor_or_enter_secret=Eller ange hemligheten:
+two_factor_then_enter_passcode=Ange sedan lösenordet:
+two_factor_verify=Verifiera
+two_factor_invalid_passcode=The passcode you entered is not valid, please try again!
+two_factor_reused_passcode=The passcode you entered has already been used, please try another one!
+two_factor_enable_error=Enable Two-factor authentication failed: %v
+two_factor_enable_success=Two-factor authentication has enabled for your account successfully!
+two_factor_recovery_codes_title=Two-factor Authentication Recovery Codes
+two_factor_recovery_codes_desc=Recovery codes are used when you temporarily lose access to your authentication application. Each recovery code can only be used once, please keep these codes in a safe place.
+two_factor_regenerate_recovery_codes=Regenerate Recovery Codes
+two_factor_regenerate_recovery_codes_error=Regenerate recovery codes failed: %v
+two_factor_regenerate_recovery_codes_success=New recovery codes has been generated successfully!
+two_factor_disable_title=Disable Two-factor Authentication
+two_factor_disable_desc=Your account security level will decrease after disabled two-factor authentication. Do you want to continue?
+two_factor_disable_success=Two-factor authentication has disabled successfully!
manage_access_token=Hantera personliga åtkomst-tokens
generate_new_token=Generera Nya Tokens
tokens_desc=Tokens som du har genererat kan användas för åtkomst av Gogs APIer.
+access_token_tips=The personal access token may be used as either username or password. It is recommended to use the "x-access-token" as the username and the personal access token as the password for Git applications.
new_token_desc=Varje token har full tillgång till ditt konto.
token_name=Tokennamn
generate_token=Generera Token
@@ -336,6 +381,16 @@ delete_token=Radera
access_token_deletion=Borttagning Av Personlig Åtkomsttoken
access_token_deletion_desc=Borttagning av denna personliga åtkomsttoken kommer att ta bort all relaterad åtkomst för applikationer. Vill du fortsätta?
delete_token_success=Personlig åtkomsttoken har tagits bort! Glöm inte bort att uppdatera din applikation också.
+token_name_exists=Token with same name already exists.
+
+orgs.none=Du är inte en medlem i någon organisation.
+orgs.leave_title=Lämna en organisation
+orgs.leave_desc=You will lose access to all repositories and teams after you left the organization. Do you want to continue?
+
+repos.leave=Leave
+repos.leave_title=Leave repository
+repos.leave_desc=You will lose access to the repository after you left. Do you want to continue?
+repos.leave_success=You have left repository '%s' successfully!
delete_account=Radera ditt konto
delete_prompt=Åtgärden kommer at ta bort ditt konto permanent, och kan INTE ångras!
@@ -348,7 +403,9 @@ owner=Ägare
repo_name=Utvecklingskatalogens namn
repo_name_helper=Ett bra utvecklingskatalogsnamn består vanligtvis av korta, minnesvärda och unika nyckelord.
visibility=Synligt för
+unlisted=Unlisted
visiblity_helper=Denna utvecklingskatalog är Privat
+unlisted_helper=This repository is Unlisted
visiblity_helper_forced=Administratören har tvingat alla nya utvecklingskataloger att vara Privata
visiblity_fork_helper=(Ändring av detta värde kommer att påverka alla forks)
clone_helper=Behöver du hjälp med kloning? Gå till Hjälp!
@@ -374,24 +431,26 @@ mirror_last_synced=Senast synkad
watchers=Observerare
stargazers=Stjärnmärkare
forks=Forks
+repo_description_helper=Description of repository. Maximum 512 characters length.
+repo_description_length=Available characters
form.reach_limit_of_creation=Ägaren har nått maxgränsen av %d skapade repon.
-form.name_reserved=Namnet '%s' på utvecklingskatalogen är reserverat.
-form.name_pattern_not_allowed=Reponamnet '%s' är inte tillåtet.
+form.name_not_allowed=Repository name or pattern %q is not allowed.
need_auth=Tillstånd Krävs
migrate_type=Migreringstyp
migrate_type_helper=Detta repo kommer att vara en spegling
migrate_repo=Migrera Repot
migrate.clone_address=Kloningsaddress
-migrate.clone_address_desc=Detta kan vara en HTTP/HTTPS/GIT-URL eller en lokal sökväg på servern.
+migrate.clone_address_desc=This can be a HTTP/HTTPS/GIT URL.
+migrate.clone_address_desc_import_local=You're also allowed to migrate a repository by local server path.
migrate.permission_denied=Du får inte importera lokala repon.
migrate.invalid_local_path=Ogiltig lokal sökväg, den finns inte eller är inte en katalog.
+migrate.clone_address_resolved_to_blocked_local_address=Clone address resolved to a local network address that is implicitly blocked.
migrate.failed=Migrering misslyckades: %v
mirror_from=spegling av
forked_from=forkad från
-fork_from_self=Du kan inte forka ett repo som du redan äger!
copy_link=Kopiera
copy_link_success=Kopierad!
copy_link_error=Tryck på ⌘-C eller Ctrl-C för att kopiera
@@ -407,9 +466,9 @@ quick_guide=Snabbguide
clone_this_repo=Klona detta repo
create_new_repo_command=Skapa ett nytt repo på kommandoraden
push_exist_repo=Knuffa ett existerande repo från kommandoraden
-repo_is_empty=Detta repo är tomt, vänligen kom tillbaka senare!
+bare_message=This repository does not have any content yet.
-code=Kod
+files=Filer
branch=Gren
tree=Träd
filter_branch_and_tag=Filtrera gren eller tagg
@@ -420,12 +479,23 @@ pulls=Pull-förfrågningar
labels=Etiketter
milestones=Milstenar
commits=Incheckningar
+git_branches=Brancher
releases=Släpp
file_raw=Rå
file_history=Historik
file_view_raw=Visa i råformat
file_permalink=Permalänk
file_too_large=Denna fil är för stor för att visas
+video_not_supported_in_browser=Din webbläsare stöder inte HTML5 video-tagg.
+
+branches.overview=Översikt
+branches.active_branches=Aktiva brancher
+branches.stale_branches=Djärva brancher
+branches.all=Alla brancher
+branches.updated_by=Uppdaterade %[1]s med %[2]s
+branches.change_default_branch=Ändra standard branch
+branches.default_deletion_not_allowed=Cannot delete the default branch.
+branches.protected_deletion_not_allowed=Cannot delete a protected branch.
editor.new_file=Ny fil
editor.upload_file=Ladda upp fil
@@ -455,16 +525,19 @@ editor.cancel=Avbryt
editor.filename_cannot_be_empty=Filnamnet får inte vara tomt.
editor.branch_already_exists=Grenen '%s' finns redan i förrådet.
editor.directory_is_a_file=Komponenten '%s' i föräldrasökvägen är en fil, inte en katalog i detta förråd.
+editor.file_is_a_symlink=Filen '%s' är en symbolisk länk som inte kan editeras i webbläsaren.
editor.filename_is_a_directory=Filnmanet '%s' är en existerande katalog i detta förråd.
editor.file_editing_no_longer_exists=Filen '%s' som du redigerar finns inte lägre i förrådet.
editor.file_changed_while_editing=Filinnhållet har ändrats sedan du började redigera. Klicka här för att se vad som ändrats eller tryck checka in igen för att skriva över dessa ändringar.
editor.file_already_exists=En fil med namnet '%s' finns redan i förrådet.
editor.no_changes_to_show=Det finns inga ändringar att visa.
editor.fail_to_update_file=Uppdateringen/skapandet av filen '%s' misslyckades med felet: %v
+editor.fail_to_delete_file=Det gick inte att ta bort filen '%s' med fel: %v.
editor.add_subdir=Lägg till underkatalog...
editor.unable_to_upload_files=Uppladdning av filen '%s' misslyckades med felet: %v
editor.upload_files_to_dir=Ladda upp filer till '%s'
+commits.commit_history=Commit historia
commits.commits=Incheckningar
commits.search=Sök bland incheckningar
commits.find=Sök
@@ -562,6 +635,7 @@ pulls.compare_compare=jämför
pulls.filter_branch=Filtrera gren
pulls.no_results=Inga resultat hittades.
pulls.nothing_to_compare=Det finns inget att jämföra eftersom bas och huvudgrenar är lika.
+pulls.nothing_merge_base=Det finns inget att jämföra eftersom två branch har helt olika historia.
pulls.has_pull_request=`Det finns redan en pullförfrågan mellan detta två mål: %[2]s#%[3]s^
pulls.create=Skapa Pullförfrågan
pulls.title_desc=vill sammanfoga %[1]d incheckningar från s[2]s in i %[3]s
@@ -577,8 +651,13 @@ pulls.is_checking=Konfliktkontroll är fortfarande pågågående, vänligen uppd
pulls.can_auto_merge_desc=Denna pull-förfrågan kan sammanfogas automatiskt.
pulls.cannot_auto_merge_desc=Denna pull-förfrågan kan inte sammanfogas automatiskt eftersom det finns konflikter.
pulls.cannot_auto_merge_helper=Vänligen sammanfoga manuellt för att lösa konflikter.
+pulls.create_merge_commit=Skapa en merge commit
+pulls.rebase_before_merging=Rebase innan merge
+pulls.commit_description=Commit beskrivning
pulls.merge_pull_request=Sammanfoga Pull-förfrågan
pulls.open_unmerged_pull_exists=`Du kan inte utföra återöppningsoperationen eftersom det finns redan en öppen pull-förfrågan (#%d) från samma repo med samma sammanfogningsinformation som väntar på sammanfogning.`
+pulls.delete_branch=Ta bort gren
+pulls.delete_branch_has_new_commits=Branch kan inte tas bort eftersom den har nya commits efter merge.
milestones.new=Ny milstolpe
milestones.open_tab=%d Öppna
@@ -629,6 +708,29 @@ settings.collaboration.admin=Adminstrera
settings.collaboration.write=Skriva
settings.collaboration.read=Läsa
settings.collaboration.undefined=Odefinierad
+settings.branches=Brancher
+settings.branches_bare=Du kan inte hantera brancher för kala repository. Vänligen push innehåll först.
+settings.default_branch=Default Branch
+settings.default_branch_desc=The default branch is considered the "base" branch for code commits, pull requests and online editing.
+settings.update=Update
+settings.update_default_branch_unsupported=Change default branch is not supported by the Git version on server.
+settings.update_default_branch_success=Default branch of this repository has been updated successfully!
+settings.protected_branches=Protected Branches
+settings.protected_branches_desc=Protect branches from force pushing, accidental deletion and whitelist code committers.
+settings.choose_a_branch=Choose a branch...
+settings.branch_protection=Branch Protection
+settings.branch_protection_desc=Please choose protect options for branch %s.
+settings.protect_this_branch=Protect this branch
+settings.protect_this_branch_desc=Disable force pushes and prevent from deletion.
+settings.protect_require_pull_request=Require pull request instead direct pushing
+settings.protect_require_pull_request_desc=Enable this option to disable direct pushing to this branch. Commits have to be pushed to another non-protected branch and merged to this branch through pull request.
+settings.protect_whitelist_committers=Whitelist who can push to this branch
+settings.protect_whitelist_committers_desc=Add people or teams to whitelist of direct push to this branch. Users in whitelist will bypass require pull request check.
+settings.protect_whitelist_users=Users who can push to this branch
+settings.protect_whitelist_search_users=Sök användare
+settings.protect_whitelist_teams=Teams for which members of them can push to this branch
+settings.protect_whitelist_search_teams=Sök team
+settings.update_protect_branch_success=Protect options for this branch has been updated successfully!
settings.hooks=Webbhookar
settings.githooks=Githookar
settings.basic_settings=Basinställningar
@@ -641,19 +743,26 @@ settings.change_reponame_prompt=Denna ändring kommer att påverka hur länkar r
settings.advanced_settings=Advancerade Inställningar
settings.wiki_desc=Aktivera wikisystem
settings.use_internal_wiki=Använd inbyggd wiki
+settings.allow_public_wiki_desc=Allow public access to wiki when repository is private
settings.use_external_wiki=Använd extern wiki
settings.external_wiki_url=Extern Wiki-URL
settings.external_wiki_url_desc=Besökare kommer att bli omdirigerade till denna URL när dom klickar på fliken.
settings.issues_desc=Aktivera ärendehantering
settings.use_internal_issue_tracker=Använd enkel inbyggd ärendehantering
+settings.allow_public_issues_desc=Allow public access to issues when repository is private
settings.use_external_issue_tracker=Använd extern ärendehanterare
+settings.external_tracker_url=External Issue Tracker URL
+settings.external_tracker_url_desc=Visitors will be redirected to URL when they click on the tab.
settings.tracker_url_format=URL-Format För Extern Ärendehanterare
settings.tracker_issue_style=Namngivningsstil hos det externa ärendehanteringsystemet:
settings.tracker_issue_style.numeric=Numerisk
settings.tracker_issue_style.alphanumeric=Alfanumerisk
settings.tracker_url_format_desc=Du kan använda platshållaren {user} {repo} {index} för användarnamn, reponamn, och ärendenummer.
-settings.pulls_desc=Aktivera pullförfrågningar för att ta emot publika bidrag
+settings.pulls_desc=Enable pull requests to accept contributions between repositories and branches
+settings.pulls.ignore_whitespace=Ignore changes in whitespace
+settings.pulls.allow_rebase_merge=Allow use rebase to merge commits
settings.danger_zone=Högrisksområde
+settings.cannot_fork_to_same_owner=You cannot fork a repository to its original owner.
settings.new_owner_has_same_repo=Den nya ägaren har redan ett repo med det namnet. Vänligen välj ett annat namn.
settings.convert=Konvertera Till Vanligt Repo
settings.convert_desc=Du kan konvertera denna spegling till ett vanligt förråd. Detta kan inte ångras.
@@ -672,7 +781,7 @@ settings.wiki_deletion_success=Förrådets wikidata har tagits bort.
settings.delete=Ta Bort Detta Repo
settings.delete_desc=När du har tagit bort ett repo så finns det ingen återvändo. Var säker på vad du gör.
settings.delete_notices_1=- Denna åtgärd kan INTE ångras.
-settings.delete_notices_2=- Denna åtgärd kommer permanent ta bort hela repot, includerat git-datan, ärenden, kommentarer, och åtkomst för deltagare.
+settings.delete_notices_2=- This operation will permanently delete everything in this repository, including Git data, issues, comments and collaborator access.
settings.delete_notices_fork_1=- Alla förgreningar kommer bli oberoende efter borttagning.
settings.deletion_success=Repot har tagits bort!
settings.update_settings_success=Repo-inställningar har uppdaterats.
@@ -688,20 +797,25 @@ settings.collaborator_deletion_desc=Denna användare kommer förlora sin åtkoms
settings.remove_collaborator_success=Deltagare har tagits bort.
settings.search_user_placeholder=Sök användare...
settings.org_not_allowed_to_be_collaborator=Organisationen kan inte läggas till som en deltagare.
-settings.user_is_org_member=Änvändaren är en organisationsmedlem som inte kan bli tillagd som deltagare.
-settings.add_webhook=Lägg Till Webbhook
settings.hooks_desc=Webbhookar påminner mycket om vanliga HTTP POST-händelseutlösare. När något inträffar i Gogs, kommer vi att meddela måldatorn som du anger. Läs mera i Webbhook Guide.
+settings.webhooks.add_new=Lägg till en ny webhook:
+settings.webhooks.choose_a_type=Välj en typ...
+settings.add_webhook=Lägg Till Webbhook
settings.webhook_deletion=Ta Bort Webbhook
settings.webhook_deletion_desc=Borttagning av denna webbhook kommer att ta bort all dess information och all leveranshistorik. Är du säker på att du vill fortsätta?
settings.webhook_deletion_success=Webbhook har tagits bort!
settings.webhook.test_delivery=Testa Leverans
settings.webhook.test_delivery_desc=Skicka en falsk pushhändelse för att testa dina webbhook-inställningar
settings.webhook.test_delivery_success=Testwebbhook har lagts till leveranskön. Det kan ta några sekunder innan den visas i leveranshistoriken.
+settings.webhook.redelivery=Återleverans
+settings.webhook.redelivery_success=Hook task '%s' has been readded to delivery queue. It may take few seconds to update delivery status in history.
settings.webhook.request=Begäran
settings.webhook.response=Svar
settings.webhook.headers=Huvuden
settings.webhook.payload=Nyttolast
settings.webhook.body=Innehåll
+settings.webhook.err_cannot_parse_payload_url=Cannot parse payload URL: %v
+settings.webhook.url_resolved_to_blocked_local_address=Payload URL resolved to a local network address that is implicitly blocked.
settings.githooks_desc=Git-krokar är en del av Git själv. För att utföra anpassade operationer kan du redigera filerna för de krokar som stöds i listan nedan.
settings.githook_edit_desc=Om kroken är inaktiv visas exempelinnehåll. Inaktivera denna krok genom att lämna innehållet tomt.
settings.githook_name=Kroknamn
@@ -711,6 +825,7 @@ settings.add_webhook_desc=Gogs kommer skicka POST-anrop till webbad
settings.payload_url=Adress till innehåll
settings.content_type=Typ av innehåll
settings.secret=Hemlighet
+settings.secret_desc=Secret will be sent as SHA256 HMAC hex digest of payload via X-Gogs-Signature header.
settings.slack_username=Användarnamn
settings.slack_icon_url=URL för ikon
settings.slack_color=Färg
@@ -720,10 +835,20 @@ settings.event_send_everything=Jag behöver allt.
settings.event_choose=Låt mig välja.
settings.event_create=Skapa
settings.event_create_desc=Branch eller tagg skapad
-settings.event_pull_request=Hämtningsbegäran
-settings.event_pull_request_desc=Hämtningsbegäran öppnad, stängd, återöppnad, redigerad, tilldelad, otilldelad, etikett uppdaterad, etikett rensad eller synkroniserad.
+settings.event_delete=Ta bort
+settings.event_delete_desc=Branch eller tagg borttagen
+settings.event_fork=Fork
+settings.event_fork_desc=Repository forkad
settings.event_push=Pusha
settings.event_push_desc=Uppladdning till ett förråd
+settings.event_issues=Issues
+settings.event_issues_desc=Issue opened, closed, reopened, edited, assigned, unassigned, label updated, label cleared, milestoned, or demilestoned.
+settings.event_pull_request=Hämtningsbegäran
+settings.event_pull_request_desc=Pull request opened, closed, reopened, edited, assigned, unassigned, label updated, label cleared, milestoned, demilestoned, or synchronized.
+settings.event_issue_comment=Issue Comment
+settings.event_issue_comment_desc=Issue comment created, edited, or deleted.
+settings.event_release=Release
+settings.event_release_desc=Release publicerat i ett repository.
settings.active=Aktiv
settings.active_helper=Detaljer kring händelsen som triggade kroken kommer också levereras.
settings.add_hook_success=Ny webbkrok har lagts till.
@@ -733,10 +858,13 @@ settings.delete_webhook=Tag bort webbkrok
settings.recent_deliveries=Färska leveranser
settings.hook_type=Kroktyp
settings.add_slack_hook_desc=Lägg till Slack-integration till ditt förråd.
+settings.add_discord_hook_desc=
+settings.add_dingtalk_hook_desc=Add Dingtalk integration to your repository.
settings.slack_token=Pollett
settings.slack_domain=Domän
settings.slack_channel=Kanal
settings.deploy_keys=Driftsättningsnycklar
+settings.deploy_keys_helper=Common Gotcha! If you're looking for adding personal public keys, please add them in your account settings.
settings.add_deploy_key=Lägg till driftsättningsnyckel
settings.deploy_key_desc=Driftsättningsnycklar har endast läsrättigheter. De är inte desamma som personliga SSH-kontonycklar.
settings.no_deploy_keys=Du har inte lagt till några driftsättningsnycklar.
@@ -748,6 +876,8 @@ settings.add_key_success=Den nya driftsättningsnyckeln '%s' har lagts till!
settings.deploy_key_deletion=Ta bort distribueringsnyckel
settings.deploy_key_deletion_desc=Borttagning av detta distributionsnyckel kommer att ta bort all relaterad åtkomst till det här repot. Vill du fortsätta?
settings.deploy_key_deletion_success=Distributionsnyckeln har tagits bort!
+settings.description_desc=Description of repository. Maximum 512 characters length.
+settings.description_length=Tillgängliga tecken
diff.browse_source=Bläddra i källkod
diff.parent=förälder
@@ -766,7 +896,6 @@ release.releases=Släpp
release.new_release=Nytt Släpp
release.draft=Utkast
release.prerelease=Försläpp
-release.stable=Stabil
release.edit=redigera
release.ahead=%d ändringar mot %s sedan detta släpp
release.source_code=Källkod
@@ -813,8 +942,8 @@ team_name_helper=Du kan använda detta namn för att nämna denna grupp i konver
team_desc_helper=Vad handlar denna grupp om?
team_permission_desc=Vilka behörigheter ska denna grupp ha?
-form.name_reserved=Organisationsnamnet "%s" är reserverat.
-form.name_pattern_not_allowed=Organisationsnamnet '%s' är inte tillåtet.
+form.name_not_allowed=Organization name or pattern %q is not allowed.
+form.team_name_not_allowed=Team name or pattern %q is not allowed.
settings=Inställningar
settings.options=Alternativ
@@ -886,18 +1015,25 @@ first_page=Första
last_page=Sista
total=Totalt: %d
+dashboard.build_info=Build Information
+dashboard.app_ver=Application version
+dashboard.git_version=Git Version
+dashboard.go_version=Go version
+dashboard.build_time=Build tid
+dashboard.build_commit=Build commit
dashboard.statistic=Statistik
dashboard.operations=Operationer
dashboard.system_status=Systemstatus
dashboard.statistic_info=Gogs-databasen innehåller %d användare, %d organisationer, %d publika nyckar, %d förråd, %d vakter, %d stjärnor, %d handlingar, %d åtkomster, %d ärenden, %d kommentarer, %d sociala konton, %d följbegäran, %d speglingar, %d släpp, %d inloggningskällor, %d webbkrokar, %d milstolpar, %d etiketter, %d krokuppgifter, %d team, %d uppdateringsuppgifter, %d bilagor.
dashboard.operation_name=Operationsnamn
dashboard.operation_switch=Byt till
+dashboard.select_operation_to_run=Välj åtgärd att köra
dashboard.operation_run=Kör
dashboard.clean_unbind_oauth=Rensa obundna OAuth-begäran
dashboard.clean_unbind_oauth_success=Alla obundna OAuth-begäran har tagit
dashboard.delete_inactivate_accounts=Ta bort alla inaktiva konton
-dashboard.delete_inactivate_accounts_success=All inactivate accounts have been deleted successfully.
-dashboard.delete_repo_archives=Delete all repositories archives
+dashboard.delete_inactivate_accounts_success=
+dashboard.delete_repo_archives=
dashboard.delete_repo_archives_success=All repositories archives have been deleted successfully.
dashboard.delete_missing_repos=Delete all repository records that lost Git files
dashboard.delete_missing_repos_success=All repository records that lost Git files have been deleted successfully.
@@ -905,8 +1041,8 @@ dashboard.git_gc_repos=Do garbage collection on repositories
dashboard.git_gc_repos_success=All repositories have done garbage collection successfully.
dashboard.resync_all_sshkeys=Rewrite '.ssh/authorized_keys' file (caution: non-Gogs keys will be lost)
dashboard.resync_all_sshkeys_success=All public keys have been rewritten successfully.
-dashboard.resync_all_update_hooks=Rewrite all update hook of repositories (needed when custom config path is changed)
-dashboard.resync_all_update_hooks_success=All repositories' update hook have been rewritten successfully.
+dashboard.resync_all_hooks=Resync pre-receive, update and post-receive hooks of all repositories
+dashboard.resync_all_hooks_success=All repositories' pre-receive, update and post-receive hooks have been resynced successfully.
dashboard.reinit_missing_repos=Reinitialize all repository records that lost Git files
dashboard.reinit_missing_repos_success=All repository records that lost Git files have been reinitialized successfully.
@@ -981,12 +1117,14 @@ repos.private=Privat
repos.watches=Vakter
repos.stars=Stjärnor
repos.issues=Ärenden
+repos.size=Size
-auths.auth_manage_panel=Panel för hantering av autentisering
+auths.auth_sources=Authentication Sources
auths.new=Lägg till ny källa
auths.name=Namn
auths.type=Typ
auths.enabled=Aktiv
+auths.default=Default
auths.updated=Uppdaterad
auths.auth_type=Autentiseringstyp
auths.auth_name=Autentiseringsnamn
@@ -995,31 +1133,37 @@ auths.domain=Domän
auths.host=Värd
auths.port=Port
auths.bind_dn=Bind DN
-auths.bind_password=Bind Password
+auths.bind_dn_helper=You can use '%s' as placeholder for username, e.g. DOM\%s
+auths.bind_password=Bind lösenord
auths.bind_password_helper=Warning: This password is stored in plain text. Do not use a high privileged account.
auths.user_base=User Search Base
auths.user_dn=User DN
-auths.attribute_username=Username attribute
+auths.attribute_username=Användarnamnsattribut
auths.attribute_username_placeholder=Leave empty to use sign-in form field value for user name.
-auths.attribute_name=First name attribute
-auths.attribute_surname=Surname attribute
-auths.attribute_mail=Email attribute
+auths.attribute_name=First Name Attribute
+auths.attribute_surname=Efternamnsattribut
+auths.attribute_mail=E-postattribut
+auths.verify_group_membership=Verify group membership
+auths.group_search_base_dn=Group Search Base DN
+auths.group_filter=Group Filter
+auths.group_attribute_contain_user_list=Group Attribute Containing List of Users
+auths.user_attribute_listed_in_group=User Attribute Listed in Group
auths.attributes_in_bind=Fetch attributes in Bind DN context
-auths.filter=User Filter
-auths.admin_filter=Admin Filter
+auths.filter=Användarfilter
+auths.admin_filter=Adminfilter
auths.ms_ad_sa=Ms Ad SA
-auths.smtp_auth=SMTP Authentication Type
-auths.smtphost=SMTP Host
-auths.smtpport=SMTP Port
-auths.allowed_domains=Allowed Domains
+auths.smtp_auth=SMTP-autentiseringstyp
+auths.smtphost=SMTP-värd
+auths.smtpport=SMTP-port
+auths.allowed_domains=Tillåtna domäner
auths.allowed_domains_helper=Leave it empty to not restrict any domains. Multiple domains should be separated by comma ','.
-auths.enable_tls=Enable TLS Encryption
+auths.enable_tls=Aktivera TLS-kryptering
auths.skip_tls_verify=Skip TLS Verify
auths.pam_service_name=PAM Service Name
auths.enable_auto_register=Enable Auto Registration
-auths.tips=Tips
auths.edit=Edit Authentication Setting
auths.activated=This authentication is activated
+auths.default_auth=This authentication is default login source
auths.new_success=New authentication '%s' has been added successfully.
auths.update_success=Authentication setting has been updated successfully.
auths.update=Update Authentication Setting
@@ -1028,107 +1172,189 @@ auths.delete_auth_title=Authentication Deletion
auths.delete_auth_desc=This authentication is going to be deleted, do you want to continue?
auths.still_in_used=This authentication is still used by some users, please delete or convert these users to another login type first.
auths.deletion_success=Authentication has been deleted successfully!
-
-config.server_config=Server Configuration
-config.app_name=Application Name
-config.app_ver=Application Version
-config.app_url=Application URL
-config.domain=Domain
-config.offline_mode=Offline Mode
-config.disable_router_log=Disable Router Log
-config.run_user=Run User
-config.run_mode=Run Mode
-config.repo_root_path=Rotsökväg för utvecklingskatalog
-config.static_file_root_path=Static File Root Path
-config.log_file_root_path=Log File Root Path
-config.script_type=Script Type
-config.reverse_auth_user=Reverse Authentication User
-
-config.ssh_config=SSH Configuration
-config.ssh_enabled=Enabled
-config.ssh_start_builtin_server=Start Builtin Server
-config.ssh_domain=Domän
-config.ssh_port=Port
-config.ssh_listen_port=Lyssningsport
-config.ssh_root_path=Rotsökväg
-config.ssh_key_test_path=Testsökväg för nyckel
-config.ssh_keygen_path=Sökväg för nyckelgenerator ('ssh-keygen')
-config.ssh_minimum_key_size_check=Kontroll av minsta tillåtna nyckelstorlek
-config.ssh_minimum_key_sizes=Minsta tillåtna nyckelstorlek
+auths.login_source_exist=Login source '%s' already exists.
+auths.github_api_endpoint=API Endpoint
+
+config.not_set=(not set)
+config.server_config=Server-konfiguration
+config.brand_name=Brand name
+config.run_user=Run user
+config.run_mode=Run mode
+config.server.external_url=External URL
+config.server.domain=Domain
+config.server.protocol=Protocol
+config.server.http_addr=HTTP address
+config.server.http_port=HTTP port
+config.server.cert_file=Certificate file
+config.server.key_file=Key file
+config.server.tls_min_version=Minimum TLS version
+config.server.unix_socket_permission=Unix socket permission
+config.server.local_root_url=Local root URL
+config.server.offline_mode=Offline mode
+config.server.disable_router_log=Disable router log
+config.server.enable_gzip=Enable Gzip
+config.server.app_data_path=Application data path
+config.server.load_assets_from_disk=Load assets from disk
+config.server.landing_url=Landing URL
+
+config.ssh_config=SSH-konfiguration
+config.ssh.enabled=Enabled
+config.ssh.domain=Exposed domain
+config.ssh.port=Exposed port
+config.ssh.root_path=Root path
+config.ssh.keygen_path=Keygen path
+config.ssh.key_test_path=Key test path
+config.ssh.minimum_key_size_check=Minimum key size check
+config.ssh.minimum_key_sizes=Minimum key sizes
+config.ssh.rewrite_authorized_keys_at_start=Rewrite "authorized_keys" at start
+config.ssh.start_builtin_server=Start builtin server
+config.ssh.listen_host=Listen host
+config.ssh.listen_port=Listen port
+config.ssh.server_ciphers=Server ciphers
+config.ssh.server_macs=Server MACs
+config.ssh.server_algorithms=Server algorithms
+
+config.repo_config=Repository configuration
+config.repo.root_path=Root path
+config.repo.script_type=Script type
+config.repo.ansi_chatset=ANSI charset
+config.repo.force_private=Force private
+config.repo.max_creation_limit=Max creation limit
+config.repo.preferred_licenses=Preferred licenses
+config.repo.disable_http_git=Disable HTTP Git
+config.repo.enable_local_path_migration=Enable local path migration
+config.repo.enable_raw_file_render_mode=Enable raw file render mode
+config.repo.commits_fetch_concurrency=Commits fetch concurrency
+config.repo.editor.line_wrap_extensions=Editor line wrap extensions
+config.repo.editor.previewable_file_modes=Editor previewable file modes
+config.repo.upload.enabled=Upload enabled
+config.repo.upload.temp_path=Upload temporary path
+config.repo.upload.allowed_types=Upload allowed types
+config.repo.upload.file_max_size=Upload file size limit
+config.repo.upload.max_files=Upload files limit
config.db_config=Databaskonfiguration
-config.db_type=Typ
-config.db_host=Värd
-config.db_name=Namn
-config.db_user=Användare
-config.db_ssl_mode=SSL-läge
-config.db_ssl_mode_helper=(endast för "postgres")
-config.db_path=Sökväg
-config.db_path_helper=(för "sqlite3" och "tidb")
-
-config.service_config=Tjänstkonfiguration
-config.register_email_confirm=Kräv bekräftelse via e-post
-config.disable_register=Avaktivera registrering
-config.show_registration_button=Visa registreringsknapp
-config.require_sign_in_view=Kräv inloggningsvy
-config.mail_notify=E-postavisering
-config.disable_key_size_check=Avaktivera kontroll av minsta tillåtna nyckelstorlek
-config.enable_captcha=Aktivera Captcha
-config.active_code_lives=Aktivera livstid för koder
-config.reset_password_code_lives=Livstid för koder för återställning av lösenord
+config.db.type=Type
+config.db.host=Host
+config.db.name=Name
+config.db.schema=Schema
+config.db.schema_helper=(for "postgres" only)
+config.db.user=User
+config.db.ssl_mode=SSL mode
+config.db.ssl_mode_helper=(for "postgres" only)
+config.db.path=Path
+config.db.path_helper=(for "sqlite3"only)
+config.db.max_open_conns=Maximum open connections
+config.db.max_idle_conns=Maximum idle connections
+
+config.security_config=Security configuration
+config.security.login_remember_days=Login remember days
+config.security.cookie_remember_name=Remember cookie
+config.security.cookie_username=Username cookie
+config.security.cookie_secure=Enable secure cookie
+config.security.reverse_proxy_auth_user=Reverse proxy authentication header
+config.security.enable_login_status_cookie=Enable login status cookie
+config.security.login_status_cookie_name=Login status cookie
+config.security.local_network_allowlist=Local network allowlist
+
+config.email_config=Email configuration
+config.email.enabled=Enabled
+config.email.subject_prefix=Subject prefix
+config.email.host=Host
+config.email.from=From
+config.email.user=User
+config.email.disable_helo=Disable HELO
+config.email.helo_hostname=HELO hostname
+config.email.skip_verify=Skip certificate verify
+config.email.use_certificate=Use custom certificate
+config.email.cert_file=Certificate file
+config.email.key_file=Key file
+config.email.use_plain_text=Use plain text
+config.email.add_plain_text_alt=Add plain text alternative
+config.email.send_test_mail=Send test email
+config.email.test_mail_failed=Failed to send test email to '%s': %v
+config.email.test_mail_sent=Test email has been sent to '%s'.
+
+config.auth_config=Authentication configuration
+config.auth_custom_logout_url=Custom logout URL
+config.auth.activate_code_lives=Activate code lives
+config.auth.reset_password_code_lives=Reset password code lives
+config.auth.require_email_confirm=Require email confirmation
+config.auth.require_sign_in_view=Require sign in view
+config.auth.disable_registration=Disable registration
+config.auth.enable_registration_captcha=Enable registration captcha
+config.auth.enable_reverse_proxy_authentication=Enable reverse proxy authentication
+config.auth.enable_reverse_proxy_auto_registration=Enable reverse proxy auto registration
+config.auth.reverse_proxy_authentication_header=Reverse proxy authentication header
+
+config.user_config=User configuration
+config.user.enable_email_notify=Enable email notification
-config.webhook_config=Webbkrokskonfiguration
-config.queue_length=Kölängd
-config.deliver_timeout=Tidsfrist för leverans
-config.skip_tls_verify=Skippa verifikation av TLS
-
-config.mailer_config=Konfiguration för e-postutskick
-config.mailer_enabled=Aktiverad
-config.mailer_disable_helo=Avaktivera HELO
-config.mailer_name=Namn
-config.mailer_host=Server
-config.mailer_user=Användare
-config.send_test_mail=Skicka testmeddelande
-config.test_mail_failed=Misslyckades skicka testmeddelande till '%s': %v
-config.test_mail_sent=Testmeddelande har skickats till '%s'.
-
-config.oauth_config=OAuth-konfiguration
-config.oauth_enabled=Aktiverad
+config.session_config=Sessionskonfiguration
+config.session.provider=Provider
+config.session.provider_config=Provider config
+config.session.cookie_name=Cookie
+config.session.https_only=HTTPS only
+config.session.gc_interval=GC interval
+config.session.max_life_time=Max life time
+config.session.csrf_cookie_name=CSRF cookie
config.cache_config=Mellanlagringskonfiguration
-config.cache_adapter=Mellanlagringsadapter
-config.cache_interval=Mellanlagringsintervall
-config.cache_conn=Mellanlagringsanslutning
-
-config.session_config=Sessionskonfiguration
-config.session_provider=Sessionsleverantör
-config.provider_config=Leverantörskonfiguration
-config.cookie_name=Cookie-namn
-config.enable_set_cookie=Aktivera sättning av kaka
-config.gc_interval_time=Tidsintervall för skräpsamling
-config.session_life_time=Livstid för session
-config.https_only=Endast HTTPS
-config.cookie_life_time=Livstid för kaka
+config.cache.adapter=Adapter
+config.cache.interval=GC interval
+config.cache.host=Host
+
+config.http_config=HTTP configuration
+config.http.access_control_allow_origin=Access control allow origin
+
+config.attachment_config=Attachment configuration
+config.attachment.enabled=Enabled
+config.attachment.path=Path
+config.attachment.allowed_types=Allowed types
+config.attachment.max_size=Size limit
+config.attachment.max_files=Files limit
+
+config.release_config=Release configuration
+config.release.attachment.enabled=Attachment enabled
+config.release.attachment.allowed_types=Attachment allowed types
+config.release.attachment.max_size=Attachment size limit
+config.release.attachment.max_files=Attachment files limit
config.picture_config=Bildkonfiguration
-config.picture_service=Bildtjänst
-config.disable_gravatar=Disable Gravatar
-config.enable_federated_avatar=Enable Federated Avatars
-
-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
-
-config.log_config=Log Configuration
-config.log_mode=Loggningsläge
+config.picture.avatar_upload_path=User avatar upload path
+config.picture.repo_avatar_upload_path=Repository avatar upload path
+config.picture.gravatar_source=Gravatar source
+config.picture.disable_gravatar=Disable Gravatar
+config.picture.enable_federated_avatar=Enable federated avatars
+
+config.mirror_config=Mirror configuration
+config.mirror.default_interval=Default interval
+
+config.webhook_config=Webbkrokskonfiguration
+config.webhook.types=Types
+config.webhook.deliver_timeout=Deliver timeout
+config.webhook.skip_tls_verify=Skip TLS verify
+
+config.git_config=Git-konfiguration
+config.git.disable_diff_highlight=Disable diff syntax highlight
+config.git.max_diff_lines=Diff lines limit (for a single file)
+config.git.max_diff_line_characters=Diff characters limit (for a single line)
+config.git.max_diff_files=Diff files limit (for a single diff)
+config.git.gc_args=GC arguments
+config.git.migrate_timeout=Migration timeout
+config.git.mirror_timeout=Mirror fetch timeout
+config.git.clone_timeout=Clone timeout
+config.git.pull_timeout=Pull timeout
+config.git.gc_timeout=GC timeout
+
+config.lfs_config=LFS configuration
+config.lfs.storage=Storage
+config.lfs.objects_path=Objects path
+
+config.log_config=Logg-konfiguration
+config.log_file_root_path=Log file root path
+config.log_mode=Mode
+config.log_options=Options
monitor.cron=Cron-jobb
monitor.name=Namn
@@ -1144,10 +1370,10 @@ monitor.execute_time=Execution Time
notices.system_notice_list=System Notices
notices.view_detail_header=View Notice Detail
notices.actions=Actions
-notices.select_all=Select All
-notices.deselect_all=Deselect All
+notices.select_all=Markera alla
+notices.deselect_all=Avmarkera alla
notices.inverse_selection=Inverse Selection
-notices.delete_selected=Delete Selected
+notices.delete_selected=Ta bort markerade
notices.delete_all=Delete All Notices
notices.type=Typ
notices.type_1=Repository
@@ -1159,17 +1385,24 @@ notices.delete_success=System notices have been deleted successfully.
create_repo=skapade utvecklingskatalog %s
rename_repo=renamed repository from %[1]s to %[3]s
commit_repo=pushed to %[3]s at %[4]s
+compare_commits=View comparison for these %d commits
+transfer_repo=transfered repository %s to %s
create_issue=`opened issue %s#%[2]s`
close_issue=`closed issue %s#%[2]s`
reopen_issue=`reopened issue %s#%[2]s`
+comment_issue=`commented on issue %s#%[2]s`
create_pull_request=`created pull request %s#%[2]s`
close_pull_request=`closed pull request %s#%[2]s`
reopen_pull_request=`reopened pull request %s#%[2]s`
-comment_issue=`commented on issue %s#%[2]s`
merge_pull_request=`merged pull request %s#%[2]s`
-transfer_repo=transfered repository %s to %s
+create_branch=created new branch %[3]s at %[4]s
+delete_branch=deleted branch %[2]s at %[3]s
push_tag=pushed tag %[2]s to %[3]s
-compare_commits=View comparison for these %d commits
+delete_tag=deleted tag %[2]s at %[3]s
+fork_repo=forked a repository to %s
+mirror_sync_push=synced commits to %[3]s at %[4]s from mirror
+mirror_sync_create=synced new reference %[2]s to %[3]s from mirror
+mirror_sync_delete=synced and deleted reference %[2]s at %[3]s from mirror
[tool]
ago=sedan
@@ -1191,10 +1424,11 @@ months=%d månader %s
years=%d år %s
raw_seconds=sekunder
raw_minutes=minuter
+raw_hours=hours
[dropzone]
default_message=Drop files here or click to upload.
invalid_input_type=You can't upload files of this type.
file_too_big=File size ({{filesize}} MB) exceeds maximum size ({{maxFilesize}} MB).
-remove_file=Remove file
+remove_file=Ta bort fil
diff --git a/conf/locale/locale_tr-TR.ini b/conf/locale/locale_tr-TR.ini
index 3470126715c..7b78c8a8c65 100644
--- a/conf/locale/locale_tr-TR.ini
+++ b/conf/locale/locale_tr-TR.ini
@@ -9,7 +9,6 @@ sign_out=Çıkış Yap
sign_up=Kaydol
register=Üye Ol
website=Web sitesi
-version=Sürüm
page=Sayfa
template=Şablon
language=Dil
@@ -44,23 +43,27 @@ issues=Sorunlar
cancel=İptal
+[status]
+page_not_found=Sayfa Bulunamadı
+internal_server_error=İç Sunucu Hatası.
+
[install]
install=Kurulum
title=İlk Kez Çalıştırma İçin Kurulum Adımları
docker_helper=Gogs'u Docker içinde kullanıyorsanız bu sayfada herhangi bir değişiklik yapmadan önce lütfen kılavuzu dikkatlice okuyunuz!
-requite_db_desc=Gogs MySQL, PostgreSQL, SQLite3 veya TiDB gerektirir.
+requite_db_desc=Gogs requires MySQL, PostgreSQL, SQLite3 or TiDB (via MySQL protocol).
db_title=Veritabanı Ayarları
db_type=Veritabanı Türü
host=Sunucu
user=Kullanıcı
password=Parola
db_name=Veritabanı Adı
+db_schema=Schema
db_helper=Lütfen MySQL için INNODB motorunu utf8_general_ci karakter setiyle kullanın.
ssl_mode=SSL Biçimi
path=Yol
-sqlite_helper=SQLite3 veya TiDB veritabanının dosya yolu. Lütfen servis olarak başlatırken mutlak yolu kullanın.
-err_empty_db_path=SQLite3 veya TiDB veritabanı yolu boş olamaz.
-err_invalid_tidb_name=TiDB veritabanı adında "." ve "-" karakterlerine izin verilmez.
+sqlite_helper=SQLite3 veritabanının dosya yolu. Lütfen hizmete başladığınızda kesin yolu kullanın.
+err_empty_db_path=SQLite3 veritabanının yolu boş olamaz.
no_admin_and_disable_registration=Bir yönetici hesabı oluşturmadan kullanıcı kaydını devre dışı bırakamazsınız.
err_empty_admin_password=Yönetici parolası boş olamaz.
@@ -75,12 +78,17 @@ domain=Alan Adı
domain_helper=Bu, SSH klon bağlantılarını etkiler.
ssh_port=SSH Portu
ssh_port_helper=SSH sunucunuzun portu kullanılıyor, boş bırakın ya da SSH özelliğini devre dışı bırakın.
+use_builtin_ssh_server=Yerleşik SSH sunucusu kullanın
+use_builtin_ssh_server_popup=Git işlemlerinde SSH sunucusundan sistem SSH arka plan programından ayrılmaya başlayın.
http_port=HTTP Portu
http_port_helper=Uygulamanın dinleyeceği port.
app_url=Uygulama Bağlantısı
app_url_helper=Bu, HTTP/HTTPS klon bağlantılarını ve e-postadaki bazı kısımları etkiler.
log_root_path=Günlük Dosyaları Yolu
log_root_path_helper=Günlük dosyalarının yazılacağı dizin.
+enable_console_mode=Konsol Modunu Etkinleştir
+enable_console_mode_popup=Dosya moduna ek olarak , ayrıca konsolun günlüklerini yazdır.
+default_branch=Default Branch
optional_title=İsteğe Bağlı Ayarlar
email_title=E-Posta Servisi Ayarları
@@ -96,8 +104,8 @@ offline_mode=Çevrim Dışı Modu Etkinleştir
offline_mode_popup=CDN'i, üretim modunda bile devre dışı bırak, tüm kaynak dosyaları yerel olarak sunulacaktır.
disable_gravatar=Gravatar Servisini Devre Dışı Bırak
disable_gravatar_popup=Gravatar ve özel kaynakları devre dışı bırak. Tüm avatarlar kullanıcılar tarafından yüklenir veya varsayılan kalır.
-federated_avatar_lookup=Enable Federated Avatars Lookup
-federated_avatar_lookup_popup=Enable federated avatars lookup to use federated open source service based on libravatar.
+federated_avatar_lookup=Birleşmiş Kişi Simgesi Aramasını Etkinleştir
+federated_avatar_lookup_popup=Libravatar'a dayalı birleşmiş açık kaynaklı hizmeti kullanmak için birleşmiş avatarlar aramasını etkinleştirin.
disable_registration=Kendi Kendine Kaydolmayı Devre Dışı Bırak
disable_registration_popup=Kullanıcının kendi kendine kaydolmasını devre dışı bırak, yalnızca yönetici yeni hesaplar oluşturabilir.
enable_captcha=Captcha'yı Etkinleştir
@@ -116,7 +124,10 @@ sqlite3_not_available=Yayın sürümünüz SQLite3'ü desteklemiyor, lütfen %s'
invalid_db_setting=Veritabanı ayarları geçersiz: %v
invalid_repo_path=Depo kök dizini geçersiz: %v
run_user_not_match=Çalıştırma kullanıcısı geçerli kullanıcı değil: %s -> %s
+smtp_host_missing_port=SMTP ana makine adresindeki bağlantı noktası eksik.
+invalid_smtp_from=SMTP form alanı geçerli değil: %v
save_config_failed=Yapılandırma kaydedilemedi: %v
+init_failed=Uygulama başlatılamadı: %v
invalid_admin_setting=Yönetici hesap ayarları geçersiz: %v
install_success=Merhaba! Gogs'u tercih ettiğiniz için çok mutluyuz, keyfini çıkarın!
invalid_log_root_path=Günlük kök dizini geçersiz: %v
@@ -137,6 +148,7 @@ issues.in_your_repos=Depolarınızda
[explore]
repos=Depolar
users=Kullanıcılar
+organizations=Organizasyonlar
search=Ara
[auth]
@@ -145,6 +157,8 @@ register_hepler_msg=Bir hesabınız var mı? Şimdi giriş yapın!
social_register_hepler_msg=Zaten bir hesabınız var mı? Şimdi bağlanın!
disable_register_prompt=Üzgünüz, kaydolma devre dışı bırakıldı. Lütfen site yöneticisiyle irtibata geçin.
disable_register_mail=Üzgünüz, kayıt doğrulama e-postası devre dışı bırakıldı.
+auth_source=Yetkilendirme Kaynağı
+local=Yerel
remember_me=Beni Hatırla
forgot_password=Parolamı Unuttum
forget_password=Parolanızı mı unuttunuz?
@@ -156,7 +170,6 @@ prohibit_login_desc=Hesabınızla oturum açmanız yasaklanmış, lütfen site y
resent_limit_prompt=Üzgünüz, zaten bir doğrulama e-postası talep ettiniz. Lütfen 3 dakika bekleyip tekrar deneyin.
has_unconfirmed_mail=Merhaba %s, doğrulanmamış bir e-posta adresin var (%s). Bir doğrulama e-postası almadıysanız ya da yenisine ihtiyacınız varsa lütfen aşağıdaki düğmeye tıklayın.
resend_mail=Doğrulama e-postasını tekrar almak için buraya tıklayın
-email_not_associate=Bu e-posta adresi hiçbir hesaba bağlı değil.
send_reset_mail=Parola sıfırlama e-postasını (yeniden) göndermek için buraya tıklayın
reset_password=Parolanızı Sıfırlayın
invalid_code=Üzgünüz, doğrulama kodunuz geçersiz veya süresi dolmuş.
@@ -164,6 +177,14 @@ reset_password_helper=Parolanızı sıfırlamak için buraya tıklayın
password_too_short=Parola uzunluğu 6 karakterden az olamaz.
non_local_account=Yerel olmayan hesapların şifrelerini Gogs aracılığıyla değiştiremezsiniz.
+login_two_factor=İki aşamalı doğrulama
+login_two_factor_passcode=Kimlik doğrulama Şifre kodu
+login_two_factor_enter_recovery_code=İki faktörlü kurtarma kodu girin
+login_two_factor_recovery=İki faktörlü Kurtarma
+login_two_factor_recovery_code=Kurtarma kodu
+login_two_factor_enter_passcode=İki faktörlü şifre kodu girin
+login_two_factor_invalid_recovery_code=Kurtarma kodu kullanılmış veya geçerli değil.
+
[mail]
activate_account=Lütfen hesabınızı aktifleştirin
activate_email=E-posta adresinizi doğrulayın
@@ -189,16 +210,17 @@ TeamName=Takım ismi
AuthName=Yetkilendirme adı
AdminEmail=Yönetici e-postası
-NewBranchName=New branch name
-CommitSummary=Commit summary
-CommitMessage=Commit message
-CommitChoice=Commit choice
+NewBranchName=Yeni bölüm adı
+CommitSummary=İşleme özeti
+CommitMessage=İşleme mesajı
+CommitChoice=İşleme tercihi
TreeName=Dosya yolu
-Content=Content
+Content=İçerik
require_error=` boş olamaz.`
-alpha_dash_error=` sadece karakter, rakam veya çizgi(-_) içermelidir.`
-alpha_dash_dot_error=` sadece karakter, rakam, çizgi(-_) veya nokta içermelidir.`
+alpha_dash_error=` geçerli karakter, sayısal veya tire(-_) olmalı.`
+alpha_dash_dot_error=` geçerli karakter, sayısal, tire(-_) veya nokta olmalı.`
+alpha_dash_dot_slash_error=` geçerli alfa veya sayısal veya uzunçizgi(-_) veya nokta karakterler veya eğiz çizgi olmalıdır.`
size_error=` uzunluk en fazla %s olmalıdır.`
min_size_error=` en az %s karakter içermelidir.`
max_size_error=` en fazla %s karakter içermelidir.`
@@ -215,6 +237,7 @@ org_name_been_taken=Bu organizasyon adı zaten alınmış.
team_name_been_taken=Bu takım adı zaten alınmış.
email_been_used=Bu e-posta adresi zaten kullanımda.
username_password_incorrect=Kullanıcı adı veya parola hatalı.
+auth_source_mismatch=Seçilen kimlik doğrulama kaynağı kullanıcı ile ilişkili değil.
enterred_invalid_repo_name=Lütfen girdiğiniz depo isminin doğru olduğundan emin olun.
enterred_invalid_owner_name=Lütfen girdiğiniz depo sahibi isminin doğru olduğundan emin olun.
enterred_invalid_password=Lütfen girdiğiniz parolanın doğru olduğundan emin olun.
@@ -242,19 +265,18 @@ following=Takip Edilenler
follow=Takip Et
unfollow=Takibi Bırak
-form.name_reserved=Kullanıcı adı '%s' başka birine ayrılmış.
-form.name_pattern_not_allowed=Kullanıcı adında '%s' modeline izin verilmez.
+form.name_not_allowed=Kullanıcı adı veya %q desenine izin verilmiyor.
[settings]
profile=Profil
password=Parola
avatar=Avatar
ssh_keys=SSH Anahtarları
-social=Sosyal Medya Hesapları
-applications=Uygulamalar
+security=Güvenlik
+repos=Depolar
orgs=Organizasyonlar
+applications=Uygulamalar
delete=Hesabı Sil
-uid=Tekil ID
public_profile=Herkese Açık Profil
profile_desc=E-posta adresiniz herkese açıktır ve hesabınızla ilgili bilgilendirmelerde ve web tabanlı operasyonlarda kullanılacaktır.
@@ -269,8 +291,8 @@ change_username_prompt=Bu değişiklik, hesabınızla ilişkili olan bağlantıl
continue=Devam Et
cancel=İptal
-lookup_avatar_by_mail=Lookup Avatar by mail
-federated_avatar_lookup=Federated Avatar Lookup
+lookup_avatar_by_mail=E-postaya göre Avatar Arama
+federated_avatar_lookup=Birleşmiş Avatar Araması
enable_custom_avatar=Özel Avatarı Etkinleştir
choose_new_avatar=Yeni Avatar Seç
update_avatar=Avatar Ayarlarını Güncelle
@@ -295,6 +317,7 @@ delete_email=Sil
email_deletion=E-Posta Silme
email_deletion_desc=Bu e-posta adresini silerseniz hesabınıza ilişkin tüm bilgileriniz de silinecektir. Devam etmek istiyor musunuz?
email_deletion_success=E-posta adresi başarıyla silindi!
+email_deletion_primary=Cannot delete primary email address.
add_new_email=Yeni e-posta adresi ekle
add_email=E-posta ekle
add_email_confirmation_sent='%s' adresine yeni bir doğrulama e-postası gönderildi. Doğrulama aşamalarını tamamlamak için lütfen %d saat içinde gelen kutunuzu kontrol edin.
@@ -320,14 +343,36 @@ no_activity=Yeni aktivite yok
key_state_desc=Bu anahtar son 7 gün içinde kullanıldı
token_state_desc=Bu erişim anahtarı son 7 gün içinde kullanıldı
-manage_social=Bağlanmış Sosyal Hesapları Yönet
-social_desc=Bu, bağlanmış sosyal hesapların bir listesidir. Tanımadığınız bağlantıyı kaldırın.
-unbind=Bağlantıyı Kopar
-unbind_success=Sosyal hesabın bağlantısı koparıldı.
+two_factor=İki faktörlü Kimlik doğrulama
+two_factor_status=Durum:
+two_factor_on=Açık
+two_factor_off=Kapalı
+two_factor_enable=Etkin
+two_factor_disable=Devre dışı
+two_factor_view_recovery_codes=Görüntüle ve güvenli bir yere kurtarma kodlarınızı kaydedin. Eğer kimlik doğrulama uygulamanız için erişimi kaybetmişseniz bunları şifre kodu olarak kullanabilirsiniz.
+two_factor_http=HTTP/HTTPS işlemleri için , artık düz kullanıcı adı ve şifre kullanamazsınız. Lütfen oluşturun ve Kişisel Erişim Jetonu kimlik belgesi olarak kullanın , örneğin %[3]s.
+two_factor_enable_title=İki faktörlü Kimlik doğrulamasını Etkinleştir
+two_factor_scan_qr=Lütfen resmi taramak için kimlik doğrulama uygulamanızı kullanın:
+two_factor_or_enter_secret=Veya parola girin:
+two_factor_then_enter_passcode=Daha sonra şifre kodunu girin:
+two_factor_verify=Doğrula
+two_factor_invalid_passcode=Girdiğiniz şifre kodu geçersiz,lütfen tekrar deneyin!
+two_factor_reused_passcode=Girdiğiniz şifre zaten kullanılmış, lütfen başka bir tane deneyin!
+two_factor_enable_error=İki faktörlü kimlik doğrulama etkinleştirmesi başarısız :%v
+two_factor_enable_success=Hesabınız için iki faktörlü kimlik doğrulama başarıyla devre dışı bırakıldı!
+two_factor_recovery_codes_title=İki faktörlü Kimlik doğrulama Kurtarma Kodları
+two_factor_recovery_codes_desc=Kurtarma kodları , geçici olarak kimlik doğrulama uygulamanızın erişimini kaybettiğinizde kullanıldı. Herbir kurtarma kodu sadece birkez kullanılablir,lütfen bu kodları güvenli bir yere sakla.
+two_factor_regenerate_recovery_codes=Kurtarma Kodlarını Yeniden oluştur
+two_factor_regenerate_recovery_codes_error=Kurtarma kodları yeniden oluşturma başarısız: %v
+two_factor_regenerate_recovery_codes_success=Yeni kurtarma kodları başarıyla oluşturuldu!
+two_factor_disable_title=İki faktörlü Kimlik doğrulama Devre dışı
+two_factor_disable_desc=Hesap güvenliği seviyeniz, devre dışı bırakılmış iki faktörlü kimlik doğrulamadan sonra azalacaktır. Devam etmek istiyor musunuz?
+two_factor_disable_success=İki faktörlü kimli doğrulama başarıyla devre dışı bırakıldı!
manage_access_token=Kişisel Erişim Anahtarlarını Yönet
generate_new_token=Yeni Erişim Anahtarı Üret
tokens_desc=Ürettiğiniz erişim anahtarları, Gogs API'lerine erişimde kullanılabilir.
+access_token_tips=The personal access token may be used as either username or password. It is recommended to use the "x-access-token" as the username and the personal access token as the password for Git applications.
new_token_desc=Her bir erişim anahtarının hesabınıza tam erişim yetkisi olacaktır.
token_name=Erişim Anahtarı İsmi
generate_token=Erişim Anahtarı Üret
@@ -336,6 +381,16 @@ delete_token=Sil
access_token_deletion=Kişisel Erişim Anahtarını Silme
access_token_deletion_desc=Bu kişisel erişim anahtarını silerseniz uygulamanıza ilişkin tüm erişimler de kaldırılacaktır. Devam etmek istiyor musunuz?
delete_token_success=Kişisel erişim anahtarı başarıyla kaldırıldı! Uygulamanızı güncellemeyi de unutmayın!
+token_name_exists=Aynı ada sahip simge zaten var.
+
+orgs.none=Hiçbir organizasyonların üyesi değilsiniz.
+orgs.leave_title=Organizasyondan ayrıl
+orgs.leave_desc=Organizasyondan ayrıldıktan sonra tüm depolar ve ekiplere erişimi kaybedeceksiniz.Devam etmek istiyor musunuz?
+
+repos.leave=Ayrıl
+repos.leave_title=Depodan ayrıl
+repos.leave_desc=Çıktıktan sonra depo erişimini kaybedeceksiniz.Devam etmek istiyor musunuz?
+repos.leave_success='%s' deposundan başarıyla ayrıldınız!
delete_account=Hesabınızı Silin
delete_prompt=Bu işlem hesabınızı kalıcı olarak silecektir ve GERİ ALINAMAZ!
@@ -348,7 +403,9 @@ owner=Sahibi
repo_name=Depo İsmi
repo_name_helper=İyi bir depo ismi genellikle kısa, akılda kalıcı ve benzersiz kelimelerden oluşur.
visibility=Görünürlük
+unlisted=Unlisted
visiblity_helper=Bu depo Özel
+unlisted_helper=This repository is Unlisted
visiblity_helper_forced=Site yöneticisi tüm depolara erişimleri Özel olarak ayarlamaya zorladı
visiblity_fork_helper=(Bu değerin değişmesi tüm çatallamaları etkileyecektir)
clone_helper=Klonlama konusunda yardıma mı ihtiyacınız var? Yardım bağlantısını ziyaret edin!
@@ -357,7 +414,7 @@ fork_from=Buradan Çatalla
fork_visiblity_helper=Çatallanmış bir deponun görünürlüğünü değiştiremezsiniz.
repo_desc=Açıklama
repo_lang=Dil
-repo_gitignore_helper=Select .gitignore templates
+repo_gitignore_helper=.gitignore şablonlarını seç
license=Lisans
license_helper=Bir lisans dosyası seçin
readme=Benioku
@@ -370,28 +427,30 @@ mirror_prune_desc=Uzakta olmayan bütün uzaktan-izleme referanslarını sil
mirror_interval=Yansı Aralığı (saat)
mirror_address=Yansı Adresi
mirror_address_desc=Lütfen gerekli kimlik bilgilerini adreste bulundurun.
-mirror_last_synced=Last Synced
+mirror_last_synced=Son Eşzamanlama
watchers=İzleyenler
stargazers=Yıldızlayanlar
forks=Çatallamalar
+repo_description_helper=Depo açıklaması. Maksimum 512 karakter uzunluğu.
+repo_description_length=Mevcut karakterler
form.reach_limit_of_creation=Sahip, maksimum %d depo oluşturma limitine ulaşmıştır.
-form.name_reserved=Depo ismi '%s' başkasına ayrılmış.
-form.name_pattern_not_allowed=Depo isminde '%s' modeline izin verilmiyor.
+form.name_not_allowed=Depo adı veya %q desenine izin verilmiyor.
need_auth=Yetkilendirme Gereklidir
migrate_type=Göç Türü
migrate_type_helper=Bu depo bir yansı olacaktır
migrate_repo=Depoyu Göç Ettir
migrate.clone_address=Klon Adresi
-migrate.clone_address_desc=Bu bağlantı HTTP/HTTPS/GIT veya yerel bir sunucu yolu olabilir.
+migrate.clone_address_desc=Bu HTTP/HTTPS/GIT URL'si olabilir.
+migrate.clone_address_desc_import_local=Bir depoyu yerel sunucu yolu ile taşımanıza izin verilir.
migrate.permission_denied=Yerel depoları içeri aktarma izniniz yok.
migrate.invalid_local_path=Geçersiz yerel dizin! Böyle bir yol yok ya da bir dizin değil.
+migrate.clone_address_resolved_to_blocked_local_address=Clone address resolved to a local network address that is implicitly blocked.
migrate.failed=Göç başarısız: %v
mirror_from=şunun yansıması
forked_from=şundan çatallanmış
-fork_from_self=Sahibi olduğunuz bir depoyu çatallayamazsınız!
copy_link=Kopyala
copy_link_success=Kopyalandı!
copy_link_error=Kopyalamak için ⌘-C veya Ctrl-C tuşlarına basın
@@ -407,9 +466,9 @@ quick_guide=Hızlı Başlangıç Kılavuzu
clone_this_repo=Bu depoyu klonla
create_new_repo_command=Komut satırında yeni bir depo oluştur
push_exist_repo=Var olan bir depoyu komut satırında gönder
-repo_is_empty=Bu depo boş. Lütfen daha sonra tekrar gelin!
+bare_message=Bu depo henüz hiçbir içeriğe sahip değil.
-code=Kod
+files=Dosyalar
branch=Dal
tree=Ağaç
filter_branch_and_tag=Dal veya biçim imini filtrele
@@ -420,51 +479,65 @@ pulls=Değişiklik İstekleri
labels=Etiketler
milestones=Kilometre Taşları
commits=İşlemeler
+git_branches=Bölümler
releases=Sürümler
file_raw=Ham
file_history=Geçmiş
file_view_raw=Ham Görünüm
file_permalink=Kalıcı Bağlantı
file_too_large=Bu dosya sergilenmek için çok büyük
-
-editor.new_file=New file
-editor.upload_file=Upload file
+video_not_supported_in_browser=Tarayıcınız HTML5 video etkiketini desteklemiyor.
+
+branches.overview=Genel görünüm
+branches.active_branches=Aktif Bölümler
+branches.stale_branches=Eskimiş Bölümler
+branches.all=Bütün Bölümler
+branches.updated_by=%[2]s tarafından %[1]s güncellendi
+branches.change_default_branch=Varsayılan Bölümü Değiştir
+branches.default_deletion_not_allowed=Cannot delete the default branch.
+branches.protected_deletion_not_allowed=Cannot delete a protected branch.
+
+editor.new_file=Yeni dosya
+editor.upload_file=Dosyayı yükle
editor.edit_file=Dosya düzenle
-editor.preview_changes=Preview Changes
+editor.preview_changes=Değişiklikleri Önizle
editor.cannot_edit_non_text_files=Metin dışı dosyalar düzenlenemez
-editor.edit_this_file=Edit this file
-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 before editing the file
-editor.delete_this_file=Delete this file
-editor.must_have_write_access=You must have write access to make or propose changes to this file
-editor.file_delete_success=File '%s' has been deleted successfully!
-editor.name_your_file=Name your file...
-editor.filename_help=To add directory, just type it and press /. To remove a directory, go to the beginning of the field and press backspace.
-editor.or=or
+editor.edit_this_file=Bu dosyayı düzenle
+editor.must_be_on_a_branch=Bu dosyada değişiklik yapmak için bir bölümde olmalısınız.
+editor.fork_before_edit=Dosyayı düzenlemeden önce bu depoyu iki kola ayırmalısınız
+editor.delete_this_file=Bu dosyayı sil
+editor.must_have_write_access=Bu dosyada değişiklik yapmak için yazma erişiminizin olması gerekir.
+editor.file_delete_success=%s dosyası başarıyla silindi!
+editor.name_your_file=Dosyanızın adı...
+editor.filename_help=Dizin eklemek için, dizini yazın ve / tuşuna basın. Bir dizini kaldırmak için alanın başına gidin ve geri tuşuna basın.
+editor.or=veya
editor.cancel_lower=iptal
-editor.commit_changes=Commit Changes
-editor.add_tmpl=Add '%s/'
-editor.add=Add '%s'
-editor.update=Update '%s'
-editor.delete=Delete '%s'
-editor.commit_message_desc=Add an optional extended description...
-editor.commit_directly_to_this_branch=Commit directly to the %s branch.
-editor.create_new_branch=Create a new branch for this commit and start a pull request.
-editor.new_branch_name_desc=New branch name...
+editor.commit_changes=Değişiklikleri İşle
+editor.add_tmpl='%s/' ekle
+editor.add='%s' ekle
+editor.update='%s' güncelle
+editor.delete='%s' sil
+editor.commit_message_desc=İsteğe bağlı genişletilmiş açıklama ekleyin ...
+editor.commit_directly_to_this_branch=Doğrudan %s şubesine geçin.
+editor.create_new_branch=Bu taahhüt ve çekme isteği başlatmak için.yeni şube oluşturma.
+editor.new_branch_name_desc=Yen şube adı...
editor.cancel=İptal
-editor.filename_cannot_be_empty=Filename cannot be empty.
-editor.branch_already_exists=Branch '%s' already exists in this repository.
-editor.directory_is_a_file=Entry '%s' in the parent path is a file not a directory in this repository.
-editor.filename_is_a_directory=The filename '%s' is an existing directory in this repository.
-editor.file_editing_no_longer_exists=The file '%s' you are editing no longer exists in the repository.
-editor.file_changed_while_editing=File content has been changed since you started editing. Click here to see what have been changed or press commit again to overwrite those changes.
-editor.file_already_exists=A file with name '%s' already exists in this repository.
-editor.no_changes_to_show=There are no changes to show.
-editor.fail_to_update_file=Failed to update/create file '%s' with error: %v
-editor.add_subdir=Add subdirectory...
-editor.unable_to_upload_files=Failed to upload files to '%s' with error: %v
-editor.upload_files_to_dir=Upload files to '%s'
-
+editor.filename_cannot_be_empty=Dosya adı boş olmamalı.
+editor.branch_already_exists='% s ' Şubesi bu depoda zaten var.
+editor.directory_is_a_file=Üst yoldaki '% s' girişi, bu depoda bir dizini olmayan dosyadır.
+editor.file_is_a_symlink='%s' dosyası, web editöründen değiştirilemeyen bir sembolik bağ.
+editor.filename_is_a_directory=Dosya adı '%s' bu depoda mevcut bir dizindir.
+editor.file_editing_no_longer_exists=Düzenlediğiniz dosya '%s' artık depoda yok.
+editor.file_changed_while_editing=Düzenlemeye başladıktan sonra dosya içeriği değiştirildi. Ne değiştiğini görmek içinBuraya tıklayınBu değişikliklerin üzerine yazmak için.yeniden yürütmeye basın.
+editor.file_already_exists='% s ' adlı bir dosya mevcutta zaten var.
+editor.no_changes_to_show=Gösterilecek bir değişiklik mevcut değil.
+editor.fail_to_update_file='%s' dosyası güncellenemedi / oluşturulamadı : %v hatasıyla
+editor.fail_to_delete_file='%s' dosyası hatalı bir şekilde silinemedi: %v
+editor.add_subdir=Alt dizin Ekle...
+editor.unable_to_upload_files='%s' dosyası yüklenemedi : %v hatasıyla
+editor.upload_files_to_dir=Dosyaları '%s' ye yükle
+
+commits.commit_history=Geçmişin Kaydedilmesi
commits.commits=İşlemeler
commits.search=İşleme Arama
commits.find=Bul
@@ -490,11 +563,11 @@ issues.create=Sorun Oluştur
issues.new_label=Yeni Etiket
issues.new_label_placeholder=Etiket adı...
issues.create_label=Etiket Oluştur
-issues.label_templates.title=Load a predefined set of labels
-issues.label_templates.info=There aren’t any labels yet. You can click on the "New Label" button above to create one or use a predefined set below.
-issues.label_templates.helper=Select a label set
+issues.label_templates.title=Önceden tanımlanmış bir etiket kümesi yükleyin
+issues.label_templates.info=Henüz etiket yok. Yeni etiket oluşturmak için aşağıdaki "Yeni Etiket" düğmesine tıklayabilir veya aşağıda önceden tanımlanmış bir kümeyi kullanabilirsiniz.
+issues.label_templates.helper=Bir etiket seti seçin
issues.label_templates.use=Use this label set
-issues.label_templates.fail_to_load_file=Failed to load label template file '%s': %v
+issues.label_templates.fail_to_load_file=Etiket şablon dosyası '%s' yüklenemedi: %v hatasıyla
issues.open_tab=%d açık
issues.close_tab=%d kapanmış
issues.filter_label=Etiket
@@ -536,7 +609,7 @@ issues.commit_ref_at=`%[2]s işlemesinde bu soru
issues.poster=Poster
issues.collaborator=Katkıcı
issues.owner=Sahibi
-issues.sign_in_require_desc=Sign in to join this conversation.
+issues.sign_in_require_desc=Giriş yap bu konuşmaya katılmak için.
issues.edit=Düzenle
issues.cancel=İptal
issues.save=Kaydet
@@ -551,8 +624,8 @@ issues.label_deletion=Etiket Silme
issues.label_deletion_desc=Bu etiketi silerseniz, bu etikete iliştirilmiş sorunlardaki tüm bilgiler de silinecektir. Devam etmek istiyor musunuz?
issues.label_deletion_success=Etiket başarıyla silindi!
issues.num_participants=%d Katılımcı
-issues.attachment.open_tab=`Click to see "%s" in a new tab`
-issues.attachment.download=`Click to download "%s"`
+issues.attachment.open_tab=` "%s '' yi yeni bir sekmede görmek için tıklayın `
+issues.attachment.download=`"%s" yi İndirmek için tıklayın `
pulls.new=Yeni Değişiklik İsteği
pulls.compare_changes=Değişiklikleri Karşılaştır
@@ -562,6 +635,7 @@ pulls.compare_compare=karşılaştır
pulls.filter_branch=Dal filtrele
pulls.no_results=Sonuç bulunamadı.
pulls.nothing_to_compare=Karşılaştırılacak hiçbir şey yok, çünkü temel ve ana dal aynı.
+pulls.nothing_merge_base=Karşılaştırılacak bir şey yok çünkü iki şubenin tarihi tamamen farklı.
pulls.has_pull_request=`Bu iki hedef için zaten bir değişiklik isteği var: %[2]s#%[3]d`
pulls.create=Değişiklik İsteği Oluştur
pulls.title_desc=%[3]s içindeki %[2]s işlemelerini %[1]d ile birleştirmek istiyor
@@ -577,8 +651,13 @@ pulls.is_checking=Çakışma kontrolü sürüyor. Lütfen birkaç dakika içinde
pulls.can_auto_merge_desc=Bu değişiklik isteği otomatik olarak birleştirilebilir.
pulls.cannot_auto_merge_desc=Çakışmalardan dolayı bu değişiklik isteği otomatik olarak birleştirilemez.
pulls.cannot_auto_merge_helper=Çakışmaları çözmek için lütfen elle birleştirin.
+pulls.create_merge_commit=Birleştirme işlemi oluşturma
+pulls.rebase_before_merging=Birleştirmeden önce yenidenreferans al
+pulls.commit_description=Taahhüt Açıklaması
pulls.merge_pull_request=Değişiklik İsteğini Birleştir
pulls.open_unmerged_pull_exists=`Yeniden açma işlemini gerçekleştiremezsiniz. Çünkü zaten aynı depodan, aynı birleştirme bilgisiyle açık olan bir değişiklik isteği var (#%d) ve birleştirme bekliyor.`
+pulls.delete_branch=Şubeyi Sil
+pulls.delete_branch_has_new_commits=Birleşmeden sonra yeni taahhütlere sahip olduğu için şube silinemez.
milestones.new=Yeni Kilometre Taşı
milestones.open_tab=%d Açık
@@ -629,31 +708,61 @@ settings.collaboration.admin=Yönetici
settings.collaboration.write=Yaz
settings.collaboration.read=Oku
settings.collaboration.undefined=Belirsiz
+settings.branches=Şubeler
+settings.branches_bare=Korunmasız depo için şubeleri yönetemezsiniz. Önce bir miktar içeriği itin.
+settings.default_branch=Varsayılan Şube
+settings.default_branch_desc=Varsayılan şube , kod taahütleri, çekme talepleri ve çevrimiçi düzenleme için "temel" şube olarak kabul edilir.
+settings.update=Güncelle
+settings.update_default_branch_unsupported=Varsayılan şubeyi değiştir , sunucu üzerindeki Git sürüm tarafından desteklenmiyor.
+settings.update_default_branch_success=Bu deponun varsayılan şubesi başarıyla güncellendi!
+settings.protected_branches=Korunan Şubeler
+settings.protected_branches_desc=Şubeleri zorla bastırma, yanlışlıkla silme ve beyaz liste kod belirleyicilerine karşı koruyun.
+settings.choose_a_branch=Şube seç...
+settings.branch_protection=Şube Koruma
+settings.branch_protection_desc=Şube için koruma seçeneklerini seçiniz %s.
+settings.protect_this_branch=Bu şubeyi koru
+settings.protect_this_branch_desc=Kuvveti devre dışı bırak ve silinmesini önler.
+settings.protect_require_pull_request=Doğrudan itmek yerine istek istemek gereklidir
+settings.protect_require_pull_request_desc=Bu şubeye doğrudan itmeyi devre dışı bırakmak için bu seçeneği etkinleştirin. Komiteler korunmayan bir başka şubeye ittirilmeli ve çekme talebi vasıtasıyla bu şubeye birleştirilmelidir.
+settings.protect_whitelist_committers=Beyaz liste , bu şubeye kim itebilir
+settings.protect_whitelist_committers_desc=Bu şubeye doğrudan itilen beyaz listeye kişi veya ek ekleyin. Beyaz listeden atlanılacak olan kullanıcılar çekme isteği kontrolüne ihtiyaç duyar.
+settings.protect_whitelist_users=Bu şubeye itebilecek kullanıcılar
+settings.protect_whitelist_search_users=Kullanıcıları ara
+settings.protect_whitelist_teams=Onların üyelerinin bu şubeye itebilecek takımları
+settings.protect_whitelist_search_teams=Takımları ara
+settings.update_protect_branch_success=Bu şube için koruma seçenekleri başarıyla güncellendi!
settings.hooks=Web İstekleri
settings.githooks=Git İstekleri
settings.basic_settings=Temel Ayarlar
-settings.mirror_settings=Mirror Settings
-settings.sync_mirror=Sync Now
-settings.mirror_sync_in_progress=Mirror syncing is in progress, please refresh page in about a minute.
+settings.mirror_settings=Ayna Ayarları
+settings.sync_mirror=Şimdi Senkronize Et
+settings.mirror_sync_in_progress=Ayna senkronizasyonu devam ediyor, lütfen sayfayı yaklaşık bir dakika içinde yenileyin.
settings.site=Resmi Web Sitesi
settings.update_settings=Ayarları Güncelle
settings.change_reponame_prompt=Bu değişiklik, bağlantıların depoyla olan ilişkisini etkileyecektir.
settings.advanced_settings=Gelişmiş Ayarlar
settings.wiki_desc=Viki sıstemini etkinleştir
-settings.use_internal_wiki=Use builtin wiki
+settings.use_internal_wiki=Yerleşik wiki'yi kullanın
+settings.allow_public_wiki_desc=Depo özel olduğunda wiki'ye herkesin erişmesine izin ver
settings.use_external_wiki=Harici Wiki kullan
settings.external_wiki_url=Harici Wiki bağlantısı
settings.external_wiki_url_desc=Ziyaretçiler, sekmeye tıkladıklarında bağlantıya yönlendirilecektir.
-settings.issues_desc=Enable issue tracker
-settings.use_internal_issue_tracker=Use builtin lightweight issue tracker
+settings.issues_desc=Sorun izleyiciyi etkinleştir
+settings.use_internal_issue_tracker=Yerleşik hafif sorun izleyici kullanma
+settings.allow_public_issues_desc=Depo özel olduğunda toplulukların herkese açık olarak erişmesine izin ver
settings.use_external_issue_tracker=Harici sorun takipçisi kullan
+settings.external_tracker_url=Harici Konu İzleyici URL'si
+settings.external_tracker_url_desc=Ziyaretçiler, sekmeye tıkladıklarında bağlantıya yönlendirilecektir.
settings.tracker_url_format=Harici Sorun Takipçisi Bağlantı Formatı
settings.tracker_issue_style=Harici Hata İzleyicisi Adlandırma Stili:
settings.tracker_issue_style.numeric=Sayısal
settings.tracker_issue_style.alphanumeric=Alfanumerik
settings.tracker_url_format_desc=Kullanıcı adı, depo ismi ve hata indeksi için {kullanıcı} {depo} {indeks} tutucusunu kullanabilirsiniz.
-settings.pulls_desc=Herkese açık katkıları kabul etmek için değişiklik isteklerini etkinleştirin
+settings.pulls_desc=Depolar ve Şubeler arasındaki katkıları kabul etmek için çekme isteklerini etkinleştir
+settings.pulls.ignore_whitespace=Boşluktaki değişiklikleri yoksay
+settings.pulls.allow_rebase_merge=Taahhütleri birleştirmek için yeniden tabanın kullanmasına izin ver
settings.danger_zone=Tehlike Alanı
+settings.cannot_fork_to_same_owner=Bir depoyu orijinal sahibine ayıramazsınız.
settings.new_owner_has_same_repo=Yeni sahibin aynı isimde başka bir deposu var. Lütfen farklı bir isim seçin.
settings.convert=Düzenli Depoya Dönüştür
settings.convert_desc=Bu yansıyı düzenli bir depoya dönüştürebilirsiniz. Bu işlem geri alınamaz.
@@ -672,7 +781,7 @@ settings.wiki_deletion_success=Deponun Wiki verisi başarıyla silindi.
settings.delete=Bu Depoyu Sil
settings.delete_desc=Bir depoyu bir kez sildiğiniz taktirde geri getiremezsiniz. Lütfen emin olun.
settings.delete_notices_1=- Bu işlem geri ALINAMAZ.
-settings.delete_notices_2=- Bu işlem, bu depodaki her şeyi (Git verisini, sorunları, yorumları ve katkıcı erişimlerini) kalıcı olarak silecektir.
+settings.delete_notices_2=- Bu işlem, git verileri, sorunlar, yorumlar ve işbirlikçi erişimi de dahil olmak üzere bu depodaki her şeyi kalıcı olarak siler.
settings.delete_notices_fork_1=Silme işleminden sonra bütün çatallar bağımsız hale gelir.
settings.deletion_success=Depo başarıyla silindi!
settings.update_settings_success=Depo seçenekleri başarıyla güncellendi.
@@ -688,20 +797,25 @@ settings.collaborator_deletion_desc=Kullanıcı, silme işleminden sonra bu depo
settings.remove_collaborator_success=Katkıcı silindi.
settings.search_user_placeholder=Kullanıcı ara...
settings.org_not_allowed_to_be_collaborator=Organizasyon, bir katkıcı olarak eklenemez.
-settings.user_is_org_member=Kullanıcı organizasyon üyesi olduğu için katkıcı olarak eklenemez.
-settings.add_webhook=Web İsteği Ekle
settings.hooks_desc=Web istekleri, HTTP POST olay tetikleyicileri gibidirler. Gogs'ta ne zaman bir şey olsa, hedef belirttiğiniz sunuculara bildirim yapabilecek duruma geliriz. Daha fazla bilgiyi Web İstekleri Kılavuzu'nda bulabilirsiniz.
+settings.webhooks.add_new=Yeni bir web istemci ekle:
+settings.webhooks.choose_a_type=Bir tür seç...
+settings.add_webhook=Web İsteği Ekle
settings.webhook_deletion=Web İsteğini Sil
settings.webhook_deletion_desc=Bu web isteğini silerseniz buna bağlı olan tüm bilgiler ve dağıtım geçmişi de silinecektir. Devam etmek istiyor musunuz?
settings.webhook_deletion_success=Web isteği başarıyla silindi!
settings.webhook.test_delivery=Test Dağıtımı
settings.webhook.test_delivery_desc=Web isteği ayarlarınızı test etmek için sahte bir anlık olay gönderin
settings.webhook.test_delivery_success=Test web isteği, dağıtım kuyruğuna eklendi. Bunun dağıtım geçmişinde görünmesi birkaç saniye sürebilir.
+settings.webhook.redelivery=Yeniden teslimat
+settings.webhook.redelivery_success=Kanca görev '%s' teslim kuyruğuna eklenmiştir. Bu tarihte teslim durumunu güncellemek birkaç saniye sürebilir.
settings.webhook.request=İstekler
settings.webhook.response=Cevaplar
settings.webhook.headers=Başlıklar
settings.webhook.payload=Yükler
settings.webhook.body=Gövde
+settings.webhook.err_cannot_parse_payload_url=Yük URL'si ayrıştırılamıyor: %v
+settings.webhook.url_resolved_to_blocked_local_address=Payload URL resolved to a local network address that is implicitly blocked.
settings.githooks_desc=Git istekleri, Git'in kendisi tarafından güçlendirilmiştir. Özel işlemleri gerçekleştirmek için aşağıdaki listedeki desteklenen isteklerin dosyalarını düzenleyebilirsiniz.
settings.githook_edit_desc=İstek aktif değilse örnek içerik sunulacaktır. İçeriği boş bırakmak, isteği devre dışı bırakmayı beraberinde getirecektir.
settings.githook_name=İstek İsmi
@@ -711,6 +825,7 @@ settings.add_webhook_desc=Gogs, meydana gelen olay ile birlikte belirttiğiniz b
settings.payload_url=Yük Bağlantısı
settings.content_type=İçerik Türü
settings.secret=Gizli
+settings.secret_desc=Gizli, X-Gogs-Signature başlığı ile SHA256 hmac hexdigest yükü olarak gönderilecektir.
settings.slack_username=Kullanıcı Adı
settings.slack_icon_url=Simge Bağlantısı
settings.slack_color=Renk
@@ -720,10 +835,20 @@ settings.event_send_everything=Her şeye ihtiyacım var.
settings.event_choose=Neye ihtiyacım olduğunu seçtir.
settings.event_create=Oluştur
settings.event_create_desc=Dal veya biçim imi oluşturuldu
-settings.event_pull_request=Pull Request
-settings.event_pull_request_desc=Pull request opened, closed, reopened, edited, assigned, unassigned, label updated, label cleared, or synchronized.
+settings.event_delete=Sil
+settings.event_delete_desc=Dal veya etiket silindi
+settings.event_fork=Çatalla
+settings.event_fork_desc=Depo çatallandı
settings.event_push=Push
settings.event_push_desc=Bir depoya git push
+settings.event_issues=Sorunlar
+settings.event_issues_desc=Sorun açıldı, kapatıldı, yeniden açıldı, düzenlendi, atandı, atanmadı, etiket güncellendi, etiket silindi, dönüm noktası yapıldı ya da iptal edildi.
+settings.event_pull_request=İstek Çek
+settings.event_pull_request_desc=Çekme isteği açıldı, kapatıldı, yeniden açıldı, düzenlendi, atandı, atanmamış, etiket güncellendi, etiket silindi, kilometre taşları, dönüm noktası veya senkronize edildi.
+settings.event_issue_comment=Sorun Yorumu
+settings.event_issue_comment_desc=Konu yorumu eklendi, düzenlendi veya silindi.
+settings.event_release=Yayın
+settings.event_release_desc=Bir depoda yayınlanan sürüm.
settings.active=Aktif
settings.active_helper=Bu isteği tetikleyen olaya ilişkin detaylar da gönderilecektir.
settings.add_hook_success=Yeni web isteği eklendi.
@@ -733,10 +858,13 @@ settings.delete_webhook=Web İsteğini Sil
settings.recent_deliveries=Son Dağıtımlar
settings.hook_type=İstek Türü
settings.add_slack_hook_desc=Deponuza Slack entegrasyonunu ekleyin.
+settings.add_discord_hook_desc=Deponuza Discord entegrasyonu ekleyin.
+settings.add_dingtalk_hook_desc=Deponuza Dingtalk entegrasyonu ekleyin.
settings.slack_token=Erişim Anahtarı
settings.slack_domain=Alan Adı
settings.slack_channel=Kanal
settings.deploy_keys=Dağıtım Anahtarları
+settings.deploy_keys_helper=Ortak Gotcha! Kişisel ortak anahtarlar eklemek istiyorsanız lütfen bunları hesap ayarlarınıza ekleyin.
settings.add_deploy_key=Dağıtım Anahtarı Ekle
settings.deploy_key_desc=Dağıtım anahtarlarının yalnızca okuma izni vardır. Kişisel hesapların SSH anahtarlarıyla aynı değillerdir.
settings.no_deploy_keys=Herhangi bir dağıtım anahtarı eklemediniz.
@@ -748,6 +876,8 @@ settings.add_key_success=Yeni dağıtım anahtarı '%s' başarıyla eklendi!
settings.deploy_key_deletion=Dağıtım Anahtarını Sil
settings.deploy_key_deletion_desc=Bu dağıtım anahtarını silerseniz bu depoya ilişkin tüm erişimler de kaldırılacaktır. Devam etmek istiyor musunuz?
settings.deploy_key_deletion_success=Dağıtım anahtarı başarıyla silindi!
+settings.description_desc=Depo açıklaması. Maksimum 512 karakter uzunluğu.
+settings.description_length=Mevcut karakterler
diff.browse_source=Kaynağa Gözat
diff.parent=ebeveyn
@@ -766,7 +896,6 @@ release.releases=Sürümler
release.new_release=Yeni Sürüm
release.draft=Taslak
release.prerelease=Ön Sürüm
-release.stable=Kararlı
release.edit=düzenle
release.ahead=%s son sürümden beri %d işleme
release.source_code=Kaynak Kodu
@@ -813,8 +942,8 @@ team_name_helper=Sohbetlerde bu takımdan bahsetmek için bu ismi kullanacaksın
team_desc_helper=Bu takım ne hakkında?
team_permission_desc=Bu takım, ne gibi bir izin seviyesine sahiptir?
-form.name_reserved=Organizasyon adı '%s' başka birisine ayrılmış.
-form.name_pattern_not_allowed=Organizasyon adı modeli '%s' geçersiz.
+form.name_not_allowed=Organizasyon adı veya %q desenine izin verilmiyor.
+form.team_name_not_allowed=Takım adı veya %q desenine izin verilmiyor.
settings=Ayarlar
settings.options=Seçenekler
@@ -886,12 +1015,19 @@ first_page=İlk
last_page=Son
total=Toplam: %d
+dashboard.build_info=Derleme Bilgisi
+dashboard.app_ver=Uygulama sürümü
+dashboard.git_version=Git sürümü
+dashboard.go_version=Go sürümü
+dashboard.build_time=Derleme zamanı
+dashboard.build_commit=Derleme işlemesi
dashboard.statistic=İstatistik
dashboard.operations=İşlemler
dashboard.system_status=Sistem İzleme Durumu
dashboard.statistic_info=Gogs veritabanında %d kullanıcı, %d organizasyon, %d genel anahtar, %d depo, %d izleme, %d yıldız, %d hareket, %d erişim, %d sorun, %d yorum, %d sosyal hesap, %d takip, %d yansı, %d sürüm, %d giriş kaynağı, %d web isteği, %d kilometre taşı, %d etiket, %d istek görevi, %d takım, %d güncellenmiş görev, %d ek var.
dashboard.operation_name=İşlem Adı
dashboard.operation_switch=Geç
+dashboard.select_operation_to_run=Lütfen çalıştırılacak işlemi seçin
dashboard.operation_run=Çalıştır
dashboard.clean_unbind_oauth=Bağlanmamış OAuth'ları Temizle
dashboard.clean_unbind_oauth_success=Bağlanmamış tüm OAuth'lar başarıyla silindi.
@@ -905,8 +1041,8 @@ dashboard.git_gc_repos=Depolarda çöp toplama işlemini gerçekleştir
dashboard.git_gc_repos_success=Tüm depolarda çöp toplama işlemi başarıyla gerçekleştirildi.
dashboard.resync_all_sshkeys='.ssh/authorized_keys' dosyasını yeniden yaz (dikkat: Gogs'un olmayan anahtarlar silinecektir)
dashboard.resync_all_sshkeys_success=Tüm genel anahtarlar başarıyla yeniden yazıldı.
-dashboard.resync_all_update_hooks=Tüm depoların güncel web isteklerini yeniden yaz (özel yapılandırma yolu değiştiğinde gerekir)
-dashboard.resync_all_update_hooks_success=Tüm depoların güncel web istekleri başarıyla yeniden yazıldı.
+dashboard.resync_all_hooks=Tüm depoların yeniden alımı, güncellemesi ve gönderi alım kancalarını yeniden senkronize et
+dashboard.resync_all_hooks_success=Tüm depoların önceden alımı, güncellemesi ve gönderi alımı kancaları başarıyla senkronize edildi.
dashboard.reinit_missing_repos=Git dosyalarını kaybetmiş tüm depoları yeniden oluştur
dashboard.reinit_missing_repos_success=Git dosyalarını kaybetmiş tüm depolar başarıyla yeniden oluşturuldu.
@@ -981,12 +1117,14 @@ repos.private=Özel
repos.watches=İzlemeler
repos.stars=Yıldızlar
repos.issues=Sorunlar
+repos.size=Boyut
-auths.auth_manage_panel=Yetkilendirme Yönetim Paneli
+auths.auth_sources=Yetkilendirme Kaynakları
auths.new=Yeni Kaynak Ekle
auths.name=İsim
auths.type=Tür
auths.enabled=Aktifleştirilmiş
+auths.default=Varsayılan
auths.updated=Güncellendi
auths.auth_type=Yetki Türü
auths.auth_name=Yetki İsmi
@@ -995,15 +1133,21 @@ auths.domain=Alan Adı
auths.host=Sunucu
auths.port=Port
auths.bind_dn=Bağlama DN'i
+auths.bind_dn_helper=Kullanıcı adı için yer tutucu olarak '%s' kullanabilirsiniz, Örneğin DOM\%s
auths.bind_password=Bağlama Parolası
auths.bind_password_helper=Uyarı: Bu parola, ham halde bir metin dosyası içerisinde saklanacaktır. Yüksek izinli bir hesap kullanmayın.
auths.user_base=Kullanıcı Arama Tabanı
auths.user_dn=Kullanıcı DN'i
auths.attribute_username=Kullanıcı özelliği
auths.attribute_username_placeholder=Kullanıcı adı için giriş yapma form alanı kullanmak için boş bırakın.
-auths.attribute_name=Ad özelliği
+auths.attribute_name=İlk Ad Özelliği
auths.attribute_surname=Soyad özelliği
auths.attribute_mail=E-posta özelliği
+auths.verify_group_membership=Grup üyeliğini doğrula
+auths.group_search_base_dn=Grup Arama Tabanı DN
+auths.group_filter=Grup Filtresi
+auths.group_attribute_contain_user_list=Kullanıcı Listesi İçeren Grup Özelliği
+auths.user_attribute_listed_in_group=Grupta Listelenen Kullanıcı Özelliği
auths.attributes_in_bind=Bağlı DN tabanındaki özellikleri çek
auths.filter=Kullanıcı Filtresi
auths.admin_filter=Yönetici Filtresi
@@ -1017,9 +1161,9 @@ auths.enable_tls=TLS Şifrelemeyi Aktifleştir
auths.skip_tls_verify=TLS Doğrulamasını Atla
auths.pam_service_name=PAM Servis Adı
auths.enable_auto_register=Otomatik Kaydolmayı Aktifleştir
-auths.tips=İpuçları
auths.edit=Yetkilendirme Ayarlarını Düzenle
auths.activated=Bu yetkilendirme aktif
+auths.default_auth=Bu kimlik doğrulama varsayılan giriş kaynağıdır
auths.new_success=Yeni yetkilendirme '%s' başarıyla eklendi.
auths.update_success=Yetkilendirme ayarları başarıyla güncellendi.
auths.update=Yetkilendirme Ayarlarını Güncelle
@@ -1028,107 +1172,189 @@ auths.delete_auth_title=Yetkilendirme Silme
auths.delete_auth_desc=Bu yetkilendirme silinecek. Devam etmek istiyor musunuz?
auths.still_in_used=Bu yetkilendirme hala bazı kullanıcılar tarafından kullanılıyor. Lütfen öncelikle bunları silin ya da başka oturum açma türlerine çevirin.
auths.deletion_success=Yetkilendirme başarıyla silindi!
+auths.login_source_exist='%s' giriş kaynağı zaten mevcut.
+auths.github_api_endpoint=API Uç Noktası
+config.not_set=(ayarlı değil)
config.server_config=Sunucu Yapılandırması
-config.app_name=Uygulama Adı
-config.app_ver=Uygulama Sürümü
-config.app_url=Uygulama Bağlantısı
-config.domain=Alan Adı
-config.offline_mode=Çevrim Dışı Modu
-config.disable_router_log=Yönlendirici Log'larını Devre Dışı Bırak
+config.brand_name=Marka adı
config.run_user=Çalıştırma Kullanıcısı
config.run_mode=Çalıştırma Modu
-config.repo_root_path=Depo Kök Yolu
-config.static_file_root_path=Sabit Dosya Kök Yolu
-config.log_file_root_path=Log Dosyası Kök Yolu
-config.script_type=Betik Türü
-config.reverse_auth_user=Tersine Yetkilendirme Kullanıcısı
+config.server.external_url=Dış URL
+config.server.domain=Alan Adı
+config.server.protocol=Protokol
+config.server.http_addr=HTTP adresi
+config.server.http_port=HTTP portu
+config.server.cert_file=Sertifika dosyası
+config.server.key_file=Anahtar dosyası
+config.server.tls_min_version=En az TLS sürümü
+config.server.unix_socket_permission=Unix soket izni
+config.server.local_root_url=Yerel kök URL'si
+config.server.offline_mode=Çevrimdışı kip
+config.server.disable_router_log=Yönlendirici günlüğünü devre dışı bırak
+config.server.enable_gzip=Gzip'i etkinleştir
+config.server.app_data_path=Uygulama veri yolu
+config.server.load_assets_from_disk=Varlıkları diskten yükle
+config.server.landing_url=Açılış URL'si
config.ssh_config=SSH Yapılandırması
-config.ssh_enabled=Aktif
-config.ssh_start_builtin_server=Hazır Sunucuyu Başlat
-config.ssh_domain=Alan Adı
-config.ssh_port=Port
-config.ssh_listen_port=Port'u Dinle
-config.ssh_root_path=Kök Yol
-config.ssh_key_test_path=Anahtar Test Yolu
-config.ssh_keygen_path=Keygen ('ssh-keygen') Yolu
-config.ssh_minimum_key_size_check=Minimum Anahtar Uzunluğu Kontrolü
-config.ssh_minimum_key_sizes=Minimum Anahtar Uzunlukları
+config.ssh.enabled=Etkin
+config.ssh.domain=Maruz kalan alan adı
+config.ssh.port=Maruz kalan port
+config.ssh.root_path=Kök yolu
+config.ssh.keygen_path=Keygen yolu
+config.ssh.key_test_path=Anahtar test yolu
+config.ssh.minimum_key_size_check=En az anahtar boyutu denetimi
+config.ssh.minimum_key_sizes=En az anahtar boyutları
+config.ssh.rewrite_authorized_keys_at_start=Başlangıçta "yetkili_anahtarlar" ı yeniden yaz
+config.ssh.start_builtin_server=Yerleşik sunucuyu başlat
+config.ssh.listen_host=Ana makineyi dinle
+config.ssh.listen_port=Port'u dinle
+config.ssh.server_ciphers=Sunucu şifreleri
+config.ssh.server_macs=Server MACs
+config.ssh.server_algorithms=Server algorithms
+
+config.repo_config=Depo Yapılandırması
+config.repo.root_path=Kök yolu
+config.repo.script_type=Betik türü
+config.repo.ansi_chatset=ANSI karakter kümesi
+config.repo.force_private=Özeli zorla
+config.repo.max_creation_limit=En fazla oluşturma sınırı
+config.repo.preferred_licenses=Tercih edilen lisanslar
+config.repo.disable_http_git=HTTP Git'i devre dışı bırak
+config.repo.enable_local_path_migration=Yerel yol göçünü etkinleştir
+config.repo.enable_raw_file_render_mode=Ham dosya oluşturma modunu etkinleştir
+config.repo.commits_fetch_concurrency=İşlemeler eşzamanlılık getirir
+config.repo.editor.line_wrap_extensions=Düzenleyici satır kaydırma eklentileri
+config.repo.editor.previewable_file_modes=Düzenleyici önizlenebilir dosya modları
+config.repo.upload.enabled=Yükleme etkinleştirildi
+config.repo.upload.temp_path=Yükleme geçici yolu
+config.repo.upload.allowed_types=Yükleme kabul edilebilir türleri
+config.repo.upload.file_max_size=Yükleme dosya boyutu sınırı
+config.repo.upload.max_files=Yükleme dosya sınırı
config.db_config=Veritabanı Yapılandırması
-config.db_type=Türü
-config.db_host=Sunucu
-config.db_name=İsim
-config.db_user=Kullanıcı
-config.db_ssl_mode=SSL Biçimi
-config.db_ssl_mode_helper=(sadece "postgres" için)
-config.db_path=Yol
-config.db_path_helper=("sqlite3" ve "tidb" için)
-
-config.service_config=Servis Yapılandırması
-config.register_email_confirm=E-posta Onayı Gerekli
-config.disable_register=Kaydolma Hizmet Dışı
-config.show_registration_button=Kaydolma Tuşunu Göster
-config.require_sign_in_view=Oturum Açma Görünümünü İste
-config.mail_notify=E-posta Bildirimi
-config.disable_key_size_check=Minimum Anahtar Uzunluğu Kontrolünü Devre Dışı Bırak
-config.enable_captcha=Captcha'yı Aktifleştir
-config.active_code_lives=Kod Yaşamlarını Aktifleştir
-config.reset_password_code_lives=Kod Yaşamları Parolasını Yenile
+config.db.type=Tür
+config.db.host=Sunucu
+config.db.name=Ad
+config.db.schema=Schema
+config.db.schema_helper=(for "postgres" only)
+config.db.user=Kullanıcı
+config.db.ssl_mode=SSL modu
+config.db.ssl_mode_helper=(sadece "postgres" için)
+config.db.path=Yol
+config.db.path_helper=(sadece "sqlite3" için)
+config.db.max_open_conns=En fazla açık bağlantı
+config.db.max_idle_conns=En fazla boş bağlantı
+
+config.security_config=Güvenlik yapılandırması
+config.security.login_remember_days=Giriş günlerini hatırla
+config.security.cookie_remember_name=Çerezi hatırla
+config.security.cookie_username=Kullanıcı adı çerezi
+config.security.cookie_secure=Güvenli çerezi etkinleştir
+config.security.reverse_proxy_auth_user=Ters proxy kimlik doğrulama başlığı
+config.security.enable_login_status_cookie=Giriş durumu çerezini etkinleştir
+config.security.login_status_cookie_name=Giriş durumu çerezi
+config.security.local_network_allowlist=Local network allowlist
+
+config.email_config=E-Posta yapılandırması
+config.email.enabled=Etkin
+config.email.subject_prefix=Konu öneki
+config.email.host=Sunucu
+config.email.from=Kimden
+config.email.user=Kullanıcı
+config.email.disable_helo=HELO'yu Devre Dışı Bırak
+config.email.helo_hostname=HELO sunucu adı
+config.email.skip_verify=Sertifika doğrulamayı atla
+config.email.use_certificate=Özel sertifika kullan
+config.email.cert_file=Sertifika dosyası
+config.email.key_file=Anahtar dosyası
+config.email.use_plain_text=Düz metin kullan
+config.email.add_plain_text_alt=Düz metin alternatifi ekle
+config.email.send_test_mail=Send test email
+config.email.test_mail_failed=Failed to send test email to '%s': %v
+config.email.test_mail_sent=Test email has been sent to '%s'.
+
+config.auth_config=Authentication configuration
+config.auth_custom_logout_url=Custom logout URL
+config.auth.activate_code_lives=Activate code lives
+config.auth.reset_password_code_lives=Reset password code lives
+config.auth.require_email_confirm=Require email confirmation
+config.auth.require_sign_in_view=Require sign in view
+config.auth.disable_registration=Disable registration
+config.auth.enable_registration_captcha=Enable registration captcha
+config.auth.enable_reverse_proxy_authentication=Enable reverse proxy authentication
+config.auth.enable_reverse_proxy_auto_registration=Enable reverse proxy auto registration
+config.auth.reverse_proxy_authentication_header=Reverse proxy authentication header
+
+config.user_config=User configuration
+config.user.enable_email_notify=Enable email notification
-config.webhook_config=Web İstekleri Yapılandırması
-config.queue_length=Kuyruk Uzunluğu
-config.deliver_timeout=Dağıtım Zaman Aşımı
-config.skip_tls_verify=TLS Doğrulamasını Atla
-
-config.mailer_config=Mailer Yapılandırması
-config.mailer_enabled=Aktif
-config.mailer_disable_helo=HELO'yu Devre Dışı Bırak
-config.mailer_name=İsim
-config.mailer_host=Sunucu
-config.mailer_user=Kullanıcı
-config.send_test_mail=Test E-Postası Gönder
-config.test_mail_failed='%s' adresine test e-postası gönderimi başarısız: %v
-config.test_mail_sent='%s' adresine test e-postası gönderildi.
-
-config.oauth_config=OAuth Yapılandırması
-config.oauth_enabled=Aktif
+config.session_config=Oturum Yapılandırması
+config.session.provider=Provider
+config.session.provider_config=Provider config
+config.session.cookie_name=Cookie
+config.session.https_only=HTTPS only
+config.session.gc_interval=GC interval
+config.session.max_life_time=Max life time
+config.session.csrf_cookie_name=CSRF cookie
config.cache_config=Önbellek Yapılandırması
-config.cache_adapter=Önbellek Uyarlayıcısı
-config.cache_interval=Önbellek Aralığı
-config.cache_conn=Önbellek Bağlantısı
-
-config.session_config=Oturum Yapılandırması
-config.session_provider=Oturum Sağlayıcı
-config.provider_config=Sağlayıcı Yapılandırması
-config.cookie_name=Çerez Adı
-config.enable_set_cookie=Çerezleri Aktifleştir
-config.gc_interval_time=GC Aralık Zamanı
-config.session_life_time=Oturum Yaşam Zamanı
-config.https_only=Yalnız HTTPS
-config.cookie_life_time=Çerez Yaşam Zamanı
+config.cache.adapter=Adapter
+config.cache.interval=GC interval
+config.cache.host=Host
+
+config.http_config=HTTP Yapılandırması
+config.http.access_control_allow_origin=Access control allow origin
+
+config.attachment_config=Attachment configuration
+config.attachment.enabled=Enabled
+config.attachment.path=Path
+config.attachment.allowed_types=Allowed types
+config.attachment.max_size=Size limit
+config.attachment.max_files=Files limit
+
+config.release_config=Release configuration
+config.release.attachment.enabled=Attachment enabled
+config.release.attachment.allowed_types=Attachment allowed types
+config.release.attachment.max_size=Attachment size limit
+config.release.attachment.max_files=Attachment files limit
config.picture_config=Resim Yapılandırması
-config.picture_service=Resim Servisi
-config.disable_gravatar=Gravatar Hizmet Dışı
-config.enable_federated_avatar=Enable Federated Avatars
-
-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
+config.picture.avatar_upload_path=User avatar upload path
+config.picture.repo_avatar_upload_path=Repository avatar upload path
+config.picture.gravatar_source=Gravatar source
+config.picture.disable_gravatar=Disable Gravatar
+config.picture.enable_federated_avatar=Enable federated avatars
+
+config.mirror_config=Mirror configuration
+config.mirror.default_interval=Default interval
+
+config.webhook_config=Web İstekleri Yapılandırması
+config.webhook.types=Types
+config.webhook.deliver_timeout=Deliver timeout
+config.webhook.skip_tls_verify=Skip TLS verify
+
+config.git_config=Git Yapılandırması
+config.git.disable_diff_highlight=Disable diff syntax highlight
+config.git.max_diff_lines=Diff lines limit (for a single file)
+config.git.max_diff_line_characters=Diff characters limit (for a single line)
+config.git.max_diff_files=Farklı dosya sınırı (tek bir fark için)
+config.git.gc_args=GC değişkenleri
+config.git.migrate_timeout=Göç zaman aşımı
+config.git.mirror_timeout=Yansı getirme zaman aşımı
+config.git.clone_timeout=Klon zaman aşımı
+config.git.pull_timeout=Çekme zaman aşımı
+config.git.gc_timeout=GC zaman aşımı
+
+config.lfs_config=LFS yapılandırması
+config.lfs.storage=Depolama
+config.lfs.objects_path=Nesnelerin yolu
config.log_config=Log Yapılandırması
-config.log_mode=Log Modu
+config.log_file_root_path=Log Dosyası Kök Yolu
+config.log_mode=Mod
+config.log_options=Seçenekler
monitor.cron=Cron Görevleri
monitor.name=İsim
@@ -1159,17 +1385,24 @@ notices.delete_success=Sistem bildirimleri başarıyla silindi.
create_repo=depo %s oluşturuldu
rename_repo=%[1]s olan depo adını %[3]s buna çevirdi
commit_repo=%[4]s zamanında %[3]s buraya push yaptı
+compare_commits=Bu %d işlemeler için karşılaştırmaları görüntüle
+transfer_repo=depo %s%s'a aktarıldı
create_issue=`%s#%[2]s sorununu açtı`
close_issue=`%s#%[2]s sorununu kapattı`
reopen_issue=`%s#%[2]s sorununu tekrar açtı`
+comment_issue=`%s#%[2]s sorununa yorum yazdı`
create_pull_request=`%s#%[2]s değişiklik isteğini oluşturdu`
close_pull_request=`%s#%[2]s değişiklik isteğini kapattı`
reopen_pull_request=`%s#%[2]s değişiklik isteğini tekrar açtı`
-comment_issue=`%s#%[2]s sorununa yorum yazdı`
merge_pull_request=`%s#%[2]s değişim isteğini birleştirdi`
-transfer_repo=depo %s%s'a aktarıldı
+create_branch=%[3]s at %[4]s yeni şubesi oluşturuldu
+delete_branch=%[2]s 'ın %[3]s şubesi silindi
push_tag=etiket %[2]s%[3]s'a itelendi
-compare_commits=Bu %d işlemeler için karşılaştırmaları görüntüle
+delete_tag=%[2]s 'ın %[3]s etiketi silindi
+fork_repo=%s için bir depo çatalladı
+mirror_sync_push=işlemeler yansıdan %[4]s deposundaki dalına eşitlendi
+mirror_sync_create=yansıdan yeni %[2]s referansı %[3]s konumuna eşitlendi
+mirror_sync_delete=yansıdan %[3]s konumundaki %[2]s referansı eşitlendi ve silindi
[tool]
ago=önce
@@ -1191,6 +1424,7 @@ months=%d ay %s
years=%d yıl %s
raw_seconds=saniyeler
raw_minutes=dakikalar
+raw_hours=saat
[dropzone]
default_message=Dosyaları yüklemek için sürükleyin veya tıklayın.
diff --git a/conf/locale/locale_uk-UA.ini b/conf/locale/locale_uk-UA.ini
new file mode 100644
index 00000000000..a5347363038
--- /dev/null
+++ b/conf/locale/locale_uk-UA.ini
@@ -0,0 +1,1434 @@
+app_desc=Зручний сервіс власного Git хостингу
+
+home=Головна сторінка
+dashboard=Панель керування
+explore=Огляд
+help=Довідка
+sign_in=Увійти
+sign_out=Вийти
+sign_up=Реєстрація
+register=Реєстрація
+website=Вебсторінка
+page=Сторінка
+template=Шаблон
+language=Мова
+create_new=Створити...
+user_profile_and_more=Профіль користувача та інше
+signed_in_as=Увійшов як
+
+username=Ім'я користувача
+email=Електронна пошта
+password=Пароль
+re_type=Повторіть
+captcha=CAPTCHA
+
+repository=Репозиторій
+organization=Організація
+mirror=Дзеркало
+new_repo=Новий репозиторій
+new_migrate=Нова міграція
+new_mirror=Нове дзеркало
+new_fork=Нове відгалудження
+new_org=Нова організація
+manage_org=Керування організаціями
+admin_panel=Панель адміністратора
+account_settings=Налаштування облікового запису
+settings=Налаштування
+your_profile=Ваш профіль
+your_settings=Ваші налаштування
+
+activities=Дії
+pull_requests=Запити на злиття
+issues=Проблеми
+
+cancel=Скасувати
+
+[status]
+page_not_found=Сторінку не знайдено
+internal_server_error=Внутрішня помилка серверу
+
+[install]
+install=Установка
+title=Кроки установки перед першим запуском
+docker_helper=Якщо ви запускаєте Gogs всередені Docker, уважно прочитайте гайдлайни перш ніж змінювати щось!
+requite_db_desc=Gogs потребує MySQL, PostgreSQL, SQLite3 або TiDB (за допомогою MySQL протоколу).
+db_title=Налаштування бази даних
+db_type=Тип бази данних
+host=Хост
+user=Користувач
+password=Пароль
+db_name=Ім'я бази даних
+db_schema=Схема
+db_helper=Будь ласка, використовуйте MySQL як INNODB з таблицею символів utf8_general_ci.
+ssl_mode=Режим SSL
+path=Шлях
+sqlite_helper=Шлях до файла бази даних SQLite3. Будь ласка, використовуйте абсолютний шлях коли стартуєте сервіс.
+err_empty_db_path=Шлях до файла бази даних SQLite3 не може бути порожнім.
+no_admin_and_disable_registration=Ви не можете заборонити реєстрацію без створення облікового запису адміністратора.
+err_empty_admin_password=Пароль адміністратора не може бути пустим.
+
+general_title=Загальні налаштування Gogs
+app_name=Назва програми
+app_name_helper=Вкажіть назву вашої організації, величну та звучну!
+repo_path=Кореневий шлях репозиторія
+repo_path_helper=До цього каталогу буде збережено всі зовнішні сховища Git.
+run_user=Запустити як
+run_user_helper=Користувач мусить мати доступ до кореню репозиторіїв та право на запуск Gogs.
+domain=Домен
+domain_helper=Це впливає на клонування через SSH.
+ssh_port=SSH порт
+ssh_port_helper=Номер порту, який використовує SSH сервер. Для заборони опції SSH залиште його порожнім.
+use_builtin_ssh_server=Користуватися вбудованим SSH сервером
+use_builtin_ssh_server_popup=Запустити вбудований SSH сервер для операцій git інакший за системний SSH демон.
+http_port=Порт HTTP
+http_port_helper=Номер порту який программа буде слухати.
+app_url=Адреса програми
+app_url_helper=Це впливає на клонування URL через HTTP/HTTPS та десь в електронній пошті.
+log_root_path=Шлях до лог файлу
+log_root_path_helper=Каталог для файлів журналу.
+enable_console_mode=Увімкнути консольний режим
+enable_console_mode_popup=На додаток до файлового режиму писати логи також і до консолі.
+default_branch=Гілка за замовчуванням
+
+optional_title=Додаткові налаштування
+email_title=Налаштування електронної пошти
+smtp_host=SMTP хост
+smtp_from=Від
+smtp_from_helper=Поле "Від" адреси, згідно RFC 5322. Це може бути просто адреса електронної пошти або адреса у форматі "Ім'я" .
+mailer_user=Відправник електронної пошти
+mailer_password=Відправник паролю
+register_confirm=Увімкнути підтвердження реєстрації
+mail_notify=Увімкнути сповіщення електронною поштою
+server_service_title=Налаштування сервера та інших сервісів
+offline_mode=Увімкнути автономний режим
+offline_mode_popup=Не використовувати CDN навіть у продакшн режимі.
+disable_gravatar=Вимкнути сервіс Gravatar
+disable_gravatar_popup=Виключити Gravatar та інші зовнішні джерела, всі аватари або завантажуються користувачами або використовується аватар за замовчанням.
+federated_avatar_lookup=Включити федеративний перегляд аватарів
+federated_avatar_lookup_popup=Ввімкніть пошук федеративного аватара для використання федеративної служби з відкритим вихідним кодом на основі libravatar.
+disable_registration=Вимкнути самостійну реєстрацію
+disable_registration_popup=Вимкнути самостійну реєстрацію користувачів, тільки адміністратор може створювати облікові записи.
+enable_captcha=Увімкнути капчу
+enable_captcha_popup=Вимагати перевірку капчи при самостійній реєстрації користувача.
+require_sign_in_view=Увімкнути вимогу авторизації для перегляду сторінок
+require_sign_in_view_popup=Тільки авторизовані користувачі можуть переглядати сторінки, гості зможуть бачити тільки сторінку авторизації.
+admin_setting_desc=Ви не мусите створювати обліковий запис адміністратора прямо зараз, користувач з ID=1 отримає доступ адміністратора автоматично.
+admin_title=Налаштування облікового запису адміністратора
+admin_name=Ім'я користувача
+admin_password=Пароль
+confirm_password=Підтвердження паролю
+admin_email=Електронна пошта адміністратора
+install_gogs=Встановити Gogs
+test_git_failed=Не в змозі перевірити 'git' команду: %v
+sqlite3_not_available=Ваша версія не підтримує SQLite3, будь ласка завантажте офіційну бінарну версію з %s, не gobuild версію.
+invalid_db_setting=Налаштування бази даних помилкові: %v
+invalid_repo_path=Неприпустимий шлях до сховища репозиторіїв: %v
+run_user_not_match=Користувач, що здійснює запуск, не відповідає поточному: %s -> %s
+smtp_host_missing_port=В адресі SMTP-хосту не вистачає порту.
+invalid_smtp_from=Невалідне SMTP поле Від: %v
+save_config_failed=Не в змозі зберегти конфігурацію: %v
+init_failed=Не вдалося ініціалізувати додаток: %v
+invalid_admin_setting=Неприпустимі налаштування облікового запису адміністратора: %v
+install_success=Вітаємо! Ми раді, що ви обрали Gogs, отримуйте задоволення і будьте обережні.
+invalid_log_root_path=Шлях до лог файлу хибний: %v
+
+[home]
+uname_holder=Ім'я користувача або електронна пошта
+password_holder=Пароль
+switch_dashboard_context=Змінити дошку
+my_repos=Мої репозиторії
+show_more_repos=Показати більше репозиторіїв...
+collaborative_repos=Спільні репозиторії
+my_orgs=Мої організації
+my_mirrors=Мої дзеркала
+view_home=Переглянути %s
+
+issues.in_your_repos=В ваших репозиторіях
+
+[explore]
+repos=Сховища
+users=Користувачі
+organizations=Організації
+search=Пошук
+
+[auth]
+create_new_account=Створити новий обліковий запис
+register_hepler_msg=Вже зареєстровані? Увійдіть зараз!
+social_register_hepler_msg=Вже зареєстровані? Прив'яжіть зараз!
+disable_register_prompt=Вибачте, реєстрація відключена. Будь ласка, зв'яжіться з адміністратором сайту.
+disable_register_mail=На жаль, підтвердження реєстрації на електрону пошту вимкнено адміністратором.
+auth_source=Джерело автентифікації
+local=Локальний
+remember_me=Запам'ятати мене
+forgot_password=Забув пароль
+forget_password=Забули пароль?
+sign_up_now=Потрібен обліковий запис? Зареєструватися зараз.
+confirmation_mail_sent_prompt=Нове підтвердження було направлено на %s, будь ласка, перевірте вашу поштову скриньку протягом наступних %d годин, щоб завершити реєстрацію.
+active_your_account=Активувати обліковий запис
+prohibit_login=Вхід заборонений
+prohibit_login_desc=Вхід до вашого облікового запису заборонений, зверніться будь-ласка до адміністратора.
+resent_limit_prompt=На жаль, ви посилаєте активаційне електронне поштове повідомлення занадто часто. Зачекайте, будь ласка, 3 хвилини.
+has_unconfirmed_mail=Привіт %s, у вас є непідтвердженими адреси (%s). Якщо ви не отримали підтвердження електронною поштою або треба відправити нову, будь ласка, натисніть на кнопку нижче.
+resend_mail=Натисніть тут, щоб вислати активаційне електроне поштове повідомлення знову
+send_reset_mail=Натисніть тут, щоб відправити скидання пароля на електронну пошту
+reset_password=Скинути пароль
+invalid_code=На жаль, код підтвердження, закінчився або помилковий.
+reset_password_helper=Натисніть тут для скидання пароля
+password_too_short=Довжина пароля не може бути меншою за 6.
+non_local_account=Нелокальні облікові записи не можуть змінити пароль через Gogs.
+
+login_two_factor=Двофакторна автентифікація
+login_two_factor_passcode=Код аутентифікації
+login_two_factor_enter_recovery_code=Введіть двофакторний код відновлення
+login_two_factor_recovery=Двофакторне відновлення
+login_two_factor_recovery_code=Код відновлення
+login_two_factor_enter_passcode=Введіть двофакторний код
+login_two_factor_invalid_recovery_code=Код відновлення не валідний, або його вже було використано.
+
+[mail]
+activate_account=Будь ласка, активуйте ваш обліковий запис
+activate_email=Перевірте свою електронну адресу
+reset_password=Скидання пароля
+register_success=Реєстрація пройшла успішно, ласкаво просимо
+register_notify=Ласкаво просимо на борту
+
+[modal]
+yes=Так
+no=Ні
+modify=Змінити
+
+[form]
+UserName=Ім'я користувача
+RepoName=Ім'я сховища
+Email=Адреса електронної пошти
+Password=Пароль
+Retype=Введіть пароль ще раз
+SSHTitle=Iм'я SSH ключа
+HttpsUrl=Адреса HTTPS
+PayloadUrl=URL обробника
+TeamName=Назва команди
+AuthName=Назва авторизації
+AdminEmail=Електронна пошта адміністратора
+
+NewBranchName=Ім'я нової гілки
+CommitSummary=Резюме коміту
+CommitMessage=Повідомлення коміту
+CommitChoice=Зафіксувати вибір
+TreeName=Шлях до файлу
+Content=Вміст
+
+require_error=' не може бути пустим.'
+alpha_dash_error=` має складатись з буков, цифр, або рисок(-_).`
+alpha_dash_dot_error=` має складатись з буков, цифр, рисок(-_), або крапок.`
+alpha_dash_dot_slash_error=` мусить бути валідною буквою, або цифрою, або рискою(-_), або крапкою, або слешем.`
+size_error=` має мати розмір %s.`
+min_size_error=' має містити принаймні %s символів.'
+max_size_error=' має містити принаймні %s символів.'
+email_error=`це не дійсна електронна поштова адреса.`
+url_error='не є припустимою URL-Адресою.'
+include_error=`повинен містити текст '%s'`
+unknown_error=Невідома помилка:
+captcha_incorrect=CAPTCHA не співпадає.
+password_not_match=Пароль і підтвердження пароля відрізняються.
+
+username_been_taken=Ім'я користувача вже зайнято.
+repo_name_been_taken=Назва сховища вже використовується.
+org_name_been_taken=Назва організаціі вже використовується.
+team_name_been_taken=Назва команди вже використовується.
+email_been_used=Ця адреса електронної пошти вже використовується.
+username_password_incorrect=Ім'я користувача або пароль помилкові.
+auth_source_mismatch=Обране джерело автентифікації не асоційовано з користувачем.
+enterred_invalid_repo_name=Переконайтеся, що ви ввели назву сховища правильно.
+enterred_invalid_owner_name=Переконайтеся, що ви ввели ім'я власника правильно.
+enterred_invalid_password=Переконайтеся, що ви ввели пароль правильно.
+user_not_exist=Даний користувач не існує.
+last_org_owner=Користувач на видалення є останнім членом команди. Тому повинен бути інший власник.
+
+invalid_ssh_key=На жаль, ми не вдалося перевірити ключ SSH: %s
+unable_verify_ssh_key=Gogs не вдалося перевірити ключ SSH, але ми припускаємо, що він є правильним, тому будь-ласка переконайтеся в цьому самостійно.
+auth_failed=Помилка автентифікації: %v
+
+still_own_repo=Ви досі є власником репозиторія, тому ви повинні видалити або перемістити його.
+still_has_org=Ви досі є членом організаціі, тому ви повинні або покинути або видалити її.
+org_still_own_repo=Ця організація досі є власником сховища, тому ви повинні видалити або перемістити його.
+
+target_branch_not_exist=Цільової гілки не існує
+
+[user]
+change_avatar=Змінити свій аватар
+join_on=Приєднався
+repositories=Репозиторії
+activity=Публічна активність
+followers=Підписники
+starred=Відмічене
+following=Слідкувати
+follow=Підписатися
+unfollow=Відписатися
+
+form.name_not_allowed=Ім'я користувача чи шаблон %q не допускаються.
+
+[settings]
+profile=Профіль
+password=Пароль
+avatar=Аватар
+ssh_keys=Ключі SSH
+security=Безпека
+repos=Репозиторії
+orgs=Організації
+applications=Додатки
+delete=Видалити обліковий запис
+
+public_profile=Загальнодоступний профіль
+profile_desc=Ваша адреса електронної пошти є публічною і буде використовуватися для будь-яких повідомлень щодо вашого облікового запису і будь-яких веб-операцій, що здійснюються через сайт.
+password_username_disabled=Нелокальні користувачі не можуть змінити своє ім'я користувача.
+full_name=Повне ім'я
+website=Веб-сторінка
+location=Місце знаходження
+update_profile=Оновити профіль
+update_profile_success=Ваш профіль було успішно оновлено.
+change_username=Ім'я користувача змінено
+change_username_prompt=Ця зміна вплине на посилання, що відносяться до вашого облікового запису.
+continue=Продовжити
+cancel=Скасувати
+
+lookup_avatar_by_mail=Знайти аватар за адресою ел. пошти
+federated_avatar_lookup=Знайти зовнішній аватар
+enable_custom_avatar=Увімкнути користувацькі зображення користувача
+choose_new_avatar=Оберіть нове зображення користувача
+update_avatar=Змінити налаштування зображення користувача
+delete_current_avatar=Видалити аватар
+uploaded_avatar_not_a_image=Завантажений файл не є картинкою.
+update_avatar_success=Ваші налаштунки зображення користувача успішно оновленно.
+
+change_password=Змінити пароль
+old_password=Поточний пароль
+new_password=Новий пароль
+retype_new_password=Введіть новий пароль іще раз
+password_incorrect=Поточний пароль помилковий.
+change_password_success=Пароль успішно змінений. Тепер ви можете увійти за допомогою нового пароля.
+password_change_disabled=Нелокальні користувачі не можуть змінити свій пароль.
+
+emails=Адреси електронної пошти
+manage_emails=Управління адресами електронної пошти
+email_desc=Ваша основна адреса електронної пошти використовуватиметься для сповіщення та інших операцій.
+primary=Головний
+primary_email=Встановити головним
+delete_email=Видалити
+email_deletion=Видалення електронної пошти
+email_deletion_desc=Видалення цієї електронної адреси призведе до вилучення інформації, пов'язаної з вашим обліковим записом. Ви бажаєте продовжити?
+email_deletion_success=Електронну адресу успішно видалено!
+email_deletion_primary=Не вдається видалити основну адресу електронної пошти.
+add_new_email=Додати нову адресу електронної пошти
+add_email=Додати адресу електронної пошти
+add_email_confirmation_sent=Новий електронний лист із підтвердженням було направлено на '%s', будь ласка, перевірте вашу поштову скриньку протягом наступних %d годин, щоб завершити процес підтвердження.
+add_email_success=Вашу нову адресу електронної пошти було успішно додано.
+
+manage_ssh_keys=Керувати ключами SSH
+add_key=Додати ключ
+ssh_desc=Це список ключів SSH, пов'язані з вашим обліковим записом. Ці ключі дозволять кому завгодно отримувати доступ до вашого репозиторію, тож будьте певні що ви впізнаєте їх.
+ssh_helper=Потрібна допомога? Дивіться гід на GitHub з генерації ключів SSH або виправлення типових неполадок SSH.
+add_new_key=Додати SSH ключа
+ssh_key_been_used=Було використано публічний ключ.
+ssh_key_name_used=Відкритий ключ з таким іменем уже існує.
+key_name=Назва ключа
+key_content=Вміст
+add_key_success=Новий SSH ключ '%s' було додано успішно!
+delete_key=Видалити
+ssh_key_deletion=Видалення SSH ключа
+ssh_key_deletion_desc=Видалення цього SSH ключа видалить всі пов’язані з ним доступи для вашого облікового запису. Ви бажаєте продовжити?
+ssh_key_deletion_success=SSH ключ було видалено успішно!
+add_on=Додано
+last_used=Останнє використання
+no_activity=Жодної діяльності
+key_state_desc=Цей ключ використовувався в останні 7 днів
+token_state_desc=Цей жетон використовувався в останні 7 днів
+
+two_factor=Двофакторна автентифікація
+two_factor_status=Статус:
+two_factor_on=Вкл.
+two_factor_off=Викл.
+two_factor_enable=Увімкнути
+two_factor_disable=Вимкнути
+two_factor_view_recovery_codes=Перегляньте й збережіть ваші ключі відновлення у безпечному місці. Ви можете використовувати іх як паролі якщо втратите доступ до вашої програми автентифікації.
+two_factor_http=Для HTTP/HTTPS операцій, ви більше не можете використовувати звичайні ім'я та пароль. Будь ласка створіть та використовуйте персональний жетон доступу як ваші облікові дані, наприклад %[3]s.
+two_factor_enable_title=Увімкнути двофакторну автентифікацію
+two_factor_scan_qr=Будь ласка, використовуйте ваш додаток автентифікації для сканування зображення:
+two_factor_or_enter_secret=Або введіть секрет:
+two_factor_then_enter_passcode=Потім введіть пароль:
+two_factor_verify=Перевірити
+two_factor_invalid_passcode=Введений пароль не валідний, будь ласка, спробуйте ще раз!
+two_factor_reused_passcode=Введений пасскод вже було використано. Будь ласка, спробуйте інший!
+two_factor_enable_error=Увімкнення двофакторної автентифікації не вдалося: %v
+two_factor_enable_success=Двофакторну автентифікацію успішно активовано для вашого акаунту!
+two_factor_recovery_codes_title=Пароль відновлення для двофакторної автентифікації
+two_factor_recovery_codes_desc=Пароль відновлення використовується коли ви тимчасово втрачаєте доступ до вашого додатку автентифікації. Кожен пароль відновлення може бути використаний лише один раз. Будь ласка, тримайте ці паролі у безпечному місці.
+two_factor_regenerate_recovery_codes=Перегенерувати паролі відновлення
+two_factor_regenerate_recovery_codes_error=Перегенерація паролів відновлення не вдалася: %v
+two_factor_regenerate_recovery_codes_success=Нові коди відновлення було успішно сгенеровано!
+two_factor_disable_title=Вимкнути двофакторну автентифікацію
+two_factor_disable_desc=Рівень безпеки вашого акаунту знизиться після вимикання двофакторної автентифікаціЇ. Бажаєте продовжити?
+two_factor_disable_success=Двофакторну автентифікацію було успішно вимкнено!
+
+manage_access_token=Керувати жетонами особистого доступу
+generate_new_token=Генерувати новий жетон
+tokens_desc=Створені вами жетони для доступу до Gogs API.
+access_token_tips=Персональний жетон доступу може бути використаний як ім'я користувача або пароль. Рекомендується використовувати "x-access-token" як ім'я користувача та персональний жетон доступу, що є паролем для додатків gt.
+new_token_desc=На цей час будь-який жетон має повний доступ до вашого облікового запису.
+token_name=Назва жетону
+generate_token=Створити жетон
+generate_token_succees=Новий жетон було створено успішно! Переконайтеся, що Ви скопіювали Ваш новий жетон доступу, бо Ви не зможете побачити його знову!
+delete_token=Видалити
+access_token_deletion=Видалення жетону персонального доступу
+access_token_deletion_desc=Видалення цього жетону призведе до неможливості доступу усіх пов’язаних додатків. Продовжити?
+delete_token_success=Персональний жетон було видалено. Не забудьте перевірити ваш додаток.
+token_name_exists=Жетон з таким ім'ям вже існує.
+
+orgs.none=Ви не є членом будь-якої організації.
+orgs.leave_title=Залишити організацію
+orgs.leave_desc=Ви втратите доступ до всіх репозиторіїв і команд після того, як ви покинете організацію. Ви хочете продовжити?
+
+repos.leave=Покинути
+repos.leave_title=Покинути репозиторій
+repos.leave_desc=Ви можете втратити доступ до репозиторію після того як покинете його. Бажаєте продовжити?
+repos.leave_success=Ви успішно покинули репозиторій '%s'!
+
+delete_account=Видалити ваш обліковий запис
+delete_prompt=Ця операція остаточно видалить обліковий запис, і її НЕМОЖЛИВО буде скасувати!
+confirm_delete_account=Підтвердження видалення
+delete_account_title=Видалення облікового запису
+delete_account_desc=Цей обліковий запис буде видалено без можливості відновлення, ви хочете продовжити?
+
+[repo]
+owner=Власник
+repo_name=Назва репозиторію
+repo_name_helper=Гарна назва репозиторія зазвичай складається з коротких та унікальних ключових слів, які легко запам'ятати.
+visibility=Видимість
+unlisted=Поза списком
+visiblity_helper=Цей репозиторій є Приватним
+unlisted_helper=Цей репозиторій є поза списком
+visiblity_helper_forced=Усі нові репозиторії є Приватними згідно налаштувань адміністратора сайту
+visiblity_fork_helper=(Зміна даного значення вплине на всі відгалуження)
+clone_helper=Потрібна допомога у клонуванні? Відвідайте допомогу!
+fork_repo=Відгалужити репозиторій
+fork_from=Відгалужити з
+fork_visiblity_helper=Не можна змінити видимість відгалуженого репозиторія.
+repo_desc=Опис
+repo_lang=Мова
+repo_gitignore_helper=Виберіть .gitignore файли
+license=Ліцензія
+license_helper=Виберіть ліцензійний файл
+readme=Readme
+readme_helper=Виберіть шаблон readme
+auto_init=Ініціалізувати цей репозиторій з обраними файлами і шаблоном
+create_repo=Створити репозиторій
+default_branch=Головна гілка
+mirror_prune=Підчищати
+mirror_prune_desc=Видалити всі відслідковувані посилання, які більше не існують на віддаленому
+mirror_interval=Інтервал дзеркалювання (години)
+mirror_address=Адреса дзеркала
+mirror_address_desc=Будь ласка, вкажіть необхідні дані користувача у адресі.
+mirror_last_synced=Востаннє синхронізовано
+watchers=Спостерігачі
+stargazers=Шанувальники
+forks=Відгалуження
+repo_description_helper=Опис репозиторію. До 512-ти символів довжиною.
+repo_description_length=Доступні символи
+
+form.reach_limit_of_creation=Власник досягнув максимальної кількості у %d створених репозиторіїв.
+form.name_not_allowed=Назва репозиторію або шаблон %q не допоскаються.
+
+need_auth=Потрібна авторизація
+migrate_type=Тип міграції
+migrate_type_helper=Даний репозиторій буде дзеркалом
+migrate_repo=Перенесення репозиторія
+migrate.clone_address=Адреса клонування
+migrate.clone_address_desc=Це може бути URL-адресою HTTP, HTTPS чи GIT.
+migrate.clone_address_desc_import_local=Ви також можете змігрувати репозиторій з локального шляху на сервері.
+migrate.permission_denied=Вам не дозволено імпортувати локальні репозиторії.
+migrate.invalid_local_path=Невірний локальний шлях, він не існує або не є каталогом.
+migrate.clone_address_resolved_to_blocked_local_address=Адреса клону розв’язана на адресу локальної мережі, яка неявно заблокована.
+migrate.failed=Перенесення не вдалось: %v
+
+mirror_from=дзеркало
+forked_from=відгалужено від
+copy_link=Скопіювати
+copy_link_success=Скопійовано!
+copy_link_error=Натисніть ⌘-C або Ctrl-C, щоб скопіювати
+copied=Скопійовано
+unwatch=Не стежити
+watch=Слідкувати
+unstar=Зняти зірку
+star=Зірка
+fork=Відгалуження
+
+no_desc=Без опису
+quick_guide=Короткий посібник
+clone_this_repo=Кнонувати цей репозиторій
+create_new_repo_command=Створити новий репозиторій з командного рядка
+push_exist_repo=Штовхнути існуючий репозиторій з командного рядка
+bare_message=Цей репозиторій ще не має жодного вмісту.
+
+files=Файли
+branch=Гілка
+tree=Дерево
+filter_branch_and_tag=Фільтрувати гілку або тег
+branches=Гілки
+tags=Теги
+issues=Проблеми
+pulls=Запити на злиття
+labels=Мітка
+milestones=Проміжні етапи
+commits=Коміти
+git_branches=Гілки
+releases=Релізи
+file_raw=Запис
+file_history=Історія
+file_view_raw=Перегляд запису
+file_permalink=Постійне посилання
+file_too_large=Цей файл завеликий для показу
+video_not_supported_in_browser=Ваш браузер не підтримує єлемент HTML5 video.
+
+branches.overview=Огляд
+branches.active_branches=Активні гілки
+branches.stale_branches=Застарілі гілки
+branches.all=Усі гілки
+branches.updated_by=Оновлено %[1]s з %[2]s
+branches.change_default_branch=Гілку за замовчуванням змінено
+branches.default_deletion_not_allowed=Cannot delete the default branch.
+branches.protected_deletion_not_allowed=Cannot delete a protected branch.
+
+editor.new_file=Новий файл
+editor.upload_file=Завантажити файл
+editor.edit_file=Редагування файла
+editor.preview_changes=Попередній перегляд змін
+editor.cannot_edit_non_text_files=Ви не можете редагувати не текстові файли
+editor.edit_this_file=Редагувати цей файл
+editor.must_be_on_a_branch=Ви повинні бути у гілці щоб зробити, або запропонувати зміни до цього файлу
+editor.fork_before_edit=Ви мусите клонувати репозиторій щоб редагувати файли
+editor.delete_this_file=Видалити цей файл
+editor.must_have_write_access=Ви повинні мати доступ на запис щоб запропонувати зміни до цього файлу
+editor.file_delete_success=Файл '%s' успішно видалено!
+editor.name_your_file=Дайте назву файлу...
+editor.filename_help=Щоб додати каталог, просто наберіть його ім'я, та натисніть /. Щоб видалити каталог, перейдіть на початок поля й натисніть клавішу backspace.
+editor.or=Або
+editor.cancel_lower=Скасувати
+editor.commit_changes=Зафіксувати зміни
+editor.add_tmpl=Додати '%s/'
+editor.add=Додати '%s'
+editor.update=Оновити '%s'
+editor.delete=Видалити '%s'
+editor.commit_message_desc=Додати необов'язковий розширений опис...
+editor.commit_directly_to_this_branch=Зробіть комміт прямо в гілку %s.
+editor.create_new_branch=Створіть нову гілку для цього коміту та відкривайте запит на втягування.
+editor.new_branch_name_desc=Ім'я нової гілки...
+editor.cancel=Скасувати
+editor.filename_cannot_be_empty=Ім'я файлу не може бути порожнім.
+editor.branch_already_exists=Гілка '%s' вже присутня у репозиторії.
+editor.directory_is_a_file=Запис '%s' у батьківському шляху є файлом, а не директорією цього репозиторія.
+editor.file_is_a_symlink=Файл '%s' є символічним посиланням що не може бути відредаговане у web-редакторі.
+editor.filename_is_a_directory=Ім'я файлу '%s' є директорією у цьому репозиторії.
+editor.file_editing_no_longer_exists=Файлу '%s' що ви редагуєте, вже не існує у репозиторії.
+editor.file_changed_while_editing=Вміст файлу було змінено з того часу як ви почали його редагувати. натисніть тут щоб побачити зміни або знову натисніть commit щоб перезаписати ці зміни.
+editor.file_already_exists=Файл на ім'я '%s' вже присутній у репозиторії.
+editor.no_changes_to_show=Нема змін для показу.
+editor.fail_to_update_file=Не вдалося оновити/створити файл '%s' через помилку: %v
+editor.fail_to_delete_file=Не вдалося видалити файл '%s' через помилку: %v
+editor.add_subdir=Додати підкаталогу...
+editor.unable_to_upload_files=Не вдалося завантажити файли до '%s' через помилку: %v
+editor.upload_files_to_dir=Завантажувати файли до '%s'
+
+commits.commit_history=Історія комітів
+commits.commits=Коміти
+commits.search=Знайти коміт
+commits.find=Пошук
+commits.author=Автор
+commits.message=Опис
+commits.date=Дата
+commits.older=Старіші
+commits.newer=Новіші
+
+issues.new=Нове обговорення
+issues.new.labels=Мітки
+issues.new.no_label=Без Мітки
+issues.new.clear_labels=Очистити мітки
+issues.new.milestone=Етап
+issues.new.no_milestone=Етап відсутній
+issues.new.clear_milestone=Очистити етап
+issues.new.open_milestone=Активні етапи
+issues.new.closed_milestone=Закриті етапи
+issues.new.assignee=Відповідальний
+issues.new.clear_assignee=Прибрати відповідального
+issues.new.no_assignee=Немає відповідального
+issues.create=Створити задачу
+issues.new_label=Нова мітка
+issues.new_label_placeholder=Назва мітки...
+issues.create_label=Створити мітку
+issues.label_templates.title=Завантажити визначений набір міток
+issues.label_templates.info=Жодних міток поки що немає. Ви можете натиснути кнопку «Створити мітку», щоб створити нову або використати одну із набору знизу.
+issues.label_templates.helper=Оберіть набір міток
+issues.label_templates.use=Використовуйте набір міток
+issues.label_templates.fail_to_load_file=Не вдалося завантажити файл шаблона мітки '%s': %v
+issues.open_tab=%d Відкрито
+issues.close_tab=:%d Закрито
+issues.filter_label=Мітка
+issues.filter_label_no_select=Мітку не обрано
+issues.filter_milestone=Етап
+issues.filter_milestone_no_select=Немає вибраних етапів
+issues.filter_assignee=Призначено
+issues.filter_assginee_no_select=Етап не обрано
+issues.filter_type=Тип
+issues.filter_type.all_issues=Всі проблемы
+issues.filter_type.assigned_to_you=Призначене вам
+issues.filter_type.created_by_you=Створено вами
+issues.filter_type.mentioning_you=Вас згадано
+issues.filter_sort=Сортування
+issues.filter_sort.latest=Найновіші
+issues.filter_sort.oldest=Найстаріші
+issues.filter_sort.recentupdate=Нещодавно оновлено
+issues.filter_sort.leastupdate=Найдавніше оновлені
+issues.filter_sort.mostcomment=Найбільш коментовані
+issues.filter_sort.leastcomment=Найменш коментовані
+issues.opened_by=%[1]s відкрито %[3]s
+issues.opened_by_fake=%[1]s відкрито %[2]s
+issues.previous=Попередня сторінка
+issues.next=Наступний
+issues.open_title=Відкрити
+issues.closed_title=Закриті
+issues.num_comments=%d коментарів
+issues.commented_at=`відкоментовано %s`
+issues.delete_comment_confirm=Ви впевнені, що хочете видалити цей коментар?
+issues.no_content=Тут ще немає жодного вмісту.
+issues.close_issue=Закрити
+issues.close_comment_issue=Прокоментувати і закрити
+issues.reopen_issue=Відкрити знову
+issues.reopen_comment_issue=Прокоментувати та відкрити знову
+issues.create_comment=Коментар
+issues.closed_at=`закрито %[2]s`
+issues.reopened_at=`перевідкрито %[2]s`
+issues.commit_ref_at=`згадано цю проблему в коміті %[2]s`
+issues.poster=Автор
+issues.collaborator=Співавтор
+issues.owner=Власник
+issues.sign_in_require_desc=Підпишіться щоб приєднатися до обговорення.
+issues.edit=Редагувати
+issues.cancel=Скасувати
+issues.save=Зберегти
+issues.label_title=Назва мітки
+issues.label_color=Колір мітки
+issues.label_count=%d міток
+issues.label_open_issues=%d відкритих питань
+issues.label_edit=Редагувати
+issues.label_delete=Видалити
+issues.label_modify=Змінити мітку
+issues.label_deletion=Видалити мітку
+issues.label_deletion_desc=Видалення мітки призведе до втрати її даних у всіх пов'язаних питаннях. Продовжити?
+issues.label_deletion_success=Мітку успішно видалено!
+issues.num_participants=%d учасників
+issues.attachment.open_tab=`Натисніть щоб побачити "%s" у новій вкладці`
+issues.attachment.download=`Натисніть щоб завантажити "%s"`
+
+pulls.new=Новий запрос на злиття
+pulls.compare_changes=Порівняти зміни
+pulls.compare_changes_desc=Порівняти дві гілки та зробити pull request для змін.
+pulls.compare_base=base
+pulls.compare_compare=compare
+pulls.filter_branch=Фільтрувати гілку
+pulls.no_results=Результатів не знайдено.
+pulls.nothing_to_compare=Нічого порівнювати, бо base та head гілки однакові.
+pulls.nothing_merge_base=Нічого порівнювати, бо обидві гілки мають повністю різну історію.
+pulls.has_pull_request=`Вже є pull request між ціми двома цілями: %[2]s#%[3]d`
+pulls.create=Створити pull request
+pulls.title_desc=хоче злити %[1]d комітів з %[2]s до %[3]s
+pulls.merged_title_desc=злито %[1]d комітів з %[2]s до %[3]s %[4]s
+pulls.tab_conversation=Обговорення
+pulls.tab_commits=Коміти
+pulls.tab_files=Змінені файли
+pulls.reopen_to_merge=Будь ласка перевідкрийте цей запрос щоб здіснити операцію злиття.
+pulls.merged=Об'єднано
+pulls.has_merged=Цей запрос було успішно влито!
+pulls.data_broken=Вміст цього запросу було пошкоджено внаслідок видалення інформації про розгалудження.
+pulls.is_checking=Перевірка конфліктів продовжується, будь ласка оновіть сторінку через деякий час.
+pulls.can_auto_merge_desc=Цей запрос може бути влитий автоматично.
+pulls.cannot_auto_merge_desc=Цей запрос не може бути влитий автоматично, тому що він має конфлікти.
+pulls.cannot_auto_merge_helper=Будь ласка влийте вручну щоб врегулювати конфлікти.
+pulls.create_merge_commit=Створити коміт на злиття
+pulls.rebase_before_merging=Перебазувати перед об'єднанням
+pulls.commit_description=Опис коміту
+pulls.merge_pull_request=Влити запрос на злиття
+pulls.open_unmerged_pull_exists=`Ви не можете перевідкрити, бо вже існує запрос на злиття (#%d) з того самого репозиторію, з тією самою інформацією про злиття, та він очікує на влиття.`
+pulls.delete_branch=Видалити гілку
+pulls.delete_branch_has_new_commits=Гілка не може бути видалена, бо вона має нові коміти після злиття.
+
+milestones.new=Новий етап
+milestones.open_tab=%d відкрито
+milestones.close_tab=%d закрито
+milestones.closed=Закрито %s
+milestones.no_due_date=Немає дати завершення
+milestones.open=Відкрити
+milestones.close=Закрити
+milestones.new_subheader=Створити етап для організації обговорень.
+milestones.create=Створити етап
+milestones.title=Заголовок
+milestones.desc=Опис
+milestones.due_date=Дата завершення (опціонально)
+milestones.clear=Очистити
+milestones.invalid_due_date_format=Некорректна дата закінчення. Мусить бути: 'yyyy-mm-dd'.
+milestones.create_success=Етап '%s' успішно створений!
+milestones.edit=Редагувати етап
+milestones.edit_subheader=Використовуйте детальний опис етапів щоб уникнути непорозумінь.
+milestones.cancel=Скасувати
+milestones.modify=Змінити етап
+milestones.edit_success=Зміни в етапі '%s' успішно збережені!
+milestones.deletion=Видалення етапу
+milestones.deletion_desc=Видалення цього етапу призведе до видалення інформації, його та пов'язаних проблем. Ви справді хочете продовжити?
+milestones.deletion_success=Етап успішно видалено!
+
+wiki=Wiki
+wiki.welcome=Ласкаво просимо до Wiki!
+wiki.welcome_desc=Wiki це місце де ви можете документувати свій проект разом, та зробити його кращим.
+wiki.create_first_page=Створити першу сторінку
+wiki.page=Сторінка
+wiki.filter_page=Фільтр сторінок
+wiki.new_page=Створити нову сторінку
+wiki.default_commit_message=Напишіть замітку про це оновлення (опціонально).
+wiki.save_page=Зберегти сторінку
+wiki.last_commit_info=%s редагує цю сторінку %s
+wiki.edit_page_button=Редагувати
+wiki.new_page_button=Нова сторінка
+wiki.delete_page_button=Видалити сторінку
+wiki.delete_page_notice_1=Будьте уважні! Це призведе до видалення сторінки "%s".
+wiki.page_already_exists=Wiki-сторінка з таким самим ім'ям вже існує.
+wiki.pages=Сторінки
+wiki.last_updated=Останні оновлення %s
+
+settings=Налаштування
+settings.options=Опції
+settings.collaboration=Співпраця
+settings.collaboration.admin=Адміністратор
+settings.collaboration.write=Запис
+settings.collaboration.read=Читання
+settings.collaboration.undefined=Не визначено
+settings.branches=Гілки
+settings.branches_bare=Ви не можете керувати гілками у bare-репозиторії. Спочатку додайте у нього якогось вмісту, будь ласка.
+settings.default_branch=Гілка за замовчуванням
+settings.default_branch_desc=Гілка за замовчанням вважається базовою для комітів, запросів злиття та онлайн редагувань.
+settings.update=Оновлення
+settings.update_default_branch_unsupported=Зміна гілки за замувчуванням не підтримується серверною версією Git.
+settings.update_default_branch_success=Гілку за замовчуванням цього репозиторію було успішно оновлено!
+settings.protected_branches=Захищені гілки
+settings.protected_branches_desc=Захистіть гілки від force push, випадкового видалення та коміттерів з білого списку.
+settings.choose_a_branch=Виберіть гілку...
+settings.branch_protection=Захист гілок
+settings.branch_protection_desc=Будь ласка, виберіть налаштування захисту для гілки %s.
+settings.protect_this_branch=Захистити гілку
+settings.protect_this_branch_desc=Вимкнути примусовий push та захистити від видалення.
+settings.protect_require_pull_request=Вимагати запрос на злиття замість прямого push
+settings.protect_require_pull_request_desc=Увімкніть цю опцію для заборони прямого push у цю гілку. Коміт має бути запушений у іншу, незахищену гілку та влитий у цю через запрос на злиття.
+settings.protect_whitelist_committers=Білий список тих, хто може робити push у цю гілку
+settings.protect_whitelist_committers_desc=Додати людей або команди до білого списку тих, хто може робити push у цю гілку. Користувачі з білого списку оминатимуть контроль запитів на злиття.
+settings.protect_whitelist_users=Користувачі що можуть виконувати push до цієї гілки
+settings.protect_whitelist_search_users=Пошук користувачів
+settings.protect_whitelist_teams=Команди, члени яких можуть виконувати push до цієї гілки
+settings.protect_whitelist_search_teams=Пошук команд
+settings.update_protect_branch_success=Опції захисту цієї гілки було успішно оновлено!
+settings.hooks=Webhooks
+settings.githooks=Git Hooks
+settings.basic_settings=Основні налаштування
+settings.mirror_settings=Налаштування дзеркала
+settings.sync_mirror=Синхронізувати
+settings.mirror_sync_in_progress=Виконується синхронізація дзеркала. Будь ласка, оновіть сторінку через хвилинку.
+settings.site=Офіційна веб-сторінка
+settings.update_settings=Оновити налаштування
+settings.change_reponame_prompt=Ця зміна вплине на відношення посилань до цього репозитрію.
+settings.advanced_settings=Додаткові налаштування
+settings.wiki_desc=Увімкнути wiki-систему
+settings.use_internal_wiki=Використовувати вбудовану wiki
+settings.allow_public_wiki_desc=Дозволити публічний доступ до wiki поки репозиторій залишається приватним
+settings.use_external_wiki=Використовувати зовнішню wiki
+settings.external_wiki_url=URL зовнішньої wiki
+settings.external_wiki_url_desc=Відвідувачі будуть переспрямовані до URL коли вони клацнуть на вкладці.
+settings.issues_desc=Увімкнути систему відстеження проблем
+settings.use_internal_issue_tracker=Використовувати вбудовану легку систему відстеження помилок
+settings.allow_public_issues_desc=Дозволити публічний доступ до проблем поки репозиторій залишається приватним
+settings.use_external_issue_tracker=Використовувати зовнішній трекер задач
+settings.external_tracker_url=URL зовнішньої системи відстеження проблем
+settings.external_tracker_url_desc=Відвідувача буде перенаправлено до URL коли він натисне на вкладку.
+settings.tracker_url_format=Формат URL зовнішнього трекера задач
+settings.tracker_issue_style=Стиль найменування задач в зовнішньому трекері:
+settings.tracker_issue_style.numeric=Цифровий
+settings.tracker_issue_style.alphanumeric=Буквено-цифровий
+settings.tracker_url_format_desc=Ви можете використовувати заповнювач {user} {repo} {index} для ім'я користувача, назви репозиторію на номеру проблеми.
+settings.pulls_desc=Увімкнути запити на злиття щоб дозволити внески між репозиторіями й гілками
+settings.pulls.ignore_whitespace=Ігнорувати зміни у пробільних символах
+settings.pulls.allow_rebase_merge=Дозволити перебазування для merge-комітів
+settings.danger_zone=Небезпечна зона
+settings.cannot_fork_to_same_owner=Ви не можете клонувати репозиторій його ж власнику.
+settings.new_owner_has_same_repo=Новий власник вже має репозиторій з такою назвою. Будь ласка, виберіть іншу.
+settings.convert=Перетворити на звичайний репозиторій
+settings.convert_desc=Ви можете сконвертувати це дзеркало у звичайний репозиторій. Це не може бути повернуто.
+settings.convert_notices_1=- Ця операція перетворить дзеркало на звичайний репозиторій та не зможе бути відмінена.
+settings.convert_confirm=Підтвердити перетворення
+settings.convert_succeed=Репозиторій успішно перетворено на звичайний.
+settings.transfer=Переказати новому власнику
+settings.transfer_desc=Переказати цей репозиторій до іншого користувача або організації де ви маєте права адміністратора.
+settings.transfer_notices_1=- Ви можете втратити доступ якщо новий власник є окремим користувачем.
+settings.transfer_notices_2=- Ви збережете доступ, якщо новим власником стане організація, власником якої є ви.
+settings.transfer_form_title=Будь ласка, введіть наступну інформацію щоб підтвердити операцію:
+settings.wiki_delete=Видалити дані wiki
+settings.wiki_delete_desc=Як тільки ви видалите інформацію з wiki - ви не зможете повернути її. Будьте уважні!
+settings.wiki_delete_notices_1=- Це видалить та вимкне wiki для %s
+settings.wiki_deletion_success=Wiki-інформацію було вдало видалено з репозиторію.
+settings.delete=Видалити цей репозиторій
+settings.delete_desc=Як тільки ви видалите репозиторій, то вже не буде шляху назад. Будь ласка, будьте певні.
+settings.delete_notices_1=- Ця операція НЕ МОЖЕ бути відмінена.
+settings.delete_notices_2=- Ця операція остаточно видалить весь вміст цього репозиторію, включаючи дані Git, проблеми, коментарі та дозволи співавторів.
+settings.delete_notices_fork_1=- Усі відгалудження стануть незалежними бісля видалення.
+settings.deletion_success=Репозиторій успішно видалено!
+settings.update_settings_success=Налаштування репозиторію було вдало оновлено.
+settings.transfer_owner=Новий власник
+settings.make_transfer=Зробити переказ
+settings.transfer_succeed=Репозиторій було успішно переказано новому власнику.
+settings.confirm_delete=Підтвердження видалення
+settings.add_collaborator=Додати нового співавтора
+settings.add_collaborator_success=Додано нового співавтора.
+settings.delete_collaborator=Видалити
+settings.collaborator_deletion=Видалення співавтора
+settings.collaborator_deletion_desc=Цей користувач більше не матиме співавторського доступу до репозиторію. Бажаєте продовжити?
+settings.remove_collaborator_success=Співавтора було видалено.
+settings.search_user_placeholder=Пошук користувача...
+settings.org_not_allowed_to_be_collaborator=Організації не можуть бути додані як співавтори.
+settings.hooks_desc=Web-хуки схожі на HTTP POST тригери подій. Яка б подія не виникла в Gogs, ми можемо обробити повідомлення про неї на сторонньому хості який ви задаєте. Взнайте більше у Webhooks Guide.
+settings.webhooks.add_new=Додати новий веб-хук:
+settings.webhooks.choose_a_type=Обрати тип...
+settings.add_webhook=Додати Webhook
+settings.webhook_deletion=Видалити Webhook
+settings.webhook_deletion_desc=Видалення цього web-хуку призведе до видалення інформації про нього та усієї історії поставок. Впевнені, що бажаєте продовжити?
+settings.webhook_deletion_success=Webhook успішно видалено!
+settings.webhook.test_delivery=Перевірити поставку
+settings.webhook.test_delivery_desc=Відправити тестовий push для перевірки налаштувань web-хуків
+settings.webhook.test_delivery_success=Тестовий web-хук може бути доданий у чергу поставки. Поки він з'явиться у історії поставки, може пройти кілька секунд.
+settings.webhook.redelivery=Зворотня доставка
+settings.webhook.redelivery_success=Завдання хуку '%s' було передодано у чергу доставки. Оновлення статусу доставки в історії може зайняти якийсь час.
+settings.webhook.request=Запит
+settings.webhook.response=Відповідь
+settings.webhook.headers=Заголовки
+settings.webhook.payload=Зміст
+settings.webhook.body=Тіло
+settings.webhook.err_cannot_parse_payload_url=Неможливо розібрати payload URL: %v
+settings.webhook.url_resolved_to_blocked_local_address=URL-адреса корисного навантаження розв’язана з адресою у локальної мережі, яка неявно заблокована.
+settings.githooks_desc=Git хуки керуються самим Git, ви можете редагувати файли хуків, що підтримуються згідно списку нище, щоб виконувати будь-які операції.
+settings.githook_edit_desc=Якщо хук неактивний, буде представлено зразок вмісту. Порожнє значення у цьому полі призведе до вимкнення хуку.
+settings.githook_name=Ім'я хуку
+settings.githook_content=Вміст хуку
+settings.update_githook=Оновити хук
+settings.add_webhook_desc=Gogs відправляє POST запит до вказаного вами URL, з приводу подій що відбулися. Ви також можете вказати дані якого формату ви ви хотіли б отримати (JSON, x-www-form-urlencoded, XML, etc). Більше інформації можна отримати у посібнику з web-хуків.
+settings.payload_url=URL розробника
+settings.content_type=Тип змісту
+settings.secret=Таємний код
+settings.secret_desc=Секрет буде вислано SHA256 HMAC hex-сумою вміста у хідері X-Gogs-Signature.
+settings.slack_username=Ім'я користувача
+settings.slack_icon_url=URL іконки
+settings.slack_color=Колір
+settings.event_desc=Коли цей web-хук має спрацювати?
+settings.event_push_only=Просто push-подія.
+settings.event_send_everything=Мені потрібно усе.
+settings.event_choose=Дозвольте мені вибрати те, що потрібно.
+settings.event_create=Створити
+settings.event_create_desc=Гілку або тег створено
+settings.event_delete=Видалити
+settings.event_delete_desc=Гілку або мітку було видалено
+settings.event_fork=Відгалуження
+settings.event_fork_desc=Репозиторій було відгалуджено
+settings.event_push=Push
+settings.event_push_desc=Git push до репозиторію
+settings.event_issues=Проблеми
+settings.event_issues_desc=Проблему відкрито, закрито, перевідкрито, відредаговано, призначено, відкріплено, змінено мітку, очищено мітку, створено етап, очищено етап.
+settings.event_pull_request=Запити до злиття
+settings.event_pull_request_desc=Запрос на злиття відкрито, закрито, перевідкрито, прикріплено, відкріплено, оновлено мітку, очищено мітку, створено етап, очищено етап або синхронізовано.
+settings.event_issue_comment=Коментар проблеми
+settings.event_issue_comment_desc=Коментар проблеми створено, видалено чи відредаговано.
+settings.event_release=Реліз
+settings.event_release_desc=Реліз опубліковано у репозиторії.
+settings.active=Активний
+settings.active_helper=Подробиці події, що викликала спрацювання хука, будуть надані також.
+settings.add_hook_success=Новий web-хук було додано.
+settings.update_webhook=Оновити Webhook
+settings.update_hook_success=Webhook оновлено.
+settings.delete_webhook=Видалити Webhook
+settings.recent_deliveries=Недавні розсилки
+settings.hook_type=Тип хуку
+settings.add_slack_hook_desc=Додати Slack-інтеграцію до вашого репозиторію.
+settings.add_discord_hook_desc=Додати Discord-інтеграцію до репозиторію.
+settings.add_dingtalk_hook_desc=Додати інтеграцію Dingtalk до вашого репозиторію.
+settings.slack_token=Жетон
+settings.slack_domain=Домен
+settings.slack_channel=Канал
+settings.deploy_keys=Ключи для розгортування
+settings.deploy_keys_helper=Common Gotcha! Якщо ви шукаєте куди додати персональний публічний ключ, додайте його до налаштувань вашого аккаунту.
+settings.add_deploy_key=Додати ключ для розгортування
+settings.deploy_key_desc=Ключі розгортування доступні лише для читання. Це не те саме, що персональний SSH ключ акаунту.
+settings.no_deploy_keys=Ви не додали жодного ключа для розгортування.
+settings.title=Заголовок
+settings.deploy_key_content=Контент
+settings.key_been_used=Вміст ключа розгортування вже використано.
+settings.key_name_used=Ключ розгортування має ім'я яке вже використано.
+settings.add_key_success=Новий ключ розгортування '%s' успішно додано!
+settings.deploy_key_deletion=Видалити ключ для розгортування
+settings.deploy_key_deletion_desc=Видалення цього ключа для розгортування призведе о видалення усіх пов'язаних прав до цього репозиторію. Ви справді бажаєте продовжити?
+settings.deploy_key_deletion_success=Ключі для розгортування було успішно видалено!
+settings.description_desc=Опис репозиторію. До 512-ти символів довжиною.
+settings.description_length=Доступні символи
+
+diff.browse_source=Переглянути джерело
+diff.parent=батько
+diff.commit=коміт
+diff.data_not_available=Жодних diff даних не доступно.
+diff.show_diff_stats=Показати статистику Diff
+diff.show_split_view=Розділений вигляд
+diff.show_unified_view=Об'єднаний вигляд
+diff.stats_desc= %d змінених файлів з %d додано та %d видалено
+diff.bin=BIN
+diff.view_file=Переглянути файл
+diff.file_suppressed=Різницю між файлами не показано, бо вона завелика
+diff.too_many_files=Деякі файли не було показано, через те що забагато файлів було змінено
+
+release.releases=Релізи
+release.new_release=Новий реліз
+release.draft=Чернетка
+release.prerelease=Пре-реліз
+release.edit=редагувати
+release.ahead=%d коммітів %s після цього релізу
+release.source_code=Вихідний код
+release.new_subheader=Публікуйте резізи для ітерації продукту.
+release.edit_subheader=Докладний журнал змін може допомогти зрозуміти, що було покращено.
+release.tag_name=Назва теґу
+release.target=Ціль
+release.tag_helper=Виберіть наявний тег або створіть новий тег.
+release.title=Заголовок
+release.content=Контент
+release.write=Запис
+release.preview=Переглянути
+release.loading=Завантажується...
+release.prerelease_desc=Це пре-реліз
+release.prerelease_helper=Відзначаємо, що цей реліз не готовий для використання у продакшені.
+release.cancel=Скасувати
+release.publish=Опублікувати реліз
+release.save_draft=Зберегти чернетку
+release.edit_release=Редагувати реліз
+release.delete_release=Видалити цей реліз
+release.deletion=Видалення релізу
+release.deletion_desc=Видалення цього релізу видалить зв'язаний git-тег. Впевнені, що хочете продовжити?
+release.deletion_success=Реліз було успішно видалено!
+release.tag_name_already_exist=Реліз з цим теґом вже існує.
+release.tag_name_invalid=Ім'я тегу не валідне.
+release.downloads=Завантаження
+
+[org]
+org_name_holder=Назва організації
+org_full_name_holder=Повна назва організації
+org_name_helper=Чудові назви організації є короткими і незабутніми.
+create_org=Створення організації
+repo_updated=Оновлено
+people=Люди
+invite_someone=Запросити іншого користувача
+teams=Команди
+lower_members=учасники
+lower_repositories=репозиторії
+create_new_team=Створити нову команди
+org_desc=Опис
+team_name=Назва команди
+team_desc=Опис
+team_name_helper=Ви будете використовувати це ім'я для згадування цієї команди у обговореннях.
+team_desc_helper=Що це за команда?
+team_permission_desc=Який рівень дозволів має бути у цієї команди?
+
+form.name_not_allowed=Назва організації чи паттерн %q, не дозволені.
+form.team_name_not_allowed=Назва команди або шаблон %q не допоскаються.
+
+settings=Налаштування
+settings.options=Опції
+settings.full_name=Повне ім'я
+settings.website=Веб-сторінка
+settings.location=Місце знаходження
+settings.update_settings=Оновити налаштування
+settings.update_setting_success=Параметри організації були успішно оновлені.
+settings.change_orgname_prompt=Ця зміна вплине на зв'язок посиланнь до організацій.
+settings.update_avatar_success=Аватар організації успішно оновлено.
+settings.delete=Видалення організації
+settings.delete_account=Видалити цю організацію
+settings.delete_prompt=Організація буде остаточно видалена, і скасувати це НЕМОЖЛИВО!
+settings.confirm_delete_account=Підтвердження видалення
+settings.delete_org_title=Видалення організації
+settings.delete_org_desc=Ця організація буде видалена без можливості відновлення, ви хочете продовжити?
+settings.hooks_desc=Додайте web-хук що буде викликатися для усіх репозиторіїв цієї організації.
+
+members.membership_visibility=Видимість учасника:
+members.public=Публічний
+members.public_helper=зробити приватними
+members.private=Приватний
+members.private_helper=оприлюднити
+members.member_role=Роль учасника:
+members.owner=Власник
+members.member=Учасник
+members.remove=Видалити
+members.leave=Покинути
+members.invite_desc=Додати нового учасника до %s:
+members.invite_now=Запросити зараз
+
+teams.join=Приєднатися
+teams.leave=Покинути
+teams.read_access=Доступ для читання
+teams.read_access_helper=Ця команда буде мати можливість переглядати та клонувати cховища.
+teams.write_access=Доступ на запис
+teams.write_access_helper=Ця команда може читати свої репозиторії та посилати до них зміни.
+teams.admin_access=Доступ адміністратора
+teams.admin_access_helper=Ця команда буде в змозі виконувати push/pull у своїх репозиторіях та додавати до них інших соавторів.
+teams.no_desc=Ця команда не має опису
+teams.settings=Налаштування
+teams.owners_permission_desc=Власник має повний доступ до усіх репозиторіїв та має права адміністратора організації.
+teams.members=Члени команди
+teams.update_settings=Оновити налаштування
+teams.delete_team=Видалити цю команду
+teams.add_team_member=Додати учасника команди
+teams.delete_team_title=Видалення команди
+teams.delete_team_desc=З видаленням цієї команди її учасники можуть втратити доступ до деяких репозиторіїв. Продовжити?
+teams.delete_team_success=Команда була успішно видалена.
+teams.read_permission_desc=Ця команда має доступ для читання: члени можуть переглядати та клонувати сховища.
+teams.write_permission_desc=Ця команда надає доступ на запис: члени можуть отримувати й виконувати push команди до репозитрію.
+teams.admin_permission_desc=Ця команда надає адміністраторський доступ: члени можуть читати, виконувати push команди та додвавати співавторів до репозиторію.
+teams.repositories=Репозиторії команди
+teams.search_repo_placeholder=Пошук репозиторію...
+teams.add_team_repository=Додати репозиторій команди
+teams.remove_repo=Видалити
+teams.add_nonexistent_repo=Ви намагаєтеся додати у репозиторій якого не існує. Будь ласка, спочатку створіть його.
+
+[admin]
+dashboard=Панель керування
+users=Користувачі
+organizations=Організації
+repositories=Репозиторії
+authentication=Аутентифікація
+config=Налаштування
+notices=Сповіщення системи
+monitor=Моніторинг
+first_page=Перша
+last_page=Остання
+total=Всього: %d
+
+dashboard.build_info=Інформація про збірку
+dashboard.app_ver=Версія програми
+dashboard.git_version=Версія Git
+dashboard.go_version=Версія Go
+dashboard.build_time=Дата збірки
+dashboard.build_commit=Створити коміт
+dashboard.statistic=Статистика
+dashboard.operations=Операції
+dashboard.system_status=Статус системного монітору
+dashboard.statistic_info=База даних Gogs має %d користувачів, %d організацій, %d публічних ключів, %d репозиторіїв, %d спостерігачів, %d зірок, %d дій, %d відвідувань, %d обговорень, %d коментарів, %d соціальних облікових записів, %d підписників, %d дзеркал, %d релізів, %d джерел входу, %d webhook-ів, %d етапів, %d міток, %d hook задач, %d команд, %d оновлень завдань, %d вкладень.
+dashboard.operation_name=Назва операції
+dashboard.operation_switch=Перемикнути
+dashboard.select_operation_to_run=Будь ласка, виберіть операцію, щоб запустити
+dashboard.operation_run=Запустити
+dashboard.clean_unbind_oauth=Видалити неприв'язані OAuth
+dashboard.clean_unbind_oauth_success=Усі неприв'язані OAuth було знищено.
+dashboard.delete_inactivate_accounts=Видалити всі неактивні облікові записи
+dashboard.delete_inactivate_accounts_success=Усі неактивні облікові записи успішно видалені.
+dashboard.delete_repo_archives=Видалити всі архіви репозиторіїв
+dashboard.delete_repo_archives_success=Усі архіви репозиторіїв успішно видалені.
+dashboard.delete_missing_repos=Видалити усі репозиторії git-файли яких було втрачено
+dashboard.delete_missing_repos_success=Усі репозиторії з відсутніми git-файлами успішно видалені.
+dashboard.git_gc_repos=Виконати збирання сміття у репозиторії
+dashboard.git_gc_repos_success=Збирання сміття в усіх репозиторіях було успішно виконано.
+dashboard.resync_all_sshkeys=Переписати файл '.ssh/authorized_keys' (увага: не-Gogs ключі будуть втрачені)
+dashboard.resync_all_sshkeys_success=Усі публічні ключі успішно перезаписані.
+dashboard.resync_all_hooks=Пересинхронізувати перед-прийнятні, оновлюючі та пост-прийнятні хуки в усіх репозиторіях.
+dashboard.resync_all_hooks_success=Усі перед-прийнятні, оновлюючі та пост-прийнятні хуки репозиторію були успішно пересинхронізовані.
+dashboard.reinit_missing_repos=Переініціалізувати усі репозитрії git-файли яких втрачено
+dashboard.reinit_missing_repos_success=Усі репозитрії git-файли яких втрачено, успішно переініціалізовано.
+
+dashboard.server_uptime=Uptime серверу
+dashboard.current_goroutine=Поточний Goroutines
+dashboard.current_memory_usage=Поточне використання пам'яті
+dashboard.total_memory_allocated=Виділено пам'яті загалом
+dashboard.memory_obtained=Отримано пам'яті
+dashboard.pointer_lookup_times=Пошуків вказівника
+dashboard.memory_allocate_times=Виділень пам'яті
+dashboard.memory_free_times=Звільнень пам'яті
+dashboard.current_heap_usage=Поточне використання купи
+dashboard.heap_memory_obtained=Отримано динамічної пам'яті
+dashboard.heap_memory_idle=Не використовується пам'яті у купі
+dashboard.heap_memory_in_use=Використовується пам'яті у купі
+dashboard.heap_memory_released=Звільнено пам'яті купи
+dashboard.heap_objects=Об'єктів купи
+dashboard.bootstrap_stack_usage=Використання стеку завантажувачем
+dashboard.stack_memory_obtained=Зайнято пам'яті стеком
+dashboard.mspan_structures_usage=Використання структур MSpan
+dashboard.mspan_structures_obtained=Отримано структур MSpan
+dashboard.mcache_structures_usage=Використання структур MCache
+dashboard.mcache_structures_obtained=Отримано структур MCache
+dashboard.profiling_bucket_hash_table_obtained=Отримано хеш-таблиць профілювання
+dashboard.gc_metadata_obtained=Отримано метаданих GC
+dashboard.other_system_allocation_obtained=Отримання інших виділень пам'яті
+dashboard.next_gc_recycle=Наступний цикл GC
+dashboard.last_gc_time=З останнього запуску GC
+dashboard.total_gc_time=Загальна пауза GC
+dashboard.total_gc_pause=Загальна пауза GC
+dashboard.last_gc_pause=Остання пауза GC
+dashboard.gc_times=Кількість запусків GC
+
+users.user_manage_panel=Панель керування користувачами
+users.new_account=Створити новий обліковий запис
+users.name=Ім’я
+users.activated=Активоване
+users.admin=Адміністратор
+users.repos=Репозиторії
+users.created=Створено
+users.send_register_notify=Надіслати сповіщення про реєстрацію до користувача
+users.new_success=Новий аккаунт '%s' вдало створено.
+users.edit=Змінити
+users.auth_source=Джерело автентифікації
+users.local=Локальні
+users.auth_login_name=Логін для автентифікації
+users.password_helper=Залиште порожнім щоб лишити незмінним.
+users.update_profile_success=Профіль облікового запису було успішно оновлено.
+users.edit_account=Редагування облікового запису
+users.max_repo_creation=Ліміт на кількість репозиторіїв
+users.max_repo_creation_desc=(Встановіть -1 для використання глобального ліміту)
+users.is_activated=Цей обліковий запис активовано
+users.prohibit_login=Вхід з цього облікового запису заборонено
+users.is_admin=Цей обліковий запис має адміністраторські повноваження
+users.allow_git_hook=Цей обліковий запис має повноваження для створення Git хуків
+users.allow_import_local=Цей аккаунт має право імпортувати локальні репозиторії
+users.update_profile=Оновити профіль облікового запису
+users.delete_account=Видалити цей обліковий запис
+users.still_own_repo=Цей обліковий запис досі є власником принаймні одного репозиторію, перш ніж продовжити - ви мусите видалити або передати їх.
+users.still_has_org=Цей обліковий запис досі є учасником принаймні однієї організації, ви мусите вийти або видалити їх.
+users.deletion_success=Обліковий запис успішно видалено!
+
+orgs.org_manage_panel=Керування організаціями
+orgs.name=Назва
+orgs.teams=Команди
+orgs.members=Учасники
+
+repos.repo_manage_panel=Керування репозиторіями
+repos.owner=Власник
+repos.name=Назва
+repos.private=Приватний
+repos.watches=Стежать
+repos.stars=У обраному
+repos.issues=Питання
+repos.size=Розмір
+
+auths.auth_sources=Джерела автентифікації
+auths.new=Додати нове джерело
+auths.name=Назва
+auths.type=Тип
+auths.enabled=Увімкнено
+auths.default=За замовчанням
+auths.updated=Оновлено
+auths.auth_type=Тип автентифікації
+auths.auth_name=Назва автентифікації
+auths.security_protocol=Протокол безпеки
+auths.domain=Домен
+auths.host=Хост
+auths.port=Порт
+auths.bind_dn=Прив'язати DN
+auths.bind_dn_helper=Ви можете використовувати '%s' як шаблон для імені користувача, напр. DOM\%s
+auths.bind_password=Прив'язати пароль
+auths.bind_password_helper=Увага: Цей пароль зберігається як звичайний текст. Не використовуйте профіль з високими повноваженнями.
+auths.user_base=База пошуку користувачів
+auths.user_dn=DN користувача
+auths.attribute_username=Атрибут імені користувача
+auths.attribute_username_placeholder=Залиште порожнім щоб використовувати ім'я користувача.
+auths.attribute_name=Атрибут імені
+auths.attribute_surname=Атрибут прізвища
+auths.attribute_mail=Атрибут електронної пошти
+auths.verify_group_membership=Верифікувати членство у групі
+auths.group_search_base_dn=Базовий DN пошуку групи
+auths.group_filter=Фільтр груп
+auths.group_attribute_contain_user_list=Атрибут групи зі списком користувачів
+auths.user_attribute_listed_in_group=Атрибути користувача що відображені у групі
+auths.attributes_in_bind=Отримати атрибути контексту Bind DN
+auths.filter=Користувацький фільтр
+auths.admin_filter=Фільтр адміністратора
+auths.ms_ad_sa=Ms Ad SA
+auths.smtp_auth=Тип автентифікації SMTP
+auths.smtphost=SMTP хост
+auths.smtpport=SMTP порт
+auths.allowed_domains=Дозволені домени
+auths.allowed_domains_helper=Залиште порожнім щоб дозволити будь-які домени. Якщо доменів декілька - розділить їх комами ','.
+auths.enable_tls=Увімкнути TLS-шифрування
+auths.skip_tls_verify=Пропустити перевірку TLS
+auths.pam_service_name=Ім'я служби PAM
+auths.enable_auto_register=Увімкнути автоматичну реєстрацію
+auths.edit=Редагувати налаштування автентифікації
+auths.activated=Цю автентифікацію активовано
+auths.default_auth=Це метод автентифікації за замовчанням
+auths.new_success=Нову автентифікацію '%s' було успішно додано.
+auths.update_success=Налаштування автентифікації було успішно оновлено.
+auths.update=Оновити налаштування автентифікації
+auths.delete=Видалити цю автентифікацію
+auths.delete_auth_title=Видалення автентифікації
+auths.delete_auth_desc=Цю автентифікацію буде видалено. Впевнені що бажаєте продовжити?
+auths.still_in_used=Цю автентифікацію ще використовують деякі користувачі. Будь ласка видаліть цих користувачів, або сконвертуйте їх на інший тип входу до системи.
+auths.deletion_success=Автентивікацію було успішно видалено!
+auths.login_source_exist=Джерело входу '%s' вже існує.
+auths.github_api_endpoint=Адреса API
+
+config.not_set=(не встановлено)
+config.server_config=Конфігурація сервера
+config.brand_name=Назва бренду
+config.run_user=Запущено користувачем
+config.run_mode=Режим виконання
+config.server.external_url=Зовнішній URL
+config.server.domain=Домен
+config.server.protocol=Протокол
+config.server.http_addr=Адреса HTTP
+config.server.http_port=Порт HTTP
+config.server.cert_file=Файл сертифікату
+config.server.key_file=Ключовий файл
+config.server.tls_min_version=Мінімальна версія TLS
+config.server.unix_socket_permission=Дозвіл Unix сокету
+config.server.local_root_url=Локальний кореневий URL
+config.server.offline_mode=Автономний режим
+config.server.disable_router_log=Вимкнути журнал маршрутизатора
+config.server.enable_gzip=Увімкнути Gzip
+config.server.app_data_path=Шлях до даних додатку
+config.server.load_assets_from_disk=Завантажити ресурси з диску
+config.server.landing_url=Landing URL
+
+config.ssh_config=Налаштування SSH
+config.ssh.enabled=Увімкнено
+config.ssh.domain=Виділений домен
+config.ssh.port=Виділений порт
+config.ssh.root_path=Шлях до кореня
+config.ssh.keygen_path=Шлях до генератора ключа
+config.ssh.key_test_path=Шлях до тестового ключа
+config.ssh.minimum_key_size_check=Перевірка мінімального розміру ключа
+config.ssh.minimum_key_sizes=Мінімальні розміри ключів
+config.ssh.rewrite_authorized_keys_at_start=Переписати "authorized_keys" при запуску
+config.ssh.start_builtin_server=Запустити вбудований сервер
+config.ssh.listen_host=Слухати хост
+config.ssh.listen_port=Слухати порт
+config.ssh.server_ciphers=Серверні шифри
+config.ssh.server_macs=MAC-адреси сервера
+config.ssh.server_algorithms=Алгоритми сервера
+
+config.repo_config=Налаштування репозиторія
+config.repo.root_path=Кореневий шлях
+config.repo.script_type=Тип скрипту
+config.repo.ansi_chatset=Набір символів ANSI
+config.repo.force_private=Примусово приватний
+config.repo.max_creation_limit=Ліміт створень
+config.repo.preferred_licenses=Бажані ліцензії
+config.repo.disable_http_git=Вимкнути HTTP Git
+config.repo.enable_local_path_migration=Увімкнути міграцію з локального шляху
+config.repo.enable_raw_file_render_mode=Вмикає режим візуалізації неформатованого файлу
+config.repo.commits_fetch_concurrency=Запросити коміти конкурентно
+config.repo.editor.line_wrap_extensions=Розширення редактора для перенесення рядків
+config.repo.editor.previewable_file_modes=Режим редактора попереднього перегляду файлів
+config.repo.upload.enabled=Вивантаження увімкнено
+config.repo.upload.temp_path=Завантажити тимчасовий шлях
+config.repo.upload.allowed_types=Дозволені типи вивантаження
+config.repo.upload.file_max_size=Ліміт розміру файлу для вивантаження
+config.repo.upload.max_files=Ліміт розміру файлу для вивантаження
+
+config.db_config=Налаштування бази даних
+config.db.type=Тип
+config.db.host=Хост
+config.db.name=Ім'я
+config.db.schema=Схема
+config.db.schema_helper=(тільки для "postgres")
+config.db.user=Користувач
+config.db.ssl_mode=Режим SSL
+config.db.ssl_mode_helper=(тільки для "postgres")
+config.db.path=Шлях
+config.db.path_helper=(тільки для "sqlite3")
+config.db.max_open_conns=Максимальна кількість відкритих з'єднань
+config.db.max_idle_conns=Максимальна кількість бездіяльних з'єднань
+
+config.security_config=Налаштування безпеки
+config.security.login_remember_days=Кількість днів запам'ятовування входу
+config.security.cookie_remember_name=Запам'ятати куки
+config.security.cookie_username=Куки імені користувача
+config.security.cookie_secure=Увімкнути захищені файли куки
+config.security.reverse_proxy_auth_user=Заголовок аутентифікації на зворотному проксі
+config.security.enable_login_status_cookie=Увімкнути файли куки стану при вході
+config.security.login_status_cookie_name=Куки статусу входу
+config.security.local_network_allowlist=Дозволений список у локальної мережі
+
+config.email_config=Налаштування електронної пошти
+config.email.enabled=Увімкнено
+config.email.subject_prefix=Префікс теми
+config.email.host=Хост
+config.email.from=Від
+config.email.user=Користувач
+config.email.disable_helo=Вимкнути HELO
+config.email.helo_hostname=Ім'я хосту HELO
+config.email.skip_verify=Пропустити перевірку сертифіката
+config.email.use_certificate=Використовувати користувальницький сертифікат
+config.email.cert_file=Файл сертифікату
+config.email.key_file=Ключовий файл
+config.email.use_plain_text=Використовувати звичайний текст
+config.email.add_plain_text_alt=Додайте простий текст у якості альтернативи
+config.email.send_test_mail=Надіслати пробний лист
+config.email.test_mail_failed=Помилка відправлення пробного листа до '%s': %v
+config.email.test_mail_sent=Пробного листа було відправлено до '%s'.
+
+config.auth_config=Налаштування аутентифікації
+config.auth_custom_logout_url=Custom logout URL
+config.auth.activate_code_lives=Активувати код підтвердження
+config.auth.reset_password_code_lives=Термін придатності кода при скиданні пароля
+config.auth.require_email_confirm=Вимагає підтвердження електронною поштою
+config.auth.require_sign_in_view=Необхідно авторизуватися для перегляду
+config.auth.disable_registration=Вимкнути реєстрацію
+config.auth.enable_registration_captcha=Включити реєстрацію з капчею
+config.auth.enable_reverse_proxy_authentication=Увімкнути аутентифікацію на зворотному проксі
+config.auth.enable_reverse_proxy_auto_registration=Увімкнути автоматичну реєстрацію на зворотному проксі
+config.auth.reverse_proxy_authentication_header=Заголовок аутентифікації на зворотному проксі
+
+config.user_config=Налаштування користувача
+config.user.enable_email_notify=Увімкнути сповіщення електронною поштою
+
+config.session_config=Налаштування сесії
+config.session.provider=Постачальник
+config.session.provider_config=Налаштування постачальника
+config.session.cookie_name=Файл куки
+config.session.https_only=Виключно по HTTPS
+config.session.gc_interval=Інтервал GC
+config.session.max_life_time=Максимальний час дії
+config.session.csrf_cookie_name=Кука CSRF
+
+config.cache_config=Конфігурація кешу
+config.cache.adapter=Адаптер
+config.cache.interval=GC Інтервал
+config.cache.host=Хост
+
+config.http_config=Налаштування HTTP
+config.http.access_control_allow_origin=Контроль доступу дозволяє походження
+
+config.attachment_config=Налаштування вкладення
+config.attachment.enabled=Увімкнено
+config.attachment.path=Шлях
+config.attachment.allowed_types=Дозволені типи
+config.attachment.max_size=Ліміт розміру
+config.attachment.max_files=Ліміт файлів
+
+config.release_config=Налаштування випуску
+config.release.attachment.enabled=Вкладення увімкнено
+config.release.attachment.allowed_types=Дозволені типи вкладень
+config.release.attachment.max_size=Ліміт розміру вкладення
+config.release.attachment.max_files=Ліміт прикріплених файлів
+
+config.picture_config=Налаштування зображень
+config.picture.avatar_upload_path=Шлях завантаження аватарок користувачем
+config.picture.repo_avatar_upload_path=Шлях завантаження аватарок в репозиторії
+config.picture.gravatar_source=Джерело граватарів
+config.picture.disable_gravatar=Вимкнути граватари
+config.picture.enable_federated_avatar=Включити федеративні аватарки
+
+config.mirror_config=Налаштування дзеркала
+config.mirror.default_interval=Інтервал за замовчуванням
+
+config.webhook_config=Налаштування web-хуків
+config.webhook.types=Типи
+config.webhook.deliver_timeout=Час для доставки вичерпано
+config.webhook.skip_tls_verify=Пропустити перевірку TLS
+
+config.git_config=Налаштування git
+config.git.disable_diff_highlight=Вимкнути підсвітку синтаксису порівняння
+config.git.max_diff_lines=Обмеження рядків порівнюючи (для одного файлу)
+config.git.max_diff_line_characters=Обмеження символів порівнюючи (для одного файлу)
+config.git.max_diff_files=Обмеження на порівняння файлів (для одного порівняння)
+config.git.gc_args=Аргументи GC
+config.git.migrate_timeout=Час для міграції вичерпано
+config.git.mirror_timeout=Час для отримання дзеркала вичерпано
+config.git.clone_timeout=Час для клонування вичерпано
+config.git.pull_timeout=Час для витягання вичерпано
+config.git.gc_timeout=Затримка GC
+
+config.lfs_config=Налаштування LFS
+config.lfs.storage=Сховище
+config.lfs.objects_path=Шлях об'єктів
+
+config.log_config=Конфігурація журналу
+config.log_file_root_path=Повний шлях до Log-файлу
+config.log_mode=Режим
+config.log_options=Опції
+
+monitor.cron=Завдання cron
+monitor.name=Назва
+monitor.schedule=Розклад
+monitor.next=Наступного разу
+monitor.previous=Попереднього разу
+monitor.execute_times=Кількість виконань
+monitor.process=Запущені процеси
+monitor.desc=Опис
+monitor.start=Початок
+monitor.execute_time=Час виконання
+
+notices.system_notice_list=Сповіщення системи
+notices.view_detail_header=Переглянути деталі повідомлення
+notices.actions=Дії
+notices.select_all=Вибрати все
+notices.deselect_all=Скасувати виділення
+notices.inverse_selection=Інвертувати виділене
+notices.delete_selected=Видалити обране
+notices.delete_all=Видалити усі повідомлення
+notices.type=Тип
+notices.type_1=Репозиторій
+notices.desc=Опис
+notices.op=Оп.
+notices.delete_success=Системні повідомлення було успішно видалено.
+
+[action]
+create_repo=створено репозиторій %s
+rename_repo=репозиторій перейменовано з %[1]s на %[3]s
+commit_repo=запушено до %[3]s у %[4]s
+compare_commits=Перегляд порівняння для цих %d комітів
+transfer_repo=перенесено репозиторій %s у %s
+create_issue=`відкрито проблему %s#%[2]s`
+close_issue=`закрито проблему %s#%[2]s`
+reopen_issue=`перевідкрито проблему %s#%[2]s`
+comment_issue=`відкоментовано проблему %s#%[2]s`
+create_pull_request=`створено запит на втягування %s#%[2]s`
+close_pull_request=`закрито запит на втягування %s#%[2]s`
+reopen_pull_request=`перевідкрито запит на втягування %s#%[2]s`
+merge_pull_request=`запит на злиття влито %s#%[2]s`
+create_branch=створено нову гілку %[3]s у %[4]s
+delete_branch=видалено гілку %[2]s у %[3]s
+push_tag=заштовхнуто тег %[2]s до %[3]s
+delete_tag=видалено мітку %[2]s у %[3]s
+fork_repo=відгалуджено репозиторій у %s
+mirror_sync_push=синхронізовано коміт %[3]s в %[4]s із дзеркала
+mirror_sync_create=синхронізовано нове посилання %[2]s до %[3]s із дзеркала
+mirror_sync_delete=синхронізовано й видалено посилання %[2]s в %[3]s із дзеркала
+
+[tool]
+ago=тому
+from_now=віднині
+now=зараз
+1s=1 секунду %s
+1m=1 хвилину %s
+1h=1 годину %s
+1d=1 день %s
+1w=1 тиждень %s
+1mon=1 місяць %s
+1y=1 рік %s
+seconds=%d секунд %s
+minutes=%d хвилин %s
+hours=%d годин %s
+days=%d днів %s
+weeks=%d тижнів %s
+months=%d місяців %s
+years=%d роки %s
+raw_seconds=секунди
+raw_minutes=хвилини
+raw_hours=години
+
+[dropzone]
+default_message=Перетягніть файли сюди або натисніть "завантажити".
+invalid_input_type=Не можна просто так взяти і завантажити файли цього типу.
+file_too_big=Розмір файлу ({{filesize}} MB), що більше ніж максимальний розмір: ({{maxFilesize}} MB).
+remove_file=Видалити файл
+
diff --git a/conf/locale/locale_vi-VN.ini b/conf/locale/locale_vi-VN.ini
new file mode 100644
index 00000000000..6f002f86087
--- /dev/null
+++ b/conf/locale/locale_vi-VN.ini
@@ -0,0 +1,1434 @@
+app_desc=Một server lưu trữ Git tự host dễ dàng
+
+home=Trang chủ
+dashboard=Bảng điều khiển
+explore=Khám phá
+help=Trợ giúp
+sign_in=Đăng nhập
+sign_out=Đăng xuất
+sign_up=Đăng ký
+register=Đăng ký
+website=Website
+page=Trang
+template=Mẫu
+language=Ngôn ngữ
+create_new=Tạo mới...
+user_profile_and_more=Thông tin người dùng và thêm nữa
+signed_in_as=Đăng nhập như là
+
+username=Username
+email=Email
+password=Mật khẩu
+re_type=Nhập lại
+captcha=Mã xác minh
+
+repository=Kho
+organization=Tổ chức
+mirror=Bản phản ánh
+new_repo=Kho mới
+new_migrate=Mốc mới
+new_mirror=Bản phản ánh mới
+new_fork=Bản sao kho mới
+new_org=Tổ chức mới
+manage_org=Quản lý tổ chức
+admin_panel=Bảng quản trị
+account_settings=Cài đặt Tài khoản
+settings=Cài đặt
+your_profile=Hồ sơ của bạn
+your_settings=Cài đặt của bạn
+
+activities=Hoạt động
+pull_requests=Yêu cầu khéo về
+issues=Các vấn đề
+
+cancel=Hủy bỏ
+
+[status]
+page_not_found=Không tìm thấy trang này!
+internal_server_error=Lỗi nội bộ máy chủ.
+
+[install]
+install=Cài đặt
+title=Cài đặt cho lần chạy đầu tiên
+docker_helper=Nếu bạn đang chạy Gogs bên trong Docker, xin vui lòng đọc hướng dẫn một cách cẩn thận, trước khi bạn thay đổi bất cứ điều gì trong trang này!
+requite_db_desc=Gogs yêu cầu MySQL, PostgreSQL, SQLite3 hoặc TiDB (thông qua giao thức MySQL).
+db_title=Cài đặt database
+db_type=Loại database
+host=Host
+user=User
+password=Mật khẩu
+db_name=Tên database
+db_schema=Lược đồ
+db_helper=Xin vui lòng sử dụng engine INNODB với utf8_general_ci charset cho MySQL.
+ssl_mode=Chế độ SSL
+path=Đường dẫn
+sqlite_helper=Đường dẫn tập tin database SQLite3. xin vui lòng sử dụng đường dẫn tuyệt đối khi bạn bắt đầu như là service.
+err_empty_db_path=Đường dẫn database SQLite3 không thể để trống.
+no_admin_and_disable_registration=Bạn không thể vô hiệu hóa đăng ký mà không cần tạo một tài khoản quản trị.
+err_empty_admin_password=Mật khẩu quản trị không thể để trống.
+
+general_title=Cài đặt ứng dụng chung
+app_name=Tên chương trình
+app_name_helper=Đặt tên tổ chức của bạn ở đây lớn và to!
+repo_path=Đường dẫn gốc cho kho
+repo_path_helper=Tất cả kho Git từ xa sẽ được lưu vào thư mục này.
+run_user=Người dùng đang chạy
+run_user_helper=Người dùng phải có quyền truy cập vào đường dẫn gố của kho lưu trữ và chạy Gogs.
+domain=Tên miền
+domain_helper=Điều này ảnh hưởng đến SSH clone URLs.
+ssh_port=SSH Port
+ssh_port_helper=Số của cổng máy chủ SSH của bạn đang sử dụng, để trống để vô hiệu hóa tính năng SSH.
+use_builtin_ssh_server=Sử dụng Builtin SSH Server
+use_builtin_ssh_server_popup=Bắt đầu máy chủ SSH builtin Git hoạt động để phân biệt từ hệ thống SSH daemon.
+http_port=Cổng HTTP
+http_port_helper=Số hiệu của cổng mà ứng dụng sẽ lắng nghe.
+app_url=URL chương trình
+app_url_helper=Điều này ảnh hưởng đến HTTP/HTTPS clone URL và một nơi nào đó trong thư điện tử.
+log_root_path=Đường dẫn Log
+log_root_path_helper=Thư mục để viết vào tập tin Log.
+enable_console_mode=Bật chế độ console
+enable_console_mode_popup=Ngoài chế độ tập tin, còn có in logs vào console.
+default_branch=Default Branch
+
+optional_title=Cài đặt tùy chọn
+email_title=Cài đặt dịch vụ email
+smtp_host=Máy chủ SMTP
+smtp_from=Từ
+smtp_from_helper=Thư từ địa chỉ, RFC 5322. Nó có thể chỉ là một địa chỉ email, hoặc định dạng "Tên".
+mailer_user=Email người gửi
+mailer_password=Mật khẩu người gửi
+register_confirm=Bật xác nhận đăng ký
+mail_notify=Bật thông báo qua Email
+server_service_title=Serve và các cài đặt dịch vụ
+offline_mode=Bật chế độ offline
+offline_mode_popup=Vô hiệu hoá CDN ngay cả trong chế độ production, tất cả các tập tin tài nguyên sẽ được phục vụ tại địa phương.
+disable_gravatar=Vô hiệu hoá dịch vụ Gravatar
+disable_gravatar_popup=Vô hiệu hoá Gravatar và tùy chỉnh nguồn, tất cả avatar đang được tải lên bởi người dùng hoặc mặc định.
+federated_avatar_lookup=Bật Federated Avatars Lookup
+federated_avatar_lookup_popup=Enable federated avatars lookup to use federated open source service based on libravatar.
+disable_registration=Vô hiệu hóa tự đăng ký
+disable_registration_popup=Vô hiệu hoá người dùng tự đăng ký, chỉ có admin mới có thể tạo tài khoản.
+enable_captcha=Bật Captcha
+enable_captcha_popup=Yêu cầu xác nhận captcha cho người dùng tự đăng ký.
+require_sign_in_view=Bật yêu cầu đăng nhập để xem trang
+require_sign_in_view_popup=Chỉ đăng nhập người dùng có thể xem các trang, khách chỉ có thể nhìn thấy dấu hiệu trong/lên trang.
+admin_setting_desc=Bạn không cần phải tạo một tài khoản quản trị ngay bây giờ, bất cứ người dùng nào mang ID = 1 sẽ được admin truy cập quyền admin.
+admin_title=Cài đặt tài khoản quản trị
+admin_name=Username
+admin_password=Mật khẩu
+confirm_password=Xác nhận mật khẩu
+admin_email=Admin Email
+install_gogs=Cài đặt Gogs
+test_git_failed=Không kiểm tra lệnh 'git': %v
+sqlite3_not_available=Phiên bản phát hành của bạn không hỗ trợ SQLite3, xin vui lòng tải phiên bản nhị phân chính thức từ %s, không phải là phiên bản gobuild.
+invalid_db_setting=Thiết lập database không chính xác: %v
+invalid_repo_path=Đường dẫn gốc lưu trữ kho là không hợp lệ: %v
+run_user_not_match=Người dùng đang chạy không phải là người dùng hiện tại: %s -> %s
+smtp_host_missing_port=SMTP host thiếu thông tin cổng ở địa chỉ.
+invalid_smtp_from=Trường SMTP không hợp lệ: %v
+save_config_failed=Lưu cấu hình thất bại: %v
+init_failed=Lỗi khởi tạo ứng dụng: %v
+invalid_admin_setting=Thiết lập tài khoản admin không hợp lệ: %v
+install_success=Chào mừng! Chúng tôi vui mừng vì bạn chọn Gogs, chúc bạn vui.
+invalid_log_root_path=Đường dẫn gốc cho Log không hợp lệ: %v
+
+[home]
+uname_holder=Username or email
+password_holder=Mật khẩu
+switch_dashboard_context=Chuyển đổi bảng điều khiển ngữ cảnh
+my_repos=Kho phần mềm của tôi
+show_more_repos=Hiển thị thêm kho...
+collaborative_repos=Kho phần mềm cộng tác
+my_orgs=Các tổ chức của tôi
+my_mirrors=Mirrors của tôi
+view_home=Lượng xem
+
+issues.in_your_repos=Trong kho của bạn
+
+[explore]
+repos=Kho phần mềm của tôi
+users=Người dùng
+organizations=Tổ chức, cơ quan
+search=Tìm kiếm
+
+[auth]
+create_new_account=Tạo một Tài khoản mới
+register_hepler_msg=Đã có tài khoản? Đăng nhập bây giờ!
+social_register_hepler_msg=Đã có tài khoản? Đăng nhập bây giờ!
+disable_register_prompt=Xin lỗi, đăng ký đã bị vô hiệu. Xin vui lòng liên hệ với người quản trị trang web.
+disable_register_mail=Xin lỗi, đăng ký đã bị vô hiệu. Xin vui lòng liên hệ với người quản trị trang web.
+auth_source=Authentication Source
+local=Local
+remember_me=Ghi nhớ tôi
+forgot_password=Quên mật khẩu
+forget_password=Quên mật khẩu?
+sign_up_now=Cần một tài khoản? Đăng ký bây giờ.
+confirmation_mail_sent_prompt=Một email xác nhận mới đã được gửi đến %s, xin vui lòng kiểm tra hộp thư đến của bạn trong vòng %d giờ kế tiếp để hoàn thành quá trình đăng ký.
+active_your_account=Kích hoạt tài khoản của bạn
+prohibit_login=Đăng nhập bị Cấm
+prohibit_login_desc=Tài khoản của bạn bị cấm đăng nhập, vui lòng liên hệ với quản trị trang web.
+resent_limit_prompt=Xin lỗi, bạn đã yêu cầu một email kích hoạt mới. Xin vui lòng chờ 3 phút sau đó thử lại.
+has_unconfirmed_mail=Chào %s, bạn có một địa chỉ email không được xác nhận (%s). Nếu bạn chưa nhận được một email xác nhận hoặc cần phải gửi lại một email mới, hãy nhấp vào nút dưới đây.
+resend_mail=Click vào đây để gửi lại email kích hoạt
+send_reset_mail=Click vào đây gửi (lại) email đặt lại mật khẩu của bạn
+reset_password=Đặt lại mật khẩu của bạn
+invalid_code=Xin lỗi, mã số xác nhận của bạn đã hết hạn hoặc không hợp lệ.
+reset_password_helper=Click vào đây để đặt lại mật khẩu của bạn
+password_too_short=Độ dài mật khẩu không thể ít hơn 6.
+non_local_account=Tài khoản Non-local không thể thay đổi mật khẩu thông qua Gogs.
+
+login_two_factor=Xác thực 2 bước
+login_two_factor_passcode=Mật mã xác thực
+login_two_factor_enter_recovery_code=Nhập mã khôi phục 2 bước
+login_two_factor_recovery=Khôi phục 2 bước
+login_two_factor_recovery_code=Mã phục hồi
+login_two_factor_enter_passcode=Nhập mã khóa 2 yếu tố
+login_two_factor_invalid_recovery_code=Mã phục hồi đã được sử dụng hoặc không hợp lệ.
+
+[mail]
+activate_account=Xin vui lòng kích hoạt tài khoản
+activate_email=Xác minh địa chỉ email của bạn
+reset_password=Đặt lại mật khẩu của bạn
+register_success=Đăng ký thành công, chào mừng
+register_notify=Chào mừng trên hệ thống
+
+[modal]
+yes=Có
+no=Không
+modify=Sửa đổi
+
+[form]
+UserName=Username
+RepoName=Tên kho lưu trữ
+Email=Địa chỉ Email
+Password=Mật khẩu
+Retype=Nhập lại mật khẩu
+SSHTitle=Tên key SSH
+HttpsUrl=HTTPS URL
+PayloadUrl=Payload URL
+TeamName=Tên nhóm
+AuthName=Tên Ủy quyền
+AdminEmail=Admin Email
+
+NewBranchName=Tên nhánh mới
+CommitSummary=Tổng kết commit
+CommitMessage=Ghi chú commit
+CommitChoice=Lựa chọn commit
+TreeName=Đường dẫn tập tin
+Content=Nội dung
+
+require_error=` không thể trống.`
+alpha_dash_error=` must be valid alpha or numeric or dash(-_) characters.`
+alpha_dash_dot_error=` must be valid alpha or numeric or dash(-_) or dot characters.`
+alpha_dash_dot_slash_error='phải là hợp lệ alpha hay số hoặc ký tự dash(-_) hay dot hoặc slashes.'
+size_error=` must be size %s.`
+min_size_error=` must contain at least %s characters.`
+max_size_error=` must contain at most %s characters.`
+email_error=` is not a valid email address.`
+url_error=` is not a valid URL.`
+include_error=` must contain substring '%s'.`
+unknown_error=Unknown error:
+captcha_incorrect=Captcha didn't match.
+password_not_match=Password and confirm password are not same.
+
+username_been_taken=Tên người dùng đã được sử dụng.
+repo_name_been_taken=Tên kho đã được sử dụng.
+org_name_been_taken=Tên tổ chức đã được sử dụng.
+team_name_been_taken=Tên nhóm đã được sử dụng.
+email_been_used=Email đã được sử dụng.
+username_password_incorrect=Tên đăng nhập hoặc mật khẩu không đúng.
+auth_source_mismatch=Nguồn xác thực không liên kết đến người dùng.
+enterred_invalid_repo_name=Hãy chắc chắn tên kho đã nhập chính xác.
+enterred_invalid_owner_name=Please make sure that the owner name you entered is correct.
+enterred_invalid_password=Please make sure the that password you entered is correct.
+user_not_exist=Người dùng hiện không tồn tại.
+last_org_owner=Removing the last user from a owner team isn't allowed, as there must always be at least one owner in any given organization.
+
+invalid_ssh_key=Sorry, we're not able to verify your SSH key: %s
+unable_verify_ssh_key=Gogs cannot verify your SSH key, but we assume that it is valid, please double-check it.
+auth_failed=Xác thực thất bại
+
+still_own_repo=Your account still has ownership over at least one repository, you have to delete or transfer them first.
+still_has_org=Your account still has membership in at least one organization, you have to leave or delete your memberships first.
+org_still_own_repo=This organization still has ownership of repositories, you must delete or transfer them first.
+
+target_branch_not_exist=Target branch does not exist.
+
+[user]
+change_avatar=Change your avatar
+join_on=Joined on
+repositories=Kho lưu trữ
+activity=Public Activity
+followers=Người theo dõi
+starred=Starred repositories
+following=Đang theo dõi
+follow=Theo dõi
+unfollow=Bỏ theo dõi
+
+form.name_not_allowed=Tên người dùng %q là không được phép.
+
+[settings]
+profile=Hồ sơ
+password=Mật khẩu
+avatar=Ảnh đại diện
+ssh_keys=SSH keys
+security=Bảo mật
+repos=Kho phần mềm của tôi
+orgs=Tổ chức, cơ quan
+applications=Ứng dụng
+delete=Xóa tài khoản
+
+public_profile=Tiểu sử
+profile_desc=Địa chỉ email của bạn là công cộng và sẽ được sử dụng cho bất kỳ tài khoản có liên quan thông báo, và bất kỳ web dựa trên hoạt động thực hiện thông qua các trang web.
+password_username_disabled=Người dùng Non-local không được phép thay đổi tên người dùng của họ.
+full_name=Tên đầy đủ
+website=Website
+location=Vị trí
+update_profile=Chỉnh sửa hồ sơ
+update_profile_success=Hồ sơ của bạn đã được cập nhật thành công.
+change_username=Đã thay đổi tên đăng nhập
+change_username_prompt=Thay đổi này sẽ ảnh hưởng đến cách các liên kết đến tài khoản của bạn.
+continue=Tiếp tục
+cancel=Hủy bỏ
+
+lookup_avatar_by_mail=Lookup Avatar by mail
+federated_avatar_lookup=Federated Avatars Lookup
+enable_custom_avatar=Ảnh đại diện tùy chọn của người dùng
+choose_new_avatar=Chọn ảnh đại diện mới
+update_avatar=Cập nhật cài đặt ảnh đại diện
+delete_current_avatar=Xóa ảnh đại diện hiện tại
+uploaded_avatar_not_a_image=Tập tin đã up không phải hình ảnh.
+update_avatar_success=Ảnh đại diện của bạn đã được cập nhật thành công.
+
+change_password=Thay đổi Mật khẩu
+old_password=Mật khẩu hiện tại
+new_password=Mật khẩu mới
+retype_new_password=Nhập lại mật khẩu mới
+password_incorrect=Mật khẩu hiện tại không đúng.
+change_password_success=Mật khẩu của bạn đã được thay đổi. Bây giờ bạn có thể đăng nhập sử dụng mật khẩu mới.
+password_change_disabled=Người dùng Non-local không được phép thay đổi tên người dùng của họ.
+
+emails=Địa chỉ Email
+manage_emails=Quản lý địa chỉ email
+email_desc=Địa chỉ email chính của bạn sẽ được sử dụng cho thông báo và các mục khác.
+primary=Chính
+primary_email=Đặt làm bản chính
+delete_email=Xóa
+email_deletion=Xóa email
+email_deletion_desc=Xóa địa chỉ email này sẽ xóa các thông tin liên quan đến tài khoản của bạn. Bạn có muốn tiếp tục?
+email_deletion_success=Đã xóa email thành công!
+email_deletion_primary=Cannot delete primary email address.
+add_new_email=Thêm địa chỉ email mới
+add_email=Thêm email
+add_email_confirmation_sent=Một email xác nhận mới đã được gửi đến '%s', xin vui lòng kiểm tra hộp thư của bạn trong vòng giờ %d tiếp theo để hoàn tất quá trình xác nhận.
+add_email_success=Địa chỉ email mới được thêm vào thành công.
+
+manage_ssh_keys=Phím tắt quản lý SSH
+add_key=Thêm khoá
+ssh_desc=Đây là một danh sách các phím SSH liên kết với tài khoản của bạn. Như các phím cho phép bất cứ ai sử dụng chúng để truy cập vào kho của bạn, nó là rất quan trọng mà bạn chắc chắn rằng bạn nhận ra chúng.
+ssh_helper=không biết như thế nào? kiểm tra hướng dẫn của GitHub để tạo của riêng bạn SSH phím hoặc giải quyết các phổ biến những vấn đề bạn có thể gặp phải bằng cách sử dụng SSH.
+add_new_key=Thêm SSH Key
+ssh_key_been_used=Nội dung khóa công cộng đã được dùng.
+ssh_key_name_used=Khóa công khai với cùng tên đã tồn tại.
+key_name=Tên khóa
+key_content=Nội dung
+add_key_success=SSH key mới '%s' đã được thêm vào thành công!
+delete_key=Xóa
+ssh_key_deletion=SSH Key xóa
+ssh_key_deletion_desc=Xoá này SSH key sẽ loại bỏ tất cả liên quan đến truy cập tài khoản của bạn. Bạn có muốn tiếp tục?
+ssh_key_deletion_success=SSH key đã bị xoá thành công!
+add_on=Được thêm vào
+last_used=Được dùng gần nhất vào
+no_activity=Không có hoạt động gần đây
+key_state_desc=Phím này đã được sử dụng trong vòng 7 ngày qua
+token_state_desc=Token này đã được sử dụng trong vòng 7 ngày qua
+
+two_factor=Xác thực 2 bước
+two_factor_status=Trạng thái:
+two_factor_on=Bật
+two_factor_off=Tắt
+two_factor_enable=Kích hoạt
+two_factor_disable=Vô hiệu hoá
+two_factor_view_recovery_codes=Xem và lưu mã phục hồi của bạn ở một nơi an toàn. Bạn có thể sử dụng chúng như là mật mã, nếu bạn mất quyền truy cập vào ứng dụng xác thực của bạn.
+two_factor_http=Cho hoạt động HTTP/HTTPS, bạn không còn có thể sử dụng đồng bằng tên người dùng và mật khẩu. Hãy tạo ra và sử dụng cá nhân truy cập Token như là ủy nhiệm của bạn, ví dụ: %[3]s.
+two_factor_enable_title=Bật xác thực 2 bước
+two_factor_scan_qr=Hãy sử dụng ứng dụng xác thực của bạn để quét hình ảnh:
+two_factor_or_enter_secret=Hoặc nhập mã bí mật:
+two_factor_then_enter_passcode=Sau đó nhập mã:
+two_factor_verify=Xác minh
+two_factor_invalid_passcode=Mật mã mà bạn đã nhập không hợp lệ, hãy thử lại!
+two_factor_reused_passcode=Mã bạn nhập đã được sử dụng, hãy nhập mã khác
+two_factor_enable_error=Kích hoạt xác thực 2 yếu tố không thành công: %v
+two_factor_enable_success=Xác thực 2 yếu tố đã kích hoạt cho tài khoản của bạn thành công!
+two_factor_recovery_codes_title=Mã khôi phục xác thực 2 yếu tố
+two_factor_recovery_codes_desc=Mã phục hồi được sử dụng khi bạn tạm thời mất quyền truy cập ứng dụng xác thực của bạn. Mỗi mã phục hồi chỉ có thể được sử dụng một lần, xin vui lòng giữ các mã trong một nơi an toàn.
+two_factor_regenerate_recovery_codes=Tạo lại mã phục hồi
+two_factor_regenerate_recovery_codes_error=Tạo lại mã khôi phục không thành công: %v
+two_factor_regenerate_recovery_codes_success=Mã phục hồi mới đã được tạo ra thành công!
+two_factor_disable_title=Vô hiệu hóa Xác thực 2 nhân tố
+two_factor_disable_desc=Mức độ bảo mật tài khoản của bạn sẽ giảm sau khi Khuyết tật hai nhân tố xác thực. Bạn có muốn tiếp tục?
+two_factor_disable_success=Xác thực 2 yếu tố đã vô hiệu hoá thành công!
+
+manage_access_token=Quản lý mã truy cập cá nhân
+generate_new_token=Tạo token mới
+tokens_desc=Thẻ bạn đã tạo ra mà có thể được sử dụng để truy cập vào các API Gogs.
+access_token_tips=The personal access token may be used as either username or password. It is recommended to use the "x-access-token" as the username and the personal access token as the password for Git applications.
+new_token_desc=Mỗi token sẽ có thể truy cập vào tài khoản của bạn.
+token_name=Token Name
+generate_token=Tạo mã
+generate_token_succees=Mã thông báo truy cập của bạn đã được tạo ra thành công! Hãy chắc chắn sao chép nó ngay bây giờ, vì bạn sẽ không thể nhìn thấy nó một lần nữa sau đó!
+delete_token=Xóa
+access_token_deletion=Xóa mã truy cập cá nhân
+access_token_deletion_desc=Xóa mã quyền truy cập cá nhân sẽ loại bỏ tất cả liên quan đến truy cập của ứng dụng. Bạn có muốn tiếp tục?
+delete_token_success=Mã truy cập cá nhân đã được loại bỏ thành công! Đừng quên để cập nhật ứng dụng của bạn.
+token_name_exists=Token cùng tên đã tồn tại
+
+orgs.none=Bạn không là thành viên của bất kỳ tổ chức nào.
+orgs.leave_title=Rời khỏi tổ chức
+orgs.leave_desc=Bạn sẽ mất quyền truy cập vào tất cả các kho phần mềm và các nhóm sau khi bạn rời khỏi tổ chức. Bạn có muốn tiếp tục?
+
+repos.leave=Rời khỏi
+repos.leave_title=Rời khỏi kho lưu trữ
+repos.leave_desc=Bạn sẽ mất quyền truy cập vào kho sau khi bạn rời. Bạn có muốn tiếp tục?
+repos.leave_success=Bạn còn '%s' kho thành công!
+
+delete_account=Xóa tài khoản của bạn
+delete_prompt=Các hoạt động sẽ xóa vĩnh viễn tài khoản của bạn, và KHÔNG THỂ được hoàn tác!
+confirm_delete_account=Xác nhận xóa
+delete_account_title=Xoá tài khoản
+delete_account_desc=Tài khoản này sẽ bị xóa vĩnh viễn, bạn có muốn tiếp tục?
+
+[repo]
+owner=Chủ sở hữu
+repo_name=Tên kho
+repo_name_helper=Một tên kho tốt thường bao gồm các từ khoá ngắn, đáng nhớ và độc đáo.
+visibility=Hiển thị
+unlisted=Riêng tư
+visiblity_helper=Kho lưu trữ này là riêng tư
+unlisted_helper=Kho lưu trữ này làriêng tư
+visiblity_helper_forced=Trang web quản trị đã buộc tất cả các kho phần mềm mới được riêng tư
+visiblity_fork_helper=(Thay đổi giá trị này sẽ ảnh hưởng đến tất cả forks)
+clone_helper=Cần giúp đỡ clone? Ghé thăm trợ giúp!
+fork_repo=Kéo về thành kho mới
+fork_from=Kéo từ
+fork_visiblity_helper=Bạn không thể thay đổi khả năng tìm thấy của một kho lưu trữ kéo về.
+repo_desc=Mô tả
+repo_lang=Ngôn ngữ
+repo_gitignore_helper=Chọn mẫu .gitignore
+license=Giấy phép
+license_helper=Chọn một tập tin giấy phép
+readme=Readme
+readme_helper=Chọn một mẫu readme
+auto_init=Khởi tạo kho này với tệp đã chọn và mẫu
+create_repo=Tạo kho lưu trữ
+default_branch=Nhánh mặc định
+mirror_prune=Prune
+mirror_prune_desc=Loại bỏ bất kỳ tài liệu tham khảo theo dõi từ xa không còn tồn tại trên điều khiển từ xa
+mirror_interval=Mirror Interval (hour)
+mirror_address=Mirror Address
+mirror_address_desc=Xin vui lòng bao gồm các chứng chỉ người dùng cần thiết trong địa chỉ.
+mirror_last_synced=Lần đồng bộ cuối
+watchers=Người theo dõi
+stargazers=Stargazers
+forks=Forks
+repo_description_helper=Mô tả Reoisitory. Tối đa 512 ký tự
+repo_description_length=Ký tự cho phép
+
+form.reach_limit_of_creation=Chủ sở hữu đã đạt giới hạn tối đa %d kho.
+form.name_not_allowed=Tên Repository %q là không hợp lệ
+
+need_auth=Cần xác thực Ủy quyền
+migrate_type=Migration Type
+migrate_type_helper=This repository will be a mirror
+migrate_repo=Migrate Repository
+migrate.clone_address=Clone Address
+migrate.clone_address_desc=This can be a HTTP/HTTPS/GIT URL.
+migrate.clone_address_desc_import_local=You're also allowed to migrate a repository by local server path.
+migrate.permission_denied=You are not allowed to import local repositories.
+migrate.invalid_local_path=Invalid local path, it does not exist or not a directory.
+migrate.clone_address_resolved_to_blocked_local_address=Địa chỉ sao chép được giải quyết thành một địa chỉ mạng cục bộ bị chặn hoàn toàn.
+migrate.failed=Migration failed: %v
+
+mirror_from=mirror of
+forked_from=forked from
+copy_link=Sao chép
+copy_link_success=Đã sao chép!
+copy_link_error=Press ⌘-C or Ctrl-C to copy
+copied=Sao chép OK
+unwatch=Ngừng theo dõi
+watch=Xem
+unstar=Unstar
+star=Star
+fork=Fork
+
+no_desc=Không có mô tả
+quick_guide=Quick Guide
+clone_this_repo=Clone this repository
+create_new_repo_command=Create a new repository on the command line
+push_exist_repo=Push an existing repository from the command line
+bare_message=This repository does not have any content yet.
+
+files=Các tập tin
+branch=Branch
+tree=Tree
+filter_branch_and_tag=Filter branch or tag
+branches=Branches
+tags=Tags
+issues=Các vấn đề
+pulls=Yêu cầu kéo về
+labels=Nhãn
+milestones=Milestones
+commits=Commits
+git_branches=Branches
+releases=Phát hành
+file_raw=Raw
+file_history=Lịch sử
+file_view_raw=Xem dưới dạng raw
+file_permalink=Permalink
+file_too_large=This file is too large to be shown
+video_not_supported_in_browser=Your browser doesn't support HTML5 video tag.
+
+branches.overview=Tổng thể
+branches.active_branches=Active Branches
+branches.stale_branches=Các nhánh cũ
+branches.all=Tất cả các nhánh
+branches.updated_by=Updated %[1]s by %[2]s
+branches.change_default_branch=Thay đổi nhánh mặc định
+branches.default_deletion_not_allowed=Cannot delete the default branch.
+branches.protected_deletion_not_allowed=Cannot delete a protected branch.
+
+editor.new_file=Tập tin mới
+editor.upload_file=Tải tập tin lên
+editor.edit_file=Sửa tập tin
+editor.preview_changes=Xem trước các Thay đổi
+editor.cannot_edit_non_text_files=Không thể chỉnh sửa các tập tin không phải là văn bản
+editor.edit_this_file=Chỉnh sửa tập tin này
+editor.must_be_on_a_branch=Bạn phải trên một nhánh để thực hiện hoặc đề nghị thay đổi đối với tệp này
+editor.fork_before_edit=Bạn phải fork kho này trước khi chỉnh sửa tập tin
+editor.delete_this_file=Xóa tập tin này
+editor.must_have_write_access=Bạn phải có quyền viết mới có thể thay đổi trên tập tin này
+editor.file_delete_success='%s' tập tin đã được xóa thành công!
+editor.name_your_file=Đặt tên cho tập tin của bạn...
+editor.filename_help=To add directory, just type it and press /. To remove a directory, go to the beginning of the field and press backspace.
+editor.or=hoặc
+editor.cancel_lower=hủy bỏ
+editor.commit_changes=Xác nhận các thay đổi
+editor.add_tmpl=Add '%s/'
+editor.add=Thêm '%s'
+editor.update=Cập nhật '%s'
+editor.delete=Xóa '%s'
+editor.commit_message_desc=Thêm một mô tả tùy chọn...
+editor.commit_directly_to_this_branch=Xác nhận ngay đến %s nhánh.
+editor.create_new_branch=Tạo một nhánh mới cho commit này và yêu cầu pull mới.
+editor.new_branch_name_desc=Tên nhánh mới...
+editor.cancel=Hủy bỏ
+editor.filename_cannot_be_empty=Tên đăng nhập không thể để trống.
+editor.branch_already_exists=Nhánh '%s' đã tồn tại trong kho này.
+editor.directory_is_a_file=Entry '%s' in the parent path is a file not a directory in this repository.
+editor.file_is_a_symlink=The file '%s' is a symlink that cannot be modified from the web editor.
+editor.filename_is_a_directory=The filename '%s' is an existing directory in this repository.
+editor.file_editing_no_longer_exists=The file '%s' you are editing no longer exists in the repository.
+editor.file_changed_while_editing=File content has been changed since you started editing. Click here to see what have been changed or press commit again to overwrite those changes.
+editor.file_already_exists=Tên tập tin '%s' đã tồn tại trong kho này.
+editor.no_changes_to_show=Không có thay đổi nào.
+editor.fail_to_update_file=Failed to update/create file '%s' with error: %v
+editor.fail_to_delete_file=Lỗi không xóa được file '%s' : %v
+editor.add_subdir=Thêm thư mục con...
+editor.unable_to_upload_files=Failed to upload files to '%s' with error: %v
+editor.upload_files_to_dir=Tải tập tin đến '%s'
+
+commits.commit_history=Lịch sử commit
+commits.commits=Commits
+commits.search=Tìm kiếm commits
+commits.find=Tìm kiếm
+commits.author=Tác giả
+commits.message=Thông báo
+commits.date=Ngày
+commits.older=Cũ hơn
+commits.newer=Mới hơn
+
+issues.new=Vấn đề mới
+issues.new.labels=Nhãn
+issues.new.no_label=Không có nhãn
+issues.new.clear_labels=Xóa nhãn
+issues.new.milestone=Milestone
+issues.new.no_milestone=Không có Milestone
+issues.new.clear_milestone=Xóa milestone
+issues.new.open_milestone=Mởi Milestones
+issues.new.closed_milestone=Đóng Milestones
+issues.new.assignee=Người được phân công
+issues.new.clear_assignee=Xóa người được phân công
+issues.new.no_assignee=Không có người được phân công
+issues.create=Tạo vấn đề
+issues.new_label=Nhãn mới
+issues.new_label_placeholder=Tên nhãn...
+issues.create_label=Tạo nhãn
+issues.label_templates.title=Load bộ định nghĩa trước của nhãn
+issues.label_templates.info=Không có bất kỳ nhãn nào được nêu ra. Bạn có thể bấm vào nút "Nhãn mới" ở trên để tạo một tài khoản hoặc sử dụng một bộ định sẵn dưới đây.
+issues.label_templates.helper=Chọn một set nhãn
+issues.label_templates.use=Sử dụng set nhãn này
+issues.label_templates.fail_to_load_file=Thất bại để tải file mẫu nhãn '%s': %v
+issues.open_tab=%d Đang mở
+issues.close_tab=%d Đã đóng
+issues.filter_label=Nhãn
+issues.filter_label_no_select=Không có nhãn được chọn
+issues.filter_milestone=Milestone
+issues.filter_milestone_no_select=Không có milestone nào được chọn
+issues.filter_assignee=Người được phân công
+issues.filter_assginee_no_select=Chưa chọn người được phân công
+issues.filter_type=Loại
+issues.filter_type.all_issues=Tất cả các vấn đề
+issues.filter_type.assigned_to_you=Được phân công cho bạn
+issues.filter_type.created_by_you=Được tạo bởi bạn
+issues.filter_type.mentioning_you=Nhắc đến bạn
+issues.filter_sort=Sắp xếp
+issues.filter_sort.latest=Mới nhất
+issues.filter_sort.oldest=Cũ nhất
+issues.filter_sort.recentupdate=Cập nhật gần đây
+issues.filter_sort.leastupdate=Cập Nhật gần đây nhất
+issues.filter_sort.mostcomment=Nhận xét nhiều nhất
+issues.filter_sort.leastcomment=Nhận xét ít nhất
+issues.opened_by=%[1] đang mở bởi %[3]s
+issues.opened_by_fake=%[1] đang mở bởi %[2]s
+issues.previous=Trước
+issues.next=Tiếp
+issues.open_title=Mở
+issues.closed_title=Đã đóng
+issues.num_comments=%d ý kiến
+issues.commented_at='đã nhận xét %s'
+issues.delete_comment_confirm=Are you sure you want to delete this comment?
+issues.no_content=Ở đây vẫn chưa có nội dung nào.
+issues.close_issue=Đóng
+issues.close_comment_issue=Bình luận và đóng
+issues.reopen_issue=Mở lại
+issues.reopen_comment_issue=Bình luận và mở lại
+issues.create_comment=Ý kiến
+issues.closed_at=`closed %[2]s`
+issues.reopened_at=`reopened %[2]s`
+issues.commit_ref_at=`referenced this issue from a commit %[2]s`
+issues.poster=Poster
+issues.collaborator=Người hợp tác
+issues.owner=Chủ sở hữu
+issues.sign_in_require_desc=Đăng nhập để tham gia bình luận.
+issues.edit=Chỉnh sửa
+issues.cancel=Hủy bỏ
+issues.save=Lưu
+issues.label_title=Tên nhãn
+issues.label_color=Màu nhãn
+issues.label_count=%d nhãn
+issues.label_open_issues=%d vấn đề đang mở
+issues.label_edit=Chỉnh sửa
+issues.label_delete=Xóa
+issues.label_modify=Sửa đổi nhãn
+issues.label_deletion=Xoá nhãn
+issues.label_deletion_desc=Xoá nhãn hiệu này sẽ loại bỏ thông tin của nó ở tất cả các vấn đề có liên quan. Bạn có muốn tiếp tục?
+issues.label_deletion_success=Nhãn đã được xóa thành công!
+issues.num_participants=%d tham gia
+issues.attachment.open_tab='Click để xem "%s" trong tab mới'
+issues.attachment.download=' Nhấn vào đây để tải về "%s"'
+
+pulls.new=Yêu cầu kéo mới
+pulls.compare_changes=So sánh những thay đổi
+pulls.compare_changes_desc=So sánh hai nhánh và thực hiện một yêu cầu kéo cho thay đổi.
+pulls.compare_base=cơ sở
+pulls.compare_compare=so sánh
+pulls.filter_branch=Bộ lọc nhánh
+pulls.no_results=Không có kết quả được tìm thấy.
+pulls.nothing_to_compare=Không có gì để so sánh vì nhánh cơ sở và head giống nhau.
+pulls.nothing_merge_base=Không có gì để so sánh vì hai nhánh có lịch sử hoàn toàn khác nhau.
+pulls.has_pull_request=' Đây đã là một yêu cầu kéo giữa hai mục tiêu này: %[2]s #%[3]d '
+pulls.create=Tạo yêu cầu kéo
+pulls.title_desc=muốn nhập %[1]d commit từ %[2]s vào %[3]s
+pulls.merged_title_desc=đã nhập %[1]d commit từ %[2]s vào [3]s %[4]s
+pulls.tab_conversation=Hội thoại
+pulls.tab_commits=Commits
+pulls.tab_files=Các file đã thay đổi
+pulls.reopen_to_merge=Xin vui lòng mở lại yêu cầu kéo này để thực hiện các hoạt động sát nhập code.
+pulls.merged=Đã hợp nhất
+pulls.has_merged=Yêu cầu kéo này đã được sáp nhập thành công!
+pulls.data_broken=Dữ liệu của yêu cầu kéo này đã bị phá vỡ do xóa thông tin fork.
+pulls.is_checking=Kiểm tra xung đột là vẫn còn trong tiến trình, hãy làm mới trang trong vài phút.
+pulls.can_auto_merge_desc=Yêu cầu kéo này có thể được sáp nhập tự động.
+pulls.cannot_auto_merge_desc=Yêu cầu kéo này không thể được kết hợp tự động bởi vì có các xung đột.
+pulls.cannot_auto_merge_helper=Xin vui lòng nhập theo cách thủ công để giải quyết các cuộc xung đột.
+pulls.create_merge_commit=Tạo một merge commit
+pulls.rebase_before_merging=Rebase trước khi sáp nhập
+pulls.commit_description=Mô tả commit
+pulls.merge_pull_request=Merge Pull Request
+pulls.open_unmerged_pull_exists=' Bạn không thể thực hiện thao tác reopen vì đã có một yêu cầu kéo đang mở (#%d) từ kho lưu trữ cùng với cùng một kết hợp thông tin và chờ đợi cho việc sáp nhập.'
+pulls.delete_branch=Xóa nhánh
+pulls.delete_branch_has_new_commits=Nhánh không thể bị xoá vì nó có các commit mới sau sáp nhập.
+
+milestones.new=Milestone mới
+milestones.open_tab=%d Đang mở
+milestones.close_tab=%d Đã đóng
+milestones.closed=Đóng %s
+milestones.no_due_date=Không có ngày đến hạn
+milestones.open=Mở
+milestones.close=Đóng
+milestones.new_subheader=Tạo milestones để tổ chức các vấn đề của bạn.
+milestones.create=Tạo Milestone
+milestones.title=Tiêu đề
+milestones.desc=Mô tả
+milestones.due_date=Ngày đến hạn (tùy chọn)
+milestones.clear=Xóa
+milestones.invalid_due_date_format=Ngày đến hạn không hợp lệ, phải là kiểu 'yyyy-mm-dd'.
+milestones.create_success=Milestone '%s' đã được tạo thành công!
+milestones.edit=Chỉnh sửa Milestone
+milestones.edit_subheader=Sử dụng một mô tả tốt hơn cho Milestone do đó mọi người sẽ không nhầm lẫn.
+milestones.cancel=Hủy bỏ
+milestones.modify=Chỉnh sửa Milestone
+milestones.edit_success=Những thay đổi của milestone '%s' đã được lưu thành công!
+milestones.deletion=Xóa Milestone
+milestones.deletion_desc=Xoá milestone này sẽ loại bỏ thông tin của nó ở tất cả các vấn đề có liên quan. Bạn có muốn tiếp tục?
+milestones.deletion_success=Miletone đã được xóa thành công!
+
+wiki=Wiki
+wiki.welcome=Chào mừng đến với Wiki!
+wiki.welcome_desc=Wiki là nơi mà bạn muốn tài liệu hóa dự án của bạn và làm cho nó tốt hơn.
+wiki.create_first_page=Tạo trang đầu tiên
+wiki.page=Trang
+wiki.filter_page=Bộ lọc trang
+wiki.new_page=Tạo trang mới
+wiki.default_commit_message=Viết một lưu ý về bản cập nhật này (tùy chọn).
+wiki.save_page=Lưu trang
+wiki.last_commit_info=%s đã chỉnh sửa trang này %s
+wiki.edit_page_button=Chỉnh sửa
+wiki.new_page_button=Trang mới
+wiki.delete_page_button=Xóa trang
+wiki.delete_page_notice_1=Việc này sẽ xóa trang "%s". Xin vui lòng chắc chắn.
+wiki.page_already_exists=Trang wiki với cùng tên đã tồn tại.
+wiki.pages=Các trang
+wiki.last_updated=Cập Nhật lần cuối %s
+
+settings=Cài đặt
+settings.options=Tuỳ chọn
+settings.collaboration=Người hợp tác
+settings.collaboration.admin=Quản trị
+settings.collaboration.write=Viết
+settings.collaboration.read=Đọc
+settings.collaboration.undefined=Không xác định
+settings.branches=Các nhánh
+settings.branches_bare=Bạn không thể quản lý các nhánh cho kho trống. Hãy đẩy một số nội dung lên trước.
+settings.default_branch=Nhánh mặc định
+settings.default_branch_desc=Chi nhánh mặc định được coi là các chi nhánh "cơ sở" cho commit, yêu cầu pull và chỉnh sửa trực tuyến.
+settings.update=Cập nhật
+settings.update_default_branch_unsupported=Thay đổi nhánh mặc định không hỗ trợ ở phiên bản Git trên máy chủ.
+settings.update_default_branch_success=Nhánh mặc định của kho lưu trữ này đã được cập nhật thành công!
+settings.protected_branches=Nhánh được bảo vệ
+settings.protected_branches_desc=Bảo vệ các nhánh từ force pushing, tình cờ xóa và danh sách trắng mã số committers.
+settings.choose_a_branch=Chọn một nhánh...
+settings.branch_protection=Bảo vệ nhánh
+settings.branch_protection_desc=Xin chọn tùy chọn bảo vệ cho nhánh %s.
+settings.protect_this_branch=Bảo vệ nhánh này
+settings.protect_this_branch_desc=Vô hiệu hóa force push và ngăn chặn việc xóa.
+settings.protect_require_pull_request=Bắc buộc yêu cầu kéo thay vì đẩy trực tiếp
+settings.protect_require_pull_request_desc=Bật tùy chọn này để vô hiệu hoá trực tiếp đẩy để chi nhánh này. Cam kết có thể được đẩy đến một chi nhánh bảo vệ phòng không và sáp nhập để chi nhánh này thông qua kéo yêu cầu.
+settings.protect_whitelist_committers=Whitelist những ai có thể đẩy vào nhánh này
+settings.protect_whitelist_committers_desc=Thêm người hoặc nhóm vào danh sách trắng của trực tiếp đẩy để chi nhánh này. Người dùng trong whitelist sẽ bỏ qua yêu cầu kéo yêu cầu kiểm tra.
+settings.protect_whitelist_users=Những người dùng có thể đẩy đến nhánh này
+settings.protect_whitelist_search_users=Tìm kiếm người dùng
+settings.protect_whitelist_teams=Các đội mà các thành viên của họ có thể đẩy đến chi nhánh này
+settings.protect_whitelist_search_teams=Tìm kiếm nhóm
+settings.update_protect_branch_success=Tùy chọn bảo mật cho nhánh này đã được cập nhật thành công!
+settings.hooks=Webhooks
+settings.githooks=Git Hooks
+settings.basic_settings=Cài đặt cơ bản
+settings.mirror_settings=Thiết lập Mirror
+settings.sync_mirror=Đồng bộ Ngay
+settings.mirror_sync_in_progress=Quá trình đồng bộ Mirror đang trong quá xử lý, hãy làm mới trang trong khoảng một phút.
+settings.site=Trang chính thức
+settings.update_settings=Cập nhật cài đặt
+settings.change_reponame_prompt=Sự thay đổi này sẽ ảnh hưởng đến cách liên kết liên quan đến kho.
+settings.advanced_settings=Cài đặt Nâng cao
+settings.wiki_desc=Kích hoạt hệ thống wiki
+settings.use_internal_wiki=Sử dụng builtin wiki
+settings.allow_public_wiki_desc=Cho phép truy cập công cộng đến wiki khi kho là riêng tư
+settings.use_external_wiki=Sử dụng wiki bên ngoài
+settings.external_wiki_url=URL Wiki bên ngoài
+settings.external_wiki_url_desc=Khách sẽ được chuyển hướng đến URL khi họ click vào tab.
+settings.issues_desc=Kích hoạt theo dõi vấn đề
+settings.use_internal_issue_tracker=Sử dụng builtin lightweight issue tracker
+settings.allow_public_issues_desc=Cho phép truy cập công cộng đến các vấn đề khi kho là riêng tư
+settings.use_external_issue_tracker=Sử dụng công cụ theo dõi vấn đề bên ngoài
+settings.external_tracker_url=URL theo dõi các vấn đề bên ngoài
+settings.external_tracker_url_desc=Khách sẽ được chuyển hướng đến URL khi họ click vào tab.
+settings.tracker_url_format=Định dạng URL theo dõi các vấn đề bên ngoài
+settings.tracker_issue_style=Kiểu Url theo dõi các vấn đề bên ngoài:
+settings.tracker_issue_style.numeric=Kiểu số
+settings.tracker_issue_style.alphanumeric=Chữ số
+settings.tracker_url_format_desc=You can use placeholder {user} {repo} {index} for user name, repository name and issue index.
+settings.pulls_desc=Bật yêu cầu kéo để chấp nhận đóng góp giữa các kho lưu trữ và các nhánh
+settings.pulls.ignore_whitespace=Bỏ qua sự thay đổi của khoảng trắng
+settings.pulls.allow_rebase_merge=Cho phép sử dụng rebase để merge các commit
+settings.danger_zone=Vùng nguy hiểm
+settings.cannot_fork_to_same_owner=Bạn không thể fork một kho khi là chủ sở hữu ban đầu.
+settings.new_owner_has_same_repo=Chủ sở hữu mới đã có một kho lưu trữ với cùng tên. Hãy chọn tên khác.
+settings.convert=Chuyển đổi về Kho thường xuyên
+settings.convert_desc=Bạn có thể chuyển đổi mirror này thành một kho thường xuyên. Điều này không thể đảo ngược.
+settings.convert_notices_1=- Hành động này sẽ chuyển đổi repository mirror này thành một kho thường xuyên và không thể quay ngược lại.
+settings.convert_confirm=Xác nhận chuyển đổi
+settings.convert_succeed=Kho đã được chuyển đổi sang dạng thường xuyên thành công.
+settings.transfer=Chuyển quyền sở hữu
+settings.transfer_desc=Chuyển nhượng kho này đến người dùng khác hoặc cho một tổ chức mà bạn có quyền quản trị.
+settings.transfer_notices_1=-Bạn sẽ mất quyền truy cập nếu chủ sở hữu mới là một người dùng cá nhân.
+settings.transfer_notices_2=-Bạn sẽ tiết kiệm truy cập nếu chủ sở hữu mới là một tổ chức và nếu bạn là một trong các chủ sở hữu.
+settings.transfer_form_title=Vui lòng nhập thông tin sau để xác nhận hoạt động của bạn:
+settings.wiki_delete=Xóa dữ liệu Wiki
+settings.wiki_delete_desc=Một khi bạn xóa dữ liệu wiki nó sẽ không thể khôi phục. Xin vui lòng chắc chắn.
+settings.wiki_delete_notices_1=-Điều này sẽ xóa và vô hiệu hóa wiki cho %s
+settings.wiki_deletion_success=Dữ liệu wiki đã được xóa thành công.
+settings.delete=Xóa kho này
+settings.delete_desc=Khi bạn xoá một kho lưu trữ, nó sẽ không thể khôi phục. Xin vui lòng chắc chắn.
+settings.delete_notices_1=- Hành động này KHÔNG THỂ được hoàn tác.
+settings.delete_notices_2=- Hành động này sẽ xóa vĩnh viễn tất cả mọi thứ trong kho này, bao gồm cả dữ liệu Git, các vấn đề, ý kiến và truy cập cộng tác viên.
+settings.delete_notices_fork_1=-Tất cả forks sẽ trở thành độc lập sau khi xóa.
+settings.deletion_success=Kho lưu trữ đã được xóa thành công!
+settings.update_settings_success=Tùy chọn kho lưu trữ đã được cập nhật thành công.
+settings.transfer_owner=Chủ sở hữu mới
+settings.make_transfer=Thực hiện chuyển giao
+settings.transfer_succeed=Quyền sở hữu kho đã được chuyển thành công.
+settings.confirm_delete=Xác nhận xóa
+settings.add_collaborator=Thêm mới cộng tác viên
+settings.add_collaborator_success=Cộng tác viên mới đã được thêm vào.
+settings.delete_collaborator=Xóa
+settings.collaborator_deletion=Xóa cộng tác viên
+settings.collaborator_deletion_desc=Người dùng này sẽ không có quyền truy cập cộng tác vào kho này sau khi xóa. Bạn có muốn tiếp tục?
+settings.remove_collaborator_success=Cộng tác viên đã được gỡ bỏ.
+settings.search_user_placeholder=Tìm kiếm người dùng...
+settings.org_not_allowed_to_be_collaborator=Tổ chức không được phép được thêm vào như là một cộng tác viên.
+settings.hooks_desc=Webhooks nhiều như cơ bản HTTP bài sự kiện gây nên. Bất cứ khi nào một cái gì đó xảy ra tại Gogs, chúng tôi sẽ xử lý thông báo máy chủ mục tiêu mà bạn chỉ định. Tìm hiểu thêm trong này Webhooks hướng dẫn.
+settings.webhooks.add_new=Thêm webhook mới:
+settings.webhooks.choose_a_type=Chọn kiểu...
+settings.add_webhook=Thêm Webhook
+settings.webhook_deletion=Xóa Webhook
+settings.webhook_deletion_desc=Xóa bỏ điều này webhook sẽ loại bỏ tất cả phân phối lịch sử và thông tin của nó. Bạn có muốn tiếp tục?
+settings.webhook_deletion_success=Webhook đã được xoá thành công!
+settings.webhook.test_delivery=Kiểm tra phân phối
+settings.webhook.test_delivery_desc=Gửi một sự kiện push giả để kiểm tra cài đặt webhook của bạn
+settings.webhook.test_delivery_success=Kiểm tra webhook đã được thêm vào hàng đợi phân phối. Có thể mất vài giây trước khi nó hiện lên trong lịch sử phân phối.
+settings.webhook.redelivery=Phân phối lại
+settings.webhook.redelivery_success=Hook task '%s' has been readded to delivery queue. It may take few seconds to update delivery status in history.
+settings.webhook.request=Yêu cầu
+settings.webhook.response=Phản hồi
+settings.webhook.headers=Tiêu đề
+settings.webhook.payload=Trả phí
+settings.webhook.body=Nội dung
+settings.webhook.err_cannot_parse_payload_url=Không thể phân tích URL: %v
+settings.webhook.url_resolved_to_blocked_local_address=URL khối được giải quyết thành một địa chỉ mạng cục bộ bị chặn hoàn toàn.
+settings.githooks_desc=Git Hooks are powered by Git itself, you can edit files of supported hooks in the list below to perform custom operations.
+settings.githook_edit_desc=If the hook is inactive, sample content will be presented. Leaving content to an empty value will disable this hook.
+settings.githook_name=Tên Hook
+settings.githook_content=Nội dung Hook
+settings.update_githook=Cập nhật Hook
+settings.add_webhook_desc=Gogs sẽ gửi một bài yêu cầu cho URL bạn chỉ định, cùng với các chi tiết liên quan đến các sự kiện xảy ra. Bạn cũng có thể xác định những loại định dạng dữ liệu mà bạn muốn nhận được sau khi kích hoạt các móc (JSON, x-www-form-urlencoded, XML, vv). Thông tin thêm có thể được tìm thấy trong chúng tôi Webhooks hướng dẫn.
+settings.payload_url=Payload URL
+settings.content_type=Loại nội dung
+settings.secret=Bí mật
+settings.secret_desc=Secret will be sent as SHA256 HMAC hex digest of payload via X-Gogs-Signature header.
+settings.slack_username=Username
+settings.slack_icon_url=Icon URL
+settings.slack_color=Màu sắc
+settings.event_desc=Webhook này nên được kích hoạt khi?
+settings.event_push_only=Chỉ các sự kiện đẩy lên.
+settings.event_send_everything=Tôi cần tất cả mọi thứ.
+settings.event_choose=Hãy để tôi chọn những gì tôi cần.
+settings.event_create=Tạo
+settings.event_create_desc=Nhánh hoặc Thẻ đã được tạo
+settings.event_delete=Xóa
+settings.event_delete_desc=Nhánh hoặc thẻ đã được xóa
+settings.event_fork=Fork
+settings.event_fork_desc=Kho đã fork
+settings.event_push=Đẩy
+settings.event_push_desc=Git push đến một kho
+settings.event_issues=Các vấn đề
+settings.event_issues_desc=Vấn đề mở, đóng cửa, mở cửa trở lại, chỉnh sửa, phân công, unassigned, nhãn Cập Nhật, nhãn xóa, milestoned hoặc demilestoned.
+settings.event_pull_request=Yêu cầu khéo về
+settings.event_pull_request_desc=Pull request opened, closed, reopened, edited, assigned, unassigned, label updated, label cleared, milestoned, demilestoned, or synchronized.
+settings.event_issue_comment=Bình luận của vấn đề
+settings.event_issue_comment_desc=Vấn đề bình luận đã tạo, chỉnh sửa hoặc xóa.
+settings.event_release=Phát hành
+settings.event_release_desc=Bản phân phối đã được công khai ở một kho.
+settings.active=Kích hoạt
+settings.active_helper=Thông tin chi tiết về các sự kiện kích hoạt các móc sẽ được gửi như là tốt.
+settings.add_hook_success=Webhook mới đã được thêm vào.
+settings.update_webhook=Cập nhật Webhook
+settings.update_hook_success=Webhook đã được Cập Nhật.
+settings.delete_webhook=Xóa Webhook
+settings.recent_deliveries=Phân phối gần đây
+settings.hook_type=Kiểu Hook
+settings.add_slack_hook_desc=Thêm Slack tích hợp vào kho lưu trữ của bạn.
+settings.add_discord_hook_desc=Thêm Discord tích hợp vào kho lưu trữ của bạn.
+settings.add_dingtalk_hook_desc=Thêm Dingtalk tích hợp vào kho lưu trữ của bạn.
+settings.slack_token=Token
+settings.slack_domain=Tên miền
+settings.slack_channel=Kênh
+settings.deploy_keys=Khóa triển khai
+settings.deploy_keys_helper=Common Gotcha! nếu bạn đang tìm cách thêm khóa cá nhân công cộng, xin vui lòng thêm chúng vào cài đặt tài khoản.
+settings.add_deploy_key=Thêm khóa triển khai
+settings.deploy_key_desc=Triển khai các phím có thể truy cập chỉ đọc. Họ là không giống như các tài khoản cá nhân SSH phím.
+settings.no_deploy_keys=Bạn chưa thêm khóa triển khai nào.
+settings.title=Tiêu đề
+settings.deploy_key_content=Nội dung
+settings.key_been_used=Nội dung khóa triển khai đã được sử dụng.
+settings.key_name_used=Đã tồn tại khóa triển khai cùng tên.
+settings.add_key_success=Bộ nhớ heap đã được phát hành!
+settings.deploy_key_deletion=Xóa Khóa triển khai
+settings.deploy_key_deletion_desc=Xóa bỏ điều này triển khai các phím sẽ loại bỏ tất cả liên quan đến truy cập cho các kho lưu trữ này. Bạn có muốn tiếp tục?
+settings.deploy_key_deletion_success=Deploy key has been deleted successfully!
+settings.description_desc=Mô tả kho. Tối đa 512 ký tự
+settings.description_length=Ký tự cho phép
+
+diff.browse_source=Browse Source
+diff.parent=mục cha
+diff.commit=commit
+diff.data_not_available=Dữ liệu sai khác không khả dụng.
+diff.show_diff_stats=Hiển thị tình trạng sai khác
+diff.show_split_view=Split View
+diff.show_unified_view=View chưa được định nghĩa
+diff.stats_desc= %d tập tin đã thay đổi với %d bổ sung và %d xóa
+diff.bin=BIN
+diff.view_file=Xem Tập Tin
+diff.file_suppressed=Những thai đổi đã bị hủy bỏ vì nó quá lớn
+diff.too_many_files=Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác
+
+release.releases=Phát hành
+release.new_release=Mới ra mắt
+release.draft=Bản thảo
+release.prerelease=Chuẩn bị phát hành
+release.edit=chỉnh sửa
+release.ahead=%d commit đến %s đến phiên bản này
+release.source_code=Mã Nguồn
+release.new_subheader=Phát hành công khai để lặp lại sản phẩm.
+release.edit_subheader=Chi tiết các thay đổi có thể giúp người dùng hiểu những gì đã được cải thiện.
+release.tag_name=Tên thẻ
+release.target=Đích
+release.tag_helper=Chọn thẻ hiện tại hoặc tạo một thẻ mới vào xuất bản.
+release.title=Tiêu đề
+release.content=Nội dung
+release.write=Viết
+release.preview=Xem trước
+release.loading=Đang tải...
+release.prerelease_desc=Đây là bản chuẩn bị phát hành
+release.prerelease_helper=Chúng tôi sẽ chỉ ra rằng bản phát hành này không phải là sản xuất-sẵn sàng.
+release.cancel=Hủy bỏ
+release.publish=Công khai bản phát hành
+release.save_draft=Lưu Bản Thảo
+release.edit_release=Chỉnh sửa bản phát hành
+release.delete_release=Xóa bản phát hành này
+release.deletion=Xóa phát hành
+release.deletion_desc=Xóa bản phát hành này sẽ xóa từ khóa Git tương ứng. Bạn có muốn tiếp tục?
+release.deletion_success=Bản phát hành đã được xóa thành công!
+release.tag_name_already_exist=Phát hành với tên thẻ đã tồn tại.
+release.tag_name_invalid=Tên Tag không hợp lệ.
+release.downloads=Tải xuống
+
+[org]
+org_name_holder=Tên tổ chức
+org_full_name_holder=Tên đầy đủ của tổ chức
+org_name_helper=Tên một tổ chức tốt là ngắn và đáng nhớ.
+create_org=Tạo tổ chức mới
+repo_updated=Đã cập nhật
+people=Mọi người
+invite_someone=Mời một ai đó
+teams=Nhóm
+lower_members=thành viên
+lower_repositories=kho lưu trữ
+create_new_team=Tạo nhóm mới
+org_desc=Mô tả
+team_name=Tên nhóm
+team_desc=Mô tả
+team_name_helper=Bạn sẽ sử dụng tên này đề cập đến nhóm này trong cuộc hội thoại.
+team_desc_helper=Thông tin về nhóm này là gì?
+team_permission_desc=Cấp độ quyền nhóm này có?
+
+form.name_not_allowed=Tên tổ chức %q là không hợp lệ.
+form.team_name_not_allowed=Tên nhóm %q là không hợp lệ
+
+settings=Các cài đặt
+settings.options=Tuỳ chọn
+settings.full_name=Tên đầy đủ
+settings.website=Website
+settings.location=Vị trí
+settings.update_settings=Cập nhật cài đặt
+settings.update_setting_success=Các cài đặt tổ chức đã được cập nhật thành công.
+settings.change_orgname_prompt=Sự thay đổi này sẽ ảnh hưởng đến cách liên kết liên quan đến tổ chức.
+settings.update_avatar_success=Ảnh đại diện của tổ chức đã được cập nhật thành công.
+settings.delete=Xóa tổ chức
+settings.delete_account=Xóa tổ chức này
+settings.delete_prompt=Các tổ chức sẽ bị loại bỏ vĩnh viễn, và KHÔNG THỂ được hoàn tác!
+settings.confirm_delete_account=Xác nhận xóa
+settings.delete_org_title=Xóa tổ chức
+settings.delete_org_desc=Tổ chức này sẽ bị xóa vĩnh viễn, bạn có muốn tiếp tục?
+settings.hooks_desc=Thêm webhooks mà sẽ được kích hoạt cho tất cả kho theo tổ chức này.
+
+members.membership_visibility=Khả năng hiển thị thành viên:
+members.public=Công khai
+members.public_helper=làm cho riêng tư
+members.private=Riêng tư
+members.private_helper=công khai
+members.member_role=Vai trò người dùng:
+members.owner=Chủ sở hữu
+members.member=Thành viên
+members.remove=Loại bỏ
+members.leave=Rời khỏi
+members.invite_desc=Thêm một thành viên vào %s:
+members.invite_now=Mời ngay
+
+teams.join=Tham gia
+teams.leave=Rời khỏi
+teams.read_access=Quyền đọc
+teams.read_access_helper=Nhóm này sẽ có thể xem và nhân bản kho của họ.
+teams.write_access=Quyền viết
+teams.write_access_helper=Nhóm này sẽ có thể đọc kho của họ, cũng như pull đến kho.
+teams.admin_access=Truy cập quản trị
+teams.admin_access_helper=Nhóm này sẽ có thể đẩy/kéo đến kho của họ, cũng như thêm cộng tác viên khác cho họ.
+teams.no_desc=Nhóm này không có mô tả
+teams.settings=Cài đặt
+teams.owners_permission_desc=Chủ sở hữu có thể truy cập vào tất cả kho và quyền admin của tổ chức.
+teams.members=Thành viên nhóm
+teams.update_settings=Cập nhật cài đặt
+teams.delete_team=Xóa nhóm này
+teams.add_team_member=Thêm thành viên
+teams.delete_team_title=Xóa nhóm
+teams.delete_team_desc=Khi đội bóng này sẽ bị xóa, thành viên của đội bóng này có thể mất quyền truy cập đến một số kho. Bạn có muốn tiếp tục?
+teams.delete_team_success=Nhóm đã được xóa thành công.
+teams.read_permission_desc=Các thành viên trong nhóm này được cấp quyền đọc: các thành viên đó có thể xem và sao chép các các kho lưu trữ của nhóm.
+teams.write_permission_desc=Các thành viên trong nhóm này cho phép quyền ghi : thành viên có thể đọc và push vào kho phần mềm của nhóm.
+teams.admin_permission_desc=Các thành viên trong đội ngũ này được cấp quyền truy cập Admin: thành viên có thể đọc, đẩy vào và thêm cộng tác viên cho các kho của nhóm.
+teams.repositories=Kho lưu trữ của nhóm
+teams.search_repo_placeholder=Tìm kho phần mềm...
+teams.add_team_repository=Thêm Kho của nhóm
+teams.remove_repo=Loại bỏ
+teams.add_nonexistent_repo=Kho lưu trữ bạn đang cố gắng để thêm không tồn tại, hãy tạo ra nó đầu tiên.
+
+[admin]
+dashboard=Bảng điều khiển
+users=Người dùng
+organizations=Tổ chức, cơ quan
+repositories=Kho lưu trữ
+authentication=Xác thực
+config=Cấu hình
+notices=Thông báo hệ thống
+monitor=Giám sát
+first_page=Đầu tiên
+last_page=Cuối
+total=Tổng: %d
+
+dashboard.build_info=Build Information
+dashboard.app_ver=Phiên bản phần mềm
+dashboard.git_version=Phiên bản Git
+dashboard.go_version=Phiên bản Go
+dashboard.build_time=Build time
+dashboard.build_commit=Build commit
+dashboard.statistic=Thống kê
+dashboard.operations=Hoạt động
+dashboard.system_status=Tình trạng quản lý hệ thống
+dashboard.statistic_info=Gogs database có %d users, %d organizations, %d public keys, %d repositories, %d watches, %d stars, %d actions, %d accesses, %d issues, %d comments, %d social accounts, %d follows, %d mirrors, %d releases, %d login sources, %d webhooks, %d milestones, %d labels, %d hook tasks, %d teams, %d update tasks, %d attachments.
+dashboard.operation_name=Tên hành động
+dashboard.operation_switch=Chuyển đổi
+dashboard.select_operation_to_run=Vui lòng chọn thao tác để chạy
+dashboard.operation_run=Chạy
+dashboard.clean_unbind_oauth=Clean unbound OAuthes
+dashboard.clean_unbind_oauth_success=Tất cả các unbind OAuthes đã được xóa thành công.
+dashboard.delete_inactivate_accounts=Xóa tất cả các tài khoản không hoạt động
+dashboard.delete_inactivate_accounts_success=Tất cả tài khoản không hoạt động đã bị xóa thành công.
+dashboard.delete_repo_archives=Xóa tất cả kho lưu trữ
+dashboard.delete_repo_archives_success=Tất cả kho lưu trữ đã được xóa thành công.
+dashboard.delete_missing_repos=Xóa tất cả các record kho mà mất các file Git
+dashboard.delete_missing_repos_success=Tất cả các mẫu tin kho mất file Git đã xóa thành công.
+dashboard.git_gc_repos=Làm bộ sưu tập rác trên kho
+dashboard.git_gc_repos_success=Tất cả kho có thực hiện thu gom rác thải thành công.
+dashboard.resync_all_sshkeys=Viết lại các tập tin '.ssh/authorized_keys' (caution: non-Gogs keys will be lost)
+dashboard.resync_all_sshkeys_success=Tất cả các khóa công cộng đã được viết lại thành công.
+dashboard.resync_all_hooks=Resync pre-receive, update and post-receive hooks of all repositories
+dashboard.resync_all_hooks_success=All repositories' pre-receive, update and post-receive hooks have been resynced successfully.
+dashboard.reinit_missing_repos=Reinitialize tất cả các kho mà mất các tập tin Git
+dashboard.reinit_missing_repos_success=Tất cả các hồ sơ kho mất tập tin Git đã được reinitialized thành công.
+
+dashboard.server_uptime=Thời gian phục vụ
+dashboard.current_goroutine=Goroutines hiện tại
+dashboard.current_memory_usage=Tình trạng sử dụng bộ nhớ
+dashboard.total_memory_allocated=Tổng bộ nhớ được cấp phát
+dashboard.memory_obtained=Bộ nhớ thu được
+dashboard.pointer_lookup_times=Số lần Pointer Lookup
+dashboard.memory_allocate_times=Số lần cấp phát bộ nhớ
+dashboard.memory_free_times=Số lần giải phóng bộ nhớ
+dashboard.current_heap_usage=Tình trạng sử dụng heap hiện tại
+dashboard.heap_memory_obtained=Bộ nhớ heap thu được
+dashboard.heap_memory_idle=Bộ nhớ heap idle
+dashboard.heap_memory_in_use=Bộ nhớ heap đang trong sử dụng
+dashboard.heap_memory_released=Đã gải phóng bộ nhớ heap
+dashboard.heap_objects=Đối tượng Heap
+dashboard.bootstrap_stack_usage=Cách sử dụng ngăn xếp bootstrap
+dashboard.stack_memory_obtained=Bộ nhớ stack thu được
+dashboard.mspan_structures_usage=Cách sử dụng cấu trúc MSpan
+dashboard.mspan_structures_obtained=Cấu trúc MSpan thu được
+dashboard.mcache_structures_usage=Cách sử dụng cấu trúc MCache
+dashboard.mcache_structures_obtained=Cấu trúc MCache thu được
+dashboard.profiling_bucket_hash_table_obtained=Profiling Bucket Hash Table Obtained
+dashboard.gc_metadata_obtained=GC Metadata Obtained
+dashboard.other_system_allocation_obtained=Hệ thống phân bổ thu được
+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
+
+users.user_manage_panel=Bảng quản lý người dùng
+users.new_account=Tạo Tài khoản mới
+users.name=Tên
+users.activated=Đã kích hoạt
+users.admin=Quản trị
+users.repos=Kho
+users.created=Đã tạo
+users.send_register_notify=Gửi thông báo đăng ký cho người dùng
+users.new_success=Tài khoản mới '%s' đã được tạo thành công.
+users.edit=Chỉnh sửa
+users.auth_source=Xác thực mã nguồn
+users.local=Cục bộ
+users.auth_login_name=Tên đăng nhập xác thực
+users.password_helper=Để trống nếu không muốn thay đổi.
+users.update_profile_success=Hồ sơ tài khoản đã được cập nhật thành công.
+users.edit_account=Chỉnh sửa tài khoản
+users.max_repo_creation=Giới hạn số kho nhiều nhất có thể tạo
+users.max_repo_creation_desc=(Đặt -1 để sử dụng giới hạn toàn cục)
+users.is_activated=Tài khoản này đã được kích hoạt
+users.prohibit_login=Tài khoản này đã bị cấm đăng nhập
+users.is_admin=Tài khoản này có quyền quản trị
+users.allow_git_hook=Tài khoản này có quyền tạo Git hooks
+users.allow_import_local=Tài khoản này có quyền import kho địa phương
+users.update_profile=Cập nhật thông tin tài khoản
+users.delete_account=Xoá tài khoản này
+users.still_own_repo=Tài khoản này vẫn có quyền sở hữu qua ít nhất một kho lưu trữ, bạn có thể xóa hoặc chuyển chúng trước tiên.
+users.still_has_org=Tài khoản này vẫn còn là thành viên trong ít nhất một tổ chức, bạn phải rời khỏi hoặc xóa các tổ chức trước tiên.
+users.deletion_success=Tài khoản đã bị xoá thành công!
+
+orgs.org_manage_panel=Bảng quản lý tổ chức
+orgs.name=Tên
+orgs.teams=Nhóm
+orgs.members=Thành viên
+
+repos.repo_manage_panel=Bảng quản lý kho lưu trữ
+repos.owner=Chủ sở hữu
+repos.name=Tên
+repos.private=Riêng tư
+repos.watches=Người xem
+repos.stars=Sao
+repos.issues=Các vấn đề
+repos.size=Kích cỡ
+
+auths.auth_sources=Nguồn xác thực
+auths.new=Thêm mới source
+auths.name=Tên
+auths.type=Loại
+auths.enabled=Đã kích hoạt
+auths.default=Mặc định
+auths.updated=Đã cập nhật
+auths.auth_type=Loại xác thực
+auths.auth_name=Tên đăng nhập xác thực
+auths.security_protocol=Phương thức bảo mật
+auths.domain=Tên miền
+auths.host=Host
+auths.port=Cổng
+auths.bind_dn=Bind DN
+auths.bind_dn_helper=Bạn có thể sử dụng '%s' như là placeholder cho tên người dùng, ví dụ: DOM\%s
+auths.bind_password=Ràng buộc mật khẩu
+auths.bind_password_helper=Chú ý: Mật khẩu này được lưu trữ trong văn bản thuần tuý. Không sử dụng một tài khoản đặc quyền cao.
+auths.user_base=Tìm kiếm người dùng cơ bản
+auths.user_dn=Người dùng DN
+auths.attribute_username=Thuộc tính tên đăng nhập
+auths.attribute_username_placeholder=Leave empty to use sign-in form field value for user name.
+auths.attribute_name=Thuộc tính Tên
+auths.attribute_surname=Thuộc tính Tên đầy đủ
+auths.attribute_mail=Thuộc tính email
+auths.verify_group_membership=Xác minh nhóm thành viên
+auths.group_search_base_dn=Nhóm tìm kiếm cơ sở DN
+auths.group_filter=Bộ lọc nhóm
+auths.group_attribute_contain_user_list=Thuộc tính nhóm chứa danh sách người dùng
+auths.user_attribute_listed_in_group=Thuộc tính người dùng được liệt kê trong nhóm
+auths.attributes_in_bind=Lấy các thuộc tính trong bối cảnh ràng buộc DN
+auths.filter=Bộ lọc người dùng
+auths.admin_filter=Admin Filter
+auths.ms_ad_sa=Ms và SA
+auths.smtp_auth=Kiểu xác thực SMTP
+auths.smtphost=SMTP Host
+auths.smtpport=Cổng SMTP
+auths.allowed_domains=Các tên miền cho phép
+auths.allowed_domains_helper=Để trống để không giới hạn bất kỳ tên miền. Nhiều tên miền nên được phân tách bằng dấu phẩy ','.
+auths.enable_tls=Kích hoạt TLS Encryption
+auths.skip_tls_verify=Bỏ qua xác thực TLS
+auths.pam_service_name=Tên dịch vụ PAM
+auths.enable_auto_register=Cho phép tự động đăng ký
+auths.edit=Chỉnh sửa cài đặt xác thực
+auths.activated=Xác thực này đã được kích hoạt
+auths.default_auth=Xác thực này là nguồn đăng nhập mặc định
+auths.new_success=Xác thực mới '%s' đã được thêm vào thành công.
+auths.update_success=Cài đặt xác thực đã được cập nhật thành công.
+auths.update=Cập Nhật cài đặt xác thực
+auths.delete=Xóa Xác thực này
+auths.delete_auth_title=Xóa xác thực
+auths.delete_auth_desc=Xác thực này sẽ bị xóa, bạn có muốn tiếp tục?
+auths.still_in_used=Xác thực này vẫn còn được sử dụng bởi một số người dùng, vui lòng xoá hoặc chuyển đổi những người dùng đến một loại đăng nhập trước tiên.
+auths.deletion_success=Xác thực đã được xóa thành công!
+auths.login_source_exist=Đăng nhập nguồn '%s' đã tồn tại.
+auths.github_api_endpoint=API Endpoint
+
+config.not_set=(chưa đặt)
+config.server_config=Cấu hình server
+config.brand_name=Tên nhánh
+config.run_user=Người dùng đang chạy
+config.run_mode=Chế độ đang chạy
+config.server.external_url=URL bên ngoài
+config.server.domain=Domain
+config.server.protocol=Giao thức
+config.server.http_addr=Địa chỉ HTTP
+config.server.http_port=Cổng HTTP
+config.server.cert_file=Tập tin Chứng thư
+config.server.key_file=Key file
+config.server.tls_min_version=Minimum TLS version
+config.server.unix_socket_permission=Unix socket permission
+config.server.local_root_url=URL gốc nội bộ
+config.server.offline_mode=Chế độ ngoại tuyến
+config.server.disable_router_log=Vô hiệu hóa log định tuyến
+config.server.enable_gzip=Enable Gzip
+config.server.app_data_path=Đường dẫn dữ liệu ứng dụng
+config.server.load_assets_from_disk=Load assets from disk
+config.server.landing_url=URL đích
+
+config.ssh_config=Cấu hình SSH
+config.ssh.enabled=Đã bật
+config.ssh.domain=Tên miền tiếp xúc
+config.ssh.port=Cổng công khai
+config.ssh.root_path=Đường dẫn root
+config.ssh.keygen_path=Đường dẫn keygen
+config.ssh.key_test_path=Đường dẫn kiểm tra chính
+config.ssh.minimum_key_size_check=Kiểm tra kích thước khóa tối thiểu
+config.ssh.minimum_key_sizes=Kích thước khóa tối thiểu
+config.ssh.rewrite_authorized_keys_at_start=Viết lại "authorized_keys" khi bắt đầu
+config.ssh.start_builtin_server=Bắt đầu máy chủ dựng sẵn
+config.ssh.listen_host=Máy chủ lắng nghe
+config.ssh.listen_port=Cổng lắng nghe
+config.ssh.server_ciphers=Mật mã máy chủ
+config.ssh.server_macs=Địa chỉ MACs máy chủ
+config.ssh.server_algorithms=Server algorithms
+
+config.repo_config=Cấu hình kho
+config.repo.root_path=Đường dẫn Root
+config.repo.script_type=Kiểu script
+config.repo.ansi_chatset=Bộ ký tự ANSI
+config.repo.force_private=Bắc buộc riêng tư
+config.repo.max_creation_limit=Giới hạn số lượng tạo
+config.repo.preferred_licenses=Giấy phép ưu tiên
+config.repo.disable_http_git=Vô hiệu hóa HTTP Git
+config.repo.enable_local_path_migration=Kích hoạt di cư đường dẫn địa phương
+config.repo.enable_raw_file_render_mode=Bật chế độ hiển thị tệp thô
+config.repo.commits_fetch_concurrency=Cam kết tìm nạp đồng thời
+config.repo.editor.line_wrap_extensions=Tiện ích mở rộng dòng trình chỉnh sửa
+config.repo.editor.previewable_file_modes=Chế độ tệp có thể xem trước của trình chỉnh sửa
+config.repo.upload.enabled=Tải lên đã được bật
+config.repo.upload.temp_path=Đường dẫn tải lên tạm thời
+config.repo.upload.allowed_types=Các kiểu được phép tải lên
+config.repo.upload.file_max_size=Giới hạn dung lượng tập tin tải lên
+config.repo.upload.max_files=Giới hạn số lượng tập tin tải lên
+
+config.db_config=Cấu hình Cơ sỡ dữ liệu
+config.db.type=Loại
+config.db.host=Host
+config.db.name=Tên
+config.db.schema=Lược đồ
+config.db.schema_helper=(chỉ cho "postgres")
+config.db.user=Người dùng
+config.db.ssl_mode=Chế độ SSL
+config.db.ssl_mode_helper=(chỉ cho "postgres")
+config.db.path=Đường dẫn
+config.db.path_helper=(chỉ cho phép "sqlite3")
+config.db.max_open_conns=Kết nối mở tối đa
+config.db.max_idle_conns=Kết nối không hoạt động tối đa
+
+config.security_config=Cấu hình bảo mật
+config.security.login_remember_days=Số ngày lưu trữ đăng nhập
+config.security.cookie_remember_name=Remember cookie
+config.security.cookie_username=Username cookie
+config.security.cookie_secure=Enable secure cookie
+config.security.reverse_proxy_auth_user=Reverse proxy authentication header
+config.security.enable_login_status_cookie=Enable login status cookie
+config.security.login_status_cookie_name=Login status cookie
+config.security.local_network_allowlist=Local network allowlist
+
+config.email_config=Cấu hình Email
+config.email.enabled=Đã bật
+config.email.subject_prefix=Subject Prefix
+config.email.host=Host
+config.email.from=Từ
+config.email.user=User
+config.email.disable_helo=Vô hiệu hoá HELO
+config.email.helo_hostname=Tên máy chủ HELO
+config.email.skip_verify=Bỏ qua xác thực chứng thư
+config.email.use_certificate=Sử dụng chứng thư tự tạo
+config.email.cert_file=Tập tin Chứng thư
+config.email.key_file=Key file
+config.email.use_plain_text=Dùng text
+config.email.add_plain_text_alt=Thêm text thay thế
+config.email.send_test_mail=Gửi Kiểm Tra Email
+config.email.test_mail_failed=Gửi email kiểm tra đến '%s':%v thất bại
+config.email.test_mail_sent=Email kiểm tra đã được gửi đến '%s'.
+
+config.auth_config=Cấu hình xác thực
+config.auth_custom_logout_url=Custom logout URL
+config.auth.activate_code_lives=Activate code lives
+config.auth.reset_password_code_lives=Reset password code lives
+config.auth.require_email_confirm=Yêu cầu xác nhận email
+config.auth.require_sign_in_view=Yêu cầu đăng nhập để xem
+config.auth.disable_registration=Vô hiệu hóa đăng ký
+config.auth.enable_registration_captcha=Enable registration captcha
+config.auth.enable_reverse_proxy_authentication=Enable reverse proxy authentication
+config.auth.enable_reverse_proxy_auto_registration=Enable reverse proxy auto registration
+config.auth.reverse_proxy_authentication_header=Reverse proxy authentication header
+
+config.user_config=Cấu hình người dùng
+config.user.enable_email_notify=Bật thông báo qua Email
+
+config.session_config=Cấu hình session
+config.session.provider=Nhà cung cấp
+config.session.provider_config=Provider config
+config.session.cookie_name=Cookie
+config.session.https_only=Chỉ HTTPS
+config.session.gc_interval=GC interval
+config.session.max_life_time=Max life time
+config.session.csrf_cookie_name=CSRF cookie
+
+config.cache_config=Cấu hình cache
+config.cache.adapter=Adapter
+config.cache.interval=GC interval
+config.cache.host=Host
+
+config.http_config=Cấu hình HTTP
+config.http.access_control_allow_origin=Access control allow origin
+
+config.attachment_config=Attachment configuration
+config.attachment.enabled=Đã bật
+config.attachment.path=Đường dẫn
+config.attachment.allowed_types=Allowed types
+config.attachment.max_size=Giới hạn kích thước
+config.attachment.max_files=Giới hạn số lượng tệp tin
+
+config.release_config=Release configuration
+config.release.attachment.enabled=Cho phép tệp đính kèm
+config.release.attachment.allowed_types=Loại tệp tin đính kèm
+config.release.attachment.max_size=Giới hạn dung lượng đính kèm
+config.release.attachment.max_files=Giới hạn số lượng tệp đính kèm
+
+config.picture_config=Cấu hình ảnh
+config.picture.avatar_upload_path=Đường dẫn tệp Ảnh đại diện
+config.picture.repo_avatar_upload_path=Đường dẫn tệp Ảnh đại diện kho
+config.picture.gravatar_source=Nguồn Gravatar
+config.picture.disable_gravatar=Vô hiệu hóa Gravatar
+config.picture.enable_federated_avatar=Bật Federated Avatars
+
+config.mirror_config=Mirror configuration
+config.mirror.default_interval=Default interval
+
+config.webhook_config=Cấu hình Webhook
+config.webhook.types=Kiểu
+config.webhook.deliver_timeout=Thời gian chờ phân phối
+config.webhook.skip_tls_verify=Bỏ qua xác thực TLS
+
+config.git_config=Cấu hình Git
+config.git.disable_diff_highlight=Disable diff syntax highlight
+config.git.max_diff_lines=Diff lines limit (for a single file)
+config.git.max_diff_line_characters=Diff characters limit (for a single line)
+config.git.max_diff_files=Diff files limit (for a single diff)
+config.git.gc_args=Các tham số GC
+config.git.migrate_timeout=Thời gian chờ Migration
+config.git.mirror_timeout=Thời gian chờ Mirror fetch
+config.git.clone_timeout=Thời gian chờ Clone
+config.git.pull_timeout=Thời gian chờ kéo
+config.git.gc_timeout=GC timeout
+
+config.lfs_config=Cấu hình LFS
+config.lfs.storage=Storage
+config.lfs.objects_path=Objects path
+
+config.log_config=Cấu hình Log
+config.log_file_root_path=Đường dẫn gốc file Log
+config.log_mode=Chế độ
+config.log_options=Tuỳ chọn
+
+monitor.cron=Cron Tasks
+monitor.name=Tên
+monitor.schedule=Lịch
+monitor.next=Lần tới
+monitor.previous=Lần trước
+monitor.execute_times=Thời gian thực hiện
+monitor.process=Tiến trình đang chạy
+monitor.desc=Mô tả
+monitor.start=Thời gian bắt đầu
+monitor.execute_time=Thời gian thực hiện
+
+notices.system_notice_list=Thông báo hệ thống
+notices.view_detail_header=Xem thông báo chi tiết
+notices.actions=Hành động
+notices.select_all=Chọn tất cả
+notices.deselect_all=Bỏ chọn tất cả
+notices.inverse_selection=Inverse Selection
+notices.delete_selected=Đã xóa mục đã chọn
+notices.delete_all=Xóa tất cả các thông báo
+notices.type=Loại
+notices.type_1=Kho
+notices.desc=Mô tả
+notices.op=Op.
+notices.delete_success=Thông báo hệ thống đã xóa thành công.
+
+[action]
+create_repo=đã tạo kho lưu trữ %s
+rename_repo=đã đổi tên kho %[1]s thành %[3]s
+commit_repo=đã đẩy đến %[3]s tại %[4]s
+compare_commits=Xem so sánh cho các commit %d
+transfer_repo=đã chuyển đổi kho %s%s
+create_issue='vấn đề đã mở %s#%[2]s'
+close_issue='vấn đề đã đóng %s#%[2]s'
+reopen_issue='mở lại vấn đề %s#%[2]s'
+comment_issue='nhận xét về vấn đề %s#%[2]s'
+create_pull_request='tạo yêu cầu pull %s#%[2]s'
+close_pull_request='đóng yêu cầu kéo %s#%[2]s'
+reopen_pull_request='mở lại yêu cầu pull %s#%[2]s'
+merge_pull_request='yêu cầu merged pull %s#%[2]s'
+create_branch=tạo nhánh mới %[3]s tại %[4]s
+delete_branch=xóa chi nhánh %[2]s tại %[3]s
+push_tag=đã đẩy thẻ tag %[2]s đến %[3]s
+delete_tag=đã xóa thẻ tag %[2]s tại %[3]s
+fork_repo=đã fork một kho lưu trữ đến %s
+mirror_sync_push=đồng bộ commits đến %[3]s tại %[4]s từ mirror
+mirror_sync_create=đồng bộ tham chiếu mới %[2]s đến %[3]s từ mirror
+mirror_sync_delete=đồng bộ và xóa tham chiếu %[2]s tại %[3]s từ mirror
+
+[tool]
+ago=cách đây
+from_now=từ bây giờ
+now=bây giờ
+1s=1 giây trước %s
+1m=1 phút trước %s
+1h=1 giờ trước %s
+1d=1 ngày trước %s
+1w=1 tuần trước %s
+1mon=1 tháng trước %s
+1y=1 năm trước %s
+seconds=%d giây trước %s
+minutes=%d phút trước %s
+hours=%d giờ trước %s
+days=%d ngày trước %s
+weeks=%d tuần trước %s
+months=%d tháng trước %s
+years=%d năm trước %s
+raw_seconds=giây
+raw_minutes=phút
+raw_hours=giờ
+
+[dropzone]
+default_message=Thả các tập tin ở đây hoặc bấm vào để tải lên.
+invalid_input_type=Bạn không thể tải lên cho loại file này.
+file_too_big=Kích cỡ file ({{filesize}} MB) vượt quá giới hạn kích cỡ cho phép ({{maxFilesize}} MB).
+remove_file=Xóa tập tin
+
diff --git a/conf/locale/locale_zh-CN.ini b/conf/locale/locale_zh-CN.ini
index 1dca59f96b4..d061aa835ac 100644
--- a/conf/locale/locale_zh-CN.ini
+++ b/conf/locale/locale_zh-CN.ini
@@ -1,15 +1,14 @@
-app_desc=基于 Go 语言的自助 Git 服务
+app_desc=一款极易搭建的自助 Git 服务
home=首页
dashboard=控制面板
-explore=探索
+explore=发现
help=帮助
sign_in=登录
sign_out=退出
sign_up=注册
register=注册
website=官方网站
-version=当前版本
page=页面
template=模板
language=语言选项
@@ -44,23 +43,27 @@ issues=工单管理
cancel=取消
+[status]
+page_not_found=页面未找到
+internal_server_error=内部服务器错误
+
[install]
install=安装页面
title=首次运行安装程序
docker_helper=如果您正在使用 Docker 容器运行 Gogs,请务必先仔细阅读 官方文档 后再对本页面进行填写。
-requite_db_desc=Gogs 要求安装 MySQL、PostgreSQL、SQLite3 或 TiDB。
+requite_db_desc=Gogs 需要使用 MySQL、PostgreSQL、SQLite3 或 TiDB(MySQL 协议)数据库
db_title=数据库设置
db_type=数据库类型
host=数据库主机
user=数据库用户
password=数据库用户密码
db_name=数据库名称
+db_schema=模式
db_helper=如果您使用 MySQL,请使用 INNODB 引擎以及 utf8_general_ci 字符集。
ssl_mode=SSL 模式
path=数据库文件路径
-sqlite_helper=SQLite3 或 TiDB 数据库文件路径。 作为服务启动时,请使用绝对路径。
-err_empty_db_path=SQLite3 或 TiDB 的数据库路径不能为空。
-err_invalid_tidb_name=TiDB 数据库名称不允许包含字符 "." 或 "-" 。
+sqlite_helper=SQLite3 数据库文件路径。 作为服务启动时,请使用绝对路径。
+err_empty_db_path=SQLite 数据库文件路径不能为空。
no_admin_and_disable_registration=您不能够在未创建管理员用户的情况下禁止注册。
err_empty_admin_password=管理员密码不能为空。
@@ -75,12 +78,17 @@ domain=域名
domain_helper=该设置影响 SSH 克隆地址。
ssh_port=SSH 端口号
ssh_port_helper=SSH 服务器的监听端口号,留空表示禁用 SSH 功能。
+use_builtin_ssh_server=使用内置 SSH 服务器
+use_builtin_ssh_server_popup=启动内置 SSH 服务器专门用于 Git 操作可以和系统 SSH 守护程序进行隔离。
http_port=HTTP 端口号
http_port_helper=应用监听的端口号
app_url=应用 URL
app_url_helper=该设置影响 HTTP/HTTPS 克隆地址和一些邮箱中的链接。
log_root_path=日志路径
log_root_path_helper=存放日志文件的目录
+enable_console_mode=启用控制台模式
+enable_console_mode_popup=除了使用文件模式外,还将日志输出到控制台
+default_branch=默认分支
optional_title=可选设置
email_title=邮件服务设置
@@ -104,7 +112,7 @@ enable_captcha=启用验证码服务
enable_captcha_popup=要求在用户注册时输入预验证码
require_sign_in_view=启用登录访问限制
require_sign_in_view_popup=只有已登录的用户才能够访问页面,否则将只能看到登录或注册页面。
-admin_setting_desc=创建管理员帐号并不是必须的,因为 ID=1 的用户将自动获得管理员权限。
+admin_setting_desc=创建管理员帐号并不是必须的,因为用户表中的第一个用户将自动获得管理员权限。
admin_title=管理员帐号设置
admin_name=管理员用户名
admin_password=管理员密码
@@ -116,7 +124,10 @@ sqlite3_not_available=您所使用的发行版不支持 SQLite3,请从 %s 下
invalid_db_setting=数据库设置不正确:%v
invalid_repo_path=仓库根目录设置不正确:%v
run_user_not_match=运行系统用户非当前用户:%s -> %s
+smtp_host_missing_port=SMTP 地址缺少端口号。
+invalid_smtp_from=SMTP From 字段不合法:%v
save_config_failed=应用配置保存失败:%v
+init_failed=初始化应用程序失败:%v
invalid_admin_setting=管理员帐户设置不正确:%v
install_success=您好!我们很高兴您选择使用 Gogs,祝您使用愉快,代码从此无 BUG!
invalid_log_root_path=无效的日志路径:%v
@@ -137,6 +148,7 @@ issues.in_your_repos=属于该用户仓库的
[explore]
repos=仓库
users=用户
+organizations=组织
search=搜索
[auth]
@@ -145,6 +157,8 @@ register_hepler_msg=已经注册?立即登录!
social_register_hepler_msg=已经注册?立即绑定!
disable_register_prompt=对不起,注册功能已被关闭。请联系网站管理员。
disable_register_mail=对不起,注册邮箱确认功能已被关闭。
+auth_source=认证源
+local=本地
remember_me=记住登录
forgot_password=忘记密码
forget_password=忘记密码?
@@ -156,7 +170,6 @@ prohibit_login_desc=您的帐户被禁止登录,请联系网站管理员。
resent_limit_prompt=对不起,您请求发送激活邮件过于频繁,请等待 3 分钟后再试!
has_unconfirmed_mail=%s 您好,系统检测到您有一封发送至 %s 但未被确认的邮件。如果您未收到激活邮件,或需要重新发送,请单击下方的按钮。
resend_mail=单击此处重新发送确认邮件
-email_not_associate=您输入的邮箱地址未被关联到任何帐号!
send_reset_mail=单击此处(重新)发送您的密码重置邮件
reset_password=重置密码
invalid_code=对不起,您的确认代码已过期或已失效。
@@ -164,6 +177,14 @@ reset_password_helper=单击此处重置密码
password_too_short=密码长度不能少于 6 位!
non_local_account=非本地类型的帐户无法通过 Gogs 修改密码。
+login_two_factor=两步验证登录
+login_two_factor_passcode=动态令牌
+login_two_factor_enter_recovery_code=输入两步验证恢复密钥
+login_two_factor_recovery=两步验证恢复登录
+login_two_factor_recovery_code=恢复密钥
+login_two_factor_enter_passcode=输入两步验证动态令牌
+login_two_factor_invalid_recovery_code=恢复密钥已经被使用或是无效的
+
[mail]
activate_account=请激活您的帐户
activate_email=请验证您的邮箱地址
@@ -199,6 +220,7 @@ Content=内容
require_error=不能为空。
alpha_dash_error=必须为英文字母、阿拉伯数字或横线(-_)。
alpha_dash_dot_error=必须为英文字母、阿拉伯数字、横线(-_)或点。
+alpha_dash_dot_slash_error=必须为英文字母、阿拉伯数字、横线(-_)、点或斜线。
size_error=长度必须为 %s。
min_size_error=长度最小为 %s 个字符。
max_size_error=长度最大为 %s 个字符。
@@ -215,6 +237,7 @@ org_name_been_taken=组织名称已经被占用。
team_name_been_taken=团队名称已经被占用。
email_been_used=邮箱地址已经被使用。
username_password_incorrect=用户名或密码不正确。
+auth_source_mismatch=该用户未与所选择的认证源进行关联
enterred_invalid_repo_name=请检查您输入的仓库名称是正确。
enterred_invalid_owner_name=请检查您输入的新所有者用户名是否正确。
enterred_invalid_password=请检查您输入的密码是否正确。
@@ -242,19 +265,18 @@ following=关注中
follow=关注
unfollow=取消关注
-form.name_reserved=用户名 '%s' 是被保留的。
-form.name_pattern_not_allowed=用户名不允许 '%s' 的格式。
+form.name_not_allowed=禁止使用用户名或模式 %q
[settings]
profile=个人信息
password=修改密码
avatar=头像设置
-ssh_keys=管理 SSH 密钥
-social=社交帐号绑定
-applications=管理授权应用
-orgs=管理组织
+ssh_keys=SSH 密钥
+security=帐户安全
+repos=仓库列表
+orgs=组织列表
+applications=授权应用
delete=删除帐户
-uid=用户 ID
public_profile=公开信息
profile_desc=您的邮箱地址将会被公开,并被用于接收帐户的所有提醒和通知。
@@ -295,6 +317,7 @@ delete_email=删除
email_deletion=邮箱删除操作
email_deletion_desc=删除该邮箱地址将会移除所有相关的信息。是否继续?
email_deletion_success=邮箱删除成功!
+email_deletion_primary=无法删除默认邮箱。
add_new_email=添加新的邮箱地址
add_email=添加邮箱
add_email_confirmation_sent=一封待确认的电子邮件已发送到 '%s',请在 %d 小时内检查您的收件箱,并完成确认过程。
@@ -310,7 +333,7 @@ ssh_key_name_used=使用相同名称的公开密钥已经存在!
key_name=密钥名称
key_content=密钥内容
add_key_success=新的 SSH 密钥 '%s' 添加成功!
-delete_key=删除
+delete_key=删除密钥
ssh_key_deletion=删除 SSH 公钥操作
ssh_key_deletion_desc=删除该 SSH 公钥将删除所有与您帐户相关的访问权限。是否继续?
ssh_key_deletion_success=SSH 公钥删除成功!
@@ -320,14 +343,36 @@ no_activity=没有最近活动
key_state_desc=该密钥在 7 天内被使用过
token_state_desc=该令牌在 7 天内被使用过
-manage_social=管理关联社交帐户
-social_desc=以下是与您帐户所关联的社交帐号,如果您发现有陌生的关联,请立即解除绑定!
-unbind=解除绑定
-unbind_success=社交帐号解除绑定成功!
+two_factor=两步验证
+two_factor_status=当前状态:
+two_factor_on=开启
+two_factor_off=关闭
+two_factor_enable=启用两步验证
+two_factor_disable=关闭两步验证
+two_factor_view_recovery_codes=查看并备份 恢复密钥 到一个安全的地方,当您无法使用认证应用时可以使用恢复密钥作为临时令牌。
+two_factor_http=对于 HTTP/HTTPS 操作,您不再能够使用用户名和密码作为凭据。请创建和使用 个人操作令牌 作为您的凭据,如 %[3]s。
+two_factor_enable_title=启用两步验证
+two_factor_scan_qr=请使用您的认证应用扫描以下二维码︰
+two_factor_or_enter_secret=或者直接输入密钥:
+two_factor_then_enter_passcode=然后输入动态令牌:
+two_factor_verify=验证令牌
+two_factor_invalid_passcode=您输入的动态令牌无效,请重试!
+two_factor_reused_passcode=您输入的令牌已经被使用,请等待数秒后尝试新的令牌!
+two_factor_enable_error=启用两步验证失败:%v
+two_factor_enable_success=两步验证登录启用成功!
+two_factor_recovery_codes_title=两步验证恢复密钥
+two_factor_recovery_codes_desc=当您无法使用认证应用时,可以使用恢复密钥作为临时令牌。每个恢复密钥只能被使用一次,请务必将它们保存在一个安全的地方。
+two_factor_regenerate_recovery_codes=重新生成恢复密钥
+two_factor_regenerate_recovery_codes_error=重新生成恢复密钥失败:%v
+two_factor_regenerate_recovery_codes_success=新的恢复密钥生成成功!
+two_factor_disable_title=关闭两步验证
+two_factor_disable_desc=关闭两步验证后,您的帐户安全等级将变低。是否继续?
+two_factor_disable_success=两步验证登录关闭成功!
manage_access_token=管理个人操作令牌
generate_new_token=生成新的令牌
tokens_desc=您可以使用这些已生成的令牌来操作 Gogs API。
+access_token_tips=个人访问令牌可以用作用户名或密码。建议使用 "x-access-token" 作为 Git 应用程序的用户名并使用个人访问令牌作为密码。
new_token_desc=目前为止,任何令牌都对您的帐户拥有完整的操作权限。
token_name=令牌名称
generate_token=生成令牌
@@ -336,6 +381,16 @@ delete_token=删除令牌
access_token_deletion=删除个人操作令牌操作
access_token_deletion_desc=删除该个人操作令牌将删除所有相关的应用程序的访问权限。是否继续?
delete_token_success=个人操作令牌删除成功!请更新与该令牌有关的所有应用。
+token_name_exists=已存在具有相同名称的令牌。
+
+orgs.none=您现在还不是任何组织的成员。
+orgs.leave_title=离开组织
+orgs.leave_desc=离开组织后,组织相关的所有仓库和团队权限将被收回。是否继续?
+
+repos.leave=离开仓库
+repos.leave_title=退出仓库协作
+repos.leave_desc=离开仓库后,相关权限将被收回。是否继续?
+repos.leave_success=您已经成功退出 '%s' 的仓库协作!
delete_account=删除当前帐户
delete_prompt=删除操作会永久清除您的帐户信息,并且 不可恢复!
@@ -348,7 +403,9 @@ owner=拥有者
repo_name=仓库名称
repo_name_helper=伟大的仓库名称一般都较短、令人深刻并且 独一无二 的。
visibility=可见性
+unlisted=列表隐藏
visiblity_helper=该仓库为 私有的
+unlisted_helper=该仓库 不会 在列表视图中展示
visiblity_helper_forced=网站管理员已强制要求所有新建仓库必须为 私有的
visiblity_fork_helper=(修改该值将会影响到所有派生仓库)
clone_helper=不知道如何操作?访问 此处 查看帮助!
@@ -374,24 +431,26 @@ mirror_last_synced=上次同步时间:
watchers=关注者
stargazers=称赞者
forks=派生仓库
+repo_description_helper=请输入仓库描述,最多为 512 个字符
+repo_description_length=剩余字符数
form.reach_limit_of_creation=该用户已经达到允许创建 %d 个仓库的最大上限。
-form.name_reserved=仓库名称 '%s' 是被保留的。
-form.name_pattern_not_allowed=仓库名称不允许 '%s' 的格式。
+form.name_not_allowed=禁止使用仓库名称或模式 %q
need_auth=需要授权验证
migrate_type=迁移类型
migrate_type_helper=该仓库将是一个 镜像
migrate_repo=迁移仓库
migrate.clone_address=克隆地址
-migrate.clone_address_desc=该地址可以是 HTTP/HTTPS/GIT URL 或本地服务器路径。
+migrate.clone_address_desc=该地址可以是 HTTP/HTTPS/GIT 类型的 URL。
+migrate.clone_address_desc_import_local=您被允许使用服务器本地路径作为仓库的远程地址进行迁移。
migrate.permission_denied=您没有获得导入本地仓库的权限。
migrate.invalid_local_path=无效的本地路径,不存在或不是一个目录!
+migrate.clone_address_resolved_to_blocked_local_address=克隆地址被解析到默认禁用的本地网络地址。
migrate.failed=迁移失败:%v
mirror_from=镜像自地址
forked_from=派生自
-fork_from_self=无法派生已经拥有的仓库!
copy_link=复制链接
copy_link_success=复制成功!
copy_link_error=请按下 ⌘-C 或 Ctrl-C 复制
@@ -407,9 +466,9 @@ quick_guide=快速帮助
clone_this_repo=克隆当前仓库
create_new_repo_command=从命令行创建一个新的仓库
push_exist_repo=从命令行推送已经创建的仓库
-repo_is_empty=该仓库不包含任何内容,请稍后再进行访问!
+bare_message=这个家伙很懒,什么都没有推送。
-code=代码
+files=文件
branch=分支
tree=目录树
filter_branch_and_tag=过滤分支或标签
@@ -420,12 +479,23 @@ pulls=合并请求
labels=标签管理
milestones=里程碑
commits=提交历史
+git_branches=代码分支
releases=版本发布
file_raw=原始文件
file_history=文件历史
file_view_raw=查看原始文件
file_permalink=永久链接
file_too_large=文件过大导致无法显示
+video_not_supported_in_browser=您的浏览器不支持使用 HTML5 播放视频。
+
+branches.overview=概况
+branches.active_branches=活跃分支
+branches.stale_branches=陈旧分支
+branches.all=所有分支
+branches.updated_by=由 %[2]s 更新于 %[1]s
+branches.change_default_branch=更改默认分支
+branches.default_deletion_not_allowed=Cannot delete the default branch.
+branches.protected_deletion_not_allowed=Cannot delete a protected branch.
editor.new_file=新的文件
editor.upload_file=上传文件
@@ -455,16 +525,19 @@ editor.cancel=取消
editor.filename_cannot_be_empty=文件名不能为空。
editor.branch_already_exists=此仓库已存在名为 '%s' 的分支。
editor.directory_is_a_file=路径 '%s' 的父路径中包含此仓库已存在的文件名。
+editor.file_is_a_symlink=文件 '%s' 为一个符号链接,无法通过 Web 编辑器编辑内容。
editor.filename_is_a_directory=文件名 '%s' 是此仓库中已存在的目录名。
editor.file_editing_no_longer_exists=您编辑的文件 '%s' 已经不存在于此仓库中。
editor.file_changed_while_editing=文件内容在您进行编辑时已经发生变动。单击此处 查看变动的具体内容,或者 再次提交 覆盖已发生的变动。
editor.file_already_exists=此仓库已经存在名为 '%s' 的文件。
editor.no_changes_to_show=没有可以显示的变更。
editor.fail_to_update_file=更新/创建文件 '%s' 时发生错误:%v
+editor.fail_to_delete_file=删除文件 '%s' 时发生错误: %v
editor.add_subdir=添加子目录...
editor.unable_to_upload_files=上传文件至 '%s' 时发生错误:%v
editor.upload_files_to_dir=上传文件至 '%s'
+commits.commit_history=提交历史
commits.commits=次代码提交
commits.search=搜索提交历史
commits.find=查找
@@ -515,7 +588,7 @@ issues.filter_sort.recentupdate=最近更新
issues.filter_sort.leastupdate=最少更新
issues.filter_sort.mostcomment=最多评论
issues.filter_sort.leastcomment=最少评论
-issues.opened_by=由 %[3]s 与 %[1]s创建
+issues.opened_by=由 %[3]s 于 %[1]s创建
issues.opened_by_fake=由 %[2]s 于 %[1]s创建
issues.previous=上一页
issues.next=下一页
@@ -536,7 +609,7 @@ issues.commit_ref_at=`在代码提交 %[2]s 中
issues.poster=发布者
issues.collaborator=协作者
issues.owner=所有者
-issues.sign_in_require_desc=登陆 并参与到对话中。
+issues.sign_in_require_desc=登录 并参与到对话中。
issues.edit=编辑
issues.cancel=取消
issues.save=保存
@@ -562,6 +635,7 @@ pulls.compare_compare=对比分支
pulls.filter_branch=过滤分支
pulls.no_results=未找到结果
pulls.nothing_to_compare=基准和对比分支代码已经同步,无需进行对比。
+pulls.nothing_merge_base=由于两个分支各自拥有完全不同的提交历史,因此无法进行比较。
pulls.has_pull_request=`已经存在目标分支的合并请求:%[2]s#%[3]d`
pulls.create=创建合并请求
pulls.title_desc=请求将 %[1]d 次代码提交从 %[2]s 合并至 %[3]s
@@ -577,8 +651,13 @@ pulls.is_checking=该合并请求正在进行冲突检查,请稍后再刷新
pulls.can_auto_merge_desc=该合并请求可以进行自动合并操作。
pulls.cannot_auto_merge_desc=该合并请求存在冲突,无法进行自动合并操作。
pulls.cannot_auto_merge_helper=请手动拉取代码变更以解决冲突。
+pulls.create_merge_commit=创建一个新的合并提交
+pulls.rebase_before_merging=合并前先进行衍合
+pulls.commit_description=提交说明
pulls.merge_pull_request=合并请求
pulls.open_unmerged_pull_exists=`由于已经存在来自相同仓库和合并信息的未合并请求(#%d),您无法执行重新开启操作。`
+pulls.delete_branch=删除分支
+pulls.delete_branch_has_new_commits=该分支在完成合并后又推送了新的提交,无法进行删除操作。
milestones.new=新的里程碑
milestones.open_tab=%d 开启中
@@ -627,8 +706,31 @@ settings.options=基本设置
settings.collaboration=管理协作者
settings.collaboration.admin=管理权限
settings.collaboration.write=可写权限
-settings.collaboration.read=可读权限
+settings.collaboration.read=只读权限
settings.collaboration.undefined=未定义
+settings.branches=管理分支
+settings.branches_bare=您无法对空仓库进行分支管理,请先推送一些内容到仓库。
+settings.default_branch=默认分支
+settings.default_branch_desc=默认分支是被用于代码提交、合并请求和在线编辑的基准分支。
+settings.update=更新
+settings.update_default_branch_unsupported=服务器上的 Git 版本不支持修改默认分支。
+settings.update_default_branch_success=仓库默认分支更新成功!
+settings.protected_branches=保护分支
+settings.protected_branches_desc=保护分支不被强制推送、意外删除和限制代码提交白名单。
+settings.choose_a_branch=选择一个分支...
+settings.branch_protection=分支保护
+settings.branch_protection_desc=请选择应用于 %s 分支的保护选项。
+settings.protect_this_branch=启用分支保护
+settings.protect_this_branch_desc=禁止强制推送和删除分支。
+settings.protect_require_pull_request=要求通过合并请求提交代码
+settings.protect_require_pull_request_desc=启用该选项后代码将不能直接被推送到此分支,所有的代码提交都必须通过另一个非保护分支发起合并请求进行合并。
+settings.protect_whitelist_committers=限制可以推送代码的成员
+settings.protect_whitelist_committers_desc=添加用户或团队到可直接推送代码的白名单,列入白名单中的用户将跳过合并请求检查。
+settings.protect_whitelist_users=允许推送到此分支的用户
+settings.protect_whitelist_search_users=搜索用户
+settings.protect_whitelist_teams=允许其成员推送到此分支的团队
+settings.protect_whitelist_search_teams=搜索团队
+settings.update_protect_branch_success=此分支的保护选项更新成功!
settings.hooks=管理 Web 钩子
settings.githooks=管理 Git 钩子
settings.basic_settings=基本设置
@@ -636,24 +738,31 @@ settings.mirror_settings=镜像设置
settings.sync_mirror=立即同步
settings.mirror_sync_in_progress=镜像同步请求已经生效,请稍后刷新页面。
settings.site=官方网站
-settings.update_settings=更新仓库设置
+settings.update_settings=更新设置
settings.change_reponame_prompt=该操作将会影响到所有与该仓库有关的链接
settings.advanced_settings=高级设置
settings.wiki_desc=启用 Wiki 系统
settings.use_internal_wiki=使用内置 Wiki 系统
+settings.allow_public_wiki_desc=当仓库为私有时,允许 Wiki 的公开访问
settings.use_external_wiki=使用外部 Wiki
settings.external_wiki_url=外部 Wiki 链接
settings.external_wiki_url_desc=当访问者单击分页标签时,将会被重定向到该链接。
settings.issues_desc=启用工单管理系统
settings.use_internal_issue_tracker=使用内置的轻量级工单管理系统
+settings.allow_public_issues_desc=当仓库为私有时,允许工单的公开访问
settings.use_external_issue_tracker=使用外部的工单管理系统
+settings.external_tracker_url=外部工单管理系统 URL
+settings.external_tracker_url_desc=当访问者单击分页标签时,将会被重定向到该链接。
settings.tracker_url_format=外部工单管理系统的 URL 格式
settings.tracker_issue_style=外部工单管理系统命名风格:
settings.tracker_issue_style.numeric=纯数字形式
settings.tracker_issue_style.alphanumeric=英文字母数字组合形式
settings.tracker_url_format_desc=您可以使用 {user} {repo} {index} 分别作为用户名、仓库名和工单索引的占位符。
-settings.pulls_desc=启用合并请求以接受社区贡献
+settings.pulls_desc=启用合并请求以接受来自其它仓库或分支的贡献
+settings.pulls.ignore_whitespace=忽略空白符号的更改
+settings.pulls.allow_rebase_merge=允许在合并提交时使用衍合
settings.danger_zone=危险操作区
+settings.cannot_fork_to_same_owner=您不能派生仓库到其当前的所有者。
settings.new_owner_has_same_repo=新的仓库拥有者已经存在同名仓库!
settings.convert=转换为普通仓库
settings.convert_desc=您可以将该镜像仓库转换为普通仓库,且此操作不可逆。
@@ -672,7 +781,7 @@ settings.wiki_deletion_success=仓库 Wiki 数据清除成功!
settings.delete=删除本仓库
settings.delete_desc=删除仓库操作不可逆转,请三思而后行。
settings.delete_notices_1=- 此操作 不可以 被回滚。
-settings.delete_notices_2=- 此操作将永久删除该仓库,包括 Git 数据、 工单、 评论和协作者的操作权限。
+settings.delete_notices_2=- 此操作将永久删除该仓库,包括 Git 数据、工单、评论和协作者的操作权限。
settings.delete_notices_fork_1=- 删除完成后所有的派生仓库都将转换为独立的仓库。
settings.deletion_success=仓库删除成功!
settings.update_settings_success=仓库设置更新成功!
@@ -688,20 +797,25 @@ settings.collaborator_deletion_desc=此用户被删除后将不再拥有相关
settings.remove_collaborator_success=被操作的协作者已经被收回权限!
settings.search_user_placeholder=搜索用户...
settings.org_not_allowed_to_be_collaborator=组织不允许被添加为仓库协作者!
-settings.user_is_org_member=被操作的用户是组织成员,因此无法添加为协作者!
-settings.add_webhook=添加 Web 钩子
settings.hooks_desc=Web 钩子允许您设定在 Gogs 上发生指定事件时对指定 URL 发送 POST 通知。查看 Webhooks 文档 获取更多信息。
+settings.webhooks.add_new=添加新的 Web 钩子:
+settings.webhooks.choose_a_type=选择类型...
+settings.add_webhook=添加 Web 钩子
settings.webhook_deletion=删除 Web 钩子
settings.webhook_deletion_desc=删除该 Web 钩子将会删除与其有关的信息和推送历史。是否继续?
settings.webhook_deletion_success=Web 钩子删除成功!
settings.webhook.test_delivery=测试推送
settings.webhook.test_delivery_desc=生成并推送一个模拟的 Push 事件
settings.webhook.test_delivery_success=测试推送已经加入到队列,请耐心等待数秒再刷新推送记录。
+settings.webhook.redelivery=重新推送
+settings.webhook.redelivery_success=任务 '%s' 已经被重新加入到推送队列,请耐心等待数秒再刷新推送记录。
settings.webhook.request=请求内容
settings.webhook.response=响应内容
settings.webhook.headers=头信息
settings.webhook.payload=推送内容
settings.webhook.body=响应体
+settings.webhook.err_cannot_parse_payload_url=无法解析推送 URL:%v
+settings.webhook.url_resolved_to_blocked_local_address=推送 URL 被解析到默认禁用的本地网络地址。
settings.githooks_desc=Git 钩子是由 Git 本身提供的功能,以下为 Gogs 所支持的钩子列表。
settings.githook_edit_desc=如果钩子未启动,则会显示样例文件中的内容。如果想要删除某个钩子,则提交空白文本即可。
settings.githook_name=钩子名称
@@ -711,19 +825,30 @@ settings.add_webhook_desc=我们会通过 POST 请求将订阅事
settings.payload_url=推送地址
settings.content_type=数据格式
settings.secret=密钥文本
+settings.secret_desc=密钥文本将被用于计算推送内容的 SHA256 HMAC 哈希值,并设置为 X-Gogs-Signature 请求头的值。
settings.slack_username=服务名称
settings.slack_icon_url=图标 URL
settings.slack_color=颜色代码
settings.event_desc=请设置您希望触发 Web 钩子的事件:
settings.event_push_only=只推送 push 事件。
-settings.event_send_everything=请把 一切 都给我
-settings.event_choose=我的命运自己主宰
+settings.event_send_everything=推送 所有 事件
+settings.event_choose=选择指定的事件
settings.event_create=创建
settings.event_create_desc=创建分支或标签
-settings.event_pull_request=合并请求
-settings.event_pull_request_desc=开启、关闭、重新开启、编辑、指派、取消指派、更新标签、清除标签或同步合并请求
+settings.event_delete=删除
+settings.event_delete_desc=删除分支或标签
+settings.event_fork=派生
+settings.event_fork_desc=仓库被派生
settings.event_push=推送
settings.event_push_desc=Git 仓库推送
+settings.event_issues=工单
+settings.event_issues_desc=工单被开启、关闭、重新开启、编辑、指派、取消指派、更新标签、清除标签、设置里程碑或取消设置里程碑
+settings.event_pull_request=合并请求
+settings.event_pull_request_desc=合并请求被开启、关闭、重新开启、编辑、指派、取消指派、更新标签、清除标签、设置里程碑、取消设置里程碑或代码同步
+settings.event_issue_comment=工单评论
+settings.event_issue_comment_desc=工单评论被创建、编辑和删除
+settings.event_release=版本发布
+settings.event_release_desc=仓库发布新的版本
settings.active=是否激活
settings.active_helper=当指定事件发生时我们将会触发此 Web 钩子。
settings.add_hook_success=Web 钩子添加成功!
@@ -733,10 +858,13 @@ settings.delete_webhook=删除 Web 钩子
settings.recent_deliveries=最近推送记录
settings.hook_type=钩子类型
settings.add_slack_hook_desc=为您的仓库增加 Slack 集成。
+settings.add_discord_hook_desc=为您的仓库增加 Discord 集成。
+settings.add_dingtalk_hook_desc=为您的仓库增加 钉钉 集成。
settings.slack_token=令牌
settings.slack_domain=域名
settings.slack_channel=频道
settings.deploy_keys=管理部署密钥
+settings.deploy_keys_helper=常识错误!如果您想要添加的是个人公钥,请将它们添加到您的 用户设置。
settings.add_deploy_key=添加部署密钥
settings.deploy_key_desc=部署密钥仅具有只读权限,它在功能上和个人用户的公开密钥有本质区别。
settings.no_deploy_keys=您还没有添加任何部署密钥。
@@ -748,6 +876,8 @@ settings.add_key_success=新的部署密钥 '%s' 添加成功!
settings.deploy_key_deletion=删除部署密钥
settings.deploy_key_deletion_desc=删除该部署密钥会移除本仓库所以相关的操作权限。是否继续?
settings.deploy_key_deletion_success=删除部署密钥成功!
+settings.description_desc=请输入仓库描述,最多为 512 个字符
+settings.description_length=剩余字符数
diff.browse_source=浏览代码
diff.parent=父节点
@@ -766,7 +896,6 @@ release.releases=版本发布
release.new_release=发布新版
release.draft=草稿
release.prerelease=预发行
-release.stable=稳定
release.edit=编辑
release.ahead=在该版本发布之后已有 %d 次代码提交到 %s 分支
release.source_code=源代码
@@ -813,8 +942,8 @@ team_name_helper=您可以使用该名称来通知该组全体成员。
team_desc_helper=一句话描述这个团队是做什么的。
team_permission_desc=请选择该团队所具有的权限等级:
-form.name_reserved=组织名称 '%s' 是被保留的。
-form.name_pattern_not_allowed=组织名称不允许 '%s' 的格式。
+form.name_not_allowed=禁止使用组织名称或模式 %q
+form.team_name_not_allowed=禁止使用团队名称或模式 %q
settings=组织设置
settings.options=基本设置
@@ -878,7 +1007,7 @@ dashboard=控制面板
users=用户管理
organizations=组织管理
repositories=仓库管理
-authentication=授权认证管理
+authentication=认证源管理
config=应用配置管理
notices=系统提示管理
monitor=应用监控面板
@@ -886,12 +1015,20 @@ first_page=首页
last_page=末页
total=总计:%d
+dashboard.build_info=构建信息
+dashboard.app_ver=应用程序版本
+dashboard.git_version=Git 版本
+dashboard.go_version=Go 版本
+dashboard.build_time=编译时间
+dashboard.build_commit=构建提交
+
dashboard.statistic=应用统计数据
dashboard.operations=管理员操作
dashboard.system_status=系统监视状态
dashboard.statistic_info=Gogs 数据库统计:%d 位用户,%d 个组织,%d 个公钥,%d 个仓库,%d 个仓库关注,%d 个赞,%d 次行为,%d 条权限记录,%d 张工单,%d 次评论,%d 个社交帐号,%d 个用户关注,%d 个镜像,%d 个版本发布,%d 个登录源,%d 个 Web 钩子,%d 个里程碑,%d 个标签,%d 个钩子任务,%d 个团队,%d 个更新任务,%d 个附件。
dashboard.operation_name=操作名称
dashboard.operation_switch=开关
+dashboard.select_operation_to_run=请选择要运行的操作
dashboard.operation_run=执行
dashboard.clean_unbind_oauth=清理未绑定社交帐号
dashboard.clean_unbind_oauth_success=所有未绑定社交数据清除成功!
@@ -905,8 +1042,8 @@ dashboard.git_gc_repos=对仓库进行垃圾回收
dashboard.git_gc_repos_success=所有仓库垃圾回收成功!
dashboard.resync_all_sshkeys=重新生成 '.ssh/authorized_keys' 文件(警告:不是 Gogs 的密钥也会被删除)
dashboard.resync_all_sshkeys_success=所有公钥重新生成成功!
-dashboard.resync_all_update_hooks=重新生成所有仓库的 Update 钩子(用于自定义配置文件被修改)
-dashboard.resync_all_update_hooks_success=所有仓库的 Update 钩子重新生成成功!
+dashboard.resync_all_hooks=重新同步所有仓库的 pre-receive、update 和 post-receive 钩子
+dashboard.resync_all_hooks_success=所有仓库的 pre-receive、update 和 post-receive 钩子重新同步成功!
dashboard.reinit_missing_repos=重新初始化所有丢失 Git 文件的仓库
dashboard.reinit_missing_repos_success=所有丢失 Git 文件的仓库重新初始化成功!
@@ -981,12 +1118,14 @@ repos.private=私有库
repos.watches=关注数
repos.stars=点赞数
repos.issues=工单数
+repos.size=用量
-auths.auth_manage_panel=认证管理面板
+auths.auth_sources=认证源
auths.new=添加新的源
auths.name=认证名称
auths.type=认证类型
auths.enabled=已启用
+auths.default=默认
auths.updated=最后更新时间
auths.auth_type=认证类型
auths.auth_name=认证名称
@@ -995,6 +1134,7 @@ auths.domain=域名
auths.host=主机地址
auths.port=主机端口
auths.bind_dn=绑定 DN
+auths.bind_dn_helper=可以使用 '%s' 作为用户名的占位符,例如:DOM\%s
auths.bind_password=绑定密码
auths.bind_password_helper=警告:该密码将会以明文的形式保存在数据库中。请不要使用拥有高权限的帐户!
auths.user_base=用户搜索基准
@@ -1004,6 +1144,11 @@ auths.attribute_username_placeholder=留空表示使用用户登录时所使用
auths.attribute_name=名字属性
auths.attribute_surname=姓氏属性
auths.attribute_mail=邮箱属性
+auths.verify_group_membership=验证组成员身份
+auths.group_search_base_dn=组搜索基准 DN
+auths.group_filter=组名称过滤
+auths.group_attribute_contain_user_list=包含用户的组属性
+auths.user_attribute_listed_in_group=组内用户属性
auths.attributes_in_bind=从 Bind DN 中拉取属性信息
auths.filter=用户过滤规则
auths.admin_filter=管理员过滤规则
@@ -1017,9 +1162,9 @@ auths.enable_tls=启用 TLS 加密
auths.skip_tls_verify=忽略 TLS 验证
auths.pam_service_name=PAM 服务名称
auths.enable_auto_register=允许授权用户自动注册
-auths.tips=帮助提示
auths.edit=编辑认证设置
auths.activated=该授权认证已经启用
+auths.default_auth=该授权认证将作为默认登录源
auths.new_success=新的授权源 "%s" 添加成功!
auths.update_success=认证设置更新成功!
auths.update=更新认证设置
@@ -1028,107 +1173,189 @@ auths.delete_auth_title=删除认证操作
auths.delete_auth_desc=该认证将被删除。是否继续?
auths.still_in_used=此认证仍旧与一些用户有关联,请先删除或者将这些用户转换为其它登录类型。
auths.deletion_success=授权源删除成功!
+auths.login_source_exist=登录源 '%s' 已存在。
+auths.github_api_endpoint=API 终端
+config.not_set=(未设置)
config.server_config=服务器配置
-config.app_name=应用名称
-config.app_ver=应用版本
-config.app_url=应用 URL
-config.domain=应用域名
-config.offline_mode=离线模式
-config.disable_router_log=关闭路由日志
+config.brand_name=品牌名称
config.run_user=运行用户
config.run_mode=运行模式
-config.repo_root_path=仓库根目录
-config.static_file_root_path=静态文件根目录
-config.log_file_root_path=日志文件根目录
-config.script_type=脚本类型
-config.reverse_auth_user=反向代理认证
+config.server.external_url=外部网址
+config.server.domain=域名
+config.server.protocol=协议
+config.server.http_addr=HTTP 地址
+config.server.http_port=HTTP 端口
+config.server.cert_file=证书文件
+config.server.key_file=密钥文件
+config.server.tls_min_version=最低 TLS 版本
+config.server.unix_socket_permission=Unix 套接字权限
+config.server.local_root_url=本地根网址
+config.server.offline_mode=离线模式
+config.server.disable_router_log=禁用路由器日志
+config.server.enable_gzip=启用 Gzip
+config.server.app_data_path=应用程序数据路径
+config.server.load_assets_from_disk=从磁盘加载素材
+config.server.landing_url=登陆网址
config.ssh_config=SSH 配置
-config.ssh_enabled=启用服务
-config.ssh_start_builtin_server=启用内置服务
-config.ssh_domain=域名
-config.ssh_port=端口
-config.ssh_listen_port=监听端口
-config.ssh_root_path=根目录
-config.ssh_key_test_path=密钥测试路径
-config.ssh_keygen_path=密钥生成器('ssh-keygen')路径
-config.ssh_minimum_key_size_check=密钥最小长度检查
-config.ssh_minimum_key_sizes=密钥最小长度限制
+config.ssh.enabled=启用
+config.ssh.domain=显示域名
+config.ssh.port=显示端口
+config.ssh.root_path=根目录
+config.ssh.keygen_path=Keygen 路径
+config.ssh.key_test_path=密钥测试路径
+config.ssh.minimum_key_size_check=最小密钥长度检查
+config.ssh.minimum_key_sizes=最短秘钥长度
+config.ssh.rewrite_authorized_keys_at_start=在启动时重写 "authorized_keys" 文件
+config.ssh.start_builtin_server=启动内置服务器
+config.ssh.listen_host=监听主机
+config.ssh.listen_port=监听端口
+config.ssh.server_ciphers=服务端加密套件
+config.ssh.server_macs=服务器 MAC 地址
+config.ssh.server_algorithms=服务器算法
+
+config.repo_config=仓库配置
+config.repo.root_path=根目录
+config.repo.script_type=脚本类型
+config.repo.ansi_chatset=ANSI 字符集
+config.repo.force_private=强制设为私有
+config.repo.max_creation_limit=最大创建限制
+config.repo.preferred_licenses=推荐的许可证
+config.repo.disable_http_git=禁用 HTTP Git
+config.repo.enable_local_path_migration=启用本地路径迁移
+config.repo.enable_raw_file_render_mode=启用原始文件渲染模式
+config.repo.commits_fetch_concurrency=代码提交拉取并发量
+config.repo.editor.line_wrap_extensions=编辑器行自动换行扩展
+config.repo.editor.previewable_file_modes=编辑器可预览文件模式
+config.repo.upload.enabled=启用上传
+config.repo.upload.temp_path=上传文件临时路径
+config.repo.upload.allowed_types=允许的上传类型
+config.repo.upload.file_max_size=上传文件大小限制
+config.repo.upload.max_files=上传文件数量限制
config.db_config=数据库配置
-config.db_type=数据库类型
-config.db_host=主机地址
-config.db_name=数据库名称
-config.db_user=连接用户
-config.db_ssl_mode=SSL 模式
-config.db_ssl_mode_helper=(仅限 "postgres" 使用)
-config.db_path=数据库路径
-config.db_path_helper=(用于 "sqlite3" 和 "tidb")
-
-config.service_config=服务配置
-config.register_email_confirm=注册邮件确认
-config.disable_register=关闭注册功能
-config.show_registration_button=显示注册按钮
-config.require_sign_in_view=强制登录浏览
-config.mail_notify=邮件通知提醒
-config.disable_key_size_check=禁用密钥最小长度检查
-config.enable_captcha=启用验证码服务
-config.active_code_lives=激活用户链接有效期
-config.reset_password_code_lives=重置密码链接有效期
+config.db.type=类型
+config.db.host=主机
+config.db.name=名称
+config.db.schema=模式
+config.db.schema_helper=(仅适用 "postgres")
+config.db.user=用户
+config.db.ssl_mode=SSL 模式
+config.db.ssl_mode_helper=(仅限 "postgres" 使用)
+config.db.path=数据库路径
+config.db.path_helper=(仅限 "sqlite3" 使用)
+config.db.max_open_conns=最大打开连接数
+config.db.max_idle_conns=最大空闲连接数
+
+config.security_config=安全配置
+config.security.login_remember_days=记住登录的天数
+config.security.cookie_remember_name=记住登录 Cookie
+config.security.cookie_username=用户名 Cookie
+config.security.cookie_secure=启用安全的 Cookie
+config.security.reverse_proxy_auth_user=反向代理认证 Header
+config.security.enable_login_status_cookie=启用登录状态 Cookie
+config.security.login_status_cookie_name=登录状态 Cookie
+config.security.local_network_allowlist=本地网络白名单
+
+config.email_config=邮件配置
+config.email.enabled=启用
+config.email.subject_prefix=主题前缀
+config.email.host=主机
+config.email.from=来自
+config.email.user=用户
+config.email.disable_helo=禁用 HELO
+config.email.helo_hostname=HELO 主机名
+config.email.skip_verify=忽略证书验证
+config.email.use_certificate=使用自定义证书
+config.email.cert_file=证书文件
+config.email.key_file=密钥文件
+config.email.use_plain_text=使用纯文本
+config.email.add_plain_text_alt=添加纯文本选项
+config.email.send_test_mail=发送测试邮件
+config.email.test_mail_failed=发送测试邮件至 '%s' 时失败:%v
+config.email.test_mail_sent=测试邮件已经发送至 '%s'。
+
+config.auth_config=认证配置
+config.auth_custom_logout_url=Custom logout URL
+config.auth.activate_code_lives=激活用户链接有效期
+config.auth.reset_password_code_lives=重置密码链接有效期
+config.auth.require_email_confirm=注册邮件确认
+config.auth.require_sign_in_view=需要登录后浏览
+config.auth.disable_registration=关闭注册功能
+config.auth.enable_registration_captcha=启用注册验证码
+config.auth.enable_reverse_proxy_authentication=启用反向代理认证
+config.auth.enable_reverse_proxy_auto_registration=启用反向代理自动注册
+config.auth.reverse_proxy_authentication_header=反向代理认证 Header
+
+config.user_config=用户配置
+config.user.enable_email_notify=启用电子邮件通知
-config.webhook_config=Web 钩子配置
-config.queue_length=队列长度
-config.deliver_timeout=推送超时
-config.skip_tls_verify=忽略 TLS 验证
-
-config.mailer_config=邮件配置
-config.mailer_enabled=启用服务
-config.mailer_disable_helo=禁用 HELO 操作
-config.mailer_name=发送者名称
-config.mailer_host=邮件主机地址
-config.mailer_user=发送者帐号
-config.send_test_mail=发送测试邮件
-config.test_mail_failed=发送测试邮件至 '%s' 时失败:%v
-config.test_mail_sent=测试邮件已经发送至 '%s'。
-
-config.oauth_config=社交帐号配置
-config.oauth_enabled=启用服务
+config.session_config=Session 配置
+config.session.provider=提供者
+config.session.provider_config=提供者配置
+config.session.cookie_name=Cookie
+config.session.https_only=仅限 HTTPS
+config.session.gc_interval=GC 间隔
+config.session.max_life_time=最大生命周期
+config.session.csrf_cookie_name=CSRF Cookie
config.cache_config=Cache 配置
-config.cache_adapter=Cache 适配器
-config.cache_interval=Cache 周期
-config.cache_conn=Cache 连接字符串
-
-config.session_config=Session 配置
-config.session_provider=Session 提供者
-config.provider_config=提供者配置
-config.cookie_name=Cookie 名称
-config.enable_set_cookie=启用设置 Cookie
-config.gc_interval_time=GC 周期
-config.session_life_time=Session 生命周期
-config.https_only=仅限 HTTPS
-config.cookie_life_time=Cookie 生命周期
+config.cache.adapter=适配器
+config.cache.interval=GC 间隔
+config.cache.host=主机
+
+config.http_config=HTTP 配置
+config.http.access_control_allow_origin=允许访问来源控制
+
+config.attachment_config=附件配置
+config.attachment.enabled=启用
+config.attachment.path=路径
+config.attachment.allowed_types=允许的类型
+config.attachment.max_size=大小限制
+config.attachment.max_files=文件数量限制
+
+config.release_config=发布配置
+config.release.attachment.enabled=启用附件
+config.release.attachment.allowed_types=允许的附件类型
+config.release.attachment.max_size=附件大小限制
+config.release.attachment.max_files=附件文件数量限制
config.picture_config=图片配置
-config.picture_service=图片服务
-config.disable_gravatar=禁用 Gravatar 头像
-config.enable_federated_avatar=启用 Federated Avatars
+config.picture.avatar_upload_path=用户头像上传路径
+config.picture.repo_avatar_upload_path=仓库头像上传路径
+config.picture.gravatar_source=Gravatar 源
+config.picture.disable_gravatar=禁用 Gravatar 头像
+config.picture.enable_federated_avatar=启用 Federated 头像
+
+config.mirror_config=镜像配置
+config.mirror.default_interval=默认同步间隔
+
+config.webhook_config=Web 钩子配置
+config.webhook.types=类型
+config.webhook.deliver_timeout=推送超时
+config.webhook.skip_tls_verify=忽略 TLS 验证
config.git_config=Git 配置
-config.git_disable_diff_highlight=禁用差异对比语法高亮
-config.git_max_diff_lines=差异对比显示的最大行数(单个文件)
-config.git_max_diff_line_characters=差异对比显示的最大字符数(单行)
-config.git_max_diff_files=差异对比显示的最大文件数
-config.git_gc_args=GC 参数
-config.git_migrate_timeout=迁移操作超时
-config.git_mirror_timeout=镜像更新操作超时
-config.git_clone_timeout=克隆操作超时
-config.git_pull_timeout=拉取操作超时
-config.git_gc_timeout=GC 操作超时
+config.git.disable_diff_highlight=禁用差异对比语法高亮
+config.git.max_diff_lines=差异行限制(单个文件)
+config.git.max_diff_line_characters=差异字符限制(单行)
+config.git.max_diff_files=差异文件数量限制(单次提交)
+config.git.gc_args=GC 参数
+config.git.migrate_timeout=迁移超时
+config.git.mirror_timeout=镜像拉取超时
+config.git.clone_timeout=克隆超时
+config.git.pull_timeout=拉取超时
+config.git.gc_timeout=GC 超时
+
+config.lfs_config=LFS 配置
+config.lfs.storage=存储方式
+config.lfs.objects_path=对象路径
config.log_config=日志配置
-config.log_mode=日志模式
+config.log_file_root_path=日志文件根目录
+config.log_mode=模式
+config.log_options=选项
monitor.cron=Cron 任务
monitor.name=任务名称
@@ -1159,22 +1386,29 @@ notices.delete_success=系统提示删除成功!
create_repo=创建了仓库 %s
rename_repo=重命名仓库 %[1]s 为 %[3]s
commit_repo=推送了 %[3]s 分支的代码到 %[4]s
+compare_commits=对比 %d 次代码提交
+transfer_repo=将仓库 %s 转移至 %s
create_issue=`创建了工单 %s#%[2]s`
close_issue=`关闭了工单 %s#%[2]s`
reopen_issue=`重新开启了工单 %s#%[2]s`
+comment_issue=`评论了工单 %s#%[2]s`
create_pull_request=`创建了合并请求 %s#%[2]s`
close_pull_request=`关闭了合并请求 %s#%[2]s`
reopen_pull_request=`重新开启了合并请求 %s#%[2]s`
-comment_issue=`评论了工单 %s#%[2]s`
merge_pull_request=`合并了合并请求 %s#%[2]s`
-transfer_repo=将仓库 %s 转移至 %s
+create_branch=创建了新的分支 %[3]s 到 %[4]s
+delete_branch=删除了 %[3]s 的分支 %[2]s
push_tag=推送了标签 %[2]s 到 %[3]s
-compare_commits=对比 %d 次代码提交
+delete_tag=删除了 %[3]s 的标签 %[2]s
+fork_repo=派生了仓库 %s
+mirror_sync_push=从镜像同步了 %[3]s 分支的代码到 %[4]s
+mirror_sync_create=从镜像同步了新的引用 %[2]s 到 %[3]s
+mirror_sync_delete=从镜像同步并从 %[3]s 删除了引用 %[2]s
[tool]
ago=之前
from_now=之后
-now=现在
+now=刚刚
1s=1 秒%s
1m=1 分钟%s
1h=1 小时%s
@@ -1191,6 +1425,7 @@ months=%d 月%s
years=%d 年%s
raw_seconds=秒
raw_minutes=分钟
+raw_hours=小时
[dropzone]
default_message=拖曳文件到此处或单击上传
diff --git a/conf/locale/locale_zh-HK.ini b/conf/locale/locale_zh-HK.ini
index bff922f36cc..af5f7616177 100644
--- a/conf/locale/locale_zh-HK.ini
+++ b/conf/locale/locale_zh-HK.ini
@@ -9,7 +9,6 @@ sign_out=登出
sign_up=註冊
register=註冊
website=網站
-version=版本
page=頁面
template=樣板
language=語言
@@ -44,23 +43,27 @@ issues=問題
cancel=取消
+[status]
+page_not_found=Page Not Found
+internal_server_error=Internal Server Error
+
[install]
install=安裝頁面
title=首次安裝步驟
docker_helper=如果您正在使用 Docker 容器運行 Gogs,請務必先仔細閱讀 官方文檔 後再對本頁面進行填寫。
-requite_db_desc=Gogs 要求安裝 MySQL、PostgreSQL、SQLite3 或 TiDB。
+requite_db_desc=Gogs requires MySQL, PostgreSQL, SQLite3 or TiDB (via MySQL protocol).
db_title=數據庫設置
db_type=資料庫類型
host=主機
user=帳號
password=密碼
db_name=資料庫名稱
+db_schema=Schema
db_helper=如果您使用 MySQL,請使用 INNODB 引擎以及 utf8_general_ci 字符集。
ssl_mode=SSL 模式
path=數據庫文件路徑
-sqlite_helper=SQLite3 或 TiDB 資料庫檔案路徑。 作為以服務執行時,請使用絕對路徑。
-err_empty_db_path=SQLite3 或 TiDB 的數據庫路徑不能為空。
-err_invalid_tidb_name=TiDB 數據庫名稱不允許包含字符 "." 或 "-" 。
+sqlite_helper=The file path of SQLite3 database. Please use absolute path when you start as service.
+err_empty_db_path=SQLite3 database path cannot be empty.
no_admin_and_disable_registration=您不能夠在未創建管理員用戶的情況下禁止註冊。
err_empty_admin_password=管理員密碼不能為空。
@@ -75,12 +78,17 @@ domain=域名
domain_helper=該設置影響 SSH 複製地址。
ssh_port=SSH 埠
ssh_port_helper=您的 SSH 服務正在使用此埠號,若要禁用SSH 功能請保持欄位空白。
+use_builtin_ssh_server=Use Builtin SSH Server
+use_builtin_ssh_server_popup=Start builtin SSH server for Git operations to distinguish from system SSH daemon.
http_port=HTTP 端口號
http_port_helper=應用監聽的端口號
app_url=應用程式網址
app_url_helper=該設置影響 HTTP/HTTPS 複製地址和一些郵箱中的連結。
log_root_path=日誌路徑
log_root_path_helper=寫入日誌檔目錄
+enable_console_mode=Enable Console Mode
+enable_console_mode_popup=In addition to file mode, also print logs to console.
+default_branch=Default Branch
optional_title=可選設置
email_title=電子郵件服務設定
@@ -116,7 +124,10 @@ sqlite3_not_available=您所使用的發行版本不支持 SQLite3,請從 %s
invalid_db_setting=數據庫設置不正確:%v
invalid_repo_path=倉庫根目錄設置不正確:%v
run_user_not_match=執行系統用戶非當前用戶:%s -> %s
+smtp_host_missing_port=SMTP Host port missing from address.
+invalid_smtp_from=SMTP From field is invalid: %v
save_config_failed=應用配置保存失敗:%v
+init_failed=Failed to initialize application: %v
invalid_admin_setting=管理員帳戶設置不正確:%v
install_success=您好!我們很高興您選擇使用 Gogs,祝您使用愉快,代碼從此無 BUG!
invalid_log_root_path=日誌根目錄無效: %v
@@ -137,6 +148,7 @@ issues.in_your_repos=屬於該用戶倉庫的
[explore]
repos=探索倉庫
users=用戶
+organizations=Organizations
search=搜索
[auth]
@@ -145,6 +157,8 @@ register_hepler_msg=已經註冊?立即登錄!
social_register_hepler_msg=已經註冊?立即綁定!
disable_register_prompt=對不起,註冊功能已被關閉。請聯系網站管理員。
disable_register_mail=對不起,註冊郵箱確認功能已被關閉。
+auth_source=Authentication Source
+local=Local
remember_me=記住登錄
forgot_password=忘記密碼
forget_password=忘記密碼?
@@ -152,11 +166,10 @@ sign_up_now=還沒帳戶?馬上註冊。
confirmation_mail_sent_prompt=一封新的確認郵件已經被發送至 %s,請檢查您的收件箱並在 %d 小時內完成確認註冊操作。
active_your_account=激活您的帳戶
prohibit_login=Login Prohibited
-prohibit_login_desc=Your account is prohibited to login, please contact site admin.
+prohibit_login_desc=Your account is prohibited from logging in. Please contact the site admin.
resent_limit_prompt=對不起,您請求發送激活郵件過於頻繁,請等待 3 分鐘後再試!
has_unconfirmed_mail=%s 您好,您有一封發送至( %s) 但未被確認的郵件。如果您未收到激活郵件,或需要重新發送,請單擊下方的按鈕。
resend_mail=單擊此處重新發送確認郵件
-email_not_associate=您輸入的郵箱地址未被關聯到任何帳號!
send_reset_mail=單擊此處(重新)發送您的密碼重置郵件
reset_password=重置密碼
invalid_code=對不起,您的確認代碼已過期或已失效。
@@ -164,6 +177,14 @@ reset_password_helper=單擊此處重置密碼
password_too_short=密碼長度不能少於 6 位!
non_local_account=Non-local accounts cannot change passwords through Gogs.
+login_two_factor=Two-factor Authentication
+login_two_factor_passcode=Authentication Passcode
+login_two_factor_enter_recovery_code=Enter a two-factor recovery code
+login_two_factor_recovery=Two-factor Recovery
+login_two_factor_recovery_code=Recovery Code
+login_two_factor_enter_passcode=Enter a two-factor passcode
+login_two_factor_invalid_recovery_code=Recovery code already used or invalid.
+
[mail]
activate_account=請激活您的帳戶
activate_email=請驗證您的郵箱地址
@@ -194,11 +215,12 @@ CommitSummary=Commit summary
CommitMessage=Commit message
CommitChoice=Commit choice
TreeName=File path
-Content=Content
+Content=內容
require_error=不能為空。
alpha_dash_error=必須為英文字母、阿拉伯數字或橫線(-_)。
alpha_dash_dot_error=必須為英文字母、阿拉伯數字、橫線(-_)或點。
+alpha_dash_dot_slash_error=` must be alphanumeric, dash (-_), dot or slash characters.`
size_error=長度必須為 %s。
min_size_error=長度最小為 %s 個字符。
max_size_error=長度最大為 %s 個字符。
@@ -215,6 +237,7 @@ org_name_been_taken=組織名稱已經被佔用。
team_name_been_taken=團隊名稱已經被佔用。
email_been_used=郵箱地址已經被使用。
username_password_incorrect=用戶名或密碼不正確。
+auth_source_mismatch=The authentication source selected is not associated with the user.
enterred_invalid_repo_name=請檢查您輸入的倉庫名稱是正確。
enterred_invalid_owner_name=請檢查您輸入的新所有者用戶名是否正確。
enterred_invalid_password=請檢查您輸入的密碼是否正確。
@@ -236,25 +259,24 @@ change_avatar=Change your avatar
join_on=加入於
repositories=倉庫列表
activity=公開活動
-followers=關註者
+followers=關注者
starred=已讚好
-following=關註中
+following=關注中
follow=關注
unfollow=取消關注
-form.name_reserved=用戶名 '%s' 是被保留的。
-form.name_pattern_not_allowed=用戶名不允許 '%s' 的格式。
+form.name_not_allowed=User name or pattern %q is not allowed.
[settings]
profile=個人信息
password=修改密碼
-avatar=Avatar
+avatar=頭像
ssh_keys=管理 SSH 密鑰
-social=社交帳號綁定
-applications=管理授權應用
+security=安全
+repos=倉庫
orgs=管理組織
+applications=管理授權應用
delete=刪除帳戶
-uid=用戶 ID
public_profile=公開信息
profile_desc=您的郵箱地址將會被公開,並被用於接收帳戶的所有提醒和通知。
@@ -295,6 +317,7 @@ delete_email=刪除
email_deletion=刪除郵箱
email_deletion_desc=刪除該郵箱地址將會移除所有相關的信息。是否繼續?
email_deletion_success=成功刪除郵箱!
+email_deletion_primary=Cannot delete primary email address.
add_new_email=添加新的電子郵件地址
add_email=添加電子郵件
add_email_confirmation_sent=一封待確認的電子郵件已發送到 '%s',請在%d 小時內檢查您的收件箱,並完成確認過程。
@@ -320,14 +343,36 @@ no_activity=沒有最近活動
key_state_desc=該密鑰在 7 天內被使用過
token_state_desc=此token在過去七天內曾經被使用過
-manage_social=管理關聯社交帳戶
-social_desc=以下是與您帳戶所關聯的社交帳號,如果您發現有陌生的關聯,請立即解除綁定!
-unbind=解除綁定
-unbind_success=社交帳號解除綁定成功!
+two_factor=Two-factor Authentication
+two_factor_status=狀態:
+two_factor_on=開啟
+two_factor_off=關閉
+two_factor_enable=啟用
+two_factor_disable=禁用
+two_factor_view_recovery_codes=View and save your recovery codes in a safe place. You can use them as passcode if you lose access to your authentication application.
+two_factor_http=For HTTP/HTTPS operations, you are no longer able to use plain username and password. Please create and use Personal Access Token as your credential, e.g. %[3]s.
+two_factor_enable_title=Enable Two-factor Authentication
+two_factor_scan_qr=Please use your authentication application to scan the image:
+two_factor_or_enter_secret=或者輸入密碼:
+two_factor_then_enter_passcode=然後輸入驗證碼:
+two_factor_verify=驗證
+two_factor_invalid_passcode=The passcode you entered is not valid, please try again!
+two_factor_reused_passcode=The passcode you entered has already been used, please try another one!
+two_factor_enable_error=Enable Two-factor authentication failed: %v
+two_factor_enable_success=Two-factor authentication has enabled for your account successfully!
+two_factor_recovery_codes_title=Two-factor Authentication Recovery Codes
+two_factor_recovery_codes_desc=Recovery codes are used when you temporarily lose access to your authentication application. Each recovery code can only be used once, please keep these codes in a safe place.
+two_factor_regenerate_recovery_codes=Regenerate Recovery Codes
+two_factor_regenerate_recovery_codes_error=Regenerate recovery codes failed: %v
+two_factor_regenerate_recovery_codes_success=New recovery codes has been generated successfully!
+two_factor_disable_title=Disable Two-factor Authentication
+two_factor_disable_desc=Your account security level will decrease after disabled two-factor authentication. Do you want to continue?
+two_factor_disable_success=Two-factor authentication has disabled successfully!
manage_access_token=管理個人操作令牌
generate_new_token=生成新的令牌
tokens_desc=您所產生的token將被用來存取Gogs APIs
+access_token_tips=The personal access token may be used as either username or password. It is recommended to use the "x-access-token" as the username and the personal access token as the password for Git applications.
new_token_desc=目前為止,任何令牌都對您的帳戶擁有完整的操作權限。
token_name=令牌名稱
generate_token=生成令牌
@@ -336,6 +381,16 @@ delete_token=删除令牌
access_token_deletion=刪除個人的連接token
access_token_deletion_desc=刪除此連接token將會刪除與相關應用程式的連結。您想要繼續嗎?
delete_token_success=您的連接token已成功刪除。請記得更新您的應用程式。
+token_name_exists=Token with same name already exists.
+
+orgs.none=You are not a member of any organizations.
+orgs.leave_title=Leave organization
+orgs.leave_desc=You will lose access to all repositories and teams after you left the organization. Do you want to continue?
+
+repos.leave=Leave
+repos.leave_title=Leave repository
+repos.leave_desc=You will lose access to the repository after you left. Do you want to continue?
+repos.leave_success=You have left repository '%s' successfully!
delete_account=刪除當前帳戶
delete_prompt=刪除操作會永久清除您的帳戶信息,並且 不可恢復!
@@ -348,7 +403,9 @@ owner=擁有者
repo_name=倉庫名稱
repo_name_helper=偉大的倉庫名稱一般都較短、令人深刻並且 獨一無二 的。
visibility=可見度
+unlisted=Unlisted
visiblity_helper=該倉庫為 私有的
+unlisted_helper=This repository is Unlisted
visiblity_helper_forced=網站管理員已強制要求所有新建倉庫必須為 私有的
visiblity_fork_helper=(修改該值將會影響到所有派生倉庫)
clone_helper=不知道如何操作?訪問 帮助説明 !
@@ -374,24 +431,26 @@ mirror_last_synced=Last Synced
watchers=關注者
stargazers=稱讚者
forks=派生倉庫
+repo_description_helper=Description of repository. Maximum 512 characters length.
+repo_description_length=Available characters
form.reach_limit_of_creation=擁有者已達到儲存庫最大的新增上限 %d。
-form.name_reserved=倉庫名稱 '%s' 是被保留的。
-form.name_pattern_not_allowed=倉庫名稱不允許 '%s' 的格式。
+form.name_not_allowed=Repository name or pattern %q is not allowed.
need_auth=需要授權驗證
migrate_type=遷移類型
migrate_type_helper=該倉庫將是一個 鏡像
migrate_repo=遷移倉庫
migrate.clone_address=複製地址
-migrate.clone_address_desc=該地址可以是 HTTP/HTTPS/GIT URL 或本地服務器路徑。
+migrate.clone_address_desc=This can be a HTTP/HTTPS/GIT URL.
+migrate.clone_address_desc_import_local=You're also allowed to migrate a repository by local server path.
migrate.permission_denied=您並沒有導入本地倉庫的權限。
migrate.invalid_local_path=無效的本地路徑,該路徑不存在或不是一個目錄!
+migrate.clone_address_resolved_to_blocked_local_address=Clone address resolved to a local network address that is implicitly blocked.
migrate.failed=遷移失敗:%v
mirror_from=镜像来自
forked_from=派生自
-fork_from_self=無法派生已經擁有的倉庫!
copy_link=複製連結
copy_link_success=複製成功!
copy_link_error=請按下 ⌘-C 或 Ctrl-C 複製
@@ -407,9 +466,9 @@ quick_guide=快速幫助
clone_this_repo=複製當前倉庫
create_new_repo_command=從命令行創建一個新的倉庫
push_exist_repo=從命令行推送已經創建的倉庫
-repo_is_empty=這倉庫不包含任何內容,請稍後再訪問!
+bare_message=This repository does not have any content yet.
-code=代碼
+files=Files
branch=分支
tree=目錄樹
filter_branch_and_tag=過濾分支或標籤
@@ -420,12 +479,23 @@ pulls=合併請求
labels=標籤
milestones=里程碑
commits=提交歷史
+git_branches=Branches
releases=版本發佈
file_raw=原始文件
file_history=文件歷史
file_view_raw=查看原始文件
file_permalink=永久連結
file_too_large=This file is too large to be shown
+video_not_supported_in_browser=Your browser doesn't support HTML5 video tag.
+
+branches.overview=Overview
+branches.active_branches=Active Branches
+branches.stale_branches=Stale Branches
+branches.all=All Branches
+branches.updated_by=Updated %[1]s by %[2]s
+branches.change_default_branch=Change Default Branch
+branches.default_deletion_not_allowed=Cannot delete the default branch.
+branches.protected_deletion_not_allowed=Cannot delete a protected branch.
editor.new_file=New file
editor.upload_file=Upload file
@@ -455,16 +525,19 @@ editor.cancel=Cancel
editor.filename_cannot_be_empty=Filename cannot be empty.
editor.branch_already_exists=Branch '%s' already exists in this repository.
editor.directory_is_a_file=Entry '%s' in the parent path is a file not a directory in this repository.
+editor.file_is_a_symlink=The file '%s' is a symlink that cannot be modified from the web editor.
editor.filename_is_a_directory=The filename '%s' is an existing directory in this repository.
editor.file_editing_no_longer_exists=The file '%s' you are editing no longer exists in the repository.
editor.file_changed_while_editing=File content has been changed since you started editing. Click here to see what have been changed or press commit again to overwrite those changes.
editor.file_already_exists=A file with name '%s' already exists in this repository.
editor.no_changes_to_show=There are no changes to show.
editor.fail_to_update_file=Failed to update/create file '%s' with error: %v
+editor.fail_to_delete_file=Failed to delete file '%s' with error: %v
editor.add_subdir=Add subdirectory...
editor.unable_to_upload_files=Failed to upload files to '%s' with error: %v
editor.upload_files_to_dir=Upload files to '%s'
+commits.commit_history=Commit History
commits.commits=次代碼提交
commits.search=搜索提交歷史
commits.find=查找
@@ -491,7 +564,7 @@ issues.new_label=創建標籤
issues.new_label_placeholder=標籤名稱...
issues.create_label=創建標籤
issues.label_templates.title=Load a predefined set of labels
-issues.label_templates.info=There aren’t any labels yet. You can click on the "New Label" button above to create one or use a predefined set below.
+issues.label_templates.info=There aren't any labels yet. You can click on the "New Label" button above to create one or use a predefined set below.
issues.label_templates.helper=Select a label set
issues.label_templates.use=Use this label set
issues.label_templates.fail_to_load_file=Failed to load label template file '%s': %v
@@ -562,6 +635,7 @@ pulls.compare_compare=對比文件變化
pulls.filter_branch=過濾分支
pulls.no_results=未找到結果
pulls.nothing_to_compare=基準和對比分支代碼已經同步,無需進行對比。
+pulls.nothing_merge_base=There is nothing to compare because two branches have completely different history.
pulls.has_pull_request=`已經存在目標分支的合併請求:%[2]s#%[3]d`
pulls.create=創建合併請求
pulls.title_desc=請求將 %[1]d 次代碼提交從 %[2]s 合併至 %[3]s
@@ -577,8 +651,13 @@ pulls.is_checking=該合併請求正在進行衝突檢查,請稍後再刷新
pulls.can_auto_merge_desc=這個拉請求可以自動合併。
pulls.cannot_auto_merge_desc=由於存在衝突,不能自動合併這推送請求。
pulls.cannot_auto_merge_helper=請手動合併來解決衝突。
+pulls.create_merge_commit=Create a merge commit
+pulls.rebase_before_merging=Rebase before merging
+pulls.commit_description=Commit Description
pulls.merge_pull_request=合併請求
pulls.open_unmerged_pull_exists=`由於已經存在來自相同倉庫和合併信息的未合併請求(#%d),您無法執行重新開啟操作。`
+pulls.delete_branch=Delete Branch
+pulls.delete_branch_has_new_commits=Branch cannot be deleted because it has new commits after mergence.
milestones.new=新的里程碑
milestones.open_tab=%d 開啟中
@@ -629,6 +708,29 @@ settings.collaboration.admin=Admin
settings.collaboration.write=Write
settings.collaboration.read=Read
settings.collaboration.undefined=Undefined
+settings.branches=Branches
+settings.branches_bare=You cannot manage branches for bare repository. Please push some content first.
+settings.default_branch=Default Branch
+settings.default_branch_desc=The default branch is considered the "base" branch for code commits, pull requests and online editing.
+settings.update=Update
+settings.update_default_branch_unsupported=Change default branch is not supported by the Git version on server.
+settings.update_default_branch_success=Default branch of this repository has been updated successfully!
+settings.protected_branches=Protected Branches
+settings.protected_branches_desc=Protect branches from force pushing, accidental deletion and whitelist code committers.
+settings.choose_a_branch=Choose a branch...
+settings.branch_protection=Branch Protection
+settings.branch_protection_desc=Please choose protect options for branch %s.
+settings.protect_this_branch=Protect this branch
+settings.protect_this_branch_desc=Disable force pushes and prevent from deletion.
+settings.protect_require_pull_request=Require pull request instead direct pushing
+settings.protect_require_pull_request_desc=Enable this option to disable direct pushing to this branch. Commits have to be pushed to another non-protected branch and merged to this branch through pull request.
+settings.protect_whitelist_committers=Whitelist who can push to this branch
+settings.protect_whitelist_committers_desc=Add people or teams to whitelist of direct push to this branch. Users in whitelist will bypass require pull request check.
+settings.protect_whitelist_users=Users who can push to this branch
+settings.protect_whitelist_search_users=Search users
+settings.protect_whitelist_teams=Teams for which members of them can push to this branch
+settings.protect_whitelist_search_teams=Search teams
+settings.update_protect_branch_success=Protect options for this branch has been updated successfully!
settings.hooks=管理 Web 鉤子
settings.githooks=管理 Git 鉤子
settings.basic_settings=基本設置
@@ -641,19 +743,26 @@ settings.change_reponame_prompt=該操作將會影響到所有與該倉庫有關
settings.advanced_settings=高級設置
settings.wiki_desc=Enable wiki system
settings.use_internal_wiki=Use builtin wiki
+settings.allow_public_wiki_desc=Allow public access to wiki when repository is private
settings.use_external_wiki=使用外部 wiki
settings.external_wiki_url=外部 Wiki 連結
settings.external_wiki_url_desc=當分頁上按一下,訪客將會重新導到 URL。
settings.issues_desc=Enable issue tracker
settings.use_internal_issue_tracker=Use builtin lightweight issue tracker
+settings.allow_public_issues_desc=Allow public access to issues when repository is private
settings.use_external_issue_tracker=使用外部的問題管理系統
+settings.external_tracker_url=External Issue Tracker URL
+settings.external_tracker_url_desc=Visitors will be redirected to URL when they click on the tab.
settings.tracker_url_format=外部問題管理系統的 URL 格式
settings.tracker_issue_style=External Issue Tracker Naming Style:
settings.tracker_issue_style.numeric=Numeric
settings.tracker_issue_style.alphanumeric=Alphanumeric
settings.tracker_url_format_desc=您可以使用 {user} {repo} {index} 分別作為用戶名、倉庫名和問題索引的占位符。
-settings.pulls_desc=啟用合併請求以接受社區貢獻
+settings.pulls_desc=Enable pull requests to accept contributions between repositories and branches
+settings.pulls.ignore_whitespace=Ignore changes in whitespace
+settings.pulls.allow_rebase_merge=Allow use rebase to merge commits
settings.danger_zone=危險操作區
+settings.cannot_fork_to_same_owner=You cannot fork a repository to its original owner.
settings.new_owner_has_same_repo=新的倉庫擁有者已經存在同名倉庫!
settings.convert=轉換為正規倉庫
settings.convert_desc=您可以將此鏡像轉成正規倉庫。此動做不可逆。
@@ -672,7 +781,7 @@ settings.wiki_deletion_success=Repository wiki data have been erased successfull
settings.delete=刪除本倉庫
settings.delete_desc=刪除倉庫操作不可逆轉,請三思而後行。
settings.delete_notices_1=- 此操作 不可以 被回滾。
-settings.delete_notices_2=- 此操作將永久刪除該倉庫,包括 Git 數據、 問題、 評論和協作者的操作權限。
+settings.delete_notices_2=- This operation will permanently delete everything in this repository, including Git data, issues, comments and collaborator access.
settings.delete_notices_fork_1=- All forks will become independent after deletion.
settings.deletion_success=倉庫刪除成功!
settings.update_settings_success=倉庫設置更新成功!
@@ -688,20 +797,25 @@ settings.collaborator_deletion_desc=This user will no longer have collaboration
settings.remove_collaborator_success=被操作的協作者已經被收回權限!
settings.search_user_placeholder=搜索用戶...
settings.org_not_allowed_to_be_collaborator=Organization is not allowed to be added as a collaborator.
-settings.user_is_org_member=被操作的用戶是組織成員,因此無法添加為協作者!
-settings.add_webhook=添加 Web 鉤子
settings.hooks_desc=Web 鉤子允許您設定在 Gogs 上發生指定事件時對指定 URL 發送 POST 通知。查看 Webhooks 文檔 獲取更多信息。
+settings.webhooks.add_new=Add a new webhook:
+settings.webhooks.choose_a_type=Choose a type...
+settings.add_webhook=添加 Web 鉤子
settings.webhook_deletion=刪除 Web 鉤子
settings.webhook_deletion_desc=刪除該 Web 鉤子將會刪除與其有關的信息和推送歷史。是否繼續?
settings.webhook_deletion_success=Web 鉤子刪除成功!
settings.webhook.test_delivery=測試推送
settings.webhook.test_delivery_desc=生成並推送一個模擬的 Push 事件
settings.webhook.test_delivery_success=測試推送已經加入到隊列,請耐心等待數秒再刷新推送記錄。
+settings.webhook.redelivery=Redelivery
+settings.webhook.redelivery_success=Hook task '%s' has been readded to delivery queue. It may take few seconds to update delivery status in history.
settings.webhook.request=請求內容
settings.webhook.response=響應內容
settings.webhook.headers=標題
settings.webhook.payload=推送內容
settings.webhook.body=響應內容
+settings.webhook.err_cannot_parse_payload_url=Cannot parse payload URL: %v
+settings.webhook.url_resolved_to_blocked_local_address=Payload URL resolved to a local network address that is implicitly blocked.
settings.githooks_desc=Git 鉤子是由 Git 本身提供的功能,以下為 Gogs 所支持的鉤子列表。
settings.githook_edit_desc=如果鉤子未啟動,則會顯示樣例文件中的內容。如果想要刪除某個鉤子,則提交空白文本即可。
settings.githook_name=鉤子名稱
@@ -711,6 +825,7 @@ settings.add_webhook_desc=我們會通過 POST 請求將訂閱事
settings.payload_url=推送地址
settings.content_type=數據格式
settings.secret=密鑰文本
+settings.secret_desc=Secret will be sent as SHA256 HMAC hex digest of payload via X-Gogs-Signature header.
settings.slack_username=服務名稱
settings.slack_icon_url=圖標 URL
settings.slack_color=顏色代碼
@@ -720,10 +835,20 @@ settings.event_send_everything=推送 所有 事件
settings.event_choose=讓我選擇我的需要
settings.event_create=創建
settings.event_create_desc=創建分支或標籤
-settings.event_pull_request=Pull Request
-settings.event_pull_request_desc=Pull request opened, closed, reopened, edited, assigned, unassigned, label updated, label cleared, or synchronized.
+settings.event_delete=Delete
+settings.event_delete_desc=Branch or tag deleted
+settings.event_fork=Fork
+settings.event_fork_desc=Repository forked
settings.event_push=推送
settings.event_push_desc=Git 倉庫推送
+settings.event_issues=Issues
+settings.event_issues_desc=Issue opened, closed, reopened, edited, assigned, unassigned, label updated, label cleared, milestoned, or demilestoned.
+settings.event_pull_request=Pull Request
+settings.event_pull_request_desc=Pull request opened, closed, reopened, edited, assigned, unassigned, label updated, label cleared, milestoned, demilestoned, or synchronized.
+settings.event_issue_comment=Issue Comment
+settings.event_issue_comment_desc=Issue comment created, edited, or deleted.
+settings.event_release=Release
+settings.event_release_desc=Release published in a repository.
settings.active=是否激活
settings.active_helper=當指定事件發生時我們將會觸發此 Web 鉤子。
settings.add_hook_success=Web 鉤子添加成功!
@@ -733,10 +858,13 @@ settings.delete_webhook=刪除 Web 鉤子
settings.recent_deliveries=最近推送記錄
settings.hook_type=鉤子類型
settings.add_slack_hook_desc=為您的倉庫增加 Slack 集成。
+settings.add_discord_hook_desc=Add Discord integration to your repository.
+settings.add_dingtalk_hook_desc=Add Dingtalk integration to your repository.
settings.slack_token=令牌
settings.slack_domain=域名
settings.slack_channel=頻道
settings.deploy_keys=管理部署密鑰
+settings.deploy_keys_helper=Common Gotcha! If you're looking for adding personal public keys, please add them in your account settings.
settings.add_deploy_key=添加部署密鑰
settings.deploy_key_desc=部署密鑰僅具有隻讀權限,它在功能上和個人用戶的公開密鑰有本質區別。
settings.no_deploy_keys=您還沒有添加任何部署密鑰。
@@ -748,6 +876,8 @@ settings.add_key_success=新的部署密鑰 '%s' 添加成功!
settings.deploy_key_deletion=刪除部署密鑰
settings.deploy_key_deletion_desc=刪除該部署密鑰會移除本倉庫所有相關的操作權限。是否繼續?
settings.deploy_key_deletion_success=刪除部署密鑰成功!
+settings.description_desc=Description of repository. Maximum 512 characters length.
+settings.description_length=Available characters
diff.browse_source=瀏覽代碼
diff.parent=父節點
@@ -766,7 +896,6 @@ release.releases=版本發佈
release.new_release=發佈新版本
release.draft=草稿
release.prerelease=預發佈版本
-release.stable=穩定
release.edit=編輯
release.ahead=在該版本發佈之後已有 %d 次代碼提交到 %s 分支
release.source_code=源代碼
@@ -813,8 +942,8 @@ team_name_helper=您可以使用該名稱來通知改組全體成員。
team_desc_helper=一句話描述這個團隊是做什麼的。
team_permission_desc=請選擇該團隊所具有的權限等級:
-form.name_reserved=組織名稱 '%s' 是被保留的。
-form.name_pattern_not_allowed=組織名稱不允許 '%s' 的格式。
+form.name_not_allowed=Organization name or pattern %q is not allowed.
+form.team_name_not_allowed=Team name or pattern %q is not allowed.
settings=組織設置
settings.options=基本設置
@@ -886,12 +1015,19 @@ first_page=首頁
last_page=末頁
total=總計:%d
+dashboard.build_info=Build Information
+dashboard.app_ver=Application version
+dashboard.git_version=Git version
+dashboard.go_version=Go version
+dashboard.build_time=Build time
+dashboard.build_commit=Build commit
dashboard.statistic=應用統計數據
dashboard.operations=管理員操作
dashboard.system_status=系統監視狀態
-dashboard.statistic_info=Gogs 數據庫統計:%d 位用戶,%d 個組織,%d 個公鑰,%d 個倉庫,%d 個倉庫關註,%d 個贊,%d 次行為,%d 條權限記錄,%d 個問題,%d 次評論,%d 個社交帳號,%d 個用戶關註,%d 個鏡像,%d 個版本發佈,%d 個登錄源,%d 個 Web 鉤子,%d 個里程碑,%d 個標籤,%d 個鉤子任務,%d 個團隊,%d 個更新任務,%d 個附件。
+dashboard.statistic_info=Gogs 數據庫統計:%d 位用戶,%d 個組織,%d 個公鑰,%d 個倉庫,%d 個倉庫關注,%d 個贊,%d 次行為,%d 條權限記錄,%d 個問題,%d 次評論,%d 個社交帳號,%d 個用戶關注,%d 個鏡像,%d 個版本發佈,%d 個登錄源,%d 個 Web 鉤子,%d 個里程碑,%d 個標籤,%d 個鉤子任務,%d 個團隊,%d 個更新任務,%d 個附件。
dashboard.operation_name=操作名稱
dashboard.operation_switch=開關
+dashboard.select_operation_to_run=Please select operation to run
dashboard.operation_run=執行
dashboard.clean_unbind_oauth=清理未綁定社交帳號
dashboard.clean_unbind_oauth_success=所有未綁定社交數據清除成功!
@@ -905,8 +1041,8 @@ dashboard.git_gc_repos=對倉庫進行垃圾回收
dashboard.git_gc_repos_success=所有倉庫的垃圾回收已成功完成!
dashboard.resync_all_sshkeys=重新生成 '.ssh/authorized_keys' 文件(警告:不是 Gogs 的密鑰也會被刪除)
dashboard.resync_all_sshkeys_success=所有公鑰重新生成成功!
-dashboard.resync_all_update_hooks=重新生成所有倉庫的 Update 鈎子(用於被修改的自定義配置文件)
-dashboard.resync_all_update_hooks_success=已成功重新生成所有倉庫的 Update 鈎子!
+dashboard.resync_all_hooks=Resync pre-receive, update and post-receive hooks of all repositories
+dashboard.resync_all_hooks_success=All repositories' pre-receive, update and post-receive hooks have been resynced successfully.
dashboard.reinit_missing_repos=Reinitialize all repository records that lost Git files
dashboard.reinit_missing_repos_success=All repository records that lost Git files have been reinitialized successfully.
@@ -981,12 +1117,14 @@ repos.private=私有庫
repos.watches=關註數
repos.stars=讚好數
repos.issues=問題數
+repos.size=Size
-auths.auth_manage_panel=認證管理面板
+auths.auth_sources=Authentication Sources
auths.new=添加新認證源
auths.name=認證名稱
auths.type=認證類型
auths.enabled=已啟用
+auths.default=Default
auths.updated=最後更新時間
auths.auth_type=認證類型
auths.auth_name=認證名稱
@@ -995,15 +1133,21 @@ auths.domain=域名
auths.host=主機地址
auths.port=主機端口
auths.bind_dn=綁定DN
+auths.bind_dn_helper=You can use '%s' as placeholder for username, e.g. DOM\%s
auths.bind_password=綁定密碼
auths.bind_password_helper=警告:該密碼將會以明文的形式保存在數據庫中。請不要使用擁有高權限的帳戶!
auths.user_base=用戶搜索基準
auths.user_dn=User DN
auths.attribute_username=用戶名屬性
auths.attribute_username_placeholder=留空表示使用用戶登錄時所使用的用戶名
-auths.attribute_name=名子屬性
+auths.attribute_name=First Name Attribute
auths.attribute_surname=姓氏屬性
auths.attribute_mail=電子郵箱屬性
+auths.verify_group_membership=Verify group membership
+auths.group_search_base_dn=Group Search Base DN
+auths.group_filter=Group Filter
+auths.group_attribute_contain_user_list=Group Attribute Containing List of Users
+auths.user_attribute_listed_in_group=User Attribute Listed in Group
auths.attributes_in_bind=Fetch attributes in Bind DN context
auths.filter=使用者篩選器
auths.admin_filter=管理者篩選器
@@ -1017,9 +1161,9 @@ auths.enable_tls=啟用 TLS 加密
auths.skip_tls_verify=忽略 TLS 驗證
auths.pam_service_name=PAM 服務名稱
auths.enable_auto_register=允許授權用戶自動註冊
-auths.tips=幫助提示
auths.edit=編輯認證設置
auths.activated=該授權認證已經啟用
+auths.default_auth=This authentication is default login source
auths.new_success=新的認證源 "%s" 添加成功!
auths.update_success=認證設置更新成功!
auths.update=更新認證設置
@@ -1028,107 +1172,189 @@ auths.delete_auth_title=刪除認證操作
auths.delete_auth_desc=該認證將被刪除。是否繼續?
auths.still_in_used=This authentication is still used by some users, please delete or convert these users to another login type first.
auths.deletion_success=認證源刪除成功!
+auths.login_source_exist=Login source '%s' already exists.
+auths.github_api_endpoint=API Endpoint
+config.not_set=(not set)
config.server_config=服務器配置
-config.app_name=應用名稱
-config.app_ver=應用版本
-config.app_url=應用 URL
-config.domain=應用域名
-config.offline_mode=離線模式
-config.disable_router_log=關閉路由日志
+config.brand_name=Brand name
config.run_user=執行用戶
config.run_mode=執行模式
-config.repo_root_path=倉庫根目錄
-config.static_file_root_path=靜態文件根目錄
-config.log_file_root_path=日志文件根目錄
-config.script_type=腳本類型
-config.reverse_auth_user=反向代理認證
+config.server.external_url=External URL
+config.server.domain=Domain
+config.server.protocol=Protocol
+config.server.http_addr=HTTP address
+config.server.http_port=HTTP port
+config.server.cert_file=Certificate file
+config.server.key_file=Key file
+config.server.tls_min_version=Minimum TLS version
+config.server.unix_socket_permission=Unix socket permission
+config.server.local_root_url=Local root URL
+config.server.offline_mode=Offline mode
+config.server.disable_router_log=Disable router log
+config.server.enable_gzip=Enable Gzip
+config.server.app_data_path=Application data path
+config.server.load_assets_from_disk=Load assets from disk
+config.server.landing_url=Landing URL
config.ssh_config=SSH 配置
-config.ssh_enabled=已啟用
-config.ssh_start_builtin_server=啟動內建伺服器
-config.ssh_domain=Domain
-config.ssh_port=埠
-config.ssh_listen_port=監聽埠
-config.ssh_root_path=根路徑
-config.ssh_key_test_path=金鑰測試路徑
-config.ssh_keygen_path=金鑰產生 (' ssh-keygen ') 路徑
-config.ssh_minimum_key_size_check=金鑰最小大小檢查
-config.ssh_minimum_key_sizes=金鑰最小大小
+config.ssh.enabled=Enabled
+config.ssh.domain=Exposed domain
+config.ssh.port=Exposed port
+config.ssh.root_path=Root path
+config.ssh.keygen_path=Keygen path
+config.ssh.key_test_path=Key test path
+config.ssh.minimum_key_size_check=Minimum key size check
+config.ssh.minimum_key_sizes=Minimum key sizes
+config.ssh.rewrite_authorized_keys_at_start=Rewrite "authorized_keys" at start
+config.ssh.start_builtin_server=Start builtin server
+config.ssh.listen_host=Listen host
+config.ssh.listen_port=Listen port
+config.ssh.server_ciphers=Server ciphers
+config.ssh.server_macs=Server MACs
+config.ssh.server_algorithms=Server algorithms
+
+config.repo_config=Repository configuration
+config.repo.root_path=Root path
+config.repo.script_type=Script type
+config.repo.ansi_chatset=ANSI charset
+config.repo.force_private=Force private
+config.repo.max_creation_limit=Max creation limit
+config.repo.preferred_licenses=Preferred licenses
+config.repo.disable_http_git=Disable HTTP Git
+config.repo.enable_local_path_migration=Enable local path migration
+config.repo.enable_raw_file_render_mode=Enable raw file render mode
+config.repo.commits_fetch_concurrency=Commits fetch concurrency
+config.repo.editor.line_wrap_extensions=Editor line wrap extensions
+config.repo.editor.previewable_file_modes=Editor previewable file modes
+config.repo.upload.enabled=Upload enabled
+config.repo.upload.temp_path=Upload temporary path
+config.repo.upload.allowed_types=Upload allowed types
+config.repo.upload.file_max_size=Upload file size limit
+config.repo.upload.max_files=Upload files limit
config.db_config=數據庫配置
-config.db_type=數據庫類型
-config.db_host=主機地址
-config.db_name=數據庫名稱
-config.db_user=數據庫用戶
-config.db_ssl_mode=SSL 模式
-config.db_ssl_mode_helper=(僅限 "postgres" 使用)
-config.db_path=數據庫路徑
-config.db_path_helper=(用於 "sqlite3" 和 "tidb")
-
-config.service_config=服務配置
-config.register_email_confirm=註冊電子郵件確認
-config.disable_register=關閉註冊功能
-config.show_registration_button=顯示註冊按鈕
-config.require_sign_in_view=強制登錄瀏覽
-config.mail_notify=郵件通知提醒
-config.disable_key_size_check=禁用密鑰最小長度檢查
-config.enable_captcha=啟用驗證碼服務
-config.active_code_lives=激活用戶連結有效期
-config.reset_password_code_lives=重置密碼連結有效期
+config.db.type=Type
+config.db.host=Host
+config.db.name=Name
+config.db.schema=Schema
+config.db.schema_helper=(for "postgres" only)
+config.db.user=User
+config.db.ssl_mode=SSL mode
+config.db.ssl_mode_helper=(for "postgres" only)
+config.db.path=Path
+config.db.path_helper=(for "sqlite3"only)
+config.db.max_open_conns=Maximum open connections
+config.db.max_idle_conns=Maximum idle connections
+
+config.security_config=Security configuration
+config.security.login_remember_days=Login remember days
+config.security.cookie_remember_name=Remember cookie
+config.security.cookie_username=Username cookie
+config.security.cookie_secure=Enable secure cookie
+config.security.reverse_proxy_auth_user=Reverse proxy authentication header
+config.security.enable_login_status_cookie=Enable login status cookie
+config.security.login_status_cookie_name=Login status cookie
+config.security.local_network_allowlist=Local network allowlist
+
+config.email_config=Email configuration
+config.email.enabled=Enabled
+config.email.subject_prefix=Subject prefix
+config.email.host=Host
+config.email.from=From
+config.email.user=User
+config.email.disable_helo=Disable HELO
+config.email.helo_hostname=HELO hostname
+config.email.skip_verify=Skip certificate verify
+config.email.use_certificate=Use custom certificate
+config.email.cert_file=Certificate file
+config.email.key_file=Key file
+config.email.use_plain_text=Use plain text
+config.email.add_plain_text_alt=Add plain text alternative
+config.email.send_test_mail=Send test email
+config.email.test_mail_failed=Failed to send test email to '%s': %v
+config.email.test_mail_sent=Test email has been sent to '%s'.
+
+config.auth_config=Authentication configuration
+config.auth_custom_logout_url=Custom logout URL
+config.auth.activate_code_lives=Activate code lives
+config.auth.reset_password_code_lives=Reset password code lives
+config.auth.require_email_confirm=Require email confirmation
+config.auth.require_sign_in_view=Require sign in view
+config.auth.disable_registration=Disable registration
+config.auth.enable_registration_captcha=Enable registration captcha
+config.auth.enable_reverse_proxy_authentication=Enable reverse proxy authentication
+config.auth.enable_reverse_proxy_auto_registration=Enable reverse proxy auto registration
+config.auth.reverse_proxy_authentication_header=Reverse proxy authentication header
+
+config.user_config=User configuration
+config.user.enable_email_notify=Enable email notification
-config.webhook_config=Web 鉤子配置
-config.queue_length=隊列長度
-config.deliver_timeout=推送超時
-config.skip_tls_verify=忽略 TLS 驗證
-
-config.mailer_config=郵件配置
-config.mailer_enabled=啟用服務
-config.mailer_disable_helo=禁用 HELO 操作
-config.mailer_name=發送者名稱
-config.mailer_host=郵件主機地址
-config.mailer_user=發送者帳號
-config.send_test_mail=發送測試郵件
-config.test_mail_failed=無法向 '%s' 發送測試郵件: %v
-config.test_mail_sent=測試電子郵件已發送到 '%s'。
-
-config.oauth_config=社交帳號配置
-config.oauth_enabled=啟用服務
+config.session_config=Session 配置
+config.session.provider=Provider
+config.session.provider_config=Provider config
+config.session.cookie_name=Cookie
+config.session.https_only=HTTPS only
+config.session.gc_interval=GC interval
+config.session.max_life_time=Max life time
+config.session.csrf_cookie_name=CSRF cookie
config.cache_config=Cache 配置
-config.cache_adapter=Cache 適配器
-config.cache_interval=Cache 周期
-config.cache_conn=Cache 連接字符串
-
-config.session_config=Session 配置
-config.session_provider=Session 提供者
-config.provider_config=提供者配置
-config.cookie_name=Cookie 名稱
-config.enable_set_cookie=啟用設置 Cookie
-config.gc_interval_time=垃圾收集周期
-config.session_life_time=Session 生命周期
-config.https_only=僅限 HTTPS
-config.cookie_life_time=Cookie 生命周期
+config.cache.adapter=Adapter
+config.cache.interval=GC interval
+config.cache.host=Host
+
+config.http_config=HTTP configuration
+config.http.access_control_allow_origin=Access control allow origin
+
+config.attachment_config=Attachment configuration
+config.attachment.enabled=Enabled
+config.attachment.path=Path
+config.attachment.allowed_types=Allowed types
+config.attachment.max_size=Size limit
+config.attachment.max_files=Files limit
+
+config.release_config=Release configuration
+config.release.attachment.enabled=Attachment enabled
+config.release.attachment.allowed_types=Attachment allowed types
+config.release.attachment.max_size=Attachment size limit
+config.release.attachment.max_files=Attachment files limit
config.picture_config=圖片配置
-config.picture_service=圖片服務
-config.disable_gravatar=禁用 Gravatar 頭像
-config.enable_federated_avatar=Enable Federated Avatars
-
-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
+config.picture.avatar_upload_path=User avatar upload path
+config.picture.repo_avatar_upload_path=Repository avatar upload path
+config.picture.gravatar_source=Gravatar source
+config.picture.disable_gravatar=Disable Gravatar
+config.picture.enable_federated_avatar=Enable federated avatars
+
+config.mirror_config=Mirror configuration
+config.mirror.default_interval=Default interval
+
+config.webhook_config=Web 鉤子配置
+config.webhook.types=Types
+config.webhook.deliver_timeout=Deliver timeout
+config.webhook.skip_tls_verify=Skip TLS verify
+
+config.git_config=Git configuration
+config.git.disable_diff_highlight=Disable diff syntax highlight
+config.git.max_diff_lines=Diff lines limit (for a single file)
+config.git.max_diff_line_characters=Diff characters limit (for a single line)
+config.git.max_diff_files=Diff files limit (for a single diff)
+config.git.gc_args=GC arguments
+config.git.migrate_timeout=Migration timeout
+config.git.mirror_timeout=Mirror fetch timeout
+config.git.clone_timeout=Clone timeout
+config.git.pull_timeout=Pull timeout
+config.git.gc_timeout=GC timeout
+
+config.lfs_config=LFS configuration
+config.lfs.storage=Storage
+config.lfs.objects_path=Objects path
config.log_config=日誌配置
-config.log_mode=日誌模式
+config.log_file_root_path=日志文件根目錄
+config.log_mode=Mode
+config.log_options=Options
monitor.cron=Cron 任務
monitor.name=任務名稱
@@ -1159,17 +1385,24 @@ notices.delete_success=系統提示刪除成功!
create_repo=創建了儲存庫 %s
rename_repo=重新命名倉庫 %[1]s 為 %[3]s
commit_repo=推送了 %[3]s 分支的代碼到 %[4]s
+compare_commits=查看 %d 次提交的內容比對
+transfer_repo=將儲存庫 %s 轉移至 %s
create_issue=`創建了問題 %s#%[2]s`
close_issue=`closed issue %s#%[2]s`
reopen_issue=`reopened issue %s#%[2]s`
+comment_issue=`評論了問題 %s#%[2]s`
create_pull_request=`創建了合併請求 %s#%[2]s`
close_pull_request=`closed pull request %s#%[2]s`
reopen_pull_request=`reopened pull request %s#%[2]s`
-comment_issue=`評論了問題 %s#%[2]s`
merge_pull_request=`合併了合併請求 %s#%[2]s`
-transfer_repo=將儲存庫 %s 轉移至 %s
+create_branch=created new branch %[3]s at %[4]s
+delete_branch=deleted branch %[2]s at %[3]s
push_tag=推送了標籤 %[2]s 到 %[3]s
-compare_commits=查看 %d 次提交的內容比對
+delete_tag=deleted tag %[2]s at %[3]s
+fork_repo=forked a repository to %s
+mirror_sync_push=synced commits to %[3]s at %[4]s from mirror
+mirror_sync_create=synced new reference %[2]s to %[3]s from mirror
+mirror_sync_delete=synced and deleted reference %[2]s at %[3]s from mirror
[tool]
ago=之前
@@ -1191,6 +1424,7 @@ months=%d 月%s
years=%d 年%s
raw_seconds=秒
raw_minutes=分鐘
+raw_hours=hours
[dropzone]
default_message=拖曳文件到此處或單擊上傳
diff --git a/conf/locale/locale_zh-TW.ini b/conf/locale/locale_zh-TW.ini
index f8e2a19c1d9..04d661a360f 100644
--- a/conf/locale/locale_zh-TW.ini
+++ b/conf/locale/locale_zh-TW.ini
@@ -1,7 +1,7 @@
-app_desc=基於 Go 語言的自助 Git 服務
+app_desc=一款極易搭建的自助 Git 服務
home=首頁
-dashboard=控制面版
+dashboard=控制面板
explore=探索
help=說明
sign_in=登入
@@ -9,7 +9,6 @@ sign_out=登出
sign_up=註冊
register=註冊
website=網站
-version=版本
page=頁面
template=樣板
language=語言
@@ -35,7 +34,7 @@ manage_org=管理組織
admin_panel=管理面板
account_settings=帳號設定
settings=設定
-your_profile=個人資料
+your_profile=個人資訊
your_settings=用戶設定
activities=活動
@@ -44,23 +43,27 @@ issues=問題
cancel=取消
+[status]
+page_not_found=找不到頁面
+internal_server_error=內部伺服器錯誤
+
[install]
install=安裝頁面
title=首次安裝步驟
docker_helper=如果您正在使用 Docker 容器運行 Gogs,請務必先仔細閱讀 官方文檔 後再對本頁面進行填寫。
-requite_db_desc=Gogs 要求安裝 MySQL、PostgreSQL、SQLite3 或 TiDB。
-db_title=數據庫設置
+requite_db_desc=Gogs requires MySQL, PostgreSQL, SQLite3 or TiDB (via MySQL protocol).
+db_title=資料庫設定
db_type=資料庫類型
host=主機
user=帳號
password=密碼
db_name=資料庫名稱
+db_schema=Schema
db_helper=如果您使用 MySQL,請使用 INNODB 引擎以及 utf8_general_ci 字符集。
ssl_mode=SSL 模式
-path=數據庫文件路徑
-sqlite_helper=SQLite3 或 TiDB 資料庫檔案路徑。 作為以服務執行時,請使用絕對路徑。
-err_empty_db_path=SQLite3 或 TiDB 的數據庫路徑不能為空。
-err_invalid_tidb_name=TiDB 數據庫名稱不允許包含字符 "." 或 "-" 。
+path=路徑
+sqlite_helper=SQLite3 資料庫的檔案路徑。 請務必在啟動服務時使用絕對路徑。
+err_empty_db_path=SQLite3 資料庫路徑不可以為空。
no_admin_and_disable_registration=您不能夠在未創建管理員用戶的情況下禁止註冊。
err_empty_admin_password=管理員密碼不能為空。
@@ -75,12 +78,17 @@ domain=域名
domain_helper=該設置影響 SSH 複製地址。
ssh_port=SSH 埠
ssh_port_helper=您的 SSH 服務正在使用此埠號,若要禁用SSH 功能請保持欄位空白。
+use_builtin_ssh_server=使用內建的 SSH 伺服器
+use_builtin_ssh_server_popup=啟用內建的 SSH 伺服器作為 Git 操作,使其與系統的 SSH 守護行程隔離 。
http_port=HTTP 端口號
http_port_helper=應用監聽的端口號
app_url=應用程式網址
app_url_helper=該設置影響 HTTP/HTTPS 複製地址和一些郵箱中的連結。
log_root_path=日誌路徑
log_root_path_helper=寫入日誌檔目錄
+enable_console_mode=開啟主控台模式
+enable_console_mode_popup=除了使用檔案模式之外, 還要將日誌列印到控制台。
+default_branch=Default Branch
optional_title=可選設置
email_title=電子郵件服務設定
@@ -96,15 +104,15 @@ offline_mode=啓用離線模式
offline_mode_popup=在部署模式下也禁用從 CDN 獲取文件,所有的資源將從本地伺服器獲取。
disable_gravatar=禁用 Gravatar 服務
disable_gravatar_popup=禁用 Gravatar 和自定義源,僅使用由用戶上傳或默認的頭像。
-federated_avatar_lookup=Enable Federated Avatars Lookup
-federated_avatar_lookup_popup=Enable federated avatars lookup to use federated open source service based on libravatar.
+federated_avatar_lookup=開啟聯合頭像查詢
+federated_avatar_lookup_popup=開啟聯合頭像查詢並使用基於開放源碼的 libravatar 服務
disable_registration=禁止用戶自主註冊
-disable_registration_popup=禁止用戶自主註冊功能,只有管理員可以添加帳號。
+disable_registration_popup=禁止用戶註冊功能,只有管理員可以添加帳號。
enable_captcha=啟用驗證碼服務
enable_captcha_popup=要求在用戶註冊時輸入驗證碼
require_sign_in_view=啓用登錄訪問限制
require_sign_in_view_popup=只有已登錄的用戶才能夠訪問頁面,否則將只能看到登錄或註冊頁面。
-admin_setting_desc=創建管理員帳號並不是必須的,因為 ID=1 的用戶將自動獲得管理員權限。
+admin_setting_desc=建立管理員帳號並不是必須的,因為 ID=1 的使用者將自動獲得管理員權限。
admin_title=管理員帳號設置
admin_name=管理員用戶名
admin_password=管理員密碼
@@ -113,10 +121,13 @@ admin_email=管理員郵箱
install_gogs=立即安裝
test_git_failed=無法識別 'git' 命令:%v
sqlite3_not_available=您所使用的發行版本不支持 SQLite3,請從 %s 下載官方構建版,而不是 gobuild 版本。
-invalid_db_setting=數據庫設置不正確:%v
+invalid_db_setting=資料庫設定不正確: %v
invalid_repo_path=倉庫根目錄設置不正確:%v
run_user_not_match=執行系統用戶非當前用戶:%s -> %s
-save_config_failed=應用配置保存失敗:%v
+smtp_host_missing_port=SMTP 主機缺少位址中的埠。
+invalid_smtp_from=SMTP 寄件者欄位無效﹔%v
+save_config_failed=設定儲存失敗:%v
+init_failed=軟體初始化失敗:%v
invalid_admin_setting=管理員帳戶設置不正確:%v
install_success=您好!我們很高興您選擇使用 Gogs,祝您使用愉快,代碼從此無 BUG!
invalid_log_root_path=日誌根目錄無效: %v
@@ -137,6 +148,7 @@ issues.in_your_repos=屬於該用戶倉庫的
[explore]
repos=探索倉庫
users=用戶
+organizations=組織
search=搜索
[auth]
@@ -145,6 +157,8 @@ register_hepler_msg=已經註冊?立即登錄!
social_register_hepler_msg=已經註冊?立即綁定!
disable_register_prompt=對不起,註冊功能已被關閉。請聯系網站管理員。
disable_register_mail=對不起,註冊郵箱確認功能已被關閉。
+auth_source=認證來源
+local=本地
remember_me=記住登錄
forgot_password=忘記密碼
forget_password=忘記密碼?
@@ -152,11 +166,10 @@ sign_up_now=還沒帳戶?馬上註冊。
confirmation_mail_sent_prompt=一封新的確認郵件已經被發送至 %s,請檢查您的收件箱並在 %d 小時內完成確認註冊操作。
active_your_account=激活您的帳戶
prohibit_login=禁止登錄
-prohibit_login_desc=Your account is prohibited to login, please contact site admin.
+prohibit_login_desc=您的帳戶被停用,請聯繫網站管理員。
resent_limit_prompt=對不起,您請求發送激活郵件過於頻繁,請等待 3 分鐘後再試!
has_unconfirmed_mail=%s 您好,您有一封發送至( %s) 但未被確認的郵件。如果您未收到激活郵件,或需要重新發送,請單擊下方的按鈕。
resend_mail=單擊此處重新發送確認郵件
-email_not_associate=您輸入的郵箱地址未被關聯到任何帳號!
send_reset_mail=單擊此處(重新)發送您的密碼重置郵件
reset_password=重置密碼
invalid_code=對不起,您的確認代碼已過期或已失效。
@@ -164,6 +177,14 @@ reset_password_helper=單擊此處重置密碼
password_too_short=密碼長度不能少於 6 位!
non_local_account=非本地帳戶無法通過 Gogs 修改密碼。
+login_two_factor=兩步驗證
+login_two_factor_passcode=驗證碼
+login_two_factor_enter_recovery_code=鍵入兩部驗證碼
+login_two_factor_recovery=兩步恢復
+login_two_factor_recovery_code=恢復代碼
+login_two_factor_enter_passcode=鍵入兩步驗證碼
+login_two_factor_invalid_recovery_code=恢復代碼已使用或無效。
+
[mail]
activate_account=請激活您的帳戶
activate_email=請驗證您的郵箱地址
@@ -182,7 +203,7 @@ RepoName=儲存庫名稱
Email=郵箱地址
Password=密碼
Retype=確認密碼
-SSHTitle=SSH 密鑰名稱
+SSHTitle=SSH 公鑰名稱
HttpsUrl=HTTPS URL 地址
PayloadUrl=推送地址
TeamName=團隊名稱
@@ -190,15 +211,16 @@ AuthName=認證名稱
AdminEmail=管理員郵箱
NewBranchName=新的分支名稱
-CommitSummary=Commit summary
+CommitSummary=提交摘要
CommitMessage=提交訊息
-CommitChoice=Commit choice
+CommitChoice=提交選擇
TreeName=檔案路徑
Content=內容
require_error=不能為空。
alpha_dash_error=必須為英文字母、阿拉伯數字或橫線(-_)。
alpha_dash_dot_error=必須為英文字母、阿拉伯數字、橫線(-_)或點。
+alpha_dash_dot_slash_error=` 必須是合法的英文字母、數字、分隔符號(-_)、半形句點或斜線。`
size_error=長度必須為 %s。
min_size_error=長度最小為 %s 個字符。
max_size_error=長度最大為 %s 個字符。
@@ -215,6 +237,7 @@ org_name_been_taken=組織名稱已經被佔用。
team_name_been_taken=團隊名稱已經被佔用。
email_been_used=郵箱地址已經被使用。
username_password_incorrect=用戶名或密碼不正確。
+auth_source_mismatch=此用戶未與所用的認證來源相關聯
enterred_invalid_repo_name=請檢查您輸入的倉庫名稱是正確。
enterred_invalid_owner_name=請檢查您輸入的新所有者用戶名是否正確。
enterred_invalid_password=請檢查您輸入的密碼是否正確。
@@ -236,25 +259,24 @@ change_avatar=更改頭像
join_on=加入於
repositories=倉庫列表
activity=公開活動
-followers=關註者
+followers=關注者
starred=已讚好
-following=關註中
+following=關注中
follow=關注
unfollow=取消關注
-form.name_reserved=用戶名 '%s' 是被保留的。
-form.name_pattern_not_allowed=用戶名不允許 '%s' 的格式。
+form.name_not_allowed=用戶名不允許 %q 的格式。
[settings]
-profile=個人信息
+profile=個人資訊
password=修改密碼
-avatar=Avatar
+avatar=頭像
ssh_keys=管理 SSH 密鑰
-social=社交帳號綁定
-applications=管理授權應用
+security=安全
+repos=倉庫
orgs=管理組織
+applications=管理授權應用
delete=刪除帳戶
-uid=用戶 ID
public_profile=公開信息
profile_desc=您的郵箱地址將會被公開,並被用於接收帳戶的所有提醒和通知。
@@ -263,14 +285,14 @@ full_name=自定義名稱
website=個人網站
location=所在地區
update_profile=更新信息
-update_profile_success=您的個人信息更新成功!
+update_profile_success=您的個人資訊更新成功!
change_username=用戶名將被修改
change_username_prompt=該操作將會影響到所有與您帳戶有關的鏈接
continue=繼續操作
cancel=取消操作
-lookup_avatar_by_mail=Lookup Avatar by mail
-federated_avatar_lookup=Federated Avatar Lookup
+lookup_avatar_by_mail=通過信箱查找頭像
+federated_avatar_lookup=Federated Avatar 查詢
enable_custom_avatar=啟動自定義頭像
choose_new_avatar=選擇新的頭像
update_avatar=更新頭像設置
@@ -295,6 +317,7 @@ delete_email=刪除
email_deletion=刪除郵箱
email_deletion_desc=刪除該郵箱地址將會移除所有相關的信息。是否繼續?
email_deletion_success=成功刪除郵箱!
+email_deletion_primary=Cannot delete primary email address.
add_new_email=添加新的電子郵件地址
add_email=添加電子郵件
add_email_confirmation_sent=一封待確認的電子郵件已發送到 '%s',請在%d 小時內檢查您的收件箱,並完成確認過程。
@@ -304,7 +327,7 @@ manage_ssh_keys=管理 SSH 密鑰
add_key=增加密鑰
ssh_desc=以下是與您帳戶所關聯的 SSH 密鑰,如果您發現有陌生的密鑰,請立即刪除它!
ssh_helper=需要幫助嗎? 請查看有關 如何生成 SSH 密鑰 的指南或 SSH 的常見問題 的疑難排解。
-add_new_key=增加 SSH 密鑰
+add_new_key=增加 SSH 公鑰
ssh_key_been_used=公共密鑰已經被使用
ssh_key_name_used=使用相同名稱的公共密鑰已經存在!
key_name=密鑰名稱
@@ -318,24 +341,56 @@ add_on=增加於
last_used=上次使用在
no_activity=沒有最近活動
key_state_desc=該密鑰在 7 天內被使用過
-token_state_desc=此token在過去七天內曾經被使用過
-
-manage_social=管理關聯社交帳戶
-social_desc=以下是與您帳戶所關聯的社交帳號,如果您發現有陌生的關聯,請立即解除綁定!
-unbind=解除綁定
-unbind_success=社交帳號解除綁定成功!
+token_state_desc=此令牌在過去七天內曾經被使用過
+
+two_factor=兩步驗證
+two_factor_status=狀態:
+two_factor_on=開啟
+two_factor_off=關閉
+two_factor_enable=啟用
+two_factor_disable=禁用
+two_factor_view_recovery_codes=在安全的地方查看並保存 您的恢復代碼 。如果您失去對身份驗證應用程式的存取權限, 則可以將它們用作密碼。
+two_factor_http=在 HTTP/HTTPS 動作中,您不能使用純文字使用者名稱及密碼。請建立並使用個人存取令牌作為您的認證方式,範例:%[3]s。
+two_factor_enable_title=啟用兩步驗證
+two_factor_scan_qr=請使用您的身份驗證應用程式掃描圖像:
+two_factor_or_enter_secret=或輸入密碼: %s
+two_factor_then_enter_passcode=然後輸入驗證碼:
+two_factor_verify=驗證
+two_factor_invalid_passcode=您輸入的密碼無效,請再試一次。
+two_factor_reused_passcode=您输入的验证码已经被使用过了,请换一个重试!
+two_factor_enable_error=啟用兩步驗證失敗: %v
+two_factor_enable_success=您帳戶的兩步驗證已成功啟用!
+two_factor_recovery_codes_title=兩步驗證恢復代碼
+two_factor_recovery_codes_desc=當您無法存取您的認證應用程式時,可以使用救援代碼。每個救援代碼只能使用一次,因此 請在安全的地方妥善保存您的救援代碼。
+two_factor_regenerate_recovery_codes=重新生成恢復代碼
+two_factor_regenerate_recovery_codes_error=重新生成恢復代碼失敗: %v
+two_factor_regenerate_recovery_codes_success=已成功生成新的恢復代碼!
+two_factor_disable_title=停用兩步驗證
+two_factor_disable_desc=停用兩步驗證後,您的帳戶安全級別將降低。是否繼續?
+two_factor_disable_success=您帳戶的兩步驗證已成功停用!
manage_access_token=管理個人操作令牌
generate_new_token=生成新的令牌
-tokens_desc=您所產生的token將被用來存取Gogs APIs
+tokens_desc=您產生的令牌可以用來存取 Gogs API。
+access_token_tips=The personal access token may be used as either username or password. It is recommended to use the "x-access-token" as the username and the personal access token as the password for Git applications.
new_token_desc=目前為止,任何令牌都對您的帳戶擁有完整的操作權限。
token_name=令牌名稱
generate_token=生成令牌
generate_token_succees=新的操作令牌生成成功!您必須立即複製到一個安全的地方,因為該令牌只會顯示一次!
-delete_token=删除令牌
-access_token_deletion=刪除個人的連接token
+delete_token=刪除令牌
+access_token_deletion=刪除個人存取令牌
access_token_deletion_desc=刪除此連接token將會刪除與相關應用程式的連結。您想要繼續嗎?
delete_token_success=您的連接token已成功刪除。請記得更新您的應用程式。
+token_name_exists=有同樣名稱的令牌已經存在。
+
+orgs.none=您現在還不是任何組織的成員。
+orgs.leave_title=離開組織
+orgs.leave_desc=離開組織後,所有與組織相關的倉庫和團隊權限將被取消。是否繼續?
+
+repos.leave=離開
+repos.leave_title=離開存儲庫
+repos.leave_desc=在你離開後,您將無法進入到存儲庫。你想要繼續嗎?
+repos.leave_success=您已經成功退出「%s」版本庫!
delete_account=刪除當前帳戶
delete_prompt=刪除操作會永久清除您的帳戶信息,並且 不可恢復!
@@ -348,7 +403,9 @@ owner=擁有者
repo_name=倉庫名稱
repo_name_helper=偉大的倉庫名稱一般都較短、令人深刻並且 獨一無二 的。
visibility=可見度
+unlisted=Unlisted
visiblity_helper=該倉庫為 私有的
+unlisted_helper=This repository is Unlisted
visiblity_helper_forced=網站管理員已強制要求所有新建倉庫必須為 私有的
visiblity_fork_helper=(修改該值將會影響到所有派生倉庫)
clone_helper=不知道如何操作?訪問 帮助説明 !
@@ -357,7 +414,7 @@ fork_from=派生自
fork_visiblity_helper=派生倉庫無法修改可見性。
repo_desc=倉庫描述
repo_lang=倉庫語言
-repo_gitignore_helper=Select .gitignore templates
+repo_gitignore_helper=選擇 .gitignore 主題
license=授權許可
license_helper=請選擇授權許可文件
readme=Readme
@@ -370,34 +427,36 @@ mirror_prune_desc=當遠程追蹤的引用被刪除時本地也會同步刪除
mirror_interval=鏡像同步周期(小時)
mirror_address=鏡像地址
mirror_address_desc=請在位址中包括必要的使用者憑據。
-mirror_last_synced=Last Synced
+mirror_last_synced=上次同步
watchers=關注者
stargazers=稱讚者
forks=派生倉庫
+repo_description_helper=儲存庫的說明文字。最長 512 個字元。
+repo_description_length=可用字元
form.reach_limit_of_creation=擁有者已達到儲存庫最大的新增上限 %d。
-form.name_reserved=倉庫名稱 '%s' 是被保留的。
-form.name_pattern_not_allowed=倉庫名稱不允許 '%s' 的格式。
+form.name_not_allowed=Repository name or pattern %q is not allowed.
need_auth=需要授權驗證
migrate_type=遷移類型
migrate_type_helper=該倉庫將是一個 鏡像
migrate_repo=遷移倉庫
migrate.clone_address=複製地址
-migrate.clone_address_desc=該地址可以是 HTTP/HTTPS/GIT URL 或本地服務器路徑。
+migrate.clone_address_desc=該地址可以是 HTTP/HTTPS/GIT 類型的 URL。
+migrate.clone_address_desc_import_local=您還可以用本地服務器路徑來遷移倉庫。
migrate.permission_denied=您並沒有導入本地倉庫的權限。
migrate.invalid_local_path=無效的本地路徑,該路徑不存在或不是一個目錄!
+migrate.clone_address_resolved_to_blocked_local_address=Clone address resolved to a local network address that is implicitly blocked.
migrate.failed=遷移失敗:%v
mirror_from=镜像来自
forked_from=派生自
-fork_from_self=無法派生已經擁有的倉庫!
copy_link=複製連結
copy_link_success=複製成功!
copy_link_error=請按下 ⌘-C 或 Ctrl-C 複製
copied=複製成功
unwatch=取消關注
-watch=關註
+watch=關注
unstar=取消讚好
star=讚好
fork=複刻
@@ -407,9 +466,9 @@ quick_guide=快速幫助
clone_this_repo=複製當前倉庫
create_new_repo_command=從命令行創建一個新的倉庫
push_exist_repo=從命令行推送已經創建的倉庫
-repo_is_empty=這倉庫不包含任何內容,請稍後再訪問!
+bare_message=此版本庫空空如也。
-code=代碼
+files=檔案
branch=分支
tree=目錄樹
filter_branch_and_tag=過濾分支或標籤
@@ -420,51 +479,65 @@ pulls=合併請求
labels=標籤
milestones=里程碑
commits=提交歷史
+git_branches=分支列表
releases=版本發佈
file_raw=原始文件
file_history=文件歷史
file_view_raw=查看原始文件
file_permalink=永久連結
-file_too_large=This file is too large to be shown
+file_too_large=檔案太大,無法顯示
+video_not_supported_in_browser=您的瀏覽器不支援 HTML5 影片播放標籤。
+
+branches.overview=概覽
+branches.active_branches=活躍分支
+branches.stale_branches=陳舊分支
+branches.all=所有分支
+branches.updated_by=%[2]s 更新了 %[1]s
+branches.change_default_branch=變更預設分支
+branches.default_deletion_not_allowed=Cannot delete the default branch.
+branches.protected_deletion_not_allowed=Cannot delete a protected branch.
editor.new_file=開新檔案
editor.upload_file=上傳檔案
editor.edit_file=編輯文件
-editor.preview_changes=Preview Changes
+editor.preview_changes=預覽更改
editor.cannot_edit_non_text_files=不能編輯非文字檔
editor.edit_this_file=編輯此文件
-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 before editing the file
+editor.must_be_on_a_branch=你必須在一個分支或提出對此檔的更改
+editor.fork_before_edit=你必須在編輯檔案之前備份此檔案
editor.delete_this_file=刪除此文件
-editor.must_have_write_access=You must have write access to make or propose changes to this file
-editor.file_delete_success=File '%s' has been deleted successfully!
-editor.name_your_file=Name your file...
-editor.filename_help=To add directory, just type it and press /. To remove a directory, go to the beginning of the field and press backspace.
+editor.must_have_write_access=您必須具有寫存取權限,或提出對此檔案的更改
+editor.file_delete_success=已成功刪除 '%s' !
+editor.name_your_file=命名您的檔...
+editor.filename_help=輸入名稱後按下 / 鍵即可新增資料夾,或將滑鼠移至輸入格最左側按下Backspace移除資料夾。
editor.or=或
editor.cancel_lower=取消
-editor.commit_changes=Commit Changes
-editor.add_tmpl=Add '%s/'
+editor.commit_changes=提交更改嗎?
+editor.add_tmpl=添加%s/'
editor.add=新增 '%s'
editor.update=更新 '%s'
editor.delete=刪除 '%s'
-editor.commit_message_desc=Add an optional extended description...
-editor.commit_directly_to_this_branch=Commit directly to the %s branch.
-editor.create_new_branch=Create a new branch for this commit and start a pull request.
+editor.commit_message_desc=添加一個可選的擴展描述...
+editor.commit_directly_to_this_branch=直接提交到 %s 分支。
+editor.create_new_branch=創建 新的分支 為此提交和開始合併請求。
editor.new_branch_name_desc=新的分支名稱...
editor.cancel=取消
-editor.filename_cannot_be_empty=Filename cannot be empty.
-editor.branch_already_exists=Branch '%s' already exists in this repository.
-editor.directory_is_a_file=Entry '%s' in the parent path is a file not a directory in this repository.
-editor.filename_is_a_directory=The filename '%s' is an existing directory in this repository.
-editor.file_editing_no_longer_exists=The file '%s' you are editing no longer exists in the repository.
-editor.file_changed_while_editing=File content has been changed since you started editing. Click here to see what have been changed or press commit again to overwrite those changes.
-editor.file_already_exists=A file with name '%s' already exists in this repository.
+editor.filename_cannot_be_empty=檔案名不能為空。
+editor.branch_already_exists='%s' 已存在於此存儲庫。
+editor.directory_is_a_file='%s' 在此倉庫中的路徑是檔案而不是目錄。
+editor.file_is_a_symlink=檔案 '%s' 是一個符號連結,不能從 web 編輯器修改。
+editor.filename_is_a_directory=檔案名 '%s' 是此資料庫中的現有目錄。
+editor.file_editing_no_longer_exists=檔 '%s' 您正在編輯不再存在於資料庫。
+editor.file_changed_while_editing=從您開始編輯已更改檔的內容。 按一下此處 以查看什麼發生了更改或 按提交再 覆蓋這些更改。
+editor.file_already_exists=帶有名稱 '%s' 的檔已經存在在這個資料庫中。
editor.no_changes_to_show=沒有可以顯示的變更。
-editor.fail_to_update_file=Failed to update/create file '%s' with error: %v
+editor.fail_to_update_file=上傳/創建檔案 '%s' 失敗, 錯誤訊息: %v
+editor.fail_to_delete_file=無法刪除檔案「%s」,錯誤訊息:%v
editor.add_subdir=新增子目錄...
-editor.unable_to_upload_files=Failed to upload files to '%s' with error: %v
-editor.upload_files_to_dir=Upload files to '%s'
+editor.unable_to_upload_files=上傳檔案失敗到 '%s', 錯誤訊息: %v
+editor.upload_files_to_dir=上傳檔案到 '%s'
+commits.commit_history=提交歷史
commits.commits=次代碼提交
commits.search=搜索提交歷史
commits.find=查找
@@ -490,11 +563,11 @@ issues.create=創建問題
issues.new_label=創建標籤
issues.new_label_placeholder=標籤名稱...
issues.create_label=創建標籤
-issues.label_templates.title=Load a predefined set of labels
-issues.label_templates.info=There aren’t any labels yet. You can click on the "New Label" button above to create one or use a predefined set below.
-issues.label_templates.helper=Select a label set
-issues.label_templates.use=Use this label set
-issues.label_templates.fail_to_load_file=Failed to load label template file '%s': %v
+issues.label_templates.title=載入一組預定義的標籤
+issues.label_templates.info=沒有任何標籤。你可以點選上面創建一個或按下面"新建標籤"按鈕來使用一組預定義。
+issues.label_templates.helper=選擇一個標籤集
+issues.label_templates.use=使用此標籤集
+issues.label_templates.fail_to_load_file=載入標籤範本檔案 '%s' 失敗: %v
issues.open_tab=%d 個開啓中
issues.close_tab=%d 個已關閉
issues.filter_label=標籤篩選
@@ -522,7 +595,7 @@ issues.next=下一頁
issues.open_title=開啟中
issues.closed_title=已關閉
issues.num_comments=%d 條評論
-issues.commented_at=`commented %s`
+issues.commented_at=` 評論 %s'`
issues.delete_comment_confirm=您確定要刪除該條評論嗎?
issues.no_content=尚未有任何內容
issues.close_issue=關閉
@@ -536,7 +609,7 @@ issues.commit_ref_at=`在代碼提交 %[2]s 中
issues.poster=發佈者
issues.collaborator=協同者
issues.owner=所有者
-issues.sign_in_require_desc=Sign in to join this conversation.
+issues.sign_in_require_desc= 登入 才能加入這對話。
issues.edit=編輯
issues.cancel=取消
issues.save=保存
@@ -562,6 +635,7 @@ pulls.compare_compare=對比文件變化
pulls.filter_branch=過濾分支
pulls.no_results=未找到結果
pulls.nothing_to_compare=基準和對比分支代碼已經同步,無需進行對比。
+pulls.nothing_merge_base=因為兩個分支有完全不同的提交紀錄,因此無法比較。
pulls.has_pull_request=`已經存在目標分支的合併請求:%[2]s#%[3]d`
pulls.create=創建合併請求
pulls.title_desc=請求將 %[1]d 次代碼提交從 %[2]s 合併至 %[3]s
@@ -577,8 +651,13 @@ pulls.is_checking=該合併請求正在進行衝突檢查,請稍後再刷新
pulls.can_auto_merge_desc=這個拉請求可以自動合併。
pulls.cannot_auto_merge_desc=由於存在衝突,不能自動合併這推送請求。
pulls.cannot_auto_merge_helper=請手動合併來解決衝突。
+pulls.create_merge_commit=創建一個合併提交
+pulls.rebase_before_merging=合併前先 Rebase
+pulls.commit_description=提交記錄說明
pulls.merge_pull_request=合併請求
pulls.open_unmerged_pull_exists=`由於已經存在來自相同倉庫和合併信息的未合併請求(#%d),您無法執行重新開啟操作。`
+pulls.delete_branch=刪除分支
+pulls.delete_branch_has_new_commits=該分支在合併完成後又推送了新的提交,無法執行刪除。
milestones.new=新的里程碑
milestones.open_tab=%d 開啟中
@@ -629,31 +708,61 @@ settings.collaboration.admin=管理權限
settings.collaboration.write=可寫權限
settings.collaboration.read=可讀權限
settings.collaboration.undefined=未定義
+settings.branches=分支列表
+settings.branches_bare=您無法管理空版本庫。請先推送一些內容至版本庫。
+settings.default_branch=預設分支
+settings.default_branch_desc=預設分支是程式碼 commit、pull requests 及線上編輯的基準分支。
+settings.update=更新
+settings.update_default_branch_unsupported=伺服器的 Git 版本不支援變更預設分支。
+settings.update_default_branch_success=這個 repository 的預設分支更新成功!
+settings.protected_branches=保護分支
+settings.protected_branches_desc=保護分支不被強制 Push、意外刪除以及限制 Commit 者白名單
+settings.choose_a_branch=選擇一個分支
+settings.branch_protection=分支保護
+settings.branch_protection_desc=請選擇分支 %s 的保護選項。
+settings.protect_this_branch=保護這個分支
+settings.protect_this_branch_desc=停用強制Push及分支刪除。
+settings.protect_require_pull_request=請使用 pull request 來更新(合併)程式碼。
+settings.protect_require_pull_request_desc=啟用這個選項之後,程式碼將無法直接 Push 到這個分支,所有 Commit 必須先 Push 到另一個非保護的分支,再透過 Pull Request 來要求合併。
+settings.protect_whitelist_committers=限制誰可以 Push 到這個分支
+settings.protect_whitelist_committers_desc=新增成員或團隊到允許直接 push 到這個分支的白名單。白名單中的使用者將會略過 pull request 的檢查。
+settings.protect_whitelist_users=限制那些使用者可以 push 到這個分支
+settings.protect_whitelist_search_users=搜尋用戶
+settings.protect_whitelist_teams=團隊的成員可以 push 到這個分支
+settings.protect_whitelist_search_teams=搜尋團隊
+settings.update_protect_branch_success=此分支設置保護已更新成功!
settings.hooks=管理 Web 鉤子
settings.githooks=管理 Git 鉤子
settings.basic_settings=基本設置
settings.mirror_settings=鏡像設定
-settings.sync_mirror=Sync Now
-settings.mirror_sync_in_progress=Mirror syncing is in progress, please refresh page in about a minute.
+settings.sync_mirror=立即同步
+settings.mirror_sync_in_progress=鏡像同步正在進行中,請大約一分鐘後刷新頁面。
settings.site=官方網站
settings.update_settings=更新倉庫設置
settings.change_reponame_prompt=該操作將會影響到所有與該倉庫有關的鏈接
settings.advanced_settings=高級設置
settings.wiki_desc=啓用 Wiki 系統
-settings.use_internal_wiki=Use builtin wiki
+settings.use_internal_wiki=使用內建 wiki
+settings.allow_public_wiki_desc=當版本庫為私有狀態時,允許 Wiki 的公開存取。
settings.use_external_wiki=使用外部 wiki
settings.external_wiki_url=外部 Wiki 連結
settings.external_wiki_url_desc=當分頁上按一下,訪客將會重新導到 URL。
-settings.issues_desc=Enable issue tracker
-settings.use_internal_issue_tracker=Use builtin lightweight issue tracker
+settings.issues_desc=啟用問題追蹤
+settings.use_internal_issue_tracker=使用內建輕量級問題追蹤
+settings.allow_public_issues_desc=當版本庫為私有狀態時,允許議題的公開存取。
settings.use_external_issue_tracker=使用外部的問題管理系統
+settings.external_tracker_url=外部Issue Tracker網址
+settings.external_tracker_url_desc=當訪客在分頁上按一下,他們將會重新導向到 URL。
settings.tracker_url_format=外部問題管理系統的 URL 格式
settings.tracker_issue_style=外部公單管理系統命名風格:
-settings.tracker_issue_style.numeric=Numeric
-settings.tracker_issue_style.alphanumeric=Alphanumeric
+settings.tracker_issue_style.numeric=數字
+settings.tracker_issue_style.alphanumeric=字母及數字
settings.tracker_url_format_desc=您可以使用 {user} {repo} {index} 分別作為用戶名、倉庫名和問題索引的占位符。
-settings.pulls_desc=啟用合併請求以接受社區貢獻
+settings.pulls_desc=啟用「合併請求」功能,接受版本庫與分支之間的貢獻
+settings.pulls.ignore_whitespace=忽略空白符號的更改
+settings.pulls.allow_rebase_merge=允許使用 rebase 合併提交
settings.danger_zone=危險操作區
+settings.cannot_fork_to_same_owner=你不可以 fork 一個 repository 到它的擁有者。
settings.new_owner_has_same_repo=新的倉庫擁有者已經存在同名倉庫!
settings.convert=轉換為正規倉庫
settings.convert_desc=您可以將此鏡像轉成正規倉庫。此動做不可逆。
@@ -672,7 +781,7 @@ settings.wiki_deletion_success=儲存庫 wiki 資料已成功清除。
settings.delete=刪除本倉庫
settings.delete_desc=刪除倉庫操作不可逆轉,請三思而後行。
settings.delete_notices_1=- 此操作 不可以 被回滾。
-settings.delete_notices_2=- 此操作將永久刪除該倉庫,包括 Git 數據、 問題、 評論和協作者的操作權限。
+settings.delete_notices_2=- 此動作將永久移除版本庫,包含了 Git 資料、議題、留言與協作者的存取權限。
settings.delete_notices_fork_1=- 刪除後所有的派生倉庫將會成為獨立倉庫
settings.deletion_success=倉庫刪除成功!
settings.update_settings_success=倉庫設置更新成功!
@@ -688,20 +797,25 @@ settings.collaborator_deletion_desc=刪除後此使用者將不再有協同者
settings.remove_collaborator_success=被操作的協作者已經被收回權限!
settings.search_user_placeholder=搜索用戶...
settings.org_not_allowed_to_be_collaborator=組織不允許被加為協同者。
-settings.user_is_org_member=被操作的用戶是組織成員,因此無法添加為協作者!
-settings.add_webhook=添加 Web 鉤子
settings.hooks_desc=Web 鉤子允許您設定在 Gogs 上發生指定事件時對指定 URL 發送 POST 通知。查看 Webhooks 文檔 獲取更多信息。
+settings.webhooks.add_new=Add a new webhook:
+settings.webhooks.choose_a_type=Choose a type...
+settings.add_webhook=添加 Web 鉤子
settings.webhook_deletion=刪除 Web 鉤子
settings.webhook_deletion_desc=刪除該 Web 鉤子將會刪除與其有關的信息和推送歷史。是否繼續?
settings.webhook_deletion_success=Web 鉤子刪除成功!
settings.webhook.test_delivery=測試推送
settings.webhook.test_delivery_desc=生成並推送一個模擬的 Push 事件
settings.webhook.test_delivery_success=測試推送已經加入到隊列,請耐心等待數秒再刷新推送記錄。
+settings.webhook.redelivery=重新傳送
+settings.webhook.redelivery_success=任務「%s」已經重新加入至隊列。可能需要幾秒鐘來更新歷史的隊列狀態
settings.webhook.request=請求內容
settings.webhook.response=響應內容
settings.webhook.headers=標題
settings.webhook.payload=推送內容
settings.webhook.body=響應內容
+settings.webhook.err_cannot_parse_payload_url=Cannot parse payload URL: %v
+settings.webhook.url_resolved_to_blocked_local_address=Payload URL resolved to a local network address that is implicitly blocked.
settings.githooks_desc=Git 鉤子是由 Git 本身提供的功能,以下為 Gogs 所支持的鉤子列表。
settings.githook_edit_desc=如果鉤子未啟動,則會顯示樣例文件中的內容。如果想要刪除某個鉤子,則提交空白文本即可。
settings.githook_name=鉤子名稱
@@ -711,6 +825,7 @@ settings.add_webhook_desc=我們會通過 POST 請求將訂閱事
settings.payload_url=推送地址
settings.content_type=數據格式
settings.secret=密鑰文本
+settings.secret_desc=密鑰將會以 SHA256 HMAC 的十六進位數字放進X-Gogs-Signature 標頭中送出。
settings.slack_username=服務名稱
settings.slack_icon_url=圖標 URL
settings.slack_color=顏色代碼
@@ -720,10 +835,20 @@ settings.event_send_everything=推送 所有 事件
settings.event_choose=讓我選擇我的需要
settings.event_create=創建
settings.event_create_desc=創建分支或標籤
-settings.event_pull_request=合併請求
-settings.event_pull_request_desc=Pull request opened, closed, reopened, edited, assigned, unassigned, label updated, label cleared, or synchronized.
+settings.event_delete=刪除
+settings.event_delete_desc=分支或標籤已經被刪除
+settings.event_fork=Fork
+settings.event_fork_desc=Repository 已經 fork
settings.event_push=推送
settings.event_push_desc=Git 倉庫推送
+settings.event_issues=Issues
+settings.event_issues_desc=已經開啟、關閉、重啟、修改、指派、取消指派、更新標籤、清除標籤、新增里程碑或刪除里程碑的 issue。
+settings.event_pull_request=合併請求
+settings.event_pull_request_desc=已經開啟、關閉、重啟、編輯、指派、解除指派、更新標籤、清除標籤、新增里程碑、刪除里程碑或同步的 pull request。
+settings.event_issue_comment=Issue 評論
+settings.event_issue_comment_desc=已經建立、編輯或刪除的 Issue 評論。
+settings.event_release=Release
+settings.event_release_desc=Release 將發佈在一個 repository 中。
settings.active=是否激活
settings.active_helper=當指定事件發生時我們將會觸發此 Web 鉤子。
settings.add_hook_success=Web 鉤子添加成功!
@@ -733,10 +858,13 @@ settings.delete_webhook=刪除 Web 鉤子
settings.recent_deliveries=最近推送記錄
settings.hook_type=鉤子類型
settings.add_slack_hook_desc=為您的倉庫增加 Slack 集成。
+settings.add_discord_hook_desc=Hook Discord 到你的 repository。
+settings.add_dingtalk_hook_desc=在您的版本庫增加 Dingtalk 整合
settings.slack_token=令牌
settings.slack_domain=域名
settings.slack_channel=頻道
settings.deploy_keys=管理部署密鑰
+settings.deploy_keys_helper=噢不! 如果要新增個人的公開金鑰,請到 用戶設定 新增。
settings.add_deploy_key=添加部署密鑰
settings.deploy_key_desc=部署密鑰僅具有隻讀權限,它在功能上和個人用戶的公開密鑰有本質區別。
settings.no_deploy_keys=您還沒有添加任何部署密鑰。
@@ -748,6 +876,8 @@ settings.add_key_success=新的部署密鑰 '%s' 添加成功!
settings.deploy_key_deletion=刪除部署密鑰
settings.deploy_key_deletion_desc=刪除該部署密鑰會移除本倉庫所有相關的操作權限。是否繼續?
settings.deploy_key_deletion_success=刪除部署密鑰成功!
+settings.description_desc=儲存庫的說明文字。最長 512 個字元。
+settings.description_length=可用字元
diff.browse_source=瀏覽代碼
diff.parent=父節點
@@ -759,14 +889,13 @@ diff.show_unified_view=統一視圖
diff.stats_desc=共有 %d 個文件被更改,包括 %d 次插入 和 %d 次删除
diff.bin=二進制
diff.view_file=查看文件
-diff.file_suppressed=File diff suppressed because it is too large
+diff.file_suppressed=文件差異過大導致無法顯示
diff.too_many_files=部分文件因文件數量過多而無法顯示
release.releases=版本發佈
release.new_release=發佈新版本
release.draft=草稿
release.prerelease=預發佈版本
-release.stable=穩定
release.edit=編輯
release.ahead=在該版本發佈之後已有 %d 次代碼提交到 %s 分支
release.source_code=源代碼
@@ -791,7 +920,7 @@ release.deletion=刪除版本發布操作
release.deletion_desc=刪除該版本發布將會移除相應的 Git 標籤。是否繼續?
release.deletion_success=版本發布刪除成功!
release.tag_name_already_exist=已經存在使用相同標籤的發佈版本。
-release.tag_name_invalid=Tag name is not valid.
+release.tag_name_invalid=標記名稱不是有效的。
release.downloads=下載附件
[org]
@@ -813,8 +942,8 @@ team_name_helper=您可以使用該名稱來通知改組全體成員。
team_desc_helper=一句話描述這個團隊是做什麼的。
team_permission_desc=請選擇該團隊所具有的權限等級:
-form.name_reserved=組織名稱 '%s' 是被保留的。
-form.name_pattern_not_allowed=組織名稱不允許 '%s' 的格式。
+form.name_not_allowed=Organization name or pattern %q is not allowed.
+form.team_name_not_allowed=Team name or pattern %q is not allowed.
settings=組織設置
settings.options=基本設置
@@ -886,12 +1015,19 @@ first_page=首頁
last_page=末頁
total=總計:%d
+dashboard.build_info=建置資訊
+dashboard.app_ver=程式版本
+dashboard.git_version=Git 版本
+dashboard.go_version=Go 版本
+dashboard.build_time=建置時間
+dashboard.build_commit=Build commit
dashboard.statistic=應用統計數據
dashboard.operations=管理員操作
dashboard.system_status=系統監視狀態
-dashboard.statistic_info=Gogs 數據庫統計:%d 位用戶,%d 個組織,%d 個公鑰,%d 個倉庫,%d 個倉庫關註,%d 個贊,%d 次行為,%d 條權限記錄,%d 個問題,%d 次評論,%d 個社交帳號,%d 個用戶關註,%d 個鏡像,%d 個版本發佈,%d 個登錄源,%d 個 Web 鉤子,%d 個里程碑,%d 個標籤,%d 個鉤子任務,%d 個團隊,%d 個更新任務,%d 個附件。
+dashboard.statistic_info=Gogs 資料庫統計:%d 位用戶,%d 個組織,%d 個公鑰,%d 個倉庫,%d 個倉庫關注,%d 個讚,%d 次行為,%d 條權限記錄,%d 個問題,%d 次評論,%d 個社交帳號,%d 個用戶關注,%d 個鏡像,%d 個版本發佈,%d 個登錄來源,%d 個 Web 鉤子,%d 個里程碑,%d 個標籤,%d 個鉤子任務,%d 個團隊,%d 個更新任務,%d 個附件。
dashboard.operation_name=操作名稱
dashboard.operation_switch=開關
+dashboard.select_operation_to_run=Please select operation to run
dashboard.operation_run=執行
dashboard.clean_unbind_oauth=清理未綁定社交帳號
dashboard.clean_unbind_oauth_success=所有未綁定社交數據清除成功!
@@ -905,8 +1041,8 @@ dashboard.git_gc_repos=對倉庫進行垃圾回收
dashboard.git_gc_repos_success=所有倉庫的垃圾回收已成功完成!
dashboard.resync_all_sshkeys=重新生成 '.ssh/authorized_keys' 文件(警告:不是 Gogs 的密鑰也會被刪除)
dashboard.resync_all_sshkeys_success=所有公鑰重新生成成功!
-dashboard.resync_all_update_hooks=重新生成所有倉庫的 Update 鈎子(用於被修改的自定義配置文件)
-dashboard.resync_all_update_hooks_success=已成功重新生成所有倉庫的 Update 鈎子!
+dashboard.resync_all_hooks=重新同步所有 repository 的 pre-receive、update、post-receive hooks。
+dashboard.resync_all_hooks_success=所有 repository 的 pre-receive、update、post-receive hooks 皆已重新同步成功。
dashboard.reinit_missing_repos=重新初始化所有遺失 Git 檔案的儲存庫記錄
dashboard.reinit_missing_repos_success=所有遺失 Git 檔案的儲存庫已成功重新初始化。
@@ -959,7 +1095,7 @@ users.edit_account=編輯用戶信息
users.max_repo_creation=最大儲存庫新增限制
users.max_repo_creation_desc=(設定 -1 使用全域預設限制)
users.is_activated=該用戶已被激活
-users.prohibit_login=This account is prohibited to login
+users.prohibit_login=此帳戶禁止登錄
users.is_admin=該用戶具有管理員權限
users.allow_git_hook=該帳戶具有創建 Git 鉤子的權限
users.allow_import_local=該用戶具有導入本地倉庫的權限
@@ -978,15 +1114,17 @@ repos.repo_manage_panel=倉庫管理界面
repos.owner=所有者
repos.name=倉庫名稱
repos.private=私有庫
-repos.watches=關註數
+repos.watches=關注數
repos.stars=讚好數
repos.issues=問題數
+repos.size=大小
-auths.auth_manage_panel=認證管理面板
+auths.auth_sources=認證來源
auths.new=添加新認證源
auths.name=認證名稱
auths.type=認證類型
auths.enabled=已啟用
+auths.default=預設
auths.updated=最後更新時間
auths.auth_type=認證類型
auths.auth_name=認證名稱
@@ -995,15 +1133,21 @@ auths.domain=域名
auths.host=主機地址
auths.port=主機端口
auths.bind_dn=綁定DN
+auths.bind_dn_helper=可以使用'%s'作為用戶名稱的預留位置,例如:DOM\%s
auths.bind_password=綁定密碼
auths.bind_password_helper=警告:該密碼將會以明文的形式保存在數據庫中。請不要使用擁有高權限的帳戶!
auths.user_base=用戶搜索基準
auths.user_dn=User DN
auths.attribute_username=用戶名屬性
auths.attribute_username_placeholder=留空表示使用用戶登錄時所使用的用戶名
-auths.attribute_name=名子屬性
+auths.attribute_name=歸納名字
auths.attribute_surname=姓氏屬性
auths.attribute_mail=電子郵箱屬性
+auths.verify_group_membership=驗證組成員身份
+auths.group_search_base_dn=組蒐索基準 DN
+auths.group_filter=組篩選器
+auths.group_attribute_contain_user_list=包含使用者列表的群組屬性
+auths.user_attribute_listed_in_group=組中列出的使用者屬性
auths.attributes_in_bind=從 Bind DN 中獲取屬性信息
auths.filter=使用者篩選器
auths.admin_filter=管理者篩選器
@@ -1017,9 +1161,9 @@ auths.enable_tls=啟用 TLS 加密
auths.skip_tls_verify=忽略 TLS 驗證
auths.pam_service_name=PAM 服務名稱
auths.enable_auto_register=允許授權用戶自動註冊
-auths.tips=幫助提示
auths.edit=編輯認證設置
auths.activated=該授權認證已經啟用
+auths.default_auth=此認證方式為預設登入來源
auths.new_success=新的認證源 "%s" 添加成功!
auths.update_success=認證設置更新成功!
auths.update=更新認證設置
@@ -1028,107 +1172,189 @@ auths.delete_auth_title=刪除認證操作
auths.delete_auth_desc=該認證將被刪除。是否繼續?
auths.still_in_used=一些使用者仍然使用此驗證方式,請先刪除或轉換這些使用者到其它登入類型。
auths.deletion_success=認證源刪除成功!
+auths.login_source_exist=登錄源 '%s' 已存在。
+auths.github_api_endpoint=API 端點
+config.not_set=(未設定)
config.server_config=服務器配置
-config.app_name=應用名稱
-config.app_ver=應用版本
-config.app_url=應用 URL
-config.domain=應用域名
-config.offline_mode=離線模式
-config.disable_router_log=關閉路由日志
+config.brand_name=Brand name
config.run_user=執行用戶
config.run_mode=執行模式
-config.repo_root_path=倉庫根目錄
-config.static_file_root_path=靜態文件根目錄
-config.log_file_root_path=日志文件根目錄
-config.script_type=腳本類型
-config.reverse_auth_user=反向代理認證
+config.server.external_url=External URL
+config.server.domain=網域
+config.server.protocol=協定
+config.server.http_addr=HTTP address
+config.server.http_port=HTTP 埠
+config.server.cert_file=憑證檔案
+config.server.key_file=Key file
+config.server.tls_min_version=Minimum TLS version
+config.server.unix_socket_permission=Unix socket permission
+config.server.local_root_url=Local root URL
+config.server.offline_mode=離線模式
+config.server.disable_router_log=Disable router log
+config.server.enable_gzip=Enable Gzip
+config.server.app_data_path=Application data path
+config.server.load_assets_from_disk=Load assets from disk
+config.server.landing_url=Landing URL
config.ssh_config=SSH 配置
-config.ssh_enabled=已啟用
-config.ssh_start_builtin_server=啟動內建伺服器
-config.ssh_domain=域名
-config.ssh_port=埠
-config.ssh_listen_port=監聽埠
-config.ssh_root_path=根路徑
-config.ssh_key_test_path=金鑰測試路徑
-config.ssh_keygen_path=金鑰產生 (' ssh-keygen ') 路徑
-config.ssh_minimum_key_size_check=金鑰最小大小檢查
-config.ssh_minimum_key_sizes=金鑰最小大小
-
-config.db_config=數據庫配置
-config.db_type=數據庫類型
-config.db_host=主機地址
-config.db_name=數據庫名稱
-config.db_user=數據庫用戶
-config.db_ssl_mode=SSL 模式
-config.db_ssl_mode_helper=(僅限 "postgres" 使用)
-config.db_path=數據庫路徑
-config.db_path_helper=(用於 "sqlite3" 和 "tidb")
-
-config.service_config=服務配置
-config.register_email_confirm=註冊電子郵件確認
-config.disable_register=關閉註冊功能
-config.show_registration_button=顯示註冊按鈕
-config.require_sign_in_view=強制登錄瀏覽
-config.mail_notify=郵件通知提醒
-config.disable_key_size_check=禁用密鑰最小長度檢查
-config.enable_captcha=啟用驗證碼服務
-config.active_code_lives=激活用戶連結有效期
-config.reset_password_code_lives=重置密碼連結有效期
+config.ssh.enabled=Enabled
+config.ssh.domain=Exposed domain
+config.ssh.port=Exposed port
+config.ssh.root_path=根路徑
+config.ssh.keygen_path=Keygen path
+config.ssh.key_test_path=Key test path
+config.ssh.minimum_key_size_check=Minimum key size check
+config.ssh.minimum_key_sizes=Minimum key sizes
+config.ssh.rewrite_authorized_keys_at_start=Rewrite "authorized_keys" at start
+config.ssh.start_builtin_server=Start builtin server
+config.ssh.listen_host=Listen host
+config.ssh.listen_port=Listen port
+config.ssh.server_ciphers=Server ciphers
+config.ssh.server_macs=Server MACs
+config.ssh.server_algorithms=Server algorithms
+
+config.repo_config=Repository 設定
+config.repo.root_path=根路徑
+config.repo.script_type=Script type
+config.repo.ansi_chatset=ANSI charset
+config.repo.force_private=Force private
+config.repo.max_creation_limit=Max creation limit
+config.repo.preferred_licenses=Preferred licenses
+config.repo.disable_http_git=Disable HTTP Git
+config.repo.enable_local_path_migration=Enable local path migration
+config.repo.enable_raw_file_render_mode=Enable raw file render mode
+config.repo.commits_fetch_concurrency=Commits fetch concurrency
+config.repo.editor.line_wrap_extensions=Editor line wrap extensions
+config.repo.editor.previewable_file_modes=Editor previewable file modes
+config.repo.upload.enabled=允許上傳
+config.repo.upload.temp_path=Upload temporary path
+config.repo.upload.allowed_types=Upload allowed types
+config.repo.upload.file_max_size=上傳檔案大小限制
+config.repo.upload.max_files=Upload files limit
+
+config.db_config=資料庫設定
+config.db.type=Type
+config.db.host=Host
+config.db.name=Name
+config.db.schema=Schema
+config.db.schema_helper=(for "postgres" only)
+config.db.user=使用者
+config.db.ssl_mode=SSL 模式
+config.db.ssl_mode_helper=(僅限 "postgres" 使用)
+config.db.path=路徑
+config.db.path_helper=(僅限 "sqlite3" 使用)
+config.db.max_open_conns=最大開啟連接數
+config.db.max_idle_conns=最大閒置連線數
+
+config.security_config=安全性設定
+config.security.login_remember_days=Login remember days
+config.security.cookie_remember_name=Remember cookie
+config.security.cookie_username=Username cookie
+config.security.cookie_secure=Enable secure cookie
+config.security.reverse_proxy_auth_user=Reverse proxy authentication header
+config.security.enable_login_status_cookie=Enable login status cookie
+config.security.login_status_cookie_name=Login status cookie
+config.security.local_network_allowlist=Local network allowlist
+
+config.email_config=Email設定
+config.email.enabled=已啟用
+config.email.subject_prefix=Subject prefix
+config.email.host=主機
+config.email.from=From
+config.email.user=User
+config.email.disable_helo=Disable HELO
+config.email.helo_hostname=HELO hostname
+config.email.skip_verify=略過憑證驗証
+config.email.use_certificate=使用自定憑證
+config.email.cert_file=憑證檔案
+config.email.key_file=金錀檔案
+config.email.use_plain_text=使用純文字
+config.email.add_plain_text_alt=Add plain text alternative
+config.email.send_test_mail=發送測試電子郵件
+config.email.test_mail_failed=發送測試郵件至 '%s' 時失敗:%v
+config.email.test_mail_sent=測試電子郵件已發送到 '%s'。
+
+config.auth_config=Authentication configuration
+config.auth_custom_logout_url=Custom logout URL
+config.auth.activate_code_lives=Activate code lives
+config.auth.reset_password_code_lives=Reset password code lives
+config.auth.require_email_confirm=Require email confirmation
+config.auth.require_sign_in_view=Require sign in view
+config.auth.disable_registration=Disable registration
+config.auth.enable_registration_captcha=Enable registration captcha
+config.auth.enable_reverse_proxy_authentication=Enable reverse proxy authentication
+config.auth.enable_reverse_proxy_auto_registration=Enable reverse proxy auto registration
+config.auth.reverse_proxy_authentication_header=Reverse proxy authentication header
+
+config.user_config=User configuration
+config.user.enable_email_notify=Enable email notification
-config.webhook_config=Web 鉤子配置
-config.queue_length=隊列長度
-config.deliver_timeout=推送超時
-config.skip_tls_verify=忽略 TLS 驗證
-
-config.mailer_config=郵件配置
-config.mailer_enabled=啟用服務
-config.mailer_disable_helo=禁用 HELO 操作
-config.mailer_name=發送者名稱
-config.mailer_host=郵件主機地址
-config.mailer_user=發送者帳號
-config.send_test_mail=發送測試郵件
-config.test_mail_failed=無法向 '%s' 發送測試郵件: %v
-config.test_mail_sent=測試電子郵件已發送到 '%s'。
-
-config.oauth_config=社交帳號配置
-config.oauth_enabled=啟用服務
+config.session_config=Session 配置
+config.session.provider=Provider
+config.session.provider_config=Provider config
+config.session.cookie_name=Cookie
+config.session.https_only=HTTPS only
+config.session.gc_interval=GC interval
+config.session.max_life_time=Max life time
+config.session.csrf_cookie_name=CSRF cookie
config.cache_config=Cache 配置
-config.cache_adapter=Cache 適配器
-config.cache_interval=Cache 周期
-config.cache_conn=Cache 連接字符串
-
-config.session_config=Session 配置
-config.session_provider=Session 提供者
-config.provider_config=提供者配置
-config.cookie_name=Cookie 名稱
-config.enable_set_cookie=啟用設置 Cookie
-config.gc_interval_time=垃圾收集周期
-config.session_life_time=Session 生命周期
-config.https_only=僅限 HTTPS
-config.cookie_life_time=Cookie 生命周期
+config.cache.adapter=Adapter
+config.cache.interval=GC interval
+config.cache.host=Host
+
+config.http_config=HTTP設定
+config.http.access_control_allow_origin=Access control allow origin
+
+config.attachment_config=Attachment configuration
+config.attachment.enabled=Enabled
+config.attachment.path=Path
+config.attachment.allowed_types=Allowed types
+config.attachment.max_size=Size limit
+config.attachment.max_files=Files limit
+
+config.release_config=Release configuration
+config.release.attachment.enabled=Attachment enabled
+config.release.attachment.allowed_types=Attachment allowed types
+config.release.attachment.max_size=Attachment size limit
+config.release.attachment.max_files=Attachment files limit
config.picture_config=圖片配置
-config.picture_service=圖片服務
-config.disable_gravatar=禁用 Gravatar 頭像
-config.enable_federated_avatar=Enable Federated Avatars
-
-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
+config.picture.avatar_upload_path=User avatar upload path
+config.picture.repo_avatar_upload_path=Repository avatar upload path
+config.picture.gravatar_source=Gravatar source
+config.picture.disable_gravatar=Disable Gravatar
+config.picture.enable_federated_avatar=Enable federated avatars
+
+config.mirror_config=Mirror configuration
+config.mirror.default_interval=Default interval
+
+config.webhook_config=Web 鉤子配置
+config.webhook.types=Types
+config.webhook.deliver_timeout=Deliver timeout
+config.webhook.skip_tls_verify=Skip TLS verify
+
+config.git_config=Git 配置
+config.git.disable_diff_highlight=Disable diff syntax highlight
+config.git.max_diff_lines=Diff lines limit (for a single file)
+config.git.max_diff_line_characters=Diff characters limit (for a single line)
+config.git.max_diff_files=Diff files limit (for a single diff)
+config.git.gc_args=GC arguments
+config.git.migrate_timeout=Migration timeout
+config.git.mirror_timeout=Mirror fetch timeout
+config.git.clone_timeout=Clone timeout
+config.git.pull_timeout=Pull timeout
+config.git.gc_timeout=GC timeout
+
+config.lfs_config=LFS configuration
+config.lfs.storage=Storage
+config.lfs.objects_path=Objects path
config.log_config=日誌配置
-config.log_mode=日誌模式
+config.log_file_root_path=日志文件根目錄
+config.log_mode=模式
+config.log_options=選項
monitor.cron=Cron 任務
monitor.name=任務名稱
@@ -1159,17 +1385,24 @@ notices.delete_success=系統提示刪除成功!
create_repo=創建了儲存庫 %s
rename_repo=重新命名倉庫 %[1]s 為 %[3]s
commit_repo=推送了 %[3]s 分支的代碼到 %[4]s
+compare_commits=查看 %d 次提交的內容比對
+transfer_repo=將儲存庫 %s 轉移至 %s
create_issue=`創建了問題 %s#%[2]s`
close_issue=`已關閉問題 %s#%[2]s`
reopen_issue=`已重新開啟問題 %s#%[2]s`
+comment_issue=`評論了問題 %s#%[2]s`
create_pull_request=`創建了合併請求 %s#%[2]s`
close_pull_request=`已關閉合併請求 %s#%[2]s`
reopen_pull_request=`已重新開啟合併請求 %s#%[2]s`
-comment_issue=`評論了問題 %s#%[2]s`
merge_pull_request=`合併了合併請求 %s#%[2]s`
-transfer_repo=將儲存庫 %s 轉移至 %s
+create_branch=在 %[4]s 建立新的分支 %[3]s
+delete_branch=已經刪除在 %[3]s 上的分支 %[2]s
push_tag=推送了標籤 %[2]s 到 %[3]s
-compare_commits=查看 %d 次提交的內容比對
+delete_tag=已經刪除在 %[3]s 上的標籤 %[2]s
+fork_repo=已經 fork 一個 repository 到 %s
+mirror_sync_push=已經從鏡像同步了提交 %[3]s 於 %[4]s
+mirror_sync_create=已經從鏡像同步了參考 %[2]s 到 %[3]s
+mirror_sync_delete=已經從鏡像同步並移除了參考 %[2]s 於 %[3]s
[tool]
ago=之前
@@ -1191,6 +1424,7 @@ months=%d 月%s
years=%d 年%s
raw_seconds=秒
raw_minutes=分鐘
+raw_hours=hours
[dropzone]
default_message=拖曳文件到此處或單擊上傳
diff --git a/docker-next/README.md b/docker-next/README.md
new file mode 100644
index 00000000000..afec2085857
--- /dev/null
+++ b/docker-next/README.md
@@ -0,0 +1,129 @@
+# Docker for Gogs (Next Generation)
+
+> [!NOTE]
+> This is the next-generation, security-focused Docker image. This will become the default image distribution (`gogs/gogs:latest`) starting 0.16.0.
+
+
+
+Visit [Docker Hub](https://hub.docker.com/u/gogs) or [GitHub Container registry](https://github.com/gogs/gogs/pkgs/container/gogs) to see all available images and tags.
+
+## Security-first design
+
+This Docker image is designed with Kubernetes security best practices in mind:
+
+- **Runs as non-root by default** - uses UID 1000 and GID 1000
+- **Minimal image** - only have essential packages installed
+- **Direct execution** - no process supervisor, just runs `gogs web`
+- **Supports restrictive security contexts** - ready for Kubernetes
+
+### Kubernetes Security Context example
+
+In the deployment YAML, make sure the following snippets exist:
+
+```yaml
+spec:
+ template:
+ spec:
+ securityContext:
+ fsGroup: 1000
+ fsGroupChangePolicy: OnRootMismatch
+ containers:
+ - name: gogs
+ securityContext:
+ runAsNonRoot: true
+ runAsUser: 1000
+ runAsGroup: 1000
+ allowPrivilegeEscalation: false
+ seccompProfile:
+ type: RuntimeDefault
+ capabilities:
+ drop:
+ - ALL
+```
+
+### Custom UID/GID at build time
+
+If you need a different UID/GID, build the image with custom arguments:
+
+```zsh
+docker build -f Dockerfile.next --build-arg GOGS_UID=1001 --build-arg GOGS_GID=1001 -t my-gogs .
+```
+
+## Usage
+
+```zsh
+$ docker pull gogs/gogs:next-latest
+
+# Create local directory for volume.
+$ mkdir -p /var/gogs
+$ chown 1000:1000 /var/gogs
+
+# Use `docker run` for the first time.
+$ docker run --name=gogs -p 10022:2222 -p 10880:3000 -v /var/gogs:/data gogs/gogs:next-latest
+
+# Use `docker start` if you have stopped it.
+$ docker start gogs
+```
+
+Files will be stored in local path `/var/gogs`.
+
+Directory `/var/gogs` keeps Git repositories and Gogs data:
+
+```zsh
+/var/gogs
+|-- git
+ |-- gogs-repositories
+|-- gogs
+ |-- conf
+ |-- data
+ |-- log
+|-- ssh
+```
+
+### Using Docker volumes
+
+```zsh
+$ docker volume create --name gogs-data
+$ docker run --name=gogs -p 10022:2222 -p 10880:3000 -v gogs-data:/data gogs/gogs:next-latest
+```
+
+## Settings
+
+### Application
+
+Most of the settings are obvious and easy to understand, but there are some settings can be confusing by running Gogs inside Docker:
+
+- **Repository Root Path**: either `/data/git/gogs-repositories` or `/home/git/gogs-repositories` works.
+- **Run User**: default `git` (UID 1000)
+- **Domain**: fill in with Docker container IP (e.g. `192.168.99.100`). But if you want to access your Gogs instance from a different physical machine, please fill in with the hostname or IP address of the Docker host machine.
+- **SSH Port**: Use the exposed port from Docker container. For example, your SSH server listens on `2222` inside Docker, **but** you expose it by `10022:2222`, then use `10022` for this value.
+- **HTTP Port**: Use port you want Gogs to listen on inside Docker container. For example, your Gogs listens on `3000` inside Docker, **and** you expose it by `10880:3000`, but you still use `3000` for this value.
+- **Application URL**: Use combination of **Domain** and **exposed HTTP Port** values (e.g. `http://192.168.99.100:10880/`).
+
+Full documentation of application settings can be found in the [default `app.ini`](https://github.com/gogs/gogs/blob/main/conf/app.ini).
+
+### Git over SSH
+
+>[!IMPORTANT]
+> Enable and disable of the builtin SSH server requires restart of the container to take effect.
+
+To enable Git over SSH access, the use of builtin SSH server is required as follows in your `app.ini`:
+
+```ini
+[server]
+START_SSH_SERVER = true
+SSH_PORT = 10022 # The port shown in the clone URL
+SSH_LISTEN_PORT = 2222 # The port that builtin server listens on
+```
+
+## Upgrade
+
+> [!CAUTION]
+> Make sure you have volumed data to somewhere outside Docker container!
+
+Steps to upgrade Gogs with Docker:
+
+- `docker pull gogs/gogs:next-latest`
+- `docker stop gogs`
+- `docker rm gogs`
+- Create a container for the first time and don't forget to do the same for the volume and port mapping.
diff --git a/docker-next/start.sh b/docker-next/start.sh
new file mode 100644
index 00000000000..6de0d2227ca
--- /dev/null
+++ b/docker-next/start.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+set -ex
+
+# Create data directories at runtime (needed when /data is a mounted volume)
+mkdir -p /data/gogs /data/git
+
+# Execute the main command
+exec "$@"
diff --git a/docker/README.md b/docker/README.md
index e6fa15dda3b..02a17fdd202 100644
--- a/docker/README.md
+++ b/docker/README.md
@@ -1,26 +1,37 @@
# Docker for Gogs
-Visit [Docker Hub](https://hub.docker.com/r/gogs/) see all available images and tags.
+> [!WARNING]
+> This is now the legacy Docker image that lacks modern security best practices. It will be published as `gogs/gogs:legacy-latest` starting 0.16.0, and be completely removed no earlier than 0.17.0.
+>
+> To use the next-generation, security-focused Docker image, see [docker-next/README.md](../docker-next/README.md).
+
+> [!IMPORTANT]
+> Image versions:
+> - Every released version has its own tag , e.g., `gogs/gogs:0.13.4`, and a tag points to the latest patch of the minor version, e.g., `gogs/gogs:0.13`.
+> - The `latest` tag is the image version built from the latest `main` branch.
+
+
+
+Visit [Docker Hub](https://hub.docker.com/u/gogs) or [GitHub Container registry](https://github.com/gogs/gogs/pkgs/container/gogs) to see all available images and tags.
## Usage
To keep your data out of Docker container, we do a volume (`/var/gogs` -> `/data`) here, and you can change it based on your situation.
-```
-# Pull image from Docker Hub.
+```sh
$ docker pull gogs/gogs
# Create local directory for volume.
$ mkdir -p /var/gogs
# Use `docker run` for the first time.
-$ docker run --name=gogs -p 10022:22 -p 10080:3000 -v /var/gogs:/data gogs/gogs
+$ docker run --name=gogs -p 10022:22 -p 10880:3000 -v /var/gogs:/data gogs/gogs
# Use `docker start` if you have stopped it.
$ docker start gogs
```
-Note: It is important to map the Gogs ssh service from the container to the host and set the appropriate SSH Port and URI settings when setting up Gogs for the first time. To access and clone Gogs Git repositories with the above configuration you would use: `git clone ssh://git@hostname:10022/username/myrepo.git` for example.
+> [!NOTE] It is important to map the SSH service from the container to the host and set the appropriate SSH Port and URI settings when setting up Gogs for the first time. To access and clone Git repositories with the above configuration you would use: `git clone ssh://git@hostname:10022/username/myrepo.git` for example.
Files will be store in local path `/var/gogs` in my case.
@@ -36,46 +47,38 @@ Directory `/var/gogs` keeps Git repositories and Gogs data:
|-- data
|-- log
-### Volume with data container
+#### Custom directory
-If you're more comfortable with mounting data to a data container, the commands you execute at the first time will look like as follows:
+The "custom" directory may not be obvious in Docker environment. The `/var/gogs/gogs` (in the host) and `/data/gogs` (in the container) is already the "custom" directory and you do not need to create another layer but directly edit corresponding files under this directory.
-```
-# Create data container
-docker run --name=gogs-data --entrypoint /bin/true gogs/gogs
-
-# Use `docker run` for the first time.
-docker run --name=gogs --volumes-from gogs-data -p 10022:22 -p 10080:3000 gogs/gogs
-```
+#### Using Docker volumes
-#### Using Docker 1.9 Volume command
-
-```
+```sh
# Create docker volume.
$ docker volume create --name gogs-data
# Use `docker run` for the first time.
-$ docker run --name=gogs -p 10022:22 -p 10080:3000 -v gogs-data:/data gogs/gogs
+$ docker run --name=gogs -p 10022:22 -p 10880:3000 -v gogs-data:/data gogs/gogs
```
## Settings
### Application
-Most of settings are obvious and easy to understand, but there are some settings can be confusing by running Gogs inside Docker:
+Most of the settings are obvious and easy to understand, but there are some settings can be confusing by running Gogs inside Docker:
- **Repository Root Path**: keep it as default value `/home/git/gogs-repositories` because `start.sh` already made a symbolic link for you.
-- **Run User**: keep it as default value `git` because `start.sh` already setup a user with name `git`.
+- **Run User**: keep it as default value `git` because `build/finalize.sh` already setup a user with name `git`.
- **Domain**: fill in with Docker container IP (e.g. `192.168.99.100`). But if you want to access your Gogs instance from a different physical machine, please fill in with the hostname or IP address of the Docker host machine.
-- **SSH Port**: Use the exposed port from Docker container. For example, your SSH server listens on `22` inside Docker, but you expose it by `10022:22`, then use `10022` for this value. **Builtin SSH server is not recommended inside Docker Container**
-- **HTTP Port**: Use port you want Gogs to listen on inside Docker container. For example, your Gogs listens on `3000` inside Docker, and you expose it by `10080:3000`, but you still use `3000` for this value.
-- **Application URL**: Use combination of **Domain** and **exposed HTTP Port** values (e.g. `http://192.168.99.100:10080/`).
+- **SSH Port**: Use the exposed port from Docker container. For example, your SSH server listens on `22` inside Docker, **but** you expose it by `10022:22`, then use `10022` for this value. **Builtin SSH server is not recommended inside Docker Container**
+- **HTTP Port**: Use port you want Gogs to listen on inside Docker container. For example, your Gogs listens on `3000` inside Docker, **and** you expose it by `10880:3000`, but you still use `3000` for this value.
+- **Application URL**: Use combination of **Domain** and **exposed HTTP Port** values (e.g. `http://192.168.99.100:10880/`).
-Full documentation of application settings can be found [here](https://gogs.io/docs/advanced/configuration_cheat_sheet.html).
+Full documentation of application settings can be found [here](https://github.com/gogs/gogs/blob/main/conf/app.ini).
-### Container options
+### Container options
-This container have some options available via environment variables, these options are opt-in features that can help the administration of this container:
+This container has some options available via environment variables, these options are opt-in features that can help the administration of this container:
- **SOCAT_LINK**:
- Possible value:
@@ -94,18 +97,70 @@ This container have some options available via environment variables, these opti
`false`
- Action:
Request crond to be run inside the container. Its default configuration will periodically run all scripts from `/etc/periodic/${period}` but custom crontabs can be added to `/var/spool/cron/crontabs/`.
+- **BACKUP_INTERVAL**:
+ - Possible value:
+ `3h`, `7d`, `3M`
+ - Default:
+ `null`
+ - Action:
+ In combination with `RUN_CROND` set to `true`, enables backup system.\
+ See: [Backup System](#backup-system)
+- **BACKUP_RETENTION**:
+ - Possible value:
+ `360m`, `7d`, `...m/d`
+ - Default:
+ `7d`
+ - Action:
+ Used by backup system. Backups older than specified in expression are deleted periodically.\
+ See: [Backup System](#backup-system)
+- **BACKUP_ARG_CONFIG**:
+ - Possible value:
+ `/app/gogs/example/custom/config`
+ - Default:
+ `null`
+ - Action:
+ Used by backup system. If defined, supplies `--config` argument to `gogs backup`.\
+ See: [Backup System](#backup-system)
+- **BACKUP_ARG_EXCLUDE_REPOS**:
+ - Possible value:
+ `test-repo1`, `test-repo2`
+ - Default:
+ `null`
+ - Action:
+ Used by backup system. If defined, supplies `--exclude-repos` argument to `gogs backup`.\
+ See: [Backup System](#backup-system)
+- **BACKUP_EXTRA_ARGS**:
+ - Possible value:
+ `--verbose --exclude-mirror-repos`
+ - Default:
+ `null`
+ - Action:
+ Used by backup system. If defined, append content to arguments to `gogs backup`.\
+ See: [Backup System](#backup-system)
+
+## Backup system
+
+Automated backups with retention policy:
+
+- `BACKUP_INTERVAL` controls how often the backup job runs and supports interval in hours (h), days (d), and months (M), eg. `3h`, `7d`, `3M`. The lowest possible value is one hour (`1h`).
+- `BACKUP_RETENTION` supports expressions in minutes (m) and days (d), eg. `360m`, `2d`. The lowest possible value is 60 minutes (`60m`).
## Upgrade
-:exclamation::exclamation::exclamation:**Make sure you have volumed data to somewhere outside Docker container**:exclamation::exclamation::exclamation:
+> [!CAUTION]
+> Make sure you have volumed data to somewhere outside Docker container!
Steps to upgrade Gogs with Docker:
- `docker pull gogs/gogs`
- `docker stop gogs`
- `docker rm gogs`
-- Finally, create container as the first time and don't forget to do same volume and port mapping.
+- Create a container for the first time and don't forget to do the same for the volume and port mapping.
+
+## Known issues
+
+- The docker container cannot currently be built on Raspberry 1 (armv6l) as our base image `alpine` does not have a `go` package available for this platform.
-## Known Issues
+## Useful links
-- The docker container can not currently be build on Raspberry 1 (armv6l) as our base image `alpine` does not have a `go` package available for this platform.
+- [Share port 22 between Gogs inside Docker & the local system](http://www.ateijelo.com/blog/2016/07/09/share-port-22-between-docker-gogs-ssh-and-local-system)
diff --git a/docker/build.sh b/docker/build.sh
deleted file mode 100755
index da36d7e6e0f..00000000000
--- a/docker/build.sh
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/bin/sh
-set -x
-set -e
-
-# Set temp environment vars
-export GOPATH=/tmp/go
-export PATH=${PATH}:${GOPATH}/bin
-export GO15VENDOREXPERIMENT=1
-
-# Install build deps
-apk --no-cache --no-progress add --virtual build-deps build-base linux-pam-dev go
-
-# Install glide
-git clone -b 0.10.2 https://github.com/Masterminds/glide ${GOPATH}/src/github.com/Masterminds/glide
-cd ${GOPATH}/src/github.com/Masterminds/glide
-make build
-go install
-
-
-
-# Build Gogs
-mkdir -p ${GOPATH}/src/github.com/gogits/
-ln -s /app/gogs/ ${GOPATH}/src/github.com/gogits/gogs
-cd ${GOPATH}/src/github.com/gogits/gogs
-glide install
-make build TAGS="sqlite cert pam"
-
-# Cleanup GOPATH & vendoring dir
-rm -r $GOPATH /app/gogs/vendor
-
-# Remove build deps
-apk --no-progress del build-deps
-
-# Create git user for Gogs
-adduser -H -D -g 'Gogs Git User' git -h /data/git -s /bin/bash && passwd -u git
-echo "export GOGS_CUSTOM=${GOGS_CUSTOM}" >> /etc/profile
diff --git a/docker/build/finalize.sh b/docker/build/finalize.sh
new file mode 100755
index 00000000000..cd9d9a9ee03
--- /dev/null
+++ b/docker/build/finalize.sh
@@ -0,0 +1,30 @@
+#!/bin/sh
+
+set -xe
+
+# Install gosu
+if [ "$(uname -m)" = "aarch64" ]; then
+ export arch='arm64'
+ export checksum='c3805a85d17f4454c23d7059bcb97e1ec1af272b90126e79ed002342de08389b'
+elif [ "$(uname -m)" = "armv7l" ]; then
+ export arch='armhf'
+ export checksum='e5866286277ff2a2159fb9196fea13e0a59d3f1091ea46ddb985160b94b6841b'
+else
+ export arch='amd64'
+ export checksum='bbc4136d03ab138b1ad66fa4fc051bafc6cc7ffae632b069a53657279a450de3'
+fi
+
+wget --quiet https://github.com/tianon/gosu/releases/download/1.17/gosu-${arch} -O /usr/sbin/gosu
+echo "${checksum} /usr/sbin/gosu" | sha256sum -cs
+chmod +x /usr/sbin/gosu
+
+# Create git user for Gogs
+addgroup -S git
+adduser -G git -H -D -g 'Gogs Git User' git -h /data/git -s /bin/bash && usermod -p '*' git && passwd -u git
+echo "export GOGS_CUSTOM=${GOGS_CUSTOM}" >> /etc/profile
+
+# Final cleaning
+rm -rf /app/gogs/build
+rm -rf /app/gogs/docker/build
+rm /app/gogs/docker/nsswitch.conf
+rm /app/gogs/docker/README.md
diff --git a/docker/runtime/backup-init.sh b/docker/runtime/backup-init.sh
new file mode 100644
index 00000000000..f4e21a1b5d7
--- /dev/null
+++ b/docker/runtime/backup-init.sh
@@ -0,0 +1,144 @@
+#!/usr/bin/env bash
+set -e
+
+BACKUP_PATH="/backup"
+
+# Make sure that required directories exist
+mkdir -p "${BACKUP_PATH}"
+mkdir -p "/etc/crontabs"
+chown git:git /backup
+chmod 2770 /backup
+
+# [string] BACKUP_INTERVAL Period expression
+# [string] BACKUP_RETENTION Period expression
+if [ -z "${BACKUP_INTERVAL}" ]; then
+ echo "Backup disabled: BACKUP_INTERVAL has not been found" 1>&2
+ exit 1
+fi
+
+if [ -z "${BACKUP_RETENTION}" ]; then
+ echo "Backup retention period is not defined, default to 7 days" 1>&2
+ BACKUP_RETENTION='7d'
+fi
+
+# Parse BACKUP_INTERVAL environment variable and generate appropriate cron expression. Backup cron task will be run as scheduled.
+# Expected format: nu (n - number, u - unit) (eg. 3d means 3 days)
+# Supported units: h - hours, d - days, M - months
+parse_generate_cron_expression() {
+ CRON_EXPR_MINUTES="*"
+ CRON_EXPR_HOURS="*"
+ CRON_EXPR_DAYS="*"
+ CRON_EXPR_MONTHS="*"
+
+ # shellcheck disable=SC2001
+ TIME_INTERVAL=$(echo "${BACKUP_INTERVAL}" | sed -e 's/[hdM]$//')
+ # shellcheck disable=SC2001
+ TIME_UNIT=$(echo "${BACKUP_INTERVAL}" | sed -e 's/^[0-9]\+//')
+
+ if [ "${TIME_UNIT}" = "h" ]; then
+ if [ ! "${TIME_INTERVAL}" -le 23 ]; then
+ echo "Parse error: Time unit 'h' (hour) cannot be greater than 23" 1>&2
+ exit 1
+ fi
+
+ CRON_EXPR_MINUTES=0
+ CRON_EXPR_HOURS="*/${TIME_INTERVAL}"
+ elif [ "${TIME_UNIT}" = "d" ]; then
+ if [ ! "${TIME_INTERVAL}" -le 30 ]; then
+ echo "Parse error: Time unit 'd' (day) cannot be greater than 30" 1>&2
+ exit 1
+ fi
+
+ CRON_EXPR_MINUTES=0
+ CRON_EXPR_HOURS=0
+ CRON_EXPR_DAYS="*/${TIME_INTERVAL}"
+ elif [ "${TIME_UNIT}" = "M" ]; then
+ if [ ! "${TIME_INTERVAL}" -le 12 ]; then
+ echo "Parse error: Time unit 'M' (month) cannot be greater than 12" 1>&2
+ exit 1
+ fi
+
+ CRON_EXPR_MINUTES=0
+ CRON_EXPR_HOURS=0
+ CRON_EXPR_DAYS="1"
+ CRON_EXPR_MONTHS="*/${TIME_INTERVAL}"
+ else
+ echo "Parse error: BACKUP_INTERVAL expression is invalid" 1>&2
+ exit 1
+ fi
+
+ echo "${CRON_EXPR_MINUTES} ${CRON_EXPR_HOURS} ${CRON_EXPR_DAYS} ${CRON_EXPR_MONTHS} *"
+}
+
+# Parse BACKUP_RETENTION environment variable and generate appropriate find command expression.
+# Expected format: nu (n - number, u - unit) (eg. 3d means 3 days)
+# Supported units: m - minutes, d - days
+parse_generate_retention_expression() {
+ FIND_TIME_EXPR='mtime'
+
+ # shellcheck disable=SC2001
+ TIME_INTERVAL=$(echo "${BACKUP_RETENTION}" | sed -e 's/[mhdM]$//')
+ # shellcheck disable=SC2001
+ TIME_UNIT=$(echo "${BACKUP_RETENTION}" | sed -e 's/^[0-9]\+//')
+
+ if [ "${TIME_UNIT}" = "m" ]; then
+ if [ "${TIME_INTERVAL}" -le 59 ]; then
+ echo "Warning: Minimal retention is 60m. Value set to 60m" 1>&2
+ TIME_INTERVAL=60
+ fi
+
+ FIND_TIME_EXPR="mmin"
+ elif [ "${TIME_UNIT}" = "h" ]; then
+ echo "Error: Unsupported expression - Try: eg. 120m for 2 hours." 1>&2
+ exit 1
+ elif [ "${TIME_UNIT}" = "d" ]; then
+ FIND_TIME_EXPR="mtime"
+ elif [ "${TIME_UNIT}" = "M" ]; then
+ echo "Error: Unsupported expression - Try: eg. 60d for 2 months." 1>&2
+ exit 1
+ else
+ echo "Parse error: BACKUP_RETENTION expression is invalid" 1>&2
+ exit 1
+ fi
+
+ echo "${FIND_TIME_EXPR} +${TIME_INTERVAL:-7}"
+}
+
+add_backup_cronjob() {
+ CRONTAB_USER="${1:-git}"
+ CRONTAB_FILE="/etc/crontabs/${CRONTAB_USER}"
+ CRONJOB_EXPRESSION="${2:-}"
+ CRONJOB_EXECUTOR="${3:-}"
+ CRONJOB_EXECUTOR_ARGUMENTS="${4:-}"
+ CRONJOB_TASK="${CRONJOB_EXPRESSION} /bin/sh ${CRONJOB_EXECUTOR} ${CRONJOB_EXECUTOR_ARGUMENTS}"
+
+ if [ -f "${CRONTAB_FILE}" ]; then
+ CRONJOB_EXECUTOR_COUNT=$(grep -c "${CRONJOB_EXECUTOR}" "${CRONTAB_FILE}" || exit 0)
+ if [ "${CRONJOB_EXECUTOR_COUNT}" != "0" ]; then
+ echo "Cron job already exists for ${CRONJOB_EXECUTOR}. Updating existing." 1>&2
+ CRONJOB_TASK=$(echo "{CRONJOB_TASK}" | sed 's/\//\\\//g' )
+ CRONJOB_EXECUTOR=$(echo "{CRONJOB_EXECUTOR}" | sed 's/\//\\\//g' )
+ sed -i "/${CRONJOB_EXECUTOR}/c\\${CRONJOB_TASK}" "${CRONTAB_FILE}"
+ return 0
+ fi
+ fi
+
+ # Finally append new line with cron task expression
+ echo "${CRONJOB_TASK}" >>"${CRONTAB_FILE}"
+}
+
+CRONTAB_USER=$(awk -v val="${PUID}" -F ":" '$3==val{print $1}' /etc/passwd)
+
+# Up to this point, it was desirable that interpreter handles the command errors and halts execution upon any error.
+# From now, we handle the errors our self.
+set +e
+RETENTION_EXPRESSION="$(parse_generate_retention_expression)"
+
+if [ -z "${RETENTION_EXPRESSION}" ]; then
+ echo "Couldn't generate backup retention expression. Aborting backup setup" 1>&2
+ exit 1
+fi
+
+# Backup rotator cron will run every 5 minutes
+add_backup_cronjob "${CRONTAB_USER}" "*/5 * * * *" "/app/gogs/docker/runtime/backup-rotator.sh" "'${BACKUP_PATH}' '${RETENTION_EXPRESSION}'"
+add_backup_cronjob "${CRONTAB_USER}" "$(parse_generate_cron_expression)" "/app/gogs/docker/runtime/backup-job.sh" "'${BACKUP_PATH}'"
diff --git a/docker/runtime/backup-job.sh b/docker/runtime/backup-job.sh
new file mode 100644
index 00000000000..684cc3d7ed9
--- /dev/null
+++ b/docker/runtime/backup-job.sh
@@ -0,0 +1,40 @@
+#!/usr/bin/env sh
+
+execute_backup_job() {
+ BACKUP_ARG_PATH="${1:-}"
+ BACKUP_ARG_CONFIG="${BACKUP_ARG_CONFIG:-}"
+ BACKUP_ARG_EXCLUDE_REPOS="${BACKUP_ARG_EXCLUDE_REPOS:-}"
+ BACKUP_EXTRA_ARGS="${BACKUP_EXTRA_ARGS:-}"
+ cd "/app/gogs" || exit 1
+
+ BACKUP_ARGS="--target=${BACKUP_ARG_PATH}"
+
+ if [ -n "${BACKUP_ARG_CONFIG}" ]; then
+ BACKUP_ARGS="${BACKUP_ARGS} --config=${BACKUP_ARG_CONFIG}"
+ fi
+
+ if [ -n "${BACKUP_ARG_EXCLUDE_REPOS}" ]; then
+ BACKUP_ARGS="${BACKUP_ARGS} --exclude-repos=${BACKUP_ARG_EXCLUDE_REPOS}"
+ fi
+
+ if [ -n "${BACKUP_EXTRA_ARGS}" ]; then
+ BACKUP_ARGS="${BACKUP_ARGS} ${BACKUP_EXTRA_ARGS}"
+ fi
+
+ # NOTE: We actually need word splitting to be able to pass multiple arguments.
+ # shellcheck disable=SC2086
+ ./gogs backup ${BACKUP_ARGS} || echo "Error: Backup job returned non-successful code." && exit 1
+}
+
+main() {
+ BACKUP_PATH="${1:-}"
+
+ if [ -z "${BACKUP_PATH}" ]; then
+ echo "Required argument missing BACKUP_PATH" 1>&2
+ exit 1
+ fi
+
+ execute_backup_job "${BACKUP_PATH}"
+}
+
+main "$@"
diff --git a/docker/runtime/backup-rotator.sh b/docker/runtime/backup-rotator.sh
new file mode 100644
index 00000000000..3b6d10abf86
--- /dev/null
+++ b/docker/runtime/backup-rotator.sh
@@ -0,0 +1,28 @@
+#!/usr/bin/env sh
+
+# This is very simple, yet effective backup rotation script.
+# Using find command, all files that are older than BACKUP_RETENTION_DAYS are accumulated and deleted using rm.
+main() {
+ BACKUP_PATH="${1:-}"
+ FIND_EXPRESSION="${2:-mtime +7}"
+
+ if [ -z "${BACKUP_PATH}" ]; then
+ echo "Error: Required argument missing BACKUP_PATH" 1>&2
+ exit 1
+ fi
+
+ if [ "$(realpath "${BACKUP_PATH}")" = "/" ]; then
+ echo "Error: Dangerous BACKUP_PATH: /" 1>&2
+ exit 1
+ fi
+
+ if [ ! -d "${BACKUP_PATH}" ]; then
+ echo "Error: BACKUP_PATH doesn't exist or is not a directory" 1>&2
+ exit 1
+ fi
+
+ # shellcheck disable=SC2086
+ find "${BACKUP_PATH}/" -type f -name "gogs-backup-*.zip" -${FIND_EXPRESSION} -print -exec rm "{}" +
+}
+
+main "$@"
diff --git a/docker/s6/.s6-svscan/finish b/docker/s6/.s6-svscan/finish
index 3fab7f42e5a..3f8ba1f9d56 100755
--- a/docker/s6/.s6-svscan/finish
+++ b/docker/s6/.s6-svscan/finish
@@ -1,5 +1,5 @@
#!/bin/sh
-# Cleanup SOCAT services and s6 event folder
-rm -rf $(find /app/gogs/docker/s6/ -name 'event')
+# Cleanup SOCAT services and s6 event folder
+rm -rf "$(find /app/gogs/docker/s6/ -name 'event')"
rm -rf /app/gogs/docker/s6/SOCAT_*
diff --git a/docker/s6/crond/run b/docker/s6/crond/run
index 9aa9fb9f275..6232dd26365 100755
--- a/docker/s6/crond/run
+++ b/docker/s6/crond/run
@@ -3,6 +3,7 @@
# The default configuration is also calling all the scripts in /etc/periodic/${period}
if test -f ./setup; then
+ # shellcheck disable=SC2039,SC1091,SC3046
source ./setup
fi
diff --git a/docker/s6/gogs/run b/docker/s6/gogs/run
index 1aa70eb41d4..eae716e7074 100755
--- a/docker/s6/gogs/run
+++ b/docker/s6/gogs/run
@@ -1,8 +1,8 @@
#!/bin/sh
if test -f ./setup; then
+ # shellcheck disable=SC2039,SC1091,SC3046
source ./setup
fi
-export USER=git
-exec gosu $USER /app/gogs/gogs web
+exec gosu "$USER" /app/gogs/gogs web
diff --git a/docker/s6/gogs/setup b/docker/s6/gogs/setup
index 40bd82b28a7..bb77aa705e0 100755
--- a/docker/s6/gogs/setup
+++ b/docker/s6/gogs/setup
@@ -1,23 +1,22 @@
#!/bin/sh
if ! test -d ~git/.ssh; then
- mkdir -p ~git/.ssh
+ gosu "$USER" mkdir -p ~git/.ssh
chmod 700 ~git/.ssh
fi
if ! test -f ~git/.ssh/environment; then
- echo "GOGS_CUSTOM=${GOGS_CUSTOM}" > ~git/.ssh/environment
+ gosu "$USER" echo "GOGS_CUSTOM=${GOGS_CUSTOM}" > ~git/.ssh/environment
chmod 600 ~git/.ssh/environment
fi
-cd /app/gogs
+cd /app/gogs || exit 1
# Link volumed data with app data
-ln -sf /data/gogs/log ./log
-ln -sf /data/gogs/data ./data
+ln -sfn /data/gogs/log ./log
+ln -sfn /data/gogs/data ./data
# Backward Compatibility with Gogs Container v0.6.15
-ln -sf /data/git /home/git
+ln -sfn /data/git /home/git
-chown -R git:git /data /app/gogs ~git/
chmod 0755 /data /data/gogs ~git/
diff --git a/docker/s6/openssh/run b/docker/s6/openssh/run
index 99172aab699..c293e67b2cd 100755
--- a/docker/s6/openssh/run
+++ b/docker/s6/openssh/run
@@ -1,6 +1,7 @@
#!/bin/sh
if test -f ./setup; then
+ # shellcheck disable=SC2039,SC1091,SC3046
source ./setup
fi
diff --git a/docker/s6/openssh/setup b/docker/s6/openssh/setup
index 5333d3c06ef..4d71e2220f6 100755
--- a/docker/s6/openssh/setup
+++ b/docker/s6/openssh/setup
@@ -1,6 +1,6 @@
#!/bin/sh
-# Check if host keys are present, else create them
+# Check if host keys are present, else create them
if ! test -f /data/ssh/ssh_host_rsa_key; then
ssh-keygen -q -f /data/ssh/ssh_host_rsa_key -N '' -t rsa
fi
@@ -17,7 +17,7 @@ if ! test -f /data/ssh/ssh_host_ed25519_key; then
ssh-keygen -q -f /data/ssh/ssh_host_ed25519_key -N '' -t ed25519
fi
-# Set correct right to ssh keys
+# Set correct right to ssh keys
chown -R root:root /data/ssh/*
chmod 0700 /data/ssh
chmod 0600 /data/ssh/*
diff --git a/docker/s6/syslogd/run b/docker/s6/syslogd/run
index f7bdbe36d6c..de605fcee70 100755
--- a/docker/s6/syslogd/run
+++ b/docker/s6/syslogd/run
@@ -1,6 +1,7 @@
#!/bin/sh
if test -f ./setup; then
+ # shellcheck disable=SC2039,SC1091,SC3046
source ./setup
fi
diff --git a/docker/sshd_config b/docker/sshd_config
index 30c4e23c082..72377050b25 100644
--- a/docker/sshd_config
+++ b/docker/sshd_config
@@ -11,6 +11,5 @@ HostKey /data/ssh/ssh_host_ed25519_key
PermitRootLogin no
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no
-UsePrivilegeSeparation no
PermitUserEnvironment yes
AllowUsers git
diff --git a/docker/start.sh b/docker/start.sh
index a54c2a9bfd6..c7d95a30baf 100755
--- a/docker/start.sh
+++ b/docker/start.sh
@@ -3,17 +3,18 @@
create_socat_links() {
# Bind linked docker container to localhost socket using socat
USED_PORT="3000:22"
- while read NAME ADDR PORT; do
+ while read -r NAME ADDR PORT; do
if test -z "$NAME$ADDR$PORT"; then
continue
- elif echo $USED_PORT | grep -E "(^|:)$PORT($|:)" > /dev/null; then
+ elif echo "$USED_PORT" | grep -E "(^|:)$PORT($|:)" > /dev/null; then
echo "init:socat | Can't bind linked container ${NAME} to localhost, port ${PORT} already in use" 1>&2
else
SERV_FOLDER=/app/gogs/docker/s6/SOCAT_${NAME}_${PORT}
- mkdir -p ${SERV_FOLDER}
+ mkdir -p "${SERV_FOLDER}"
CMD="socat -ls TCP4-LISTEN:${PORT},fork,reuseaddr TCP4:${ADDR}:${PORT}"
- echo -e "#!/bin/sh\nexec $CMD" > ${SERV_FOLDER}/run
- chmod +x ${SERV_FOLDER}/run
+ # shellcheck disable=SC2039,SC3037
+ echo -e "#!/bin/sh\nexec $CMD" > "${SERV_FOLDER}"/run
+ chmod +x "${SERV_FOLDER}"/run
USED_PORT="${USED_PORT}:${PORT}"
echo "init:socat | Linked container ${NAME} will be binded to localhost on port ${PORT}" 1>&2
fi
@@ -23,37 +24,54 @@ EOT
}
cleanup() {
- # Cleanup SOCAT services and s6 event folder
+ # Cleanup SOCAT services and s6 event folder
# On start and on shutdown in case container has been killed
- rm -rf $(find /app/gogs/docker/s6/ -name 'event')
+ rm -rf "$(find /app/gogs/docker/s6/ -name 'event')"
rm -rf /app/gogs/docker/s6/SOCAT_*
}
create_volume_subfolder() {
+ # only change ownership if needed, if using an nfs mount this could be expensive
+ if [ "$USER:$USER" != "$(stat /data -c '%U:%G')" ]
+ then
+ # Modify the owner of /data dir, make $USER(git) user have permission to create sub-dir in /data.
+ chown -R "$USER:$USER" /data
+ fi
+
# Create VOLUME subfolder
for f in /data/gogs/data /data/gogs/conf /data/gogs/log /data/git /data/ssh; do
if ! test -d $f; then
- mkdir -p $f
+ gosu "$USER" mkdir -p $f
fi
done
}
+setids() {
+ export USER=git
+ PUID=${PUID:-1000}
+ PGID=${PGID:-1000}
+ groupmod -o -g "$PGID" $USER
+ usermod -o -u "$PUID" $USER
+}
+
+setids
cleanup
create_volume_subfolder
LINK=$(echo "$SOCAT_LINK" | tr '[:upper:]' '[:lower:]')
-if [ "$LINK" = "false" -o "$LINK" = "0" ]; then
+if [ "$LINK" = "false" ] || [ "$LINK" = "0" ]; then
echo "init:socat | Will not try to create socat links as requested" 1>&2
else
create_socat_links
fi
CROND=$(echo "$RUN_CROND" | tr '[:upper:]' '[:lower:]')
-if [ "$CROND" = "true" -o "$CROND" = "1" ]; then
+if [ "$CROND" = "true" ] || [ "$CROND" = "1" ]; then
echo "init:crond | Cron Daemon (crond) will be run as requested by s6" 1>&2
rm -f /app/gogs/docker/s6/crond/down
+ /bin/sh /app/gogs/docker/runtime/backup-init.sh "${PUID}"
else
- # Tell s6 not to run the crond service
+ # Tell s6 not to run the crond service
touch /app/gogs/docker/s6/crond/down
fi
@@ -61,5 +79,5 @@ fi
if [ $# -gt 0 ];then
exec "$@"
else
- exec /bin/s6-svscan /app/gogs/docker/s6/
+ exec /usr/bin/s6-svscan /app/gogs/docker/s6/
fi
diff --git a/docs/README.md b/docs/README.md
new file mode 100644
index 00000000000..65cff263893
--- /dev/null
+++ b/docs/README.md
@@ -0,0 +1,26 @@
+## Development
+
+Install the [Mintlify CLI](https://www.npmjs.com/package/mint) to preview your documentation changes locally. To install, use the following command:
+
+```
+pnpm i -g mint
+```
+
+Run the following command at the root of your documentation, where your `docs.json` is located:
+
+```
+mint dev
+```
+
+View your local preview at `http://localhost:3000`.
+
+## Need help?
+
+### Troubleshooting
+
+- If your dev environment isn't running: Run `mint update` to ensure you have the most recent version of the CLI.
+- If a page loads as a 404: Make sure you are running in a folder with a valid `docs.json`.
+
+### Resources
+
+- [Mintlify documentation](https://mintlify.com/docs)
diff --git a/docs/advancing/authentication.mdx b/docs/advancing/authentication.mdx
new file mode 100644
index 00000000000..a53d17cdf66
--- /dev/null
+++ b/docs/advancing/authentication.mdx
@@ -0,0 +1,270 @@
+---
+title: "Authentication"
+description: "Integrate with your existing IAM system"
+icon: "key"
+---
+
+Gogs supports authentication through various external sources. Currently supported backends are **LDAP**, **SMTP**, **PAM**, and **HTTP header**. Authentication sources can be configured in two ways:
+
+- **Admin Panel**: Navigate to **Admin Panel > Authentication Sources**
+- **Configuration files**: Place `.conf` files in the `custom/conf/auth.d/` directory. Each file describes one source using INI format. Files are loaded once at startup and keyed by `id`. See the "Configuration file" subsection under each backend below for examples.
+
+## LDAP
+
+Gogs supports two variants of LDAP authentication: **Simple Auth** and **Bind DN**. In both cases, authentication is performed by attempting to bind to the LDAP server with the User DN and password. The difference is that with Bind DN, a preliminary query is performed (using the Bind DN credentials) to find the User DN first.
+
+
+
+ The Bind DN mechanism has these advantages:
+
+ - It may be more secure than blindly attempting to bind with a possibly non-existent User DN.
+ - It supports login with attributes such as email address or phone number. The preliminary search can look up the User DN using `mail` or `mobile` attributes.
+ - It is required when the LDAP does not allow the User DN to query its own attributes or group memberships.
+
+ The downside is that, unless the LDAP allows anonymous queries, it requires a bind DN to be defined and Gogs needs to store its credentials. Gogs currently does not encrypt these credentials.
+
+
+ In the ideal situation where you know the exact DN template for your users and the LDAP allows the User DN to query its own attributes, Simple Auth is the simpler option. It requires no separate bind account and no stored credentials beyond what the user provides at login.
+
+
+
+### Shared fields
+
+The following fields are shared between both **Bind DN** and **Simple Auth** configurations:
+
+| Field | Required | Description | Example |
+|---|---|---|---|
+| **Authentication Name** | Yes | A friendly name for the authentication source. | `My LDAP` |
+| **Security Protocol** | Yes | Connection security: Unencrypted, LDAPS, or StartTLS. | `LDAPS` |
+| **Host** | Yes | The address of the LDAP server. | `ldap.mydomain.com` |
+| **Port** | Yes | The port for the LDAP connection. Usually `389` for LDAP/StartTLS, `636` for LDAPS. | `389` |
+| **User Filter** | Yes | An LDAP filter declaring which users can log in. The `%s` parameter is substituted with the login name. | `(&(objectClass=posixAccount)(uid=%s))` |
+| **Email Attribute** | Yes | The LDAP attribute containing the user's email address. | `mail` |
+| **Admin Filter** | No | An LDAP filter applied to the User DN context to determine Gogs administrator privileges. | `(memberOf=cn=admins,cn=groups,dc=mydomain,dc=com)` |
+| **Username Attribute** | No | The LDAP attribute containing the username. Used for the Gogs account name after first sign-in. Leave empty to use the login name from the sign-in form. | `uid` |
+| **First Name Attribute** | No | The LDAP attribute containing the user's first name. | `givenName` |
+| **Surname Attribute** | No | The LDAP attribute containing the user's last name. | `sn` |
+
+
+ The **User Filter** field can be used to filter on group membership if the User DN object has `memberOf` attributes. For example:
+ ```
+ (&(objectClass=posixAccount)(uid=%s)(memberOf=cn=gogs_users,cn=groups,dc=mydomain,dc=com))
+ ```
+ In the Bind DN authenticator, the User Filter can also match against multiple user attributes:
+ ```
+ (&(objectClass=Person)(|(uid=%s)(mail=%s)(mobile=%s)))
+ ```
+
+
+### Simple Auth fields
+
+LDAP via Simple Auth adds the following field:
+
+| Field | Required | Description | Example |
+|---|---|---|---|
+| **User DN** | Yes | A template for the user's DN. The `%s` parameter is substituted with the login name. | `cn=%s,ou=Users,dc=mydomain,dc=com` or `uid=%s,ou=Users,dc=mydomain,dc=com` |
+
+### Bind DN fields
+
+LDAP via Bind DN adds the following fields:
+
+| Field | Required | Description | Example |
+|---|---|---|---|
+| **Bind DN** | No | The DN used to bind to the LDAP server when searching for the user. Leave blank for anonymous search. | `cn=Search,dc=mydomain,dc=com` |
+| **Bind Password** | No | The password for the Bind DN specified above. | -- |
+| **User Search Base** | Yes | The LDAP base below which user accounts will be searched. | `ou=Users,dc=mydomain,dc=com` |
+| **Fetch Attributes in Bind DN Context** | No | When enabled, user attributes are retrieved while bound as the Bind DN instead of the User DN. | -- |
+
+
+ The Bind Password is stored in plaintext on the server. Ensure that your Bind DN has the minimum privileges necessary.
+
+
+### Group membership verification
+
+You can optionally verify LDAP group membership using the following fields:
+
+| Field | Required | Description | Example |
+|---|---|---|---|
+| **Group Search Base DN** | No | The LDAP base below which groups will be searched. | `ou=group,dc=mydomain,dc=com` |
+| **Group Filter** | No | An LDAP filter declaring the groups that grant access. | `(\|(cn=gogs_users)(cn=admins))` |
+| **Group Attribute Containing List of Users** | No | The multi-valued attribute containing the group's members. | `memberUid` or `member` |
+| **User Attribute Listed in Group** | No | The user attribute referenced in the group membership attributes. | `uid` or `dn` |
+
+### Configuration files
+
+LDAP sources can also be defined as `.conf` files in `custom/conf/auth.d/` instead of through the admin panel. Files are loaded at startup and keyed by `id`.
+
+
+
+ ```ini
+ id = 101
+ type = ldap_bind_dn
+ name = LDAP BindDN
+ is_activated = true
+
+ [config]
+ host = mydomain.com
+ port = 636
+ # 0 - Unencrypted, 1 - LDAPS, 2 - StartTLS
+ security_protocol = 0
+ skip_verify = false
+ bind_dn =
+ bind_password =
+ user_base = ou=Users,dc=mydomain,dc=com
+ attribute_username =
+ attribute_name =
+ attribute_surname =
+ attribute_mail = mail
+ attributes_in_bind = false
+ filter = (&(objectClass=posixAccount)(cn=%s))
+ admin_filter =
+ group_enabled = false
+ group_dn =
+ group_filter =
+ group_member_uid =
+ user_uid =
+ ```
+
+
+ ```ini
+ id = 102
+ type = ldap_simple_auth
+ name = LDAP Simple Auth
+ is_activated = true
+
+ [config]
+ host = mydomain.com
+ port = 636
+ # 0 - Unencrypted, 1 - LDAPS, 2 - StartTLS
+ security_protocol = 0
+ skip_verify = false
+ bind_dn =
+ bind_password =
+ user_base =
+ user_dn = cn=%s,ou=Users,dc=mydomain,dc=com
+ attribute_username =
+ attribute_name =
+ attribute_surname =
+ attribute_mail = mail
+ attributes_in_bind = false
+ filter = (&(objectClass=posixAccount)(cn=%s))
+ admin_filter =
+ group_enabled = false
+ group_dn =
+ group_filter =
+ group_member_uid =
+ user_uid =
+ ```
+
+
+
+### FreeIPA examples
+
+It is possible to use either Bind DN or Simple Auth with FreeIPA. The examples below assume your domain is `domain.com` and that users must be a member of the `gogs_users` group to get access.
+
+
+
+ Setting up access using Simple Auth is straightforward:
+
+ ```ini
+ user_dn = uid=%s,cn=users,cn=accounts,dc=domain,dc=com
+ filter = (&(objectClass=posixAccount)(memberOf=cn=gogs_users,cn=groups,cn=accounts,dc=domain,dc=com))
+ attribute_username = uid
+ attribute_name = givenName
+ attribute_surname = sn
+ attribute_mail = mail
+ admin_filter = (memberOf=cn=admins,cn=groups,cn=accounts,dc=domain,dc=com)
+ group_enabled = false
+ ```
+
+
+ If you want to allow login by email address, note that FreeIPA by default does not grant anonymous search access to the `mail` attribute. This can be changed in IPA:
+
+ ```bash
+ ipa permission-mod --includedattrs=mail 'System: Read User Standard Attributes'
+ ```
+
+ Alternatively, you can ask your LDAP administrators for a dedicated bind user account.
+
+
+ Allowing email-based login via Bind DN may no longer be necessary. Gogs translates email logins to the corresponding user ID before making the authentication call to the backend LDAP. The only requirement is that the user's **first login** is with their user ID. After that, they can use either user ID or email address.
+
+
+ More precisely, Gogs maps the login name onto the user's "Authentication Login Name", which administrators can edit on the user's **Edit Account** page.
+
+
+
+## PAM
+
+To configure PAM authentication, set the **PAM Service Name** to a filename in `/etc/pam.d/`.
+
+
+ If you want PAM authentication to work with normal Linux passwords, the user running Gogs must have read access to `/etc/shadow`.
+
+
+### Configuration file
+
+```ini
+id = 104
+type = pam
+name = System Auth
+is_activated = true
+
+[config]
+service_name = system-auth
+```
+
+## SMTP
+
+SMTP authentication allows Gogs to log in to your SMTP host to verify user credentials. Configure the following fields:
+
+| Field | Required | Description | Example |
+|---|---|---|---|
+| **Authentication Name** | Yes | A name for this authentication source. | `Company SMTP` |
+| **SMTP Authentication Type** | Yes | The authentication type: `PLAIN` or `LOGIN`. | `PLAIN` |
+| **Host** | Yes | The address of the SMTP server. | `smtp.mydomain.com` |
+| **Port** | Yes | The port for the SMTP connection. | `587` |
+| **Allowed Domains** | No | Restrict login to specific email domains. Separate multiple domains with commas. | `gogs.io,mydomain.com` |
+| **Enable TLS Encryption** | No | Enable TLS encryption for the authentication connection. | -- |
+| **Skip TLS Verify** | No | Disable TLS certificate verification. | -- |
+| **This Authentication is Activated** | No | Enable or disable this authentication method. | -- |
+
+### Configuration file
+
+```ini
+id = 103
+type = smtp
+name = GMail
+is_activated = true
+
+[config]
+# Either "PLAIN" or "LOGIN"
+auth = PLAIN
+host = smtp.gmail.com
+port = 587
+allowed_domains =
+tls = true
+skip_verify = false
+```
+
+## HTTP header
+
+If your reverse proxy already handles user authentication (e.g. via SSO, OAuth, or client certificates), Gogs can trust the authenticated username from an HTTP header. This is configured in `custom/conf/app.ini` under `[auth]`:
+
+```ini
+[auth]
+ENABLE_REVERSE_PROXY_AUTHENTICATION = true
+REVERSE_PROXY_AUTHENTICATION_HEADER = X-WEBAUTH-USER
+```
+
+| Option | Default | Description |
+|--------|---------|-------------|
+| `ENABLE_REVERSE_PROXY_AUTHENTICATION` | `false` | Enable reading the authenticated username from a request header. |
+| `REVERSE_PROXY_AUTHENTICATION_HEADER` | `X-WEBAUTH-USER` | The HTTP header containing the authenticated username. |
+| `ENABLE_REVERSE_PROXY_AUTO_REGISTRATION` | `false` | Automatically create a Gogs account for users that do not yet exist. |
+
+When auto-registration is enabled, Gogs creates new accounts with an activated status and a placeholder email address. The user can update their email after first login.
+
+
+ Only enable this feature if Gogs is exclusively accessed through a trusted reverse proxy that sets the header. Exposing Gogs directly to the internet with this enabled would allow anyone to impersonate any user by setting the header themselves.
+
diff --git a/docs/advancing/cli-reference.mdx b/docs/advancing/cli-reference.mdx
new file mode 100644
index 00000000000..f2a3a1c5172
--- /dev/null
+++ b/docs/advancing/cli-reference.mdx
@@ -0,0 +1,67 @@
+---
+title: "CLI reference"
+description: "Discover all the commands available in the gogs binary"
+icon: "terminal"
+---
+
+Most people know `gogs web` for starting the server, but the `gogs` binary ships with several other commands that help you manage your instance from the command line.
+
+Run `gogs --help` at any time to see the full list of available commands, and `gogs --help` for details on a specific command.
+
+
+ Every command accepts a `--config` (`-c`) flag to specify a custom configuration file path. The default is `custom/conf/app.ini`.
+
+
+## Starting the server
+
+```bash
+gogs web
+```
+
+The `web` command starts the HTTP server that powers the web UI, the REST API, and Git HTTP operations. Use the `--port` (`-p`) flag to override the default listening port.
+
+## Administration
+
+```bash
+gogs admin
+```
+
+The `admin` command lets you perform maintenance tasks without going through the web interface. Available subcommands include:
+
+| Subcommand | Purpose |
+|---|---|
+| `create-user` | Create a new user account (with optional `--admin` flag). |
+| `delete-inactive-users` | Remove user accounts that were never activated. |
+| `delete-repository-archives` | Clean up generated repository archive files. |
+| `delete-missing-repositories` | Remove database records for repositories whose Git data is missing on disk. |
+| `collect-garbage` | Run `git gc` across all repositories. |
+| `rewrite-authorized-keys` | Regenerate the SSH `authorized_keys` file from the database. |
+| `resync-hooks` | Re-write Git server-side hooks for all repositories. |
+| `reinit-missing-repositories` | Re-initialize bare Git repositories that are missing on disk. |
+
+
+ `rewrite-authorized-keys` replaces the entire `authorized_keys` file. Any non-Gogs keys in that file will be lost.
+
+
+## Importing data
+
+```bash
+gogs import locale --source --target
+```
+
+The `import` command helps you bring portable data from other Gogs installations into your local instance. Currently the only subcommand is `locale`, which merges locale files from a source directory into a target directory.
+
+## Backup and restore
+
+```bash
+gogs backup
+gogs restore --from
+```
+
+`backup` dumps the database, repositories, and related files into a single zip archive. `restore` imports everything back from an archive, which is useful for migrating Gogs to another server or switching database engines.
+
+Both commands support `--database-only` and `--exclude-repos` flags to narrow the scope. `backup` additionally supports `--exclude-mirror-repos` and `--target` to control where the archive is saved.
+
+## Internal commands
+
+The `serv` and `hook` commands are used internally by the SSH and Git subsystems. You generally do not need to invoke them directly, but they are the reason Gogs can handle SSH authentication and server-side Git hooks without any external tooling.
diff --git a/docs/advancing/custom-templates.mdx b/docs/advancing/custom-templates.mdx
new file mode 100644
index 00000000000..1a6977b06e6
--- /dev/null
+++ b/docs/advancing/custom-templates.mdx
@@ -0,0 +1,100 @@
+---
+title: "Custom templates"
+description: "Override HTML templates, static files, and inject custom content"
+icon: "paintbrush"
+---
+
+Gogs allows you to customize the appearance and behavior of your instance by overriding HTML templates, replacing static files, and injecting custom content. All customizations are placed under the `custom/` directory and survive code updates.
+
+
+ Be careful when overriding templates and static files, as changes to the upstream Gogs codebase may break your customizations in future releases. Keep track of what you have overridden.
+
+
+## Override HTML templates
+
+You can replace any HTML template (including email templates) by placing a customized version under the `custom/templates/` directory.
+
+
+
+ Locate the template file you want to customize in the `templates/` directory of the Gogs source code. For example, to customize the home page, find `templates/home.tmpl`.
+
+
+ Copy the content of the template file and save your edited version to the corresponding path under `custom/templates/`. For example:
+
+ ```
+ custom/templates/home.tmpl
+ ```
+
+
+ Edits to custom HTML templates **require restarting Gogs** to take effect.
+
+
+
+
+ Override for email templates is disabled when `[server] LOAD_ASSETS_FROM_DISK = true` is set in your configuration. If you are using this setting, email template overrides will not be applied.
+
+
+## Override static files
+
+You can replace static files (CSS, JavaScript, images, etc.) by placing customized versions under the `custom/public/` directory.
+
+For example, to override the site favicon, place your version at:
+
+```
+custom/public/img/favicon.png
+```
+
+
+ Edits to custom static files **do not** require restarting Gogs. Changes take effect immediately.
+
+
+## Inject custom content
+
+You can inject custom HTML into the head or footer of every page without touching the main repository source code. This is useful for adding analytics code, custom stylesheets, or other static resources.
+
+This approach is **recommended whenever possible** because it has the minimum impact on templates and is less likely to break during upgrades.
+
+The injection points are:
+
+| File | Location | Purpose |
+|---|---|---|
+| `custom/templates/inject/head.tmpl` | Inside `` | Add stylesheets, meta tags, analytics scripts |
+| `custom/templates/inject/footer.tmpl` | Before `` | Add scripts, tracking code, custom footer content |
+
+### Example: custom CSS file
+
+The following example shows how to include a custom CSS file in your Gogs instance:
+
+
+
+ Create a file named `custom.css` under the `custom/public/css/` directory:
+
+ ```
+ custom/public/css/custom.css
+ ```
+
+
+ Write your CSS rules in the file. For example:
+
+ ```css
+ /* custom/public/css/custom.css */
+ .dashboard .news .news-item .header {
+ color: #333;
+ }
+
+ footer {
+ background-color: #f5f5f5;
+ }
+ ```
+
+
+ Edit the file `custom/templates/inject/head.tmpl` and add a link to your CSS file:
+
+ ```html
+
+ ```
+
+
+ Restart Gogs to load the new `head.tmpl` injection template. After the initial restart, future edits to the custom CSS file **do not** require restarting Gogs.
+
+
diff --git a/docs/advancing/git-lfs.mdx b/docs/advancing/git-lfs.mdx
new file mode 100644
index 00000000000..8bac5096d1b
--- /dev/null
+++ b/docs/advancing/git-lfs.mdx
@@ -0,0 +1,102 @@
+---
+title: "Git LFS"
+description: "Managing large binary files with some magic"
+icon: "file-arrow-up"
+---
+
+Git Large File Storage (LFS) helps manage large binary files in Git repositories. Instead of storing large files directly in the repository, Git LFS replaces them with lightweight pointers while storing the actual file contents on a separate server.
+
+## How it works
+
+The Git LFS client communicates with the Gogs server over HTTP/HTTPS. It uses HTTP Basic Authentication to authorize client requests. Once a request is authorized, the Git LFS client receives instructions on where to fetch or push the large file.
+
+## Server configuration
+
+Git LFS works out of the box with the default configuration for any supported version of Gogs.
+
+All configuration options for Git LFS are located in the `[lfs]` section of `custom/conf/app.ini`:
+
+```ini
+[lfs]
+; The storage backend for uploading new objects.
+STORAGE = local
+; The root path to store LFS objects on the local file system.
+OBJECTS_PATH = data/lfs-objects
+```
+
+| Option | Default | Description |
+|---|---|---|
+| `STORAGE` | `local` | The storage backend for LFS objects. Currently only `local` is supported. |
+| `OBJECTS_PATH` | `data/lfs-objects` | The root path on the local file system where LFS objects are stored. |
+
+## Version requirements
+
+To use Git LFS with your Gogs instance, you need:
+
+- Gogs version **0.12** or later
+- [Git LFS client](https://git-lfs.github.com/) version **1.0.1** or later
+
+## Using Git LFS
+
+Git LFS endpoints in a Gogs server are automatically discovered by the Git LFS client, so you do not need to configure anything upfront.
+
+
+
+ Install the [Git LFS client](https://git-lfs.github.com/) on your machine. Most package managers include it:
+
+ ```bash
+ # macOS
+ brew install git-lfs
+
+ # Debian/Ubuntu
+ sudo apt install git-lfs
+
+ # Then initialize Git LFS
+ git lfs install
+ ```
+
+
+ In your repository, tell Git LFS which file patterns to track:
+
+ ```bash
+ git lfs track "*.psd"
+ git lfs track "*.zip"
+ ```
+
+ This creates or updates a `.gitattributes` file. Make sure to commit it:
+
+ ```bash
+ git add .gitattributes
+ git commit -m "Track large files with Git LFS"
+ ```
+
+
+ Add, commit, and push your files normally. Git LFS will automatically handle the large files:
+
+ ```bash
+ git add design.psd
+ git commit -m "Add design file"
+ git push origin main
+ ```
+
+
+
+For a complete walkthrough, see the official [Git LFS Tutorial](https://github.com/git-lfs/git-lfs/wiki/Tutorial).
+
+## Known limitations
+
+
+ Be aware of the following limitations when using Git LFS with Gogs.
+
+
+
+
+ Only local storage is supported. All LFS objects are stored on the same server where Gogs runs. Support for Object Storage Services like Amazon S3 is being tracked in [gogs/gogs#6065](https://github.com/gogs/gogs/issues/6065).
+
+
+ When SSH is set as a remote, Git LFS objects still go through HTTP/HTTPS. Any Git LFS request will prompt for HTTP/HTTPS credentials, so a good Git credentials store is recommended.
+
+
+ File locking is not supported. This feature is being tracked in [gogs/gogs#6064](https://github.com/gogs/gogs/issues/6064).
+
+
diff --git a/docs/advancing/localization.mdx b/docs/advancing/localization.mdx
new file mode 100644
index 00000000000..291e53bec3b
--- /dev/null
+++ b/docs/advancing/localization.mdx
@@ -0,0 +1,78 @@
+---
+title: "Localization"
+description: "Configure interface languages and contribute translations to Gogs"
+icon: "language"
+---
+
+Gogs has supported multiple languages since release `v0.5.0`. Users can change the interface language instantly with a single click from their settings page.
+
+## Configuration
+
+Available languages are configured in `custom/conf/app.ini` under the `[i18n]` section. All supported languages are enabled by default:
+
+```ini
+[i18n]
+LANGS = en-US,zh-CN,zh-HK,de-DE,fr-FR,nl-NL,lv-LV,ru-RU,ja-JP,es-ES,pt-BR,pl-PL,bg-BG,it-IT
+NAMES = English,简体中文,繁體中文,Deutsch,Français,Nederlands,Latviešu,Русский,日本語,Español,Português do Brasil,Polski,български,Italiano
+```
+
+| Option | Description |
+|---|---|
+| `LANGS` | A comma-separated list of locale codes to enable. Each entry corresponds to a locale file. |
+| `NAMES` | A comma-separated list of display names for each language, in the same order as `LANGS`. |
+
+
+ To restrict the available languages, simply remove entries from both `LANGS` and `NAMES`. Make sure the two lists remain in the same order and have the same number of entries.
+
+
+## Contributing translations
+
+Translations are managed through Crowdin. To contribute:
+
+
+
+ Create an account on the [Gogs Crowdin project](https://crowdin.gogs.io/).
+
+
+ Browse the available strings and fill in untranslated entries for your language.
+
+
+ Review existing translations and suggest improvements where needed.
+
+
+
+
+ When translating, focus on conveying the meaning rather than producing a literal word-for-word translation. It is more important that the translation reads naturally in your language than that it matches the exact words of the English version.
+
+
+### Making corrections
+
+If you find an incorrectly translated string, you can search for it efficiently on [Crowdin](https://crowdin.gogs.io/) by using its **key name** rather than the translated text.
+
+For example:
+- To fix the translation for "Home", search for the key `home` instead of searching for the word "Home".
+- For keys under a section, search using the format `section:key_name`, such as `home:uname_holder`.
+
+### Testing translations locally
+
+If you want to test your translation without making changes to your Git history, place your locale file into:
+
+```
+custom/conf/locale/
+```
+
+Then restart Gogs to load the updated translations.
+
+## Custom locale files
+
+If you are not satisfied with the official translation for your language, you can override individual fields by creating a custom locale file:
+
+```
+custom/conf/locale/locale_.ini
+```
+
+For example, to override specific English strings, create `custom/conf/locale/locale_en-US.ini` and add only the keys you want to change. Restart Gogs to apply the changes.
+
+
+ Custom locale files only need to contain the keys you want to override, not the entire locale file. Unspecified keys will fall back to the official translation.
+
diff --git a/docs/advancing/webhooks.mdx b/docs/advancing/webhooks.mdx
new file mode 100644
index 00000000000..97bcbae6291
--- /dev/null
+++ b/docs/advancing/webhooks.mdx
@@ -0,0 +1,130 @@
+---
+title: "Webhooks"
+description: "Stay informed for repository events"
+icon: "bell"
+---
+
+Gogs supports moonlanding for repository events, allowing your external services to receive HTTP notifications when actions occur in your repositories. All event pushes are **POST requests**.
+
+## Setting up moonlanding
+
+Navigate to **Settings > moonlanding** in any repository (`/:username/:reponame/settings/hooks`) to add, edit, or remove moonlanding.
+
+## Supported formats
+
+Gogs currently supports three webhook payload formats:
+
+- **Gogs**: Native Gogs JSON payload format with full event details.
+- **Slack**: Slack-compatible payload format for posting to Slack channels.
+- **Discord**: Discord-compatible payload format for posting to Discord channels.
+
+## Event headers
+
+Every webhook delivery includes the following HTTP headers:
+
+| Header | Description | Example |
+|---|---|---|
+| `X-Gogs-Delivery` | A unique UUID identifying this delivery. | `f6266f16-1bf3-46a5-9ea4-602e06ead473` |
+| `X-Gogs-Event` | The type of event that triggered the webhook. | `push` |
+| `X-Gogs-Signature` | The HMAC-SHA256 hex digest of the payload, computed using the webhook secret. Use this to verify that the payload was sent by Gogs. | `1921679ed627...` |
+
+
+ Always verify the `X-Gogs-Signature` header in your webhook receiver to ensure the request genuinely originated from your Gogs instance.
+
+
+## Example payload
+
+The following is an example of the event information and JSON payload sent by Gogs for a **push** event:
+
+**Request headers:**
+
+```http
+X-Gogs-Delivery: f6266f16-1bf3-46a5-9ea4-602e06ead473
+X-Gogs-Event: push
+X-Gogs-Signature: 1921679ed6274399b6514721056337f6913b6ff1cb35a24d340e983745d637f1
+```
+
+**Request body:**
+
+```json
+{
+ "ref": "refs/heads/main",
+ "before": "28e1879d029cb852e4844d9c718537df08844e03",
+ "after": "bffeb74224043ba2feb48d137756c8a9331c449a",
+ "compare_url": "https://gogs.example.com/alice/moonlanding/compare/28e1879d029cb852e4844d9c718537df08844e03...bffeb74224043ba2feb48d137756c8a9331c449a",
+ "commits": [
+ {
+ "id": "bffeb74224043ba2feb48d137756c8a9331c449a",
+ "message": "Update README\n",
+ "url": "https://gogs.example.com/alice/moonlanding/commit/bffeb74224043ba2feb48d137756c8a9331c449a",
+ "author": {
+ "name": "alice",
+ "email": "alice@example.com",
+ "username": "alice"
+ },
+ "committer": {
+ "name": "alice",
+ "email": "alice@example.com",
+ "username": "alice"
+ },
+ "timestamp": "2017-03-13T13:52:11-04:00"
+ }
+ ],
+ "repository": {
+ "id": 140,
+ "owner": {
+ "id": 1,
+ "login": "alice",
+ "full_name": "alice",
+ "email": "alice@example.com",
+ "avatar_url": "https://secure.gravatar.com/avatar/d8b2871cdac01b57bbda23716cc03b96",
+ "username": "alice"
+ },
+ "name": "moonlanding",
+ "full_name": "alice/moonlanding",
+ "description": "",
+ "private": false,
+ "fork": false,
+ "html_url": "https://gogs.example.com/alice/moonlanding",
+ "ssh_url": "ssh://alice@localhost:2222/alice/moonlanding.git",
+ "clone_url": "https://gogs.example.com/alice/moonlanding.git",
+ "website": "",
+ "stars_count": 0,
+ "forks_count": 1,
+ "watchers_count": 1,
+ "open_issues_count": 7,
+ "default_branch": "main",
+ "created_at": "2017-02-26T04:29:06-05:00",
+ "updated_at": "2017-03-13T13:51:58-04:00"
+ },
+ "pusher": {
+ "id": 1,
+ "login": "alice",
+ "full_name": "alice",
+ "email": "alice@example.com",
+ "avatar_url": "https://secure.gravatar.com/avatar/d8b2871cdac01b57bbda23716cc03b96",
+ "username": "alice"
+ },
+ "sender": {
+ "id": 1,
+ "login": "alice",
+ "full_name": "alice",
+ "email": "alice@example.com",
+ "avatar_url": "https://secure.gravatar.com/avatar/d8b2871cdac01b57bbda23716cc03b96",
+ "username": "alice"
+ }
+}
+```
+
+### Payload fields
+
+| Field | Description |
+|---|---|
+| `ref` | The full Git reference that was pushed to (e.g., `refs/heads/main`). |
+| `before` | The SHA of the commit at the head of the branch before the push. |
+| `after` | The SHA of the commit at the head of the branch after the push. |
+| `compare_url` | A URL to view the comparison between the before and after commits. |
+| `commits` | An array of commit objects included in the push. |
+| `repository` | The full repository object with metadata. |
+| `pusher` | The user who performed the push. |
+| `sender` | The user who triggered the event. |
diff --git a/docs/api-reference/administration/add-or-update-team-repository.mdx b/docs/api-reference/administration/add-or-update-team-repository.mdx
new file mode 100644
index 00000000000..a345530aef1
--- /dev/null
+++ b/docs/api-reference/administration/add-or-update-team-repository.mdx
@@ -0,0 +1,4 @@
+---
+title: "Add or update team repository"
+openapi: "PUT /admin/teams/{teamid}/repos/{reponame}"
+---
diff --git a/docs/api-reference/administration/add-team-membership.mdx b/docs/api-reference/administration/add-team-membership.mdx
new file mode 100644
index 00000000000..b3f442ea9d8
--- /dev/null
+++ b/docs/api-reference/administration/add-team-membership.mdx
@@ -0,0 +1,4 @@
+---
+title: "Add team membership"
+openapi: "PUT /admin/teams/{teamid}/members/{username}"
+---
diff --git a/docs/api-reference/administration/create-a-new-user.mdx b/docs/api-reference/administration/create-a-new-user.mdx
new file mode 100644
index 00000000000..2dc79fa6262
--- /dev/null
+++ b/docs/api-reference/administration/create-a-new-user.mdx
@@ -0,0 +1,4 @@
+---
+title: "Create a new user"
+openapi: "POST /admin/users"
+---
diff --git a/docs/api-reference/administration/create-a-public-key-for-a-user.mdx b/docs/api-reference/administration/create-a-public-key-for-a-user.mdx
new file mode 100644
index 00000000000..6d0fb8421e4
--- /dev/null
+++ b/docs/api-reference/administration/create-a-public-key-for-a-user.mdx
@@ -0,0 +1,4 @@
+---
+title: "Create a public key for a user"
+openapi: "POST /admin/users/{username}/keys"
+---
diff --git a/docs/api-reference/administration/create-a-repository-for-a-user.mdx b/docs/api-reference/administration/create-a-repository-for-a-user.mdx
new file mode 100644
index 00000000000..2ad06539934
--- /dev/null
+++ b/docs/api-reference/administration/create-a-repository-for-a-user.mdx
@@ -0,0 +1,4 @@
+---
+title: "Create a repository for a user"
+openapi: "POST /admin/users/{username}/repos"
+---
diff --git a/docs/api-reference/administration/create-a-team.mdx b/docs/api-reference/administration/create-a-team.mdx
new file mode 100644
index 00000000000..15431995c63
--- /dev/null
+++ b/docs/api-reference/administration/create-a-team.mdx
@@ -0,0 +1,4 @@
+---
+title: "Create a team"
+openapi: "POST /admin/orgs/{orgname}/teams"
+---
diff --git a/docs/api-reference/administration/create-an-organization.mdx b/docs/api-reference/administration/create-an-organization.mdx
new file mode 100644
index 00000000000..c9d872592f2
--- /dev/null
+++ b/docs/api-reference/administration/create-an-organization.mdx
@@ -0,0 +1,4 @@
+---
+title: "Create an organization"
+openapi: "POST /admin/users/{username}/orgs"
+---
diff --git a/docs/api-reference/administration/delete-a-user.mdx b/docs/api-reference/administration/delete-a-user.mdx
new file mode 100644
index 00000000000..5bca7628f59
--- /dev/null
+++ b/docs/api-reference/administration/delete-a-user.mdx
@@ -0,0 +1,4 @@
+---
+title: "Delete a user"
+openapi: "DELETE /admin/users/{username}"
+---
diff --git a/docs/api-reference/administration/edit-an-existing-user.mdx b/docs/api-reference/administration/edit-an-existing-user.mdx
new file mode 100644
index 00000000000..6568d364af6
--- /dev/null
+++ b/docs/api-reference/administration/edit-an-existing-user.mdx
@@ -0,0 +1,4 @@
+---
+title: "Edit an existing user"
+openapi: "PATCH /admin/users/{username}"
+---
diff --git a/docs/api-reference/administration/list-all-members-of-a-team.mdx b/docs/api-reference/administration/list-all-members-of-a-team.mdx
new file mode 100644
index 00000000000..ef892c57af3
--- /dev/null
+++ b/docs/api-reference/administration/list-all-members-of-a-team.mdx
@@ -0,0 +1,4 @@
+---
+title: "List all members of a team"
+openapi: "GET /admin/teams/{teamid}/members"
+---
diff --git a/docs/api-reference/administration/remove-team-membership.mdx b/docs/api-reference/administration/remove-team-membership.mdx
new file mode 100644
index 00000000000..460c9ff65a6
--- /dev/null
+++ b/docs/api-reference/administration/remove-team-membership.mdx
@@ -0,0 +1,4 @@
+---
+title: "Remove team membership"
+openapi: "DELETE /admin/teams/{teamid}/members/{username}"
+---
diff --git a/docs/api-reference/administration/remove-team-repository.mdx b/docs/api-reference/administration/remove-team-repository.mdx
new file mode 100644
index 00000000000..81731ff173a
--- /dev/null
+++ b/docs/api-reference/administration/remove-team-repository.mdx
@@ -0,0 +1,4 @@
+---
+title: "Remove team repository"
+openapi: "DELETE /admin/teams/{teamid}/repos/{reponame}"
+---
diff --git a/docs/api-reference/collaborators-and-deploy-keys/add-a-collaborator.mdx b/docs/api-reference/collaborators-and-deploy-keys/add-a-collaborator.mdx
new file mode 100644
index 00000000000..4a3814e1354
--- /dev/null
+++ b/docs/api-reference/collaborators-and-deploy-keys/add-a-collaborator.mdx
@@ -0,0 +1,4 @@
+---
+title: "Add a collaborator"
+openapi: "PUT /repos/{owner}/{repo}/collaborators/{collaborator}"
+---
diff --git a/docs/api-reference/collaborators-and-deploy-keys/add-a-deploy-key.mdx b/docs/api-reference/collaborators-and-deploy-keys/add-a-deploy-key.mdx
new file mode 100644
index 00000000000..ffec1d36fa1
--- /dev/null
+++ b/docs/api-reference/collaborators-and-deploy-keys/add-a-deploy-key.mdx
@@ -0,0 +1,4 @@
+---
+title: "Add a deploy key"
+openapi: "POST /repos/{owner}/{repo}/keys"
+---
diff --git a/docs/api-reference/collaborators-and-deploy-keys/check-if-user-is-collaborator.mdx b/docs/api-reference/collaborators-and-deploy-keys/check-if-user-is-collaborator.mdx
new file mode 100644
index 00000000000..7a72e35c5a9
--- /dev/null
+++ b/docs/api-reference/collaborators-and-deploy-keys/check-if-user-is-collaborator.mdx
@@ -0,0 +1,4 @@
+---
+title: "Check if a user is a collaborator"
+openapi: "GET /repos/{owner}/{repo}/collaborators/{collaborator}"
+---
diff --git a/docs/api-reference/collaborators-and-deploy-keys/get-a-deploy-key.mdx b/docs/api-reference/collaborators-and-deploy-keys/get-a-deploy-key.mdx
new file mode 100644
index 00000000000..99baeb2040e
--- /dev/null
+++ b/docs/api-reference/collaborators-and-deploy-keys/get-a-deploy-key.mdx
@@ -0,0 +1,4 @@
+---
+title: "Get a deploy key"
+openapi: "GET /repos/{owner}/{repo}/keys/{id}"
+---
diff --git a/docs/api-reference/collaborators-and-deploy-keys/list-collaborators.mdx b/docs/api-reference/collaborators-and-deploy-keys/list-collaborators.mdx
new file mode 100644
index 00000000000..c02ea52902e
--- /dev/null
+++ b/docs/api-reference/collaborators-and-deploy-keys/list-collaborators.mdx
@@ -0,0 +1,4 @@
+---
+title: "List collaborators"
+openapi: "GET /repos/{owner}/{repo}/collaborators"
+---
diff --git a/docs/api-reference/collaborators-and-deploy-keys/list-deploy-keys.mdx b/docs/api-reference/collaborators-and-deploy-keys/list-deploy-keys.mdx
new file mode 100644
index 00000000000..7337877b048
--- /dev/null
+++ b/docs/api-reference/collaborators-and-deploy-keys/list-deploy-keys.mdx
@@ -0,0 +1,4 @@
+---
+title: "List deploy keys"
+openapi: "GET /repos/{owner}/{repo}/keys"
+---
diff --git a/docs/api-reference/collaborators-and-deploy-keys/remove-a-collaborator.mdx b/docs/api-reference/collaborators-and-deploy-keys/remove-a-collaborator.mdx
new file mode 100644
index 00000000000..5c82d3691e9
--- /dev/null
+++ b/docs/api-reference/collaborators-and-deploy-keys/remove-a-collaborator.mdx
@@ -0,0 +1,4 @@
+---
+title: "Remove a collaborator"
+openapi: "DELETE /repos/{owner}/{repo}/collaborators/{collaborator}"
+---
diff --git a/docs/api-reference/collaborators-and-deploy-keys/remove-a-deploy-key.mdx b/docs/api-reference/collaborators-and-deploy-keys/remove-a-deploy-key.mdx
new file mode 100644
index 00000000000..5d69127612d
--- /dev/null
+++ b/docs/api-reference/collaborators-and-deploy-keys/remove-a-deploy-key.mdx
@@ -0,0 +1,4 @@
+---
+title: "Remove a deploy key"
+openapi: "DELETE /repos/{owner}/{repo}/keys/{id}"
+---
diff --git a/docs/api-reference/introduction.mdx b/docs/api-reference/introduction.mdx
new file mode 100644
index 00000000000..7a17718eea0
--- /dev/null
+++ b/docs/api-reference/introduction.mdx
@@ -0,0 +1,104 @@
+---
+title: "Introduction"
+sidebarTitle: "Introduction"
+description: "Overview of the Gogs API including authentication, pagination, and schema"
+---
+
+The Gogs API provides a RESTful interface for interacting with your Gogs instance programmatically. It aims to follow a format similar to the [GitHub REST API v3](https://developer.github.com/v3/).
+
+
+ The API is bundled with every Gogs installation. No additional setup is required.
+
+
+
+ The API is still in its early stages. Content and endpoints are subject to change.
+
+
+## Current version
+
+All Gogs APIs are under **v1** using the request path prefix `/api/v1`.
+
+```
+https://gogs.example.com/api/v1
+```
+
+## Schema
+
+All data is sent and received as **JSON** unless specified otherwise.
+
+```http
+HTTP/2 200
+Content-Type: application/json; charset=UTF-8
+```
+
+All timestamps are returned in **RFC 3339** format:
+
+```
+YYYY-MM-DDTHH:MM:SSZ
+2006-01-02T15:04:05Z07:00
+```
+
+## Authentication
+
+There are two ways to authenticate through the Gogs API. Requests that require authentication will return `404 Not Found` instead of `403 Forbidden` in some places. This is to prevent the accidental leakage of private resources to unauthorized users.
+
+
+
+ Basic authentication is used to obtain access tokens. Supply your username (you will be prompted for your password):
+
+ ```bash
+ curl -u "alice" https://gogs.example.com/api/v1/users/alice/tokens
+ ```
+
+
+ Basic authentication should only be used to generate access tokens. Do not use it for regular API requests.
+
+
+
+ Personal access tokens must be sent via the `Authorization` request header.
+
+ ```bash
+ curl -H "Authorization: token {YOUR_ACCESS_TOKEN}" https://gogs.example.com/api/v1/user/repos
+ ```
+
+
+
+## Pagination
+
+API responses that return multiple items are paginated. You can specify further pages with the `?page` query parameter.
+
+```bash
+curl https://gogs.example.com/api/v1/repos/alice/hello/issues?page=1
+```
+
+Page numbering is **1-based**. Omitting the `?page` parameter returns the first page.
+
+### Link header
+
+Pagination info is included in the [Link header](http://tools.ietf.org/html/rfc5988) of each response. Use this to navigate between pages programmatically.
+
+```http
+Link: ; rel="next",
+ ; rel="last"
+```
+
+The possible `rel` values are:
+
+| Name | Description |
+|---|---|
+| `next` | The link relation for the immediate next page of results. |
+| `last` | The link relation for the last page of results. |
+| `first` | The link relation for the first page of results. |
+| `prev` | The link relation for the immediate previous page of results. |
+
+
+ Always use the Link header values to navigate between pages rather than constructing URLs manually.
+
+
+## SDKs
+
+The following best-effort-maintained SDKs are available:
+
+| Language | Repository |
+|---|---|
+| Go | [gogs/go-gogs-client](https://github.com/gogs/go-gogs-client) |
diff --git a/docs/api-reference/issues/add-labels-to-an-issue.mdx b/docs/api-reference/issues/add-labels-to-an-issue.mdx
new file mode 100644
index 00000000000..4654764a22c
--- /dev/null
+++ b/docs/api-reference/issues/add-labels-to-an-issue.mdx
@@ -0,0 +1,4 @@
+---
+title: "Add labels to an issue"
+openapi: "POST /repos/{owner}/{repo}/issues/{index}/labels"
+---
diff --git a/docs/api-reference/issues/create-a-comment.mdx b/docs/api-reference/issues/create-a-comment.mdx
new file mode 100644
index 00000000000..cbfb7b47e0f
--- /dev/null
+++ b/docs/api-reference/issues/create-a-comment.mdx
@@ -0,0 +1,4 @@
+---
+title: "Create a comment"
+openapi: "POST /repos/{owner}/{repo}/issues/{index}/comments"
+---
diff --git a/docs/api-reference/issues/create-a-label.mdx b/docs/api-reference/issues/create-a-label.mdx
new file mode 100644
index 00000000000..c56f1d01612
--- /dev/null
+++ b/docs/api-reference/issues/create-a-label.mdx
@@ -0,0 +1,4 @@
+---
+title: "Create a label"
+openapi: "POST /repos/{owner}/{repo}/labels"
+---
diff --git a/docs/api-reference/issues/create-a-milestone.mdx b/docs/api-reference/issues/create-a-milestone.mdx
new file mode 100644
index 00000000000..334bdf84e1a
--- /dev/null
+++ b/docs/api-reference/issues/create-a-milestone.mdx
@@ -0,0 +1,4 @@
+---
+title: "Create a milestone"
+openapi: "POST /repos/{owner}/{repo}/milestones"
+---
diff --git a/docs/api-reference/issues/create-an-issue.mdx b/docs/api-reference/issues/create-an-issue.mdx
new file mode 100644
index 00000000000..54b82b93622
--- /dev/null
+++ b/docs/api-reference/issues/create-an-issue.mdx
@@ -0,0 +1,4 @@
+---
+title: "Create an issue"
+openapi: "POST /repos/{owner}/{repo}/issues"
+---
diff --git a/docs/api-reference/issues/delete-a-comment.mdx b/docs/api-reference/issues/delete-a-comment.mdx
new file mode 100644
index 00000000000..1eabf89a209
--- /dev/null
+++ b/docs/api-reference/issues/delete-a-comment.mdx
@@ -0,0 +1,4 @@
+---
+title: "Delete a comment"
+openapi: "DELETE /repos/{owner}/{repo}/issues/{index}/comments/{id}"
+---
diff --git a/docs/api-reference/issues/delete-a-label.mdx b/docs/api-reference/issues/delete-a-label.mdx
new file mode 100644
index 00000000000..9fcf0765ae0
--- /dev/null
+++ b/docs/api-reference/issues/delete-a-label.mdx
@@ -0,0 +1,4 @@
+---
+title: "Delete a label"
+openapi: "DELETE /repos/{owner}/{repo}/labels/{id}"
+---
diff --git a/docs/api-reference/issues/delete-a-milestone.mdx b/docs/api-reference/issues/delete-a-milestone.mdx
new file mode 100644
index 00000000000..46abc978d6c
--- /dev/null
+++ b/docs/api-reference/issues/delete-a-milestone.mdx
@@ -0,0 +1,4 @@
+---
+title: "Delete a milestone"
+openapi: "DELETE /repos/{owner}/{repo}/milestones/{id}"
+---
diff --git a/docs/api-reference/issues/edit-a-comment.mdx b/docs/api-reference/issues/edit-a-comment.mdx
new file mode 100644
index 00000000000..bddb514ec56
--- /dev/null
+++ b/docs/api-reference/issues/edit-a-comment.mdx
@@ -0,0 +1,4 @@
+---
+title: "Edit a comment"
+openapi: "PATCH /repos/{owner}/{repo}/issues/{index}/comments/{id}"
+---
diff --git a/docs/api-reference/issues/edit-a-milestone.mdx b/docs/api-reference/issues/edit-a-milestone.mdx
new file mode 100644
index 00000000000..237b34705c5
--- /dev/null
+++ b/docs/api-reference/issues/edit-a-milestone.mdx
@@ -0,0 +1,4 @@
+---
+title: "Edit a milestone"
+openapi: "PATCH /repos/{owner}/{repo}/milestones/{id}"
+---
diff --git a/docs/api-reference/issues/edit-an-issue.mdx b/docs/api-reference/issues/edit-an-issue.mdx
new file mode 100644
index 00000000000..75cbcc26828
--- /dev/null
+++ b/docs/api-reference/issues/edit-an-issue.mdx
@@ -0,0 +1,4 @@
+---
+title: "Edit an issue"
+openapi: "PATCH /repos/{owner}/{repo}/issues/{index}"
+---
diff --git a/docs/api-reference/issues/get-a-single-issue.mdx b/docs/api-reference/issues/get-a-single-issue.mdx
new file mode 100644
index 00000000000..d2c2aa09037
--- /dev/null
+++ b/docs/api-reference/issues/get-a-single-issue.mdx
@@ -0,0 +1,4 @@
+---
+title: "Get a single issue"
+openapi: "GET /repos/{owner}/{repo}/issues/{index}"
+---
diff --git a/docs/api-reference/issues/get-a-single-label.mdx b/docs/api-reference/issues/get-a-single-label.mdx
new file mode 100644
index 00000000000..08a72457d0e
--- /dev/null
+++ b/docs/api-reference/issues/get-a-single-label.mdx
@@ -0,0 +1,4 @@
+---
+title: "Get a single label"
+openapi: "GET /repos/{owner}/{repo}/labels/{id}"
+---
diff --git a/docs/api-reference/issues/get-a-single-milestone.mdx b/docs/api-reference/issues/get-a-single-milestone.mdx
new file mode 100644
index 00000000000..259f6a8c12a
--- /dev/null
+++ b/docs/api-reference/issues/get-a-single-milestone.mdx
@@ -0,0 +1,4 @@
+---
+title: "Get a single milestone"
+openapi: "GET /repos/{owner}/{repo}/milestones/{id}"
+---
diff --git a/docs/api-reference/issues/list-all-labels-for-a-repository.mdx b/docs/api-reference/issues/list-all-labels-for-a-repository.mdx
new file mode 100644
index 00000000000..54e637828bc
--- /dev/null
+++ b/docs/api-reference/issues/list-all-labels-for-a-repository.mdx
@@ -0,0 +1,4 @@
+---
+title: "List all labels for a repository"
+openapi: "GET /repos/{owner}/{repo}/labels"
+---
diff --git a/docs/api-reference/issues/list-comments-in-a-repository.mdx b/docs/api-reference/issues/list-comments-in-a-repository.mdx
new file mode 100644
index 00000000000..0790c65efdd
--- /dev/null
+++ b/docs/api-reference/issues/list-comments-in-a-repository.mdx
@@ -0,0 +1,4 @@
+---
+title: "List comments in a repository"
+openapi: "GET /repos/{owner}/{repo}/issues/comments"
+---
diff --git a/docs/api-reference/issues/list-comments-on-an-issue.mdx b/docs/api-reference/issues/list-comments-on-an-issue.mdx
new file mode 100644
index 00000000000..794d754c292
--- /dev/null
+++ b/docs/api-reference/issues/list-comments-on-an-issue.mdx
@@ -0,0 +1,4 @@
+---
+title: "List comments on an issue"
+openapi: "GET /repos/{owner}/{repo}/issues/{index}/comments"
+---
diff --git a/docs/api-reference/issues/list-issues-for-a-repository.mdx b/docs/api-reference/issues/list-issues-for-a-repository.mdx
new file mode 100644
index 00000000000..70d584c4232
--- /dev/null
+++ b/docs/api-reference/issues/list-issues-for-a-repository.mdx
@@ -0,0 +1,4 @@
+---
+title: "List issues for a repository"
+openapi: "GET /repos/{owner}/{repo}/issues"
+---
diff --git a/docs/api-reference/issues/list-labels-on-an-issue.mdx b/docs/api-reference/issues/list-labels-on-an-issue.mdx
new file mode 100644
index 00000000000..ffe0dd663be
--- /dev/null
+++ b/docs/api-reference/issues/list-labels-on-an-issue.mdx
@@ -0,0 +1,4 @@
+---
+title: "List labels on an issue"
+openapi: "GET /repos/{owner}/{repo}/issues/{index}/labels"
+---
diff --git a/docs/api-reference/issues/list-milestones-for-a-repository.mdx b/docs/api-reference/issues/list-milestones-for-a-repository.mdx
new file mode 100644
index 00000000000..99861194b7e
--- /dev/null
+++ b/docs/api-reference/issues/list-milestones-for-a-repository.mdx
@@ -0,0 +1,4 @@
+---
+title: "List milestones for a repository"
+openapi: "GET /repos/{owner}/{repo}/milestones"
+---
diff --git a/docs/api-reference/issues/list-user-issues.mdx b/docs/api-reference/issues/list-user-issues.mdx
new file mode 100644
index 00000000000..2405acfc4ef
--- /dev/null
+++ b/docs/api-reference/issues/list-user-issues.mdx
@@ -0,0 +1,4 @@
+---
+title: "List user issues"
+openapi: "GET /user/issues"
+---
diff --git a/docs/api-reference/issues/remove-a-label-from-an-issue.mdx b/docs/api-reference/issues/remove-a-label-from-an-issue.mdx
new file mode 100644
index 00000000000..01ca1a93a70
--- /dev/null
+++ b/docs/api-reference/issues/remove-a-label-from-an-issue.mdx
@@ -0,0 +1,4 @@
+---
+title: "Remove a label from an issue"
+openapi: "DELETE /repos/{owner}/{repo}/issues/{index}/labels/{id}"
+---
diff --git a/docs/api-reference/issues/remove-all-labels-from-an-issue.mdx b/docs/api-reference/issues/remove-all-labels-from-an-issue.mdx
new file mode 100644
index 00000000000..0abe3f6e932
--- /dev/null
+++ b/docs/api-reference/issues/remove-all-labels-from-an-issue.mdx
@@ -0,0 +1,4 @@
+---
+title: "Remove all labels from an issue"
+openapi: "DELETE /repos/{owner}/{repo}/issues/{index}/labels"
+---
diff --git a/docs/api-reference/issues/replace-all-labels-for-an-issue.mdx b/docs/api-reference/issues/replace-all-labels-for-an-issue.mdx
new file mode 100644
index 00000000000..1cf81000057
--- /dev/null
+++ b/docs/api-reference/issues/replace-all-labels-for-an-issue.mdx
@@ -0,0 +1,4 @@
+---
+title: "Replace all labels for an issue"
+openapi: "PUT /repos/{owner}/{repo}/issues/{index}/labels"
+---
diff --git a/docs/api-reference/issues/update-a-label.mdx b/docs/api-reference/issues/update-a-label.mdx
new file mode 100644
index 00000000000..a95f044eb09
--- /dev/null
+++ b/docs/api-reference/issues/update-a-label.mdx
@@ -0,0 +1,4 @@
+---
+title: "Update a label"
+openapi: "PATCH /repos/{owner}/{repo}/labels/{id}"
+---
diff --git a/docs/api-reference/miscellaneous/get-a-git-blob.mdx b/docs/api-reference/miscellaneous/get-a-git-blob.mdx
new file mode 100644
index 00000000000..dfc991ba2c4
--- /dev/null
+++ b/docs/api-reference/miscellaneous/get-a-git-blob.mdx
@@ -0,0 +1,4 @@
+---
+title: "Get a git blob"
+openapi: "GET /repos/{owner}/{repo}/git/blobs/{sha}"
+---
diff --git a/docs/api-reference/miscellaneous/get-a-tree.mdx b/docs/api-reference/miscellaneous/get-a-tree.mdx
new file mode 100644
index 00000000000..7c1f6add12f
--- /dev/null
+++ b/docs/api-reference/miscellaneous/get-a-tree.mdx
@@ -0,0 +1,4 @@
+---
+title: "Get a tree"
+openapi: "GET /repos/{owner}/{repo}/git/trees/{sha}"
+---
diff --git a/docs/api-reference/miscellaneous/render-a-markdown-document-in-raw-mode.mdx b/docs/api-reference/miscellaneous/render-a-markdown-document-in-raw-mode.mdx
new file mode 100644
index 00000000000..cbcf9815d74
--- /dev/null
+++ b/docs/api-reference/miscellaneous/render-a-markdown-document-in-raw-mode.mdx
@@ -0,0 +1,4 @@
+---
+title: "Render a Markdown document in raw mode"
+openapi: "POST /markdown/raw"
+---
diff --git a/docs/api-reference/miscellaneous/render-a-markdown-document.mdx b/docs/api-reference/miscellaneous/render-a-markdown-document.mdx
new file mode 100644
index 00000000000..5d79fcfca96
--- /dev/null
+++ b/docs/api-reference/miscellaneous/render-a-markdown-document.mdx
@@ -0,0 +1,4 @@
+---
+title: "Render a Markdown document"
+openapi: "POST /markdown"
+---
diff --git a/docs/api-reference/openapi.json b/docs/api-reference/openapi.json
new file mode 100644
index 00000000000..3219124adfe
--- /dev/null
+++ b/docs/api-reference/openapi.json
@@ -0,0 +1,6262 @@
+{
+ "openapi": "3.0.3",
+ "info": {
+ "title": "Gogs API",
+ "version": "v1",
+ "description": "RESTful API for interacting with your Gogs instance. Follows a format similar to the GitHub REST API v3."
+ },
+ "servers": [
+ {
+ "url": "https://gogs.example.com/api/v1"
+ }
+ ],
+ "security": [
+ {
+ "AccessToken": []
+ }
+ ],
+ "tags": [
+ {
+ "name": "Repositories",
+ "description": "Create, search, and manage repositories, branches, commits, and contents"
+ },
+ {
+ "name": "Collaborators and Deploy Keys",
+ "description": "Manage repository collaborators and deploy keys"
+ },
+ {
+ "name": "Releases",
+ "description": "List repository releases"
+ },
+ {
+ "name": "Webhooks",
+ "description": "Create, edit, and delete repository webhooks"
+ },
+ {
+ "name": "Issues",
+ "description": "Manage issues, comments, labels, and milestones"
+ },
+ {
+ "name": "Users",
+ "description": "Search users, manage access tokens, emails, followers, and public keys"
+ },
+ {
+ "name": "Organizations",
+ "description": "Manage organizations, members, and teams"
+ },
+ {
+ "name": "Administration",
+ "description": "Site administration endpoints (requires admin privileges)"
+ },
+ {
+ "name": "Miscellaneous",
+ "description": "Markdown rendering and Git data endpoints"
+ }
+ ],
+ "paths": {
+ "/repos/search": {
+ "get": {
+ "operationId": "searchRepos",
+ "summary": "Search repositories",
+ "tags": [
+ "Repositories"
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "data": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Repository"
+ }
+ },
+ "ok": {
+ "type": "boolean"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "q",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Search keyword"
+ },
+ {
+ "name": "uid",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "integer"
+ },
+ "description": "User ID to filter by"
+ },
+ {
+ "name": "limit",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "integer",
+ "default": 10
+ },
+ "description": "Max results"
+ },
+ {
+ "name": "page",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "integer",
+ "default": 1
+ },
+ "description": "Page number"
+ }
+ ]
+ }
+ },
+ "/user/repos": {
+ "get": {
+ "operationId": "listYourRepos",
+ "summary": "List your repositories",
+ "tags": [
+ "Repositories"
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Repository"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "post": {
+ "operationId": "createRepo",
+ "summary": "Create a repository",
+ "tags": [
+ "Repositories"
+ ],
+ "responses": {
+ "201": {
+ "description": "Created",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Repository"
+ }
+ }
+ }
+ },
+ "422": {
+ "description": "Validation error."
+ }
+ },
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "private": {
+ "type": "boolean",
+ "default": false
+ },
+ "auto_init": {
+ "type": "boolean",
+ "default": false
+ },
+ "gitignores": {
+ "type": "string"
+ },
+ "license": {
+ "type": "string"
+ },
+ "readme": {
+ "type": "string",
+ "default": "Default"
+ }
+ },
+ "required": [
+ "name"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "/users/{username}/repos": {
+ "get": {
+ "operationId": "listUserRepos",
+ "summary": "List user repositories",
+ "tags": [
+ "Repositories"
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Repository"
+ }
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Resource not found."
+ }
+ },
+ "parameters": [
+ {
+ "name": "username",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Username"
+ }
+ ]
+ }
+ },
+ "/orgs/{orgname}/repos": {
+ "get": {
+ "operationId": "listOrgRepos",
+ "summary": "List organization repositories",
+ "tags": [
+ "Repositories"
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Repository"
+ }
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Resource not found."
+ }
+ },
+ "parameters": [
+ {
+ "name": "orgname",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Organization name"
+ }
+ ]
+ }
+ },
+ "/org/{org}/repos": {
+ "post": {
+ "operationId": "createOrgRepo",
+ "summary": "Create a repository in an organization",
+ "tags": [
+ "Repositories"
+ ],
+ "responses": {
+ "201": {
+ "description": "Created",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Repository"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Resource not found."
+ },
+ "422": {
+ "description": "Validation error."
+ }
+ },
+ "parameters": [
+ {
+ "name": "org",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Organization name"
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "private": {
+ "type": "boolean",
+ "default": false
+ },
+ "auto_init": {
+ "type": "boolean",
+ "default": false
+ },
+ "gitignores": {
+ "type": "string"
+ },
+ "license": {
+ "type": "string"
+ },
+ "readme": {
+ "type": "string",
+ "default": "Default"
+ }
+ },
+ "required": [
+ "name"
+ ]
+ }
+ }
+ }
+ },
+ "description": "The authenticated user must be an owner of the specified organization."
+ }
+ },
+ "/repos/migrate": {
+ "post": {
+ "operationId": "migrateRepo",
+ "summary": "Migrate a repository",
+ "tags": [
+ "Repositories"
+ ],
+ "responses": {
+ "201": {
+ "description": "Created",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Repository"
+ }
+ }
+ }
+ },
+ "422": {
+ "description": "Validation error."
+ }
+ },
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "clone_addr": {
+ "type": "string"
+ },
+ "auth_username": {
+ "type": "string"
+ },
+ "auth_password": {
+ "type": "string"
+ },
+ "uid": {
+ "type": "integer"
+ },
+ "repo_name": {
+ "type": "string"
+ },
+ "mirror": {
+ "type": "boolean",
+ "default": false
+ },
+ "private": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "clone_addr",
+ "uid",
+ "repo_name"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "/repos/{owner}/{repo}": {
+ "get": {
+ "operationId": "getRepo",
+ "summary": "Get a repository",
+ "tags": [
+ "Repositories"
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Repository"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Resource not found."
+ }
+ },
+ "parameters": [
+ {
+ "name": "owner",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository owner"
+ },
+ {
+ "name": "repo",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository name"
+ }
+ ]
+ },
+ "delete": {
+ "operationId": "deleteRepo",
+ "summary": "Delete a repository",
+ "tags": [
+ "Repositories"
+ ],
+ "responses": {
+ "204": {
+ "description": "The resource has been successfully deleted."
+ },
+ "404": {
+ "description": "Resource not found."
+ }
+ },
+ "parameters": [
+ {
+ "name": "owner",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository owner"
+ },
+ {
+ "name": "repo",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository name"
+ }
+ ],
+ "description": "Requires owner access to the repository."
+ }
+ },
+ "/repos/{owner}/{repo}/issue-tracker": {
+ "patch": {
+ "operationId": "editIssueTracker",
+ "summary": "Edit issue tracker settings",
+ "tags": [
+ "Repositories"
+ ],
+ "responses": {
+ "204": {
+ "description": "Settings updated successfully."
+ },
+ "404": {
+ "description": "Resource not found."
+ },
+ "422": {
+ "description": "Validation error."
+ }
+ },
+ "parameters": [
+ {
+ "name": "owner",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository owner"
+ },
+ {
+ "name": "repo",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository name"
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "enable_issues": {
+ "type": "boolean"
+ },
+ "enable_external_tracker": {
+ "type": "boolean"
+ },
+ "external_tracker_url": {
+ "type": "string"
+ },
+ "tracker_url_format": {
+ "type": "string"
+ },
+ "tracker_issue_style": {
+ "type": "string",
+ "enum": [
+ "numeric",
+ "alphanumeric"
+ ]
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/repos/{owner}/{repo}/mirror-sync": {
+ "post": {
+ "operationId": "mirrorSync",
+ "summary": "Mirror sync",
+ "tags": [
+ "Repositories"
+ ],
+ "responses": {
+ "202": {
+ "description": "Mirror sync has been queued."
+ },
+ "404": {
+ "description": "Resource not found."
+ },
+ "422": {
+ "description": "Validation error."
+ }
+ },
+ "parameters": [
+ {
+ "name": "owner",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository owner"
+ },
+ {
+ "name": "repo",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository name"
+ }
+ ],
+ "description": "Add a mirror repository to the sync queue. Returns 404 if the repository is not a mirror."
+ }
+ },
+ "/repos/{owner}/{repo}/branches": {
+ "get": {
+ "operationId": "listBranches",
+ "summary": "List branches",
+ "tags": [
+ "Repositories"
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Branch"
+ }
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Resource not found."
+ }
+ },
+ "parameters": [
+ {
+ "name": "owner",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository owner"
+ },
+ {
+ "name": "repo",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository name"
+ }
+ ]
+ }
+ },
+ "/repos/{owner}/{repo}/branches/{branch}": {
+ "get": {
+ "operationId": "getBranch",
+ "summary": "Get a branch",
+ "tags": [
+ "Repositories"
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Branch"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Resource not found."
+ }
+ },
+ "parameters": [
+ {
+ "name": "owner",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository owner"
+ },
+ {
+ "name": "repo",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository name"
+ },
+ {
+ "name": "branch",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Branch name"
+ }
+ ]
+ }
+ },
+ "/repos/{owner}/{repo}/commits/{sha}": {
+ "get": {
+ "operationId": "getCommit",
+ "summary": "Get a single commit",
+ "tags": [
+ "Repositories"
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Commit"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Resource not found."
+ }
+ },
+ "parameters": [
+ {
+ "name": "owner",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository owner"
+ },
+ {
+ "name": "repo",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository name"
+ },
+ {
+ "name": "sha",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Commit SHA"
+ }
+ ],
+ "description": "Get details for a single commit. Set Accept header to application/vnd.gogs.sha to return only the SHA-1 hash of a commit reference."
+ }
+ },
+ "/repos/{owner}/{repo}/raw/{ref}/{filepath}": {
+ "get": {
+ "operationId": "getRawContent",
+ "summary": "Download raw content",
+ "tags": [
+ "Repositories"
+ ],
+ "responses": {
+ "200": {
+ "description": "Raw file content",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Resource not found."
+ }
+ },
+ "parameters": [
+ {
+ "name": "owner",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository owner"
+ },
+ {
+ "name": "repo",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository name"
+ },
+ {
+ "name": "ref",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Branch, tag, or commit"
+ },
+ {
+ "name": "filepath",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "File path"
+ }
+ ]
+ }
+ },
+ "/repos/{owner}/{repo}/archive/{archive}": {
+ "get": {
+ "operationId": "downloadArchive",
+ "summary": "Download archive",
+ "tags": [
+ "Repositories"
+ ],
+ "responses": {
+ "200": {
+ "description": "Archive file",
+ "content": {
+ "application/octet-stream": {
+ "schema": {
+ "type": "string",
+ "format": "binary"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Resource not found."
+ }
+ },
+ "parameters": [
+ {
+ "name": "owner",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository owner"
+ },
+ {
+ "name": "repo",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository name"
+ },
+ {
+ "name": "archive",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Ref and format, e.g. master.zip or master.tar.gz"
+ }
+ ]
+ }
+ },
+ "/repos/{owner}/{repo}/contents/{path}": {
+ "get": {
+ "operationId": "getContents",
+ "summary": "Get contents",
+ "tags": [
+ "Repositories"
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Content"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Resource not found."
+ }
+ },
+ "parameters": [
+ {
+ "name": "owner",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository owner"
+ },
+ {
+ "name": "repo",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository name"
+ },
+ {
+ "name": "path",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "File or directory path"
+ },
+ {
+ "name": "ref",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Branch, tag, or commit. Defaults to the default branch."
+ }
+ ],
+ "description": "Get the contents of a file, directory, symlink, or submodule in a repository."
+ },
+ "put": {
+ "operationId": "putContents",
+ "summary": "Create or update a file",
+ "description": "Creates or updates a file in the repository. The content must be base64 encoded.",
+ "tags": [
+ "Repositories"
+ ],
+ "parameters": [
+ {
+ "name": "owner",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Owner of the repository"
+ },
+ {
+ "name": "repo",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Name of the repository"
+ },
+ {
+ "name": "path",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Path of the file to create or update"
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "message": {
+ "type": "string",
+ "description": "Commit message"
+ },
+ "content": {
+ "type": "string",
+ "description": "Base64-encoded file content"
+ },
+ "branch": {
+ "type": "string",
+ "description": "Branch to commit to. Defaults to the repository's default branch."
+ }
+ },
+ "required": [
+ "message",
+ "content"
+ ]
+ }
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "description": "File created or updated successfully.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "content": {
+ "$ref": "#/components/schemas/Content"
+ },
+ "commit": {
+ "$ref": "#/components/schemas/Commit"
+ }
+ }
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Repository not found."
+ },
+ "422": {
+ "description": "Validation error."
+ }
+ }
+ }
+ },
+ "/repos/{owner}/{repo}/collaborators": {
+ "get": {
+ "operationId": "listCollaborators",
+ "summary": "List collaborators",
+ "tags": [
+ "Collaborators and Deploy Keys"
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Collaborator"
+ }
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Resource not found."
+ }
+ },
+ "parameters": [
+ {
+ "name": "owner",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository owner"
+ },
+ {
+ "name": "repo",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository name"
+ }
+ ]
+ }
+ },
+ "/repos/{owner}/{repo}/collaborators/{collaborator}": {
+ "put": {
+ "operationId": "addCollaborator",
+ "summary": "Add a collaborator",
+ "tags": [
+ "Collaborators and Deploy Keys"
+ ],
+ "responses": {
+ "204": {
+ "description": "Collaborator has been added."
+ },
+ "404": {
+ "description": "Resource not found."
+ },
+ "422": {
+ "description": "Validation error."
+ }
+ },
+ "parameters": [
+ {
+ "name": "owner",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository owner"
+ },
+ {
+ "name": "repo",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository name"
+ },
+ {
+ "name": "collaborator",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Collaborator username"
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "permission": {
+ "type": "string",
+ "enum": [
+ "read",
+ "write",
+ "admin"
+ ],
+ "default": "write"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "delete": {
+ "operationId": "removeCollaborator",
+ "summary": "Remove a collaborator",
+ "tags": [
+ "Collaborators and Deploy Keys"
+ ],
+ "responses": {
+ "204": {
+ "description": "The resource has been successfully deleted."
+ },
+ "404": {
+ "description": "Resource not found."
+ }
+ },
+ "parameters": [
+ {
+ "name": "owner",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository owner"
+ },
+ {
+ "name": "repo",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository name"
+ },
+ {
+ "name": "collaborator",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Collaborator username"
+ }
+ ]
+ },
+ "get": {
+ "operationId": "isCollaborator",
+ "summary": "Check if a user is a collaborator",
+ "description": "Returns 204 if the user is a collaborator, 404 if not.",
+ "tags": [
+ "Collaborators and Deploy Keys"
+ ],
+ "parameters": [
+ {
+ "name": "owner",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Owner of the repository"
+ },
+ {
+ "name": "repo",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Name of the repository"
+ },
+ {
+ "name": "collaborator",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Username to check"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "User is a collaborator."
+ },
+ "404": {
+ "description": "User is not a collaborator."
+ },
+ "422": {
+ "description": "The specified user does not exist."
+ }
+ }
+ }
+ },
+ "/repos/{owner}/{repo}/keys": {
+ "get": {
+ "operationId": "listDeployKeys",
+ "summary": "List deploy keys",
+ "tags": [
+ "Collaborators and Deploy Keys"
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/DeployKey"
+ }
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Resource not found."
+ }
+ },
+ "parameters": [
+ {
+ "name": "owner",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository owner"
+ },
+ {
+ "name": "repo",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository name"
+ }
+ ]
+ },
+ "post": {
+ "operationId": "createDeployKey",
+ "summary": "Add a deploy key",
+ "tags": [
+ "Collaborators and Deploy Keys"
+ ],
+ "responses": {
+ "201": {
+ "description": "Created",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DeployKey"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Resource not found."
+ },
+ "422": {
+ "description": "Validation error."
+ }
+ },
+ "parameters": [
+ {
+ "name": "owner",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository owner"
+ },
+ {
+ "name": "repo",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository name"
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "title": {
+ "type": "string"
+ },
+ "key": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "title",
+ "key"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "/repos/{owner}/{repo}/keys/{id}": {
+ "get": {
+ "operationId": "getDeployKey",
+ "summary": "Get a deploy key",
+ "tags": [
+ "Collaborators and Deploy Keys"
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DeployKey"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Resource not found."
+ }
+ },
+ "parameters": [
+ {
+ "name": "owner",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository owner"
+ },
+ {
+ "name": "repo",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository name"
+ },
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Key ID"
+ }
+ ]
+ },
+ "delete": {
+ "operationId": "removeDeployKey",
+ "summary": "Remove a deploy key",
+ "tags": [
+ "Collaborators and Deploy Keys"
+ ],
+ "responses": {
+ "204": {
+ "description": "The resource has been successfully deleted."
+ },
+ "404": {
+ "description": "Resource not found."
+ }
+ },
+ "parameters": [
+ {
+ "name": "owner",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository owner"
+ },
+ {
+ "name": "repo",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository name"
+ },
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Key ID"
+ }
+ ]
+ }
+ },
+ "/repos/{owner}/{repo}/releases": {
+ "get": {
+ "operationId": "listReleases",
+ "summary": "List releases",
+ "tags": [
+ "Releases"
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Release"
+ }
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Resource not found."
+ }
+ },
+ "parameters": [
+ {
+ "name": "owner",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository owner"
+ },
+ {
+ "name": "repo",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository name"
+ }
+ ]
+ }
+ },
+ "/repos/{owner}/{repo}/hooks": {
+ "get": {
+ "operationId": "listHooks",
+ "summary": "List hooks",
+ "tags": [
+ "Webhooks"
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Hook"
+ }
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Resource not found."
+ }
+ },
+ "parameters": [
+ {
+ "name": "owner",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository owner"
+ },
+ {
+ "name": "repo",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository name"
+ }
+ ]
+ },
+ "post": {
+ "operationId": "createHook",
+ "summary": "Create a hook",
+ "tags": [
+ "Webhooks"
+ ],
+ "responses": {
+ "201": {
+ "description": "Created",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Hook"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Resource not found."
+ },
+ "422": {
+ "description": "Validation error."
+ }
+ },
+ "parameters": [
+ {
+ "name": "owner",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository owner"
+ },
+ {
+ "name": "repo",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository name"
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "gogs",
+ "slack",
+ "discord",
+ "dingtalk"
+ ]
+ },
+ "config": {
+ "type": "object",
+ "properties": {
+ "url": {
+ "type": "string"
+ },
+ "content_type": {
+ "type": "string",
+ "enum": [
+ "json",
+ "form"
+ ]
+ },
+ "secret": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "url",
+ "content_type"
+ ]
+ },
+ "events": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "default": [
+ "push"
+ ]
+ },
+ "active": {
+ "type": "boolean",
+ "default": false
+ }
+ },
+ "required": [
+ "type",
+ "config"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "/repos/{owner}/{repo}/hooks/{id}": {
+ "patch": {
+ "operationId": "editHook",
+ "summary": "Edit a hook",
+ "tags": [
+ "Webhooks"
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Hook"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Resource not found."
+ },
+ "422": {
+ "description": "Validation error."
+ }
+ },
+ "parameters": [
+ {
+ "name": "owner",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository owner"
+ },
+ {
+ "name": "repo",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository name"
+ },
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Hook ID"
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "config": {
+ "type": "object",
+ "properties": {
+ "url": {
+ "type": "string"
+ },
+ "content_type": {
+ "type": "string"
+ },
+ "secret": {
+ "type": "string"
+ }
+ }
+ },
+ "events": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "active": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "config"
+ ]
+ }
+ }
+ }
+ }
+ },
+ "delete": {
+ "operationId": "deleteHook",
+ "summary": "Delete a hook",
+ "tags": [
+ "Webhooks"
+ ],
+ "responses": {
+ "204": {
+ "description": "The resource has been successfully deleted."
+ },
+ "404": {
+ "description": "Resource not found."
+ }
+ },
+ "parameters": [
+ {
+ "name": "owner",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository owner"
+ },
+ {
+ "name": "repo",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository name"
+ },
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Hook ID"
+ }
+ ]
+ }
+ },
+ "/repos/{owner}/{repo}/issues": {
+ "get": {
+ "operationId": "listIssues",
+ "summary": "List issues for a repository",
+ "tags": [
+ "Issues"
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Issue"
+ }
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Resource not found."
+ }
+ },
+ "parameters": [
+ {
+ "name": "owner",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository owner"
+ },
+ {
+ "name": "repo",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository name"
+ }
+ ],
+ "description": "This endpoint may also return pull requests. If an issue is a pull request, the object will include a pull_request key."
+ },
+ "post": {
+ "operationId": "createIssue",
+ "summary": "Create an issue",
+ "tags": [
+ "Issues"
+ ],
+ "responses": {
+ "201": {
+ "description": "Created",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Issue"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Resource not found."
+ },
+ "422": {
+ "description": "Validation error."
+ }
+ },
+ "parameters": [
+ {
+ "name": "owner",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository owner"
+ },
+ {
+ "name": "repo",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository name"
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "title": {
+ "type": "string"
+ },
+ "body": {
+ "type": "string"
+ },
+ "assignee": {
+ "type": "string"
+ },
+ "milestone": {
+ "type": "integer"
+ },
+ "labels": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "closed": {
+ "type": "boolean",
+ "default": false
+ }
+ },
+ "required": [
+ "title"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "/repos/{owner}/{repo}/issues/{index}": {
+ "get": {
+ "operationId": "getIssue",
+ "summary": "Get a single issue",
+ "tags": [
+ "Issues"
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Issue"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Resource not found."
+ }
+ },
+ "parameters": [
+ {
+ "name": "owner",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository owner"
+ },
+ {
+ "name": "repo",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository name"
+ },
+ {
+ "name": "index",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Issue index"
+ }
+ ]
+ },
+ "patch": {
+ "operationId": "editIssue",
+ "summary": "Edit an issue",
+ "tags": [
+ "Issues"
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Issue"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Resource not found."
+ },
+ "422": {
+ "description": "Validation error."
+ }
+ },
+ "parameters": [
+ {
+ "name": "owner",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository owner"
+ },
+ {
+ "name": "repo",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository name"
+ },
+ {
+ "name": "index",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Issue index"
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "title": {
+ "type": "string"
+ },
+ "body": {
+ "type": "string"
+ },
+ "assignee": {
+ "type": "string"
+ },
+ "milestone": {
+ "type": "integer"
+ },
+ "state": {
+ "type": "string",
+ "enum": [
+ "open",
+ "closed"
+ ]
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/repos/{owner}/{repo}/issues/{index}/comments": {
+ "get": {
+ "operationId": "listIssueComments",
+ "summary": "List comments on an issue",
+ "tags": [
+ "Issues"
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Comment"
+ }
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Resource not found."
+ }
+ },
+ "parameters": [
+ {
+ "name": "owner",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository owner"
+ },
+ {
+ "name": "repo",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository name"
+ },
+ {
+ "name": "index",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Issue index"
+ },
+ {
+ "name": "since",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Only comments updated at or after this time (RFC 3339)"
+ }
+ ]
+ },
+ "post": {
+ "operationId": "createComment",
+ "summary": "Create a comment",
+ "tags": [
+ "Issues"
+ ],
+ "responses": {
+ "201": {
+ "description": "Created",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Comment"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Resource not found."
+ },
+ "422": {
+ "description": "Validation error."
+ }
+ },
+ "parameters": [
+ {
+ "name": "owner",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository owner"
+ },
+ {
+ "name": "repo",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository name"
+ },
+ {
+ "name": "index",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Issue index"
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "body": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "body"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "/repos/{owner}/{repo}/issues/comments": {
+ "get": {
+ "operationId": "listRepoComments",
+ "summary": "List comments in a repository",
+ "tags": [
+ "Issues"
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Comment"
+ }
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Resource not found."
+ }
+ },
+ "parameters": [
+ {
+ "name": "owner",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository owner"
+ },
+ {
+ "name": "repo",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository name"
+ },
+ {
+ "name": "since",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Only comments updated at or after this time (RFC 3339)"
+ }
+ ]
+ }
+ },
+ "/repos/{owner}/{repo}/issues/{index}/comments/{id}": {
+ "patch": {
+ "operationId": "editComment",
+ "summary": "Edit a comment",
+ "tags": [
+ "Issues"
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Comment"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Resource not found."
+ },
+ "422": {
+ "description": "Validation error."
+ }
+ },
+ "parameters": [
+ {
+ "name": "owner",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository owner"
+ },
+ {
+ "name": "repo",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository name"
+ },
+ {
+ "name": "index",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Issue index"
+ },
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Comment ID"
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "body": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "body"
+ ]
+ }
+ }
+ }
+ }
+ },
+ "delete": {
+ "operationId": "deleteComment",
+ "summary": "Delete a comment",
+ "tags": [
+ "Issues"
+ ],
+ "responses": {
+ "204": {
+ "description": "The resource has been successfully deleted."
+ },
+ "404": {
+ "description": "Resource not found."
+ }
+ },
+ "parameters": [
+ {
+ "name": "owner",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository owner"
+ },
+ {
+ "name": "repo",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository name"
+ },
+ {
+ "name": "index",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Issue index"
+ },
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Comment ID"
+ }
+ ]
+ }
+ },
+ "/repos/{owner}/{repo}/labels": {
+ "get": {
+ "operationId": "listLabels",
+ "summary": "List all labels for a repository",
+ "tags": [
+ "Issues"
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Label"
+ }
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Resource not found."
+ }
+ },
+ "parameters": [
+ {
+ "name": "owner",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository owner"
+ },
+ {
+ "name": "repo",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository name"
+ }
+ ]
+ },
+ "post": {
+ "operationId": "createLabel",
+ "summary": "Create a label",
+ "tags": [
+ "Issues"
+ ],
+ "responses": {
+ "201": {
+ "description": "Created",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Label"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Resource not found."
+ },
+ "422": {
+ "description": "Validation error."
+ }
+ },
+ "parameters": [
+ {
+ "name": "owner",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository owner"
+ },
+ {
+ "name": "repo",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository name"
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "color": {
+ "type": "string",
+ "description": "Hex color code with leading #"
+ }
+ },
+ "required": [
+ "name",
+ "color"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "/repos/{owner}/{repo}/labels/{id}": {
+ "get": {
+ "operationId": "getLabel",
+ "summary": "Get a single label",
+ "tags": [
+ "Issues"
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Label"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Resource not found."
+ }
+ },
+ "parameters": [
+ {
+ "name": "owner",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository owner"
+ },
+ {
+ "name": "repo",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository name"
+ },
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Label ID"
+ }
+ ]
+ },
+ "patch": {
+ "operationId": "updateLabel",
+ "summary": "Update a label",
+ "tags": [
+ "Issues"
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Label"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Resource not found."
+ },
+ "422": {
+ "description": "Validation error."
+ }
+ },
+ "parameters": [
+ {
+ "name": "owner",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository owner"
+ },
+ {
+ "name": "repo",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository name"
+ },
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Label ID"
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "color": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "delete": {
+ "operationId": "deleteLabel",
+ "summary": "Delete a label",
+ "tags": [
+ "Issues"
+ ],
+ "responses": {
+ "204": {
+ "description": "The resource has been successfully deleted."
+ },
+ "404": {
+ "description": "Resource not found."
+ }
+ },
+ "parameters": [
+ {
+ "name": "owner",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository owner"
+ },
+ {
+ "name": "repo",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository name"
+ },
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Label ID"
+ }
+ ]
+ }
+ },
+ "/repos/{owner}/{repo}/issues/{index}/labels": {
+ "get": {
+ "operationId": "listIssueLabels",
+ "summary": "List labels on an issue",
+ "tags": [
+ "Issues"
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Label"
+ }
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Resource not found."
+ }
+ },
+ "parameters": [
+ {
+ "name": "owner",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository owner"
+ },
+ {
+ "name": "repo",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository name"
+ },
+ {
+ "name": "index",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Issue index"
+ }
+ ]
+ },
+ "post": {
+ "operationId": "addIssueLabels",
+ "summary": "Add labels to an issue",
+ "tags": [
+ "Issues"
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Label"
+ }
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Resource not found."
+ },
+ "422": {
+ "description": "Validation error."
+ }
+ },
+ "parameters": [
+ {
+ "name": "owner",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository owner"
+ },
+ {
+ "name": "repo",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository name"
+ },
+ {
+ "name": "index",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Issue index"
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "labels": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "required": [
+ "labels"
+ ]
+ }
+ }
+ }
+ }
+ },
+ "put": {
+ "operationId": "replaceIssueLabels",
+ "summary": "Replace all labels for an issue",
+ "tags": [
+ "Issues"
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Label"
+ }
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Resource not found."
+ },
+ "422": {
+ "description": "Validation error."
+ }
+ },
+ "parameters": [
+ {
+ "name": "owner",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository owner"
+ },
+ {
+ "name": "repo",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository name"
+ },
+ {
+ "name": "index",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Issue index"
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "labels": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "required": [
+ "labels"
+ ]
+ }
+ }
+ }
+ }
+ },
+ "delete": {
+ "operationId": "removeAllIssueLabels",
+ "summary": "Remove all labels from an issue",
+ "tags": [
+ "Issues"
+ ],
+ "responses": {
+ "204": {
+ "description": "The resource has been successfully deleted."
+ },
+ "404": {
+ "description": "Resource not found."
+ }
+ },
+ "parameters": [
+ {
+ "name": "owner",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository owner"
+ },
+ {
+ "name": "repo",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository name"
+ },
+ {
+ "name": "index",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Issue index"
+ }
+ ]
+ }
+ },
+ "/repos/{owner}/{repo}/issues/{index}/labels/{id}": {
+ "delete": {
+ "operationId": "removeIssueLabel",
+ "summary": "Remove a label from an issue",
+ "tags": [
+ "Issues"
+ ],
+ "responses": {
+ "204": {
+ "description": "The resource has been successfully deleted."
+ },
+ "404": {
+ "description": "Resource not found."
+ }
+ },
+ "parameters": [
+ {
+ "name": "owner",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository owner"
+ },
+ {
+ "name": "repo",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository name"
+ },
+ {
+ "name": "index",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Issue index"
+ },
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Label ID"
+ }
+ ]
+ }
+ },
+ "/repos/{owner}/{repo}/milestones": {
+ "get": {
+ "operationId": "listMilestones",
+ "summary": "List milestones for a repository",
+ "tags": [
+ "Issues"
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Milestone"
+ }
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Resource not found."
+ }
+ },
+ "parameters": [
+ {
+ "name": "owner",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository owner"
+ },
+ {
+ "name": "repo",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository name"
+ }
+ ]
+ },
+ "post": {
+ "operationId": "createMilestone",
+ "summary": "Create a milestone",
+ "tags": [
+ "Issues"
+ ],
+ "responses": {
+ "201": {
+ "description": "Created",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Milestone"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Resource not found."
+ },
+ "422": {
+ "description": "Validation error."
+ }
+ },
+ "parameters": [
+ {
+ "name": "owner",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository owner"
+ },
+ {
+ "name": "repo",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository name"
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "title": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "due_on": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ "required": [
+ "title"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "/repos/{owner}/{repo}/milestones/{id}": {
+ "get": {
+ "operationId": "getMilestone",
+ "summary": "Get a single milestone",
+ "tags": [
+ "Issues"
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Milestone"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Resource not found."
+ }
+ },
+ "parameters": [
+ {
+ "name": "owner",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository owner"
+ },
+ {
+ "name": "repo",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository name"
+ },
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Milestone ID"
+ }
+ ]
+ },
+ "patch": {
+ "operationId": "editMilestone",
+ "summary": "Edit a milestone",
+ "tags": [
+ "Issues"
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Milestone"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Resource not found."
+ },
+ "422": {
+ "description": "Validation error."
+ }
+ },
+ "parameters": [
+ {
+ "name": "owner",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository owner"
+ },
+ {
+ "name": "repo",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository name"
+ },
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Milestone ID"
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "title": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "due_on": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "state": {
+ "type": "string",
+ "enum": [
+ "open",
+ "closed"
+ ]
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "delete": {
+ "operationId": "deleteMilestone",
+ "summary": "Delete a milestone",
+ "tags": [
+ "Issues"
+ ],
+ "responses": {
+ "204": {
+ "description": "The resource has been successfully deleted."
+ },
+ "404": {
+ "description": "Resource not found."
+ }
+ },
+ "parameters": [
+ {
+ "name": "owner",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository owner"
+ },
+ {
+ "name": "repo",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository name"
+ },
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Milestone ID"
+ }
+ ],
+ "description": "Only users with write access to a repository can delete a milestone."
+ }
+ },
+ "/users/search": {
+ "get": {
+ "operationId": "searchUsers",
+ "summary": "Search for users",
+ "tags": [
+ "Users"
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "data": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/User"
+ }
+ },
+ "ok": {
+ "type": "boolean"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "q",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Keyword of username"
+ },
+ {
+ "name": "limit",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "integer",
+ "default": 10
+ },
+ "description": "Max results"
+ }
+ ],
+ "description": "Requests without authentication will return an empty email field for anti-spam purposes."
+ }
+ },
+ "/users/{username}": {
+ "get": {
+ "operationId": "getUser",
+ "summary": "Get a single user",
+ "tags": [
+ "Users"
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/User"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Resource not found."
+ }
+ },
+ "parameters": [
+ {
+ "name": "username",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Username"
+ }
+ ]
+ }
+ },
+ "/user": {
+ "get": {
+ "operationId": "getAuthenticatedUser",
+ "summary": "Get the authenticated user",
+ "tags": [
+ "Users"
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/User"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/users/{username}/tokens": {
+ "get": {
+ "operationId": "listAccessTokens",
+ "summary": "List access tokens",
+ "tags": [
+ "Users"
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/AccessToken"
+ }
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Resource not found."
+ }
+ },
+ "parameters": [
+ {
+ "name": "username",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Username"
+ }
+ ],
+ "security": [
+ {
+ "BasicAuth": []
+ }
+ ],
+ "description": "Requires basic authentication."
+ },
+ "post": {
+ "operationId": "createAccessToken",
+ "summary": "Create an access token",
+ "tags": [
+ "Users"
+ ],
+ "responses": {
+ "201": {
+ "description": "Created",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/AccessToken"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Resource not found."
+ },
+ "422": {
+ "description": "Validation error."
+ }
+ },
+ "parameters": [
+ {
+ "name": "username",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Username"
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "name"
+ ]
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "BasicAuth": []
+ }
+ ],
+ "description": "Requires basic authentication."
+ }
+ },
+ "/user/emails": {
+ "get": {
+ "operationId": "listEmails",
+ "summary": "List email addresses",
+ "tags": [
+ "Users"
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Email"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "post": {
+ "operationId": "addEmails",
+ "summary": "Add email addresses",
+ "tags": [
+ "Users"
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Email"
+ }
+ }
+ }
+ }
+ },
+ "422": {
+ "description": "Validation error."
+ }
+ },
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "emails": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "email"
+ }
+ }
+ },
+ "required": [
+ "emails"
+ ]
+ }
+ }
+ }
+ }
+ },
+ "delete": {
+ "operationId": "deleteEmails",
+ "summary": "Delete email addresses",
+ "tags": [
+ "Users"
+ ],
+ "responses": {
+ "204": {
+ "description": "The resource has been successfully deleted."
+ }
+ },
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "emails": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "email"
+ }
+ }
+ },
+ "required": [
+ "emails"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "/users/{username}/followers": {
+ "get": {
+ "operationId": "listUserFollowers",
+ "summary": "List followers of a user",
+ "tags": [
+ "Users"
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/User"
+ }
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Resource not found."
+ }
+ },
+ "parameters": [
+ {
+ "name": "username",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Username"
+ }
+ ]
+ }
+ },
+ "/user/followers": {
+ "get": {
+ "operationId": "listMyFollowers",
+ "summary": "List your followers",
+ "tags": [
+ "Users"
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/User"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/users/{username}/following": {
+ "get": {
+ "operationId": "listUserFollowing",
+ "summary": "List users followed by a user",
+ "tags": [
+ "Users"
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/User"
+ }
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Resource not found."
+ }
+ },
+ "parameters": [
+ {
+ "name": "username",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Username"
+ }
+ ]
+ }
+ },
+ "/user/following": {
+ "get": {
+ "operationId": "listMyFollowing",
+ "summary": "List who you are following",
+ "tags": [
+ "Users"
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/User"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/user/following/{target}": {
+ "get": {
+ "operationId": "checkFollowing",
+ "summary": "Check if you follow a user",
+ "tags": [
+ "Users"
+ ],
+ "responses": {
+ "204": {
+ "description": "The user is being followed."
+ },
+ "404": {
+ "description": "Not following"
+ }
+ },
+ "parameters": [
+ {
+ "name": "target",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Target username"
+ }
+ ]
+ },
+ "put": {
+ "operationId": "followUser",
+ "summary": "Follow a user",
+ "tags": [
+ "Users"
+ ],
+ "responses": {
+ "204": {
+ "description": "Successfully followed the user."
+ },
+ "404": {
+ "description": "Resource not found."
+ },
+ "422": {
+ "description": "Validation error."
+ }
+ },
+ "parameters": [
+ {
+ "name": "target",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Target username"
+ }
+ ]
+ },
+ "delete": {
+ "operationId": "unfollowUser",
+ "summary": "Unfollow a user",
+ "tags": [
+ "Users"
+ ],
+ "responses": {
+ "204": {
+ "description": "The resource has been successfully deleted."
+ },
+ "404": {
+ "description": "Resource not found."
+ }
+ },
+ "parameters": [
+ {
+ "name": "target",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Target username"
+ }
+ ]
+ }
+ },
+ "/users/{username}/following/{target}": {
+ "get": {
+ "operationId": "checkUserFollowing",
+ "summary": "Check if a user follows another",
+ "tags": [
+ "Users"
+ ],
+ "responses": {
+ "204": {
+ "description": "The user is being followed."
+ },
+ "404": {
+ "description": "Not following"
+ }
+ },
+ "parameters": [
+ {
+ "name": "username",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Username"
+ },
+ {
+ "name": "target",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Target username"
+ }
+ ]
+ }
+ },
+ "/users/{username}/keys": {
+ "get": {
+ "operationId": "listUserKeys",
+ "summary": "List public keys for a user",
+ "tags": [
+ "Users"
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/PublicKey"
+ }
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Resource not found."
+ }
+ },
+ "parameters": [
+ {
+ "name": "username",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Username"
+ }
+ ]
+ }
+ },
+ "/user/keys/{id}": {
+ "get": {
+ "operationId": "getPublicKey",
+ "summary": "Get a single public key",
+ "tags": [
+ "Users"
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PublicKey"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Resource not found."
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Key ID"
+ }
+ ]
+ },
+ "delete": {
+ "operationId": "deletePublicKey",
+ "summary": "Delete a public key",
+ "tags": [
+ "Users"
+ ],
+ "responses": {
+ "204": {
+ "description": "The resource has been successfully deleted."
+ },
+ "404": {
+ "description": "Resource not found."
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Key ID"
+ }
+ ]
+ }
+ },
+ "/user/keys": {
+ "get": {
+ "operationId": "listMyKeys",
+ "summary": "List your public keys",
+ "tags": [
+ "Users"
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/PublicKey"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "post": {
+ "operationId": "createPublicKey",
+ "summary": "Create a public key",
+ "tags": [
+ "Users"
+ ],
+ "responses": {
+ "201": {
+ "description": "Created",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PublicKey"
+ }
+ }
+ }
+ },
+ "422": {
+ "description": "Validation error."
+ }
+ },
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "title": {
+ "type": "string"
+ },
+ "key": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "title",
+ "key"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "/user/orgs": {
+ "get": {
+ "operationId": "listMyOrgs",
+ "summary": "List your organizations",
+ "tags": [
+ "Organizations"
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Organization"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "post": {
+ "operationId": "createMyOrg",
+ "summary": "Create an organization",
+ "description": "Creates an organization for the authenticated user.",
+ "tags": [
+ "Organizations"
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "username": {
+ "type": "string"
+ },
+ "full_name": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "website": {
+ "type": "string"
+ },
+ "location": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "username"
+ ]
+ }
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "description": "Organization created successfully.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Organization"
+ }
+ }
+ }
+ },
+ "422": {
+ "description": "Organization name already exists or is not allowed."
+ }
+ }
+ }
+ },
+ "/users/{username}/orgs": {
+ "get": {
+ "operationId": "listUserOrgs",
+ "summary": "List user organizations",
+ "tags": [
+ "Organizations"
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Organization"
+ }
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Resource not found."
+ }
+ },
+ "parameters": [
+ {
+ "name": "username",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Username"
+ }
+ ]
+ }
+ },
+ "/orgs/{orgname}": {
+ "get": {
+ "operationId": "getOrg",
+ "summary": "Get an organization",
+ "tags": [
+ "Organizations"
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Organization"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Resource not found."
+ }
+ },
+ "parameters": [
+ {
+ "name": "orgname",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Organization name"
+ }
+ ]
+ },
+ "patch": {
+ "operationId": "editOrg",
+ "summary": "Edit an organization",
+ "tags": [
+ "Organizations"
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Organization"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Resource not found."
+ },
+ "422": {
+ "description": "Validation error."
+ }
+ },
+ "parameters": [
+ {
+ "name": "orgname",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Organization name"
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "full_name": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "website": {
+ "type": "string"
+ },
+ "location": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/orgs/{orgname}/teams": {
+ "get": {
+ "operationId": "listOrgTeams",
+ "summary": "List teams of an organization",
+ "tags": [
+ "Organizations"
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Team"
+ }
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Resource not found."
+ }
+ },
+ "parameters": [
+ {
+ "name": "orgname",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Organization name"
+ }
+ ]
+ }
+ },
+ "/admin/users": {
+ "post": {
+ "operationId": "adminCreateUser",
+ "summary": "Create a new user",
+ "tags": [
+ "Administration"
+ ],
+ "responses": {
+ "201": {
+ "description": "Created",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/User"
+ }
+ }
+ }
+ },
+ "422": {
+ "description": "Validation error."
+ }
+ },
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "source_id": {
+ "type": "integer"
+ },
+ "login_name": {
+ "type": "string"
+ },
+ "username": {
+ "type": "string"
+ },
+ "full_name": {
+ "type": "string"
+ },
+ "email": {
+ "type": "string",
+ "format": "email"
+ },
+ "password": {
+ "type": "string"
+ },
+ "send_notify": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "username",
+ "email"
+ ]
+ }
+ }
+ }
+ },
+ "description": "Requires the authenticated user to be a site administrator."
+ }
+ },
+ "/admin/users/{username}": {
+ "patch": {
+ "operationId": "adminEditUser",
+ "summary": "Edit an existing user",
+ "tags": [
+ "Administration"
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/User"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Resource not found."
+ },
+ "422": {
+ "description": "Validation error."
+ }
+ },
+ "parameters": [
+ {
+ "name": "username",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Username"
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "source_id": {
+ "type": "integer"
+ },
+ "login_name": {
+ "type": "string"
+ },
+ "full_name": {
+ "type": "string"
+ },
+ "email": {
+ "type": "string",
+ "format": "email"
+ },
+ "password": {
+ "type": "string"
+ },
+ "website": {
+ "type": "string"
+ },
+ "location": {
+ "type": "string"
+ },
+ "active": {
+ "type": "boolean"
+ },
+ "admin": {
+ "type": "boolean"
+ },
+ "allow_git_hook": {
+ "type": "boolean"
+ },
+ "allow_import_local": {
+ "type": "boolean"
+ },
+ "max_repo_creation": {
+ "type": "integer",
+ "description": "Maximum number of repositories the user can create. -1 means no limit."
+ }
+ },
+ "required": [
+ "email"
+ ]
+ }
+ }
+ }
+ },
+ "description": "Requires the authenticated user to be a site administrator."
+ },
+ "delete": {
+ "operationId": "adminDeleteUser",
+ "summary": "Delete a user",
+ "tags": [
+ "Administration"
+ ],
+ "responses": {
+ "204": {
+ "description": "The resource has been successfully deleted."
+ },
+ "404": {
+ "description": "Resource not found."
+ }
+ },
+ "parameters": [
+ {
+ "name": "username",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Username"
+ }
+ ],
+ "description": "Requires the authenticated user to be a site administrator."
+ }
+ },
+ "/admin/users/{username}/keys": {
+ "post": {
+ "operationId": "adminCreateUserKey",
+ "summary": "Create a public key for a user",
+ "tags": [
+ "Administration"
+ ],
+ "responses": {
+ "201": {
+ "description": "Created",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PublicKey"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Resource not found."
+ },
+ "422": {
+ "description": "Validation error."
+ }
+ },
+ "parameters": [
+ {
+ "name": "username",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Username"
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "title": {
+ "type": "string"
+ },
+ "key": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "title",
+ "key"
+ ]
+ }
+ }
+ }
+ },
+ "description": "Requires the authenticated user to be a site administrator."
+ }
+ },
+ "/admin/users/{username}/repos": {
+ "post": {
+ "operationId": "adminCreateRepo",
+ "summary": "Create a repository for a user",
+ "tags": [
+ "Administration"
+ ],
+ "responses": {
+ "201": {
+ "description": "Created",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Repository"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Resource not found."
+ },
+ "422": {
+ "description": "Validation error."
+ }
+ },
+ "parameters": [
+ {
+ "name": "username",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Username"
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "private": {
+ "type": "boolean",
+ "default": false
+ },
+ "auto_init": {
+ "type": "boolean",
+ "default": false
+ },
+ "gitignores": {
+ "type": "string"
+ },
+ "license": {
+ "type": "string"
+ },
+ "readme": {
+ "type": "string",
+ "default": "Default"
+ }
+ },
+ "required": [
+ "name"
+ ]
+ }
+ }
+ }
+ },
+ "description": "Requires the authenticated user to be a site administrator."
+ }
+ },
+ "/admin/users/{username}/orgs": {
+ "post": {
+ "operationId": "adminCreateOrg",
+ "summary": "Create an organization",
+ "tags": [
+ "Administration"
+ ],
+ "responses": {
+ "201": {
+ "description": "Created",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Organization"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Resource not found."
+ },
+ "422": {
+ "description": "Validation error."
+ }
+ },
+ "parameters": [
+ {
+ "name": "username",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Username"
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "username": {
+ "type": "string"
+ },
+ "full_name": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "website": {
+ "type": "string"
+ },
+ "location": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "username"
+ ]
+ }
+ }
+ }
+ },
+ "description": "Requires the authenticated user to be a site administrator."
+ }
+ },
+ "/admin/orgs/{orgname}/teams": {
+ "post": {
+ "operationId": "adminCreateTeam",
+ "summary": "Create a team",
+ "tags": [
+ "Administration"
+ ],
+ "responses": {
+ "201": {
+ "description": "Created",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Team"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Resource not found."
+ },
+ "422": {
+ "description": "Validation error."
+ }
+ },
+ "parameters": [
+ {
+ "name": "orgname",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Organization name"
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "permission": {
+ "type": "string",
+ "enum": [
+ "read",
+ "write",
+ "admin"
+ ],
+ "default": "read"
+ }
+ },
+ "required": [
+ "name"
+ ]
+ }
+ }
+ }
+ },
+ "description": "Requires the authenticated user to be a site administrator."
+ }
+ },
+ "/admin/teams/{teamid}/members": {
+ "get": {
+ "operationId": "adminListTeamMembers",
+ "summary": "List all members of a team",
+ "tags": [
+ "Administration"
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/User"
+ }
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Resource not found."
+ }
+ },
+ "parameters": [
+ {
+ "name": "teamid",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Team ID"
+ }
+ ],
+ "description": "Requires the authenticated user to be a site administrator."
+ }
+ },
+ "/admin/teams/{teamid}/members/{username}": {
+ "put": {
+ "operationId": "adminAddTeamMember",
+ "summary": "Add team membership",
+ "tags": [
+ "Administration"
+ ],
+ "responses": {
+ "204": {
+ "description": "Team membership has been updated."
+ },
+ "404": {
+ "description": "Resource not found."
+ },
+ "422": {
+ "description": "Validation error."
+ }
+ },
+ "parameters": [
+ {
+ "name": "teamid",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Team ID"
+ },
+ {
+ "name": "username",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Username"
+ }
+ ],
+ "description": "Requires the authenticated user to be a site administrator."
+ },
+ "delete": {
+ "operationId": "adminRemoveTeamMember",
+ "summary": "Remove team membership",
+ "tags": [
+ "Administration"
+ ],
+ "responses": {
+ "204": {
+ "description": "The resource has been successfully deleted."
+ },
+ "404": {
+ "description": "Resource not found."
+ }
+ },
+ "parameters": [
+ {
+ "name": "teamid",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Team ID"
+ },
+ {
+ "name": "username",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Username"
+ }
+ ],
+ "description": "Requires the authenticated user to be a site administrator."
+ }
+ },
+ "/admin/teams/{teamid}/repos/{reponame}": {
+ "put": {
+ "operationId": "adminAddTeamRepo",
+ "summary": "Add or update team repository",
+ "tags": [
+ "Administration"
+ ],
+ "responses": {
+ "204": {
+ "description": "Team repository has been updated."
+ },
+ "404": {
+ "description": "Resource not found."
+ },
+ "422": {
+ "description": "Validation error."
+ }
+ },
+ "parameters": [
+ {
+ "name": "teamid",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Team ID"
+ },
+ {
+ "name": "reponame",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository name"
+ }
+ ],
+ "description": "Requires the authenticated user to be a site administrator."
+ },
+ "delete": {
+ "operationId": "adminRemoveTeamRepo",
+ "summary": "Remove team repository",
+ "tags": [
+ "Administration"
+ ],
+ "responses": {
+ "204": {
+ "description": "The resource has been successfully deleted."
+ },
+ "404": {
+ "description": "Resource not found."
+ }
+ },
+ "parameters": [
+ {
+ "name": "teamid",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Team ID"
+ },
+ {
+ "name": "reponame",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository name"
+ }
+ ],
+ "description": "Requires the authenticated user to be a site administrator."
+ }
+ },
+ "/markdown": {
+ "post": {
+ "operationId": "renderMarkdown",
+ "summary": "Render a Markdown document",
+ "tags": [
+ "Miscellaneous"
+ ],
+ "responses": {
+ "200": {
+ "description": "Rendered HTML",
+ "content": {
+ "text/html": {
+ "schema": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "422": {
+ "description": "Validation error."
+ }
+ },
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "text": {
+ "type": "string"
+ },
+ "context": {
+ "type": "string",
+ "description": "Repository context URL"
+ }
+ },
+ "required": [
+ "text"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "/markdown/raw": {
+ "post": {
+ "operationId": "renderMarkdownRaw",
+ "summary": "Render a Markdown document in raw mode",
+ "tags": [
+ "Miscellaneous"
+ ],
+ "responses": {
+ "200": {
+ "description": "Rendered HTML",
+ "content": {
+ "text/html": {
+ "schema": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "422": {
+ "description": "Validation error."
+ }
+ },
+ "requestBody": {
+ "required": true,
+ "content": {
+ "text/plain": {
+ "schema": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "description": "Takes a Markdown document as plaintext and renders it without a repository context."
+ }
+ },
+ "/repos/{owner}/{repo}/git/trees/{sha}": {
+ "get": {
+ "operationId": "getTree",
+ "summary": "Get a tree",
+ "tags": [
+ "Miscellaneous"
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/GitTree"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Resource not found."
+ }
+ },
+ "parameters": [
+ {
+ "name": "owner",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository owner"
+ },
+ {
+ "name": "repo",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Repository name"
+ },
+ {
+ "name": "sha",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Tree SHA"
+ }
+ ]
+ }
+ },
+ "/repos/{owner}/{repo}/forks": {
+ "get": {
+ "operationId": "listForks",
+ "summary": "List forks",
+ "tags": [
+ "Repositories"
+ ],
+ "parameters": [
+ {
+ "name": "owner",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Owner of the repository"
+ },
+ {
+ "name": "repo",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Name of the repository"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Repository"
+ }
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Repository not found."
+ }
+ }
+ }
+ },
+ "/repos/{owner}/{repo}/tags": {
+ "get": {
+ "operationId": "listTags",
+ "summary": "List tags",
+ "tags": [
+ "Repositories"
+ ],
+ "parameters": [
+ {
+ "name": "owner",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Owner of the repository"
+ },
+ {
+ "name": "repo",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Name of the repository"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Tag"
+ }
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Repository not found."
+ }
+ }
+ }
+ },
+ "/repos/{owner}/{repo}/commits": {
+ "get": {
+ "operationId": "getAllCommits",
+ "summary": "List all commits",
+ "description": "Returns commits from the HEAD of the default branch.",
+ "tags": [
+ "Repositories"
+ ],
+ "parameters": [
+ {
+ "name": "owner",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Owner of the repository"
+ },
+ {
+ "name": "repo",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Name of the repository"
+ },
+ {
+ "name": "pageSize",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "integer",
+ "default": 30
+ },
+ "description": "Number of commits to return"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Commit"
+ }
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Repository not found."
+ }
+ }
+ }
+ },
+ "/repos/{owner}/{repo}/wiki": {
+ "patch": {
+ "operationId": "editWiki",
+ "summary": "Edit wiki settings",
+ "tags": [
+ "Repositories"
+ ],
+ "parameters": [
+ {
+ "name": "owner",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Owner of the repository"
+ },
+ {
+ "name": "repo",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Name of the repository"
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "enable_wiki": {
+ "type": "boolean",
+ "description": "Whether to enable the wiki"
+ },
+ "allow_public_wiki": {
+ "type": "boolean",
+ "description": "Whether the wiki is publicly accessible"
+ },
+ "enable_external_wiki": {
+ "type": "boolean",
+ "description": "Whether to use an external wiki"
+ },
+ "external_wiki_url": {
+ "type": "string",
+ "description": "URL of the external wiki"
+ }
+ }
+ }
+ }
+ }
+ },
+ "responses": {
+ "204": {
+ "description": "Wiki settings updated successfully."
+ },
+ "404": {
+ "description": "Repository not found."
+ },
+ "422": {
+ "description": "Validation error."
+ }
+ }
+ }
+ },
+ "/repos/{owner}/{repo}/editorconfig/{filename}": {
+ "get": {
+ "operationId": "getEditorconfig",
+ "summary": "Get editorconfig definition",
+ "description": "Returns the editorconfig definition for the given filename in the repository.",
+ "tags": [
+ "Repositories"
+ ],
+ "parameters": [
+ {
+ "name": "owner",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Owner of the repository"
+ },
+ {
+ "name": "repo",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Name of the repository"
+ },
+ {
+ "name": "filename",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Filename to get the editorconfig definition for"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/EditorConfigDefinition"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "No editorconfig file exists or no matching definition for the filename."
+ }
+ }
+ }
+ },
+ "/repos/{owner}/{repo}/git/blobs/{sha}": {
+ "get": {
+ "operationId": "getGitBlob",
+ "summary": "Get a git blob",
+ "description": "Returns the content of a git blob object, base64 encoded.",
+ "tags": [
+ "Miscellaneous"
+ ],
+ "parameters": [
+ {
+ "name": "owner",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Owner of the repository"
+ },
+ {
+ "name": "repo",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "Name of the repository"
+ },
+ {
+ "name": "sha",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "description": "SHA of the git blob"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/GitBlob"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Blob not found."
+ }
+ }
+ }
+ },
+ "/user/issues": {
+ "get": {
+ "operationId": "listUserIssues",
+ "summary": "List issues assigned to the authenticated user",
+ "description": "Lists issues across all repositories assigned to the authenticated user. Also available at `GET /issues`.",
+ "tags": [
+ "Issues"
+ ],
+ "parameters": [
+ {
+ "name": "page",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "integer"
+ },
+ "description": "Page number"
+ },
+ {
+ "name": "state",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string",
+ "enum": [
+ "open",
+ "closed"
+ ],
+ "default": "open"
+ },
+ "description": "Filter by state"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Issue"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "components": {
+ "securitySchemes": {
+ "BasicAuth": {
+ "type": "http",
+ "scheme": "basic"
+ },
+ "AccessToken": {
+ "type": "apiKey",
+ "in": "header",
+ "name": "Authorization",
+ "description": "Personal access token. Use format: token {YOUR_ACCESS_TOKEN}"
+ }
+ },
+ "schemas": {
+ "User": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer"
+ },
+ "username": {
+ "type": "string"
+ },
+ "login": {
+ "type": "string",
+ "description": "Alias of username for GitHub API compatibility"
+ },
+ "full_name": {
+ "type": "string"
+ },
+ "email": {
+ "type": "string",
+ "format": "email"
+ },
+ "avatar_url": {
+ "type": "string"
+ }
+ }
+ },
+ "Collaborator": {
+ "description": "A repository collaborator with permission information",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/User"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "permissions": {
+ "type": "object",
+ "properties": {
+ "admin": {
+ "type": "boolean"
+ },
+ "push": {
+ "type": "boolean"
+ },
+ "pull": {
+ "type": "boolean"
+ }
+ }
+ }
+ }
+ }
+ ]
+ },
+ "Repository": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer"
+ },
+ "owner": {
+ "$ref": "#/components/schemas/User"
+ },
+ "name": {
+ "type": "string"
+ },
+ "full_name": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "private": {
+ "type": "boolean"
+ },
+ "fork": {
+ "type": "boolean"
+ },
+ "parent": {
+ "$ref": "#/components/schemas/Repository",
+ "nullable": true,
+ "description": "Present when fork is true"
+ },
+ "empty": {
+ "type": "boolean"
+ },
+ "mirror": {
+ "type": "boolean"
+ },
+ "size": {
+ "type": "integer"
+ },
+ "html_url": {
+ "type": "string"
+ },
+ "ssh_url": {
+ "type": "string"
+ },
+ "clone_url": {
+ "type": "string"
+ },
+ "website": {
+ "type": "string"
+ },
+ "stars_count": {
+ "type": "integer"
+ },
+ "forks_count": {
+ "type": "integer"
+ },
+ "watchers_count": {
+ "type": "integer"
+ },
+ "open_issues_count": {
+ "type": "integer"
+ },
+ "default_branch": {
+ "type": "string"
+ },
+ "created_at": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "updated_at": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "permissions": {
+ "type": "object",
+ "properties": {
+ "admin": {
+ "type": "boolean"
+ },
+ "push": {
+ "type": "boolean"
+ },
+ "pull": {
+ "type": "boolean"
+ }
+ }
+ }
+ }
+ },
+ "Branch": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "commit": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "message": {
+ "type": "string"
+ },
+ "url": {
+ "type": "string"
+ },
+ "author": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "email": {
+ "type": "string"
+ },
+ "username": {
+ "type": "string"
+ }
+ }
+ },
+ "committer": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "email": {
+ "type": "string"
+ },
+ "username": {
+ "type": "string"
+ }
+ }
+ },
+ "timestamp": {
+ "type": "string",
+ "format": "date-time"
+ }
+ }
+ }
+ }
+ },
+ "Commit": {
+ "type": "object",
+ "properties": {
+ "url": {
+ "type": "string"
+ },
+ "sha": {
+ "type": "string"
+ },
+ "html_url": {
+ "type": "string"
+ },
+ "commit": {
+ "type": "object",
+ "properties": {
+ "url": {
+ "type": "string"
+ },
+ "message": {
+ "type": "string"
+ },
+ "author": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "email": {
+ "type": "string"
+ },
+ "date": {
+ "type": "string"
+ }
+ }
+ },
+ "committer": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "email": {
+ "type": "string"
+ },
+ "date": {
+ "type": "string"
+ }
+ }
+ },
+ "tree": {
+ "type": "object",
+ "properties": {
+ "url": {
+ "type": "string"
+ },
+ "sha": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ },
+ "author": {
+ "$ref": "#/components/schemas/User"
+ },
+ "committer": {
+ "$ref": "#/components/schemas/User"
+ },
+ "parents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "url": {
+ "type": "string"
+ },
+ "sha": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ },
+ "Issue": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer"
+ },
+ "number": {
+ "type": "integer"
+ },
+ "state": {
+ "type": "string",
+ "enum": [
+ "open",
+ "closed"
+ ]
+ },
+ "title": {
+ "type": "string"
+ },
+ "body": {
+ "type": "string"
+ },
+ "user": {
+ "$ref": "#/components/schemas/User"
+ },
+ "labels": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Label"
+ }
+ },
+ "assignee": {
+ "$ref": "#/components/schemas/User",
+ "nullable": true
+ },
+ "milestone": {
+ "$ref": "#/components/schemas/Milestone",
+ "nullable": true
+ },
+ "comments": {
+ "type": "integer"
+ },
+ "pull_request": {
+ "type": "object",
+ "nullable": true
+ },
+ "created_at": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "updated_at": {
+ "type": "string",
+ "format": "date-time"
+ }
+ }
+ },
+ "Comment": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer"
+ },
+ "html_url": {
+ "type": "string"
+ },
+ "user": {
+ "$ref": "#/components/schemas/User"
+ },
+ "body": {
+ "type": "string"
+ },
+ "created_at": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "updated_at": {
+ "type": "string",
+ "format": "date-time"
+ }
+ }
+ },
+ "Label": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer"
+ },
+ "name": {
+ "type": "string"
+ },
+ "color": {
+ "type": "string"
+ },
+ "url": {
+ "type": "string"
+ }
+ }
+ },
+ "Milestone": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer"
+ },
+ "state": {
+ "type": "string",
+ "enum": [
+ "open",
+ "closed"
+ ]
+ },
+ "title": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "open_issues": {
+ "type": "integer"
+ },
+ "closed_issues": {
+ "type": "integer"
+ },
+ "closed_at": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "due_on": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ }
+ }
+ },
+ "Hook": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer"
+ },
+ "type": {
+ "type": "string",
+ "enum": [
+ "gogs",
+ "slack",
+ "discord",
+ "dingtalk"
+ ]
+ },
+ "events": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "active": {
+ "type": "boolean"
+ },
+ "config": {
+ "type": "object"
+ },
+ "created_at": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "updated_at": {
+ "type": "string",
+ "format": "date-time"
+ }
+ }
+ },
+ "Release": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer"
+ },
+ "tag_name": {
+ "type": "string"
+ },
+ "target_commitish": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "body": {
+ "type": "string"
+ },
+ "draft": {
+ "type": "boolean"
+ },
+ "prerelease": {
+ "type": "boolean"
+ },
+ "author": {
+ "$ref": "#/components/schemas/User"
+ },
+ "created_at": {
+ "type": "string",
+ "format": "date-time"
+ }
+ }
+ },
+ "DeployKey": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer"
+ },
+ "key": {
+ "type": "string"
+ },
+ "url": {
+ "type": "string"
+ },
+ "title": {
+ "type": "string"
+ },
+ "created_at": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "read_only": {
+ "type": "boolean"
+ }
+ }
+ },
+ "PublicKey": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer"
+ },
+ "key": {
+ "type": "string"
+ },
+ "url": {
+ "type": "string"
+ },
+ "title": {
+ "type": "string"
+ },
+ "created_at": {
+ "type": "string",
+ "format": "date-time"
+ }
+ }
+ },
+ "AccessToken": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "sha1": {
+ "type": "string"
+ }
+ }
+ },
+ "Email": {
+ "type": "object",
+ "properties": {
+ "email": {
+ "type": "string",
+ "format": "email"
+ },
+ "verified": {
+ "type": "boolean"
+ },
+ "primary": {
+ "type": "boolean"
+ }
+ }
+ },
+ "Organization": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer"
+ },
+ "username": {
+ "type": "string"
+ },
+ "full_name": {
+ "type": "string"
+ },
+ "avatar_url": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "website": {
+ "type": "string"
+ },
+ "location": {
+ "type": "string"
+ }
+ }
+ },
+ "Team": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer"
+ },
+ "name": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "permission": {
+ "type": "string",
+ "enum": [
+ "read",
+ "write",
+ "admin",
+ "owner"
+ ]
+ }
+ }
+ },
+ "Content": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "file",
+ "dir",
+ "symlink",
+ "submodule"
+ ]
+ },
+ "encoding": {
+ "type": "string"
+ },
+ "size": {
+ "type": "integer"
+ },
+ "name": {
+ "type": "string"
+ },
+ "path": {
+ "type": "string"
+ },
+ "content": {
+ "type": "string"
+ },
+ "sha": {
+ "type": "string"
+ },
+ "url": {
+ "type": "string"
+ },
+ "git_url": {
+ "type": "string"
+ },
+ "html_url": {
+ "type": "string"
+ },
+ "download_url": {
+ "type": "string"
+ },
+ "_links": {
+ "type": "object",
+ "properties": {
+ "git": {
+ "type": "string"
+ },
+ "self": {
+ "type": "string"
+ },
+ "html": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ },
+ "GitTree": {
+ "type": "object",
+ "properties": {
+ "sha": {
+ "type": "string"
+ },
+ "url": {
+ "type": "string"
+ },
+ "tree": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "path": {
+ "type": "string"
+ },
+ "mode": {
+ "type": "string"
+ },
+ "type": {
+ "type": "string"
+ },
+ "size": {
+ "type": "integer"
+ },
+ "sha": {
+ "type": "string"
+ },
+ "url": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ },
+ "Error": {
+ "type": "object",
+ "properties": {
+ "message": {
+ "type": "string"
+ },
+ "url": {
+ "type": "string"
+ }
+ }
+ },
+ "GitBlob": {
+ "type": "object",
+ "properties": {
+ "content": {
+ "type": "string",
+ "description": "Base64-encoded blob content"
+ },
+ "encoding": {
+ "type": "string",
+ "example": "base64"
+ },
+ "url": {
+ "type": "string"
+ },
+ "sha": {
+ "type": "string"
+ },
+ "size": {
+ "type": "integer"
+ }
+ }
+ },
+ "Tag": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "commit": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "message": {
+ "type": "string"
+ },
+ "url": {
+ "type": "string"
+ },
+ "author": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "email": {
+ "type": "string",
+ "format": "email"
+ },
+ "username": {
+ "type": "string"
+ }
+ }
+ },
+ "committer": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "email": {
+ "type": "string",
+ "format": "email"
+ },
+ "username": {
+ "type": "string"
+ }
+ }
+ },
+ "timestamp": {
+ "type": "string",
+ "format": "date-time"
+ }
+ }
+ }
+ }
+ },
+ "EditorConfigDefinition": {
+ "type": "object",
+ "properties": {
+ "charset": {
+ "type": "string"
+ },
+ "indent_style": {
+ "type": "string"
+ },
+ "indent_size": {
+ "type": "string"
+ },
+ "end_of_line": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/docs/api-reference/organizations/create-an-organization-for-user.mdx b/docs/api-reference/organizations/create-an-organization-for-user.mdx
new file mode 100644
index 00000000000..65b47617c60
--- /dev/null
+++ b/docs/api-reference/organizations/create-an-organization-for-user.mdx
@@ -0,0 +1,4 @@
+---
+title: "Create an organization"
+openapi: "POST /user/orgs"
+---
diff --git a/docs/api-reference/organizations/edit-an-organization.mdx b/docs/api-reference/organizations/edit-an-organization.mdx
new file mode 100644
index 00000000000..dbdf2f3899c
--- /dev/null
+++ b/docs/api-reference/organizations/edit-an-organization.mdx
@@ -0,0 +1,4 @@
+---
+title: "Edit an organization"
+openapi: "PATCH /orgs/{orgname}"
+---
diff --git a/docs/api-reference/organizations/get-an-organization.mdx b/docs/api-reference/organizations/get-an-organization.mdx
new file mode 100644
index 00000000000..31fb32c6460
--- /dev/null
+++ b/docs/api-reference/organizations/get-an-organization.mdx
@@ -0,0 +1,4 @@
+---
+title: "Get an organization"
+openapi: "GET /orgs/{orgname}"
+---
diff --git a/docs/api-reference/organizations/list-teams-of-an-organization.mdx b/docs/api-reference/organizations/list-teams-of-an-organization.mdx
new file mode 100644
index 00000000000..de9784a8613
--- /dev/null
+++ b/docs/api-reference/organizations/list-teams-of-an-organization.mdx
@@ -0,0 +1,4 @@
+---
+title: "List teams of an organization"
+openapi: "GET /orgs/{orgname}/teams"
+---
diff --git a/docs/api-reference/organizations/list-user-organizations.mdx b/docs/api-reference/organizations/list-user-organizations.mdx
new file mode 100644
index 00000000000..03c492ecc46
--- /dev/null
+++ b/docs/api-reference/organizations/list-user-organizations.mdx
@@ -0,0 +1,4 @@
+---
+title: "List user organizations"
+openapi: "GET /users/{username}/orgs"
+---
diff --git a/docs/api-reference/organizations/list-your-organizations.mdx b/docs/api-reference/organizations/list-your-organizations.mdx
new file mode 100644
index 00000000000..74703b758da
--- /dev/null
+++ b/docs/api-reference/organizations/list-your-organizations.mdx
@@ -0,0 +1,4 @@
+---
+title: "List your organizations"
+openapi: "GET /user/orgs"
+---
diff --git a/docs/api-reference/releases/list-releases.mdx b/docs/api-reference/releases/list-releases.mdx
new file mode 100644
index 00000000000..221bb525b43
--- /dev/null
+++ b/docs/api-reference/releases/list-releases.mdx
@@ -0,0 +1,4 @@
+---
+title: "List releases"
+openapi: "GET /repos/{owner}/{repo}/releases"
+---
diff --git a/docs/api-reference/repositories/create-a-repository-in-an-organization.mdx b/docs/api-reference/repositories/create-a-repository-in-an-organization.mdx
new file mode 100644
index 00000000000..3917063e749
--- /dev/null
+++ b/docs/api-reference/repositories/create-a-repository-in-an-organization.mdx
@@ -0,0 +1,4 @@
+---
+title: "Create a repository in an organization"
+openapi: "POST /org/{org}/repos"
+---
diff --git a/docs/api-reference/repositories/create-a-repository.mdx b/docs/api-reference/repositories/create-a-repository.mdx
new file mode 100644
index 00000000000..8a5d8edcb82
--- /dev/null
+++ b/docs/api-reference/repositories/create-a-repository.mdx
@@ -0,0 +1,4 @@
+---
+title: "Create a repository"
+openapi: "POST /user/repos"
+---
diff --git a/docs/api-reference/repositories/create-or-update-a-file.mdx b/docs/api-reference/repositories/create-or-update-a-file.mdx
new file mode 100644
index 00000000000..306c19d2702
--- /dev/null
+++ b/docs/api-reference/repositories/create-or-update-a-file.mdx
@@ -0,0 +1,4 @@
+---
+title: "Create or update a file"
+openapi: "PUT /repos/{owner}/{repo}/contents/{path}"
+---
diff --git a/docs/api-reference/repositories/delete-a-repository.mdx b/docs/api-reference/repositories/delete-a-repository.mdx
new file mode 100644
index 00000000000..44d2f7d5fb2
--- /dev/null
+++ b/docs/api-reference/repositories/delete-a-repository.mdx
@@ -0,0 +1,4 @@
+---
+title: "Delete a repository"
+openapi: "DELETE /repos/{owner}/{repo}"
+---
diff --git a/docs/api-reference/repositories/download-archive.mdx b/docs/api-reference/repositories/download-archive.mdx
new file mode 100644
index 00000000000..65e5f60e181
--- /dev/null
+++ b/docs/api-reference/repositories/download-archive.mdx
@@ -0,0 +1,4 @@
+---
+title: "Download archive"
+openapi: "GET /repos/{owner}/{repo}/archive/{archive}"
+---
diff --git a/docs/api-reference/repositories/download-raw-content.mdx b/docs/api-reference/repositories/download-raw-content.mdx
new file mode 100644
index 00000000000..c9b49de2f76
--- /dev/null
+++ b/docs/api-reference/repositories/download-raw-content.mdx
@@ -0,0 +1,4 @@
+---
+title: "Download raw content"
+openapi: "GET /repos/{owner}/{repo}/raw/{ref}/{filepath}"
+---
diff --git a/docs/api-reference/repositories/edit-issue-tracker-settings.mdx b/docs/api-reference/repositories/edit-issue-tracker-settings.mdx
new file mode 100644
index 00000000000..2edc7a8ef1f
--- /dev/null
+++ b/docs/api-reference/repositories/edit-issue-tracker-settings.mdx
@@ -0,0 +1,4 @@
+---
+title: "Edit issue tracker settings"
+openapi: "PATCH /repos/{owner}/{repo}/issue-tracker"
+---
diff --git a/docs/api-reference/repositories/edit-wiki-settings.mdx b/docs/api-reference/repositories/edit-wiki-settings.mdx
new file mode 100644
index 00000000000..e77fe1def9c
--- /dev/null
+++ b/docs/api-reference/repositories/edit-wiki-settings.mdx
@@ -0,0 +1,4 @@
+---
+title: "Edit wiki settings"
+openapi: "PATCH /repos/{owner}/{repo}/wiki"
+---
diff --git a/docs/api-reference/repositories/get-a-branch.mdx b/docs/api-reference/repositories/get-a-branch.mdx
new file mode 100644
index 00000000000..ad7d4857313
--- /dev/null
+++ b/docs/api-reference/repositories/get-a-branch.mdx
@@ -0,0 +1,4 @@
+---
+title: "Get a branch"
+openapi: "GET /repos/{owner}/{repo}/branches/{branch}"
+---
diff --git a/docs/api-reference/repositories/get-a-repository.mdx b/docs/api-reference/repositories/get-a-repository.mdx
new file mode 100644
index 00000000000..cbccd22ab63
--- /dev/null
+++ b/docs/api-reference/repositories/get-a-repository.mdx
@@ -0,0 +1,4 @@
+---
+title: "Get a repository"
+openapi: "GET /repos/{owner}/{repo}"
+---
diff --git a/docs/api-reference/repositories/get-a-single-commit.mdx b/docs/api-reference/repositories/get-a-single-commit.mdx
new file mode 100644
index 00000000000..baf147aeda7
--- /dev/null
+++ b/docs/api-reference/repositories/get-a-single-commit.mdx
@@ -0,0 +1,4 @@
+---
+title: "Get a single commit"
+openapi: "GET /repos/{owner}/{repo}/commits/{sha}"
+---
diff --git a/docs/api-reference/repositories/get-contents.mdx b/docs/api-reference/repositories/get-contents.mdx
new file mode 100644
index 00000000000..8d52422aa51
--- /dev/null
+++ b/docs/api-reference/repositories/get-contents.mdx
@@ -0,0 +1,4 @@
+---
+title: "Get contents"
+openapi: "GET /repos/{owner}/{repo}/contents/{path}"
+---
diff --git a/docs/api-reference/repositories/get-editorconfig-definition.mdx b/docs/api-reference/repositories/get-editorconfig-definition.mdx
new file mode 100644
index 00000000000..12cb3c8e7ac
--- /dev/null
+++ b/docs/api-reference/repositories/get-editorconfig-definition.mdx
@@ -0,0 +1,4 @@
+---
+title: "Get editorconfig definition"
+openapi: "GET /repos/{owner}/{repo}/editorconfig/{filename}"
+---
diff --git a/docs/api-reference/repositories/list-all-commits.mdx b/docs/api-reference/repositories/list-all-commits.mdx
new file mode 100644
index 00000000000..776d89f9538
--- /dev/null
+++ b/docs/api-reference/repositories/list-all-commits.mdx
@@ -0,0 +1,4 @@
+---
+title: "List all commits"
+openapi: "GET /repos/{owner}/{repo}/commits"
+---
diff --git a/docs/api-reference/repositories/list-branches.mdx b/docs/api-reference/repositories/list-branches.mdx
new file mode 100644
index 00000000000..aaace224a49
--- /dev/null
+++ b/docs/api-reference/repositories/list-branches.mdx
@@ -0,0 +1,4 @@
+---
+title: "List branches"
+openapi: "GET /repos/{owner}/{repo}/branches"
+---
diff --git a/docs/api-reference/repositories/list-forks.mdx b/docs/api-reference/repositories/list-forks.mdx
new file mode 100644
index 00000000000..eedd699a665
--- /dev/null
+++ b/docs/api-reference/repositories/list-forks.mdx
@@ -0,0 +1,4 @@
+---
+title: "List forks"
+openapi: "GET /repos/{owner}/{repo}/forks"
+---
diff --git a/docs/api-reference/repositories/list-organization-repositories.mdx b/docs/api-reference/repositories/list-organization-repositories.mdx
new file mode 100644
index 00000000000..2eef45be8b5
--- /dev/null
+++ b/docs/api-reference/repositories/list-organization-repositories.mdx
@@ -0,0 +1,4 @@
+---
+title: "List organization repositories"
+openapi: "GET /orgs/{orgname}/repos"
+---
diff --git a/docs/api-reference/repositories/list-tags.mdx b/docs/api-reference/repositories/list-tags.mdx
new file mode 100644
index 00000000000..d9e9c59fe22
--- /dev/null
+++ b/docs/api-reference/repositories/list-tags.mdx
@@ -0,0 +1,4 @@
+---
+title: "List tags"
+openapi: "GET /repos/{owner}/{repo}/tags"
+---
diff --git a/docs/api-reference/repositories/list-user-repositories.mdx b/docs/api-reference/repositories/list-user-repositories.mdx
new file mode 100644
index 00000000000..5278e4ac24f
--- /dev/null
+++ b/docs/api-reference/repositories/list-user-repositories.mdx
@@ -0,0 +1,4 @@
+---
+title: "List user repositories"
+openapi: "GET /users/{username}/repos"
+---
diff --git a/docs/api-reference/repositories/list-your-repositories.mdx b/docs/api-reference/repositories/list-your-repositories.mdx
new file mode 100644
index 00000000000..126fac86238
--- /dev/null
+++ b/docs/api-reference/repositories/list-your-repositories.mdx
@@ -0,0 +1,4 @@
+---
+title: "List your repositories"
+openapi: "GET /user/repos"
+---
diff --git a/docs/api-reference/repositories/migrate-a-repository.mdx b/docs/api-reference/repositories/migrate-a-repository.mdx
new file mode 100644
index 00000000000..a43c237f299
--- /dev/null
+++ b/docs/api-reference/repositories/migrate-a-repository.mdx
@@ -0,0 +1,4 @@
+---
+title: "Migrate a repository"
+openapi: "POST /repos/migrate"
+---
diff --git a/docs/api-reference/repositories/mirror-sync.mdx b/docs/api-reference/repositories/mirror-sync.mdx
new file mode 100644
index 00000000000..ff4211c9537
--- /dev/null
+++ b/docs/api-reference/repositories/mirror-sync.mdx
@@ -0,0 +1,4 @@
+---
+title: "Mirror sync"
+openapi: "POST /repos/{owner}/{repo}/mirror-sync"
+---
diff --git a/docs/api-reference/repositories/search-repositories.mdx b/docs/api-reference/repositories/search-repositories.mdx
new file mode 100644
index 00000000000..a55abf6b57f
--- /dev/null
+++ b/docs/api-reference/repositories/search-repositories.mdx
@@ -0,0 +1,4 @@
+---
+title: "Search repositories"
+openapi: "GET /repos/search"
+---
diff --git a/docs/api-reference/users/add-email-addresses.mdx b/docs/api-reference/users/add-email-addresses.mdx
new file mode 100644
index 00000000000..4c65bb95e1c
--- /dev/null
+++ b/docs/api-reference/users/add-email-addresses.mdx
@@ -0,0 +1,4 @@
+---
+title: "Add email addresses"
+openapi: "POST /user/emails"
+---
diff --git a/docs/api-reference/users/check-if-a-user-follows-another.mdx b/docs/api-reference/users/check-if-a-user-follows-another.mdx
new file mode 100644
index 00000000000..8a9b1efee9f
--- /dev/null
+++ b/docs/api-reference/users/check-if-a-user-follows-another.mdx
@@ -0,0 +1,4 @@
+---
+title: "Check if a user follows another"
+openapi: "GET /users/{username}/following/{target}"
+---
diff --git a/docs/api-reference/users/check-if-you-follow-a-user.mdx b/docs/api-reference/users/check-if-you-follow-a-user.mdx
new file mode 100644
index 00000000000..3a471d497c4
--- /dev/null
+++ b/docs/api-reference/users/check-if-you-follow-a-user.mdx
@@ -0,0 +1,4 @@
+---
+title: "Check if you follow a user"
+openapi: "GET /user/following/{target}"
+---
diff --git a/docs/api-reference/users/create-a-public-key.mdx b/docs/api-reference/users/create-a-public-key.mdx
new file mode 100644
index 00000000000..cd52d423d85
--- /dev/null
+++ b/docs/api-reference/users/create-a-public-key.mdx
@@ -0,0 +1,4 @@
+---
+title: "Create a public key"
+openapi: "POST /user/keys"
+---
diff --git a/docs/api-reference/users/create-an-access-token.mdx b/docs/api-reference/users/create-an-access-token.mdx
new file mode 100644
index 00000000000..37b71705d34
--- /dev/null
+++ b/docs/api-reference/users/create-an-access-token.mdx
@@ -0,0 +1,4 @@
+---
+title: "Create an access token"
+openapi: "POST /users/{username}/tokens"
+---
diff --git a/docs/api-reference/users/delete-a-public-key.mdx b/docs/api-reference/users/delete-a-public-key.mdx
new file mode 100644
index 00000000000..e359a713718
--- /dev/null
+++ b/docs/api-reference/users/delete-a-public-key.mdx
@@ -0,0 +1,4 @@
+---
+title: "Delete a public key"
+openapi: "DELETE /user/keys/{id}"
+---
diff --git a/docs/api-reference/users/delete-email-addresses.mdx b/docs/api-reference/users/delete-email-addresses.mdx
new file mode 100644
index 00000000000..7f9de7d1951
--- /dev/null
+++ b/docs/api-reference/users/delete-email-addresses.mdx
@@ -0,0 +1,4 @@
+---
+title: "Delete email addresses"
+openapi: "DELETE /user/emails"
+---
diff --git a/docs/api-reference/users/follow-a-user.mdx b/docs/api-reference/users/follow-a-user.mdx
new file mode 100644
index 00000000000..43075301f3d
--- /dev/null
+++ b/docs/api-reference/users/follow-a-user.mdx
@@ -0,0 +1,4 @@
+---
+title: "Follow a user"
+openapi: "PUT /user/following/{target}"
+---
diff --git a/docs/api-reference/users/get-a-single-public-key.mdx b/docs/api-reference/users/get-a-single-public-key.mdx
new file mode 100644
index 00000000000..453fd5b862b
--- /dev/null
+++ b/docs/api-reference/users/get-a-single-public-key.mdx
@@ -0,0 +1,4 @@
+---
+title: "Get a single public key"
+openapi: "GET /user/keys/{id}"
+---
diff --git a/docs/api-reference/users/get-a-single-user.mdx b/docs/api-reference/users/get-a-single-user.mdx
new file mode 100644
index 00000000000..9c85f907de2
--- /dev/null
+++ b/docs/api-reference/users/get-a-single-user.mdx
@@ -0,0 +1,4 @@
+---
+title: "Get a single user"
+openapi: "GET /users/{username}"
+---
diff --git a/docs/api-reference/users/get-the-authenticated-user.mdx b/docs/api-reference/users/get-the-authenticated-user.mdx
new file mode 100644
index 00000000000..448b18b033e
--- /dev/null
+++ b/docs/api-reference/users/get-the-authenticated-user.mdx
@@ -0,0 +1,4 @@
+---
+title: "Get the authenticated user"
+openapi: "GET /user"
+---
diff --git a/docs/api-reference/users/list-access-tokens.mdx b/docs/api-reference/users/list-access-tokens.mdx
new file mode 100644
index 00000000000..ba4e608598e
--- /dev/null
+++ b/docs/api-reference/users/list-access-tokens.mdx
@@ -0,0 +1,4 @@
+---
+title: "List access tokens"
+openapi: "GET /users/{username}/tokens"
+---
diff --git a/docs/api-reference/users/list-email-addresses.mdx b/docs/api-reference/users/list-email-addresses.mdx
new file mode 100644
index 00000000000..efe4490d8e6
--- /dev/null
+++ b/docs/api-reference/users/list-email-addresses.mdx
@@ -0,0 +1,4 @@
+---
+title: "List email addresses"
+openapi: "GET /user/emails"
+---
diff --git a/docs/api-reference/users/list-followers-of-a-user.mdx b/docs/api-reference/users/list-followers-of-a-user.mdx
new file mode 100644
index 00000000000..f1f993a6261
--- /dev/null
+++ b/docs/api-reference/users/list-followers-of-a-user.mdx
@@ -0,0 +1,4 @@
+---
+title: "List followers of a user"
+openapi: "GET /users/{username}/followers"
+---
diff --git a/docs/api-reference/users/list-public-keys-for-a-user.mdx b/docs/api-reference/users/list-public-keys-for-a-user.mdx
new file mode 100644
index 00000000000..00c87eff7b8
--- /dev/null
+++ b/docs/api-reference/users/list-public-keys-for-a-user.mdx
@@ -0,0 +1,4 @@
+---
+title: "List public keys for a user"
+openapi: "GET /users/{username}/keys"
+---
diff --git a/docs/api-reference/users/list-users-followed-by-a-user.mdx b/docs/api-reference/users/list-users-followed-by-a-user.mdx
new file mode 100644
index 00000000000..16bc16fa6e8
--- /dev/null
+++ b/docs/api-reference/users/list-users-followed-by-a-user.mdx
@@ -0,0 +1,4 @@
+---
+title: "List users followed by a user"
+openapi: "GET /users/{username}/following"
+---
diff --git a/docs/api-reference/users/list-who-you-are-following.mdx b/docs/api-reference/users/list-who-you-are-following.mdx
new file mode 100644
index 00000000000..6c08707f0ba
--- /dev/null
+++ b/docs/api-reference/users/list-who-you-are-following.mdx
@@ -0,0 +1,4 @@
+---
+title: "List who you are following"
+openapi: "GET /user/following"
+---
diff --git a/docs/api-reference/users/list-your-followers.mdx b/docs/api-reference/users/list-your-followers.mdx
new file mode 100644
index 00000000000..04f9c201a74
--- /dev/null
+++ b/docs/api-reference/users/list-your-followers.mdx
@@ -0,0 +1,4 @@
+---
+title: "List your followers"
+openapi: "GET /user/followers"
+---
diff --git a/docs/api-reference/users/list-your-public-keys.mdx b/docs/api-reference/users/list-your-public-keys.mdx
new file mode 100644
index 00000000000..0d3a1f02c88
--- /dev/null
+++ b/docs/api-reference/users/list-your-public-keys.mdx
@@ -0,0 +1,4 @@
+---
+title: "List your public keys"
+openapi: "GET /user/keys"
+---
diff --git a/docs/api-reference/users/search-for-users.mdx b/docs/api-reference/users/search-for-users.mdx
new file mode 100644
index 00000000000..99628c48f43
--- /dev/null
+++ b/docs/api-reference/users/search-for-users.mdx
@@ -0,0 +1,4 @@
+---
+title: "Search for users"
+openapi: "GET /users/search"
+---
diff --git a/docs/api-reference/users/unfollow-a-user.mdx b/docs/api-reference/users/unfollow-a-user.mdx
new file mode 100644
index 00000000000..7bc82d7f3e9
--- /dev/null
+++ b/docs/api-reference/users/unfollow-a-user.mdx
@@ -0,0 +1,4 @@
+---
+title: "Unfollow a user"
+openapi: "DELETE /user/following/{target}"
+---
diff --git a/docs/api-reference/webhooks/create-a-hook.mdx b/docs/api-reference/webhooks/create-a-hook.mdx
new file mode 100644
index 00000000000..aa9ddacc550
--- /dev/null
+++ b/docs/api-reference/webhooks/create-a-hook.mdx
@@ -0,0 +1,4 @@
+---
+title: "Create a hook"
+openapi: "POST /repos/{owner}/{repo}/hooks"
+---
diff --git a/docs/api-reference/webhooks/delete-a-hook.mdx b/docs/api-reference/webhooks/delete-a-hook.mdx
new file mode 100644
index 00000000000..aac71931fa0
--- /dev/null
+++ b/docs/api-reference/webhooks/delete-a-hook.mdx
@@ -0,0 +1,4 @@
+---
+title: "Delete a hook"
+openapi: "DELETE /repos/{owner}/{repo}/hooks/{id}"
+---
diff --git a/docs/api-reference/webhooks/edit-a-hook.mdx b/docs/api-reference/webhooks/edit-a-hook.mdx
new file mode 100644
index 00000000000..b351aab9be7
--- /dev/null
+++ b/docs/api-reference/webhooks/edit-a-hook.mdx
@@ -0,0 +1,4 @@
+---
+title: "Edit a hook"
+openapi: "PATCH /repos/{owner}/{repo}/hooks/{id}"
+---
diff --git a/docs/api-reference/webhooks/list-hooks.mdx b/docs/api-reference/webhooks/list-hooks.mdx
new file mode 100644
index 00000000000..8c5dace0978
--- /dev/null
+++ b/docs/api-reference/webhooks/list-hooks.mdx
@@ -0,0 +1,4 @@
+---
+title: "List hooks"
+openapi: "GET /repos/{owner}/{repo}/hooks"
+---
diff --git a/docs/asking/faq.mdx b/docs/asking/faq.mdx
new file mode 100644
index 00000000000..3b9176e0225
--- /dev/null
+++ b/docs/asking/faq.mdx
@@ -0,0 +1,93 @@
+---
+title: "FAQ"
+description: "Frequently asked questions about using and administering Gogs"
+icon: "circle-question"
+---
+
+Answers to common questions about Gogs configuration, administration, and usage.
+
+## Deployment
+
+
+
+ You can change the listening port on the first run by passing the `-port` flag:
+
+ ```bash
+ gogs web -port 3001
+ ```
+
+ This flag also updates the port number shown on the install page, so pick the port you intend to keep using.
+
+
+
+ Set the `OFFLINE_MODE` option to `true` in the `[server]` section of your `custom/conf/app.ini`:
+
+ ```ini
+ [server]
+ OFFLINE_MODE = true
+ ```
+
+ This disables external network calls such as CDN resource loading and Gravatar avatar fetching.
+
+
+
+ Create a file named `robots.txt` in the `custom` directory at the root of your Gogs installation:
+
+ ```
+ custom/robots.txt
+ ```
+
+ Gogs will serve this file automatically at `/robots.txt`.
+
+
+
+## Administration
+
+
+
+ The first user to register (with `ID = 1`) is automatically granted administrator privileges. No email confirmation is required for this account, even if email confirmation is enabled.
+
+ Once logged in, the administrator can promote other users by navigating to **Admin Panel** > **Users** and editing user accounts. A user who registers through the initial install page is also made an administrator.
+
+
+
+ If you have shell access to the server, follow these steps:
+
+ 1. **Stop Gogs**, then create a temporary admin user from the command line:
+
+ ```bash
+ su git
+ cd /home/git/gogs
+ gogs admin create-user --name tmpuser --password tmppassword --admin --email tmp@example.com
+ ```
+
+ 2. **Start Gogs** again, then log in as `tmpuser` in your browser. Navigate to **Admin Panel** > **Users**, click **Edit** next to the original administrator account, and set a new password.
+
+ 3. **Clean up** by logging out, logging back in as the original administrator with the new password, then deleting the `tmpuser` account from **Admin Panel** > **Users**.
+
+ It is safest to stop Gogs before creating the temporary user via the command line, then start it again afterward.
+
+
+
+## Repository management
+
+
+
+ **Git hooks permission is a high-level privilege** that can allow arbitrary code execution on the server. Only grant it to users you fully trust.
+
+ To enable or disable this permission, go to the **Admin Panel** > **Users**, select the user, and toggle the Git hooks permission in their account settings (`/admin/users/:userid`).
+
+
+
+## Other
+
+
+
+ Mirrored repositories cannot have their own wiki because the mirror is a read-only copy of the upstream repository.
+
+ If you see the "Welcome to Wiki!" page but no green "Create the first page" button, your repository was likely created as a mirror. You have two options:
+
+ 1. Edit the wiki on the upstream repository that is being mirrored.
+ 2. Convert the mirror to a regular repository under **Settings** > **Danger Zone** if you no longer need it to be a mirror.
+
+
diff --git a/docs/asking/release-strategy.mdx b/docs/asking/release-strategy.mdx
new file mode 100644
index 00000000000..a7d349f253b
--- /dev/null
+++ b/docs/asking/release-strategy.mdx
@@ -0,0 +1,49 @@
+---
+title: "Release strategy"
+description: "What you need to know about backwards compatibility"
+icon: "code-branch"
+---
+
+Understanding the Gogs release strategy helps you plan upgrades safely and avoid breaking changes.
+
+## Semantic versioning
+
+Starting with version **0.12.0**, Gogs follows [semantic versioning](https://semver.org/). Version numbers use the format `MAJOR.MINOR.PATCH`:
+
+| Version | Type | Description |
+|-----------|---------------|-----------------------------------------------------------|
+| `0.12.0` | Minor release | Introduces new features or breaking changes within `0.x` |
+| `0.12.1` | Patch release | First bug-fix release for the `0.12` series |
+| `0.12` | Release series| Refers collectively to `0.12.0`, `0.12.1`, `0.12.2`, etc.|
+
+Each minor release has its own **release branch** with the prefix `release/`. For example, `release/0.12` is the branch for version 0.12.0 and all of its patch releases (`0.12.1`, `0.12.2`, and so on).
+
+## Backwards compatibility
+
+### Upgrading from versions before 0.12
+
+
+ If you are running any version of Gogs **below 0.12**, you must first upgrade to **0.12** before upgrading further. This version includes essential database migrations that later versions depend on.
+
+
+### Upgrading from 0.12 and later
+
+Gogs maintains backwards compatibility across **one minor version** at a time. Patch release numbers are disregarded when determining compatibility.
+
+**Supported upgrade paths:**
+
+| From | To | Supported |
+|-----------|-----------|-----------|
+| `0.12.0` | `0.13.0` | Yes |
+| `0.12.1` | `0.13.4` | Yes |
+| `0.12.4` | `0.14.0` | **No** -- skips a minor version |
+
+
+ Always upgrade **one minor version at a time**. For example, to go from `0.12` to `0.14`, first upgrade to `0.13`, verify everything works, and then upgrade to `0.14`.
+
+
+## Source build update frequency
+
+
+ If you run Gogs from a source build rather than an official binary, update **at least once per week**. This prevents you from falling behind and potentially missing incremental database migrations that cannot be applied out of order.
+
diff --git a/docs/asking/troubleshooting.mdx b/docs/asking/troubleshooting.mdx
new file mode 100644
index 00000000000..c3f27c291d2
--- /dev/null
+++ b/docs/asking/troubleshooting.mdx
@@ -0,0 +1,229 @@
+---
+title: "Troubleshooting"
+description: "Common issues and their solutions when running Gogs"
+icon: "wrench"
+---
+
+This page covers common problems you may encounter when installing, configuring, or running Gogs, organized by category.
+
+## SSH
+
+
+
+ **Possible cause**: Gogs makes an HTTP request back to its own web service after every SSH push. If the server firewall or ISP blocks this loopback connection, the request will hang until it times out.
+
+ **Solution**: Ensure that the server can reach itself on the configured HTTP port. Check firewall rules and any network policies that may prevent loopback connections.
+
+
+
+ **Possible cause**: You moved the Gogs binary to a different location from where it was originally installed, so the Git hooks reference a stale path.
+
+ **Solution**: Go to the **Admin Panel** (`/admin`) and run these two tasks:
+
+ 1. **Rewrite `.ssh/authorized_keys` file**
+ 2. **Resync pre-receive, update and post-receive hooks of all repositories**
+
+
+
+ **Possible cause**: When using Git over SSH, Gogs relies on hook scripts to update the timeline and repository display. Several conditions can prevent these scripts from executing, especially when repositories are stored on a mounted device.
+
+ **Solution**:
+
+ - Ensure the mount point containing the repositories is **not** set as `noexec`. Run `mount` to check, and if necessary add the `exec` option to the mount point in `/etc/fstab`.
+ - For `vfat` (and possibly `cifs`) mounts, ensure the `uid`, `gid`, and `fmask` options permit the Gogs user (or a group it belongs to) to execute files.
+ - For network-mounted shares (NFS, Samba), ensure the server is not configured to disallow execution on the remote filesystem.
+
+
+
+## Git
+
+
+
+ **Error**:
+
+ ```text
+ fatal: 'XX/XX.git' does not appear to be a git repository
+ ```
+
+ Or: pushed commits but the repository still shows as bare.
+
+ **Possible cause**: There are duplicate SSH keys in `~/.ssh/authorized_keys`. This commonly happens if you are (or were) running GitLab on the same system user.
+
+ **Solution**: Edit `~/.ssh/authorized_keys` and remove the old duplicate entry, keeping only the key that was added by Gogs.
+
+
+
+ **Error**:
+
+ ```text
+ repo.NewRepoContext(fail to set git user.email):
+ ```
+
+ **Possible cause**: On Windows, this occurs when Git Bash was installed without enabling the `cmd` option, so `git` is not available on the system PATH.
+
+ **Solution**: Reinstall Git for Windows and make sure the option to add Git to the system PATH (the `cmd` option) is enabled.
+
+
+
+## Database
+
+
+
+ **Error**:
+
+ ```text
+ Error 1071: Specified key was too long; max key length is 1000 bytes
+ ```
+
+ **Possible cause**: The database is using the MyISAM storage engine, which has a shorter maximum key length than InnoDB.
+
+ **Solution**: After importing the initial schema, log into MySQL and switch the storage engine:
+
+ ```sql
+ USE gogs;
+ SET GLOBAL storage_engine=INNODB;
+ ```
+
+ Then re-run the Gogs installer at `http://localhost:3000/install`.
+
+
+
+ **Error**:
+
+ ```text
+ Database setting is not correct: This server only supports the insecure old password authentication.
+ ```
+
+ **Possible cause**: The MySQL user's password was only updated for the `@localhost` entry. A second entry in the user table (such as `@%`) still has the old-format password.
+
+ **Solution**: Update the password for all host entries of the MySQL user. See [this GitHub discussion](https://github.com/gogs/gogs/issues/385#issuecomment-54357073) for detailed steps.
+
+
+
+ **Error**: Pushing to a repository shows that the owner is not registered, or the `user` table does not exist.
+
+ **Possible cause**: Gogs may be running as a system service and loading a different SQLite3 file than expected (for example, a relative path resolved differently).
+
+ **Solution**: Use an **absolute path** for the SQLite3 database file in your `custom/conf/app.ini` configuration.
+
+
+
+## Email
+
+
+
+ **Possible cause**: Google does not trust the server sending the email and requires additional verification.
+
+ **Solution**:
+
+ 1. Visit [https://accounts.google.com](https://accounts.google.com) and log in.
+ 2. Go to [https://accounts.google.com/DisplayUnlockCaptcha](https://accounts.google.com/DisplayUnlockCaptcha) and click **Continue**.
+ 3. Copy the `ContinueSignIn` link from the Gogs server log and complete the sign-in.
+ 4. Check your spam folder in case your mail provider flagged the messages.
+
+
+
+ **Error**:
+
+ ```text
+ gomail: could not send email 1: Auth: 535
+ ```
+
+ **Possible cause**: The SMTP password contains special characters that are not being interpreted correctly.
+
+ **Solution**: Wrap the password in single quotes in your `custom/conf/app.ini`:
+
+ ```ini
+ PASSWORD = 'P4§$w0rd'
+ ```
+
+
+
+## Windows
+
+
+
+ **Error**:
+
+ ```text
+ cygwin warning: MS-DOS style path detected ...
+ fatal: '/cygdrive/d/.../C:\Users\...' does not appear to be a git repository
+ ```
+
+ **Possible cause**: Another shell (such as Cygwin) is installed on the system and its path style conflicts with the native Windows paths Gogs expects.
+
+ **Solution**: Start Gogs using the default Windows Command Prompt (`cmd.exe`) instead of Cygwin or other alternative shells.
+
+
+
+ **Error**:
+
+ ```text
+ Resource interpreted as Stylesheet but transferred with MIME type application/x-css
+ ```
+
+ **Possible cause**: The Windows registry has an incorrect `Content Type` value for the `.css` file extension.
+
+ **Solution**: Open the Windows Registry Editor, navigate to `HKEY_CLASSES_ROOT\.css`, and change the `Content Type` value to `text/css`.
+
+
+
+## Other
+
+
+
+ **Possible cause**: This can happen for two reasons:
+
+ 1. Nginx is trying to resolve `localhost` as an IPv6 address, causing a delay.
+ 2. Gravatar avatar lookups are being attempted without a valid email address.
+
+ **Solution**:
+
+ 1. Use the explicit hostname `127.0.0.1` instead of `localhost` during the initial setup at `http://gogs-server:3000/install`.
+ 2. Either use a valid Gravatar email address for the administrator account or disable avatar lookup during the initial setup.
+
+
+
+ **Error**:
+
+ ```text
+ Error 1062: Duplicate entry 'Unknown-Mac' for key 'UQE_public_key_name'
+ ```
+
+ **Possible cause**: A very early version of Gogs had a unique constraint (`UQE_public_key_name`) on SSH key names in the `public_key` table. This constraint is no longer needed.
+
+ **Solution**: Manually delete the `UQE_public_key_name` unique index from the `public_key` table in your database.
+
+
+
+ **Solution**: Update the C library on your system:
+
+ ```bash
+ sudo apt-get -t testing install libc6-dev
+ ```
+
+
+
+ **Error**:
+
+ ```text
+ [Macaron] PANIC: session(start): mkdir data: permission denied
+ ```
+
+ **Possible cause**: Gogs creates a `data` subdirectory in the same directory as the Gogs binary. The process does not have write permission to that directory.
+
+ **Solution**: Ensure the user running Gogs has permission to create subdirectories in the directory where the Gogs binary is located.
+
+
+
+ **Error**:
+
+ ```text
+ ! [remote rejected] master -> master (hook declined)
+ ```
+
+ **Possible cause**: Git is unable to execute the update hook script.
+
+ **Solution**: Make sure the `bash` shell is available on your system. All Gogs hook scripts require `bash` to run.
+
+
diff --git a/docs/dev/database_schema.md b/docs/dev/database_schema.md
new file mode 100644
index 00000000000..cb035aa077b
--- /dev/null
+++ b/docs/dev/database_schema.md
@@ -0,0 +1,131 @@
+# Table "access"
+
+```
+ Field | Column | PostgreSQL | MySQL | SQLite3
+--------+---------+-----------------+-----------------------+-----------------------
+ ID | id | BIGSERIAL | BIGINT AUTO_INCREMENT | INTEGER AUTOINCREMENT
+ UserID | user_id | BIGINT NOT NULL | BIGINT NOT NULL | INTEGER NOT NULL
+ RepoID | repo_id | BIGINT NOT NULL | BIGINT NOT NULL | INTEGER NOT NULL
+ Mode | mode | BIGINT NOT NULL | BIGINT NOT NULL | INTEGER NOT NULL
+
+Primary keys: id
+Indexes:
+ "access_user_repo_unique" UNIQUE (user_id, repo_id)
+```
+
+# Table "access_token"
+
+```
+ Field | Column | PostgreSQL | MySQL | SQLite3
+-------------+--------------+-----------------------------+-----------------------------+-----------------------------
+ ID | id | BIGSERIAL | BIGINT AUTO_INCREMENT | INTEGER AUTOINCREMENT
+ UserID | uid | BIGINT | BIGINT | INTEGER
+ Name | name | TEXT | LONGTEXT | TEXT
+ Sha1 | sha1 | VARCHAR(40) UNIQUE | VARCHAR(40) UNIQUE | VARCHAR(40) UNIQUE
+ SHA256 | sha256 | VARCHAR(64) NOT NULL UNIQUE | VARCHAR(64) NOT NULL UNIQUE | VARCHAR(64) NOT NULL UNIQUE
+ CreatedUnix | created_unix | BIGINT | BIGINT | INTEGER
+ UpdatedUnix | updated_unix | BIGINT | BIGINT | INTEGER
+
+Primary keys: id
+Indexes:
+ "idx_access_token_user_id" (uid)
+```
+
+# Table "action"
+
+```
+ Field | Column | PostgreSQL | MySQL | SQLite3
+--------------+----------------+--------------------------------+--------------------------------+--------------------------------
+ ID | id | BIGSERIAL | BIGINT AUTO_INCREMENT | INTEGER AUTOINCREMENT
+ UserID | user_id | BIGINT | BIGINT | INTEGER
+ OpType | op_type | BIGINT | BIGINT | INTEGER
+ ActUserID | act_user_id | BIGINT | BIGINT | INTEGER
+ ActUserName | act_user_name | TEXT | LONGTEXT | TEXT
+ RepoID | repo_id | BIGINT | BIGINT | INTEGER
+ RepoUserName | repo_user_name | TEXT | LONGTEXT | TEXT
+ RepoName | repo_name | TEXT | LONGTEXT | TEXT
+ RefName | ref_name | TEXT | LONGTEXT | TEXT
+ IsPrivate | is_private | BOOLEAN NOT NULL DEFAULT FALSE | BOOLEAN NOT NULL DEFAULT FALSE | NUMERIC NOT NULL DEFAULT FALSE
+ Content | content | TEXT | LONGTEXT | TEXT
+ CreatedUnix | created_unix | BIGINT | BIGINT | INTEGER
+
+Primary keys: id
+Indexes:
+ "idx_action_repo_id" (repo_id)
+ "idx_action_user_id" (user_id)
+```
+
+# Table "email_address"
+
+```
+ Field | Column | PostgreSQL | MySQL | SQLite3
+-------------+--------------+--------------------------------+--------------------------------+--------------------------------
+ ID | id | BIGSERIAL | BIGINT AUTO_INCREMENT | INTEGER AUTOINCREMENT
+ UserID | uid | BIGINT NOT NULL | BIGINT NOT NULL | INTEGER NOT NULL
+ Email | email | VARCHAR(254) NOT NULL | VARCHAR(254) NOT NULL | TEXT NOT NULL
+ IsActivated | is_activated | BOOLEAN NOT NULL DEFAULT FALSE | BOOLEAN NOT NULL DEFAULT FALSE | NUMERIC NOT NULL DEFAULT FALSE
+
+Primary keys: id
+Indexes:
+ "email_address_user_email_unique" UNIQUE (uid, email)
+ "idx_email_address_user_id" (uid)
+```
+
+# Table "follow"
+
+```
+ Field | Column | PostgreSQL | MySQL | SQLite3
+----------+-----------+-----------------+-----------------------+-----------------------
+ ID | id | BIGSERIAL | BIGINT AUTO_INCREMENT | INTEGER AUTOINCREMENT
+ UserID | user_id | BIGINT NOT NULL | BIGINT NOT NULL | INTEGER NOT NULL
+ FollowID | follow_id | BIGINT NOT NULL | BIGINT NOT NULL | INTEGER NOT NULL
+
+Primary keys: id
+Indexes:
+ "follow_user_follow_unique" UNIQUE (user_id, follow_id)
+```
+
+# Table "lfs_object"
+
+```
+ Field | Column | PostgreSQL | MySQL | SQLite3
+-----------+------------+----------------------+----------------------+-------------------
+ RepoID | repo_id | BIGINT | BIGINT | INTEGER
+ OID | oid | TEXT | VARCHAR(191) | TEXT
+ Size | size | BIGINT NOT NULL | BIGINT NOT NULL | INTEGER NOT NULL
+ Storage | storage | TEXT NOT NULL | LONGTEXT NOT NULL | TEXT NOT NULL
+ CreatedAt | created_at | TIMESTAMPTZ NOT NULL | DATETIME(3) NOT NULL | DATETIME NOT NULL
+
+Primary keys: repo_id, oid
+```
+
+# Table "login_source"
+
+```
+ Field | Column | PostgreSQL | MySQL | SQLite3
+-------------+--------------+------------------+-----------------------+-----------------------
+ ID | id | BIGSERIAL | BIGINT AUTO_INCREMENT | INTEGER AUTOINCREMENT
+ Type | type | BIGINT | BIGINT | INTEGER
+ Name | name | TEXT UNIQUE | VARCHAR(191) UNIQUE | TEXT UNIQUE
+ IsActived | is_actived | BOOLEAN NOT NULL | BOOLEAN NOT NULL | NUMERIC NOT NULL
+ IsDefault | is_default | BOOLEAN | BOOLEAN | NUMERIC
+ Config | cfg | TEXT | TEXT | TEXT
+ CreatedUnix | created_unix | BIGINT | BIGINT | INTEGER
+ UpdatedUnix | updated_unix | BIGINT | BIGINT | INTEGER
+
+Primary keys: id
+```
+
+# Table "notice"
+
+```
+ Field | Column | PostgreSQL | MySQL | SQLite3
+-------------+--------------+------------+-----------------------+-----------------------
+ ID | id | BIGSERIAL | BIGINT AUTO_INCREMENT | INTEGER AUTOINCREMENT
+ Type | type | BIGINT | BIGINT | INTEGER
+ Description | description | TEXT | TEXT | TEXT
+ CreatedUnix | created_unix | BIGINT | BIGINT | INTEGER
+
+Primary keys: id
+```
+
diff --git a/docs/dev/import_locale.md b/docs/dev/import_locale.md
new file mode 100644
index 00000000000..93d420c77c1
--- /dev/null
+++ b/docs/dev/import_locale.md
@@ -0,0 +1,17 @@
+# Import locales from Crowdin
+
+1. Upload the latest version of [`locale_en-US.ini`](https://github.com/gogs/gogs/blob/main/conf/locale/locale_en-US.ini) to the [Crowdin](https://crowdin.gogs.io/project/gogs/sources/files).
+1. [Build and download](https://crowdin.gogs.io/project/gogs/translations) the ZIP archive and unzip it.
+1. Go to root directory of the repository.
+1. Run the `import` subcommand:
+
+ ```
+ $ ./.bin/gogs import locale --source --target ./conf/locale
+ Locale files has been successfully imported!
+ ```
+
+1. Run `moon run gogs:dev` to start the web server, then visit the site in the browser to make sure nothing blows up.
+1. Check out a new branch using `git checkout -b update-locales`.
+1. Stage changes
+1. Run `git commit -m "locale: sync from Crowdin"`.
+1. Push the commit then open up a pull request on GitHub.
diff --git a/docs/dev/local_development.md b/docs/dev/local_development.md
new file mode 100644
index 00000000000..2e0098db6cd
--- /dev/null
+++ b/docs/dev/local_development.md
@@ -0,0 +1,178 @@
+# Set up your development environment
+
+Gogs is written in [Go](https://golang.org/), please take [A Tour of Go](https://tour.golang.org/) if you haven't done so!
+
+## Outline
+
+- [Environment](#environment)
+- [Step 1: Install dependencies](#step-1-install-dependencies)
+- [Step 2: Initialize your database](#step-2-initialize-your-database)
+- [Step 3: Get the code](#step-3-get-the-code)
+- [Step 4: Configure database settings](#step-4-configure-database-settings)
+- [Step 5: Start the server](#step-5-start-the-server)
+- [Other nice things](#other-nice-things)
+
+## Environment
+
+Gogs is built and runs as a single binary and meant to be cross platform. Therefore, you should be able to develop Gogs in any major platforms you prefer.
+
+## Step 1: Install dependencies
+
+Gogs has the following dependencies:
+
+- [Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) (v1.8.3 or higher)
+- [Go](https://golang.org/doc/install) (v1.20 or higher)
+- [Less.js](http://lesscss.org/usage/#command-line-usage-installing)
+- [Moon](https://moonrepo.dev/docs/install)
+- [goimports](https://pkg.go.dev/golang.org/x/tools/cmd/goimports)
+- [go-mockgen](https://github.com/derision-test/go-mockgen)
+- Database upon your choice (pick one, we choose PostgreSQL in this document):
+ - [PostgreSQL](https://wiki.postgresql.org/wiki/Detailed_installation_guides) (v9.6 or higher)
+ - [MySQL](https://dev.mysql.com/downloads/mysql/) with `ENGINE=InnoDB` (v5.7 or higher)
+ - [SQLite3](https://www.sqlite.org/index.html)
+ - [TiDB](https://github.com/pingcap/tidb)
+
+### macOS
+
+1. Install [Homebrew](https://brew.sh/).
+1. Install dependencies:
+
+ ```bash
+ brew install go postgresql git npm moon portless
+ portless trust
+ npm install -g less
+ npm install -g less-plugin-clean-css
+ go install github.com/derision-test/go-mockgen/cmd/go-mockgen@v1.3.3
+ go install golang.org/x/tools/cmd/goimports@latest
+ ```
+
+ `portless trust` adds the local CA to your system trust store so `https://gogs.localhost` works without browser warnings. The `moon run gogs:dev` task will start the proxy and register the route automatically.
+
+1. Configure PostgreSQL to start automatically:
+
+ ```bash
+ brew services start postgresql
+ ```
+
+1. Ensure `psql`, the PostgreSQL command line client, is on your `$PATH`.
+ Homebrew does not put it there by default. Homebrew gives you the command to run to insert `psql` in your path in the "Caveats" section of `brew info postgresql`. Alternatively, you can use the command below. It might need to be adjusted depending on your Homebrew prefix (`/usr/local` below) and shell (bash below).
+
+ ```bash
+ hash psql || { echo 'export PATH="/usr/local/opt/postgresql/bin:$PATH"' >> ~/.bash_profile }
+ source ~/.bash_profile
+ ```
+
+### Ubuntu
+
+1. Add package repositories:
+
+ ```bash
+ curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
+ ```
+
+1. Update repositories:
+
+ ```bash
+ sudo apt-get update
+ ```
+
+1. Install dependencies:
+
+ ```bash
+ sudo apt install -y make git-all postgresql postgresql-contrib golang-go nodejs
+ npm install -g less
+ go install github.com/derision-test/go-mockgen/cmd/go-mockgen@v1.3.3
+ go install golang.org/x/tools/cmd/goimports@latest
+ ```
+
+1. Install [Moon](https://moonrepo.dev/docs/install).
+
+1. Configure startup services:
+
+ ```bash
+ sudo systemctl enable postgresql
+ ```
+
+## Step 2: Initialize your database
+
+You need a fresh Postgres database and a database user that has full ownership of that database.
+
+1. Create a database for the current Unix user:
+
+ ```bash
+ # For Linux users, first access the postgres user shell
+ sudo su - postgres
+ ```
+
+ ```bash
+ createdb
+ ```
+
+2. Create the Gogs user and password:
+
+ ```bash
+ createuser --superuser gogs
+ psql -c "ALTER USER gogs WITH PASSWORD '';"
+ ```
+
+3. Create the Gogs database
+
+ ```bash
+ createdb --owner=gogs --encoding=UTF8 --template=template0 gogs
+ ```
+
+## Step 3: Get the code
+
+Generally, you don't need a full clone, so set `--depth` to `10`:
+
+```bash
+git clone --depth 10 https://github.com/gogs/gogs.git
+```
+
+**NOTE** The repository has Go modules enabled, please clone to somewhere outside of your `$GOPATH`.
+
+## Step 4: Configure database settings
+
+Create a `custom/conf/app.ini` file inside the repository and put the following configuration (everything under `custom/` directory is used to override default files and is excluded by `.gitignore`):
+
+```ini
+[database]
+TYPE = postgres
+HOST = 127.0.0.1:5432
+NAME = gogs
+USER = gogs
+PASSWORD =
+SSL_MODE = disable
+```
+
+## Step 5: Start the server
+
+The following command will start the web server and automatically recompile and restart the server if any Go files changed:
+
+```bash
+moon run gogs:dev
+```
+
+**NOTE** If you changed any file under `conf/`, `templates/` or `public/` directory, be sure to rerun `moon run gogs:dev` afterwards!
+
+## Other nice things
+
+### Load HTML templates and static files from disk
+
+When you are actively working on HTML templates and static files during development, you may want to enable the following configuration to avoid recompiling and restarting Gogs every time you make a change to files under `template/` and `public/` directories:
+
+```ini
+RUN_MODE = dev
+
+[server]
+LOAD_ASSETS_FROM_DISK = true
+```
+
+### Offline development
+
+Sometimes you will want to develop Gogs but it just so happens you will be on a plane or a train or perhaps a beach, and you will have no WiFi. And you may raise your fist toward heaven and say something like, "Why, we can put a man on the moon, so why can't we develop high-quality Git hosting without an Internet connection?" But lower your hand back to your keyboard and fret no further, you *can* develop Gogs with no connectivity by setting the following configuration in your `custom/conf/app.ini`:
+
+```ini
+[server]
+OFFLINE_MODE = true
+```
diff --git a/docs/docs.json b/docs/docs.json
new file mode 100644
index 00000000000..6383ce8246e
--- /dev/null
+++ b/docs/docs.json
@@ -0,0 +1,255 @@
+{
+ "$schema": "https://mintlify.com/docs.json",
+ "theme": "mint",
+ "fonts": {
+ "family": "DM Sans"
+ },
+ "name": "Gogs: A painless self-hosted Git service",
+ "colors": {
+ "primary": "#e45858",
+ "light": "#e45858",
+ "dark": "#e53170"
+ },
+ "api": {
+ "playground": {
+ "display": "simple"
+ },
+ "examples": {
+ "languages": ["curl"]
+ }
+ },
+ "favicon": "/images/favicon.svg",
+ "logo": {
+ "light": "/images/logo-light.svg",
+ "dark": "/images/logo-dark.svg"
+ },
+ "navigation": {
+ "tabs": [
+ {
+ "tab": "Docs",
+ "groups": [
+ {
+ "group": "Getting started",
+ "pages": [
+ "getting-started/introduction",
+ "getting-started/installation"
+ ]
+ },
+ {
+ "group": "Fine-tuning",
+ "pages": [
+ "fine-tuning/configuration-primer",
+ "fine-tuning/reverse-proxy",
+ "fine-tuning/run-as-service"
+ ]
+ },
+ {
+ "group": "Advancing",
+ "pages": [
+ "advancing/authentication",
+ "advancing/webhooks",
+ "advancing/git-lfs",
+ "advancing/custom-templates",
+ "advancing/localization",
+ "advancing/cli-reference"
+ ]
+ },
+ {
+ "group": "Asking",
+ "pages": [
+ "asking/release-strategy",
+ "asking/troubleshooting",
+ "asking/faq"
+ ]
+ }
+ ]
+ },
+ {
+ "tab": "API reference",
+ "groups": [
+ {
+ "group": "Overview",
+ "pages": [
+ "api-reference/introduction"
+ ]
+ },
+ {
+ "group": "Repositories",
+ "pages": [
+ "api-reference/repositories/search-repositories",
+ "api-reference/repositories/list-your-repositories",
+ "api-reference/repositories/create-a-repository",
+ "api-reference/repositories/list-user-repositories",
+ "api-reference/repositories/list-organization-repositories",
+ "api-reference/repositories/create-a-repository-in-an-organization",
+ "api-reference/repositories/migrate-a-repository",
+ "api-reference/repositories/get-a-repository",
+ "api-reference/repositories/delete-a-repository",
+ "api-reference/repositories/edit-issue-tracker-settings",
+ "api-reference/repositories/mirror-sync",
+ "api-reference/repositories/list-branches",
+ "api-reference/repositories/get-a-branch",
+ "api-reference/repositories/get-a-single-commit",
+ "api-reference/repositories/download-raw-content",
+ "api-reference/repositories/download-archive",
+ "api-reference/repositories/get-contents",
+ "api-reference/repositories/create-or-update-a-file",
+ "api-reference/repositories/list-forks",
+ "api-reference/repositories/list-tags",
+ "api-reference/repositories/list-all-commits",
+ "api-reference/repositories/edit-wiki-settings",
+ "api-reference/repositories/get-editorconfig-definition"
+ ]
+ },
+ {
+ "group": "Collaborators and deploy keys",
+ "pages": [
+ "api-reference/collaborators-and-deploy-keys/list-collaborators",
+ "api-reference/collaborators-and-deploy-keys/check-if-user-is-collaborator",
+ "api-reference/collaborators-and-deploy-keys/add-a-collaborator",
+ "api-reference/collaborators-and-deploy-keys/remove-a-collaborator",
+ "api-reference/collaborators-and-deploy-keys/list-deploy-keys",
+ "api-reference/collaborators-and-deploy-keys/add-a-deploy-key",
+ "api-reference/collaborators-and-deploy-keys/get-a-deploy-key",
+ "api-reference/collaborators-and-deploy-keys/remove-a-deploy-key"
+ ]
+ },
+ {
+ "group": "Releases",
+ "pages": [
+ "api-reference/releases/list-releases"
+ ]
+ },
+ {
+ "group": "Webhooks",
+ "pages": [
+ "api-reference/webhooks/list-hooks",
+ "api-reference/webhooks/create-a-hook",
+ "api-reference/webhooks/edit-a-hook",
+ "api-reference/webhooks/delete-a-hook"
+ ]
+ },
+ {
+ "group": "Issues",
+ "pages": [
+ "api-reference/issues/list-user-issues",
+ "api-reference/issues/list-issues-for-a-repository",
+ "api-reference/issues/create-an-issue",
+ "api-reference/issues/get-a-single-issue",
+ "api-reference/issues/edit-an-issue",
+ "api-reference/issues/list-comments-on-an-issue",
+ "api-reference/issues/create-a-comment",
+ "api-reference/issues/list-comments-in-a-repository",
+ "api-reference/issues/edit-a-comment",
+ "api-reference/issues/delete-a-comment",
+ "api-reference/issues/list-all-labels-for-a-repository",
+ "api-reference/issues/create-a-label",
+ "api-reference/issues/get-a-single-label",
+ "api-reference/issues/update-a-label",
+ "api-reference/issues/delete-a-label",
+ "api-reference/issues/list-labels-on-an-issue",
+ "api-reference/issues/add-labels-to-an-issue",
+ "api-reference/issues/replace-all-labels-for-an-issue",
+ "api-reference/issues/remove-all-labels-from-an-issue",
+ "api-reference/issues/remove-a-label-from-an-issue",
+ "api-reference/issues/list-milestones-for-a-repository",
+ "api-reference/issues/create-a-milestone",
+ "api-reference/issues/get-a-single-milestone",
+ "api-reference/issues/edit-a-milestone",
+ "api-reference/issues/delete-a-milestone"
+ ]
+ },
+ {
+ "group": "Users",
+ "pages": [
+ "api-reference/users/search-for-users",
+ "api-reference/users/get-a-single-user",
+ "api-reference/users/get-the-authenticated-user",
+ "api-reference/users/list-access-tokens",
+ "api-reference/users/create-an-access-token",
+ "api-reference/users/list-email-addresses",
+ "api-reference/users/add-email-addresses",
+ "api-reference/users/delete-email-addresses",
+ "api-reference/users/list-followers-of-a-user",
+ "api-reference/users/list-your-followers",
+ "api-reference/users/list-users-followed-by-a-user",
+ "api-reference/users/list-who-you-are-following",
+ "api-reference/users/check-if-you-follow-a-user",
+ "api-reference/users/follow-a-user",
+ "api-reference/users/unfollow-a-user",
+ "api-reference/users/check-if-a-user-follows-another",
+ "api-reference/users/list-public-keys-for-a-user",
+ "api-reference/users/get-a-single-public-key",
+ "api-reference/users/delete-a-public-key",
+ "api-reference/users/list-your-public-keys",
+ "api-reference/users/create-a-public-key"
+ ]
+ },
+ {
+ "group": "Organizations",
+ "pages": [
+ "api-reference/organizations/create-an-organization-for-user",
+ "api-reference/organizations/list-your-organizations",
+ "api-reference/organizations/list-user-organizations",
+ "api-reference/organizations/get-an-organization",
+ "api-reference/organizations/edit-an-organization",
+ "api-reference/organizations/list-teams-of-an-organization"
+ ]
+ },
+ {
+ "group": "Administration",
+ "pages": [
+ "api-reference/administration/create-a-new-user",
+ "api-reference/administration/edit-an-existing-user",
+ "api-reference/administration/delete-a-user",
+ "api-reference/administration/create-a-public-key-for-a-user",
+ "api-reference/administration/create-a-repository-for-a-user",
+ "api-reference/administration/create-an-organization",
+ "api-reference/administration/create-a-team",
+ "api-reference/administration/list-all-members-of-a-team",
+ "api-reference/administration/add-team-membership",
+ "api-reference/administration/remove-team-membership",
+ "api-reference/administration/add-or-update-team-repository",
+ "api-reference/administration/remove-team-repository"
+ ]
+ },
+ {
+ "group": "Miscellaneous",
+ "pages": [
+ "api-reference/miscellaneous/render-a-markdown-document",
+ "api-reference/miscellaneous/render-a-markdown-document-in-raw-mode",
+ "api-reference/miscellaneous/get-a-tree",
+ "api-reference/miscellaneous/get-a-git-blob"
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "navbar": {
+ "links": [
+ {
+ "label": "Demo",
+ "href": "https://try.gogs.io"
+ }
+ ],
+ "primary": {
+ "type": "github",
+ "href": "https://github.com/gogs/gogs"
+ }
+ },
+ "footer": {
+ "socials": {
+ "x": "https://x.com/GogsHQ",
+ "github": "https://github.com/gogs/gogs"
+ }
+ },
+ "contextual": {
+ "options": ["copy", "view", "chatgpt", "claude"]
+ },
+ "integrations": {
+ "plausible": {
+ "domain": "gogs.io"
+ }
+ }
+}
diff --git a/docs/fine-tuning/configuration-primer.mdx b/docs/fine-tuning/configuration-primer.mdx
new file mode 100644
index 00000000000..d0c73d6982e
--- /dev/null
+++ b/docs/fine-tuning/configuration-primer.mdx
@@ -0,0 +1,131 @@
+---
+title: "Configuration primer"
+description: "Fine tune your instance exactly the way you want."
+icon: "sliders"
+---
+
+Gogs uses a layered configuration system. A default configuration is embedded in the binary, and you provide overrides in a custom file. Beyond `app.ini`, the `custom/` directory lets you override templates, static assets, locale files, and more.
+
+## Two-layer configuration
+
+Gogs reads configuration from two sources, in order:
+
+1. **Embedded defaults**: The [`conf/app.ini`](https://github.com/gogs/gogs/blob/main/conf/app.ini) file is compiled into the binary. You should never edit this file directly.
+2. **Custom overrides**: Your `custom/conf/app.ini` file. Any value you set here takes precedence over the embedded default.
+
+This separation means binary users can upgrade without losing their settings, and source installers benefit from `custom/` being in `.gitignore`.
+
+
+ The embedded [`conf/app.ini`](https://github.com/gogs/gogs/blob/main/conf/app.ini) contains every available option with detailed inline comments. Use it as your canonical reference.
+
+
+### Overriding a value
+
+You only need to include the values you want to change. For example, to set a custom repository storage path and switch to production mode:
+
+```ini
+RUN_MODE = prod
+
+[repository]
+ROOT = /home/git/gogs-repositories
+```
+
+Values support INI variable interpolation with the `%(KEY)s` syntax. The embedded defaults use this extensively, for example:
+
+```ini
+EXTERNAL_URL = %(PROTOCOL)s://%(DOMAIN)s:%(HTTP_PORT)s/
+```
+
+Values also support environment variable expansion, so you can reference system environment variables directly in your configuration:
+
+```ini
+[database]
+PASSWORD = ${DATABASE_PASSWORD}
+```
+
+
+ If a password or value contains special characters (like backticks or `#`), wrap it in backticks, e.g., PASSWORD = \`p@ss#word!\`.
+
+
+
+ Gogs uses [go-ini/ini](https://ini.unknwon.io/) as the configuration library, please refer to its documentation for the full syntax specification including multi-line values, key/value separators, and section handling.
+
+
+## The `custom/` directory
+
+The `custom/` directory is Gogs' extension point. It sits alongside the binary by default, and contains much more than just `app.ini`.
+
+### Finding the path
+
+Run `gogs web --help` to see the custom directory path in the output. You can also override it:
+
+| Method | Example |
+|--------|---------|
+| Default | The `custom/` subdirectory next to the binary |
+| Environment variable | `GOGS_CUSTOM=/etc/gogs` |
+
+The work directory (parent of `custom/`) can also be overridden with `GOGS_WORK_DIR`.
+
+### Specifying a custom config path
+
+Every Gogs subcommand accepts `-c, --config` to point to a configuration file at a non-default location:
+
+```bash
+gogs web --config /etc/gogs/app.ini
+```
+
+### What lives in `custom/`
+
+```
+custom/
+├── conf/
+│ ├── app.ini # Your configuration overrides
+│ ├── auth.d/ # Authentication source files
+│ │ └── *.conf
+│ ├── gitignore/ # Custom .gitignore templates
+│ ├── license/ # Custom license templates
+│ ├── readme/ # Custom README templates
+│ ├── label/ # Custom issue label sets
+│ └── locale/ # Translation overrides
+│ └── locale_*.ini
+├── templates/ # HTML template overrides
+├── public/ # Static asset overrides (CSS, JS, images)
+└── robots.txt # Search engine crawling rules
+```
+
+All of these are optional. Gogs falls back to embedded defaults when a custom file does not exist.
+
+## Repository templates
+
+Gogs ships with embedded templates used when creating new repositories:
+
+| Template type | Embedded location |
+|---------------|-------------------|
+| `.gitignore` | `conf/gitignore/` |
+| License | `conf/license/` |
+| README | `conf/readme/` |
+| Issue labels | `conf/label/` |
+
+You can add your own by placing files in the corresponding `custom/conf/` subdirectory. Custom files take priority over embedded ones with the same name, so you can also override built-in templates.
+
+For example, to add a custom `.gitignore` template that appears in the repository creation form:
+
+```
+custom/conf/gitignore/MyFramework
+```
+
+The `[repository] PREFERRED_LICENSES` option controls which licenses appear at the top of the selection list. The names must match filenames in `conf/license/` or `custom/conf/license/`.
+
+## Custom templates and static assets
+
+You can override any of Gogs' HTML templates or static assets by mirroring the file structure under `custom/`.
+
+**Templates** -- Place files in `custom/templates/` matching the path of the [embedded template](https://github.com/gogs/gogs/tree/main/templates) you want to override. See [Custom templates](/advancing/custom-templates) for details.
+
+**Static assets** -- Place files in `custom/public/` to override CSS, JavaScript, or images. Custom public files are served with higher priority than embedded ones.
+
+**Locale overrides** -- Place `locale_*.ini` files in `custom/conf/locale/` to override translation strings for any supported language.
+
+## Loading assets from disk
+
+By default, Gogs serves templates, locale files, and public assets from the binary's embedded data. If you set `LOAD_ASSETS_FROM_DISK = true` in `[server]`, Gogs will load them from the work directory instead. This is mainly useful during development.
diff --git a/docs/fine-tuning/reverse-proxy.mdx b/docs/fine-tuning/reverse-proxy.mdx
new file mode 100644
index 00000000000..4358928d5c1
--- /dev/null
+++ b/docs/fine-tuning/reverse-proxy.mdx
@@ -0,0 +1,373 @@
+---
+title: "Reverse proxy"
+description: "Host-sharing your Git service with HTTPS"
+icon: "shield-halved"
+---
+
+Running Gogs behind a reverse proxy allows you to serve it on standard ports (80/443) with a clean and nice URL in the browser address bar, add TLS termination, and integrate with existing web server infrastructure.
+
+
+ Make sure the `EXTERNAL_URL` in your `custom/conf/app.ini` matches the actual URL users will access. When using a reverse proxy for TLS termination, keep `PROTOCOL = http` in Gogs and set `EXTERNAL_URL` to `https://`. The reverse proxy handles the encryption, and Gogs communicates with it over plain HTTP on the local network.
+
+
+## Caddy
+
+
+
+ Add the following server block to your `Caddyfile` and reload:
+
+ ```caddy
+ gogs.example.com {
+ proxy / http://localhost:3000
+ }
+ ```
+
+ Set the matching external URL in `custom/conf/app.ini`:
+
+ ```ini
+ [server]
+ EXTERNAL_URL = https://gogs.example.com/
+ ```
+
+
+ Caddy automatically provisions TLS certificates via Let's Encrypt when you use a domain name.
+
+
+
+ To serve Gogs under a subpath, note the trailing `/`:
+
+ ```caddy
+ example.com {
+ proxy /gogs/ http://localhost:3000
+ }
+ ```
+
+ Set the matching external URL in `custom/conf/app.ini`:
+
+ ```ini
+ [server]
+ EXTERNAL_URL = https://example.com/gogs/
+ ```
+
+
+
+## NGINX
+
+
+
+ Add the following `server` block inside the `http` section of your `nginx.conf` (or in a file under `sites-available`), then reload the NGINX configuration:
+
+ ```nginx
+ server {
+ listen 80;
+ server_name gogs.example.com;
+
+ location / {
+ proxy_pass http://localhost:3000;
+ }
+ }
+ ```
+
+ Set the matching external URL in `custom/conf/app.ini`:
+
+ ```ini
+ [server]
+ EXTERNAL_URL = http://gogs.example.com/
+ ```
+
+
+ To serve Gogs under a subpath, note the trailing `/` on both the `location` and `proxy_pass` directives:
+
+ ```nginx
+ server {
+ listen 80;
+ server_name example.com;
+
+ location /gogs/ {
+ proxy_pass http://localhost:3000/;
+ }
+ }
+ ```
+
+ Set the matching external URL in `custom/conf/app.ini`:
+
+ ```ini
+ [server]
+ EXTERNAL_URL = http://example.com/gogs/
+ ```
+
+
+ Install [Certbot](https://certbot.eff.org/) and obtain a [Let's Encrypt](https://letsencrypt.org/) certificate:
+
+ ```bash
+ sudo apt install certbot python3-certbot-nginx
+ sudo certbot --nginx -d gogs.example.com
+ ```
+
+ Certbot will automatically modify your Nginx configuration to use HTTPS. Your Nginx server block will look similar to:
+
+ ```nginx
+ server {
+ listen 443 ssl;
+ server_name gogs.example.com;
+
+ ssl_certificate /etc/letsencrypt/live/gogs.example.com/fullchain.pem;
+ ssl_certificate_key /etc/letsencrypt/live/gogs.example.com/privkey.pem;
+
+ location / {
+ proxy_pass http://localhost:3000;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+ }
+
+ server {
+ listen 80;
+ server_name gogs.example.com;
+ return 301 https://$host$request_uri;
+ }
+ ```
+
+ Set the matching external URL in `custom/conf/app.ini`:
+
+ ```ini
+ [server]
+ EXTERNAL_URL = https://gogs.example.com/
+ ```
+
+ Certbot sets up automatic renewal via a cron job or systemd timer. Verify with:
+
+ ```bash
+ sudo certbot renew --dry-run
+ ```
+
+
+
+### Large file uploads
+
+If you encounter HTTP `413 Request Entity Too Large` errors when pushing large files through NGINX, add `client_max_body_size` to your server block:
+
+```nginx
+server {
+ listen 80;
+ server_name gogs.example.com;
+
+ client_max_body_size 50m;
+
+ location / {
+ proxy_pass http://localhost:3000;
+ }
+}
+```
+
+
+ Adjust the `client_max_body_size` value to match or exceed the maximum file size you expect users to push. The default NGINX limit is only 1 MB.
+
+
+## Apache 2
+
+
+
+ Create or edit your virtual host configuration file (e.g. `/etc/apache2/vhost.d/gogs.conf`):
+
+ ```apache
+
+ ServerName gogs.example.com
+
+ ProxyPreserveHost On
+ ProxyRequests off
+ ProxyPass / http://127.0.0.1:3000
+ ProxyPassReverse / http://127.0.0.1:3000
+
+ ```
+
+ Set the matching external URL in `custom/conf/app.ini`:
+
+ ```ini
+ [server]
+ EXTERNAL_URL = http://gogs.example.com/
+ ```
+
+
+ To serve Gogs under a subpath, omit the trailing slash after the port number in the `ProxyPass` directives:
+
+ ```apache
+
+ ServerName example.com
+
+
+ Order allow,deny
+ Allow from all
+
+
+ ProxyPass /gogs http://127.0.0.1:3000
+ ProxyPassReverse /gogs http://127.0.0.1:3000
+
+ ```
+
+ Set the matching external URL in `custom/conf/app.ini`:
+
+ ```ini
+ [server]
+ EXTERNAL_URL = http://example.com/gogs/
+ ```
+
+
+ Enable the `ssl` module in addition to the proxy modules:
+
+ ```bash
+ sudo a2enmod proxy proxy_http ssl
+ sudo systemctl restart apache2
+ ```
+
+ Apache virtual host configuration:
+
+ ```apache
+
+ ServerName gogs.example.com
+
+ SSLEngine on
+ SSLCertificateFile /path/to/cert.pem
+ SSLCertificateKeyFile /path/to/key.pem
+
+ ProxyPreserveHost On
+ ProxyRequests off
+ ProxyPass / http://127.0.0.1:3000/
+ ProxyPassReverse / http://127.0.0.1:3000/
+
+
+ # Redirect HTTP to HTTPS
+
+ ServerName gogs.example.com
+ Redirect permanent / https://gogs.example.com/
+
+ ```
+
+ Set the matching external URL in `custom/conf/app.ini`:
+
+ ```ini
+ [server]
+ EXTERNAL_URL = https://gogs.example.com/
+ ```
+
+
+
+## lighttpd
+
+
+
+ Add the following to your lighttpd configuration:
+
+ ```lighttpd
+ server.modules += ( "mod_proxy" )
+
+ $HTTP["host"] == "gogs.example.com" {
+ proxy.server = ( "" => ( ( "host" => "127.0.0.1", "port" => "3000" ) ) )
+ }
+ ```
+
+ Set the matching external URL in `custom/conf/app.ini`:
+
+ ```ini
+ [server]
+ EXTERNAL_URL = http://gogs.example.com/
+ ```
+
+
+ To serve Gogs under a subpath, requires lighttpd **1.4.46 or later** for the `proxy.header` directive:
+
+ ```lighttpd
+ server.modules += ( "mod_proxy" )
+
+ $HTTP["url"] =~ "^/gogs/" {
+ proxy.server = ( "" => ( ( "host" => "localhost", "port" => "3000" ) ) )
+ proxy.header = ( "map-urlpath" => ( "/gogs/" => "/" ) )
+ }
+ ```
+
+ Set the matching external URL in `custom/conf/app.ini`:
+
+ ```ini
+ [server]
+ EXTERNAL_URL = http://example.com/gogs/
+ ```
+
+
+
+## IIS
+
+Create a new website in IIS and use the following `web.config` file.
+
+
+ If you do not need HTTPS handled by IIS, remove the entire `RedirectToHttps` rule section from the configuration below.
+
+
+```xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+Then set the matching external URL in `custom/conf/app.ini`:
+
+```ini
+[server]
+EXTERNAL_URL = https://gogs.example.com/
+```
+
+## Native HTTPS
+
+If you are not using a reverse proxy, Gogs can serve HTTPS directly. Update the `[server]` section of `custom/conf/app.ini`:
+
+```ini
+[server]
+PROTOCOL = https
+EXTERNAL_URL = https://gogs.example.com/
+CERT_FILE = custom/https/cert.pem
+KEY_FILE = custom/https/key.pem
+```
+
+| Option | Description | Default |
+|--------|-------------|---------|
+| `PROTOCOL` | Set to `https` to enable native TLS. | `http` |
+| `CERT_FILE` | Path to the TLS certificate file (PEM format). | `custom/https/cert.pem` |
+| `KEY_FILE` | Path to the TLS private key file (PEM format). | `custom/https/key.pem` |
+| `TLS_MIN_VERSION` | Minimum TLS version. Options: `TLS10`, `TLS11`, `TLS12`, `TLS13`. | `TLS12` |
diff --git a/docs/fine-tuning/run-as-service.mdx b/docs/fine-tuning/run-as-service.mdx
new file mode 100644
index 00000000000..df58699e113
--- /dev/null
+++ b/docs/fine-tuning/run-as-service.mdx
@@ -0,0 +1,356 @@
+---
+title: "Run as service"
+description: "Configure Gogs to start automatically as a system service on Linux, macOS, and Windows"
+icon: "server"
+---
+
+Running Gogs as a system service ensures it starts automatically on boot and restarts if it crashes. Choose the init system or service manager that matches your operating system.
+
+## Linux
+
+
+
+ Systemd is the default init system on most modern Linux distributions (Ubuntu 16.04+, Debian 8+, CentOS 7+, Fedora, Arch Linux, etc.).
+
+ Gogs ships with a [systemd service template](https://github.com/gogs/gogs/blob/main/scripts/systemd/gogs.service) at `scripts/systemd/gogs.service` in the installation directory.
+
+ ### 1. Customize the service file
+
+ Copy the template and edit it to match your installation:
+
+ ```bash
+ sudo cp /home/git/gogs/scripts/systemd/gogs.service /etc/systemd/system/gogs.service
+ sudo vim /etc/systemd/system/gogs.service
+ ```
+
+ Here is the default service file for reference:
+
+ ```ini
+ [Unit]
+ Description=Gogs
+ After=network.target
+ After=mariadb.service mysql.service mysqld.service postgresql.service memcached.service redis.service
+
+ [Service]
+ # Uncomment the following if you have repos with lots of files
+ # and get an HTTP 500 error because of that
+ #LimitMEMLOCK=infinity
+ #LimitNOFILE=65535
+ Type=simple
+ User=git
+ Group=git
+ WorkingDirectory=/home/git/gogs
+ ExecStart=/home/git/gogs/gogs web
+ Restart=always
+ RestartSec=2s
+ Environment=USER=git HOME=/home/git
+
+ # Hardening directives (comment out if not supported by your systemd version)
+ ProtectSystem=full
+ PrivateDevices=yes
+ PrivateTmp=yes
+ NoNewPrivileges=true
+
+ [Install]
+ WantedBy=multi-user.target
+ ```
+
+ Update the following values to match your environment:
+ - `User` and `Group` -- the system user running Gogs
+ - `WorkingDirectory` -- the Gogs installation directory
+ - `ExecStart` -- the full path to the Gogs binary
+ - `Environment` -- ensure `USER` and `HOME` match the Gogs user
+
+
+ If you use MySQL/MariaDB, PostgreSQL, Redis, or Memcached, the `After=` lines ensure Gogs starts after those services. Uncomment or add lines as needed for your database.
+
+
+ ### 2. Enable and start the service
+
+ ```bash
+ sudo systemctl enable gogs
+ sudo systemctl start gogs
+ ```
+
+ ### 3. Verify the service
+
+ ```bash
+ # Check status
+ sudo systemctl status gogs -l
+
+ # View logs
+ sudo journalctl -b -u gogs
+ ```
+
+
+ If you have repositories with a large number of files and encounter HTTP 500 errors, uncomment the `LimitMEMLOCK=infinity` and `LimitNOFILE=65535` directives in the service file.
+
+
+
+ For Debian-based systems that do not use systemd, Gogs provides an init.d script at `scripts/init/debian/gogs`.
+
+ ### 1. Copy and customize the script
+
+ ```bash
+ sudo cp /home/git/gogs/scripts/init/debian/gogs /etc/init.d/gogs
+ sudo chmod +x /etc/init.d/gogs
+ sudo vim /etc/init.d/gogs
+ ```
+
+ Verify or update the following variables in the script:
+
+ ```bash
+ WORKINGDIR=/home/git/gogs
+ DAEMON=$WORKINGDIR/$NAME
+ DAEMON_ARGS="web"
+ USER=git
+ ```
+
+ If you run Gogs alongside Nginx and PostgreSQL, update the init dependencies at the top of the script:
+
+ ```bash
+ # Required-Start: $syslog $network $local_fs nginx postgresql
+ # Required-Stop: $syslog $local_fs
+ ```
+
+ ### 2. Register and start the service
+
+ ```bash
+ sudo update-rc.d gogs defaults 30 70
+ sudo service gogs start
+ ```
+
+ ### 3. Verify
+
+ Visit your Gogs URL in a browser to confirm it is running. You can also check:
+
+ ```bash
+ sudo service gogs status
+ ```
+
+
+ For CentOS/RHEL systems, Gogs provides an init.d script at `scripts/init/centos/gogs`.
+
+ ### 1. Copy and customize the script
+
+ ```bash
+ sudo cp /home/git/gogs/scripts/init/centos/gogs /etc/rc.d/init.d/gogs
+ sudo chmod +x /etc/rc.d/init.d/gogs
+ sudo vim /etc/rc.d/init.d/gogs
+ ```
+
+ Verify or update the following variables:
+
+ ```bash
+ NAME=gogs
+ GOGS_HOME=/home/git/gogs
+ GOGS_PATH=${GOGS_HOME}/$NAME
+ GOGS_USER=git
+ LOGPATH=${GOGS_HOME}/log
+ ```
+
+
+ You can override these defaults by creating `/etc/sysconfig/gogs` with your custom values.
+
+
+ ### 2. Register and start the service
+
+ ```bash
+ sudo chkconfig gogs on
+ sudo service gogs start
+ ```
+
+ ### 3. Verify
+
+ ```bash
+ sudo service gogs status
+ ```
+
+
+ For Gentoo and other distributions using OpenRC, create a service script at `/etc/init.d/gogs`:
+
+ ```bash
+ #!/sbin/openrc-run
+
+ description="Gogs - A painless self-hosted Git service"
+ command="/home/git/gogs/gogs"
+ command_args="web"
+ command_user="git"
+ command_background=true
+ pidfile="/var/run/gogs.pid"
+ directory="/home/git/gogs"
+
+ depend() {
+ need net
+ after mysql postgresql
+ }
+ ```
+
+ Make it executable and enable it:
+
+ ```bash
+ sudo chmod +x /etc/init.d/gogs
+ sudo rc-update add gogs default
+ sudo rc-service gogs start
+ ```
+
+
+
+## Windows
+
+On Windows, Gogs can run as a native Windows service using either the builtin `minwinsvc` support or the third-party NSSM tool.
+
+
+
+ Gogs binaries built with the `minwinsvc` tag (release archive name that contains `mws`) support running as a native Windows service.
+
+ ### 1. Configure Gogs for Windows
+
+ Edit `C:\gogs\custom\conf\app.ini`:
+
+ ```ini
+ RUN_USER = COMPUTERNAME$
+ ```
+
+ Replace `COMPUTERNAME` with the output of `echo %COMPUTERNAME%` in a command prompt. For example, if the computer name is `USER-PC`, set `RUN_USER = USER-PC$`.
+
+ Configure the server section:
+
+ ```ini
+ [server]
+ DOMAIN = gogs
+ PROTOCOL = http
+ HTTP_ADDR = 127.0.1.1
+ HTTP_PORT = 80
+ OFFLINE_MODE = true
+ EXTERNAL_URL = http://gogs/
+ ```
+
+
+ Using an address in the `127.x.x.x` range (other than `127.0.0.1`) prevents port conflicts with other local services while keeping traffic local. Any address from `127.0.0.2` to `127.254.254.254` works.
+
+
+ ### 2. Add a hosts entry
+
+ Open Notepad as Administrator and edit `C:\Windows\System32\drivers\etc\hosts`:
+
+ ```text
+ # Gogs local HTTPd
+ 127.0.1.1 gogs
+ ```
+
+ ### 3. Create and start the service
+
+ Open a command prompt as Administrator:
+
+ ```cmd
+ sc create gogs start= auto binPath= "\"C:\gogs\gogs.exe\" web --config \"C:\gogs\custom\conf\app.ini\""
+ ```
+
+
+ There must be a space after each `=` in the `sc create` command. This is a Windows `sc.exe` syntax requirement.
+
+
+ Start the service:
+
+ ```cmd
+ net start gogs
+ ```
+
+ You should see:
+
+ ```text
+ The gogs service is starting.
+ The gogs service was started successfully.
+ ```
+
+
+ Windows services run from `%WINDIR%\System32` by default. Always use **absolute paths** in `app.ini` for data directories and database files:
+
+ ```ini
+ [server]
+ APP_DATA_PATH = c:/gogs/data
+
+ [database]
+ PATH = c:/gogs/data/gogs.db
+ ```
+
+ Use forward slashes (`/`) in paths to avoid escape character issues.
+
+
+
+ [NSSM (Non-Sucking Service Manager)](https://nssm.cc/) provides more control over service configuration and automatic restart behavior.
+
+ ### 1. Install NSSM
+
+ Download [nssm.exe](https://nssm.cc/download) for your architecture (32-bit or 64-bit) and place it in a directory on your `PATH`.
+
+ ### 2. Install the Gogs service
+
+ Open a command prompt as Administrator:
+
+ ```cmd
+ nssm install gogs
+ ```
+
+ The NSSM service installer GUI will appear. Configure the following tabs:
+
+ **Application tab:**
+ - **Path:** `C:\gogs\gogs.exe`
+ - **Startup directory:** `C:\gogs`
+ - **Arguments:** `web`
+
+ **Details tab:**
+ - **Display name:** `Gogs`
+ - **Description:** `Gogs is a painless self-hosted Git service.`
+ - **Startup type:** `Automatic (Delayed Start)`
+
+
+ Delayed start means the service will begin approximately two minutes after non-delayed services, reducing impact on boot time.
+
+
+ **I/O tab:**
+ - **Output (stdout):** `C:\gogs\log\gogs-nssm.txt`
+ - **Error (stderr):** `C:\gogs\log\gogs-nssm.txt`
+
+ **File rotation tab:**
+ - Check **Rotate files**
+ - **Restrict rotation to files bigger than:** `1000000` bytes
+
+ **Environment tab:**
+ - **Environment variables:** `PATH=%PATH%;C:\gogs;C:\Program Files (x86)\Git\bin`
+
+
+ The environment variable ensures both `gogs.exe` and `git.exe` are available on the service's PATH at runtime.
+
+
+ Click **Install service** to complete the setup.
+
+ ### 3. Start and manage the service
+
+ ```cmd
+ nssm start gogs
+ ```
+
+ You should see:
+
+ ```text
+ gogs: START: The operation completed successfully.
+ ```
+
+ Verify by checking `C:\gogs\log\gogs-nssm.txt` for Gogs startup output, ending with lines like:
+
+ ```text
+ [I] Run Mode: Production
+ [I] Listen: http://127.0.1.1:80
+ ```
+
+ To restart after configuration changes:
+
+ ```cmd
+ nssm restart gogs
+ ```
+
+ NSSM will automatically attempt to restart Gogs if it crashes.
+
+
diff --git a/docs/getting-started/installation.mdx b/docs/getting-started/installation.mdx
new file mode 100644
index 00000000000..d3ca28f21d3
--- /dev/null
+++ b/docs/getting-started/installation.mdx
@@ -0,0 +1,76 @@
+---
+title: "Installation"
+description: "Get your own Git service up and running in minutes"
+icon: "download"
+---
+
+## Prerequisites
+
+1. Gogs requires use of one of the following database backends:
+ - MySQL, >= 5.7
+ - PostgreSQL, >= 9.6
+ - SQLite 3
+1. Git, >= 1.8.3, on both server and client side
+1. SSH server
+ - Only required when enable Git over SSH, e.g., `git clone git@gogs.example.com:...`
+ - Builtin SSH server is also available
+
+
+**For Windows users:**
+
+- When using builtin SSH server, you still need to have `ssh-keygen` installed and available via the `%PATH%` environment variable.
+- Use [OpenSSH](https://learn.microsoft.com/en-us/windows-server/administration/openssh/openssh_install_firstuse) on Windows 10 or newer.
+- [Cygwin OpenSSH](http://docs.oracle.com/cd/E24628_01/install.121/e22624/preinstall_req_cygwin_ssh.htm) or [Copssh](https://www.itefix.net/copssh) are available on older versions of Windows.
+
+
+## Initialize database
+
+If you choose to use MySQL or PostgreSQL as your database backend, you need to first complete the initial database creation.
+
+
+
+ Create a database user and database:
+
+ ```bash
+ psql -c "CREATE USER gogs WITH PASSWORD '{YOUR_PASSWORD}';"
+ psql -c "CREATE DATABASE gogs OWNER gogs ENCODING 'UTF8';"
+ ```
+
+
+ Use the [bundled script](https://github.com/gogs/gogs/blob/main/scripts/mysql.sql) to create the database with proper encoding:
+
+ ```zsh
+ mysql -u root -p < scripts/mysql.sql
+ ```
+
+
+
+## Installation methods
+
+
+
+ All release archives containing pre-built binaries are available in [dl.gogs.io](https://dl.gogs.io) and [GitHub releases](https://github.com/gogs/gogs/releases).
+
+
+ **For Windows users:**
+
+ Release archives containing `mws` come with built-in Windows service support. If you prefer to manage the service using [NSSM](https://nssm.cc), download the standard version instead.
+
+
+ Once extracted the archive, run `gogs web` to start the server. Use `gogs web --help` to see all available options.
+
+
+ Two types of Docker images are provided:
+ 1. [docker-next](https://github.com/gogs/gogs/blob/main/docker-next/README.md): The modern, non-root, and cloud-native version, but with no container options.
+ 1. [docker](https://github.com/gogs/gogs/blob/main/docker/README.md): The traditional, root-privileged version, with extensive container options.
+
+
+
+ All packages listed below are packaged by third-party maintainers. Use at your own risk.
+
+
+ |Source| Description | Note|
+ |------|------------------------------------------|-----|
+ |Arch User Repository ([link](https://aur.archlinux.org/packages/gogs/))| Stable releases | Detailed instructions available in the [Arch Linux Wiki entry](https://wiki.archlinux.org/title/Gogs). |
+
+
diff --git a/docs/getting-started/introduction.mdx b/docs/getting-started/introduction.mdx
new file mode 100644
index 00000000000..81bbf663082
--- /dev/null
+++ b/docs/getting-started/introduction.mdx
@@ -0,0 +1,128 @@
+---
+title: "Introduction"
+sidebarTitle: "Introduction"
+description: "The painless way to host your own Git service"
+icon: "book-open"
+---
+
+
+
+
+
+## Vision
+
+The Gogs project aims to build a simple, stable and extensible self-hosted Git service that can be set up in the most painless way. With Go, this can be done with an independent binary distribution across all platforms that Go supports, including Linux, macOS, Windows and ARM-based systems.
+
+## Core values
+
+- **Simple to install**: Run the binary, or run as a Docker container.
+- **Cross-platform**: Runs on every platform that Go toolchain supports.
+- **Lightweight**: Unrealistically low resource consumption to get started. Only got 64 MiB of RAM and a quarter of vCPU? No problem!
+- **Open source**: MIT-licensed since 2014, all source code available in public.
+
+## Sponsors
+
+The growth of the Gogs project wasn't possible without our world-class sponsors!
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Quickstart
+
+
+
+ Get your own Git service up and running in minutes.
+
+
+ Fine tune your instance exactly the way you want.
+
+
+ Discover powerful and advanced features.
+
+
+ Keep up the version and energy.
+
+
diff --git a/docs/images/favicon.svg b/docs/images/favicon.svg
new file mode 100644
index 00000000000..d94c66ddd92
--- /dev/null
+++ b/docs/images/favicon.svg
@@ -0,0 +1,28 @@
+
+
\ No newline at end of file
diff --git a/docs/images/logo-dark.svg b/docs/images/logo-dark.svg
new file mode 100644
index 00000000000..81c617ae280
--- /dev/null
+++ b/docs/images/logo-dark.svg
@@ -0,0 +1,22 @@
+
+
\ No newline at end of file
diff --git a/docs/images/logo-light.svg b/docs/images/logo-light.svg
new file mode 100644
index 00000000000..1df64b9bcdd
--- /dev/null
+++ b/docs/images/logo-light.svg
@@ -0,0 +1,22 @@
+
+
\ No newline at end of file
diff --git a/docs/images/sponsors/buildkite-dark.svg b/docs/images/sponsors/buildkite-dark.svg
new file mode 100644
index 00000000000..af5c99ec958
--- /dev/null
+++ b/docs/images/sponsors/buildkite-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/docs/images/sponsors/buildkite-light.svg b/docs/images/sponsors/buildkite-light.svg
new file mode 100644
index 00000000000..8df8e5e3f11
--- /dev/null
+++ b/docs/images/sponsors/buildkite-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/docs/images/sponsors/crowdin-dark.svg b/docs/images/sponsors/crowdin-dark.svg
new file mode 100644
index 00000000000..c4c15b7b1f6
--- /dev/null
+++ b/docs/images/sponsors/crowdin-dark.svg
@@ -0,0 +1,16 @@
+
diff --git a/docs/images/sponsors/crowdin-light.svg b/docs/images/sponsors/crowdin-light.svg
new file mode 100644
index 00000000000..f8813752af0
--- /dev/null
+++ b/docs/images/sponsors/crowdin-light.svg
@@ -0,0 +1,16 @@
+
diff --git a/docs/images/sponsors/digitalocean-dark.png b/docs/images/sponsors/digitalocean-dark.png
new file mode 100755
index 00000000000..8898df7f9cc
Binary files /dev/null and b/docs/images/sponsors/digitalocean-dark.png differ
diff --git a/docs/images/sponsors/digitalocean-light.png b/docs/images/sponsors/digitalocean-light.png
new file mode 100755
index 00000000000..ee98b493e02
Binary files /dev/null and b/docs/images/sponsors/digitalocean-light.png differ
diff --git a/docs/images/sponsors/mintlify-dark.svg b/docs/images/sponsors/mintlify-dark.svg
new file mode 100644
index 00000000000..4553d414103
--- /dev/null
+++ b/docs/images/sponsors/mintlify-dark.svg
@@ -0,0 +1,53 @@
+
\ No newline at end of file
diff --git a/docs/images/sponsors/mintlify-light.svg b/docs/images/sponsors/mintlify-light.svg
new file mode 100644
index 00000000000..744eb77228e
--- /dev/null
+++ b/docs/images/sponsors/mintlify-light.svg
@@ -0,0 +1,53 @@
+
\ No newline at end of file
diff --git a/docs/scripts/ads.js b/docs/scripts/ads.js
new file mode 100644
index 00000000000..4ee4481980d
--- /dev/null
+++ b/docs/scripts/ads.js
@@ -0,0 +1,68 @@
+// wwads.cn: above table of contents. Carbon Ads: below table of contents.
+(function () {
+ "use strict";
+
+ var CARBON_ID = "gogs-carbon-ad";
+ var WWADS_ID = "gogs-wwads";
+
+ // Load the wwads.cn global script (skipped on localhost — ad unit
+ // 97 is registered for gogs.io and the API rejects other origins).
+ var isProduction = location.hostname !== "localhost";
+ if (isProduction) {
+ var wwScript = document.createElement("script");
+ wwScript.src = "https://cdn.wwads.cn/js/makemoney.js";
+ wwScript.async = true;
+ document.head.appendChild(wwScript);
+ }
+
+ function injectCarbonAd() {
+ if (document.getElementById(CARBON_ID)) return;
+
+ var toc = document.getElementById("table-of-contents");
+ if (!toc) return;
+
+ var container = document.createElement("div");
+ container.id = CARBON_ID;
+
+ var carbon = document.createElement("script");
+ carbon.async = true;
+ carbon.type = "text/javascript";
+ carbon.src =
+ "//cdn.carbonads.com/carbon.js?serve=CKYILK3U&placement=gogsio";
+ carbon.id = "_carbonads_js";
+ container.appendChild(carbon);
+
+ toc.appendChild(container);
+ }
+
+ function injectWwads() {
+ if (document.getElementById(WWADS_ID)) return;
+
+ var toc = document.getElementById("table-of-contents");
+ if (!toc) return;
+
+ var container = document.createElement("div");
+ container.id = WWADS_ID;
+
+ var wwads = document.createElement("div");
+ wwads.className = "wwads-cn wwads-horizontal";
+ wwads.setAttribute("data-id", "97");
+ container.appendChild(wwads);
+
+ toc.insertBefore(container, toc.firstChild);
+ }
+
+ function injectAds() {
+ injectCarbonAd();
+ injectWwads();
+ }
+
+ // Re-inject when the content is replaced during SPA navigation.
+ var debounce;
+ new MutationObserver(function () {
+ clearTimeout(debounce);
+ debounce = setTimeout(injectAds, 200);
+ }).observe(document.documentElement, { childList: true, subtree: true });
+
+ injectAds();
+})();
diff --git a/docs/scripts/title.js b/docs/scripts/title.js
new file mode 100644
index 00000000000..26bb21e7fc8
--- /dev/null
+++ b/docs/scripts/title.js
@@ -0,0 +1,15 @@
+// Fix landing page tab title: "Introduction - ..." → "Gogs - ..."
+(function () {
+ var old = "Introduction - Gogs";
+ var fix = function () {
+ if (document.title.startsWith(old)) {
+ document.title = document.title.replace(old, "Gogs");
+ }
+ };
+ new MutationObserver(fix).observe(
+ document.querySelector("title") || document.head,
+ { childList: true, subtree: true, characterData: true }
+ );
+ fix();
+ setTimeout(fix, 100);
+})();
diff --git a/docs/styles/style.css b/docs/styles/style.css
new file mode 100644
index 00000000000..8b1babaaa54
--- /dev/null
+++ b/docs/styles/style.css
@@ -0,0 +1,50 @@
+/* Fix sidebar HTTP method badge overflow for PATCH (5-char badge exceeds the default 32px container) */
+.method-nav-pill {
+ width: 2.5rem !important;
+}
+
+/* Carbon Ads — below table of contents */
+#gogs-carbon-ad {
+ margin-top: 1rem;
+ border-top: 1px solid hsl(0 0% 90%);
+}
+.dark #gogs-carbon-ad {
+ border-top-color: hsl(0 0% 22%);
+}
+#carbonads {
+ margin-top: 1.5rem;
+ display: block;
+ padding: 0.75rem;
+ border-radius: 6px;
+ background: hsl(0 0% 98%);
+ font-size: 0.8125rem;
+ line-height: 1.4;
+}
+.dark #carbonads {
+ color: darkgray;
+ background: hsl(0 0% 12%);
+}
+#carbonads .carbon-img {
+ display: flex;
+ justify-content: center;
+ margin-bottom: 0.5rem;
+}
+#carbonads .carbon-img img {
+ max-width: 100%;
+ border-radius: 4px;
+}
+
+/* wwads — above table of contents */
+#gogs-wwads {
+ margin-top: -1.5rem;
+ margin-bottom: 1.5rem;
+ padding-bottom: 1.5rem;
+ border-bottom: 1px solid hsl(0 0% 90%);
+}
+.dark .wwads-cn {
+ background: hsl(0 0% 12%);
+ border-bottom-color: hsl(0 0% 22%);
+}
+.dark .wwads-cn .wwads-text {
+ color: darkgray;
+}
diff --git a/glide.lock b/glide.lock
deleted file mode 100644
index f924608f7b6..00000000000
--- a/glide.lock
+++ /dev/null
@@ -1,154 +0,0 @@
-hash: 1d5fcf2a90f7621ecbc0b1abed548e11d13bda3fea49b4326c829a523268e5cf
-updated: 2016-06-12T17:35:14.27036884+08:00
-imports:
-- name: github.com/bradfitz/gomemcache
- version: fb1f79c6b65acda83063cbc69f6bba1522558bfc
- subpackages:
- - memcache
-- name: github.com/urfave/cli
- version: 1efa31f08b9333f1bd4882d61f9d668a70cd902e
-- name: github.com/go-macaron/binding
- version: 9440f336b443056c90d7d448a0a55ad8c7599880
-- name: github.com/go-macaron/cache
- version: 56173531277692bc2925924d51fda1cd0a6b8178
- subpackages:
- - memcache
- - redis
-- name: github.com/go-macaron/captcha
- version: 8aa5919789ab301e865595eb4b1114d6b9847deb
-- name: github.com/go-macaron/csrf
- version: 6a9a7df172cc1fcd81e4585f44b09200b6087cc0
-- name: github.com/go-macaron/gzip
- version: cad1c6580a07c56f5f6bc52d66002a05985c5854
-- name: github.com/go-macaron/i18n
- version: ef57533c3b0fc2d8581deda14937e52f11a203ab
-- name: github.com/go-macaron/inject
- version: c5ab7bf3a307593cd44cb272d1a5beea473dd072
-- name: github.com/go-macaron/session
- version: 66031fcb37a0fff002a1f028eb0b3a815c78306b
- subpackages:
- - redis
-- name: github.com/go-macaron/toolbox
- version: 82b511550b0aefc36b3a28062ad3a52e812bee38
-- name: github.com/go-sql-driver/mysql
- version: 0b58b37b664c21f3010e836f1b931e1d0b0b0685
-- name: github.com/go-xorm/builder
- version: cd42e8337f3031e737c3f415b6354793cf30f1c9
-- name: github.com/go-xorm/core
- version: 2ec3936f8a8a3fb6397c6c10185acffa87488534
-- name: github.com/go-xorm/xorm
- version: 311abf25abd146a5ddaad5dc3241eba4b4b29284
-- name: github.com/gogits/chardet
- version: 2404f777256163ea3eadb273dada5dcb037993c0
-- name: github.com/gogits/cron
- version: 7f3990acf1833faa5ebd0e86f0a4c72a4b5eba3c
-- name: github.com/gogits/git-module
- version: 5e0c1330d7853d1affbc193885d517db0f8d1ca5
-- name: github.com/gogits/go-gogs-client
- version: c52f7ee0cc58d3cd6e379025552873a8df6de322
-- name: github.com/gogits/go-libravatar
- version: cd1abbd55d09b793672732a7a1dfdaa12a40dfd0
-- name: github.com/issue9/identicon
- version: d36b54562f4cf70c83653e13dc95c220c79ef521
-- name: github.com/jaytaylor/html2text
- version: 52d9b785554a1918cb09909b89a1509a98b853fd
-- name: github.com/kardianos/minwinsvc
- version: cad6b2b879b0970e4245a20ebf1a81a756e2bb70
-- name: github.com/klauspost/compress
- version: 14eb9c4951195779ecfbec34431a976de7335b0a
- subpackages:
- - gzip
- - flate
-- name: github.com/klauspost/cpuid
- version: 09cded8978dc9e80714c4d85b0322337b0a1e5e0
-- name: github.com/klauspost/crc32
- version: 19b0b332c9e4516a6370a0456e6182c3b5036720
-- name: github.com/lib/pq
- version: 80f8150043c80fb52dee6bc863a709cdac7ec8f8
- subpackages:
- - oid
-- name: github.com/mattn/go-sqlite3
- version: e118d4451349065b8e7ce0f0af32e033995363f8
-- name: github.com/mcuadros/go-version
- version: d52711f8d6bea8dc01efafdb68ad95a4e2606630
-- name: github.com/microcosm-cc/bluemonday
- version: 9dc199233bf72cc1aad9b61f73daf2f0075b9ee4
-- name: github.com/msteinert/pam
- version: 02ccfbfaf0cc627aa3aec8ef7ed5cfeec5b43f63
-- name: github.com/nfnt/resize
- version: 891127d8d1b52734debe1b3c3d7e747502b6c366
-- name: github.com/russross/blackfriday
- version: 93622da34e54fb6529bfb7c57e710f37a8d9cbd8
-- name: github.com/satori/go.uuid
- version: 0aa62d5ddceb50dbcb909d790b5345affd3669b6
-- name: github.com/sergi/go-diff
- version: ec7fdbb58eb3e300c8595ad5ac74a5aa50019cc7
- subpackages:
- - diffmatchpatch
-- name: github.com/shurcooL/sanitized_anchor_name
- version: 10ef21a441db47d8b13ebcc5fd2310f636973c77
-- name: github.com/Unknwon/cae
- version: 7f5e046bc8a6c3cde743c233b96ee4fd84ee6ecd
- subpackages:
- - zip
-- name: github.com/Unknwon/com
- version: 28b053d5a2923b87ce8c5a08f3af779894a72758
-- name: github.com/Unknwon/i18n
- version: 39d6f2727e0698b1021ceb6a77c1801aa92e7d5d
-- name: github.com/Unknwon/paginater
- version: 7748a72e01415173a27d79866b984328e7b0c12b
-- name: golang.org/x/crypto
- version: bc89c496413265e715159bdc8478ee9a92fdc265
- subpackages:
- - ssh
- - curve25519
- - ed25519
- - ed25519/internal/edwards25519
-- name: golang.org/x/net
- version: 57bfaa875b96fb91b4766077f34470528d4b03e9
- subpackages:
- - html
- - html/charset
- - html/atom
-- name: golang.org/x/sys
- version: a646d33e2ee3172a661fc09bca23bb4889a41bc8
- subpackages:
- - windows/svc
- - windows
-- name: golang.org/x/text
- version: 2910a502d2bf9e43193af9d68ca516529614eed3
- subpackages:
- - transform
- - language
- - encoding
- - encoding/charmap
- - encoding/htmlindex
- - internal/tag
- - encoding/internal/identifier
- - encoding/internal
- - encoding/japanese
- - encoding/korean
- - encoding/simplifiedchinese
- - encoding/traditionalchinese
- - encoding/unicode
- - internal/utf8internal
- - runes
-- name: gopkg.in/alexcesaro/quotedprintable.v3
- version: 2caba252f4dc53eaf6b553000885530023f54623
-- name: gopkg.in/asn1-ber.v1
- version: 4e86f4367175e39f69d9358a5f17b4dda270378d
-- name: gopkg.in/bufio.v1
- version: 567b2bfa514e796916c4747494d6ff5132a1dfce
-- name: gopkg.in/editorconfig/editorconfig-core-go.v1
- version: a872f05c2e34b37b567401384d202aff11ba06d4
-- name: gopkg.in/gomail.v2
- version: 81ebce5c23dfd25c6c67194b37d3dd3f338c98b1
-- name: gopkg.in/ini.v1
- version: cf53f9204df4fbdd7ec4164b57fa6184ba168292
-- name: gopkg.in/ldap.v2
- version: d0a5ced67b4dc310b9158d63a2c6f9c5ec13f105
-- name: gopkg.in/macaron.v1
- version: 826ddf13862c544525338a2deda6f57ffd1a9083
-- name: gopkg.in/redis.v2
- version: e6179049628164864e6e84e973cfb56335748dea
-devImports: []
diff --git a/glide.yaml b/glide.yaml
deleted file mode 100644
index 1d4734eb55e..00000000000
--- a/glide.yaml
+++ /dev/null
@@ -1,59 +0,0 @@
-package: github.com/gogits/gogs
-import:
-- package: github.com/Unknwon/cae
- subpackages:
- - zip
-- package: github.com/Unknwon/com
-- package: github.com/Unknwon/i18n
-- package: github.com/Unknwon/paginater
-- package: github.com/urfave/cli
-- package: github.com/go-macaron/binding
-- package: github.com/go-macaron/cache
- subpackages:
- - memcache
- - redis
-- package: github.com/go-macaron/captcha
-- package: github.com/go-macaron/csrf
-- package: github.com/go-macaron/gzip
-- package: github.com/go-macaron/i18n
-- package: github.com/go-macaron/session
- subpackages:
- - redis
-- package: github.com/go-macaron/toolbox
-- package: github.com/go-sql-driver/mysql
-- package: github.com/go-xorm/core
-- package: github.com/go-xorm/xorm
-- package: github.com/gogits/chardet
-- package: github.com/gogits/cron
-- package: github.com/gogits/git-module
-- package: github.com/gogits/go-gogs-client
-- package: github.com/issue9/identicon
-- package: github.com/kardianos/minwinsvc
-- package: github.com/lib/pq
-- package: github.com/mattn/go-sqlite3
-- package: github.com/mcuadros/go-version
-- package: github.com/microcosm-cc/bluemonday
-- package: github.com/msteinert/pam
-- package: github.com/nfnt/resize
-- package: github.com/russross/blackfriday
-- package: github.com/satori/go.uuid
-- package: github.com/sergi/go-diff
- subpackages:
- - diffmatchpatch
-- package: github.com/strk/go-libravatar
-- package: golang.org/x/crypto
- subpackages:
- - ssh
-- package: golang.org/x/net
- subpackages:
- - html
- - html/charset
-- package: golang.org/x/text
- subpackages:
- - transform
- - language
-- package: gopkg.in/editorconfig/editorconfig-core-go.v1
-- package: gopkg.in/gomail.v2
-- package: gopkg.in/ini.v1
-- package: gopkg.in/ldap.v2
-- package: gopkg.in/macaron.v1
diff --git a/go.mod b/go.mod
new file mode 100644
index 00000000000..ffeadd9e089
--- /dev/null
+++ b/go.mod
@@ -0,0 +1,153 @@
+module gogs.io/gogs
+
+go 1.26.0
+
+require (
+ github.com/DATA-DOG/go-sqlmock v1.5.2
+ github.com/Masterminds/semver/v3 v3.4.0
+ github.com/cockroachdb/errors v1.13.0
+ github.com/derision-test/go-mockgen/v2 v2.1.1
+ github.com/editorconfig/editorconfig-core-go/v2 v2.6.4
+ github.com/fatih/color v1.18.0
+ github.com/flamego/binding v1.3.0
+ github.com/flamego/flamego v1.12.0
+ github.com/flamego/validator v1.0.0
+ github.com/glebarez/go-sqlite v1.21.2
+ github.com/glebarez/sqlite v1.11.0
+ github.com/go-ldap/ldap/v3 v3.4.12
+ github.com/go-macaron/binding v1.2.0
+ github.com/go-macaron/cache v0.0.0-20190810181446-10f7c57e2196
+ github.com/go-macaron/captcha v0.2.0
+ github.com/go-macaron/csrf v0.0.0-20190812063352-946f6d303a4c
+ github.com/go-macaron/gzip v0.0.0-20160222043647-cad1c6580a07
+ github.com/go-macaron/i18n v0.6.0
+ github.com/go-macaron/session v1.0.4
+ github.com/gogs/chardet v0.0.0-20150115103509-2404f7772561
+ github.com/gogs/cron v0.0.0-20171120032916-9f6c956d3e14
+ github.com/gogs/git-module v1.8.7
+ github.com/gogs/go-libravatar v0.0.0-20191106065024-33a75213d0a0
+ github.com/gogs/minwinsvc v0.0.0-20170301035411-95be6356811a
+ github.com/google/go-github v17.0.0+incompatible
+ github.com/google/uuid v1.6.0
+ github.com/inbucket/html2text v1.0.0
+ github.com/issue9/identicon v1.2.1
+ github.com/microcosm-cc/bluemonday v1.0.27
+ github.com/msteinert/pam v1.2.0
+ github.com/niklasfasching/go-org v1.9.1
+ github.com/olekukonko/tablewriter v1.1.3
+ github.com/pquerna/otp v1.5.0
+ github.com/prometheus/client_golang v1.23.2
+ github.com/russross/blackfriday v1.6.0
+ github.com/sergi/go-diff v1.4.0
+ github.com/sourcegraph/run v0.12.0
+ github.com/stretchr/testify v1.11.1
+ github.com/unknwon/cae v1.0.2
+ github.com/unknwon/com v1.0.1
+ github.com/unknwon/i18n v0.0.0-20190805065654-5c6446a380b6
+ github.com/unknwon/paginater v0.0.0-20170405233947-45e5d631308e
+ github.com/urfave/cli/v3 v3.6.2
+ github.com/wneessen/go-mail v0.7.2
+ golang.org/x/crypto v0.49.0
+ golang.org/x/image v0.38.0
+ golang.org/x/net v0.51.0
+ golang.org/x/text v0.35.0
+ gopkg.in/ini.v1 v1.67.1
+ gopkg.in/macaron.v1 v1.5.1
+ gorm.io/driver/mysql v1.5.2
+ gorm.io/driver/postgres v1.6.0
+ gorm.io/gorm v1.25.12
+ unknwon.dev/clog/v2 v2.2.0
+ xorm.io/builder v0.3.6
+ xorm.io/core v0.7.2
+ xorm.io/xorm v0.8.0
+)
+
+require (
+ bitbucket.org/creachadair/shell v0.0.7 // indirect
+ charm.land/lipgloss/v2 v2.0.1 // indirect
+ charm.land/log/v2 v2.0.0 // indirect
+ github.com/Azure/go-ntlmssp v0.1.1 // indirect
+ github.com/alecthomas/participle/v2 v2.1.4 // indirect
+ github.com/aymerick/douceur v0.2.0 // indirect
+ github.com/beorn7/perks v1.0.1 // indirect
+ github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc // indirect
+ github.com/cespare/xxhash/v2 v2.3.0 // indirect
+ github.com/charmbracelet/colorprofile v0.4.2 // indirect
+ github.com/charmbracelet/ultraviolet v0.0.0-20251205161215-1948445e3318 // indirect
+ github.com/charmbracelet/x/ansi v0.11.6 // indirect
+ github.com/charmbracelet/x/term v0.2.2 // indirect
+ github.com/charmbracelet/x/termios v0.1.1 // indirect
+ github.com/charmbracelet/x/windows v0.2.2 // indirect
+ github.com/clipperhouse/displaywidth v0.11.0 // indirect
+ github.com/clipperhouse/uax29/v2 v2.7.0 // indirect
+ github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b // indirect
+ github.com/cockroachdb/redact v1.1.5 // indirect
+ github.com/davecgh/go-spew v1.1.1 // indirect
+ github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
+ github.com/djherbis/buffer v1.2.0 // indirect
+ github.com/djherbis/nio/v3 v3.0.1 // indirect
+ github.com/dustin/go-humanize v1.0.1 // indirect
+ github.com/getsentry/sentry-go v0.46.0 // indirect
+ github.com/go-asn1-ber/asn1-ber v1.5.8-0.20250403174932-29230038a667 // indirect
+ github.com/go-logfmt/logfmt v0.6.1 // indirect
+ github.com/go-logr/logr v1.2.3 // indirect
+ github.com/go-logr/stdr v1.2.2 // indirect
+ github.com/go-macaron/inject v0.0.0-20200308113650-138e5925c53b // indirect
+ github.com/go-redis/redis/v8 v8.11.5 // indirect
+ github.com/go-sql-driver/mysql v1.7.0 // indirect
+ github.com/gogo/protobuf v1.3.2 // indirect
+ github.com/google/go-querystring v1.0.0 // indirect
+ github.com/gorilla/css v1.0.1 // indirect
+ github.com/itchyny/gojq v0.12.11 // indirect
+ github.com/itchyny/timefmt-go v0.1.5 // indirect
+ github.com/jackc/pgpassfile v1.0.0 // indirect
+ github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 // indirect
+ github.com/jackc/pgx/v5 v5.9.2 // indirect
+ github.com/jackc/puddle/v2 v2.2.2 // indirect
+ github.com/jinzhu/inflection v1.0.0 // indirect
+ github.com/jinzhu/now v1.1.5 // indirect
+ github.com/klauspost/compress v1.18.0 // indirect
+ github.com/kr/pretty v0.3.1 // indirect
+ github.com/kr/text v0.2.0 // indirect
+ github.com/leodido/go-urn v1.2.1 // indirect
+ github.com/lib/pq v1.10.2 // indirect
+ github.com/lucasb-eyer/go-colorful v1.3.0 // indirect
+ github.com/mattn/go-colorable v0.1.14 // indirect
+ github.com/mattn/go-isatty v0.0.20 // indirect
+ github.com/mattn/go-runewidth v0.0.19 // indirect
+ github.com/mattn/go-sqlite3 v1.14.24 // indirect
+ github.com/mcuadros/go-version v0.0.0-20190830083331-035f6764e8d2 // indirect
+ github.com/muesli/cancelreader v0.2.2 // indirect
+ github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
+ github.com/ncruces/go-strftime v0.1.9 // indirect
+ github.com/olekukonko/cat v0.0.0-20250911104152-50322a0618f6 // indirect
+ github.com/olekukonko/errors v1.1.0 // indirect
+ github.com/olekukonko/ll v0.1.4-0.20260115111900-9e59c2286df0 // indirect
+ github.com/pkg/errors v0.9.1 // indirect
+ github.com/pmezard/go-difflib v1.0.0 // indirect
+ github.com/prometheus/client_model v0.6.2 // indirect
+ github.com/prometheus/common v0.66.1 // indirect
+ github.com/prometheus/procfs v0.16.1 // indirect
+ github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect
+ github.com/rivo/uniseg v0.4.7 // indirect
+ github.com/rogpeppe/go-internal v1.10.0 // indirect
+ github.com/saintfish/chardet v0.0.0-20120816061221-3af4cd4741ca // indirect
+ github.com/ssor/bom v0.0.0-20170718123548-6386211fdfcf // indirect
+ github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect
+ go.bobheadxi.dev/streamline v1.2.1 // indirect
+ go.opentelemetry.io/otel v1.11.0 // indirect
+ go.opentelemetry.io/otel/trace v1.11.0 // indirect
+ go.yaml.in/yaml/v2 v2.4.2 // indirect
+ golang.org/x/exp v0.0.0-20250620022241-b7579e27df2b // indirect
+ golang.org/x/mod v0.33.0 // indirect
+ golang.org/x/sync v0.20.0 // indirect
+ golang.org/x/sys v0.42.0 // indirect
+ google.golang.org/protobuf v1.36.8 // indirect
+ gopkg.in/bufio.v1 v1.0.0-20140618132640-567b2bfa514e // indirect
+ gopkg.in/redis.v2 v2.3.2 // indirect
+ gopkg.in/yaml.v3 v3.0.1 // indirect
+ modernc.org/libc v1.66.3 // indirect
+ modernc.org/mathutil v1.7.1 // indirect
+ modernc.org/memory v1.11.0 // indirect
+ modernc.org/sqlite v1.39.0 // indirect
+)
diff --git a/go.sum b/go.sum
new file mode 100644
index 00000000000..06c04598d03
--- /dev/null
+++ b/go.sum
@@ -0,0 +1,680 @@
+bitbucket.org/creachadair/shell v0.0.7 h1:Z96pB6DkSb7F3Y3BBnJeOZH2gazyMTWlvecSD4vDqfk=
+bitbucket.org/creachadair/shell v0.0.7/go.mod h1:oqtXSSvSYr4624lnnabXHaBsYW6RD80caLi2b3hJk0U=
+charm.land/lipgloss/v2 v2.0.1 h1:6Xzrn49+Py1Um5q/wZG1gWgER2+7dUyZ9XMEufqPSys=
+charm.land/lipgloss/v2 v2.0.1/go.mod h1:KjPle2Qd3YmvP1KL5OMHiHysGcNwq6u83MUjYkFvEkM=
+charm.land/log/v2 v2.0.0 h1:SY3Cey7ipx86/MBXQHwsguOT6X1exT94mmJRdzTNs+s=
+charm.land/log/v2 v2.0.0/go.mod h1:c3cZSRqm20qUVVAR1WmS/7ab8bgha3C6G7DjPcaVZz0=
+cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
+cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
+cloud.google.com/go v0.37.4 h1:glPeL3BQJsbF6aIIYfZizMwc5LTYz250bDMjttbBGAU=
+cloud.google.com/go v0.37.4/go.mod h1:NHPJ89PdicEuT9hdPXMROBD91xc5uRDxsMtSB16k7hw=
+gitea.com/lunny/log v0.0.0-20190322053110-01b5df579c4e/go.mod h1:uJEsN4LQpeGYRCjuPXPZBClU7N5pWzGuyF4uqLpE/e0=
+gitea.com/lunny/nodb v0.0.0-20200923032308-3238c4655727/go.mod h1:h0OwsgcpJLSYtHcM5+Xciw9OEeuxi6ty4HDiO8C7aIY=
+github.com/Azure/go-ntlmssp v0.1.1 h1:l+FM/EEMb0U9QZE7mKNEDw5Mu3mFiaa2GKOoTSsNDPw=
+github.com/Azure/go-ntlmssp v0.1.1/go.mod h1:NYqdhxd/8aAct/s4qSYZEerdPuH1liG2/X9DiVTbhpk=
+github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
+github.com/DATA-DOG/go-sqlmock v1.5.2 h1:OcvFkGmslmlZibjAjaHm3L//6LiuBgolP7OputlJIzU=
+github.com/DATA-DOG/go-sqlmock v1.5.2/go.mod h1:88MAG/4G7SMwSE3CeA0ZKzrT5CiOU3OJ+JlNzwDqpNU=
+github.com/Masterminds/semver/v3 v3.4.0 h1:Zog+i5UMtVoCU8oKka5P7i9q9HgrJeGzI9SA1Xbatp0=
+github.com/Masterminds/semver/v3 v3.4.0/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM=
+github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo=
+github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI=
+github.com/alecthomas/assert/v2 v2.11.0 h1:2Q9r3ki8+JYXvGsDyBXwH3LcJ+WK5D0gc5E8vS6K3D0=
+github.com/alecthomas/assert/v2 v2.11.0/go.mod h1:Bze95FyfUr7x34QZrjL+XP+0qgp/zg8yS+TtBj1WA3k=
+github.com/alecthomas/participle/v2 v2.1.4 h1:W/H79S8Sat/krZ3el6sQMvMaahJ+XcM9WSI2naI7w2U=
+github.com/alecthomas/participle/v2 v2.1.4/go.mod h1:8tqVbpTX20Ru4NfYQgZf4mP18eXPTBViyMWiArNEgGI=
+github.com/alecthomas/repr v0.4.0 h1:GhI2A8MACjfegCPVq9f1FLvIBS+DrQ2KQBFZP1iFzXc=
+github.com/alecthomas/repr v0.4.0/go.mod h1:Fr0507jx4eOXV7AlPV6AVZLYrLIuIeSOWtW57eE/O/4=
+github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
+github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
+github.com/alexbrainman/sspi v0.0.0-20250919150558-7d374ff0d59e h1:4dAU9FXIyQktpoUAgOJK3OTFc/xug0PCXYCqU0FgDKI=
+github.com/alexbrainman/sspi v0.0.0-20250919150558-7d374ff0d59e/go.mod h1:cEWa1LVoE5KvSD9ONXsZrj0z6KqySlCCNKHlLzbqAt4=
+github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ=
+github.com/aymerick/douceur v0.2.0 h1:Mv+mAeH1Q+n9Fr+oyamOlAkUNPWPlA8PPGR0QAaYuPk=
+github.com/aymerick/douceur v0.2.0/go.mod h1:wlT5vV2O3h55X9m7iVYN0TBM0NH/MmbLnd30/FjWUq4=
+github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
+github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
+github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
+github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc h1:biVzkmvwrH8WK8raXaxBx6fRVTlJILwEwQGL1I/ByEI=
+github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8=
+github.com/bradfitz/gomemcache v0.0.0-20190329173943-551aad21a668/go.mod h1:H0wQNHz2YrLsuXOZozoeDmnHXkNCRmMW0gwFWDfEZDA=
+github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
+github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
+github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
+github.com/charmbracelet/colorprofile v0.4.2 h1:BdSNuMjRbotnxHSfxy+PCSa4xAmz7szw70ktAtWRYrY=
+github.com/charmbracelet/colorprofile v0.4.2/go.mod h1:0rTi81QpwDElInthtrQ6Ni7cG0sDtwAd4C4le060fT8=
+github.com/charmbracelet/ultraviolet v0.0.0-20251205161215-1948445e3318 h1:OqDqxQZliC7C8adA7KjelW3OjtAxREfeHkNcd66wpeI=
+github.com/charmbracelet/ultraviolet v0.0.0-20251205161215-1948445e3318/go.mod h1:Y6kE2GzHfkyQQVCSL9r2hwokSrIlHGzZG+71+wDYSZI=
+github.com/charmbracelet/x/ansi v0.11.6 h1:GhV21SiDz/45W9AnV2R61xZMRri5NlLnl6CVF7ihZW8=
+github.com/charmbracelet/x/ansi v0.11.6/go.mod h1:2JNYLgQUsyqaiLovhU2Rv/pb8r6ydXKS3NIttu3VGZQ=
+github.com/charmbracelet/x/term v0.2.2 h1:xVRT/S2ZcKdhhOuSP4t5cLi5o+JxklsoEObBSgfgZRk=
+github.com/charmbracelet/x/term v0.2.2/go.mod h1:kF8CY5RddLWrsgVwpw4kAa6TESp6EB5y3uxGLeCqzAI=
+github.com/charmbracelet/x/termios v0.1.1 h1:o3Q2bT8eqzGnGPOYheoYS8eEleT5ZVNYNy8JawjaNZY=
+github.com/charmbracelet/x/termios v0.1.1/go.mod h1:rB7fnv1TgOPOyyKRJ9o+AsTU/vK5WHJ2ivHeut/Pcwo=
+github.com/charmbracelet/x/windows v0.2.2 h1:IofanmuvaxnKHuV04sC0eBy/smG6kIKrWG2/jYn2GuM=
+github.com/charmbracelet/x/windows v0.2.2/go.mod h1:/8XtdKZzedat74NQFn0NGlGL4soHB0YQZrETF96h75k=
+github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
+github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=
+github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
+github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
+github.com/clipperhouse/displaywidth v0.11.0 h1:lBc6kY44VFw+TDx4I8opi/EtL9m20WSEFgwIwO+UVM8=
+github.com/clipperhouse/displaywidth v0.11.0/go.mod h1:bkrFNkf81G8HyVqmKGxsPufD3JhNl3dSqnGhOoSD/o0=
+github.com/clipperhouse/uax29/v2 v2.7.0 h1:+gs4oBZ2gPfVrKPthwbMzWZDaAFPGYK72F0NJv2v7Vk=
+github.com/clipperhouse/uax29/v2 v2.7.0/go.mod h1:EFJ2TJMRUaplDxHKj1qAEhCtQPW2tJSwu5BF98AuoVM=
+github.com/cockroachdb/errors v1.13.0 h1:BoCcJeiP9hpBJDETkX19qi8Tb8So37srSsp3stTaDMQ=
+github.com/cockroachdb/errors v1.13.0/go.mod h1:bjxt/4E5+OyuAnacpTIU9rn2mzPu1VlthvHP+xpROq0=
+github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b h1:r6VH0faHjZeQy818SGhaone5OnYfxFR/+AzdY3sf5aE=
+github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b/go.mod h1:Vz9DsVWQQhf3vs21MhPMZpMGSht7O/2vFW2xusFUVOs=
+github.com/cockroachdb/redact v1.1.5 h1:u1PMllDkdFfPWaNGMyLD1+so+aq3uUItthCFqzwPJ30=
+github.com/cockroachdb/redact v1.1.5/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg=
+github.com/couchbase/go-couchbase v0.0.0-20201026062457-7b3be89bbd89/go.mod h1:+/bddYDxXsf9qt0xpDUtRR47A2GjaXmGGAqQ/k3GJ8A=
+github.com/couchbase/gomemcached v0.0.0-20190515232915-c4b4ca0eb21d/go.mod h1:srVSlQLB8iXBVXHgnqemxUXqN6FCvClgCMPCsjBDR7c=
+github.com/couchbase/gomemcached v0.1.1/go.mod h1:mxliKQxOv84gQ0bJWbI+w9Wxdpt9HjDvgW9MjCym5Vo=
+github.com/couchbase/goutils v0.0.0-20190315194238-f9d42b11473b/go.mod h1:BQwMFlJzDjFDG3DJUdU0KORxn88UlsOULuxLExMh3Hs=
+github.com/couchbase/goutils v0.0.0-20201030094643-5e82bb967e67/go.mod h1:BQwMFlJzDjFDG3DJUdU0KORxn88UlsOULuxLExMh3Hs=
+github.com/couchbaselabs/go-couchbase v0.0.0-20190708161019-23e7ca2ce2b7/go.mod h1:mby/05p8HE5yHEAKiIH/555NoblMs7PtW6NrYshDruc=
+github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
+github.com/cupcake/rdb v0.0.0-20161107195141-43ba34106c76/go.mod h1:vYwsqCOLxGiisLwp9rITslkFNpZD5rz43tf41QFkTWY=
+github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
+github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+github.com/denisenkom/go-mssqldb v0.0.0-20190707035753-2be1aa521ff4 h1:YcpmyvADGYw5LqMnHqSkyIELsHCGF6PkrmM31V8rF7o=
+github.com/denisenkom/go-mssqldb v0.0.0-20190707035753-2be1aa521ff4/go.mod h1:zAg7JM8CkOJ43xKXIj7eRO9kmWm/TW578qo+oDO6tuM=
+github.com/derision-test/go-mockgen/v2 v2.1.1 h1:MXG9rzyvsrDBfa1a1GatvHjCrbmEug3hVt0rSOXipCw=
+github.com/derision-test/go-mockgen/v2 v2.1.1/go.mod h1:cDK2Y9IF5roTJgugWV23IvlOJsllhDN5zxRDN+g4cZo=
+github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78=
+github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc=
+github.com/djherbis/buffer v1.1.0/go.mod h1:VwN8VdFkMY0DCALdY8o00d3IZ6Amz/UNVMWcSaJT44o=
+github.com/djherbis/buffer v1.2.0 h1:PH5Dd2ss0C7CRRhQCZ2u7MssF+No9ide8Ye71nPHcrQ=
+github.com/djherbis/buffer v1.2.0/go.mod h1:fjnebbZjCUpPinBRD+TDwXSOeNQ7fPQWLfGQqiAiUyE=
+github.com/djherbis/nio/v3 v3.0.1 h1:6wxhnuppteMa6RHA4L81Dq7ThkZH8SwnDzXDYy95vB4=
+github.com/djherbis/nio/v3 v3.0.1/go.mod h1:Ng4h80pbZFMla1yKzm61cF0tqqilXZYrogmWgZxOcmg=
+github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY=
+github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto=
+github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs=
+github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU=
+github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I=
+github.com/editorconfig/editorconfig-core-go/v2 v2.6.4 h1:CHwUbBVVyKWRX9kt5A/OtwhYUJB32DrFp9xzmjR6cac=
+github.com/editorconfig/editorconfig-core-go/v2 v2.6.4/go.mod h1:JWRVKHdVW+dkv6F8p+xGCa6a+TyMrqsFbFkSs/aQkrQ=
+github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M=
+github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
+github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM=
+github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU=
+github.com/flamego/binding v1.3.0 h1:CPbnSuP0SxT50JR7lK2khTjcQi1oOECqRK7kbOYw91U=
+github.com/flamego/binding v1.3.0/go.mod h1:xgm6FEpEKKkF8CQilK2X3MJ5kTjOTnYdz/ooFctDTdc=
+github.com/flamego/flamego v1.12.0 h1:BS0iY6RytweVvu5j40fQJ53X2ZcUVeuQ8ZSigVkDB9A=
+github.com/flamego/flamego v1.12.0/go.mod h1:MM4kNGS7SvJtwUZYb2oGySR+ncdtIvtJHsl8OhH1Ngo=
+github.com/flamego/validator v1.0.0 h1:ixuWHVgiVGp4pVGtUn/0d6HBjZJbbXfJHDNkxW+rZoY=
+github.com/flamego/validator v1.0.0/go.mod h1:POYn0/5iW4sdamdPAYPrzqN6DFC4YaczY0gYY+Pyx5E=
+github.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE=
+github.com/frankban/quicktest v1.14.3/go.mod h1:mgiwOwqx65TmIk1wJ6Q7wvnVMocbUorkibMOrVTHZps=
+github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
+github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4=
+github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
+github.com/getsentry/sentry-go v0.46.0 h1:mbdDaarbUdOt9X+dx6kDdntkShLEX3/+KyOsVDTPDj0=
+github.com/getsentry/sentry-go v0.46.0/go.mod h1:evVbw2qotNUdYG8KxXbAdjOQWWvWIwKxpjdZZIvcIPw=
+github.com/glebarez/go-sqlite v1.21.2 h1:3a6LFC4sKahUunAmynQKLZceZCOzUthkRkEAl9gAXWo=
+github.com/glebarez/go-sqlite v1.21.2/go.mod h1:sfxdZyhQjTM2Wry3gVYWaW072Ri1WMdWJi0k6+3382k=
+github.com/glebarez/sqlite v1.11.0 h1:wSG0irqzP6VurnMEpFGer5Li19RpIRi2qvQz++w0GMw=
+github.com/glebarez/sqlite v1.11.0/go.mod h1:h8/o8j5wiAsqSPoWELDUdJXhjAhsVliSn7bWZjOhrgQ=
+github.com/go-asn1-ber/asn1-ber v1.5.8-0.20250403174932-29230038a667 h1:BP4M0CvQ4S3TGls2FvczZtj5Re/2ZzkV9VwqPHH/3Bo=
+github.com/go-asn1-ber/asn1-ber v1.5.8-0.20250403174932-29230038a667/go.mod h1:hEBeB/ic+5LoWskz+yKT7vGhhPYkProFKoKdwZRWMe0=
+github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA=
+github.com/go-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og=
+github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
+github.com/go-ldap/ldap/v3 v3.4.12 h1:1b81mv7MagXZ7+1r7cLTWmyuTqVqdwbtJSjC0DAp9s4=
+github.com/go-ldap/ldap/v3 v3.4.12/go.mod h1:+SPAGcTtOfmGsCb3h1RFiq4xpp4N636G75OEace8lNo=
+github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
+github.com/go-logfmt/logfmt v0.6.1 h1:4hvbpePJKnIzH1B+8OR/JPbTx37NktoI9LE2QZBBkvE=
+github.com/go-logfmt/logfmt v0.6.1/go.mod h1:EV2pOAQoZaT1ZXZbqDl5hrymndi4SY9ED9/z6CO0XAk=
+github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
+github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0=
+github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
+github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
+github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
+github.com/go-macaron/binding v1.2.0 h1:/A8x8ZVQNTzFO43ch8czTqhc4VzOEPXYU/ELjIyhR60=
+github.com/go-macaron/binding v1.2.0/go.mod h1:8pXMCyR9UPsXV02PYGLI+t2Xep/v2OgVuuLTNtCG03c=
+github.com/go-macaron/cache v0.0.0-20190810181446-10f7c57e2196 h1:fqWZxyMLF6RVGmjvsZ9FijiU9UlAjuE6nu9RfNBZ+iE=
+github.com/go-macaron/cache v0.0.0-20190810181446-10f7c57e2196/go.mod h1:O6fSdaYZbGh4clVMGMGO5k2KbMO0Cz8YdBnPrD0I8dM=
+github.com/go-macaron/captcha v0.2.0 h1:d38eYDDF8tdqoM0hJbk+Jb7WQGWlwYNnQwRqLRmSk1Y=
+github.com/go-macaron/captcha v0.2.0/go.mod h1:lmhlZnu9cTRGNQEkSh1qZi2IK3HJH4Z1MXkg6ARQKZA=
+github.com/go-macaron/csrf v0.0.0-20190812063352-946f6d303a4c h1:kFFz1OpaH3+efG7RA33z+D0piwpA/a3x/Zn2d8z9rfw=
+github.com/go-macaron/csrf v0.0.0-20190812063352-946f6d303a4c/go.mod h1:FX53Xq0NNlUj0E5in5J8Dq5nrbdK3ZyDIy6y5VWOiUo=
+github.com/go-macaron/gzip v0.0.0-20160222043647-cad1c6580a07 h1:YSIA98PevNf1NtCa/J6cz7gjzpz99WVAOa9Eg0klKps=
+github.com/go-macaron/gzip v0.0.0-20160222043647-cad1c6580a07/go.mod h1://cJFfDp/70L0oTNAMB+M8Jd0rpuIx/55iARuJ6StwE=
+github.com/go-macaron/i18n v0.6.0 h1:7WpKDCGYH20pqwKNQgrksZHzKLp+sNA8VTSghElnO6s=
+github.com/go-macaron/i18n v0.6.0/go.mod h1:8XLiwPc4KNvIsHOT0YtSrLvmr9HHjTQMDhAiEhuYCTw=
+github.com/go-macaron/inject v0.0.0-20160627170012-d8a0b8677191/go.mod h1:VFI2o2q9kYsC4o7VP1HrEVosiZZTd+MVT3YZx4gqvJw=
+github.com/go-macaron/inject v0.0.0-20200308113650-138e5925c53b h1:/aWj44HoEycE4MDi2HZf4t+XI7hKwZRltZf4ih5tB2c=
+github.com/go-macaron/inject v0.0.0-20200308113650-138e5925c53b/go.mod h1:VFI2o2q9kYsC4o7VP1HrEVosiZZTd+MVT3YZx4gqvJw=
+github.com/go-macaron/session v0.0.0-20190805070824-1a3cdc6f5659/go.mod h1:tLd0QEudXocQckwcpCq5pCuTCuYc24I0bRJDuRe9OuQ=
+github.com/go-macaron/session v1.0.4 h1:fIvtOwdYBsqlb+icre1LvWB7YKnosfoSpaqT1nybh8E=
+github.com/go-macaron/session v1.0.4/go.mod h1:NKoSrKpBFGEgeDtdLr/mnGaxa2LZVOg8/LwZKwPgQr0=
+github.com/go-playground/assert/v2 v2.0.1 h1:MsBgLAaY856+nPRTKrp3/OZK38U/wa0CcBYNjji3q3A=
+github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4=
+github.com/go-redis/redis/v8 v8.11.5 h1:AcZZR7igkdvfVmQTPnu9WE37LRrO/YrBH5zWyjDC0oI=
+github.com/go-redis/redis/v8 v8.11.5/go.mod h1:gREzHqY1hg6oD9ngVRbLStwAWKhA0FEgq8Jd4h5lpwo=
+github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w=
+github.com/go-sql-driver/mysql v1.7.0 h1:ueSltNNllEqE3qcWBTD0iQd3IpL/6U+mJxLkazJ7YPc=
+github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI=
+github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
+github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE=
+github.com/go-xorm/sqlfiddle v0.0.0-20180821085327-62ce714f951a h1:9wScpmSP5A3Bk8V3XHWUcJmYTh+ZnlHVyc+A4oZYS3Y=
+github.com/go-xorm/sqlfiddle v0.0.0-20180821085327-62ce714f951a/go.mod h1:56xuuqnHyryaerycW3BfssRdxQstACi0Epw/yC5E2xM=
+github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
+github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
+github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
+github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
+github.com/gogs/chardet v0.0.0-20150115103509-2404f7772561 h1:aBzukfDxQlCTVS0NBUjI5YA3iVeaZ9Tb5PxNrrIP1xs=
+github.com/gogs/chardet v0.0.0-20150115103509-2404f7772561/go.mod h1:Pcatq5tYkCW2Q6yrR2VRHlbHpZ/R4/7qyL1TCF7vl14=
+github.com/gogs/cron v0.0.0-20171120032916-9f6c956d3e14 h1:yXtpJr/LV6PFu4nTLgfjQdcMdzjbqqXMEnHfq0Or6p8=
+github.com/gogs/cron v0.0.0-20171120032916-9f6c956d3e14/go.mod h1:jPoNZLWDAqA5N3G5amEoiNbhVrmM+ZQEcnQvNQ2KaZk=
+github.com/gogs/git-module v1.8.7 h1:GDyfzB1Z8ytld3LajTfUE4PuIcGcuCHpWB6j8/oD7Tk=
+github.com/gogs/git-module v1.8.7/go.mod h1:IiMSJqi8XH62Kjqjt5Rw8IawSo+DHfM2dDjkSzWLjhs=
+github.com/gogs/go-libravatar v0.0.0-20191106065024-33a75213d0a0 h1:K02vod+sn3M1OOkdqi2tPxN2+xESK4qyITVQ3JkGEv4=
+github.com/gogs/go-libravatar v0.0.0-20191106065024-33a75213d0a0/go.mod h1:Zas3BtO88pk1cwUfEYlvnl/CRwh0ybDxRWSwRjG8I3w=
+github.com/gogs/minwinsvc v0.0.0-20170301035411-95be6356811a h1:8DZwxETOVWIinYxDK+i6L+rMb7eGATGaakD6ZucfHVk=
+github.com/gogs/minwinsvc v0.0.0-20170301035411-95be6356811a/go.mod h1:TUIZ+29jodWQ8Gk6Pvtg4E09aMsc3C/VLZiVYfUhWQU=
+github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
+github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
+github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
+github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
+github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
+github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
+github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
+github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
+github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=
+github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=
+github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
+github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
+github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
+github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
+github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
+github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
+github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
+github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
+github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
+github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
+github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
+github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
+github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
+github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
+github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
+github.com/google/go-github v17.0.0+incompatible h1:N0LgJ1j65A7kfXrZnUDaYCs/Sf4rEjNlfyDHW9dolSY=
+github.com/google/go-github v17.0.0+incompatible/go.mod h1:zLgOLi98H3fifZn+44m+umXrS52loVEgC2AApnigrVQ=
+github.com/google/go-querystring v1.0.0 h1:Xkwi/a1rcvNg1PPYe5vI8GbeBY/jrVuDX5ASuANWTrk=
+github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck=
+github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
+github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
+github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
+github.com/google/pprof v0.0.0-20250317173921-a4b03ec1a45e h1:ijClszYn+mADRFY17kjQEVQ1XRhq2/JR1M3sGqeJoxs=
+github.com/google/pprof v0.0.0-20250317173921-a4b03ec1a45e/go.mod h1:boTsfXsheKC2y+lKOCMpSfarhxDeIzfZG1jqGcPl3cA=
+github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
+github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
+github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
+github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
+github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
+github.com/gopherjs/gopherjs v0.0.0-20190430165422-3e4dfb77656c/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
+github.com/gopherjs/gopherjs v1.17.2 h1:fQnZVsXk8uxXIStYb0N4bGk7jeyTalG/wsZjQ25dO0g=
+github.com/gopherjs/gopherjs v1.17.2/go.mod h1:pRRIvn/QzFLrKfvEz3qUuEhtE/zLCWfreZ6J5gM2i+k=
+github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg=
+github.com/gorilla/css v1.0.1 h1:ntNaBIghp6JmvWnxbZKANoLyuXTPZ4cAMlo6RyhlbO8=
+github.com/gorilla/css v1.0.1/go.mod h1:BvnYkspnSzMmwRK+b8/xgNPLiIuNZr6vbZBTPQ2A3b0=
+github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
+github.com/hashicorp/go-uuid v1.0.3 h1:2gKiV6YVmrJ1i2CKKa9obLvRieoRGviZFL26PcT/Co8=
+github.com/hashicorp/go-uuid v1.0.3/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
+github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
+github.com/hexops/autogold v1.3.1 h1:YgxF9OHWbEIUjhDbpnLhgVsjUDsiHDTyDfy2lrfdlzo=
+github.com/hexops/autogold v1.3.1/go.mod h1:sQO+mQUCVfxOKPht+ipDSkJ2SCJ7BNJVHZexsXqWMx4=
+github.com/hexops/gotextdiff v1.0.3 h1:gitA9+qJrrTCsiCl7+kh75nPqQt1cx4ZkudSTLoUqJM=
+github.com/hexops/gotextdiff v1.0.3/go.mod h1:pSWU5MAI3yDq+fZBTazCSJysOMbxWL1BSow5/V2vxeg=
+github.com/hexops/valast v1.4.3 h1:oBoGERMJh6UZdRc6cduE1CTPK+VAdXA59Y1HFgu3sm0=
+github.com/hexops/valast v1.4.3/go.mod h1:Iqx2kLj3Jn47wuXpj3wX40xn6F93QNFBHuiKBerkTGA=
+github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
+github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
+github.com/inbucket/html2text v1.0.0 h1:N5kza++4uBBDJ2Z3KUnTRyPNoBcW+YfOgNiNmNB+sgs=
+github.com/inbucket/html2text v1.0.0/go.mod h1:5TrhXQKGU+LXurODaSm55Y9eXoPBRnYiOz4x2XfUoJU=
+github.com/issue9/assert/v2 v2.0.0 h1:vN7fr70g5ND6zM39tPZk/E4WCyjGMqApmFbujSTmEo0=
+github.com/issue9/assert/v2 v2.0.0/go.mod h1:rKr1eVGzXUhAo2af1thiKAhIA8uiSK9Wyn7mcZ4BzAg=
+github.com/issue9/identicon v1.2.1 h1:9RUq3DcmDJvfXAYZWJDaq/Bi45oS/Fr79W0CazbXNaY=
+github.com/issue9/identicon v1.2.1/go.mod h1:glX8KIeR6xzmOSMU0csAJ7vvLxVBqQuXzCbHVMV8DRI=
+github.com/itchyny/gojq v0.12.11 h1:YhLueoHhHiN4mkfM+3AyJV6EPcCxKZsOnYf+aVSwaQw=
+github.com/itchyny/gojq v0.12.11/go.mod h1:o3FT8Gkbg/geT4pLI0tF3hvip5F3Y/uskjRz9OYa38g=
+github.com/itchyny/timefmt-go v0.1.5 h1:G0INE2la8S6ru/ZI5JecgyzbbJNs5lG1RcBqa7Jm6GE=
+github.com/itchyny/timefmt-go v0.1.5/go.mod h1:nEP7L+2YmAbT2kZ2HfSs1d8Xtw9LY8D2stDBckWakZ8=
+github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsIM=
+github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg=
+github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 h1:iCEnooe7UlwOQYpKFhBabPMi4aNAfoODPEFNiAnClxo=
+github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM=
+github.com/jackc/pgx/v5 v5.9.2 h1:3ZhOzMWnR4yJ+RW1XImIPsD1aNSz4T4fyP7zlQb56hw=
+github.com/jackc/pgx/v5 v5.9.2/go.mod h1:mal1tBGAFfLHvZzaYh77YS/eC6IX9OWbRV1QIIM0Jn4=
+github.com/jackc/puddle/v2 v2.2.2 h1:PR8nw+E/1w0GLuRFSmiioY6UooMp6KJv0/61nB7icHo=
+github.com/jackc/puddle/v2 v2.2.2/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4=
+github.com/jcmturner/aescts/v2 v2.0.0 h1:9YKLH6ey7H4eDBXW8khjYslgyqG2xZikXP0EQFKrle8=
+github.com/jcmturner/aescts/v2 v2.0.0/go.mod h1:AiaICIRyfYg35RUkr8yESTqvSy7csK90qZ5xfvvsoNs=
+github.com/jcmturner/dnsutils/v2 v2.0.0 h1:lltnkeZGL0wILNvrNiVCR6Ro5PGU/SeBvVO/8c/iPbo=
+github.com/jcmturner/dnsutils/v2 v2.0.0/go.mod h1:b0TnjGOvI/n42bZa+hmXL+kFJZsFT7G4t3HTlQ184QM=
+github.com/jcmturner/gofork v1.7.6 h1:QH0l3hzAU1tfT3rZCnW5zXl+orbkNMMRGJfdJjHVETg=
+github.com/jcmturner/gofork v1.7.6/go.mod h1:1622LH6i/EZqLloHfE7IeZ0uEJwMSUyQ/nDd82IeqRo=
+github.com/jcmturner/goidentity/v6 v6.0.1 h1:VKnZd2oEIMorCTsFBnJWbExfNN7yZr3EhJAxwOkZg6o=
+github.com/jcmturner/goidentity/v6 v6.0.1/go.mod h1:X1YW3bgtvwAXju7V3LCIMpY0Gbxyjn/mY9zx4tFonSg=
+github.com/jcmturner/gokrb5/v8 v8.4.4 h1:x1Sv4HaTpepFkXbt2IkL29DXRf8sOfZXo8eRKh687T8=
+github.com/jcmturner/gokrb5/v8 v8.4.4/go.mod h1:1btQEpgT6k+unzCwX1KdWMEwPPkkgBtP+F6aCACiMrs=
+github.com/jcmturner/rpc/v2 v2.0.3 h1:7FXXj8Ti1IaVFpSAziCZWNzbNuZmnvw/i6CqLNdWfZY=
+github.com/jcmturner/rpc/v2 v2.0.3/go.mod h1:VUJYCIDm3PVOEHw8sgt091/20OJjskO/YJki3ELg/Hc=
+github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E=
+github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc=
+github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ=
+github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8=
+github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
+github.com/jtolds/gls v4.2.1+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
+github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo=
+github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
+github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
+github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
+github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
+github.com/kisielk/sqlstruct v0.0.0-20201105191214-5f3e10d3ab46/go.mod h1:yyMNCyc/Ib3bDTKd379tNMpB/7/H5TjM2Y9QJ5THLbE=
+github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo=
+github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ=
+github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
+github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
+github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
+github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
+github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
+github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
+github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
+github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
+github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
+github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=
+github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
+github.com/leodido/go-urn v1.2.1 h1:BqpAaACuzVSgi/VLzGZIobT2z4v53pjosyNd9Yv6n/w=
+github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY=
+github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
+github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
+github.com/lib/pq v1.10.2 h1:AqzbZs4ZoCBp+GtejcpCpcxM3zlSMx29dXbUSeVtJb8=
+github.com/lib/pq v1.10.2/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
+github.com/lucasb-eyer/go-colorful v1.3.0 h1:2/yBRLdWBZKrf7gB40FoiKfAWYQ0lqNcbuQwVHXptag=
+github.com/lucasb-eyer/go-colorful v1.3.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0=
+github.com/lunny/log v0.0.0-20160921050905-7887c61bf0de/go.mod h1:3q8WtuPQsoRbatJuy3nvq/hRSvuBJrHHr+ybPPiNvHQ=
+github.com/lunny/nodb v0.0.0-20160621015157-fc1ef06ad4af/go.mod h1:Cqz6pqow14VObJ7peltM+2n3PWOz7yTrfUuGbVFkzN0=
+github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
+github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE=
+github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8=
+github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
+github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84=
+github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
+github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
+github.com/mattn/go-runewidth v0.0.19 h1:v++JhqYnZuu5jSKrk9RbgF5v4CGUjqRfBm05byFGLdw=
+github.com/mattn/go-runewidth v0.0.19/go.mod h1:XBkDxAl56ILZc9knddidhrOlY5R/pDhgLpndooCuJAs=
+github.com/mattn/go-sqlite3 v1.10.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=
+github.com/mattn/go-sqlite3 v1.11.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=
+github.com/mattn/go-sqlite3 v1.14.24 h1:tpSp2G2KyMnnQu99ngJ47EIkWVmliIizyZBfPrBWDRM=
+github.com/mattn/go-sqlite3 v1.14.24/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y=
+github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
+github.com/mcuadros/go-version v0.0.0-20190830083331-035f6764e8d2 h1:YocNLcTBdEdvY3iDK6jfWXvEaM5OCKkjxPKoJRdB3Gg=
+github.com/mcuadros/go-version v0.0.0-20190830083331-035f6764e8d2/go.mod h1:76rfSfYPWj01Z85hUf/ituArm797mNKcvINh1OlsZKo=
+github.com/microcosm-cc/bluemonday v1.0.27 h1:MpEUotklkwCSLeH+Qdx1VJgNqLlpY2KXwXFM08ygZfk=
+github.com/microcosm-cc/bluemonday v1.0.27/go.mod h1:jFi9vgW+H7c3V0lb6nR74Ib/DIB5OBs92Dimizgw2cA=
+github.com/msteinert/pam v1.2.0 h1:mYfjlvN2KYs2Pb9G6nb/1f/nPfAttT/Jee5Sq9r3bGE=
+github.com/msteinert/pam v1.2.0/go.mod h1:d2n0DCUK8rGecChV3JzvmsDjOY4R7AYbsNxAT+ftQl0=
+github.com/muesli/cancelreader v0.2.2 h1:3I4Kt4BQjOR54NavqnDogx/MIoWBFa0StPA8ELUXHmA=
+github.com/muesli/cancelreader v0.2.2/go.mod h1:3XuTXfFS2VjM+HTLZY9Ak0l6eUKfijIfMUZ4EgX0QYo=
+github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=
+github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
+github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
+github.com/ncruces/go-strftime v0.1.9 h1:bY0MQC28UADQmHmaF5dgpLmImcShSi2kHU9XLdhx/f4=
+github.com/ncruces/go-strftime v0.1.9/go.mod h1:Fwc5htZGVVkseilnfgOVb9mKy6w1naJmn9CehxcKcls=
+github.com/nightlyone/lockfile v1.0.0 h1:RHep2cFKK4PonZJDdEl4GmkabuhbsRMgk/k3uAmxBiA=
+github.com/nightlyone/lockfile v1.0.0/go.mod h1:rywoIealpdNse2r832aiD9jRk8ErCatROs6LzC841CI=
+github.com/niklasfasching/go-org v1.9.1 h1:/3s4uTPOF06pImGa2Yvlp24yKXZoTYM+nsIlMzfpg/0=
+github.com/niklasfasching/go-org v1.9.1/go.mod h1:ZAGFFkWvUQcpazmi/8nHqwvARpr1xpb+Es67oUGX/48=
+github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A=
+github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE=
+github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU=
+github.com/olekukonko/cat v0.0.0-20250911104152-50322a0618f6 h1:zrbMGy9YXpIeTnGj4EljqMiZsIcE09mmF8XsD5AYOJc=
+github.com/olekukonko/cat v0.0.0-20250911104152-50322a0618f6/go.mod h1:rEKTHC9roVVicUIfZK7DYrdIoM0EOr8mK1Hj5s3JjH0=
+github.com/olekukonko/errors v1.1.0 h1:RNuGIh15QdDenh+hNvKrJkmxxjV4hcS50Db478Ou5sM=
+github.com/olekukonko/errors v1.1.0/go.mod h1:ppzxA5jBKcO1vIpCXQ9ZqgDh8iwODz6OXIGKU8r5m4Y=
+github.com/olekukonko/ll v0.1.4-0.20260115111900-9e59c2286df0 h1:jrYnow5+hy3WRDCBypUFvVKNSPPCdqgSXIE9eJDD8LM=
+github.com/olekukonko/ll v0.1.4-0.20260115111900-9e59c2286df0/go.mod h1:b52bVQRRPObe+yyBl0TxNfhesL0nedD4Cht0/zx55Ew=
+github.com/olekukonko/tablewriter v1.1.3 h1:VSHhghXxrP0JHl+0NnKid7WoEmd9/urKRJLysb70nnA=
+github.com/olekukonko/tablewriter v1.1.3/go.mod h1:9VU0knjhmMkXjnMKrZ3+L2JhhtsQ/L38BbL3CRNE8tM=
+github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
+github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
+github.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
+github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk=
+github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0=
+github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE=
+github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU=
+github.com/onsi/ginkgo/v2 v2.0.0/go.mod h1:vw5CSIxN1JObi/U8gcbwft7ZxR2dgaR70JSE3/PpL4c=
+github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
+github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
+github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=
+github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
+github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY=
+github.com/onsi/gomega v1.18.1/go.mod h1:0q+aL8jAiMXy9hbwj2mr5GziHiwhAIQpFmmtT5hitRs=
+github.com/onsi/gomega v1.19.0 h1:4ieX6qQjPP/BfC3mpsAtIGGlxTWPeA3Inl/7DtXw1tw=
+github.com/onsi/gomega v1.19.0/go.mod h1:LY+I3pBVzYsTBU1AnDwOSxaYi9WoWiqgwooUqq9yPro=
+github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw=
+github.com/pelletier/go-toml v1.4.0/go.mod h1:PN7xzY2wHTK0K9p34ErDQMlFxa51Fk0OUruD3k1mMwo=
+github.com/pelletier/go-toml v1.8.1/go.mod h1:T2/BmBdy8dvIRq1a/8aqjN41wvWlN4lrapLU/GW4pbc=
+github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY=
+github.com/pingcap/errors v0.11.4 h1:lFuQV/oaUMGcD2tqt+01ROSmJs75VG1ToEOkZIZ4nE4=
+github.com/pingcap/errors v0.11.4/go.mod h1:Oi8TUi2kEtXXLMJk9l1cGmz20kV3TaQ0usTwv5KuLY8=
+github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
+github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
+github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
+github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
+github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
+github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
+github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
+github.com/pquerna/otp v1.5.0 h1:NMMR+WrmaqXU4EzdGJEE1aUUI0AMRzsp96fFFWNPwxs=
+github.com/pquerna/otp v1.5.0/go.mod h1:dkJfzwRKNiegxyNb54X/3fLwhCynbMspSyWKnvi1AEg=
+github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
+github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs=
+github.com/prometheus/client_golang v1.23.2 h1:Je96obch5RDVy3FDMndoUsjAhG5Edi49h0RJWRi/o0o=
+github.com/prometheus/client_golang v1.23.2/go.mod h1:Tb1a6LWHB3/SPIzCoaDXI4I8UHKeFTEQ1YCr+0Gyqmg=
+github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
+github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
+github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNwqPLxwZyk=
+github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE=
+github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
+github.com/prometheus/common v0.66.1 h1:h5E0h5/Y8niHc5DlaLlWLArTQI7tMrsfQjHV+d9ZoGs=
+github.com/prometheus/common v0.66.1/go.mod h1:gcaUsgf3KfRSwHY4dIMXLPV0K/Wg1oZ8+SbZk/HH/dA=
+github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
+github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
+github.com/prometheus/procfs v0.16.1 h1:hZ15bTNuirocR6u0JZ6BAHHmwS1p8B4P6MRqxtzMyRg=
+github.com/prometheus/procfs v0.16.1/go.mod h1:teAbpZRB1iIAJYREa1LsoWUXykVXA1KlTmWl8x/U+Is=
+github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
+github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE=
+github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=
+github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ=
+github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
+github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
+github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ=
+github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog=
+github.com/russross/blackfriday v1.6.0 h1:KqfZb0pUVN2lYqZUYRddxF4OR8ZMURnJIG5Y3VRLtww=
+github.com/russross/blackfriday v1.6.0/go.mod h1:ti0ldHuxg49ri4ksnFxlkCfN+hvslNlmVHqNRXXJNAY=
+github.com/saintfish/chardet v0.0.0-20120816061221-3af4cd4741ca h1:NugYot0LIVPxTvN8n+Kvkn6TrbMyxQiuvKdEwFdR9vI=
+github.com/saintfish/chardet v0.0.0-20120816061221-3af4cd4741ca/go.mod h1:uugorj2VCxiV1x+LzaIdVa9b4S4qGAcH6cbhh4qVxOU=
+github.com/sergi/go-diff v1.4.0 h1:n/SP9D5ad1fORl+llWyN+D6qoUETXNZARKjyY2/KVCw=
+github.com/sergi/go-diff v1.4.0/go.mod h1:A0bzQcvG0E7Rwjx0REVgAGH58e96+X0MeOfepqsbeW4=
+github.com/siddontang/go v0.0.0-20180604090527-bdc77568d726/go.mod h1:3yhqj7WBBfRhbBlzyOC3gUxftwsU0u8gqevxwIHQpMw=
+github.com/siddontang/go-snappy v0.0.0-20140704025258-d8f7bb82a96d/go.mod h1:vq0tzqLRu6TS7Id0wMo2N5QzJoKedVeovOpHjnykSzY=
+github.com/siddontang/ledisdb v0.0.0-20190202134119-8ceb77e66a92/go.mod h1:mF1DpOSOUiJRMR+FDqaqu3EBqrybQtrDDszLUZ6oxPg=
+github.com/siddontang/rdb v0.0.0-20150307021120-fc89ed2e418d/go.mod h1:AMEsy7v5z92TR1JKMkLLoaOQk++LVnOKL3ScbJ8GNGA=
+github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
+github.com/smarty/assertions v1.15.0 h1:cR//PqUBUiQRakZWqBiFFQ9wb8emQGDb0HeGdqGByCY=
+github.com/smarty/assertions v1.15.0/go.mod h1:yABtdzeQs6l1brC900WlRNwj6ZR55d7B+E8C6HtKdec=
+github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
+github.com/smartystreets/assertions v0.0.0-20190116191733-b6c0e53d7304/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
+github.com/smartystreets/assertions v1.0.1/go.mod h1:kHHU4qYBaI3q23Pp3VPrmWhuIUrLW/7eUrw0BU5VaoM=
+github.com/smartystreets/goconvey v0.0.0-20181108003508-044398e4856c/go.mod h1:XDJAKZRPZ1CvBcN2aX5YOUTYGHki24fSF0Iv48Ibg0s=
+github.com/smartystreets/goconvey v0.0.0-20190731233626-505e41936337/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA=
+github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA=
+github.com/smartystreets/goconvey v1.8.1 h1:qGjIddxOk4grTu9JPOU31tVfq3cNdBlNa5sSznIX1xY=
+github.com/smartystreets/goconvey v1.8.1/go.mod h1:+/u4qLyY6x1jReYOp7GOM2FSt8aP9CzCZL03bI28W60=
+github.com/sourcegraph/run v0.12.0 h1:3A8w5e8HIYPfafHekvmdmmh42RHKGVhmiTZAPJclg7I=
+github.com/sourcegraph/run v0.12.0/go.mod h1:PwaP936BTnAJC1cqR5rSbG5kOs/EWStTK3lqvMX5GUA=
+github.com/ssor/bom v0.0.0-20170718123548-6386211fdfcf h1:pvbZ0lM0XWPBqUKqFU8cmavspvIl9nulOYwdy6IFRRo=
+github.com/ssor/bom v0.0.0-20170718123548-6386211fdfcf/go.mod h1:RJID2RhlZKId02nZ62WenDCkgHFerpIOmW0iT7GKmXM=
+github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
+github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
+github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
+github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
+github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA=
+github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
+github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
+github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
+github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
+github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
+github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
+github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
+github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
+github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
+github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=
+github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
+github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ=
+github.com/unknwon/cae v1.0.2 h1:3L8/RCN1ARvD5quyNjU30EdvYkFbxBfnRcIBXugpHlg=
+github.com/unknwon/cae v1.0.2/go.mod h1:HqpmD2fVq9G1oGEXrXzbgIp51uJ29Hshv41n9ljm+AA=
+github.com/unknwon/com v0.0.0-20190804042917-757f69c95f3e/go.mod h1:tOOxU81rwgoCLoOVVPHb6T/wt8HZygqH5id+GNnlCXM=
+github.com/unknwon/com v1.0.1 h1:3d1LTxD+Lnf3soQiD4Cp/0BRB+Rsa/+RTvz8GMMzIXs=
+github.com/unknwon/com v1.0.1/go.mod h1:tOOxU81rwgoCLoOVVPHb6T/wt8HZygqH5id+GNnlCXM=
+github.com/unknwon/i18n v0.0.0-20190805065654-5c6446a380b6 h1:sRrkJEHtNoaSvyXMbRgofEOX4/3gMiraevQKJdIBhYE=
+github.com/unknwon/i18n v0.0.0-20190805065654-5c6446a380b6/go.mod h1:+5rDk6sDGpl3azws3O+f+GpFSyN9GVr0K8cvQLQM2ZQ=
+github.com/unknwon/paginater v0.0.0-20170405233947-45e5d631308e h1:Qf3QQl/zmEbWDajFEiisbKN83hLY+eq2MhbA0I1/two=
+github.com/unknwon/paginater v0.0.0-20170405233947-45e5d631308e/go.mod h1:TBwoao3Q4Eb/cp+dHbXDfRTrZSsj/k7kLr2j1oWRWC0=
+github.com/urfave/cli/v3 v3.6.2 h1:lQuqiPrZ1cIz8hz+HcrG0TNZFxU70dPZ3Yl+pSrH9A8=
+github.com/urfave/cli/v3 v3.6.2/go.mod h1:ysVLtOEmg2tOy6PknnYVhDoouyC/6N42TMeoMzskhso=
+github.com/wneessen/go-mail v0.7.2 h1:xxPnhZ6IZLSgxShebmZ6DPKh1b6OJcoHfzy7UjOkzS8=
+github.com/wneessen/go-mail v0.7.2/go.mod h1:+TkW6QP3EVkgTEqHtVmnAE/1MRhmzb8Y9/W3pweuS+k=
+github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e h1:JVG44RsyaB9T2KIHavMF/ppJZNG9ZpyihvCd0w101no=
+github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e/go.mod h1:RbqR21r5mrJuqunuUZ/Dhy/avygyECGrLceyNeo4LiM=
+github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
+github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
+github.com/ziutek/mymysql v1.5.4 h1:GB0qdRGsTwQSBVYuVShFBKaXSnSnYYC2d9knnE1LHFs=
+github.com/ziutek/mymysql v1.5.4/go.mod h1:LMSpPZ6DbqWFxNCHW77HeMg9I646SAhApZ/wKdgO/C0=
+go.bobheadxi.dev/streamline v1.2.1 h1:IqKSA1TbeuDqCzYNAwtlh8sqf3tsQus8XgJdkCWFT8c=
+go.bobheadxi.dev/streamline v1.2.1/go.mod h1:yJsVXOSBFLgAKvsnf6WmIzmB2A65nWqkR/sRNxJPa74=
+go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk=
+go.opentelemetry.io/otel v1.11.0 h1:kfToEGMDq6TrVrJ9Vht84Y8y9enykSZzDDZglV0kIEk=
+go.opentelemetry.io/otel v1.11.0/go.mod h1:H2KtuEphyMvlhZ+F7tg9GRhAOe60moNx61Ex+WmiKkk=
+go.opentelemetry.io/otel/sdk v1.11.0 h1:ZnKIL9V9Ztaq+ME43IUi/eo22mNsb6a7tGfzaOWB5fo=
+go.opentelemetry.io/otel/sdk v1.11.0/go.mod h1:REusa8RsyKaq0OlyangWXaw97t2VogoO4SSEeKkSTAk=
+go.opentelemetry.io/otel/trace v1.11.0 h1:20U/Vj42SX+mASlXLmSGBg6jpI1jQtv682lZtTAOVFI=
+go.opentelemetry.io/otel/trace v1.11.0/go.mod h1:nyYjis9jy0gytE9LXGU+/m1sHTKbRY0fX0hulNNDP1U=
+go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
+go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
+go.yaml.in/yaml/v2 v2.4.2 h1:DzmwEr2rDGHl7lsFgAHxmNz/1NlQ7xLIrlN2h5d1eGI=
+go.yaml.in/yaml/v2 v2.4.2/go.mod h1:081UH+NErpNdqlCXm3TtEran0rJZGxAYx9hb/ELlsPU=
+golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
+golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
+golang.org/x/crypto v0.0.0-20190325154230-a5d413f7728c/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
+golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
+golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
+golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
+golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
+golang.org/x/crypto v0.0.0-20201016220609-9e8e0b390897/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
+golang.org/x/crypto v0.0.0-20201124201722-c8d3bf9c5392/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I=
+golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
+golang.org/x/crypto v0.49.0 h1:+Ng2ULVvLHnJ/ZFEq4KdcDd/cfjrrjjNSXNzxg0Y4U4=
+golang.org/x/crypto v0.49.0/go.mod h1:ErX4dUh2UM+CFYiXZRTcMpEcN8b/1gxEuv3nODoYtCA=
+golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
+golang.org/x/exp v0.0.0-20250620022241-b7579e27df2b h1:M2rDM6z3Fhozi9O7NWsxAkg/yqS/lQJ6PmkyIV3YP+o=
+golang.org/x/exp v0.0.0-20250620022241-b7579e27df2b/go.mod h1:3//PLf8L/X+8b4vuAfHzxeRUl04Adcb341+IGKfnqS8=
+golang.org/x/image v0.38.0 h1:5l+q+Y9JDC7mBOMjo4/aPhMDcxEptsX+Tt3GgRQRPuE=
+golang.org/x/image v0.38.0/go.mod h1:/3f6vaXC+6CEanU4KJxbcUZyEePbyKbaLoDOe4ehFYY=
+golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
+golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
+golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
+golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
+golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
+golang.org/x/mod v0.33.0 h1:tHFzIWbBifEmbwtGz65eaWyGiGZatSrT9prnU8DbVL8=
+golang.org/x/mod v0.33.0/go.mod h1:swjeQEj+6r7fODbD2cqrnje9PnziFuw4bmLbBZFrQ5w=
+golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
+golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
+golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
+golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
+golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
+golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
+golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk=
+golang.org/x/net v0.51.0 h1:94R/GTO7mt3/4wIKpcR5gkGmRLOuE/2hNGeWq/GBIFo=
+golang.org/x/net v0.51.0/go.mod h1:aamm+2QF5ogm02fjy5Bb7CQ0WMt1/WVM7FtyaTLlA9Y=
+golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
+golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
+golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4=
+golang.org/x/sync v0.20.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0=
+golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20190804053845-51ab0e2deafa/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.42.0 h1:omrd2nAlyT5ESRdCLYdm3+fMfNFE/+Rf4bDIQImRJeo=
+golang.org/x/sys v0.42.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw=
+golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
+golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
+golang.org/x/term v0.41.0 h1:QCgPso/Q3RTJx2Th4bDLqML4W6iJiaXFq2/ftQF13YU=
+golang.org/x/term v0.41.0/go.mod h1:3pfBgksrReYfZ5lvYM0kSO0LIkAl4Yl2bXOkKP7Ec2A=
+golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
+golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
+golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
+golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
+golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
+golang.org/x/text v0.35.0 h1:JOVx6vVDFokkpaq1AEptVzLTpDe9KGpj5tR4/X+ybL8=
+golang.org/x/text v0.35.0/go.mod h1:khi/HExzZJ2pGnjenulevKNX1W67CUy0AsXcNubPGCA=
+golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
+golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
+golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
+golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
+golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
+golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
+golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
+golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
+golang.org/x/tools v0.0.0-20190802220118-1d1727260058/go.mod h1:jcCCGcm9btYwXyDqrUWc6MKQKKGJCWEQ3AfLSRIbEuI=
+golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
+golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
+golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
+golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
+golang.org/x/tools v0.42.0 h1:uNgphsn75Tdz5Ji2q36v/nsFSfR/9BRFvqhGBaJGd5k=
+golang.org/x/tools v0.42.0/go.mod h1:Ma6lCIwGZvHK6XtgbswSoWroEkhugApmsXyrUmBhfr0=
+golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk=
+google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
+google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
+google.golang.org/appengine v1.6.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
+google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0=
+google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
+google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
+google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
+google.golang.org/genproto v0.0.0-20190404172233-64821d5d2107/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
+google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs=
+google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
+google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
+google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
+google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
+google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
+google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
+google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
+google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
+google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
+google.golang.org/protobuf v1.36.8 h1:xHScyCOEuuwZEc6UtSOvPbAT4zRh0xcNRYekJwfqyMc=
+google.golang.org/protobuf v1.36.8/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU=
+gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
+gopkg.in/bufio.v1 v1.0.0-20140618132640-567b2bfa514e h1:wGA78yza6bu/mWcc4QfBuIEHEtc06xdiU0X8sY36yUU=
+gopkg.in/bufio.v1 v1.0.0-20140618132640-567b2bfa514e/go.mod h1:xsQCaysVCudhrYTfzYWe577fCe7Ceci+6qjO2Rdc0Z4=
+gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
+gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
+gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
+gopkg.in/ini.v1 v1.46.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
+gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
+gopkg.in/ini.v1 v1.67.1 h1:tVBILHy0R6e4wkYOn3XmiITt/hEVH4TFMYvAX2Ytz6k=
+gopkg.in/ini.v1 v1.67.1/go.mod h1:x/cyOwCgZqOkJoDIJ3c1KNHMo10+nLGAhh+kn3Zizss=
+gopkg.in/macaron.v1 v1.3.4/go.mod h1:/RoHTdC8ALpyJ3+QR36mKjwnT1F1dyYtsGM9Ate6ZFI=
+gopkg.in/macaron.v1 v1.3.5/go.mod h1:uMZCFccv9yr5TipIalVOyAyZQuOH3OkmXvgcWwhJuP4=
+gopkg.in/macaron.v1 v1.4.0/go.mod h1:uMZCFccv9yr5TipIalVOyAyZQuOH3OkmXvgcWwhJuP4=
+gopkg.in/macaron.v1 v1.5.1 h1:0ytdXYcf6//a8bzedl1fVXzPeIXblEqoNPntWAo9YLU=
+gopkg.in/macaron.v1 v1.5.1/go.mod h1:AiquOw8YeZJC8sUe11vIO6NeA1/TKSlzQXuJ7Tc4cCQ=
+gopkg.in/redis.v2 v2.3.2 h1:GPVIIB/JnL1wvfULefy3qXmPu1nfNu2d0yA09FHgwfs=
+gopkg.in/redis.v2 v2.3.2/go.mod h1:4wl9PJ/CqzeHk3LVq1hNLHH8krm3+AXEgut4jVc++LU=
+gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=
+gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
+gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
+gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
+gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
+gopkg.in/yaml.v3 v3.0.0-20210105161348-2e78108cf5f8/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
+gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
+gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
+gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
+gorm.io/driver/mysql v1.5.2 h1:QC2HRskSE75wBuOxe0+iCkyJZ+RqpudsQtqkp+IMuXs=
+gorm.io/driver/mysql v1.5.2/go.mod h1:pQLhh1Ut/WUAySdTHwBpBv6+JKcj+ua4ZFx1QQTBzb8=
+gorm.io/driver/postgres v1.6.0 h1:2dxzU8xJ+ivvqTRph34QX+WrRaJlmfyPqXmoGVjMBa4=
+gorm.io/driver/postgres v1.6.0/go.mod h1:vUw0mrGgrTK+uPHEhAdV4sfFELrByKVGnaVRkXDhtWo=
+gorm.io/gorm v1.25.2-0.20230530020048-26663ab9bf55/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k=
+gorm.io/gorm v1.25.12 h1:I0u8i2hWQItBq1WfE0o2+WuL9+8L21K9e2HHSTE/0f8=
+gorm.io/gorm v1.25.12/go.mod h1:xh7N7RHfYlNc5EmcI/El95gXusucDrQnHXe0+CgWcLQ=
+honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
+honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
+honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
+modernc.org/cc/v4 v4.26.2 h1:991HMkLjJzYBIfha6ECZdjrIYz2/1ayr+FL8GN+CNzM=
+modernc.org/cc/v4 v4.26.2/go.mod h1:uVtb5OGqUKpoLWhqwNQo/8LwvoiEBLvZXIQ/SmO6mL0=
+modernc.org/ccgo/v4 v4.28.0 h1:rjznn6WWehKq7dG4JtLRKxb52Ecv8OUGah8+Z/SfpNU=
+modernc.org/ccgo/v4 v4.28.0/go.mod h1:JygV3+9AV6SmPhDasu4JgquwU81XAKLd3OKTUDNOiKE=
+modernc.org/fileutil v1.3.8 h1:qtzNm7ED75pd1C7WgAGcK4edm4fvhtBsEiI/0NQ54YM=
+modernc.org/fileutil v1.3.8/go.mod h1:HxmghZSZVAz/LXcMNwZPA/DRrQZEVP9VX0V4LQGQFOc=
+modernc.org/gc/v2 v2.6.5 h1:nyqdV8q46KvTpZlsw66kWqwXRHdjIlJOhG6kxiV/9xI=
+modernc.org/gc/v2 v2.6.5/go.mod h1:YgIahr1ypgfe7chRuJi2gD7DBQiKSLMPgBQe9oIiito=
+modernc.org/goabi0 v0.2.0 h1:HvEowk7LxcPd0eq6mVOAEMai46V+i7Jrj13t4AzuNks=
+modernc.org/goabi0 v0.2.0/go.mod h1:CEFRnnJhKvWT1c1JTI3Avm+tgOWbkOu5oPA8eH8LnMI=
+modernc.org/libc v1.66.3 h1:cfCbjTUcdsKyyZZfEUKfoHcP3S0Wkvz3jgSzByEWVCQ=
+modernc.org/libc v1.66.3/go.mod h1:XD9zO8kt59cANKvHPXpx7yS2ELPheAey0vjIuZOhOU8=
+modernc.org/mathutil v1.7.1 h1:GCZVGXdaN8gTqB1Mf/usp1Y/hSqgI2vAGGP4jZMCxOU=
+modernc.org/mathutil v1.7.1/go.mod h1:4p5IwJITfppl0G4sUEDtCr4DthTaT47/N3aT6MhfgJg=
+modernc.org/memory v1.11.0 h1:o4QC8aMQzmcwCK3t3Ux/ZHmwFPzE6hf2Y5LbkRs+hbI=
+modernc.org/memory v1.11.0/go.mod h1:/JP4VbVC+K5sU2wZi9bHoq2MAkCnrt2r98UGeSK7Mjw=
+modernc.org/opt v0.1.4 h1:2kNGMRiUjrp4LcaPuLY2PzUfqM/w9N23quVwhKt5Qm8=
+modernc.org/opt v0.1.4/go.mod h1:03fq9lsNfvkYSfxrfUhZCWPk1lm4cq4N+Bh//bEtgns=
+modernc.org/sortutil v1.2.1 h1:+xyoGf15mM3NMlPDnFqrteY07klSFxLElE2PVuWIJ7w=
+modernc.org/sortutil v1.2.1/go.mod h1:7ZI3a3REbai7gzCLcotuw9AC4VZVpYMjDzETGsSMqJE=
+modernc.org/sqlite v1.39.0 h1:6bwu9Ooim0yVYA7IZn9demiQk/Ejp0BtTjBWFLymSeY=
+modernc.org/sqlite v1.39.0/go.mod h1:cPTJYSlgg3Sfg046yBShXENNtPrWrDX8bsbAQBzgQ5E=
+modernc.org/strutil v1.2.1 h1:UneZBkQA+DX2Rp35KcM69cSsNES9ly8mQWD71HKlOA0=
+modernc.org/strutil v1.2.1/go.mod h1:EHkiggD70koQxjVdSBM3JKM7k6L0FbGE5eymy9i3B9A=
+modernc.org/token v1.1.0 h1:Xl7Ap9dKaEs5kLoOQeQmPWevfnk/DM5qcLcYlA8ys6Y=
+modernc.org/token v1.1.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM=
+mvdan.cc/gofumpt v0.4.0 h1:JVf4NN1mIpHogBj7ABpgOyZc65/UUOkKQFkoURsz4MM=
+mvdan.cc/gofumpt v0.4.0/go.mod h1:PljLOHDeZqgS8opHRKLzp2It2VBuSdteAgqUfzMTxlQ=
+unknwon.dev/clog/v2 v2.2.0 h1:jkPdsxux0MC04BT/9NHbT75z4prK92SH10VBNmIpVCc=
+unknwon.dev/clog/v2 v2.2.0/go.mod h1:zvUlyibDHI4mykYdWyWje2G9nF/nBzfDOqRo2my4mWc=
+xorm.io/builder v0.3.6 h1:ha28mQ2M+TFx96Hxo+iq6tQgnkC9IZkM6D8w9sKHHF8=
+xorm.io/builder v0.3.6/go.mod h1:LEFAPISnRzG+zxaxj2vPicRwz67BdhFreKg8yv8/TgU=
+xorm.io/core v0.7.2 h1:mEO22A2Z7a3fPaZMk6gKL/jMD80iiyNwRrX5HOv3XLw=
+xorm.io/core v0.7.2/go.mod h1:jJfd0UAEzZ4t87nbQYtVjmqpIODugN6PD2D9E+dJvdM=
+xorm.io/xorm v0.8.0 h1:iALxgJrX8O00f8Jk22GbZwPmxJNgssV5Mv4uc2HL9PM=
+xorm.io/xorm v0.8.0/go.mod h1:ZkJLEYLoVyg7amJK/5r779bHyzs2AU8f8VMiP6BM7uY=
diff --git a/gogs.go b/gogs.go
deleted file mode 100644
index 0378bebf732..00000000000
--- a/gogs.go
+++ /dev/null
@@ -1,42 +0,0 @@
-// +build go1.5
-
-// Copyright 2014 The Gogs Authors. All rights reserved.
-// Use of this source code is governed by a MIT-style
-// license that can be found in the LICENSE file.
-
-// Gogs (Go Git Service) is a painless self-hosted Git Service.
-package main
-
-import (
- "os"
- "runtime"
-
- "github.com/urfave/cli"
-
- "github.com/gogits/gogs/cmd"
- "github.com/gogits/gogs/modules/setting"
-)
-
-const APP_VER = "0.9.100.1119"
-
-func init() {
- runtime.GOMAXPROCS(runtime.NumCPU())
- setting.AppVer = APP_VER
-}
-
-func main() {
- app := cli.NewApp()
- app.Name = "Gogs"
- app.Usage = "Go Git Service: a painless self-hosted Git service"
- app.Version = APP_VER
- app.Commands = []cli.Command{
- cmd.CmdWeb,
- cmd.CmdServ,
- cmd.CmdUpdate,
- cmd.CmdDump,
- cmd.CmdCert,
- cmd.CmdAdmin,
- }
- app.Flags = append(app.Flags, []cli.Flag{}...)
- app.Run(os.Args)
-}
diff --git a/internal/app/api.go b/internal/app/api.go
new file mode 100644
index 00000000000..eebb7ccc820
--- /dev/null
+++ b/internal/app/api.go
@@ -0,0 +1,30 @@
+package app
+
+import (
+ "net/http"
+
+ "github.com/microcosm-cc/bluemonday"
+ "gopkg.in/macaron.v1"
+)
+
+func ipynbSanitizer() *bluemonday.Policy {
+ p := bluemonday.UGCPolicy()
+ p.AllowAttrs("class", "data-prompt-number").OnElements("div")
+ p.AllowAttrs("class").OnElements("img")
+ p.AllowURLSchemes("data")
+ return p
+}
+
+func SanitizeIpynb() macaron.Handler {
+ p := ipynbSanitizer()
+
+ return func(c *macaron.Context) {
+ html, err := c.Req.Body().String()
+ if err != nil {
+ c.Error(http.StatusInternalServerError, "read body")
+ return
+ }
+
+ c.PlainText(http.StatusOK, []byte(p.Sanitize(html)))
+ }
+}
diff --git a/internal/app/api_test.go b/internal/app/api_test.go
new file mode 100644
index 00000000000..ad78853b5b0
--- /dev/null
+++ b/internal/app/api_test.go
@@ -0,0 +1,91 @@
+package app
+
+import (
+ "testing"
+
+ "github.com/stretchr/testify/assert"
+)
+
+func Test_ipynbSanitizer(t *testing.T) {
+ p := ipynbSanitizer()
+
+ tests := []struct {
+ name string
+ input string
+ want string
+ }{
+ {
+ name: "allow 'class' and 'data-prompt-number' attributes",
+ input: `
+
"],_default:[0,"",""]};function Se(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&fe(e,t)?ce.merge([e],n):n}function Ee(e,t){for(var n=0,r=e.length;n",""]);var je=/<|?\w+;/;function Ae(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function Re(e,t){return fe(e,"table")&&fe(11!==t.nodeType?t:t.firstChild,"tr")&&ce(e).children("tbody")[0]||e}function Ie(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function We(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Fe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(_.hasData(e)&&(s=_.get(e).events))for(i in _.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),C.head.appendChild(r[0])},abort:function(){i&&i()}}});var Jt,Kt=[],Zt=/(=)\?(?=&|$)|\?\?/;ce.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Kt.pop()||ce.expando+"_"+jt.guid++;return this[e]=!0,e}}),ce.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Zt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Zt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=v(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Zt,"$1"+r):!1!==e.jsonp&&(e.url+=(At.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||ce.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=ie[r],ie[r]=function(){o=arguments},n.always(function(){void 0===i?ce(ie).removeProp(r):ie[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Kt.push(r)),o&&v(i)&&i(o[0]),o=i=void 0}),"script"}),le.createHTMLDocument=((Jt=C.implementation.createHTMLDocument("").body).innerHTML="",2===Jt.childNodes.length),ce.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(le.createHTMLDocument?((r=(t=C.implementation.createHTMLDocument("")).createElement("base")).href=C.location.href,t.head.appendChild(r)):t=C),o=!n&&[],(i=w.exec(e))?[t.createElement(i[1])]:(i=Ae([e],t,o),o&&o.length&&ce(o).remove(),ce.merge([],i.childNodes)));var r,i,o},ce.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(ce.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},ce.expr.pseudos.animated=function(t){return ce.grep(ce.timers,function(e){return t===e.elem}).length},ce.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=ce.css(e,"position"),c=ce(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=ce.css(e,"top"),u=ce.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),v(t)&&(t=t.call(e,n,ce.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},ce.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){ce.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===ce.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===ce.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=ce(e).offset()).top+=ce.css(e,"borderTopWidth",!0),i.left+=ce.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-ce.css(r,"marginTop",!0),left:t.left-i.left-ce.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===ce.css(e,"position"))e=e.offsetParent;return e||J})}}),ce.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;ce.fn[t]=function(e){return M(this,function(e,t,n){var r;if(y(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),ce.each(["top","left"],function(e,n){ce.cssHooks[n]=Ye(le.pixelPosition,function(e,t){if(t)return t=Ge(e,n),_e.test(t)?ce(e).position()[n]+"px":t})}),ce.each({Height:"height",Width:"width"},function(a,s){ce.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){ce.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return M(this,function(e,t,n){var r;return y(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?ce.css(e,t,i):ce.style(e,t,n,i)},s,n?e:void 0,n)}})}),ce.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){ce.fn[t]=function(e){return this.on(t,e)}}),ce.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.on("mouseenter",e).on("mouseleave",t||e)}}),ce.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){ce.fn[n]=function(e,t){return 0o;o++)n[o].fn.apply(n[o].ctx,e);return this},off:function(t,e){var n=this.e||(this.e={}),o=n[t],r=[];if(o&&e)for(var i=0,c=o.length;c>i;i++)o[i].fn!==e&&o[i].fn._!==e&&r.push(o[i]);return r.length?n[t]=r:delete n[t],this}},e.exports=o},{}],8:[function(e,n,o){!function(r,i){if("function"==typeof t&&t.amd)t(["module","select"],i);else if("undefined"!=typeof o)i(n,e("select"));else{var c={exports:{}};i(c,r.select),r.clipboardAction=c.exports}}(this,function(t,e){"use strict";function n(t){return t&&t.__esModule?t:{"default":t}}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var r=n(e),i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol?"symbol":typeof t},c=function(){function t(t,e){for(var n=0;n0&&(a.verbose("Modifying existing settings",s),s[o]("setting",t,n))))})},settings:function(t,n,o){n="string"==typeof n?[n]:n||f.modules,o=o!==i?o:!0,e.each(n,function(n,i){var r;a.moduleExists(i)&&(a.verbose("Changing default setting",t,i),e.extend(!0,e.fn[i].settings,t),o&&m&&(r=e(":data(module-"+m+")"),r.length>0&&(a.verbose("Modifying existing settings",r),r[i]("setting",t))))})}},enable:{console:function(){a.console(!0)},debug:function(e,t){e=e||f.modules,a.debug("Enabling debug for modules",e),a.change.setting("debug",!0,e,t)},verbose:function(e,t){e=e||f.modules,a.debug("Enabling verbose debug for modules",e),a.change.setting("verbose",!0,e,t)}},disable:{console:function(){a.console(!1)},debug:function(e,t){e=e||f.modules,a.debug("Disabling debug for modules",e),a.change.setting("debug",!1,e,t)},verbose:function(e,t){e=e||f.modules,a.debug("Disabling verbose debug for modules",e),a.change.setting("verbose",!1,e,t)}},console:function(e){if(e){if(y.cache.console===i)return void a.error(g.console);a.debug("Restoring console function"),t.console=y.cache.console}else a.debug("Disabling console function"),y.cache.console=t.console,t.console={clear:function(){},error:function(){},group:function(){},groupCollapsed:function(){},groupEnd:function(){},info:function(){},log:function(){},markTimeline:function(){},warn:function(){}}},destroy:function(){a.verbose("Destroying previous site for",v),v.removeData(p)},cache:{},setting:function(t,n){if(e.isPlainObject(t))e.extend(!0,f,t);else{if(n===i)return f[t];f[t]=n}},internal:function(t,n){if(e.isPlainObject(t))e.extend(!0,a,t);else{if(n===i)return a[t];a[t]=n}},debug:function(){f.debug&&(f.performance?a.performance.log(arguments):(a.debug=Function.prototype.bind.call(console.info,console,f.name+":"),a.debug.apply(console,arguments)))},verbose:function(){f.verbose&&f.debug&&(f.performance?a.performance.log(arguments):(a.verbose=Function.prototype.bind.call(console.info,console,f.name+":"),a.verbose.apply(console,arguments)))},error:function(){a.error=Function.prototype.bind.call(console.error,console,f.name+":"),a.error.apply(console,arguments)},performance:{log:function(e){var t,n,i;f.performance&&(t=(new Date).getTime(),i=s||t,n=t-i,s=t,l.push({Element:b,Name:e[0],Arguments:[].slice.call(e,1)||"","Execution Time":n})),clearTimeout(a.performance.timer),a.performance.timer=setTimeout(a.performance.display,500)},display:function(){var t=f.name+":",n=0;s=!1,clearTimeout(a.performance.timer),e.each(l,function(e,t){n+=t["Execution Time"]}),t+=" "+n+"ms",(console.group!==i||console.table!==i)&&l.length>0&&(console.groupCollapsed(t),console.table?console.table(l):e.each(l,function(e,t){console.log(t.Name+": "+t["Execution Time"]+"ms")}),console.groupEnd()),l=[]}},invoke:function(t,n,o){var s,l,c,u=y;return n=n||d,o=b||o,"string"==typeof t&&u!==i&&(t=t.split(/[\. ]/),s=t.length-1,e.each(t,function(n,o){var r=n!=s?o+t[n+1].charAt(0).toUpperCase()+t[n+1].slice(1):t;if(e.isPlainObject(u[r])&&n!=s)u=u[r];else{if(u[r]!==i)return l=u[r],!1;if(!e.isPlainObject(u[o])||n==s)return u[o]!==i?(l=u[o],!1):(a.error(g.method,t),!1);u=u[o]}})),e.isFunction(l)?c=l.apply(o,n):l!==i&&(c=l),e.isArray(r)?r.push(c):r!==i?r=[r,c]:c!==i&&(r=c),l}},u?(y===i&&a.initialize(),a.invoke(c)):(y!==i&&a.destroy(),a.initialize()),r!==i?r:this},e.site.settings={name:"Site",namespace:"site",error:{console:"Console cannot be restored, most likely it was overwritten outside of module",method:"The method you called is not defined."},debug:!1,verbose:!1,performance:!0,modules:["accordion","api","checkbox","dimmer","dropdown","embed","form","modal","nag","popup","rating","shape","sidebar","state","sticky","tab","transition","visit","visibility"],siteNamespace:"site",namespaceStub:{cache:{},config:{},sections:{},section:{},utilities:{}}},e.extend(e.expr[":"],{data:e.expr.createPseudo?e.expr.createPseudo(function(t){return function(n){return!!e.data(n,t)}}):function(t,n,i){return!!e.data(t,i[3])}})}(jQuery,window,document),function(e,t,n,i){"use strict";t="undefined"!=typeof t&&t.Math==Math?t:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")(),e.fn.form=function(t){var o,a=e(this),r=a.selector||"",s=(new Date).getTime(),l=[],c=arguments[0],u=arguments[1],d="string"==typeof c,f=[].slice.call(arguments,1);return a.each(function(){var m,g,p,h,v,b,y,x,C,w,k,S,T,A,R,P,E,F,O=e(this),D=this,q=[],j=!1;F={initialize:function(){F.get.settings(),d?(E===i&&F.instantiate(),F.invoke(c)):(E!==i&&E.invoke("destroy"),F.verbose("Initializing form validation",O,x),F.bindEvents(),F.set.defaults(),F.instantiate())},instantiate:function(){F.verbose("Storing instance of module",F),E=F,O.data(R,F)},destroy:function(){F.verbose("Destroying previous module",E),F.removeEvents(),O.removeData(R)},refresh:function(){F.verbose("Refreshing selector cache"),m=O.find(k.field),g=O.find(k.group),p=O.find(k.message),h=O.find(k.prompt),v=O.find(k.submit),b=O.find(k.clear),y=O.find(k.reset)},submit:function(){F.verbose("Submitting form",O),O.submit()},attachEvents:function(t,n){n=n||"submit",e(t).on("click"+P,function(e){F[n](),e.preventDefault()})},bindEvents:function(){F.verbose("Attaching form events"),O.on("submit"+P,F.validate.form).on("blur"+P,k.field,F.event.field.blur).on("click"+P,k.submit,F.submit).on("click"+P,k.reset,F.reset).on("click"+P,k.clear,F.clear),x.keyboardShortcuts&&O.on("keydown"+P,k.field,F.event.field.keydown),m.each(function(){var t=e(this),n=t.prop("type"),i=F.get.changeEvent(n,t);e(this).on(i+P,F.event.field.change)})},clear:function(){m.each(function(){var t=e(this),n=t.parent(),i=t.closest(g),o=i.find(k.prompt),a=t.data(w.defaultValue)||"",r=n.is(k.uiCheckbox),s=n.is(k.uiDropdown),l=i.hasClass(S.error);l&&(F.verbose("Resetting error on field",i),i.removeClass(S.error),o.remove()),s?(F.verbose("Resetting dropdown value",n,a),n.dropdown("clear")):r?t.prop("checked",!1):(F.verbose("Resetting field value",t,a),t.val(""))})},reset:function(){m.each(function(){var t=e(this),n=t.parent(),o=t.closest(g),a=o.find(k.prompt),r=t.data(w.defaultValue),s=n.is(k.uiCheckbox),l=n.is(k.uiDropdown),c=o.hasClass(S.error);r!==i&&(c&&(F.verbose("Resetting error on field",o),o.removeClass(S.error),a.remove()),l?(F.verbose("Resetting dropdown value",n,r),n.dropdown("restore defaults")):s?(F.verbose("Resetting checkbox value",n,r),t.prop("checked",r)):(F.verbose("Resetting field value",t,r),t.val(r)))})},is:{bracketedRule:function(e){return e.type&&e.type.match(x.regExp.bracket)},empty:function(e){return e&&0!==e.length?e.is('input[type="checkbox"]')?!e.is(":checked"):F.is.blank(e):!0},blank:function(t){return""===e.trim(t.val())},valid:function(){var t=!0;return F.verbose("Checking if form is valid"),e.each(C,function(e,n){F.validate.field(n,e)||(t=!1)}),t}},removeEvents:function(){O.off(P),m.off(P),v.off(P),m.off(P)},event:{field:{keydown:function(t){var n=e(this),i=t.which,o=n.is(k.input),a=n.is(k.checkbox),r=n.closest(k.uiDropdown).length>0,s={enter:13,escape:27};i==s.escape&&(F.verbose("Escape key pressed blurring field"),n.blur()),t.ctrlKey||i!=s.enter||!o||r||a||(j||(n.one("keyup"+P,F.event.field.keyup),F.submit(),F.debug("Enter pressed on input submitting form")),j=!0)},keyup:function(){j=!1},blur:function(t){var n=e(this),i=n.closest(g),o=F.get.validation(n);i.hasClass(S.error)?(F.debug("Revalidating field",n,o),o&&F.validate.field(o)):("blur"==x.on||"change"==x.on)&&o&&F.validate.field(o)},change:function(t){var n=e(this),i=n.closest(g),o=F.get.validation(n);("change"==x.on||i.hasClass(S.error)&&x.revalidate)&&(clearTimeout(F.timer),F.timer=setTimeout(function(){F.debug("Revalidating field",n,F.get.validation(n)),F.validate.field(o)},x.delay))}}},get:{ancillaryValue:function(e){return e.type&&F.is.bracketedRule(e)?e.type.match(x.regExp.bracket)[1]+"":!1},ruleName:function(e){return F.is.bracketedRule(e)?e.type.replace(e.type.match(x.regExp.bracket)[0],""):e.type},changeEvent:function(e,t){return"checkbox"==e||"radio"==e||"hidden"==e||t.is("select")?"change":F.get.inputEvent()},inputEvent:function(){return n.createElement("input").oninput!==i?"input":n.createElement("input").onpropertychange!==i?"propertychange":"keyup"},prompt:function(e,t){var n,i,o,a=F.get.ruleName(e),r=F.get.ancillaryValue(e),s=e.prompt||x.prompt[a]||x.text.unspecifiedRule,l=-1!==s.search("{value}"),c=-1!==s.search("{name}");return(c||l)&&(i=F.get.field(t.identifier)),l&&(s=s.replace("{value}",i.val())),c&&(n=i.closest(k.group).find("label").eq(0),o=1==n.length?n.text():i.prop("placeholder")||x.text.unspecifiedField,s=s.replace("{name}",o)),s=s.replace("{identifier}",t.identifier),s=s.replace("{ruleValue}",r),e.prompt||F.verbose("Using default validation prompt for type",s,a),s},settings:function(){if(e.isPlainObject(t)){var n,o=Object.keys(t),a=o.length>0?t[o[0]].identifier!==i&&t[o[0]].rules!==i:!1;a?(x=e.extend(!0,{},e.fn.form.settings,u),C=e.extend({},e.fn.form.settings.defaults,t),F.error(x.error.oldSyntax,D),F.verbose("Extending settings from legacy parameters",C,x)):(t.fields&&(n=Object.keys(t.fields),("string"==typeof t.fields[n[0]]||e.isArray(t.fields[n[0]]))&&e.each(t.fields,function(n,i){"string"==typeof i&&(i=[i]),t.fields[n]={rules:[]},e.each(i,function(e,i){t.fields[n].rules.push({type:i})})})),x=e.extend(!0,{},e.fn.form.settings,t),C=e.extend({},e.fn.form.settings.defaults,x.fields),F.verbose("Extending settings",C,x))}else x=e.fn.form.settings,C=e.fn.form.settings.defaults,F.verbose("Using default form validation",C,x);A=x.namespace,w=x.metadata,k=x.selector,S=x.className,T=x.error,R="module-"+A,P="."+A,E=O.data(R),F.refresh()},field:function(t){return F.verbose("Finding field with identifier",t),m.filter("#"+t).length>0?m.filter("#"+t):m.filter('[name="'+t+'"]').length>0?m.filter('[name="'+t+'"]'):m.filter('[name="'+t+'[]"]').length>0?m.filter('[name="'+t+'[]"]'):m.filter("[data-"+w.validate+'="'+t+'"]').length>0?m.filter("[data-"+w.validate+'="'+t+'"]'):e("")},fields:function(t){var n=e();return e.each(t,function(e,t){n=n.add(F.get.field(t))}),n},validation:function(t){var n,i;return C?(e.each(C,function(e,o){i=o.identifier||e,F.get.field(i)[0]==t[0]&&(o.identifier=i,n=o)}),n||!1):!1},value:function(e){var t,n=[];return n.push(e),t=F.get.values.call(D,n),t[e]},values:function(t){var n=e.isArray(t)?F.get.fields(t):m,i={};return n.each(function(t,n){var o=e(n),a=(o.prop("type"),o.prop("name")),r=o.val(),s=o.is(k.checkbox),l=o.is(k.radio),c=-1!==a.indexOf("[]"),u=s?o.is(":checked"):!1;a&&(c?(a=a.replace("[]",""),i[a]||(i[a]=[]),s?u?i[a].push(r||!0):i[a].push(!1):i[a].push(r)):l?u&&(i[a]=r):s?u?i[a]=r||!0:i[a]=!1:i[a]=r)}),i}},has:{field:function(e){return F.verbose("Checking for existence of a field with identifier",e),"string"!=typeof e&&F.error(T.identifier,e),m.filter("#"+e).length>0?!0:m.filter('[name="'+e+'"]').length>0?!0:m.filter("[data-"+w.validate+'="'+e+'"]').length>0?!0:!1}},add:{prompt:function(t,n){var o=F.get.field(t),a=o.closest(g),r=a.children(k.prompt),s=0!==r.length;n="string"==typeof n?[n]:n,F.verbose("Adding field error state",t),a.addClass(S.error),x.inline&&(s||(r=x.templates.prompt(n),r.appendTo(a)),r.html(n[0]),s?F.verbose("Inline errors are disabled, no inline error added",t):x.transition&&e.fn.transition!==i&&O.transition("is supported")?(F.verbose("Displaying error with css transition",x.transition),r.transition(x.transition+" in",x.duration)):(F.verbose("Displaying error with fallback javascript animation"),r.fadeIn(x.duration)))},errors:function(e){F.debug("Adding form error messages",e),F.set.error(),p.html(x.templates.error(e))}},remove:{prompt:function(t){var n=F.get.field(t),o=n.closest(g),a=o.children(k.prompt);o.removeClass(S.error),x.inline&&a.is(":visible")&&(F.verbose("Removing prompt for field",t),x.transition&&e.fn.transition!==i&&O.transition("is supported")?a.transition(x.transition+" out",x.duration,function(){a.remove()}):a.fadeOut(x.duration,function(){a.remove()}))}},set:{success:function(){O.removeClass(S.error).addClass(S.success)},defaults:function(){m.each(function(){var t=e(this),n=t.filter(k.checkbox).length>0,i=n?t.is(":checked"):t.val();t.data(w.defaultValue,i)})},error:function(){O.removeClass(S.success).addClass(S.error)},value:function(e,t){var n={};return n[e]=t,F.set.values.call(D,n)},values:function(t){e.isEmptyObject(t)||e.each(t,function(t,n){var i,o=F.get.field(t),a=o.parent(),r=e.isArray(n),s=a.is(k.uiCheckbox),l=a.is(k.uiDropdown),c=o.is(k.radio)&&s,u=o.length>0;u&&(r&&s?(F.verbose("Selecting multiple",n,o),a.checkbox("uncheck"),e.each(n,function(e,t){i=o.filter('[value="'+t+'"]'),a=i.parent(),i.length>0&&a.checkbox("check")})):c?(F.verbose("Selecting radio value",n,o),o.filter('[value="'+n+'"]').parent(k.uiCheckbox).checkbox("check")):s?(F.verbose("Setting checkbox value",n,a),n===!0?a.checkbox("check"):a.checkbox("uncheck")):l?(F.verbose("Setting dropdown value",n,a),a.dropdown("set selected",n)):(F.verbose("Setting field value",n,o),o.val(n)))})}},validate:{form:function(e,t){var n=F.get.values();if(j)return!1;if(q=[],F.is.valid()){if(F.debug("Form has no validation errors, submitting"),F.set.success(),t!==!0)return x.onSuccess.call(D,e,n)}else if(F.debug("Form has errors"),F.set.error(),x.inline||F.add.errors(q),O.data("moduleApi")!==i&&e.stopImmediatePropagation(),t!==!0)return x.onFailure.call(D,q,n)},field:function(t,n){var o=t.identifier||n,a=F.get.field(o),r=t.depends?F.get.field(t.depends):!1,s=!0,l=[];return t.identifier||(F.debug("Using field name as identifier",o),t.identifier=o),a.prop("disabled")?(F.debug("Field is disabled. Skipping",o),s=!0):t.optional&&F.is.blank(a)?(F.debug("Field is optional and blank. Skipping",o),s=!0):t.depends&&F.is.empty(r)?(F.debug("Field depends on another value that is not present or empty. Skipping",r),s=!0):t.rules!==i&&e.each(t.rules,function(e,n){F.has.field(o)&&!F.validate.rule(t,n)&&(F.debug("Field is invalid",o,n.type),l.push(F.get.prompt(n,t)),s=!1)}),s?(F.remove.prompt(o,l),x.onValid.call(a),!0):(q=q.concat(l),F.add.prompt(o,l),x.onInvalid.call(a,l),!1)},rule:function(t,n){var o=F.get.field(t.identifier),a=(n.type,o.val()),r=F.get.ancillaryValue(n),s=F.get.ruleName(n),l=x.rules[s];return e.isFunction(l)?(a=a===i||""===a||null===a?"":e.trim(a+""),l.call(o,a,r)):void F.error(T.noRule,s)}},setting:function(t,n){if(e.isPlainObject(t))e.extend(!0,x,t);else{if(n===i)return x[t];x[t]=n}},internal:function(t,n){if(e.isPlainObject(t))e.extend(!0,F,t);else{if(n===i)return F[t];F[t]=n}},debug:function(){!x.silent&&x.debug&&(x.performance?F.performance.log(arguments):(F.debug=Function.prototype.bind.call(console.info,console,x.name+":"),F.debug.apply(console,arguments)))},verbose:function(){!x.silent&&x.verbose&&x.debug&&(x.performance?F.performance.log(arguments):(F.verbose=Function.prototype.bind.call(console.info,console,x.name+":"),F.verbose.apply(console,arguments)))},error:function(){x.silent||(F.error=Function.prototype.bind.call(console.error,console,x.name+":"),F.error.apply(console,arguments))},performance:{log:function(e){var t,n,i;x.performance&&(t=(new Date).getTime(),i=s||t,n=t-i,s=t,l.push({Name:e[0],Arguments:[].slice.call(e,1)||"",Element:D,"Execution Time":n})),clearTimeout(F.performance.timer),F.performance.timer=setTimeout(F.performance.display,500)},display:function(){var t=x.name+":",n=0;s=!1,clearTimeout(F.performance.timer),e.each(l,function(e,t){n+=t["Execution Time"]}),t+=" "+n+"ms",r&&(t+=" '"+r+"'"),a.length>1&&(t+=" ("+a.length+")"),(console.group!==i||console.table!==i)&&l.length>0&&(console.groupCollapsed(t),console.table?console.table(l):e.each(l,function(e,t){console.log(t.Name+": "+t["Execution Time"]+"ms")}),console.groupEnd()),l=[]}},invoke:function(t,n,a){var r,s,l,c=E;return n=n||f,a=D||a,"string"==typeof t&&c!==i&&(t=t.split(/[\. ]/),r=t.length-1,e.each(t,function(n,o){var a=n!=r?o+t[n+1].charAt(0).toUpperCase()+t[n+1].slice(1):t;if(e.isPlainObject(c[a])&&n!=r)c=c[a];else{if(c[a]!==i)return s=c[a],!1;if(!e.isPlainObject(c[o])||n==r)return c[o]!==i?(s=c[o],!1):!1;c=c[o]}})),e.isFunction(s)?l=s.apply(a,n):s!==i&&(l=s),e.isArray(o)?o.push(l):o!==i?o=[o,l]:l!==i&&(o=l),s}},F.initialize()}),o!==i?o:this},e.fn.form.settings={name:"Form",namespace:"form",debug:!1,verbose:!1,performance:!0,fields:!1,keyboardShortcuts:!0,on:"submit",inline:!1,delay:200,revalidate:!0,transition:"scale",duration:200,onValid:function(){},onInvalid:function(){},onSuccess:function(){return!0},onFailure:function(){return!1},metadata:{defaultValue:"default",validate:"validate"},regExp:{bracket:/\[(.*)\]/i,decimal:/^\d*(\.)\d+/,email:/^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i,escape:/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,flags:/^\/(.*)\/(.*)?/,integer:/^\-?\d+$/,number:/^\-?\d*(\.\d+)?$/,url:/(https?:\/\/(?:www\.|(?!www))[^\s\.]+\.[^\s]{2,}|www\.[^\s]+\.[^\s]{2,})/i},text:{unspecifiedRule:"Please enter a valid value",unspecifiedField:"This field"},prompt:{empty:"{name} must have a value",checked:"{name} must be checked",email:"{name} must be a valid e-mail",url:"{name} must be a valid url",regExp:"{name} is not formatted correctly",integer:"{name} must be an integer",decimal:"{name} must be a decimal number",number:"{name} must be set to a number",is:'{name} must be "{ruleValue}"',isExactly:'{name} must be exactly "{ruleValue}"',not:'{name} cannot be set to "{ruleValue}"',notExactly:'{name} cannot be set to exactly "{ruleValue}"',contain:'{name} cannot contain "{ruleValue}"',containExactly:'{name} cannot contain exactly "{ruleValue}"',doesntContain:'{name} must contain "{ruleValue}"',doesntContainExactly:'{name} must contain exactly "{ruleValue}"',minLength:"{name} must be at least {ruleValue} characters",length:"{name} must be at least {ruleValue} characters",exactLength:"{name} must be exactly {ruleValue} characters",maxLength:"{name} cannot be longer than {ruleValue} characters",match:"{name} must match {ruleValue} field",different:"{name} must have a different value than {ruleValue} field",creditCard:"{name} must be a valid credit card number",minCount:"{name} must have at least {ruleValue} choices",exactCount:"{name} must have exactly {ruleValue} choices",maxCount:"{name} must have {ruleValue} or less choices"},selector:{checkbox:'input[type="checkbox"], input[type="radio"]',clear:".clear",field:"input, textarea, select",group:".field",input:"input",message:".error.message",prompt:".prompt.label",radio:'input[type="radio"]',reset:'.reset:not([type="reset"])',submit:'.submit:not([type="submit"])',uiCheckbox:".ui.checkbox",uiDropdown:".ui.dropdown"},className:{error:"error",label:"ui prompt label",pressed:"down",success:"success"},error:{identifier:"You must specify a string identifier for each field",method:"The method you called is not defined.",noRule:"There is no rule matching the one you specified",oldSyntax:"Starting in 2.0 forms now only take a single settings object. Validation settings converted to new syntax automatically."},templates:{error:function(t){var n='
';return e.each(t,function(e,t){n+="
"+t+"
"}),n+="
",e(n)},prompt:function(t){return e("").addClass("ui basic red pointing prompt label").html(t[0])}},rules:{empty:function(t){return!(t===i||""===t||e.isArray(t)&&0===t.length)},checked:function(){return e(this).filter(":checked").length>0},email:function(t){return e.fn.form.settings.regExp.email.test(t)},url:function(t){return e.fn.form.settings.regExp.url.test(t)},regExp:function(t,n){var i,o=n.match(e.fn.form.settings.regExp.flags);return o&&(n=o.length>=2?o[1]:n,i=o.length>=3?o[2]:""),t.match(new RegExp(n,i))},integer:function(t,n){var o,a,r,s=e.fn.form.settings.regExp.integer;return n&&-1===["",".."].indexOf(n)&&(-1==n.indexOf("..")?s.test(n)&&(o=a=n-0):(r=n.split("..",2),s.test(r[0])&&(o=r[0]-0),s.test(r[1])&&(a=r[1]-0))),s.test(t)&&(o===i||t>=o)&&(a===i||a>=t)},decimal:function(t){return e.fn.form.settings.regExp.decimal.test(t)},number:function(t){return e.fn.form.settings.regExp.number.test(t)},is:function(e,t){return t="string"==typeof t?t.toLowerCase():t,e="string"==typeof e?e.toLowerCase():e,e==t},isExactly:function(e,t){return e==t},not:function(e,t){return e="string"==typeof e?e.toLowerCase():e,t="string"==typeof t?t.toLowerCase():t,e!=t},notExactly:function(e,t){return e!=t},contains:function(t,n){return n=n.replace(e.fn.form.settings.regExp.escape,"\\$&"),-1!==t.search(new RegExp(n,"i"))},containsExactly:function(t,n){return n=n.replace(e.fn.form.settings.regExp.escape,"\\$&"),-1!==t.search(new RegExp(n))},doesntContain:function(t,n){return n=n.replace(e.fn.form.settings.regExp.escape,"\\$&"),-1===t.search(new RegExp(n,"i"))},doesntContainExactly:function(t,n){return n=n.replace(e.fn.form.settings.regExp.escape,"\\$&"),-1===t.search(new RegExp(n))},minLength:function(e,t){return e!==i?e.length>=t:!1},length:function(e,t){return e!==i?e.length>=t:!1},exactLength:function(e,t){return e!==i?e.length==t:!1},maxLength:function(e,t){return e!==i?e.length<=t:!1},match:function(t,n){var o;e(this);return e('[data-validate="'+n+'"]').length>0?o=e('[data-validate="'+n+'"]').val():e("#"+n).length>0?o=e("#"+n).val():e('[name="'+n+'"]').length>0?o=e('[name="'+n+'"]').val():e('[name="'+n+'[]"]').length>0&&(o=e('[name="'+n+'[]"]')),o!==i?t.toString()==o.toString():!1},different:function(t,n){var o;e(this);return e('[data-validate="'+n+'"]').length>0?o=e('[data-validate="'+n+'"]').val():e("#"+n).length>0?o=e("#"+n).val():e('[name="'+n+'"]').length>0?o=e('[name="'+n+'"]').val():e('[name="'+n+'[]"]').length>0&&(o=e('[name="'+n+'[]"]')),o!==i?t.toString()!==o.toString():!1},creditCard:function(t,n){var i,o,a={visa:{pattern:/^4/,length:[16]},amex:{pattern:/^3[47]/,length:[15]},mastercard:{pattern:/^5[1-5]/,length:[16]},discover:{pattern:/^(6011|622(12[6-9]|1[3-9][0-9]|[2-8][0-9]{2}|9[0-1][0-9]|92[0-5]|64[4-9])|65)/,length:[16]},unionPay:{pattern:/^(62|88)/,length:[16,17,18,19]},jcb:{pattern:/^35(2[89]|[3-8][0-9])/,length:[16]},maestro:{pattern:/^(5018|5020|5038|6304|6759|676[1-3])/,length:[12,13,14,15,16,17,18,19]},dinersClub:{pattern:/^(30[0-5]|^36)/,length:[14]},laser:{pattern:/^(6304|670[69]|6771)/,length:[16,17,18,19]},visaElectron:{pattern:/^(4026|417500|4508|4844|491(3|7))/,length:[16]}},r={},s=!1,l="string"==typeof n?n.split(","):!1;if("string"==typeof t&&0!==t.length){if(l&&(e.each(l,function(n,i){o=a[i],o&&(r={length:-1!==e.inArray(t.length,o.length),pattern:-1!==t.search(o.pattern)},r.length&&r.pattern&&(s=!0))}),!s))return!1;if(i={number:-1!==e.inArray(t.length,a.unionPay.length),pattern:-1!==t.search(a.unionPay.pattern)},i.number&&i.pattern)return!0;for(var c=t.length,u=0,d=[[0,1,2,3,4,5,6,7,8,9],[0,2,4,6,8,1,3,5,7,9]],f=0;c--;)f+=d[u][parseInt(t.charAt(c),10)],u^=1;return f%10===0&&f>0}},minCount:function(e,t){return 0==t?!0:1==t?""!==e:e.split(",").length>=t},exactCount:function(e,t){return 0==t?""===e:1==t?""!==e&&-1===e.search(","):e.split(",").length==t},maxCount:function(e,t){return 0==t?!1:1==t?-1===e.search(","):e.split(",").length<=t}}}}(jQuery,window,document),function(e,t,n,i){"use strict";t="undefined"!=typeof t&&t.Math==Math?t:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")(),e.fn.accordion=function(n){var o,a=e(this),r=(new Date).getTime(),s=[],l=arguments[0],c="string"==typeof l,u=[].slice.call(arguments,1);t.requestAnimationFrame||t.mozRequestAnimationFrame||t.webkitRequestAnimationFrame||t.msRequestAnimationFrame||function(e){setTimeout(e,0)};return a.each(function(){var d,f,m=e.isPlainObject(n)?e.extend(!0,{},e.fn.accordion.settings,n):e.extend({},e.fn.accordion.settings),g=m.className,p=m.namespace,h=m.selector,v=m.error,b="."+p,y="module-"+p,x=a.selector||"",C=e(this),w=C.find(h.title),k=C.find(h.content),S=this,T=C.data(y);f={initialize:function(){f.debug("Initializing",C),f.bind.events(),m.observeChanges&&f.observeChanges(),f.instantiate()},instantiate:function(){T=f,C.data(y,f)},destroy:function(){f.debug("Destroying previous instance",C),C.off(b).removeData(y)},refresh:function(){w=C.find(h.title),k=C.find(h.content)},observeChanges:function(){"MutationObserver"in t&&(d=new MutationObserver(function(e){f.debug("DOM tree modified, updating selector cache"),f.refresh()}),d.observe(S,{childList:!0,subtree:!0}),f.debug("Setting up mutation observer",d))},bind:{events:function(){f.debug("Binding delegated events"),C.on(m.on+b,h.trigger,f.event.click)}},event:{click:function(){f.toggle.call(this)}},toggle:function(t){var n=t!==i?"number"==typeof t?w.eq(t):e(t).closest(h.title):e(this).closest(h.title),o=n.next(k),a=o.hasClass(g.animating),r=o.hasClass(g.active),s=r&&!a,l=!r&&a;f.debug("Toggling visibility of content",n),s||l?m.collapsible?f.close.call(n):f.debug("Cannot close accordion content collapsing is disabled"):f.open.call(n)},open:function(t){var n=t!==i?"number"==typeof t?w.eq(t):e(t).closest(h.title):e(this).closest(h.title),o=n.next(k),a=o.hasClass(g.animating),r=o.hasClass(g.active),s=r||a;return s?void f.debug("Accordion already open, skipping",o):(f.debug("Opening accordion content",n),m.onOpening.call(o),m.exclusive&&f.closeOthers.call(n),n.addClass(g.active),o.stop(!0,!0).addClass(g.animating),m.animateChildren&&(e.fn.transition!==i&&C.transition("is supported")?o.children().transition({animation:"fade in",queue:!1,useFailSafe:!0,debug:m.debug,verbose:m.verbose,duration:m.duration}):o.children().stop(!0,!0).animate({opacity:1},m.duration,f.resetOpacity)),void o.slideDown(m.duration,m.easing,function(){o.removeClass(g.animating).addClass(g.active),f.reset.display.call(this),m.onOpen.call(this),m.onChange.call(this)}))},close:function(t){var n=t!==i?"number"==typeof t?w.eq(t):e(t).closest(h.title):e(this).closest(h.title),o=n.next(k),a=o.hasClass(g.animating),r=o.hasClass(g.active),s=!r&&a,l=r&&a;!r&&!s||l||(f.debug("Closing accordion content",o),m.onClosing.call(o),n.removeClass(g.active),o.stop(!0,!0).addClass(g.animating),m.animateChildren&&(e.fn.transition!==i&&C.transition("is supported")?o.children().transition({animation:"fade out",queue:!1,useFailSafe:!0,debug:m.debug,verbose:m.verbose,duration:m.duration}):o.children().stop(!0,!0).animate({opacity:0},m.duration,f.resetOpacity)),o.slideUp(m.duration,m.easing,function(){o.removeClass(g.animating).removeClass(g.active),f.reset.display.call(this),m.onClose.call(this),m.onChange.call(this)}))},closeOthers:function(t){var n,o,a,r=t!==i?w.eq(t):e(this).closest(h.title),s=r.parents(h.content).prev(h.title),l=r.closest(h.accordion),c=h.title+"."+g.active+":visible",u=h.content+"."+g.active+":visible";m.closeNested?(n=l.find(c).not(s),a=n.next(k)):(n=l.find(c).not(s),o=l.find(u).find(c).not(s),n=n.not(o),a=n.next(k)),n.length>0&&(f.debug("Exclusive enabled, closing other content",n),n.removeClass(g.active),a.removeClass(g.animating).stop(!0,!0),m.animateChildren&&(e.fn.transition!==i&&C.transition("is supported")?a.children().transition({animation:"fade out",useFailSafe:!0,debug:m.debug,verbose:m.verbose,duration:m.duration}):a.children().stop(!0,!0).animate({opacity:0},m.duration,f.resetOpacity)),a.slideUp(m.duration,m.easing,function(){e(this).removeClass(g.active),f.reset.display.call(this)}))},reset:{display:function(){f.verbose("Removing inline display from element",this),e(this).css("display",""),""===e(this).attr("style")&&e(this).attr("style","").removeAttr("style")},opacity:function(){f.verbose("Removing inline opacity from element",this),e(this).css("opacity",""),""===e(this).attr("style")&&e(this).attr("style","").removeAttr("style")}},setting:function(t,n){if(f.debug("Changing setting",t,n),e.isPlainObject(t))e.extend(!0,m,t);else{if(n===i)return m[t];e.isPlainObject(m[t])?e.extend(!0,m[t],n):m[t]=n}},internal:function(t,n){return f.debug("Changing internal",t,n),n===i?f[t]:void(e.isPlainObject(t)?e.extend(!0,f,t):f[t]=n)},debug:function(){!m.silent&&m.debug&&(m.performance?f.performance.log(arguments):(f.debug=Function.prototype.bind.call(console.info,console,m.name+":"),f.debug.apply(console,arguments)))},verbose:function(){!m.silent&&m.verbose&&m.debug&&(m.performance?f.performance.log(arguments):(f.verbose=Function.prototype.bind.call(console.info,console,m.name+":"),f.verbose.apply(console,arguments)))},error:function(){m.silent||(f.error=Function.prototype.bind.call(console.error,console,m.name+":"),f.error.apply(console,arguments))},performance:{log:function(e){var t,n,i;m.performance&&(t=(new Date).getTime(),i=r||t,n=t-i,r=t,s.push({Name:e[0],Arguments:[].slice.call(e,1)||"",Element:S,"Execution Time":n})),clearTimeout(f.performance.timer),f.performance.timer=setTimeout(f.performance.display,500)},display:function(){var t=m.name+":",n=0;r=!1,clearTimeout(f.performance.timer),e.each(s,function(e,t){n+=t["Execution Time"]}),t+=" "+n+"ms",x&&(t+=" '"+x+"'"),(console.group!==i||console.table!==i)&&s.length>0&&(console.groupCollapsed(t),console.table?console.table(s):e.each(s,function(e,t){console.log(t.Name+": "+t["Execution Time"]+"ms")}),console.groupEnd()),s=[]}},invoke:function(t,n,a){var r,s,l,c=T;return n=n||u,a=S||a,"string"==typeof t&&c!==i&&(t=t.split(/[\. ]/),r=t.length-1,e.each(t,function(n,o){var a=n!=r?o+t[n+1].charAt(0).toUpperCase()+t[n+1].slice(1):t;if(e.isPlainObject(c[a])&&n!=r)c=c[a];else{if(c[a]!==i)return s=c[a],!1;if(!e.isPlainObject(c[o])||n==r)return c[o]!==i?(s=c[o],!1):(f.error(v.method,t),!1);c=c[o]}})),e.isFunction(s)?l=s.apply(a,n):s!==i&&(l=s),e.isArray(o)?o.push(l):o!==i?o=[o,l]:l!==i&&(o=l),s}},c?(T===i&&f.initialize(),f.invoke(l)):(T!==i&&T.invoke("destroy"),f.initialize())}),o!==i?o:this},e.fn.accordion.settings={name:"Accordion",namespace:"accordion",silent:!1,debug:!1,verbose:!1,performance:!0,on:"click",observeChanges:!0,exclusive:!0,collapsible:!0,closeNested:!1,animateChildren:!0,duration:350,easing:"easeOutQuad",onOpening:function(){},onOpen:function(){},onClosing:function(){},onClose:function(){},onChange:function(){},
-error:{method:"The method you called is not defined"},className:{active:"active",animating:"animating"},selector:{accordion:".accordion",title:".title",trigger:".title",content:".content"}},e.extend(e.easing,{easeOutQuad:function(e,t,n,i,o){return-i*(t/=o)*(t-2)+n}})}(jQuery,window,document),function(e,t,n,i){"use strict";t="undefined"!=typeof t&&t.Math==Math?t:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")(),e.fn.checkbox=function(o){var a,r=e(this),s=r.selector||"",l=(new Date).getTime(),c=[],u=arguments[0],d="string"==typeof u,f=[].slice.call(arguments,1);return r.each(function(){var r,m,g=e.extend(!0,{},e.fn.checkbox.settings,o),p=g.className,h=g.namespace,v=g.selector,b=g.error,y="."+h,x="module-"+h,C=e(this),w=e(this).children(v.label),k=e(this).children(v.input),S=k[0],T=!1,A=!1,R=C.data(x),P=this;m={initialize:function(){m.verbose("Initializing checkbox",g),m.create.label(),m.bind.events(),m.set.tabbable(),m.hide.input(),m.observeChanges(),m.instantiate(),m.setup()},instantiate:function(){m.verbose("Storing instance of module",m),R=m,C.data(x,m)},destroy:function(){m.verbose("Destroying module"),m.unbind.events(),m.show.input(),C.removeData(x)},fix:{reference:function(){C.is(v.input)&&(m.debug("Behavior called on adjusting invoked element"),C=C.closest(v.checkbox),m.refresh())}},setup:function(){m.set.initialLoad(),m.is.indeterminate()?(m.debug("Initial value is indeterminate"),m.indeterminate()):m.is.checked()?(m.debug("Initial value is checked"),m.check()):(m.debug("Initial value is unchecked"),m.uncheck()),m.remove.initialLoad()},refresh:function(){w=C.children(v.label),k=C.children(v.input),S=k[0]},hide:{input:function(){m.verbose("Modifying z-index to be unselectable"),k.addClass(p.hidden)}},show:{input:function(){m.verbose("Modifying z-index to be selectable"),k.removeClass(p.hidden)}},observeChanges:function(){"MutationObserver"in t&&(r=new MutationObserver(function(e){m.debug("DOM tree modified, updating selector cache"),m.refresh()}),r.observe(P,{childList:!0,subtree:!0}),m.debug("Setting up mutation observer",r))},attachEvents:function(t,n){var i=e(t);n=e.isFunction(m[n])?m[n]:m.toggle,i.length>0?(m.debug("Attaching checkbox events to element",t,n),i.on("click"+y,n)):m.error(b.notFound)},event:{click:function(t){var n=e(t.target);return n.is(v.input)?void m.verbose("Using default check action on initialized checkbox"):n.is(v.link)?void m.debug("Clicking link inside checkbox, skipping toggle"):(m.toggle(),k.focus(),void t.preventDefault())},keydown:function(e){var t=e.which,n={enter:13,space:32,escape:27};t==n.escape?(m.verbose("Escape key pressed blurring field"),k.blur(),A=!0):e.ctrlKey||t!=n.space&&t!=n.enter?A=!1:(m.verbose("Enter/space key pressed, toggling checkbox"),m.toggle(),A=!0)},keyup:function(e){A&&e.preventDefault()}},check:function(){m.should.allowCheck()&&(m.debug("Checking checkbox",k),m.set.checked(),m.should.ignoreCallbacks()||(g.onChecked.call(S),g.onChange.call(S)))},uncheck:function(){m.should.allowUncheck()&&(m.debug("Unchecking checkbox"),m.set.unchecked(),m.should.ignoreCallbacks()||(g.onUnchecked.call(S),g.onChange.call(S)))},indeterminate:function(){return m.should.allowIndeterminate()?void m.debug("Checkbox is already indeterminate"):(m.debug("Making checkbox indeterminate"),m.set.indeterminate(),void(m.should.ignoreCallbacks()||(g.onIndeterminate.call(S),g.onChange.call(S))))},determinate:function(){return m.should.allowDeterminate()?void m.debug("Checkbox is already determinate"):(m.debug("Making checkbox determinate"),m.set.determinate(),void(m.should.ignoreCallbacks()||(g.onDeterminate.call(S),g.onChange.call(S))))},enable:function(){return m.is.enabled()?void m.debug("Checkbox is already enabled"):(m.debug("Enabling checkbox"),m.set.enabled(),g.onEnable.call(S),void g.onEnabled.call(S))},disable:function(){return m.is.disabled()?void m.debug("Checkbox is already disabled"):(m.debug("Disabling checkbox"),m.set.disabled(),g.onDisable.call(S),void g.onDisabled.call(S))},get:{radios:function(){var t=m.get.name();return e('input[name="'+t+'"]').closest(v.checkbox)},otherRadios:function(){return m.get.radios().not(C)},name:function(){return k.attr("name")}},is:{initialLoad:function(){return T},radio:function(){return k.hasClass(p.radio)||"radio"==k.attr("type")},indeterminate:function(){return k.prop("indeterminate")!==i&&k.prop("indeterminate")},checked:function(){return k.prop("checked")!==i&&k.prop("checked")},disabled:function(){return k.prop("disabled")!==i&&k.prop("disabled")},enabled:function(){return!m.is.disabled()},determinate:function(){return!m.is.indeterminate()},unchecked:function(){return!m.is.checked()}},should:{allowCheck:function(){return m.is.determinate()&&m.is.checked()&&!m.should.forceCallbacks()?(m.debug("Should not allow check, checkbox is already checked"),!1):g.beforeChecked.apply(S)===!1?(m.debug("Should not allow check, beforeChecked cancelled"),!1):!0},allowUncheck:function(){return m.is.determinate()&&m.is.unchecked()&&!m.should.forceCallbacks()?(m.debug("Should not allow uncheck, checkbox is already unchecked"),!1):g.beforeUnchecked.apply(S)===!1?(m.debug("Should not allow uncheck, beforeUnchecked cancelled"),!1):!0},allowIndeterminate:function(){return m.is.indeterminate()&&!m.should.forceCallbacks()?(m.debug("Should not allow indeterminate, checkbox is already indeterminate"),!1):g.beforeIndeterminate.apply(S)===!1?(m.debug("Should not allow indeterminate, beforeIndeterminate cancelled"),!1):!0},allowDeterminate:function(){return m.is.determinate()&&!m.should.forceCallbacks()?(m.debug("Should not allow determinate, checkbox is already determinate"),!1):g.beforeDeterminate.apply(S)===!1?(m.debug("Should not allow determinate, beforeDeterminate cancelled"),!1):!0},forceCallbacks:function(){return m.is.initialLoad()&&g.fireOnInit},ignoreCallbacks:function(){return T&&!g.fireOnInit}},can:{change:function(){return!(C.hasClass(p.disabled)||C.hasClass(p.readOnly)||k.prop("disabled")||k.prop("readonly"))},uncheck:function(){return"boolean"==typeof g.uncheckable?g.uncheckable:!m.is.radio()}},set:{initialLoad:function(){T=!0},checked:function(){return m.verbose("Setting class to checked"),C.removeClass(p.indeterminate).addClass(p.checked),m.is.radio()&&m.uncheckOthers(),!m.is.indeterminate()&&m.is.checked()?void m.debug("Input is already checked, skipping input property change"):(m.verbose("Setting state to checked",S),k.prop("indeterminate",!1).prop("checked",!0),void m.trigger.change())},unchecked:function(){return m.verbose("Removing checked class"),C.removeClass(p.indeterminate).removeClass(p.checked),!m.is.indeterminate()&&m.is.unchecked()?void m.debug("Input is already unchecked"):(m.debug("Setting state to unchecked"),k.prop("indeterminate",!1).prop("checked",!1),void m.trigger.change())},indeterminate:function(){return m.verbose("Setting class to indeterminate"),C.addClass(p.indeterminate),m.is.indeterminate()?void m.debug("Input is already indeterminate, skipping input property change"):(m.debug("Setting state to indeterminate"),k.prop("indeterminate",!0),void m.trigger.change())},determinate:function(){return m.verbose("Removing indeterminate class"),C.removeClass(p.indeterminate),m.is.determinate()?void m.debug("Input is already determinate, skipping input property change"):(m.debug("Setting state to determinate"),void k.prop("indeterminate",!1))},disabled:function(){return m.verbose("Setting class to disabled"),C.addClass(p.disabled),m.is.disabled()?void m.debug("Input is already disabled, skipping input property change"):(m.debug("Setting state to disabled"),k.prop("disabled","disabled"),void m.trigger.change())},enabled:function(){return m.verbose("Removing disabled class"),C.removeClass(p.disabled),m.is.enabled()?void m.debug("Input is already enabled, skipping input property change"):(m.debug("Setting state to enabled"),k.prop("disabled",!1),void m.trigger.change())},tabbable:function(){m.verbose("Adding tabindex to checkbox"),k.attr("tabindex")===i&&k.attr("tabindex",0)}},remove:{initialLoad:function(){T=!1}},trigger:{change:function(){var e=n.createEvent("HTMLEvents"),t=k[0];t&&(m.verbose("Triggering native change event"),e.initEvent("change",!0,!1),t.dispatchEvent(e))}},create:{label:function(){k.prevAll(v.label).length>0?(k.prev(v.label).detach().insertAfter(k),m.debug("Moving existing label",w)):m.has.label()||(w=e("',t++;return n}}}}(jQuery,window,document),function(E,F,O,D){"use strict";F=void 0!==F&&F.Math==Math?F:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")(),E.fn.search=function(l){var C,w=E(this),S=w.selector||"",k=(new Date).getTime(),T=[],A=l,R="string"==typeof A,P=[].slice.call(arguments,1);return E(this).each(function(){var f,c=E.isPlainObject(l)?E.extend(!0,{},E.fn.search.settings,l):E.extend({},E.fn.search.settings),m=c.className,u=c.metadata,d=c.regExp,a=c.fields,g=c.selector,p=c.error,e=c.namespace,i="."+e,t=e+"-module",h=E(this),v=h.find(g.prompt),n=h.find(g.searchButton),o=h.find(g.results),r=h.find(g.result),b=(h.find(g.category),this),s=h.data(t),y=!1,x=!1;f={initialize:function(){f.verbose("Initializing module"),f.get.settings(),f.determine.searchFields(),f.bind.events(),f.set.type(),f.create.results(),f.instantiate()},instantiate:function(){f.verbose("Storing instance of module",f),s=f,h.data(t,f)},destroy:function(){f.verbose("Destroying instance"),h.off(i).removeData(t)},refresh:function(){f.debug("Refreshing selector cache"),v=h.find(g.prompt),n=h.find(g.searchButton),h.find(g.category),o=h.find(g.results),r=h.find(g.result)},refreshResults:function(){o=h.find(g.results),r=h.find(g.result)},bind:{events:function(){f.verbose("Binding events to search"),c.automatic&&(h.on(f.get.inputEvent()+i,g.prompt,f.event.input),v.attr("autocomplete","off")),h.on("focus"+i,g.prompt,f.event.focus).on("blur"+i,g.prompt,f.event.blur).on("keydown"+i,g.prompt,f.handleKeyboard).on("click"+i,g.searchButton,f.query).on("mousedown"+i,g.results,f.event.result.mousedown).on("mouseup"+i,g.results,f.event.result.mouseup).on("click"+i,g.result,f.event.result.click)}},determine:{searchFields:function(){l&&l.searchFields!==D&&(c.searchFields=l.searchFields)}},event:{input:function(){c.searchDelay?(clearTimeout(f.timer),f.timer=setTimeout(function(){f.is.focused()&&f.query()},c.searchDelay)):f.query()},focus:function(){f.set.focus(),c.searchOnFocus&&f.has.minimumCharacters()&&f.query(function(){f.can.show()&&f.showResults()})},blur:function(e){var t=O.activeElement===this,n=function(){f.cancel.query(),f.remove.focus(),f.timer=setTimeout(f.hideResults,c.hideDelay)};t||(x=!1,f.resultsClicked?(f.debug("Determining if user action caused search to close"),h.one("click.close"+i,g.results,function(e){f.is.inMessage(e)||y?v.focus():(y=!1,f.is.animating()||f.is.hidden()||n())})):(f.debug("Input blurred without user action, closing results"),n()))},result:{mousedown:function(){f.resultsClicked=!0},mouseup:function(){f.resultsClicked=!1},click:function(e){f.debug("Search result selected");var t=E(this),n=t.find(g.title).eq(0),i=t.is("a[href]")?t:t.find("a[href]").eq(0),o=i.attr("href")||!1,a=i.attr("target")||!1,r=(n.html(),0=c.minCharacters},results:function(){return 0!==o.length&&""!=o.html()}},clear:{cache:function(e){var t=h.data(u.cache);e?e&&t&&t[e]&&(f.debug("Removing value from cache",e),delete t[e],h.data(u.cache,t)):(f.debug("Clearing cache",e),h.removeData(u.cache))}},read:{cache:function(e){var t=h.data(u.cache);return!!c.cache&&(f.verbose("Checking cache for generated html for query",e),"object"==typeof t&&t[e]!==D&&t[e])}},create:{categoryResults:function(e){var n={};return E.each(e,function(e,t){t.category&&(n[t.category]===D?(f.verbose("Creating new category of results",t.category),n[t.category]={name:t.category,results:[t]}):n[t.category].results.push(t))}),n},id:function(e,t){var n,i=e+1;return t!==D?(n=String.fromCharCode(97+t)+i,f.verbose("Creating category result id",n)):(n=i,f.verbose("Creating result id",n)),n},results:function(){0===o.length&&(o=E("").addClass(m.results).appendTo(h))}},inject:{result:function(e,t,n){f.verbose("Injecting result into results");var i=n!==D?o.children().eq(n).children(g.results).first().children(g.result).eq(t):o.children(g.result).eq(t);f.verbose("Injecting results metadata",i),i.data(u.result,e)},id:function(i){f.debug("Injecting unique ids into results");var o=0,a=0;return"category"===c.type?E.each(i,function(e,i){a=0,E.each(i.results,function(e,t){var n=i.results[e];n.id===D&&(n.id=f.create.id(a,o)),f.inject.result(n,a,o),a++}),o++}):E.each(i,function(e,t){var n=i[e];n.id===D&&(n.id=f.create.id(a)),f.inject.result(n,a),a++}),i}},save:{results:function(e){f.verbose("Saving current search results to metadata",e),h.data(u.results,e)}},write:{cache:function(e,t){var n=h.data(u.cache)!==D?h.data(u.cache):{};c.cache&&(f.verbose("Writing generated html to cache",e,t),n[e]=t,h.data(u.cache,n))}},addResults:function(e){if(E.isFunction(c.onResultsAdd)&&!1===c.onResultsAdd.call(o,e))return f.debug("onResultsAdd callback cancelled default action"),!1;e?(o.html(e),f.refreshResults(),c.selectFirstResult&&f.select.firstResult(),f.showResults()):f.hideResults(function(){o.empty()})},showResults:function(e){e=E.isFunction(e)?e:function(){},x||!f.is.visible()&&f.has.results()&&(f.can.transition()?(f.debug("Showing results with css animations"),o.transition({animation:c.transition+" in",debug:c.debug,verbose:c.verbose,duration:c.duration,onComplete:function(){e()},queue:!0})):(f.debug("Showing results with javascript"),o.stop().fadeIn(c.duration,c.easing)),c.onResultsOpen.call(o))},hideResults:function(e){e=E.isFunction(e)?e:function(){},f.is.visible()&&(f.can.transition()?(f.debug("Hiding results with css animations"),o.transition({animation:c.transition+" out",debug:c.debug,verbose:c.verbose,duration:c.duration,onComplete:function(){e()},queue:!0})):(f.debug("Hiding results with javascript"),o.stop().fadeOut(c.duration,c.easing)),c.onResultsClose.call(o))},generateResults:function(e){f.debug("Generating html from response",e);var t=c.templates[c.type],n=E.isPlainObject(e[a.results])&&!E.isEmptyObject(e[a.results]),i=E.isArray(e[a.results])&&0 .message",category:".category",result:".result",title:".title, .name"},templates:{escape:function(e){var t={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"};return/[&<>"'`]/.test(e)?e.replace(/[&<>"'`]/g,function(e){return t[e]}):e},message:function(e,t){var n="";return e!==D&&t!==D&&(n+='