Compare commits

..

81 commits

Author SHA1 Message Date
matrss
b5ee78a3d0 Forgejo-aneksajo branding (#71)
Some checks failed
/ build-oci-image (rootful) (push) Has been cancelled
/ build-oci-image (rootless) (push) Has been cancelled
/ release (push) Has been cancelled
testing / backend-checks (push) Has been cancelled
testing / frontend-checks (push) Has been cancelled
testing / test-unit (push) Has been cancelled
testing / test-e2e (push) Has been cancelled
testing / test-remote-cacher (redis) (push) Has been cancelled
testing / test-remote-cacher (valkey) (push) Has been cancelled
testing / test-remote-cacher (garnet) (push) Has been cancelled
testing / test-remote-cacher (redict) (push) Has been cancelled
testing / test-mysql (push) Has been cancelled
testing / test-pgsql (push) Has been cancelled
testing / test-sqlite (push) Has been cancelled
testing / security-check (push) Has been cancelled
The original logo was created by Caesar Schinas and is licensed under
the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA
4.0) license.

This implies permission to remix.

Source: https://codeberg.org/forgejo/governance/src/branch/main/branding#logo

The git-annex logo is covered by

```
Copyright: 2007 Henrik Nyh <http://henrik.nyh.se/>
           2010 Joey Hess <id@joeyh.name>
           2013 John Lawrence
           2024 Yann Büchau <nobodyinperson at posteo de>
License: other
  Free to modify and redistribute with due credit, and obviously free to use.
```

Source: https://git-annex.branchable.com/logo/
Co-authored-by: Michael Hanke <michael.hanke@gmail.com>
Reviewed-on: https://codeberg.org/forgejo-aneksajo/forgejo-aneksajo/pulls/71
2025-04-10 12:52:29 +00:00
Matthias Riße
cc83c8c289 fix: set git identity for p2phttp processes (#70)
Some checks failed
/ build-oci-image (rootful) (push) Has been cancelled
/ build-oci-image (rootless) (push) Has been cancelled
Integration tests for the release process / release-simulation (push) Has been cancelled
/ release (push) Has been cancelled
testing / backend-checks (push) Has been cancelled
testing / frontend-checks (push) Has been cancelled
testing / test-unit (push) Has been cancelled
testing / test-e2e (push) Has been cancelled
testing / test-remote-cacher (redis) (push) Has been cancelled
testing / test-remote-cacher (valkey) (push) Has been cancelled
testing / test-remote-cacher (garnet) (push) Has been cancelled
testing / test-remote-cacher (redict) (push) Has been cancelled
testing / test-mysql (push) Has been cancelled
testing / test-pgsql (push) Has been cancelled
testing / test-sqlite (push) Has been cancelled
testing / security-check (push) Has been cancelled
In some situations it could happen that `git annex p2phttp` needs some
kind of maintenance work resulting in a commit, but without a configured
git identity p2phttp would refuse to run. This could break p2phttp
support.

Setting `GIT_AUTHOR_{NAME,EMAIL}` should remedy this issue.

Fixes #69.

## Checklist

The [contributor guide](https://forgejo.org/docs/next/contributor/) contains information that will be helpful to first time contributors. There also are a few [conditions for merging Pull Requests in Forgejo repositories](https://codeberg.org/forgejo/governance/src/branch/main/PullRequestsAgreement.md). You are also welcome to join the [Forgejo development chatroom](https://matrix.to/#/#forgejo-development:matrix.org).

### Tests

- I added test coverage for Go changes...
  - [ ] in their respective `*_test.go` for unit tests.
  - [ ] in the `tests/integration` directory if it involves interactions with a live Forgejo server.
- I added test coverage for JavaScript changes...
  - [ ] in `web_src/js/*.test.js` if it can be unit tested.
  - [ ] in `tests/e2e/*.test.e2e.js` if it requires interactions with a live Forgejo server (see also the [developer guide for JavaScript testing](https://codeberg.org/forgejo/forgejo/src/branch/forgejo/tests/e2e/README.md#end-to-end-tests)).

### Documentation

- [ ] I created a pull request [to the documentation](https://codeberg.org/forgejo/docs) to explain to Forgejo users how to use this change.
- [x] I did not document these changes and I do not expect someone else to do it.

### Release notes

- [x] I do not want this change to show in the release notes.
- [ ] I want the title to show in the release notes with a link to this pull request.
- [ ] I want the content of the `release-notes/<pull request number>.md` to be be used for the release notes instead of the title.

Reviewed-on: https://codeberg.org/forgejo-aneksajo/forgejo-aneksajo/pulls/70
Co-authored-by: Matthias Riße <m.risse@fz-juelich.de>
Co-committed-by: Matthias Riße <m.risse@fz-juelich.de>
2025-03-24 09:06:59 +01:00
Matthias Riße
be84c51de7 feat: copy annexed files on pull request merge (#62)
This changes the PR merge process such that annexed files contained in the to-be-merged commits are copied from the head repository to the base repository as part of the merge, similar to how it is done for LFS files.

Fixes #11.

## Checklist

The [contributor guide](https://forgejo.org/docs/next/contributor/) contains information that will be helpful to first time contributors. There also are a few [conditions for merging Pull Requests in Forgejo repositories](https://codeberg.org/forgejo/governance/src/branch/main/PullRequestsAgreement.md). You are also welcome to join the [Forgejo development chatroom](https://matrix.to/#/#forgejo-development:matrix.org).

### Tests

- I added test coverage for Go changes...
  - [ ] in their respective `*_test.go` for unit tests.
  - [x] in the `tests/integration` directory if it involves interactions with a live Forgejo server.
- I added test coverage for JavaScript changes...
  - [ ] in `web_src/js/*.test.js` if it can be unit tested.
  - [ ] in `tests/e2e/*.test.e2e.js` if it requires interactions with a live Forgejo server (see also the [developer guide for JavaScript testing](https://codeberg.org/forgejo/forgejo/src/branch/forgejo/tests/e2e/README.md#end-to-end-tests)).

### Documentation

- [ ] I created a pull request [to the documentation](https://codeberg.org/forgejo/docs) to explain to Forgejo users how to use this change.
- [ ] I did not document these changes and I do not expect someone else to do it.

### Release notes

- [x] I do not want this change to show in the release notes.
- [ ] I want the title to show in the release notes with a link to this pull request.
- [ ] I want the content of the `release-notes/<pull request number>.md` to be be used for the release notes instead of the title.

Reviewed-on: https://codeberg.org/forgejo-aneksajo/forgejo-aneksajo/pulls/62
Co-authored-by: Matthias Riße <m.risse@fz-juelich.de>
Co-committed-by: Matthias Riße <m.risse@fz-juelich.de>
2025-03-24 09:06:59 +01:00
Matthias Riße
5f1f4f7a87 fix: improve git-annex UUID cache update times (#65)
Globbing for the config files is marginally faster than walking the
directory and checking for config files. Replacing the expensive calls
to `git config` for each repository with reading the repository's config
as an ini file is two orders of magnitude faster.

All in all this reduces the required time initializing the cache for
approx. 3000 repositories from approx. 5s to 50ms.

The server startup now also logs how long the cache update took and the
cache update is only done if p2phttp support is not disabled, because
p2phttp support is currently the only feature that requires the UUID
cache.

Fixes #63, fixes #64.

## Checklist

The [contributor guide](https://forgejo.org/docs/next/contributor/) contains information that will be helpful to first time contributors. There also are a few [conditions for merging Pull Requests in Forgejo repositories](https://codeberg.org/forgejo/governance/src/branch/main/PullRequestsAgreement.md). You are also welcome to join the [Forgejo development chatroom](https://matrix.to/#/#forgejo-development:matrix.org).

### Tests

- I added test coverage for Go changes...
  - [ ] in their respective `*_test.go` for unit tests.
  - [ ] in the `tests/integration` directory if it involves interactions with a live Forgejo server.
- I added test coverage for JavaScript changes...
  - [ ] in `web_src/js/*.test.js` if it can be unit tested.
  - [ ] in `tests/e2e/*.test.e2e.js` if it requires interactions with a live Forgejo server (see also the [developer guide for JavaScript testing](https://codeberg.org/forgejo/forgejo/src/branch/forgejo/tests/e2e/README.md#end-to-end-tests)).

### Documentation

- [ ] I created a pull request [to the documentation](https://codeberg.org/forgejo/docs) to explain to Forgejo users how to use this change.
- [x] I did not document these changes and I do not expect someone else to do it.

### Release notes

- [x] I do not want this change to show in the release notes.
- [ ] I want the title to show in the release notes with a link to this pull request.
- [ ] I want the content of the `release-notes/<pull request number>.md` to be be used for the release notes instead of the title.

Reviewed-on: https://codeberg.org/forgejo-aneksajo/forgejo-aneksajo/pulls/65
Co-authored-by: Matthias Riße <m.risse@fz-juelich.de>
Co-committed-by: Matthias Riße <m.risse@fz-juelich.de>
2025-03-24 09:06:59 +01:00
Matthias Riße
e741b44667 Use annexed content for comparison in diffs (#57)
This makes it such that annexed files are treated like plain git files
in comparisons (e.g. the diff of a commit).

It also changes the image diff viewer to show a more reasonable error
message when one of the annexed files under comparison is missing.

Fixes #56.

Reviewed-on: https://codeberg.org/forgejo-aneksajo/forgejo-aneksajo/pulls/57
Co-authored-by: Matthias Riße <m.risse@fz-juelich.de>
Co-committed-by: Matthias Riße <m.risse@fz-juelich.de>
2025-03-24 09:06:59 +01:00
Matthias Riße
85812d8b01 Invalidate outdated annex UUID cache entries (#60)
The previous implementation could lead to errors e.g. when a repository
was removed and a new one with a new UUID was created under the same
name. This now checks the validity of the retrieved cache entry every
time and invalidates the cache if necessary.

Reviewed-on: https://codeberg.org/forgejo-aneksajo/forgejo-aneksajo/pulls/60
Co-authored-by: Matthias Riße <m.risse@fz-juelich.de>
Co-committed-by: Matthias Riße <m.risse@fz-juelich.de>
2025-03-24 09:06:59 +01:00
Matthias Riße
24e2a6f41d Pre-populate the git-annex UUID cache at startup (#59)
This eliminates the wait time for the first p2phttp connection since
server startup at the cost of adding that time to the startup itself.

Reviewed-on: https://codeberg.org/forgejo-aneksajo/forgejo-aneksajo/pulls/59
Co-authored-by: Matthias Riße <m.risse@fz-juelich.de>
Co-committed-by: Matthias Riße <m.risse@fz-juelich.de>
2025-03-24 09:06:59 +01:00
Matthias Riße
4521f8f35c Cache git-annex UUID to repository path mappings (#54)
Always walking the filesystem and searching for UUIDs slowed p2phttp
operations down significantly on a production server with more than a
handful of repositories. This caching strategy ensures that only the
first call is rather slow, and subsequent ones should be much faster.

This should better be implemented as a background job, but for now this
is a simple solution to the problem.

Fixes #53.

Reviewed-on: https://codeberg.org/forgejo-aneksajo/forgejo-aneksajo/pulls/54
Co-authored-by: Matthias Riße <m.risse@fz-juelich.de>
Co-committed-by: Matthias Riße <m.risse@fz-juelich.de>
2025-03-24 09:06:59 +01:00
Matthias Riße
ea1ba91e6e Explicitly set http(s) default ports in annex.url (#55)
Otherwise, git-annex tries to use its own default port (9417) and fails.

Fixes #52.

Reviewed-on: https://codeberg.org/forgejo-aneksajo/forgejo-aneksajo/pulls/55
Co-authored-by: Matthias Riße <m.risse@fz-juelich.de>
Co-committed-by: Matthias Riße <m.risse@fz-juelich.de>
2025-03-24 09:06:59 +01:00
Matthias Riße
0e5e06f75a Fix Forgejo version in published OCI images (#51)
The Forgejo version is derived from the git history, so the image build
needs to happen in the context of a full repository clone.

Also, the post-processing of the version string needs to remove the
second occurrence of "-g", as the first one is now part of the added
"-git-annex" part.

Reviewed-on: https://codeberg.org/forgejo-aneksajo/forgejo-aneksajo/pulls/51
Co-authored-by: Matthias Riße <m.risse@fz-juelich.de>
Co-committed-by: Matthias Riße <m.risse@fz-juelich.de>
2025-03-24 09:06:59 +01:00
Matthias Riße
b1c7251690 Add an OCI image build and publish workflow (#50)
Fixes #49.

Reviewed-on: https://codeberg.org/forgejo-aneksajo/forgejo-aneksajo/pulls/50
Co-authored-by: Matthias Riße <m.risse@fz-juelich.de>
Co-committed-by: Matthias Riße <m.risse@fz-juelich.de>
2025-03-24 09:06:59 +01:00
Matthias Riße
795047adac Simplify git blob to annex key lookup (#43)
Fixes #27.

Reviewed-on: https://codeberg.org/matrss/forgejo-aneksajo/pulls/43
Co-authored-by: Matthias Riße <m.risse@fz-juelich.de>
Co-committed-by: Matthias Riße <m.risse@fz-juelich.de>
2025-03-24 09:06:59 +01:00
Matthias Riße
18df280fc1 Add git-annex p2phttp support (#42)
This adds a new endpoint under `/git-annex-p2phttp` which acts as an
authenticating proxy to git-annex' p2phttp server. This makes it
possible to set `annex+<server-url>/git-annex-p2phttp` as
`remote.<name>.annexurl` and use git-annex fully over http(s) with the
normal credentials and access tokens provided by Forgejo.

Fixes #25.

Reviewed-on: https://codeberg.org/matrss/forgejo-aneksajo/pulls/42
Co-authored-by: Matthias Riße <m.risse@fz-juelich.de>
Co-committed-by: Matthias Riße <m.risse@fz-juelich.de>
2025-03-24 09:06:59 +01:00
Matthias Riße
26ecdc330b Add tests for git annex drop (#47)
This adds some rudimentary tests that drop files in a repository's clone
as well as from a repository on Forgejo.

Fixes #4.

Reviewed-on: https://codeberg.org/matrss/forgejo-aneksajo/pulls/47
Co-authored-by: Matthias Riße <m.risse@fz-juelich.de>
Co-committed-by: Matthias Riße <m.risse@fz-juelich.de>
2025-03-24 09:06:59 +01:00
Matthias Riße
9d950c48a0 Add git-annex' testremote to the test suite (#48)
The `git annex testremote` command runs a built-in set of tests against
a remote. It cannot hurt to check our implementation of a git-annex
remote against it too.

Reviewed-on: https://codeberg.org/matrss/forgejo-aneksajo/pulls/48
Co-authored-by: Matthias Riße <m.risse@fz-juelich.de>
Co-committed-by: Matthias Riße <m.risse@fz-juelich.de>
2025-03-24 09:06:59 +01:00
Matthias Riße
90fea4b901 Only upload to annex in doAnnexUploadTest (#46)
The previous implementation both uploaded to the annex and pushed to the
git repository. This meant that the tests checking that uploads without
permission fail actually could pass when the git push failed but the
git-annex upload didn't. The tests didn't catch the situation where
unauthorized users could modify the annex.

Reviewed-on: https://codeberg.org/matrss/forgejo-aneksajo/pulls/46
Co-authored-by: Matthias Riße <m.risse@fz-juelich.de>
Co-committed-by: Matthias Riße <m.risse@fz-juelich.de>
2025-03-24 09:06:59 +01:00
Matthias Riße
1e539805da Use PATH when looking for git commands (#44)
This fixes some issues when using a git-annex that is installed in a
different location than where git is installed, e.g. when using the
git-annex-standalone release or one installed with nix.

Reviewed-on: https://codeberg.org/matrss/forgejo-aneksajo/pulls/44
Co-authored-by: Matthias Riße <m.risse@fz-juelich.de>
Co-committed-by: Matthias Riße <m.risse@fz-juelich.de>
2025-03-24 09:06:59 +01:00
Matthias Riße
66e54e33fe Allow anonymous HEAD requests to annex/objects (#41)
Git-annex emits HEAD requests for keys while trying to drop them from a
repository that was cloned via http. Forgejo asked for authentication
for these HEAD requests. This meant that cloning and getting files was
possible without authentication, but dropping was not.

Since the response to a HEAD request is a subset of the response to a
GET request it is safe to make those unauthenticated as well. That is
what this change does, although limited to the
:username/:reponame/annex/objects endpoint.

Fixes #40.

Reviewed-on: https://codeberg.org/matrss/forgejo-aneksajo/pulls/41
Co-authored-by: Matthias Riße <m.risse@fz-juelich.de>
Co-committed-by: Matthias Riße <m.risse@fz-juelich.de>
2025-03-24 09:06:59 +01:00
Michael Hanke
195388ba62 Elevate external markup renderer interface for annexed file content (#36)
Previously, an external renderer that matched on an annexed file would
only see its content streamed via `STDIN`, or a temporary file with a copy
of its content would be generated and passed-by-filepath (with
`IS_INPUT_FILE=true`). Whether that happens, is also subject to
`MAX_DISPLAY_FILE_SIZE` (which defaults to 8MB).

This was problematic, because annexed files tend to be large. Moreover,
if present, they already exist as write-protected files on the
file-system. Creating a copy is both expensive and serves no particular
purpose.

This commit changes how external renderers are called.

1) With `IS_INPUT_FILE=true`, the renderer is passed the true location
   of an annex key, if present, and an empty path, if not.
2) The original, repository-relative path of the rendering target is
   made available to the renderer via the `GITEA_RELATIVE_PATH`
   environment variable.

To achieve a lean implementation, the `Blob` of the rendering target
is passed on to the `RenderContext` (because the implementation of
the annex-related functionality is centered on this dtype.

This change makes it less costly to increase `MAX_DISPLAY_FILE_SIZE`,
in order to make large, annexed files eligible for markup rendering,
because no content copies will be made any longer.

External renderers can now use the original file path, with the full
original filename, including extensions, for decision making. For
example, to detect particular compression formats based in a file name
extension, or to alter the rendering based on contextual information
encoded in the file path (e.g., a multi-file data structure with a
particular organization pattern).

Apart from the additional environment variable, there is no change to
the handling of renderers that take their input via `STDIN` (i.e.,
`IS_INPUT_FILE=false`).

Fixes #35.

Reviewed-on: https://codeberg.org/matrss/forgejo-aneksajo/pulls/36
Reviewed-by: matrss <matrss@noreply.codeberg.org>
Co-authored-by: Michael Hanke <michael.hanke@gmail.com>
Co-committed-by: Michael Hanke <michael.hanke@gmail.com>
2025-03-24 09:06:59 +01:00
Matthias Riße
57a8ac3a31 Change the icon for annexed files to file-binary (#29)
Fixes #26.

Reviewed-on: https://codeberg.org/matrss/forgejo-aneksajo/pulls/29
Co-authored-by: Matthias Riße <m.risse@fz-juelich.de>
Co-committed-by: Matthias Riße <m.risse@fz-juelich.de>
2025-03-24 09:06:59 +01:00
Matthias Riße
a9528fcdbd Improve views for annexed but missing files (#28)
Previously, trying to view files that were annexed, but missing, just
led to an uninformative error 500. This was rather confusing.

With these changes it now shows the pointer target instead of the
(missing) content of the file, and also indicates this situation in the
"stored with git-annex" message. For semantic correctness views for
missing files return a 404 instead of a 200, as they would with the
content present.

Fixes #7, fixes #13.

Reviewed-on: https://codeberg.org/matrss/forgejo-aneksajo/pulls/28
Co-authored-by: Matthias Riße <m.risse@fz-juelich.de>
Co-committed-by: Matthias Riße <m.risse@fz-juelich.de>
2025-03-24 09:06:59 +01:00
Michael Hanke
1c7e2bce53 Add git-annex also to the rootless container (#24)
Same as 89f8aa0bf5, but for the rootless container.

Reviewed-on: https://codeberg.org/matrss/forgejo-aneksajo/pulls/24
Reviewed-by: matrss <matrss@noreply.codeberg.org>
Co-authored-by: Michael Hanke <michael.hanke@gmail.com>
Co-committed-by: Michael Hanke <michael.hanke@gmail.com>
2025-03-24 09:06:59 +01:00
Matthias Riße
2d00e46560 Git-annex web uploads (#21)
This implements support for uploading files into the annex using the web
interface.

If a repository is a git-annex-enabled repository all files will be
added to it using git annex add. This means that the repository's
configuration for what to put into the annex (annex.largefiles in
gitattributes) will be respected.

Plain git repositories without git-annex will work as before, directly
uploading to git.

Fixes #5.

Reviewed-on: https://codeberg.org/matrss/forgejo-aneksajo/pulls/21
Co-authored-by: Matthias Riße <m.risse@fz-juelich.de>
Co-committed-by: Matthias Riße <m.risse@fz-juelich.de>
2025-03-24 09:06:12 +01:00
Matthias Riße
a3b7d9242e Error if git-annex is enabled but missing (#16)
Copied from https://github.com/neuropoly/gitea/pull/47

This adds a check so that if `setting.Annex.Enabled` is true and git-annex is not in the PATH Forgejo will abort on startup with a reasonable error message.

Fixes #15.

Reviewed-on: https://codeberg.org/matrss/forgejo-aneksajo/pulls/16
Co-authored-by: Matthias Riße <m.risse@fz-juelich.de>
Co-committed-by: Matthias Riße <m.risse@fz-juelich.de>
2025-03-24 09:06:12 +01:00
Matthias Riße
34af470aa8 Add git-annex to docker image 2025-03-24 09:06:12 +01:00
Matthias Riße
21bf0a8fe0 Adapt patch to upstream changes
Test with different objectFormats.
2025-03-24 09:06:12 +01:00
Nick
65028f6abf git-annex: views for annex files
This updates the repo index/file view endpoints so annex files match the way
LFS files are rendered, making annexed files accessible via the web instead of
being black boxes only accessible by git clone.

This mostly just duplicates the existing LFS logic. It doesn't try to combine itself
with the existing logic, to make merging with upstream easier. If upstream ever
decides to accept, I would like to try to merge the redundant logic.

The one bit that doesn't directly copy LFS is my choice to hide annex-symlinks.
LFS files are always _pointer files_ and therefore always render with the "file"
icon and no special label, but annex files come in two flavours: symlinks or
pointer files. I've conflated both kinds to try to give a consistent experience.

The tests in here ensure the correct download link (/media, from the last PR)
renders in both the toolbar and, if a binary file (like most annexed files will be),
in the main pane, but it also adds quite a bit of code to make sure text files
that happen to be annexed are dug out and rendered inline like LFS files are.
2025-03-24 09:06:12 +01:00
Matthias Riße
d2c9ac7697 Adapt patch to upstream changes
Use tests.FileCmp instead of util.FileCmp.
2025-03-24 09:02:04 +01:00
Matthias Riße
e335b49274 Adapt patch to upstream changes
Test with different objectFormats.
2025-03-24 09:02:04 +01:00
Nick
ae30c0fa0e git-annex: make /media/ download annexed content
Previously, Gitea's LFS support allowed direct-downloads of LFS content,
via http://$HOSTNAME:$PORT/$USER/$REPO/media/branch/$BRANCH/$FILE
Expand that grace to git-annex too. Now /media should provide the
relevant *content* from the .git/annex/objects/ folder.

This adds tests too. And expands the tests to try symlink-based annexing,
since /media implicitly supports both that and pointer-file-based annexing.
2025-03-24 09:02:04 +01:00
Matthias Riße
62390abab9 Adapt patch to upstream changes
The git repository must be closed after using it. Without this change
some tests started to fail due to the lingering repository running into
a timeout.
2025-03-24 09:02:04 +01:00
Nick
096cd1a6c8 git-annex: create modules/annex
This moves the `annexObjectPath()` helper out of the tests and into a
dedicated sub-package as `annex.ContentLocation()`, and expands it with
`.Pointer()` (which validates using `git annex examinekey`),
`.IsAnnexed()` and `.Content()` to make it a more useful module.

The tests retain their own wrapper version of `ContentLocation()`
because I tried to follow close to the API modules/lfs uses, which in
terms of abstract `git.Blob` and `git.TreeEntry` objects, not in terms
of `repoPath string`s which are more convenient for the tests.
2025-03-24 09:02:04 +01:00
Matthias Riße
75794e1ab9 Adapt patch to upstream changes
The "context_service" import was changed to use the default name of just
"context". The patch set had to be adapted for that.
2025-03-24 09:02:03 +01:00
Matthias Riße
383164e808 Adapt patch to upstream changes
Usage of `path` was replaced by `path/filepath` in upstream forgejo, and
it made sense to use that as well where `path` was previously used. The
`setHeaderCacheForever` function and the `sendFile` method had their
signature changed.
2025-03-24 09:02:03 +01:00
Matthias Riße
e05f96cfaf Fix exit code check for git command
The err.IsExitCode method was changed to a function IsErrorExitCode
taking err as its first argument in
1e7a6483b8.
2025-03-24 09:02:03 +01:00
Matthias Riße
1c84972565 Replace m.GetOptions with m.Methods
This applies the same changes that were done in
265cd70bdb to the git-annex specific
routes as well.
2025-03-24 09:02:03 +01:00
Nick
9d902d16c6 git-annex: support downloading over HTTP
This makes HTTP symmetric with SSH clone URLs.

This gives us the fancy feature of _anonymous_ downloads,
so people can access datasets without having to set up an
account or manage ssh keys.

Previously, to access "open access" data shared this way,
users would need to:

  1. Create an account on gitea.example.com
  2. Create ssh keys
  3. Upload ssh keys (and make sure to find and upload the correct file)
  4. `git clone git@gitea.example.com:user/dataset.git`
  5. `cd dataset`
  6. `git annex get`

This cuts that down to just the last three steps:

  1. `git clone https://gitea.example.com/user/dataset.git`
  2. `cd dataset`
  3. `git annex get`

This is significantly simpler for downstream users, especially for those
unfamiliar with the command line.

Unfortunately there's no uploading. While git-annex supports uploading
over HTTP to S3 and some other special remotes, it seems to fail on a
_plain_ HTTP remote. See https://github.com/neuropoly/gitea/issues/7
and https://git-annex.branchable.com/forum/HTTP_uploads/#comment-ce28adc128fdefe4c4c49628174d9b92.

This is not a major loss since no one wants uploading to be anonymous anyway.

To support private repos, I had to hunt down and patch a secret extra security
corner that Gitea only applies to HTTP for some reason (services/auth/basic.go).

This was guided by https://git-annex.branchable.com/tips/setup_a_public_repository_on_a_web_site/

Fixes https://github.com/neuropoly/gitea/issues/3

Co-authored-by: Mathieu Guay-Paquet <mathieu.guaypaquet@polymtl.ca>
2025-03-24 09:02:03 +01:00
Nick
fc675b2ede git-annex: add configuration setting [annex].ENABLED
Fixes https://github.com/neuropoly/gitea/issues/8

Co-authored-by: Mathieu Guay-Paquet <mathieu.guaypaquet@gmail.com>
2025-03-24 09:02:03 +01:00
Matthias Riße
48fdf7540d Fix failing tests
Multiple tests that worked fine on v1.20.4-1 started to fail after the
rebase onto v1.20.5-1. These tests are:
- TestGitAnnexPermissions/Private/Owner/HTTP/Init
- TestGitAnnexPermissions/Private/Owner/HTTP/Download
- TestGitAnnexPermissions/Private/Writer/HTTP/Init
- TestGitAnnexPermissions/Private/Writer/HTTP/Download
- TestGitAnnexPermissions/Private/Reader/HTTP/Init
- TestGitAnnexPermissions/Private/Reader/HTTP/Download

What these tests have in common is that they all operate on a private
repository via http with authentication.

They broke at some point between v1.20.4-1 and v1.20.5-1, so I did a
bisect between these two points running the offending tests. This
brought me to the conclusion that
ee48c0d5ea introduced the issue.

The thing is, this commit does not change any code, it only changes the
test environment. Among other things that didn't look as suspicious, it
changes the container image from a bespoke test_env image based on
debian bullseye to a node image based on debian bookworm. Obviously,
this means that there are many version differences between the two.

The first one I looked at was git. The previous bullseye image used a
manually installed git version 2.40.0, while the bookworm image has
2.39.2 installed. Updating git in the new image did not fix the issue,
however.

The next thing I looked at was the git-annex version. Bullseye had
8.20210223 installed and worked, while bookworm used 10.20230126 when
the tests broke. So I tried my luck upgrading to a more recent version
via neurodebian (10.20240227-1~ndall+1). This still worked fine on
bullseye and now also works fine on bookworm.

I have no idea why this specific version of git-annex broke the tests,
but at least there was a commit to pinpoint this to, which isn't always
the case with docker images silently changing beneath you...

Below are the versions as they are reported by git and git-annex:

bullseye (works):

    git version 2.30.2
    git-annex version: 8.20210223
    build flags: Assistant Webapp Pairing Inotify DBus DesktopNotify TorrentParser MagicMime Feeds Testsuite S3 WebDAV
    dependency versions: aws-0.22 bloomfilter-2.0.1.0 cryptonite-0.26 DAV-1.3.4 feed-1.3.0.1 ghc-8.8.4 http-client-0.6.4.1 persistent-sqlite-2.10.6.2 torrent-10000.1.1 uuid-1.3.13 yesod-1.6.1.0
    key/value backends: SHA256E SHA256 SHA512E SHA512 SHA224E SHA224 SHA384E SHA384 SHA3_256E SHA3_256 SHA3_512E SHA3_512 SHA3_224E SHA3_224 SHA3_384E SHA3_384 SKEIN256E SKEIN256 SKEIN512E SKEIN512 BLAKE2B256E BLAKE2B256 BLAKE2B512E BLAKE2B512 BLAKE2B160E BLAKE2B160 BLAKE2B224E BLAKE2B224 BLAKE2B384E BLAKE2B384 BLAKE2BP512E BLAKE2BP512 BLAKE2S256E BLAKE2S256 BLAKE2S160E BLAKE2S160 BLAKE2S224E BLAKE2S224 BLAKE2SP256E BLAKE2SP256 BLAKE2SP224E BLAKE2SP224 SHA1E SHA1 MD5E MD5 WORM URL X*
    remote types: git gcrypt p2p S3 bup directory rsync web bittorrent webdav adb tahoe glacier ddar git-lfs httpalso borg hook external
    operating system: linux x86_64
    supported repository versions: 8
    upgrade supported from repository versions: 0 1 2 3 4 5 6 7

bullseye + git-annex from neurodebian (works):

    git version 2.30.2
    git-annex version: 10.20240227-1~ndall+1
    build flags: Assistant Webapp Pairing Inotify DBus DesktopNotify TorrentParser MagicMime Benchmark Feeds Testsuite S3 WebDAV
    dependency versions: aws-0.22.1 bloomfilter-2.0.1.0 cryptonite-0.29 DAV-1.3.4 feed-1.3.2.1 ghc-9.0.2 http-client-0.7.13.1 persistent-sqlite-2.13.1.0 torrent-10000.1.1 uuid-1.3.15 yesod-1.6.2.1
    key/value backends: SHA256E SHA256 SHA512E SHA512 SHA224E SHA224 SHA384E SHA384 SHA3_256E SHA3_256 SHA3_512E SHA3_512 SHA3_224E SHA3_224 SHA3_384E SHA3_384 SKEIN256E SKEIN256 SKEIN512E SKEIN512 BLAKE2B256E BLAKE2B256 BLAKE2B512E BLAKE2B512 BLAKE2B160E BLAKE2B160 BLAKE2B224E BLAKE2B224 BLAKE2B384E BLAKE2B384 BLAKE2BP512E BLAKE2BP512 BLAKE2S256E BLAKE2S256 BLAKE2S160E BLAKE2S160 BLAKE2S224E BLAKE2S224 BLAKE2SP256E BLAKE2SP256 BLAKE2SP224E BLAKE2SP224 SHA1E SHA1 MD5E MD5 WORM URL X*
    remote types: git gcrypt p2p S3 bup directory rsync web bittorrent webdav adb tahoe glacier ddar git-lfs httpalso borg hook external
    operating system: linux x86_64
    supported repository versions: 8 9 10
    upgrade supported from repository versions: 0 1 2 3 4 5 6 7 8 9 10

bookworm (fails):

    git version 2.39.2
    git-annex version: 10.20230126
    build flags: Assistant Webapp Pairing Inotify DBus DesktopNotify TorrentParser MagicMime Benchmark Feeds Testsuite S3 WebDAV
    dependency versions: aws-0.22.1 bloomfilter-2.0.1.0 cryptonite-0.29 DAV-1.3.4 feed-1.3.2.1 ghc-9.0.2 http-client-0.7.13.1 persistent-sqlite-2.13.1.0 torrent-10000.1.1 uuid-1.3.15 yesod-1.6.2.1
    key/value backends: SHA256E SHA256 SHA512E SHA512 SHA224E SHA224 SHA384E SHA384 SHA3_256E SHA3_256 SHA3_512E SHA3_512 SHA3_224E SHA3_224 SHA3_384E SHA3_384 SKEIN256E SKEIN256 SKEIN512E SKEIN512 BLAKE2B256E BLAKE2B256 BLAKE2B512E BLAKE2B512 BLAKE2B160E BLAKE2B160 BLAKE2B224E BLAKE2B224 BLAKE2B384E BLAKE2B384 BLAKE2BP512E BLAKE2BP512 BLAKE2S256E BLAKE2S256 BLAKE2S160E BLAKE2S160 BLAKE2S224E BLAKE2S224 BLAKE2SP256E BLAKE2SP256 BLAKE2SP224E BLAKE2SP224 SHA1E SHA1 MD5E MD5 WORM URL X*
    remote types: git gcrypt p2p S3 bup directory rsync web bittorrent webdav adb tahoe glacier ddar git-lfs httpalso borg hook external
    operating system: linux x86_64
    supported repository versions: 8 9 10
    upgrade supported from repository versions: 0 1 2 3 4 5 6 7 8 9 10

bookworm + git-annex from neurodebian (works):

    git version 2.39.2
    git-annex version: 10.20240227-1~ndall+1
    build flags: Assistant Webapp Pairing Inotify DBus DesktopNotify TorrentParser MagicMime Benchmark Feeds Testsuite S3 WebDAV
    dependency versions: aws-0.22.1 bloomfilter-2.0.1.0 cryptonite-0.29 DAV-1.3.4 feed-1.3.2.1 ghc-9.0.2 http-client-0.7.13.1 persistent-sqlite-2.13.1.0 torrent-10000.1.1 uuid-1.3.15 yesod-1.6.2.1
    key/value backends: SHA256E SHA256 SHA512E SHA512 SHA224E SHA224 SHA384E SHA384 SHA3_256E SHA3_256 SHA3_512E SHA3_512 SHA3_224E SHA3_224 SHA3_384E SHA3_384 SKEIN256E SKEIN256 SKEIN512E SKEIN512 BLAKE2B256E BLAKE2B256 BLAKE2B512E BLAKE2B512 BLAKE2B160E BLAKE2B160 BLAKE2B224E BLAKE2B224 BLAKE2B384E BLAKE2B384 BLAKE2BP512E BLAKE2BP512 BLAKE2S256E BLAKE2S256 BLAKE2S160E BLAKE2S160 BLAKE2S224E BLAKE2S224 BLAKE2SP256E BLAKE2SP256 BLAKE2SP224E BLAKE2SP224 SHA1E SHA1 MD5E MD5 WORM URL X*
    remote types: git gcrypt p2p S3 bup directory rsync web bittorrent webdav adb tahoe glacier ddar git-lfs httpalso borg hook external
    operating system: linux x86_64
    supported repository versions: 8 9 10
    upgrade supported from repository versions: 0 1 2 3 4 5 6 7 8 9 10
2025-03-24 09:02:03 +01:00
Matthias Riße
d8d5ad4a19 Install git-annex in the testing workflow 2025-03-24 09:02:03 +01:00
Matthias Riße
28a9ce0083 Adapt patch to upstream changes 2025-03-24 09:02:03 +01:00
Matthias Riße
5da96c5f43 Adapt patch to upstream changes
A dead code check started to complain because FileCmp was only used in
tests. Moved the function to test_utils.
2025-03-24 09:02:03 +01:00
Matthias Riße
917375146a Adapt patch to upstream changes
Repository creation now expects an objectFormat to be specified for git.
2025-03-24 09:02:03 +01:00
Nick
c4cb418f57 git-annex tests
Fixes https://github.com/neuropoly/gitea/issues/11

Tests:

* `git annex init`
* `git annex copy --from origin`
* `git annex copy --to origin`

over:

* ssh

for:

* the owner
* a collaborator
* a read-only collaborator
* a stranger

in a

* public repo
* private repo

And then confirms:

* Deletion of the remote repo (to ensure lockdown isn't messing with us: https://git-annex.branchable.com/internals/lockdown/#comment-0cc5225dc5abe8eddeb843bfd2fdc382)

------

To support all this:

* Add util.FileCmp()
* Patch withKeyFile() so it can be nested in other copies of itself

-------

Many thanks to Mathieu for giving style tips and catching several bugs,
including a subtle one in util.filecmp() which neutered it.

Co-authored-by: Mathieu Guay-Paquet <mathieu.guay-paquet@polymtl.ca>
Co-authored-by: Matthias Riße <m.risse@fz-juelich.de>
2025-03-24 09:02:03 +01:00
Nick Guenther
b2dee3ca0e git-annex support
[git-annex](https://git-annex.branchable.com/) is a more complicated cousin to
git-lfs, storing large files in an optional-download side content.  Unlike lfs,
it allows mixing and matching storage remotes, so the content remote(s) doesn't
need to be on the same server as the git remote, making it feasible to scatter
a collection across cloud storage, old harddrives, or anywhere else storage can
be scavenged.  Since this can get complicated, fast, it has a content-tracking
database (`git annex whereis`) to help find everything later.

The use-case we imagine for including it in Gitea is just the simple case, where
we're primarily emulating git-lfs: each repo has its large content at the same URL.

Our motivation is so we can self-host https://www.datalad.org/ datasets, which
currently are only hostable by fragilely scrounging together cloud storage --
and having to manage all the credentials associated with all the pieces -- or at
https://openneuro.org which is fragile in its own ways.

Supporting git-annex also allows multiple Gitea instance to be annex remotes for
each other, mirroring the content or otherwise collaborating the split up the
hosting costs.

Enabling
--------

TODO

HTTP
----

TODO

Permission Checking
-------------------

This tweaks the API in routers/private/serv.go to expose the calling user's
computed permission, instead of just returning HTTP 403.

This doesn't fit in super well. It's the opposite from how the git-lfs support is
done, where there's a complete list of possible subcommands and their matching
permission levels, and then the API compares the requested with the actual level
and returns HTTP 403 if the check fails.

But it's necessary. The main git-annex verbs, 'git-annex-shell configlist' and
'git-annex-shell p2pstdio' are both either read-only or read-write operations,
depending on the state on disk on either end of the connection and what the user
asked it to ask for, with no way to know before git-annex examines the situation.
So tell the level via GIT_ANNEX_READONLY and trust it to handle itself.

In the older Gogs version, the permission was directly read in cmd/serv.go:

```
mode, err = db.UserAccessMode(user.ID, repo)
```
- 966e925cf3/internal/cmd/serv.go (L334)

but in Gitea permission enforcement has been centralized in the API layer.
(perhaps so the cmd layer can avoid making direct DB connections?)

Deletion
--------

git-annex has this "lockdown" feature where it tries
really quite very hard to prevent you deleting its
data, to the point that even an rm -rf won't do it:
each file in annex/objects/ is nested inside a
folder with read-only permissions.

The recommended workaround is to run chmod -R +w when
you're sure you actually want to delete a repo. See
https://git-annex.branchable.com/internals/lockdown

So we edit util.RemoveAll() to do just that, so now
it's `chmod -R +w && rm -rf` instead of just `rm -rf`.
2025-03-24 09:02:03 +01:00
Matthias Riße
cafb54ba55 Fix name in package-lock.json
The frontend-checks job started failing because the declared name does
not match the repository name.
2025-03-24 09:02:03 +01:00
Matthias Riße
0b04df9ef4 Run testing workflow unconditionally 2025-03-24 09:02:03 +01:00
forgejo-backport-action
dde3f51c72 [v10.0/forgejo] fix: use correct input for strip slashes middleware (#7306)
**Backport:** https://codeberg.org/forgejo/forgejo/pulls/7295

- The router must use the escaped path in order to ensure correct functionality (at least, that is what they say). However `req.URL.Path` shouldn't be set to the escaped path, which is fixed in this patch.
- Simplify the logic and no longer try to use `rctx.RoutePath`, this is only useful if the middleware was placed after some routing parsing was done.
- Resolves forgejo/forgejo#7294
- Resolves forgejo/forgejo#7292
- Add unit test

<!--start release-notes-assistant-->

## Release notes
<!--URL:https://codeberg.org/forgejo/forgejo-->
- Bug fixes
  - [PR](https://codeberg.org/forgejo/forgejo/pulls/7295): <!--number 7295 --><!--line 0 --><!--description dXNlIGNvcnJlY3QgaW5wdXQgZm9yIHN0cmlwIHNsYXNoZXMgbWlkZGxld2FyZQ==-->use correct input for strip slashes middleware<!--description-->
<!--end release-notes-assistant-->

Co-authored-by: Gusted <postmaster@gusted.xyz>
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/7306
Co-authored-by: forgejo-backport-action <forgejo-backport-action@noreply.codeberg.org>
Co-committed-by: forgejo-backport-action <forgejo-backport-action@noreply.codeberg.org>
2025-03-22 17:30:28 +00:00
Renovate Bot
0f5182d0c6 Update module golang.org/x/net to v0.36.0 [SECURITY] (v10.0/forgejo) (#7303)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [golang.org/x/net](https://pkg.go.dev/golang.org/x/net) | require | minor | [`v0.33.0` -> `v0.36.0`](https://cs.opensource.google/go/x/net/+/refs/tags/v0.33.0...refs/tags/v0.36.0) |

---

> ⚠️ **Warning**
>
> Some dependencies could not be looked up. Check the Dependency Dashboard for more information.

---

### HTTP Proxy bypass using IPv6 Zone IDs in golang.org/x/net
[CVE-2025-22870](https://nvd.nist.gov/vuln/detail/CVE-2025-22870) / [GHSA-qxp5-gwg8-xv66](https://github.com/advisories/GHSA-qxp5-gwg8-xv66) / [GO-2025-3503](https://pkg.go.dev/vuln/GO-2025-3503)

<details>
<summary>More information</summary>

#### Details
Matching of hosts against proxy patterns can improperly treat an IPv6 zone ID as a hostname component. For example, when the NO_PROXY environment variable is set to "*.example.com", a request to "[::1%25.example.com]:80` will incorrectly match and not be proxied.

#### Severity
Unknown

#### References
- [https://go.dev/cl/654697](https://go.dev/cl/654697)
- [https://go.dev/issue/71984](https://go.dev/issue/71984)

This data is provided by [OSV](https://osv.dev/vulnerability/GO-2025-3503) and the [Go Vulnerability Database](https://github.com/golang/vulndb) ([CC-BY 4.0](https://github.com/golang/vulndb#license)).
</details>

---

### HTTP Proxy bypass using IPv6 Zone IDs in golang.org/x/net
[CVE-2025-22870](https://nvd.nist.gov/vuln/detail/CVE-2025-22870) / [GHSA-qxp5-gwg8-xv66](https://github.com/advisories/GHSA-qxp5-gwg8-xv66) / [GO-2025-3503](https://pkg.go.dev/vuln/GO-2025-3503)

<details>
<summary>More information</summary>

#### Details
Matching of hosts against proxy patterns can improperly treat an IPv6 zone ID as a hostname component. For example, when the NO_PROXY environment variable is set to "*.example.com", a request to "[::1%25.example.com]:80` will incorrectly match and not be proxied.

#### Severity
- CVSS Score: 4.4 / 10 (Medium)
- Vector String: `CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:L`

#### References
- [https://nvd.nist.gov/vuln/detail/CVE-2025-22870](https://nvd.nist.gov/vuln/detail/CVE-2025-22870)
- [https://go-review.googlesource.com/q/project:net](https://go-review.googlesource.com/q/project:net)
- [https://go.dev/cl/654697](https://go.dev/cl/654697)
- [https://go.dev/issue/71984](https://go.dev/issue/71984)
- [https://pkg.go.dev/vuln/GO-2025-3503](https://pkg.go.dev/vuln/GO-2025-3503)
- [http://www.openwall.com/lists/oss-security/2025/03/07/2](http://www.openwall.com/lists/oss-security/2025/03/07/2)

This data is provided by [OSV](https://osv.dev/vulnerability/GHSA-qxp5-gwg8-xv66) and the [GitHub Advisory Database](https://github.com/github/advisory-database) ([CC-BY 4.0](https://github.com/github/advisory-database/blob/main/LICENSE.md)).
</details>

---

### Configuration

📅 **Schedule**: Branch creation - "" (UTC), Automerge - "* 0-3 * * *" (UTC).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMDUuMSIsInVwZGF0ZWRJblZlciI6IjM5LjIwNS4xIiwidGFyZ2V0QnJhbmNoIjoidjEwLjAvZm9yZ2VqbyIsImxhYmVscyI6WyJkZXBlbmRlbmN5LXVwZ3JhZGUiLCJ0ZXN0L25vdC1uZWVkZWQiXX0=-->

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/7303
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
Co-authored-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
Co-committed-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
2025-03-22 16:47:19 +00:00
Renovate Bot
a35a3b6731 Update module golang.org/x/oauth2 to v0.27.0 [SECURITY] (v10.0/forgejo) (#7304)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [golang.org/x/oauth2](https://pkg.go.dev/golang.org/x/oauth2) | require | minor | [`v0.23.0` -> `v0.27.0`](https://cs.opensource.google/go/x/oauth2/+/refs/tags/v0.23.0...refs/tags/v0.27.0) |

---

> ⚠️ **Warning**
>
> Some dependencies could not be looked up. Check the Dependency Dashboard for more information.

---

### Unexpected memory consumption during token parsing in golang.org/x/oauth2
[CVE-2025-22868](https://nvd.nist.gov/vuln/detail/CVE-2025-22868) / [GO-2025-3488](https://pkg.go.dev/vuln/GO-2025-3488)

<details>
<summary>More information</summary>

#### Details
An attacker can pass a malicious malformed token which causes unexpected memory to be consumed during parsing.

#### Severity
Unknown

#### References
- [https://go.dev/cl/652155](https://go.dev/cl/652155)
- [https://go.dev/issue/71490](https://go.dev/issue/71490)

This data is provided by [OSV](https://osv.dev/vulnerability/GO-2025-3488) and the [Go Vulnerability Database](https://github.com/golang/vulndb) ([CC-BY 4.0](https://github.com/golang/vulndb#license)).
</details>

---

### Configuration

📅 **Schedule**: Branch creation - "" (UTC), Automerge - "* 0-3 * * *" (UTC).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMDUuMSIsInVwZGF0ZWRJblZlciI6IjM5LjIwNS4xIiwidGFyZ2V0QnJhbmNoIjoidjEwLjAvZm9yZ2VqbyIsImxhYmVscyI6WyJkZXBlbmRlbmN5LXVwZ3JhZGUiLCJ0ZXN0L25vdC1uZWVkZWQiXX0=-->

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/7304
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
Co-authored-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
Co-committed-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
2025-03-22 15:53:21 +00:00
Renovate Bot
76dfc75ed2 Update module github.com/golang-jwt/jwt/v5 to v5.2.2 [SECURITY] (v10.0/forgejo) (#7302)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [github.com/golang-jwt/jwt/v5](https://github.com/golang-jwt/jwt) | require | patch | `v5.2.1` -> `v5.2.2` |

---

> ⚠️ **Warning**
>
> Some dependencies could not be looked up. Check the Dependency Dashboard for more information.

---

### jwt-go allows excessive memory allocation during header parsing
[CVE-2025-30204](https://nvd.nist.gov/vuln/detail/CVE-2025-30204) / [GHSA-mh63-6h87-95cp](https://github.com/advisories/GHSA-mh63-6h87-95cp)

<details>
<summary>More information</summary>

#### Details
##### Summary

Function [`parse.ParseUnverified`](c035977d9e/parser.go (L138-L139)) currently splits (via a call to [strings.Split](https://pkg.go.dev/strings#Split)) its argument (which is untrusted data) on periods.

As a result, in the face of a malicious request whose _Authorization_ header consists of `Bearer ` followed by many period characters, a call to that function incurs allocations to the tune of O(n) bytes (where n stands for the length of the function's argument), with a constant factor of about 16. Relevant weakness: [CWE-405: Asymmetric Resource Consumption (Amplification)](https://cwe.mitre.org/data/definitions/405.html)

##### Details

See [`parse.ParseUnverified`](c035977d9e/parser.go (L138-L139))

##### Impact

Excessive memory allocation

#### Severity
- CVSS Score: 7.5 / 10 (High)
- Vector String: `CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H`

#### References
- [https://github.com/golang-jwt/jwt/security/advisories/GHSA-mh63-6h87-95cp](https://github.com/golang-jwt/jwt/security/advisories/GHSA-mh63-6h87-95cp)
- [0951d18428)
- [https://github.com/golang-jwt/jwt](https://github.com/golang-jwt/jwt)

This data is provided by [OSV](https://osv.dev/vulnerability/GHSA-mh63-6h87-95cp) and the [GitHub Advisory Database](https://github.com/github/advisory-database) ([CC-BY 4.0](https://github.com/github/advisory-database/blob/main/LICENSE.md)).
</details>

---

### Release Notes

<details>
<summary>golang-jwt/jwt (github.com/golang-jwt/jwt/v5)</summary>

### [`v5.2.2`](https://github.com/golang-jwt/jwt/releases/tag/v5.2.2)

[Compare Source](https://github.com/golang-jwt/jwt/compare/v5.2.1...v5.2.2)

#### What's Changed

-   Fixed https://github.com/golang-jwt/jwt/security/advisories/GHSA-mh63-6h87-95cp by [@&#8203;mfridman](https://github.com/mfridman)
-   Fixed some typos by [@&#8203;Ashikpaul](https://github.com/Ashikpaul) in https://github.com/golang-jwt/jwt/pull/382
-   build: add go1.22 to ci workflows by [@&#8203;mfridman](https://github.com/mfridman) in https://github.com/golang-jwt/jwt/pull/383
-   Bump golangci/golangci-lint-action from 4 to 5 by [@&#8203;dependabot](https://github.com/dependabot) in https://github.com/golang-jwt/jwt/pull/387
-   Bump golangci/golangci-lint-action from 5 to 6 by [@&#8203;dependabot](https://github.com/dependabot) in https://github.com/golang-jwt/jwt/pull/389
-   chore: bump ci tests to include go1.23 by [@&#8203;mfridman](https://github.com/mfridman) in https://github.com/golang-jwt/jwt/pull/405
-   Fix jwt -show by [@&#8203;AlexanderYastrebov](https://github.com/AlexanderYastrebov) in https://github.com/golang-jwt/jwt/pull/406
-   docs: typo by [@&#8203;kvii](https://github.com/kvii) in https://github.com/golang-jwt/jwt/pull/407
-   Update SECURITY.md by [@&#8203;oxisto](https://github.com/oxisto) in https://github.com/golang-jwt/jwt/pull/416
-   Update `jwt.Parse` example to use `jwt.WithValidMethods` by [@&#8203;mattt](https://github.com/mattt) in https://github.com/golang-jwt/jwt/pull/425

#### New Contributors

-   [@&#8203;Ashikpaul](https://github.com/Ashikpaul) made their first contribution in https://github.com/golang-jwt/jwt/pull/382
-   [@&#8203;kvii](https://github.com/kvii) made their first contribution in https://github.com/golang-jwt/jwt/pull/407
-   [@&#8203;mattt](https://github.com/mattt) made their first contribution in https://github.com/golang-jwt/jwt/pull/425

**Full Changelog**: https://github.com/golang-jwt/jwt/compare/v5.2.1...v5.2.2

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "" (UTC), Automerge - "* 0-3 * * *" (UTC).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMDUuMSIsInVwZGF0ZWRJblZlciI6IjM5LjIwNS4xIiwidGFyZ2V0QnJhbmNoIjoidjEwLjAvZm9yZ2VqbyIsImxhYmVscyI6WyJkZXBlbmRlbmN5LXVwZ3JhZGUiLCJ0ZXN0L25vdC1uZWVkZWQiXX0=-->

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/7302
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
Co-authored-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
Co-committed-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
2025-03-22 15:52:32 +00:00
Renovate Bot
5ec1f7f363 Update module github.com/redis/go-redis/v9 to v9.7.3 (v10.0/forgejo) (#7284)
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/7284
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
Co-authored-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
Co-committed-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
2025-03-21 10:04:58 +00:00
Earl Warren
fc5a303b70 [v10.0/forgejo] i18n: update of translations from Codeberg Translate (#7277)
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/7277
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
2025-03-20 21:59:32 +00:00
0ko
8a7dc4ea06 [v10.0/forgejo] i18n: update of translations from Codeberg Translate
Translation updates that are applicable to v10 strings were picked from this commit: 5a7af0dae2ef1c7d18ea5ac53ae8682d9d0c28df

Changes to strings that are only present in the v11 branch were not picked.

Below is a list of co-authors of the ported commit. It may contain co-authors who's changes were not picked due to being v11-only.

Co-authored-by: 0ko <0ko@noreply.codeberg.org>
Co-authored-by: Baempaieo <baempaieo@noreply.codeberg.org>
Co-authored-by: Codeberg Translate <translate@codeberg.org>
Co-authored-by: Edgarsons <edgarsons@noreply.codeberg.org>
Co-authored-by: EssGeeEich <essgeeeich@noreply.codeberg.org>
Co-authored-by: Juno Takano <jutty@noreply.codeberg.org>
Co-authored-by: Zughy <zughy@noreply.codeberg.org>
Co-authored-by: banaanihillo <banaanihillo@noreply.codeberg.org>
Co-authored-by: httpsterio <httpsterio@noreply.codeberg.org>
Co-authored-by: ozgur <ozgur@noreply.codeberg.org>
Co-authored-by: tacaly <frederick@tacaly.com>
2025-03-20 20:39:26 +05:00
0ko
4b3135a859 [v10.0/forgejo] i18n: update of translations from Codeberg Translate
Translation updates that are applicable to v10 strings were picked from this commit: 1132fde45fb010ae79e1324d000e1f4b76b11c09

Changes to strings that are only present in the v11 branch were not picked.

Below is a list of co-authors of the ported commit. It may contain co-authors who's changes were not picked due to being v11-only.

Co-authored-by: 0ko <0ko@noreply.codeberg.org>
Co-authored-by: Adolfo Jayme Barrientos <fito@noreply.codeberg.org>
Co-authored-by: Anonymous <anonymous@noreply.codeberg.org>
Co-authored-by: Atalanttore <atalanttore@noreply.codeberg.org>
Co-authored-by: Benedikt Straub <benedikt-straub@web.de>
Co-authored-by: Codeberg Translate <translate@codeberg.org>
Co-authored-by: Dirk <dirk@noreply.codeberg.org>
Co-authored-by: Edgarsons <edgarsons@noreply.codeberg.org>
Co-authored-by: Fjuro <fjuro@noreply.codeberg.org>
Co-authored-by: Gusted <postmaster@gusted.xyz>
Co-authored-by: Kita Ikuyo <kitakita@disroot.org>
Co-authored-by: Outbreak2096 <outbreak2096@noreply.codeberg.org>
Co-authored-by: SomeTr <sometr@noreply.codeberg.org>
Co-authored-by: justbispo <justbispo@noreply.codeberg.org>
Co-authored-by: nykula <nykula@noreply.codeberg.org>
Co-authored-by: tacaly <frederick@tacaly.com>
Co-authored-by: xtex <xtexchooser@duck.com>
2025-03-20 20:37:45 +05:00
0ko
c082731211 [v10.0/forgejo] i18n: update of translations from Codeberg Translate
Translation updates that are applicable to v10 strings were picked from this commit: b2d01fdde6

Changes to strings that are only present in the v11 branch were not picked.

Below is a list of co-authors of the ported commit. It may contain co-authors who's changes were not picked due to being v11-only.

Co-authored-by: lordwektabyte <lordwektabyte@users.noreply.translate.codeberg.org>
Co-authored-by: Marti <marti@noreply.codeberg.org>
Co-authored-by: 0ko <0ko@noreply.codeberg.org>
Co-authored-by: alanmena <alanmena@noreply.codeberg.org>
Co-authored-by: Juno Takano <jutty@noreply.codeberg.org>
Co-authored-by: Benedikt Straub <benedikt-straub@web.de>
Co-authored-by: Edgarsons <edgarsons@noreply.codeberg.org>
Co-authored-by: Wuzzy <wuzzy@disroot.org>
Co-authored-by: justbispo <justbispo@noreply.codeberg.org>
Co-authored-by: Kita Ikuyo <kitakita@disroot.org>
Co-authored-by: Fjuro <fjuro@noreply.codeberg.org>
Co-authored-by: Gusted <postmaster@gusted.xyz>
Co-authored-by: kwoot <kwoot@noreply.codeberg.org>
Co-authored-by: SomeTr <sometr@noreply.codeberg.org>
Co-authored-by: monty24 <monty24@noreply.codeberg.org>
Co-authored-by: Sampo Harjula <sahtor@noreply.codeberg.org>
Co-authored-by: tacaly <frederick@tacaly.com>
Co-authored-by: artnay <artnay@noreply.codeberg.org>
Co-authored-by: Outbreak2096 <outbreak2096@noreply.codeberg.org>
2025-03-20 20:36:26 +05:00
Gusted
c1e9fd738b fix: consider issues in repository accessible via access table (#7270)
- Consider the following scenario: a private repository in an organization with a team that has no specific access to that repository. Members of that team are still able to visit the repository because of entries in the `access` table.
- Consider this specific scenario for the gathering of issues for project tables.
- Unit test added
- Resolves forgejo/forgejo#7217
- Ref: forgejo/forgejo#6843

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/7270
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
Reviewed-by: 0ko <0ko@noreply.codeberg.org>
Co-authored-by: Gusted <postmaster@gusted.xyz>
Co-committed-by: Gusted <postmaster@gusted.xyz>
(cherry picked from commit 72ee7f3b006f8cb5c1031a5607c87618e0609242)
2025-03-19 16:46:20 +00:00
forgejo-backport-action
400bd08cfe [v10.0/forgejo] fix: discard v25 secrets migrations errors instead of failing (#7255)
**Backport:** https://codeberg.org/forgejo/forgejo/pulls/7251

Failing the migration when a corrupted record is found is problematic because there is no transaction and the database may need to be restored from a backup to attempt the migration again, after deleting the corrupted records.

Each documented case of failed migration was resolved by removing the corrupted records. There is no instance of a failed migration that was caused by non corrupted record.

In the unlikely event of a false negative where a two_factor record is discarded although it is in use, the only consequence is that the user will have to enroll again. Detailed logs are displayed so the Forgejo admin can file a bug report if that happens.

Refs: https://codeberg.org/forgejo/forgejo/issues/6637

<!--start release-notes-assistant-->

## Release notes
<!--URL:https://codeberg.org/forgejo/forgejo-->
- Bug fixes
  - [PR](https://codeberg.org/forgejo/forgejo/pulls/7251): <!--number 7251 --><!--line 0 --><!--description V2hlbiBtaWdyYXRpbmcgZnJvbSBhIEZvcmdlam8gdmVyc2lvbiBsb3dlciB0aGFuIHYxMCwgdGhlIFRPVFAgc2VjcmV0cyBmb3VuZCB0byBiZSBjb3JydXB0ZWQgYXJlIG5vdyB0cmFuc3BhcmVudGx5IHJlbW92ZWQgZnJvbSB0aGUgZGF0YWJhc2UgaW5zdGVhZCBvZiBmYWlsaW5nIHRoZSBtaWdyYXRpb24uIFRPVFAgaXMgbm8gbG9uZ2VyIHJlcXVpcmVkIHRvIGxvZ2luIHdpdGggdGhlIGFzc29jaWF0ZWQgdXNlcnMuIFRoZXkgc2hvdWxkIGJlIGluZm9ybWVkIGJlY2F1c2UgdGhleSB3aWxsIG5lZWQgdG8gdmlzaXQgdGhlaXIgc2VjdXJpdHkgc2V0dGluZ3MgYW5kIGNvbmZpZ3VyZSBUT1RQIGFnYWluLiBObyBvdGhlciBhY3Rpb24gaXMgcmVxdWlyZWQu-->When migrating from a Forgejo version lower than v10, the TOTP secrets found to be corrupted are now transparently removed from the database instead of failing the migration. TOTP is no longer required to login with the associated users. They should be informed because they will need to visit their security settings and configure TOTP again. No other action is required.<!--description-->
<!--end release-notes-assistant-->

Co-authored-by: Earl Warren <contact@earl-warren.org>
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/7255
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
Co-authored-by: forgejo-backport-action <forgejo-backport-action@noreply.codeberg.org>
Co-committed-by: forgejo-backport-action <forgejo-backport-action@noreply.codeberg.org>
2025-03-17 17:55:32 +00:00
forgejo-backport-action
e7d103319e [v10.0/forgejo] fix(api): typo in API description for repoSearch (#7202)
**Backport:** https://codeberg.org/forgejo/forgejo/pulls/7199

Corrected miss-spelled description for the `is_private` field on `repoSearch`, in which 'public' was spelled as 'pubic'.

Co-authored-by: luxzi <lesson085@gmail.com>
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/7202
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
Co-authored-by: forgejo-backport-action <forgejo-backport-action@noreply.codeberg.org>
Co-committed-by: forgejo-backport-action <forgejo-backport-action@noreply.codeberg.org>
2025-03-11 14:03:19 +00:00
forgejo-backport-action
0c0155daf7 [v10.0/forgejo] fix: no notification for replies to pending comments (#7178)
**Backport:** https://codeberg.org/forgejo/forgejo/pulls/7167

- Replies to pending review comments no longer generate a notification, this was caused by an incomplete determination if the comment was part of the pending review or not.
- The logic was reworked to do the following if it's part of a pending review: It is not a single review and if it's a reply then the comment it is replying to is part of a pending review.
- Added integration test.
- Resolves forgejo/forgejo#7151

Co-authored-by: Gusted <postmaster@gusted.xyz>
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/7178
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
Co-authored-by: forgejo-backport-action <forgejo-backport-action@noreply.codeberg.org>
Co-committed-by: forgejo-backport-action <forgejo-backport-action@noreply.codeberg.org>
2025-03-09 16:06:01 +00:00
forgejo-backport-action
40f1e0b1ff [v10.0/forgejo] fix: revert issue rendering for <a> element (#7177)
**Backport:** https://codeberg.org/forgejo/forgejo/pulls/7171

- Issue title rendering can lead to nested `<a>` which is incorrect. So
revert a portion of forgejo/forgejo#6715.
- Integration test adjusted
- Resolves forgejo/forgejo#7076

Co-authored-by: Gusted <postmaster@gusted.xyz>
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/7177
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
Co-authored-by: forgejo-backport-action <forgejo-backport-action@noreply.codeberg.org>
Co-committed-by: forgejo-backport-action <forgejo-backport-action@noreply.codeberg.org>
2025-03-09 15:50:23 +00:00
forgejo-backport-action
c2158b2a1f [v10.0/forgejo] fix: consider public issues for project boards (#7144)
**Backport:** https://codeberg.org/forgejo/forgejo/pulls/7143

- The security patch of forgejo/forgejo#6843 fixed the issue where project boards loaded all issues without considering if the doer actually had permission to view that issue. Within that patch the call to `Issues` was modified to include this permission checking.
- The query being generated was not entirely correct. Issues in public repositories weren't considered correctly (partly the fault of not setting `AllPublic` unconditionally) in the cause an authenticated user loaded the project.
- This is now fixed by setting `AllPublic` unconditionally and subsequently fixing the `Issue` function to ensure that the combination of setting `AllPublic` and `User` generates the correct query, by combining the permission check and issues in public repositories as one `AND` query.
- Added unit testing.
- Added integration testing.
- Resolves Codeberg/Community#1809
- Regression of https://codeberg.org/forgejo/forgejo/pulls/6843

Co-authored-by: Gusted <postmaster@gusted.xyz>
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/7144
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
Co-authored-by: forgejo-backport-action <forgejo-backport-action@noreply.codeberg.org>
Co-committed-by: forgejo-backport-action <forgejo-backport-action@noreply.codeberg.org>
2025-03-07 00:51:07 +00:00
Renovate Bot
6e0f449fb9 Update module golang.org/x/crypto to v0.35.0 (v10.0/forgejo) (#7072)
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/7072
Reviewed-by: Michael Kriese <michael.kriese@gmx.de>
Co-authored-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
Co-committed-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
2025-03-02 17:09:15 +00:00
forgejo-backport-action
a830b4de6b [v10.0/forgejo] chore(ci): ensure the manually cached Go can be run (#7079)
**Backport:** https://codeberg.org/forgejo/forgejo/pulls/7078

```
go version go1.24.0 linux/amd64
go env
drwx------ 1 root root 4096 Feb 28 15:52 /root/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.24.0.linux-amd64/../../../../..
drwxr-xr-x 4 root root 4096 Feb 28 15:52 /root/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.24.0.linux-amd64/../../../..
drwxr-xr-x 4 root root 4096 Feb 28 15:52 /root/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.24.0.linux-amd64/../../..
drwxr-xr-x 4 root root 4096 Feb 28 15:52 /root/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.24.0.linux-amd64/../..
drwxr-xr-x 3 root root 4096 Feb 28 15:52 /root/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.24.0.linux-amd64/..
dr-xr-xr-x 6 root root 4096 Feb 28 15:52 /root/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.24.0.linux-amd64
-r-xr-xr-x 1 root root 14314681 Feb 28 15:52 /root/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.24.0.linux-amd64/bin/go
-r-xr-xr-x 1 root root 14314681 Feb 28 15:52 /root/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.24.0.linux-amd64/bin/go
bash: line 1: /root/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.24.0.linux-amd64/bin/go: Permission denied
bash: line 1: /root/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.24.0.linux-amd64/bin/go: Permission denied
mkdir: cannot create directory ‘’: No such file or directory
mkdir: cannot create directory ‘’: No such file or directory
```

Refs: https://codeberg.org/forgejo/forgejo/actions/runs/61591#jobstep-3-22
Co-authored-by: Earl Warren <contact@earl-warren.org>
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/7079
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
Co-authored-by: forgejo-backport-action <forgejo-backport-action@noreply.codeberg.org>
Co-committed-by: forgejo-backport-action <forgejo-backport-action@noreply.codeberg.org>
2025-02-28 16:21:28 +00:00
Earl Warren
6fcb8f646f [v10.0/forgejo] chore(ci): Get Go binary from GOROOT instead of hardcoded path (#7073)
Backport: https://codeberg.org/forgejo/forgejo/pulls/6590
Co-authored-by: fnetX <otto@codeberg.org>
Co-authored-by: Michael Kriese <michael.kriese@visualon.de>
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/7073
Reviewed-by: Otto <otto@codeberg.org>
2025-02-28 15:36:13 +00:00
0ko
c7bd6f4a3d [v10.0/forgejo] i18n: update of translations from multiple sources (#7067)
Translation updates that are applicable to v10 strings were picked from these commits:
* 94e782038d
* 75b9bd82e8
* 7296f11288
* 535408143a

Changes to strings that are only present in the v11 branch were not picked.

New locales ga-IE and ro were not picked because they're not used even in the v11 branch yet and languages are usually to be added in major versions.

This commit contains chanes backported from Gitea, but attribution is not possible due to it being missing in the origin repo commits in the first place. You might have luck finding transators responsible for these changes in Gitea project on Crowdin: https://crowdin.com/project/gitea.

Changes from Gitea are up to commit fc1b383da9/options/locale

Below is a list of co-authors of the ported commits. It may contain co-authors who's changes were not picked due to being v11-only.

Co-authored-by: 0ko <0ko@users.noreply.translate.codeberg.org>
Co-authored-by: adriand <adriand@users.noreply.translate.codeberg.org>
Co-authored-by: amearb <amearb@users.noreply.translate.codeberg.org>
Co-authored-by: Anonymous <anonymous@users.noreply.translate.codeberg.org>
Co-authored-by: anze <anze@users.noreply.translate.codeberg.org>
Co-authored-by: artnay <artnay@users.noreply.translate.codeberg.org>
Co-authored-by: be4zad <be4zad@users.noreply.translate.codeberg.org>
Co-authored-by: Benedikt Straub <benedikt-straub@web.de>
Co-authored-by: Coral Pink <coralpink@users.noreply.translate.codeberg.org>
Co-authored-by: Dirk <dirk@users.noreply.translate.codeberg.org>
Co-authored-by: DKMellow <dkmellow@users.noreply.translate.codeberg.org>
Co-authored-by: earl-warren <earl-warren@users.noreply.translate.codeberg.org>
Co-authored-by: Edgarsons <edgarsons@users.noreply.translate.codeberg.org>
Co-authored-by: Fjuro <fjuro@users.noreply.translate.codeberg.org>
Co-authored-by: gedankenstuecke <gedankenstuecke@users.noreply.translate.codeberg.org>
Co-authored-by: Gitea translators on Crowdin <teabot@gitea.io>
Co-authored-by: Gusted <postmaster@gusted.xyz>
Co-authored-by: hugoalh <hugoalh@users.noreply.translate.codeberg.org>
Co-authored-by: IndieHum <indiehum@users.noreply.translate.codeberg.org>
Co-authored-by: Juno Takano <jutty@users.noreply.translate.codeberg.org>
Co-authored-by: kbruen <kbruen@users.noreply.translate.codeberg.org>
Co-authored-by: Kenneth Bruen <kbruen@users.noreply.translate.codeberg.org>
Co-authored-by: Kenneth Bruen <kenny@kbruen.ro>
Co-authored-by: Kita Ikuyo <searinminecraft@courvix.com>
Co-authored-by: laegnur <laegnur@users.noreply.translate.codeberg.org>
Co-authored-by: Laxystem <laxystem@users.noreply.translate.codeberg.org>
Co-authored-by: Laxystem <the@laxla.quest>
Co-authored-by: Lzebulon <lzebulon@users.noreply.translate.codeberg.org>
Co-authored-by: marat2509 <marat2509@users.noreply.translate.codeberg.org>
Co-authored-by: noiro <noiro@users.noreply.translate.codeberg.org>
Co-authored-by: nykula <nykula@users.noreply.translate.codeberg.org>
Co-authored-by: otf31 <otf31@users.noreply.translate.codeberg.org>
Co-authored-by: Outbreak2096 <outbreak2096@users.noreply.translate.codeberg.org>
Co-authored-by: Panagiotis \"Ivory\" Vasilopoulos <git@n0toose.net>
Co-authored-by: RealEnder <realender@users.noreply.translate.codeberg.org>
Co-authored-by: Ricky-Tigg <ricky-tigg@users.noreply.translate.codeberg.org>
Co-authored-by: SomeTr <sometr@users.noreply.translate.codeberg.org>
Co-authored-by: tacaly <frederick@tacaly.com>
Co-authored-by: Wuzzy <wuzzy@disroot.org>
Co-authored-by: xtex <xtexchooser@duck.com>
Co-authored-by: yeager <yeager@users.noreply.translate.codeberg.org>
Co-authored-by: yorunin <yorunin@users.noreply.translate.codeberg.org>
Co-authored-by: Zughy <zughy@users.noreply.translate.codeberg.org>

<!--start release-notes-assistant-->

## Release notes
<!--URL:https://codeberg.org/forgejo/forgejo-->
- Localization
  - [PR](https://codeberg.org/forgejo/forgejo/pulls/7067): <!--number 7067 --><!--line 0 --><!--description aTE4bjogdXBkYXRlIG9mIHRyYW5zbGF0aW9ucyBmcm9tIG11bHRpcGxlIHNvdXJjZXM=-->i18n: update of translations from multiple sources<!--description-->
<!--end release-notes-assistant-->

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/7067
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
Co-authored-by: 0ko <0ko@noreply.codeberg.org>
Co-committed-by: 0ko <0ko@noreply.codeberg.org>
2025-02-28 05:19:31 +00:00
Renovate Bot
2e76237e26 Update https://data.forgejo.org/forgejo/forgejo-build-publish action to v5.3.4 (v10.0/forgejo) (#7052)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [https://data.forgejo.org/forgejo/forgejo-build-publish](https://data.forgejo.org/forgejo/forgejo-build-publish) | action | patch | `v5.3.1` -> `v5.3.4` |

---

> ⚠️ **Warning**
>
> Some dependencies could not be looked up. Check the Dependency Dashboard for more information.

---

### Release Notes

<details>
<summary>forgejo/forgejo-build-publish (https://data.forgejo.org/forgejo/forgejo-build-publish)</summary>

### [`v5.3.4`](https://code.forgejo.org/forgejo/forgejo-build-publish/compare/v5.3.3...v5.3.4)

[Compare Source](https://data.forgejo.org/forgejo/forgejo-build-publish/compare/v5.3.3...v5.3.4)

### [`v5.3.3`](https://code.forgejo.org/forgejo/forgejo-build-publish/compare/v5.3.2...v5.3.3)

[Compare Source](https://data.forgejo.org/forgejo/forgejo-build-publish/compare/v5.3.2...v5.3.3)

### [`v5.3.2`](https://code.forgejo.org/forgejo/forgejo-build-publish/compare/v5.3.1...v5.3.2)

[Compare Source](https://data.forgejo.org/forgejo/forgejo-build-publish/compare/v5.3.1...v5.3.2)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - "* 0-3 * * *" (UTC).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNzguMSIsInVwZGF0ZWRJblZlciI6IjM5LjE3OC4xIiwidGFyZ2V0QnJhbmNoIjoidjEwLjAvZm9yZ2VqbyIsImxhYmVscyI6WyJkZXBlbmRlbmN5LXVwZ3JhZGUiLCJ0ZXN0L25vdC1uZWVkZWQiXX0=-->

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/7052
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
Co-authored-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
Co-committed-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
2025-02-24 10:51:56 +00:00
Earl Warren
a6a1b11670 [v10.0/forgejo] fix(release): the rootless image version label is not set (#7046)
Backport: https://codeberg.org/forgejo/forgejo/pulls/7038

There is a test for that but it was a false positive.

Refs: https://code.forgejo.org/forgejo/forgejo-build-publish/pulls/27
(cherry picked from commit 078ca85d876994c9198ba057af3aa5928c19f77d)

```
Conflicts:
	Dockerfile.rootless
  trivial context conflict
```

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/7046
Reviewed-by: Michael Kriese <michael.kriese@gmx.de>
Co-authored-by: Earl Warren <contact@earl-warren.org>
Co-committed-by: Earl Warren <contact@earl-warren.org>
2025-02-24 09:07:14 +00:00
Renovate Bot
b2c3f99901 Update dependency go to v1.23.6 (v10.0/forgejo) (#6812)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [go](https://go.dev/) ([source](https://github.com/golang/go)) | toolchain | patch | `1.23.5` -> `1.23.6` |

---

> ⚠️ **Warning**
>
> Some dependencies could not be looked up. Check the Dependency Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - "* 0-3 * * *" (UTC).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNTguMiIsInVwZGF0ZWRJblZlciI6IjM5LjE1OC4yIiwidGFyZ2V0QnJhbmNoIjoidjEwLjAvZm9yZ2VqbyIsImxhYmVscyI6WyJkZXBlbmRlbmN5LXVwZ3JhZGUiLCJ0ZXN0L25vdC1uZWVkZWQiXX0=-->

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/6812
Reviewed-by: Michael Kriese <michael.kriese@gmx.de>
Co-authored-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
Co-committed-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
2025-02-23 08:29:21 +00:00
forgejo-backport-action
52fb476fb1 [v10.0/forgejo] fix: do not allow SSH url for migration (#7018)
**Backport:** https://codeberg.org/forgejo/forgejo/pulls/7004

- Add a new function `IsPushMirrorURLAllowed` that will allow `ssh://` url and make the existing `IsMigrateURLAllowed` not allow such URLs anymore.
- Resolves forgejo/forgejo#6960
- Existing integration tests make sure that SSH urls are still allowed for the push mirror feature and added unit test to ensure that `IsMigrateURLAllowed` no longer allows SSH urls.

Co-authored-by: Gusted <postmaster@gusted.xyz>
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/7018
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
Co-authored-by: forgejo-backport-action <forgejo-backport-action@noreply.codeberg.org>
Co-committed-by: forgejo-backport-action <forgejo-backport-action@noreply.codeberg.org>
2025-02-21 11:46:08 +00:00
forgejo-backport-action
3eacbfead9 [v10.0/forgejo] fix: return 404 for empty repositories (#7014)
**Backport:** https://codeberg.org/forgejo/forgejo/pulls/7003

Some endpoints (`/api/v1/repos/*/*/raw`, `/api/v1/repos/*/*/media`, ...;
anything that uses both `context.ReferencesGitRepo()` and
`context.RepoRefForAPI` really) returned a 500 when the repository was
completely empty. This resulted in some confusion in
https://github.com/datalad/datalad-usage-dashboard/issues/47 because the
same request for a non-existent file in a repository could sometimes
generate a 404 and sometimes a 500, depending on if the git repository
is initialized at all or not.

Returning a 404 seems more appropriate here, since this isn't an
unexpected internal error, but just another way of not finding the
requested data.

Co-authored-by: Matthias Riße <m.risse@fz-juelich.de>
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/7014
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
Co-authored-by: forgejo-backport-action <forgejo-backport-action@noreply.codeberg.org>
Co-committed-by: forgejo-backport-action <forgejo-backport-action@noreply.codeberg.org>
2025-02-20 22:26:30 +00:00
forgejo-backport-action
932afb2036 [v10.0/forgejo] fix: delay deleting authorization token (#6976)
**Backport:** https://codeberg.org/forgejo/forgejo/pulls/6937

- 1ce33aa38d extended the LTA table with a purpose column so it could be extended to other tokens. However some are single-use tokens and should be deleted after use.
- This did not result in a good UX for activating user as they needed to also fill in their passwords and in the case that the password was incorrect the token would no longer be usable.
- This patch modifies the code to allow for a little delay before deleting authorization tokens to do additional verification such as the password check. This cannot be done before the authorization token check as that the authorization token determines who the user is.
- Resolves forgejo/forgejo#6912
- Adjusted existing unit test.

Co-authored-by: Gusted <postmaster@gusted.xyz>
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/6976
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
Co-authored-by: forgejo-backport-action <forgejo-backport-action@noreply.codeberg.org>
Co-committed-by: forgejo-backport-action <forgejo-backport-action@noreply.codeberg.org>
2025-02-19 07:06:01 +00:00
forgejo-backport-action
cc8a05f693 [v10.0/forgejo] fix: native parsing of ssh certificate key (#6954)
**Backport:** https://codeberg.org/forgejo/forgejo/pulls/6953

- In the case of parsing an public SSH certificate key, use the underlying key type instead of the certificate type. This means `ed25519-cert-v01` would be seen as `ed25519` type and thus correctly parsed. Certificates do not
change the keysize or otherwise parsing of the key.
- Add unit test.

Co-authored-by: Gusted <postmaster@gusted.xyz>
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/6954
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
Co-authored-by: forgejo-backport-action <forgejo-backport-action@noreply.codeberg.org>
Co-committed-by: forgejo-backport-action <forgejo-backport-action@noreply.codeberg.org>
2025-02-15 17:28:48 +00:00
forgejo-backport-action
0fe56e6059 [v10.0/forgejo] fix: disable forgotten password for external signin only (#6930)
**Backport:** https://codeberg.org/forgejo/forgejo/pulls/6680

- Make it such that `[service].ENABLE_INTERNAL_SIGNIN = false` disables the forgotten password prompt on the login page.

Co-authored-by: davrot <davrot@noreply.codeberg.org>
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/6930
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
Co-authored-by: forgejo-backport-action <forgejo-backport-action@noreply.codeberg.org>
Co-committed-by: forgejo-backport-action <forgejo-backport-action@noreply.codeberg.org>
2025-02-14 13:37:46 +00:00
forgejo-backport-action
4802c33acb [v10.0/forgejo] fix: show internal login prompt for account linking (#6929)
**Backport:** https://codeberg.org/forgejo/forgejo/pulls/6920

Fixes #6878.

Co-authored-by: Matthias Riße <m.risse@fz-juelich.de>
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/6929
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
Co-authored-by: forgejo-backport-action <forgejo-backport-action@noreply.codeberg.org>
Co-committed-by: forgejo-backport-action <forgejo-backport-action@noreply.codeberg.org>
2025-02-14 13:25:46 +00:00
forgejo-backport-action
c56bbddf62 [v10.0/forgejo] enable ssh mirrors in rootless images (#6915)
**Backport:** https://codeberg.org/forgejo/forgejo/pulls/6896

This mini-PR fixes mirror feature on docker rootless images, as discussed in #6894.

Thank you, regards

## Testing

- 24h After the PR is merged
- Visit https://v11.next.forgejo.org and create a ssh based mirror

Co-authored-by: Alessandro Ogier <alessandro.ogier@gmail.com>
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/6915
Reviewed-by: Otto <otto@codeberg.org>
Co-authored-by: forgejo-backport-action <forgejo-backport-action@noreply.codeberg.org>
Co-committed-by: forgejo-backport-action <forgejo-backport-action@noreply.codeberg.org>
2025-02-13 00:56:48 +00:00
forgejo-backport-action
a7ae98ff93 [v10.0/forgejo] fix(ui): hide extra PR property labels on title edit (#6905)
**Backport:** https://codeberg.org/forgejo/forgejo/pulls/6898

* hide labels [AGit](https://codeberg.org/forgejo/forgejo/pulls/2444) and [Editable](https://codeberg.org/forgejo/forgejo/pulls/6863) on title edit mode: they make layout broken and are not really needed at edit state
* make the code slightly less boring

Co-authored-by: 0ko <0ko@noreply.codeberg.org>
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/6905
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
Co-authored-by: forgejo-backport-action <forgejo-backport-action@noreply.codeberg.org>
Co-committed-by: forgejo-backport-action <forgejo-backport-action@noreply.codeberg.org>
2025-02-12 09:05:43 +00:00
forgejo-backport-action
0aa872c4e3 [v10.0/forgejo] fix: always set stripped slashes on http request (#6884)
**Backport:** https://codeberg.org/forgejo/forgejo/pulls/6866

- The middleware that takes care of normalizing `//user2/////repo1` to `/user2/repo1` would only set the normalized value to the Chi (Forgejo's http router) `RoutePath` field, so Chi would correctly do the routing. However not all components in Forgejo (like Forgejo's `context` module) rely on Chi to get this updated path and some still rely on the value of `(http.Request).URL.Path`, so always set the normalized value to the http request.
- Adjusted unit test.
- Resolves forgejo/forgejo#6822
- The related issue was caused by
751a3da979/services/context/context.go (L115)
using the value of the http request on not that was set in the Chi context.

Co-authored-by: Gusted <postmaster@gusted.xyz>
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/6884
Reviewed-by: Otto <otto@codeberg.org>
Co-authored-by: forgejo-backport-action <forgejo-backport-action@noreply.codeberg.org>
Co-committed-by: forgejo-backport-action <forgejo-backport-action@noreply.codeberg.org>
2025-02-10 20:00:25 +00:00
forgejo-backport-action
ee49a62bed [v10.0/forgejo] fix(ui): hide 'New migration' button on org pages with migrations disabled (#6850) (#6860)
**Backport:** https://codeberg.org/forgejo/forgejo/pulls/6851

When migrations are disabled via `[repository].DISABLE_MIGRATIONS = true`, on organisation pages next to the 'New repository' button, the 'New migration' button is still shown.

This is caused by a logic error in the templates: instead of checking for disabled migrations, it checks for disabled pull mirrors. This patch fixes that to use `DisableMigrations` instead of `DisableNewPullMirrors`.

Signed-off-by: Daniel Baumann <daniel@debian.org>
Co-authored-by: Daniel Baumann <daniel@debian.org>
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/6860
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
Co-authored-by: forgejo-backport-action <forgejo-backport-action@noreply.codeberg.org>
Co-committed-by: forgejo-backport-action <forgejo-backport-action@noreply.codeberg.org>
2025-02-08 15:45:58 +00:00
forgejo-backport-action
89c4c9c477 [v10.0/forgejo] fix: render link in heading correctly in TOC (#6859)
**Backport:** https://codeberg.org/forgejo/forgejo/pulls/6853

- When you use a link in a heading such as `# [Text](link)` (instead of the conventional `# Text`) the TOC should only show `Text` and not `[Text](link)`.
- Use the `mdutil.Text` to only get the text from actual text nodes and not the text that was provided in the markdown input.
- Regression of e2fddcf681
- Resolves forgejo/forgejo#6847
- Added integration test.

Co-authored-by: Gusted <postmaster@gusted.xyz>
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/6859
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
Co-authored-by: forgejo-backport-action <forgejo-backport-action@noreply.codeberg.org>
Co-committed-by: forgejo-backport-action <forgejo-backport-action@noreply.codeberg.org>
2025-02-08 14:33:01 +00:00
forgejo-backport-action
bdb78d42b6 [v10.0/forgejo] ui: update language stats layout and click behavior (#6854)
**Backport:** https://codeberg.org/forgejo/forgejo/pulls/6700

Fix regression of https://codeberg.org/forgejo/forgejo/pulls/6344. It was reported by @Beowulf.

JS toggle [used](49c5102b40/templates/repo/sub_menu.tmpl (L38)) a selector which was broken by that PR, which caused the legend to appear separately instead of replacing the primary repo info.

## Changes

* use clear IDs `language-stats-bar` and `language-stats-legend`
* add simple e2e test

Instead of restoring the previous behavior, I moved the legend under the stats bar. To me it didn't make a lot of sense in the first place to replace the information in the primary bar with with completely different information. It did not save much space either.

Co-authored-by: 0ko <0ko@noreply.codeberg.org>
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/6854
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
Co-authored-by: forgejo-backport-action <forgejo-backport-action@noreply.codeberg.org>
Co-committed-by: forgejo-backport-action <forgejo-backport-action@noreply.codeberg.org>
2025-02-08 13:52:03 +00:00
95 changed files with 4040 additions and 1045 deletions

View file

@ -27,8 +27,10 @@ runs:
- name: "Get go environment information"
id: go-environment
run: |
echo "modcache=$(su ${RUN_AS_USER} -c '/opt/hostedtoolcache/go/${GO_VERSION}/x64/bin/go env GOMODCACHE')" >> "$GITHUB_OUTPUT"
echo "cache=$(su ${RUN_AS_USER} -c '/opt/hostedtoolcache/go/${GO_VERSION}/x64/bin/go env GOCACHE')" >> "$GITHUB_OUTPUT"
chmod 755 $HOME # ensure ${RUN_AS_USER} has permission when go is located in $HOME
export GOROOT="$(go env GOROOT)"
echo "modcache=$(su ${RUN_AS_USER} -c '${GOROOT}/bin/go env GOMODCACHE')" >> "$GITHUB_OUTPUT"
echo "cache=$(su ${RUN_AS_USER} -c '${GOROOT}/bin/go env GOCACHE')" >> "$GITHUB_OUTPUT"
env:
RUN_AS_USER: ${{ inputs.username }}
GO_VERSION: ${{ steps.go-version.outputs.go-version }}

View file

@ -164,7 +164,7 @@ jobs:
- name: build container & release
if: ${{ secrets.TOKEN != '' }}
uses: https://data.forgejo.org/forgejo/forgejo-build-publish/build@v5.3.1
uses: https://data.forgejo.org/forgejo/forgejo-build-publish/build@v5.3.4
with:
forgejo: "${{ env.GITHUB_SERVER_URL }}"
owner: "${{ env.GITHUB_REPOSITORY_OWNER }}"
@ -183,7 +183,7 @@ jobs:
- name: build rootless container
if: ${{ secrets.TOKEN != '' }}
uses: https://data.forgejo.org/forgejo/forgejo-build-publish/build@v5.3.1
uses: https://data.forgejo.org/forgejo/forgejo-build-publish/build@v5.3.4
with:
forgejo: "${{ env.GITHUB_SERVER_URL }}"
owner: "${{ env.GITHUB_REPOSITORY_OWNER }}"

View file

@ -42,7 +42,7 @@ jobs:
- uses: https://data.forgejo.org/actions/checkout@v4
- name: copy & sign
uses: https://data.forgejo.org/forgejo/forgejo-build-publish/publish@v5.3.1
uses: https://data.forgejo.org/forgejo/forgejo-build-publish/publish@v5.3.4
with:
from-forgejo: ${{ vars.FORGEJO }}
to-forgejo: ${{ vars.FORGEJO }}

View file

@ -50,6 +50,7 @@ RUN chmod 755 /tmp/local/usr/local/bin/docker-entrypoint.sh \
RUN chmod 644 /go/src/code.gitea.io/gitea/contrib/autocompletion/bash_autocomplete
FROM data.forgejo.org/oci/alpine:3.20
ARG RELEASE_VERSION
LABEL maintainer="contact@forgejo.org" \
org.opencontainers.image.authors="Forgejo" \
org.opencontainers.image.url="https://forgejo.org" \
@ -71,6 +72,7 @@ RUN apk --no-cache add \
git \
curl \
gnupg \
openssh-client \
git-annex \
&& rm -rf /var/cache/apk/*

View file

@ -1,27 +1,33 @@
<svg viewBox="0 0 212 212" xmlns="http://www.w3.org/2000/svg">
<style type="text/css">
circle {
fill: none;
stroke: #000;
stroke-width: 15;
}
path {
fill: none;
stroke: #000;
stroke-width: 25;
}
.orange {
stroke:#ff6600;
}
.red {
stroke:#d40000;
}
</style>
<g transform="translate(6,6)">
<path d="M58 168 v-98 a50 50 0 0 1 50-50 h20" class="orange" />
<path d="M58 168 v-30 a50 50 0 0 1 50-50 h20" class="red" />
<circle cx="142" cy="20" r="18" class="orange" />
<circle cx="142" cy="88" r="18" class="red" />
<circle cx="58" cy="180" r="18" class="red" />
<!--
This logo was created by Michael Hanke <mih@ngln.eu> from
the original Forgejo logo by Caesar Schinas and the git-annex
logo by Henrik Nyh <http://henrik.nyh.se/>, Joey Hess <id@joeyh.name>,
John Lawrence, and Yann Büchau <nobodyinperson at posteo de>.
It is licensed under the Creative Commons Attribution-ShareAlike 4.0
International (CC BY-SA 4.0) license.
-->
<svg xmlns="http://www.w3.org/2000/svg" width="212" height="212"
viewBox="0 0 56.092 56.092" xmlns:v="https://vecta.io/nano">
<g transform="matrix(1.003855 0 0 1.003855 -155.52693 -24.929635)"
fill="none">
<g stroke-width="6.615">
<path d="M168.804 70.908V44.979a13.229 13.229 0 0 1 13.229-13.229h5.292"
stroke="#f60" />
<path d="M168.804 70.908v-7.937a13.229 13.229 0 0 1 13.229-13.229h5.292"
stroke="#d40000" />
</g>
<g stroke-width="3.969">
<circle cx="191.029" cy="31.75" r="4.762" stroke="#f60" />
<g stroke="#d40000">
<circle cx="191.029" cy="49.742" r="4.762" />
<circle cx="168.804" cy="74.083" r="4.762" />
</g>
</g>
</g>
<g fill="#777">
<path d="M34.648 56.182c-2.089-.269-4.238-2.244-4.538-4.561-.288-1.937.128-4.198 1.729-5.476.702-.479 1.658-1.015 2.5-.951v2.757c-1.003.112-1.975 1.252-1.954 2.296.025 1.359.626 2.607 1.933 3.014 1.446.487 3.102.348 4.44-.461 1.106-.862 1.208-2.466.63-3.687-.26-.672-.821-1.165-1.582-1.163v2.392H35.66v-5.149h6.5v1.852l-1.78.016c1.661.947 1.832 2.991 1.747 4.409.06 2.436-2.347 4.422-4.734 4.688-.864.065-1.594.068-2.743.023zm-4.644-12.011l-.014-2.702h12.185l-.001 2.715-12.17-.013zm4.645-3.651v-2.892h-4.724v-2.516h4.724v-3.245h2.826v3.245h4.702v2.516h-4.702l-.047 2.886-2.779.006z" />
<path d="M22.23 24.801l-2.819 3.94h1.565a9.01 9.01 0 0 0 .103 1.283l2.488-.377c-.044-.296-.071-.599-.075-.906h1.556zm1.531 5.732l-2.405.724a8.9 8.9 0 0 0 .447 1.18l2.281-1.055a6.36 6.36 0 0 1-.323-.848zm.753 1.622L22.4 33.518a8.99 8.99 0 0 0 3.949 3.365l1.006-2.305a6.45 6.45 0 0 1-2.839-2.421zm3.675 2.715l-.679 2.425a8.94 8.94 0 0 0 1.18.244l.348-2.492a6.52 6.52 0 0 1-.848-.178zm21.673-10.069l-2.819 3.94h1.565c-.003.308-.03.61-.075.906l2.488.377a9.01 9.01 0 0 0 .103-1.283h1.556zm-1.523 5.732a6.36 6.36 0 0 1-.323.848l2.281 1.055c.176-.379.325-.774.447-1.18zm-.753 1.622a6.45 6.45 0 0 1-2.839 2.421l1.006 2.305a8.99 8.99 0 0 0 3.949-3.365zm-3.675 2.715a6.52 6.52 0 0 1-.848.178l.348 2.492a8.94 8.94 0 0 0 1.18-.244z"
fill-rule="evenodd" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 677 B

After

Width:  |  Height:  |  Size: 2.4 KiB

View file

@ -1,27 +1,33 @@
<svg viewBox="0 0 212 212" xmlns="http://www.w3.org/2000/svg">
<style type="text/css">
circle {
fill: none;
stroke: #000;
stroke-width: 15;
}
path {
fill: none;
stroke: #000;
stroke-width: 25;
}
.orange {
stroke:#ff6600;
}
.red {
stroke:#d40000;
}
</style>
<g transform="translate(6,6)">
<path d="M58 168 v-98 a50 50 0 0 1 50-50 h20" class="orange" />
<path d="M58 168 v-30 a50 50 0 0 1 50-50 h20" class="red" />
<circle cx="142" cy="20" r="18" class="orange" />
<circle cx="142" cy="88" r="18" class="red" />
<circle cx="58" cy="180" r="18" class="red" />
<!--
This logo was created by Michael Hanke <mih@ngln.eu> from
the original Forgejo logo by Caesar Schinas and the git-annex
logo by Henrik Nyh <http://henrik.nyh.se/>, Joey Hess <id@joeyh.name>,
John Lawrence, and Yann Büchau <nobodyinperson at posteo de>.
It is licensed under the Creative Commons Attribution-ShareAlike 4.0
International (CC BY-SA 4.0) license.
-->
<svg xmlns="http://www.w3.org/2000/svg" width="212" height="212"
viewBox="0 0 56.092 56.092" xmlns:v="https://vecta.io/nano">
<g transform="matrix(1.003855 0 0 1.003855 -155.52693 -24.929635)"
fill="none">
<g stroke-width="6.615">
<path d="M168.804 70.908V44.979a13.229 13.229 0 0 1 13.229-13.229h5.292"
stroke="#f60" />
<path d="M168.804 70.908v-7.937a13.229 13.229 0 0 1 13.229-13.229h5.292"
stroke="#d40000" />
</g>
<g stroke-width="3.969">
<circle cx="191.029" cy="31.75" r="4.762" stroke="#f60" />
<g stroke="#d40000">
<circle cx="191.029" cy="49.742" r="4.762" />
<circle cx="168.804" cy="74.083" r="4.762" />
</g>
</g>
</g>
<g fill="#777">
<path d="M34.648 56.182c-2.089-.269-4.238-2.244-4.538-4.561-.288-1.937.128-4.198 1.729-5.476.702-.479 1.658-1.015 2.5-.951v2.757c-1.003.112-1.975 1.252-1.954 2.296.025 1.359.626 2.607 1.933 3.014 1.446.487 3.102.348 4.44-.461 1.106-.862 1.208-2.466.63-3.687-.26-.672-.821-1.165-1.582-1.163v2.392H35.66v-5.149h6.5v1.852l-1.78.016c1.661.947 1.832 2.991 1.747 4.409.06 2.436-2.347 4.422-4.734 4.688-.864.065-1.594.068-2.743.023zm-4.644-12.011l-.014-2.702h12.185l-.001 2.715-12.17-.013zm4.645-3.651v-2.892h-4.724v-2.516h4.724v-3.245h2.826v3.245h4.702v2.516h-4.702l-.047 2.886-2.779.006z" />
<path d="M22.23 24.801l-2.819 3.94h1.565a9.01 9.01 0 0 0 .103 1.283l2.488-.377c-.044-.296-.071-.599-.075-.906h1.556zm1.531 5.732l-2.405.724a8.9 8.9 0 0 0 .447 1.18l2.281-1.055a6.36 6.36 0 0 1-.323-.848zm.753 1.622L22.4 33.518a8.99 8.99 0 0 0 3.949 3.365l1.006-2.305a6.45 6.45 0 0 1-2.839-2.421zm3.675 2.715l-.679 2.425a8.94 8.94 0 0 0 1.18.244l.348-2.492a6.52 6.52 0 0 1-.848-.178zm21.673-10.069l-2.819 3.94h1.565c-.003.308-.03.61-.075.906l2.488.377a9.01 9.01 0 0 0 .103-1.283h1.556zm-1.523 5.732a6.36 6.36 0 0 1-.323.848l2.281 1.055c.176-.379.325-.774.447-1.18zm-.753 1.622a6.45 6.45 0 0 1-2.839 2.421l1.006 2.305a8.99 8.99 0 0 0 3.949-3.365zm-3.675 2.715a6.52 6.52 0 0 1-.848.178l.348 2.492a8.94 8.94 0 0 0 1.18-.244z"
fill-rule="evenodd" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 677 B

After

Width:  |  Height:  |  Size: 2.4 KiB

20
go.mod
View file

@ -1,8 +1,8 @@
module code.gitea.io/gitea
go 1.23
go 1.23.0
toolchain go1.23.5
toolchain go1.23.6
require (
code.forgejo.org/f3/gof3/v3 v3.10.2
@ -53,7 +53,7 @@ require (
github.com/gobwas/glob v0.2.3
github.com/gogs/chardet v0.0.0-20211120154057-b7413eaefb8f
github.com/gogs/go-gogs-client v0.0.0-20210131175652-1d7215cd8d85
github.com/golang-jwt/jwt/v5 v5.2.1
github.com/golang-jwt/jwt/v5 v5.2.2
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0
github.com/google/go-github/v64 v64.0.0
github.com/google/pprof v0.0.0-20241017200806-017d972448fc
@ -85,7 +85,7 @@ require (
github.com/opencontainers/image-spec v1.1.0
github.com/pquerna/otp v1.4.0
github.com/prometheus/client_golang v1.20.5
github.com/redis/go-redis/v9 v9.7.0
github.com/redis/go-redis/v9 v9.7.3
github.com/robfig/cron/v3 v3.0.1
github.com/santhosh-tekuri/jsonschema/v6 v6.0.1
github.com/sassoftware/go-rpmutils v0.4.0
@ -101,13 +101,13 @@ require (
github.com/yuin/goldmark v1.7.8
github.com/yuin/goldmark-highlighting/v2 v2.0.0-20230729083705-37449abec8cc
go.uber.org/mock v0.4.0
golang.org/x/crypto v0.31.0
golang.org/x/crypto v0.35.0
golang.org/x/image v0.23.0
golang.org/x/net v0.33.0
golang.org/x/oauth2 v0.23.0
golang.org/x/sync v0.10.0
golang.org/x/sys v0.28.0
golang.org/x/text v0.21.0
golang.org/x/net v0.36.0
golang.org/x/oauth2 v0.27.0
golang.org/x/sync v0.11.0
golang.org/x/sys v0.30.0
golang.org/x/text v0.22.0
google.golang.org/grpc v1.69.2
google.golang.org/protobuf v1.36.1
gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df

36
go.sum
View file

@ -981,8 +981,8 @@ github.com/gogs/go-gogs-client v0.0.0-20210131175652-1d7215cd8d85 h1:UjoPNDAQ5JP
github.com/gogs/go-gogs-client v0.0.0-20210131175652-1d7215cd8d85/go.mod h1:fR6z1Ie6rtF7kl/vBYMfgD5/G5B1blui7z426/sj2DU=
github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg=
github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0=
github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk=
github.com/golang-jwt/jwt/v5 v5.2.1/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk=
github.com/golang-jwt/jwt/v5 v5.2.2 h1:Rl4B7itRWVtYIHFrSNd7vhTiz9UpLdi6gZhZ3wEeDy8=
github.com/golang-jwt/jwt/v5 v5.2.2/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk=
github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 h1:au07oEsX2xN0ktxqI+Sida1w446QrXBRJ0nee3SNZlA=
github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0=
github.com/golang-sql/sqlexp v0.1.0 h1:ZCD6MBpcuOVfGVqsEmY5/4FtYiKz6tSyUv9LPEDei6A=
@ -1342,8 +1342,8 @@ github.com/prometheus/common v0.55.0 h1:KEi6DK7lXW/m7Ig5i47x0vRzuBsHuvJdi5ee6Y3G
github.com/prometheus/common v0.55.0/go.mod h1:2SECS4xJG1kd8XF9IcM1gMX6510RAEL65zxzNImwdc8=
github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc=
github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk=
github.com/redis/go-redis/v9 v9.7.0 h1:HhLSs+B6O021gwzl+locl0zEDnyNkxMtf/Z3NNBMa9E=
github.com/redis/go-redis/v9 v9.7.0/go.mod h1:f6zhXITC7JUJIlPEiBOTXxJgPLdZcA93GewI7inzyWw=
github.com/redis/go-redis/v9 v9.7.3 h1:YpPyAayJV+XErNsatSElgRZZVCwXX9QzkKYNvO7x0wM=
github.com/redis/go-redis/v9 v9.7.3/go.mod h1:bGUrSggJ9X9GUmZpZNEOQKaANxSGgOEBRltRTZHSvrA=
github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0 h1:OdAsTTz6OkFY5QxjkYwrChwuRruF69c169dPK26NUlk=
github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=
github.com/rhysd/actionlint v1.6.27 h1:xxwe8YmveBcC8lydW6GoHMGmB6H/MTqUU60F2p10wjw=
@ -1505,8 +1505,8 @@ golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5y
golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc=
golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4=
golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U=
golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk=
golang.org/x/crypto v0.35.0 h1:b15kiHdrGCHrP6LvwaQ3c03kgNhhiMgvlhxHQhmg2Xs=
golang.org/x/crypto v0.35.0/go.mod h1:dy7dXNW32cAb/6/PRuTNsix8T+vJAqvuIy5Bli/x0YQ=
golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
@ -1631,8 +1631,8 @@ golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc=
golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns=
golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
golang.org/x/net v0.33.0 h1:74SYHlV8BIgHIFC/LrYkOGIwL19eTYXQ5wc6TBuO36I=
golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4=
golang.org/x/net v0.36.0 h1:vWF2fRbw4qslQsQzgFqZff+BItCvGFQqKzKIzx1rmoA=
golang.org/x/net v0.36.0/go.mod h1:bFmbeoIPfrw4sMHNhb4J9f6+tPziuGjq7Jk/38fxi1I=
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/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
@ -1662,8 +1662,8 @@ golang.org/x/oauth2 v0.4.0/go.mod h1:RznEsdpjGAINPTOF0UH/t+xJ75L18YO3Ho6Pyn+uRec
golang.org/x/oauth2 v0.5.0/go.mod h1:9/XBHVqLaWO3/BRHs5jbpYCnOZVjj5V0ndyaAM7KB4I=
golang.org/x/oauth2 v0.6.0/go.mod h1:ycmewcwgD4Rpr3eZJLSB4Kyyljb3qDh40vJ8STE5HKw=
golang.org/x/oauth2 v0.7.0/go.mod h1:hPLQkd9LyjfXTiRohC/41GhcFqxisoUQ99sCUOHO9x4=
golang.org/x/oauth2 v0.23.0 h1:PbgcYx2W7i4LvjJWEbf0ngHV6qJYr86PkAV3bXdLEbs=
golang.org/x/oauth2 v0.23.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI=
golang.org/x/oauth2 v0.27.0 h1:da9Vo7/tDv5RH/7nZDz1eMGS/q1Vv1N/7FCrBhI9I3M=
golang.org/x/oauth2 v0.27.0/go.mod h1:onh5ek6nERTohokkhCD/y2cV4Do3fxFHFuAejCkRWT8=
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=
@ -1680,8 +1680,8 @@ golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJ
golang.org/x/sync v0.0.0-20220819030929-7fc1605a5dde/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ=
golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
golang.org/x/sync v0.11.0 h1:GGz8+XQP4FvTTrjZPzNKTMFtSXH80RAzG+5ghFPgK9w=
golang.org/x/sync v0.11.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/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-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@ -1771,8 +1771,8 @@ golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA=
golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc=
golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc=
@ -1784,8 +1784,8 @@ golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY=
golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo=
golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU=
golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0=
golang.org/x/term v0.27.0 h1:WP60Sv1nlK1T6SupCHbXzSaN0b9wUmsPoRS9b61A23Q=
golang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM=
golang.org/x/term v0.29.0 h1:L6pJp37ocefwRRtYPKSWOWzOtWSxVajvz2ldH/xi3iU=
golang.org/x/term v0.29.0/go.mod h1:6bl4lRlvVuDgSf3179VpIxBF0o10JUpXWOnI7nErv7s=
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
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=
@ -1804,8 +1804,8 @@ golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo=
golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
golang.org/x/text v0.22.0 h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM=
golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY=
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=

View file

@ -219,8 +219,13 @@ func SSHNativeParsePublicKey(keyLine string) (string, int, error) {
return "", 0, fmt.Errorf("ParsePublicKey: %w", err)
}
pkeyType := pkey.Type()
if certPkey, ok := pkey.(*ssh.Certificate); ok {
pkeyType = certPkey.Key.Type()
}
// The ssh library can parse the key, so next we find out what key exactly we have.
switch pkey.Type() {
switch pkeyType {
case ssh.KeyAlgoDSA:
rawPub := struct {
Name string

View file

@ -35,6 +35,7 @@ func Test_SSHParsePublicKey(t *testing.T) {
{"ecdsa-384", false, "ecdsa", 384, "ecdsa-sha2-nistp384 AAAAE2VjZHNhLXNoYTItbmlzdHAzODQAAAAIbmlzdHAzODQAAABhBINmioV+XRX1Fm9Qk2ehHXJ2tfVxW30ypUWZw670Zyq5GQfBAH6xjygRsJ5wWsHXBsGYgFUXIHvMKVAG1tpw7s6ax9oA+dJOJ7tj+vhn8joFqT+sg3LYHgZkHrfqryRasQ== nocomment"},
{"ecdsa-sk", true, "ecdsa-sk", 256, "sk-ecdsa-sha2-nistp256@openssh.com AAAAInNrLWVjZHNhLXNoYTItbmlzdHAyNTZAb3BlbnNzaC5jb20AAAAIbmlzdHAyNTYAAABBBGXEEzWmm1dxb+57RoK5KVCL0w2eNv9cqJX2AGGVlkFsVDhOXHzsadS3LTK4VlEbbrDMJdoti9yM8vclA8IeRacAAAAEc3NoOg== nocomment"},
{"ed25519-sk", true, "ed25519-sk", 256, "sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIE7kM1R02+4ertDKGKEDcKG0s+2vyDDcIvceJ0Gqv5f1AAAABHNzaDo= nocomment"},
{"ed25519-cert-v01", true, "ed25519", 256, "ssh-ed25519-cert-v01@openssh.com AAAAIHNzaC1lZDI1NTE5LWNlcnQtdjAxQG9wZW5zc2guY29tAAAAIAlIAPlEj0mYQzQo8Ks0Nm/Ct8ceNkyJSf4DLuF5l7+5AAAAIEuWAoaBo2tT29/oMNnoDfdAPRCIdM2RGapKUhY4nDfLRgPQwfnRoc0AAAABAAAAcHZhdWx0LW9pZGMtNmRhYjdiZDgtNDg5YS00MDFkLTg3ZmItNjdjNTlhMDZkZDkxLTNjNTk2M2YyMGRmMDM3MDkyMzc1YmNiYmNiNzkxY2EyZWIxM2I0NGZhMzc2NTcwMWI0MjMwODU0MWFmNjhkNTgAAAALAAAAB2Zvcmdlam8AAAAAZ6/RUQAAAABn115vAAAAAAAAAAAAAAAAAAACFwAAAAdzc2gtcnNhAAAAAwEAAQAAAgEAySnM/TvD117GyKgOgMatDB2t+fCHORFaWVmH5SaadAzNJ2DfDAauRSLfnim1xdgAOMTzsPEEHH47zyYMjE85o2AiJxrfUBMw3O/7AbNc6+HyLr/txH4+vD9tWQknKnpVWM+3Z9wiHDcOdKRoXCmFZKJH1vxs16GNWjwbrfNiimv7Oi0fadgvTDKX603gpLTuVDXqs9eQFLCONptei86JYBAJqaHvg51k8YUCKt9WFqKAj7BJUWmrDvhv5VFMOsnZieJjqxkoxnpsQNlXfPzxK0vIpJofbYfWwscv/g9WZypHwO1ZR2PqzKm99YrSdr8w5256l0f44vsF0NSP0N7bDQEfYYnRGj8zWTYCBFD+uYF7AxIeaRUpZoTQO8MvCHOLMIDinNgEeCUvNA2v9zHl4BGq+PQjzUKAgJiKj0MZeiCDAmQ22g83ggQlB6BOrBb1fNa/S1cmTbGHQ2oAN358aqkmHVCBhPOyA2Rf65D2M2vzDlUdOsNDUIWAHk7GbwSNGDgcYfTWqtR5fTzp2MJovMh1dDUDXjOvojbhzjJtSy9+rzUYIv18aXdOitzVBgPMWdeVCZFZv4OKF+5MiqxQvedUvfiSjsdxZWLxyT1CJ88G3MzxNMS/Djm86T8h/Oa55bdvFtqpsLfvpIqq0pnXq1V/vF2j1MWwRB5z5Xh/HtEAAAIUAAAADHJzYS1zaGEyLTI1NgAAAgB2I2gzqemQl8/ETxtakALlm/2BpUcbhADcFWuoH6BCPnWHuTSwf3OayM6KXv1PQfL3YFRoi9Afrp8kVFL6DePsmKH+0BUEMz71sZ7v1ty7pwfzibItGnpTbQXhzbEiNYAFoz77rl7oaXF7pV6JNZhj3DVAB5gVA2oN5KRNVxijz+6uyuFJEw1HIl1C7GworvGwZcN7BThTEh3i72/Vntejy9Z8uGVjSFjS0rjRo2oXK1LKN0rVt66p3TmCWHouLkVnOTk0qrhLGlL2HVyo24OYHbkAAObD9b6aMDYlmluk6NsaiTKsSTsvMrbIbjtFQlh7nNyoPhZ0VMwaT1l10pDQ5uxWWZjKGIkz4xM1ZfpBszjJNPo+ivYQnTSjj9LwkbLAT9a/5LawSj80TGcLEMO+0eyPdJsP0wYmOVRFAZeRiBgwb3HrzcF6Wqr8icj1EjYkKSy9YFHGTnFBGknpdh3HGwghRXrCUwAnSM76db9pv4/qowT8LthtJ3dY5Epe0OJ1Tqm+q8bkGH4gB+7uqLSqM5pIHSKLp7lfHQBt1J6xa7H2saiweaWjU+QGTgQ2Lg+uUC5DXJrmm60CeFJ4BoGhUenDlgijbQpjH/l6330PbwefgjWtUK/pqaEA4lCoPyvJ+eF2DbYfPiAIBAFQnhVJJae4AH+XoCt29nb2j30ztg== nocomment"},
}
for _, tc := range testCases {

View file

@ -1,6 +1,6 @@
-
id: 1001
title: Org project that contains private issues
title: Org project that contains private and public issues
owner_id: 3
repo_id: 0
is_closed: false
@ -12,7 +12,7 @@
-
id: 1002
title: User project that contains private issues
title: User project that contains private and public issues
owner_id: 2
repo_id: 0
is_closed: false

View file

@ -9,3 +9,15 @@
issue_id: 7
project_id: 1002
project_board_id: 1002
-
id: 1003
issue_id: 16
project_id: 1001
project_board_id: 1001
-
id: 1004
issue_id: 1
project_id: 1002
project_board_id: 1002

View file

@ -0,0 +1,5 @@
-
id: 1001
user_id: 29
repo_id: 3
mode: 1

View file

@ -0,0 +1,11 @@
-
id: 1001
title: Org project that contains private issues
owner_id: 3
repo_id: 0
is_closed: false
creator_id: 2
board_type: 1
type: 3
created_unix: 1738000000
updated_unix: 1738000000

View file

@ -0,0 +1,8 @@
-
id: 1001
project_id: 1001
title: Triage
creator_id: 2
default: true
created_unix: 1738000000
updated_unix: 1738000000

View file

@ -0,0 +1,11 @@
-
id: 1001
issue_id: 6
project_id: 1001
project_board_id: 1001
-
id: 1002
issue_id: 15
project_id: 1001
project_board_id: 1001

View file

@ -64,6 +64,7 @@
base_branch: branch2
merge_base: 985f0301dba5e7b34be866819cd15ad3d8f508ee
has_merged: false
allow_maintainer_edit: true
-
id: 6

View file

@ -7,9 +7,11 @@ import (
"context"
"crypto/md5"
"encoding/base64"
"fmt"
"code.gitea.io/gitea/models/auth"
"code.gitea.io/gitea/models/db"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/secret"
"code.gitea.io/gitea/modules/setting"
@ -57,19 +59,38 @@ func MigrateTwoFactorToKeying(x *xorm.Engine) error {
oldEncryptionKey := md5.Sum([]byte(setting.SecretKey))
return db.Iterate(context.Background(), nil, func(ctx context.Context, bean *auth.TwoFactor) error {
messages := make([]string, 0, 100)
ids := make([]int64, 0, 100)
err = db.Iterate(context.Background(), nil, func(ctx context.Context, bean *auth.TwoFactor) error {
decodedStoredSecret, err := base64.StdEncoding.DecodeString(string(bean.Secret))
if err != nil {
return err
messages = append(messages, fmt.Sprintf("two_factor.id=%d, two_factor.uid=%d: base64.StdEncoding.DecodeString: %v", bean.ID, bean.UID, err))
ids = append(ids, bean.ID)
return nil
}
secretBytes, err := secret.AesDecrypt(oldEncryptionKey[:], decodedStoredSecret)
if err != nil {
return err
messages = append(messages, fmt.Sprintf("two_factor.id=%d, two_factor.uid=%d: secret.AesDecrypt: %v", bean.ID, bean.UID, err))
ids = append(ids, bean.ID)
return nil
}
bean.SetSecret(string(secretBytes))
_, err = db.GetEngine(ctx).Cols("secret").ID(bean.ID).Update(bean)
return err
})
if err == nil {
if len(ids) > 0 {
log.Error("Forgejo migration[25]: The following TOTP secrets were found to be corrupted and removed from the database. TOTP is no longer required to login with the associated users. They should be informed because they will need to visit their security settings and configure TOTP again. No other action is required. See https://codeberg.org/forgejo/forgejo/issues/6637 for more context on the various causes for such a corruption.")
for _, message := range messages {
log.Error("Forgejo migration[25]: %s", message)
}
_, err = db.GetEngine(context.Background()).In("id", ids).NoAutoCondition().NoAutoTime().Delete(&auth.TwoFactor{})
}
}
return err
}

View file

@ -36,10 +36,14 @@ func Test_MigrateTwoFactorToKeying(t *testing.T) {
cnt, err := x.Table("two_factor").Count()
require.NoError(t, err)
assert.EqualValues(t, 1, cnt)
assert.EqualValues(t, 2, cnt)
require.NoError(t, MigrateTwoFactorToKeying(x))
cnt, err = x.Table("two_factor").Count()
require.NoError(t, err)
assert.EqualValues(t, 1, cnt)
var twofactor auth.TwoFactor
_, err = x.Table("two_factor").ID(1).Get(&twofactor)
require.NoError(t, err)

View file

@ -56,12 +56,11 @@ func LoadIssuesFromColumn(ctx context.Context, b *project_model.Column, doer *us
ProjectID: b.ProjectID,
SortType: "project-column-sorting",
IsClosed: isClosed,
AllPublic: true,
}
if doer != nil {
issueOpts.User = doer
issueOpts.Org = org
} else {
issueOpts.AllPublic = true
}
issueList, err := Issues(ctx, issueOpts)

View file

@ -33,12 +33,13 @@ func TestPrivateIssueProjects(t *testing.T) {
defer tests.PrintCurrentTest(t)()
issueList, err := issues.LoadIssuesFromColumn(db.DefaultContext, column, user2, org, optional.None[bool]())
require.NoError(t, err)
assert.Len(t, issueList, 1)
assert.EqualValues(t, 6, issueList[0].ID)
assert.Len(t, issueList, 2)
assert.EqualValues(t, 16, issueList[0].ID)
assert.EqualValues(t, 6, issueList[1].ID)
issuesNum, err := issues.NumIssuesInProject(db.DefaultContext, orgProject, user2, org, optional.None[bool]())
require.NoError(t, err)
assert.EqualValues(t, 1, issuesNum)
assert.EqualValues(t, 2, issuesNum)
issuesNum, err = issues.NumIssuesInProject(db.DefaultContext, orgProject, user2, org, optional.Some(true))
require.NoError(t, err)
@ -46,18 +47,27 @@ func TestPrivateIssueProjects(t *testing.T) {
issuesNum, err = issues.NumIssuesInProject(db.DefaultContext, orgProject, user2, org, optional.Some(false))
require.NoError(t, err)
assert.EqualValues(t, 1, issuesNum)
assert.EqualValues(t, 2, issuesNum)
})
t.Run("Anonymous user", func(t *testing.T) {
defer tests.PrintCurrentTest(t)()
issueList, err := issues.LoadIssuesFromColumn(db.DefaultContext, column, nil, org, optional.None[bool]())
require.NoError(t, err)
assert.Empty(t, issueList)
assert.Len(t, issueList, 1)
assert.EqualValues(t, 16, issueList[0].ID)
issuesNum, err := issues.NumIssuesInProject(db.DefaultContext, orgProject, nil, org, optional.None[bool]())
require.NoError(t, err)
assert.EqualValues(t, 1, issuesNum)
issuesNum, err = issues.NumIssuesInProject(db.DefaultContext, orgProject, nil, org, optional.Some(true))
require.NoError(t, err)
assert.EqualValues(t, 0, issuesNum)
issuesNum, err = issues.NumIssuesInProject(db.DefaultContext, orgProject, nil, org, optional.Some(false))
require.NoError(t, err)
assert.EqualValues(t, 1, issuesNum)
})
})
@ -69,12 +79,13 @@ func TestPrivateIssueProjects(t *testing.T) {
defer tests.PrintCurrentTest(t)()
issueList, err := issues.LoadIssuesFromColumn(db.DefaultContext, column, user2, nil, optional.None[bool]())
require.NoError(t, err)
assert.Len(t, issueList, 1)
assert.Len(t, issueList, 2)
assert.EqualValues(t, 7, issueList[0].ID)
assert.EqualValues(t, 1, issueList[1].ID)
issuesNum, err := issues.NumIssuesInProject(db.DefaultContext, userProject, user2, nil, optional.None[bool]())
require.NoError(t, err)
assert.EqualValues(t, 1, issuesNum)
assert.EqualValues(t, 2, issuesNum)
issuesNum, err = issues.NumIssuesInProject(db.DefaultContext, userProject, user2, nil, optional.Some(true))
require.NoError(t, err)
@ -82,19 +93,81 @@ func TestPrivateIssueProjects(t *testing.T) {
issuesNum, err = issues.NumIssuesInProject(db.DefaultContext, userProject, user2, nil, optional.Some(false))
require.NoError(t, err)
assert.EqualValues(t, 1, issuesNum)
assert.EqualValues(t, 2, issuesNum)
})
t.Run("Anonymous user", func(t *testing.T) {
defer tests.PrintCurrentTest(t)()
issueList, err := issues.LoadIssuesFromColumn(db.DefaultContext, column, nil, nil, optional.None[bool]())
require.NoError(t, err)
assert.Empty(t, issueList)
assert.Len(t, issueList, 1)
assert.EqualValues(t, 1, issueList[0].ID)
issuesNum, err := issues.NumIssuesInProject(db.DefaultContext, userProject, nil, nil, optional.None[bool]())
require.NoError(t, err)
assert.EqualValues(t, 1, issuesNum)
issuesNum, err = issues.NumIssuesInProject(db.DefaultContext, userProject, nil, nil, optional.Some(true))
require.NoError(t, err)
assert.EqualValues(t, 0, issuesNum)
issuesNum, err = issues.NumIssuesInProject(db.DefaultContext, userProject, nil, nil, optional.Some(false))
require.NoError(t, err)
assert.EqualValues(t, 1, issuesNum)
})
})
}
func TestPrivateRepoProjects(t *testing.T) {
defer tests.AddFixtures("models/fixtures/TestPrivateRepoProjects/")()
require.NoError(t, unittest.PrepareTestDatabase())
org := unittest.AssertExistsAndLoadBean(t, &organization.Organization{ID: 3})
orgProject := unittest.AssertExistsAndLoadBean(t, &project.Project{ID: 1001, OwnerID: org.ID})
column := unittest.AssertExistsAndLoadBean(t, &project.Column{ID: 1001, ProjectID: orgProject.ID})
t.Run("Partial access", func(t *testing.T) {
defer tests.PrintCurrentTest(t)()
user29 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 29})
issueList, err := issues.LoadIssuesFromColumn(db.DefaultContext, column, user29, org, optional.None[bool]())
require.NoError(t, err)
assert.Len(t, issueList, 1)
assert.EqualValues(t, 6, issueList[0].ID)
issuesNum, err := issues.NumIssuesInProject(db.DefaultContext, orgProject, user29, org, optional.None[bool]())
require.NoError(t, err)
assert.EqualValues(t, 1, issuesNum)
issuesNum, err = issues.NumIssuesInProject(db.DefaultContext, orgProject, user29, org, optional.Some(true))
require.NoError(t, err)
assert.EqualValues(t, 0, issuesNum)
issuesNum, err = issues.NumIssuesInProject(db.DefaultContext, orgProject, user29, org, optional.Some(false))
require.NoError(t, err)
assert.EqualValues(t, 1, issuesNum)
})
t.Run("Full access", func(t *testing.T) {
defer tests.PrintCurrentTest(t)()
user2 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2})
issueList, err := issues.LoadIssuesFromColumn(db.DefaultContext, column, user2, org, optional.None[bool]())
require.NoError(t, err)
assert.Len(t, issueList, 2)
assert.EqualValues(t, 15, issueList[0].ID)
assert.EqualValues(t, 6, issueList[1].ID)
issuesNum, err := issues.NumIssuesInProject(db.DefaultContext, orgProject, user2, org, optional.None[bool]())
require.NoError(t, err)
assert.EqualValues(t, 2, issuesNum)
issuesNum, err = issues.NumIssuesInProject(db.DefaultContext, orgProject, user2, org, optional.Some(true))
require.NoError(t, err)
assert.EqualValues(t, 0, issuesNum)
issuesNum, err = issues.NumIssuesInProject(db.DefaultContext, orgProject, user2, org, optional.Some(false))
require.NoError(t, err)
assert.EqualValues(t, 2, issuesNum)
})
}

View file

@ -49,9 +49,13 @@ type IssuesOptions struct { //nolint
// prioritize issues from this repo
PriorityRepoID int64
IsArchived optional.Option[bool]
Org *organization.Organization // issues permission scope
Team *organization.Team // issues permission scope
User *user_model.User // issues permission scope
// If combined with AllPublic, then private as well as public issues
// that matches the criteria will be returned, if AllPublic is false
// only the private issues will be returned.
Org *organization.Organization // issues permission scope
Team *organization.Team // issues permission scope
User *user_model.User // issues permission scope
}
// applySorts sort an issues-related session based on the provided
@ -196,7 +200,8 @@ func applyRepoConditions(sess *xorm.Session, opts *IssuesOptions) {
} else if len(opts.RepoIDs) > 1 {
opts.RepoCond = builder.In("issue.repo_id", opts.RepoIDs)
}
if opts.AllPublic {
// If permission scoping is set, then we set this condition at a later stage.
if opts.AllPublic && opts.User == nil {
if opts.RepoCond == nil {
opts.RepoCond = builder.NewCond()
}
@ -268,7 +273,14 @@ func applyConditions(sess *xorm.Session, opts *IssuesOptions) {
applyLabelsCondition(sess, opts)
if opts.User != nil {
sess.And(issuePullAccessibleRepoCond("issue.repo_id", opts.User.ID, opts.Org, opts.Team, opts.IsPull.Value()))
cond := issuePullAccessibleRepoCond("issue.repo_id", opts.User.ID, opts.Org, opts.Team, opts.IsPull.Value())
// If AllPublic was set, then also consider all issues in public
// repositories in addition to the private repositories the user has access
// to.
if opts.AllPublic {
cond = cond.Or(builder.In("issue.repo_id", builder.Select("id").From("repository").Where(builder.Eq{"is_private": false})))
}
sess.And(cond)
}
}
@ -329,6 +341,9 @@ func issuePullAccessibleRepoCond(repoIDstr string, userID int64, org *organizati
builder.Or(
repo_model.UserOrgUnitRepoCond(repoIDstr, userID, org.ID, unitType), // team member repos
repo_model.UserOrgPublicUnitRepoCond(userID, org.ID), // user org public non-member repos, TODO: check repo has issues
builder.And(
builder.In("issue.repo_id", builder.Select("id").From("repository").Where(builder.Eq{"owner_id": org.ID})),
repo_model.UserAccessRepoCond(repoIDstr, userID)), // user can access org repo in a unit independent way
),
)
}

View file

@ -7,3 +7,12 @@
last_used_passcode:
created_unix: 1564253724
updated_unix: 1564253724
-
id: 2
uid: 23
secret: badbad
scratch_salt: badbad
scratch_hash: badbad
last_used_passcode:
created_unix: 1564253724
updated_unix: 1564253724

View file

@ -842,48 +842,46 @@ func countUsers(ctx context.Context, opts *CountUserFilter) int64 {
// VerifyUserActiveCode verifies that the code is valid for the given purpose for this user.
// If delete is specified, the token will be deleted.
func VerifyUserAuthorizationToken(ctx context.Context, code string, purpose auth.AuthorizationPurpose, delete bool) (*User, error) {
func VerifyUserAuthorizationToken(ctx context.Context, code string, purpose auth.AuthorizationPurpose) (user *User, deleteToken func() error, err error) {
lookupKey, validator, found := strings.Cut(code, ":")
if !found {
return nil, nil
return nil, nil, nil
}
authToken, err := auth.FindAuthToken(ctx, lookupKey, purpose)
if err != nil {
if errors.Is(err, util.ErrNotExist) {
return nil, nil
return nil, nil, nil
}
return nil, err
return nil, nil, err
}
if authToken.IsExpired() {
return nil, auth.DeleteAuthToken(ctx, authToken)
return nil, nil, auth.DeleteAuthToken(ctx, authToken)
}
rawValidator, err := hex.DecodeString(validator)
if err != nil {
return nil, err
return nil, nil, err
}
if subtle.ConstantTimeCompare([]byte(authToken.HashedValidator), []byte(auth.HashValidator(rawValidator))) == 0 {
return nil, errors.New("validator doesn't match")
return nil, nil, errors.New("validator doesn't match")
}
u, err := GetUserByID(ctx, authToken.UID)
if err != nil {
if IsErrUserNotExist(err) {
return nil, nil
return nil, nil, nil
}
return nil, err
return nil, nil, err
}
if delete {
if err := auth.DeleteAuthToken(ctx, authToken); err != nil {
return nil, err
}
deleteToken = func() error {
return auth.DeleteAuthToken(ctx, authToken)
}
return u, nil
return u, deleteToken, nil
}
// ValidateUser check if user is valid to insert / update into database

View file

@ -741,13 +741,13 @@ func TestVerifyUserAuthorizationToken(t *testing.T) {
assert.True(t, ok)
t.Run("Wrong purpose", func(t *testing.T) {
u, err := user_model.VerifyUserAuthorizationToken(db.DefaultContext, code, auth.PasswordReset, false)
u, _, err := user_model.VerifyUserAuthorizationToken(db.DefaultContext, code, auth.PasswordReset)
require.NoError(t, err)
assert.Nil(t, u)
})
t.Run("No delete", func(t *testing.T) {
u, err := user_model.VerifyUserAuthorizationToken(db.DefaultContext, code, auth.UserActivation, false)
u, _, err := user_model.VerifyUserAuthorizationToken(db.DefaultContext, code, auth.UserActivation)
require.NoError(t, err)
assert.EqualValues(t, user.ID, u.ID)
@ -757,9 +757,10 @@ func TestVerifyUserAuthorizationToken(t *testing.T) {
})
t.Run("Delete", func(t *testing.T) {
u, err := user_model.VerifyUserAuthorizationToken(db.DefaultContext, code, auth.UserActivation, true)
u, deleteToken, err := user_model.VerifyUserAuthorizationToken(db.DefaultContext, code, auth.UserActivation)
require.NoError(t, err)
assert.EqualValues(t, user.ID, u.ID)
require.NoError(t, deleteToken())
authToken, err := auth.FindAuthToken(db.DefaultContext, lookupKey, auth.UserActivation)
require.ErrorIs(t, err, util.ErrNotExist)

View file

@ -7,6 +7,7 @@ import (
"fmt"
"code.gitea.io/gitea/modules/markup"
mdutil "code.gitea.io/gitea/modules/markup/markdown/util"
"code.gitea.io/gitea/modules/util"
"github.com/yuin/goldmark/ast"
@ -19,7 +20,7 @@ func (g *ASTTransformer) transformHeading(_ *markup.RenderContext, v *ast.Headin
v.SetAttribute(attr.Name, []byte(fmt.Sprintf("%v", attr.Value)))
}
}
txt := v.Lines().Value(reader.Source())
txt := mdutil.Text(v, reader.Source())
header := markup.Header{
Text: util.UnsafeBytesToString(txt),
Level: v.Level,

View file

@ -1779,6 +1779,10 @@ runners.task_list.repository = Хранилище
runners.description = Описание
runs.no_workflows.help_no_write_access = За да научите повече за Forgejo Actions, вижте <a target="_blank" rel="noopener noreferrer" href="%s">документацията</a>.
variables.management = Управление на променливи
variables.id_not_exist = Променлива с идентификатор %d не съществува.
variables.not_found = Променливата не е открита.
[heatmap]
less = По-малко
number_of_contributions_in_the_last_12_months = %s приноса през последните 12 месеца
@ -1815,6 +1819,8 @@ code_frequency.what = честота на промените
type-1.display_name = Индивидуален проект
deleted.display_name = Изтрит проект
[search]
no_results = Няма намерени съответстващи резултати.
team_kind = Търсене на екипи...

View file

@ -175,7 +175,7 @@ exact = Exacte
exact_tooltip = Inclou només resultats que són exactament el terme de cerca
issue_kind = Cerca problemes...
regexp = Expressió regular
regexp = RegExp
regexp_tooltip = Interpreta el terme de cerca com una expressió regular
[heatmap]
@ -215,7 +215,7 @@ reinstall_error = Estas intentant instaŀlar sobre una base de dades existent de
reinstall_confirm_message = Reinstaŀlar amb una base de dades existent de Forgejo pot causar diferents problemes. En la majoria de casos, s'hauria d'utilitzar l'"app.ini" existent per executar Forgejo. Si saps el que estàs fent, confirma el seguent:
no_admin_and_disable_registration = No pot deshabilitar l'autoregistre d'usuaris sense crear un compte d'administrador.
err_admin_name_is_reserved = El nom d'usuari "Administrador" no es vàlid: està reservat
smtp_addr = Hoste SMPT
smtp_addr = Hoste SMTP
smtp_port = Port SMPT
smtp_from = Enviar correu com a
mailer_user = Nom d'usuari SMTP
@ -414,6 +414,10 @@ password_pwned_err = No s'ha pogut completar la sol·licitud a HaveIBeenPwned
last_admin = No podeu eliminar l'últim usuari administrador. Com a mínim n'hi ha d'haver un.
back_to_sign_in = Torneu a entrar
openid_connect_desc = No s'ha reconegut la URI OpenID. Vinculeu-la amb un compte nou aquí.
openid_register_desc = No s'ha reconegut la URI OpenID. Vinculeu-la amb un compte nou aquí.
sign_in_openid = Accediu amb OpenID
[editor]
buttons.indent.tooltip = Aniua els elements un nivell
buttons.unindent.tooltip = Desaniuna els elements un nivell
@ -476,4 +480,8 @@ activate_account = Si us plau, activeu el compte
activate_account.text_1 = Hola <b>%[1]s</b>, gràcies per registrar-te a %[2]s!
admin.new_user.user_info = Informació d'usuari
admin.new_user.text = Si us plau, <a href="%s">cliqueu aui</a> per administrar aquest usuari des del panell d'administració.
register_notify = Benvinguts a %s
register_notify = Benvinguts a %s
activate_account.text_2 = Si us plau, cliqueu l'enllaç següent per activar el vostre compte en <b>%s</b>:
activate_email = Verifica la teva adreça de correu electrònic
activate_email.text = Si us plau, cliqueu el següent enllaç per verificar la vostra adreça de correu electrònic en <b>%s</b>
admin.new_user.subject = Nou usuari %s s'acaba d'enregistrar

View file

@ -220,7 +220,7 @@ network_error=Chyba sítě
server_internal = Interní chyba serveru
[startpage]
app_desc=Bezproblémová samostatně hostovatelná služba Git
app_desc=Jednoduchá, samostatně hostovatelná služba Git
install=Jednoduché na instalaci
install_desc=Jednoduše <a target="_blank" rel="noopener noreferrer" href="%[1]s">spusťte binární soubor</a> pro vaši platformu, nasaďte jej pomocí <a target="_blank" rel="noopener noreferrer" href="%[2]s">Dockeru</a> nebo si jej stáhněte jako <a target="_blank" rel="noopener noreferrer" href="%[3]s">balíček</a>.
platform=Multiplatformní
@ -652,8 +652,8 @@ cannot_add_org_to_team=Organizace nemůže být přidána jako člen týmu.
duplicate_invite_to_team=Uživatel byl již pozván jako člen týmu.
organization_leave_success=Úspěšně jste opustili organizaci %s.
invalid_ssh_key=Nelze ověřit váš SSH klíč: %s
invalid_gpg_key=Nelze ověřit váš GPG klíč: %s
invalid_ssh_key=Nepodařilo se ověřit váš klíč SSH: %s
invalid_gpg_key=Nepodařilo se ověřit váš klíč GPG: %s
invalid_ssh_principal=Neplatný SSH Principal certifikát: %s
must_use_public_key=Zadaný klíč je soukromý klíč. Nenahrávejte svůj soukromý klíč nikde. Místo toho použijte váš veřejný klíč.
unable_verify_ssh_key=Nepodařilo se ověřit klíč SSH, zkontrolujte, zda neobsahuje chyby.
@ -694,7 +694,7 @@ watched=Sledované repozitáře
code=Kód
projects=Projekty
overview=Přehled
following_few=%d sledovaní
following_few=%d sledovaných
follow=Sledovat
unfollow=Přestat sledovat
user_bio=Životopis
@ -716,7 +716,7 @@ follow_blocked_user = Tohoto uživatele nemůžete sledovat, protože jste si je
block = Zablokovat
unblock = Odblokovat
followers_one = %d sledující
following_one = %d následuje
following_one = %d sledovaný
followers.title.one = Sledující
followers.title.few = Sledující
following.title.one = Sleduje
@ -857,51 +857,51 @@ add_new_gpg_key=Přidat klíč GPG
key_content_ssh_placeholder=Začíná s „ssh-ed25519“, „ssh-rsa“, „ecdsa-sha2-nistp256“, „ecdsa-sha2-nistp384“, „ecdsa-sha2-nistp521“, „sk-ecdsa-sha2-nistp256@openssh.com“ nebo „sk-ssh-ed25519@openssh.com“
key_content_gpg_placeholder=Začíná s „-----BEGIN PGP PUBLIC KEY BLOCK-----“
add_new_principal=Přidat principal
ssh_key_been_used=Tento SSH klíč byl na server již přidán.
ssh_key_name_used=SSH klíč se stejným jménem již u vašeho účtu existuje.
ssh_key_been_used=Tento klíč SSH byl na server již přidán.
ssh_key_name_used=U vašeho účtu již existuje klíč SSH se stejným názvem.
ssh_principal_been_used=Tento SSH Principal certifikát již byl přidán na server.
gpg_key_id_used=Veřejný GPG klíč se stejným ID již existuje.
gpg_no_key_email_found=Tento GPG klíč neodpovídá žádné aktivované e-mailové adrese spojené s vaším účtem. Může být stále přidán, pokud podepíšete zadaný token.
gpg_key_id_used=Veřejný klíč GPG se stejným ID již existuje.
gpg_no_key_email_found=Tento klíč GPG neodpovídá žádné aktivované e-mailové adrese spojené s vaším účtem. Může být stále přidán, pokud podepíšete zadaný token.
gpg_key_matched_identities=Odpovídající identity:
gpg_key_matched_identities_long=Vložené identity v tomto klíči odpovídají následujícím aktivovaným e-mailovým adresám tohoto uživatele. Revize odpovídající těmto e-mailovým adresám lze ověřit pomocí tohoto klíče.
gpg_key_verified=Ověřený klíč
gpg_key_verified_long=Klíč byl ověřen pomocí tokenu a může být použit k ověření revizí shodujících se s libovolnou aktivovanou e-mailovou adresou pro tohoto uživatele navíc k jakékoli odpovídající identitě tohoto klíče.
gpg_key_verify=Ověřit
gpg_invalid_token_signature=Zadaný GPG klíč, podpis a token se neshodují nebo je token zastaralý.
gpg_invalid_token_signature=Zadaný klíč GPG, podpis a token se neshodují nebo je token zastaralý.
gpg_token_required=Musíte zadat podpis pro níže uvedený token
gpg_token=Token
gpg_token_help=Podpis můžete vygenerovat pomocí:
gpg_token_code=echo "%s" | gpg -a --default-key %s --detach-sig
gpg_token_signature=Zakódovaný podpis GPG
key_signature_gpg_placeholder=Začíná textem „-----BEGIN PGP SIGNATURE-----“
verify_gpg_key_success=GPG klíč „%s“ byl ověřen.
verify_gpg_key_success=Klíč GPG „%s“ byl ověřen.
ssh_key_verified=Ověřený klíč
ssh_key_verified_long=Klíč byl ověřen pomocí tokenu a může být použit k ověření revizí shodujících se s libovolnou vaší aktivovanou e-mailovou adresou pro tohoto uživatele.
ssh_key_verify=Ověřit
ssh_invalid_token_signature=Zadaný SSH klíč, podpis nebo token se neshodují nebo je token zastaralý.
ssh_invalid_token_signature=Zadaný klíč SSH, podpis nebo token se neshodují nebo je token zastaralý.
ssh_token_required=Musíte zadat podpis pro níže uvedený token
ssh_token=Token
ssh_token_help=Podpis můžete vygenerovat pomocí:
ssh_token_signature=Zakódovaný podpis SSH
key_signature_ssh_placeholder=Začíná s „-----BEGIN SSH SIGNATURE-----“
verify_ssh_key_success=SSH klíč „%s“ byl ověřen.
verify_ssh_key_success=Klíč SSH „%s“ byl ověřen.
subkeys=Podklíče
key_id=ID klíče
key_name=Název klíče
key_content=Obsah
principal_content=Obsah
add_key_success=SSH klíč „%s“ byl přidán.
add_gpg_key_success=GPG klíč „%s“ byl přidán.
add_gpg_key_success=Klíč GPG „%s“ byl přidán.
add_principal_success=Byl přidán SSH Principal certifikát „%s“.
delete_key=Odstranit
ssh_key_deletion=Odebrat klíč SSH
gpg_key_deletion=Odebrat klíč GPG
ssh_key_deletion=Odstranit klíč SSH
gpg_key_deletion=Odstranit klíč GPG
ssh_principal_deletion=Odstranit SSH Principal certifikát
ssh_key_deletion_desc=Odstranění SSH klíče zruší jeho přístup k vašemu účtu. Pokračovat?
ssh_key_deletion_desc=Odstranění klíče SSH zruší jeho přístup k vašemu účtu. Pokračovat?
gpg_key_deletion_desc=Odstraněním klíče GPG zneplatníte ověření revizí, které jsou jím podepsány. Pokračovat?
ssh_principal_deletion_desc=Odstranění SSH Principal certifikátu zruší jeho přístup k vašemu účtu. Pokračovat?
ssh_key_deletion_success=SSH klíč byl odstraněn.
gpg_key_deletion_success=GPG klíč byl odstraněn.
ssh_key_deletion_success=Klíč SSH byl odstraněn.
gpg_key_deletion_success=Klíč GPG byl odstraněn.
ssh_principal_deletion_success=SSH Principal certifikát byl odstraněn.
added_on=Přidáno %s
valid_until_date=Platné do %s
@ -916,8 +916,8 @@ principal_state_desc=Tento SSH Principal certifikát byl použit během posledn
show_openid=Zobrazit na profilu
hide_openid=Odstranit z profilu
ssh_disabled=SSH je zakázáno
ssh_signonly=SSH je v současné době zakázáno, proto jsou tyto klíče použity pouze pro ověření podpisu revizí.
ssh_externally_managed=Tento SSH klíč je spravován externě pro tohoto uživatele
ssh_signonly=SSH je aktuálně zakázáno, proto jsou tyto klíče použity pouze pro ověření podpisu revizí.
ssh_externally_managed=Tento klíč SSH je pro tohoto uživatele spravován externě
manage_social=Správa propojených účtů sociálních sítí
social_desc=Tyto účty sociálních sítí lze použít k přihlášení k vašemu účtu. Ujistěte se, že jsou všechny vaše.
unbind=Odpojit
@ -928,7 +928,7 @@ generate_new_token=Vygenerovat nový token
tokens_desc=Tyto tokeny umožňují přístup k vašemu účtu pomocí Forgejo API.
token_name=Název tokenu
generate_token=Vygenerovat token
generate_token_success=Váš nový token byl vytvořen. Zkopírujte jej nyní protože se již znovu nezobrazí.
generate_token_success=Nový token byl vygenerován. Zkopírujte jej nyní, jelikož již nebude znovu zobrazen.
generate_token_name_duplicate=<strong>%s</strong> byl již použit jako název aplikace. Použijte prosím nový.
delete_token=Smazat
access_token_deletion=Odstranit přístupový token
@ -999,7 +999,7 @@ twofa_failed_get_secret=Nepodařilo se získat tajemství.
webauthn_desc=Bezpečnostní klíče jsou hardwarová zařízení obsahující kryptografické klíče. Mohou být použity pro dvoufázové ověření. Bezpečnostní klíče musí podporovat standard <a rel="noreferrer" target="_blank" href="%s">WebAuthn Authenticator</a>.
webauthn_register_key=Přidat bezpečnostní klíč
webauthn_nickname=Přezdívka
webauthn_delete_key=Odebrat bezpečnostní klíč
webauthn_delete_key=Odstranit bezpečnostní klíč
webauthn_delete_key_desc=Pokud odstraníte bezpečnostní klíč, již se s ním nebudete moci přihlásit. Pokračovat?
webauthn_key_loss_warning=Pokud ztratíte své bezpečnostní klíče, ztratíte přístup k vašemu účtu.
webauthn_alternative_tip=Možná budete chtít nakonfigurovat další metodu ověřování.
@ -1195,7 +1195,7 @@ need_auth=Ověření
migrate_options=Možnosti migrace
migrate_service=Migrační služba
migrate_options_mirror_helper=Tento repozitář bude zrcadlem
migrate_options_lfs=Migrovat LFS soubory
migrate_options_lfs=Migrovat soubory LFS
migrate_options_lfs_endpoint.label=Endpoint LFS
migrate_options_lfs_endpoint.description=Migrace se pokusí použít váš vzdálený Git pro <a target="_blank" rel="noopener noreferrer" href="%s">určení LFS serveru</a>. Můžete také zadat vlastní koncový bod, pokud jsou data LFS repozitáře uložena někde jinde.
migrate_options_lfs_endpoint.description.local=Podporována je také cesta k lokálnímu serveru.
@ -1245,7 +1245,7 @@ migrate.cancel_migrating_title=Zrušit migraci
migrate.cancel_migrating_confirm=Chcete zrušit tuto migraci?
mirror_from=zrcadlo
forked_from=rozštěpen z
forked_from=forknuto z
generated_from=generováno z
fork_from_self=Nemůžete vytvořit fork vašeho vlastního repozitáře.
fork_guest_user=Přihlaste se pro vytvoření forku tohoto repozitáře.
@ -1292,7 +1292,7 @@ commit=Revize
release=Vydání
releases=Vydání
tag=Značka
released_this=vydal/a toto
released_this=vytvořil/a toto vydání
tagged_this=označil/a
file.title=%s v %s
file_raw=Nezpracovaný
@ -1342,7 +1342,7 @@ editor.new_file=Nový soubor
editor.upload_file=Nahrát soubor
editor.edit_file=Upravit soubor
editor.preview_changes=Náhled změn
editor.cannot_edit_lfs_files=LFS soubory nemohou být upravovány přes webové rozhraní.
editor.cannot_edit_lfs_files=Soubory LFS nemohou být upravovány přes webové rozhraní.
editor.cannot_edit_annex_files=Annex soubory nemohou být upravovány přes webové rozhraní.
editor.cannot_edit_non_text_files=Binární soubory nemohou být upravovány přes webové rozhraní.
editor.edit_this_file=Upravit soubor
@ -1539,7 +1539,7 @@ issues.remove_milestone_at=`odstranil/a toto z milníku <b>%s</b> %s`
issues.remove_project_at=`odstranil/a toto z projektu <b>%s</b> %s`
issues.deleted_milestone=`(odstraněno)`
issues.deleted_project=`(odstraněno)`
issues.self_assign_at=`přiřadil/a sobě toto %s`
issues.self_assign_at=`přiřadil/a sobě tento problém %s`
issues.add_assignee_at=`byl přiřazen <b>%s</b> %s`
issues.remove_assignee_at=`byl odstraněn z přiřazení <b>%s</b> %s`
issues.remove_self_assignment=`odstranil/a jejich přiřazení %s`
@ -1832,7 +1832,7 @@ pulls.viewed_files_label=%[1]d / %[2]d souborů zobrazeno
pulls.expand_files=Rozbalit všechny soubory
pulls.collapse_files=Sbalit všechny soubory
pulls.compare_base=sloučit do
pulls.compare_compare=natáhnout z
pulls.compare_compare=sloučit z
pulls.switch_comparison_type=Přepnout typ porovnání
pulls.switch_head_and_base=Prohodit hlavní a základní větev
pulls.filter_branch=Filtrovat větev
@ -1901,7 +1901,7 @@ pulls.no_merge_wip=Tato žádost nemůže být sloučena, protože je označena
pulls.no_merge_not_ready=Tento žádost není připravena na sloučení, zkontrolujte stav posouzení a kontroly stavu.
pulls.no_merge_access=Nemáte oprávnění sloučit tuto žádost.
pulls.merge_pull_request=Vytvořit slučovací revizi
pulls.rebase_merge_pull_request=Rebase pak fast-forward
pulls.rebase_merge_pull_request=Provést rebase a poté provést fast-forward
pulls.rebase_merge_commit_pull_request=Provést rebase a poté vytvořit slučovací revizi
pulls.squash_merge_pull_request=Vytvořit squash revizi
pulls.merge_manually=Sloučeno ručně
@ -2010,7 +2010,7 @@ ext_wiki=Externí wiki
ext_wiki.desc=Odkaz do externí Wiki.
wiki=Wiki
wiki.welcome=Vítejte ve Wiki.
wiki.welcome=Vítejte ve wiki.
wiki.welcome_desc=Wiki vám umožní psát a sdílet dokumentaci se spolupracovníky.
wiki.desc=Pište a sdílejte dokumentaci se spolupracovníky.
wiki.create_first_page=Vytvořte první stránku
@ -2022,18 +2022,18 @@ wiki.page_content=Obsah stránky
wiki.default_commit_message=Napište poznámku k této aktualizaci stránky (nepovinné).
wiki.save_page=Uložit stránku
wiki.last_commit_info=Uživatel %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.file_revision=Revize stránky
wiki.wiki_page_revisions=Revize stránky
wiki.back_to_wiki=Zpět na wiki stránku
wiki.back_to_wiki=Zpět na stránku wiki
wiki.delete_page_button=Smazat stránku
wiki.delete_page_notice_1=Odstranění Wiki stránky „%s“ nemůže být vráceno zpět. Pokračovat?
wiki.page_already_exists=Stránka Wiki se stejným názvem již existuje.
wiki.reserved_page=Jméno Wiki stránky „%s“ je rezervováno.
wiki.delete_page_notice_1=Odstranění stránky wiki „%s“ je nevratné. Pokračovat?
wiki.page_already_exists=Stránka wiki se stejným názvem již existuje.
wiki.reserved_page=Název stránky wiki „%s“ je rezervován.
wiki.pages=Stránky
wiki.last_updated=Naposledy aktualizováno: %s
wiki.page_name_desc=Zadejte název této Wiki stránky. Některé speciální názvy jsou: „Home“, „_Sidebar“ a „_Footer“.
wiki.page_name_desc=Zadejte název této stránky wiki. Některé speciální názvy jsou: „Home“, „_Sidebar“ a „_Footer“.
wiki.original_git_entry_tooltip=Zobrazit originální Git soubor namísto použití přátelského odkazu.
activity=Aktivita
@ -2051,9 +2051,9 @@ activity.active_prs_count_n=<strong>%d</strong> aktivních žádostí o sloučen
activity.merged_prs_count_1=Sloučená žádost
activity.merged_prs_count_n=Sloučené žádosti
activity.opened_prs_count_1=Navrhovaná žádost o sloučení
activity.opened_prs_count_n=Navrhované žádosti o sloučení
activity.title.user_1=%d uživatel
activity.title.user_n=%d uživatelů
activity.opened_prs_count_n=Navržené žádosti o sloučení
activity.title.user_1=%d uživatelem
activity.title.user_n=%d uživateli
activity.title.prs_1=%d žádost o sloučení
activity.title.prs_n=%d žádostí o sloučení
activity.title.prs_merged_by=%s sloučil %s
@ -2078,23 +2078,23 @@ activity.unresolved_conv_desc=Tyto nedávno změněné problémy a žádosti o s
activity.unresolved_conv_label=Otevřít
activity.title.releases_1=%d vydání
activity.title.releases_n=%d vydání
activity.title.releases_published_by=%s publikoval %s
activity.title.releases_published_by=%s zveřejněno %s
activity.published_release_label=Vydání
activity.no_git_activity=V tomto období nebyla žádná aktivita přispěvatelů.
activity.git_stats_exclude_merges=Při vyloučení slučování,
activity.git_stats_exclude_merges=S výjimkou slučování
activity.git_stats_author_1=%d autor
activity.git_stats_author_n=%d autoři
activity.git_stats_author_n=%d auto
activity.git_stats_pushed_1=nahrál
activity.git_stats_pushed_n=nahrály
activity.git_stats_pushed_n=nahrálo
activity.git_stats_commit_1=%d revize
activity.git_stats_commit_n=%d revizí
activity.git_stats_push_to_branch=do %s a
activity.git_stats_push_to_branch=do větve %s a
activity.git_stats_push_to_all_branches=do všech větví.
activity.git_stats_on_default_branch=Na %s,
activity.git_stats_on_default_branch=Větev %s:
activity.git_stats_file_1=%d soubor
activity.git_stats_file_n=%d soubory
activity.git_stats_files_changed_1=se změnil
activity.git_stats_files_changed_n=se změnily
activity.git_stats_file_n=%d souborů
activity.git_stats_files_changed_1=byl změněn
activity.git_stats_files_changed_n=bylo změněno
activity.git_stats_additions=a bylo zde
activity.git_stats_addition_1=%d přidání
activity.git_stats_addition_n=%d přidání
@ -2102,7 +2102,7 @@ activity.git_stats_and_deletions=a
activity.git_stats_deletion_1=%d odebrání
activity.git_stats_deletion_n=%d odebrání
contributors.contribution_type.filter_label = Typ přispění:
contributors.contribution_type.filter_label = Typ příspěvku:
contributors.contribution_type.commits=Revize
search=Vyhledat
@ -2139,7 +2139,7 @@ settings.mirror_settings.docs.doc_link_title=Jak mohu zrcadlit repozitáře?
settings.mirror_settings.docs.pulling_remote_title=Stahování ze vzdáleného repozitáře
settings.mirror_settings.mirrored_repository=Zrcadlený repozitář
settings.mirror_settings.direction=Směr
settings.mirror_settings.direction.pull=Natáhnout
settings.mirror_settings.direction.pull=Sloučit
settings.mirror_settings.direction.push=Nahrát
settings.mirror_settings.last_update=Poslední aktualizace
settings.mirror_settings.push_mirror.none=Nenastavena žádná zrcadla pro nahrání
@ -2159,17 +2159,17 @@ settings.wiki_desc=Povolit wiki repozitáře
settings.use_internal_wiki=Používat vestavěnou wiki
settings.use_external_wiki=Použít externí wiki
settings.external_wiki_url=Adresa URL externí wiki
settings.external_wiki_url_error=URL externí wiki platné URL.
settings.external_wiki_url_desc=Když návštěvníci kliknou na záložku Wiki, jsou přesměrování na URL externí Wiki.
settings.issues_desc=Povolit systém problémů repozitáře
settings.use_internal_issue_tracker=Použít vestavěný systém problémů
settings.use_external_issue_tracker=Použít externí systém problémů
settings.external_tracker_url=Adresa URL externího systému problémů
settings.external_tracker_url_error=Adresa URL externího systému problémů není platnou adresou URL.
settings.external_tracker_url_desc=Pokud návštěvníci kliknou na záložku problémů, budou přesměrování na externí systém problémů.
settings.tracker_url_format=Formát adresy URL externího systému problémů
settings.tracker_url_format_error=Formát adresy URL externího systému problémů není platná adresa URL.
settings.tracker_issue_style=Formát čísel externího systému problémů
settings.external_wiki_url_error=Adresa externí wiki není platná adresa URL.
settings.external_wiki_url_desc=Když návštěvníci kliknou na záložku wiki, budou přesměrováni na adresu externí wiki.
settings.issues_desc=Povolit systém sledování problémů repozitáře
settings.use_internal_issue_tracker=Použít vestavěný systém sledování problémů
settings.use_external_issue_tracker=Použít externí systém sledování problémů
settings.external_tracker_url=Adresa URL externího systému sledování problémů
settings.external_tracker_url_error=Adresa URL externího systému sledování problémů není platnou adresou URL.
settings.external_tracker_url_desc=Pokud návštěvníci kliknou na záložku problémů, budou přesměrování na externí systém sledování problémů.
settings.tracker_url_format=Formát adresy URL externího systému sledování problémů
settings.tracker_url_format_error=Formát adresy URL externího systému sledování problémů není platná adresa URL.
settings.tracker_issue_style=Formát čísel externího systému sledování problémů
settings.tracker_issue_style.numeric=Číselný
settings.tracker_issue_style.alphanumeric=Alfanumerický
settings.tracker_issue_style.regexp=Regulární výraz
@ -2180,9 +2180,9 @@ settings.enable_timetracker=Povolit sledování času
settings.allow_only_contributors_to_track_time=Povolit sledování času pouze přispěvatelům
settings.pulls_desc=Povolit žádosti o sloučení
settings.pulls.ignore_whitespace=Ignorovat bílé znaky při konfliktech
settings.pulls.enable_autodetect_manual_merge=Povolit autodetekci ručních sloučení (Poznámka: V některých zvláštních případech může dojít k nesprávnému rozhodnutí)
settings.pulls.allow_rebase_update=Povolit aktualizaci větve požadavku na natažení pomocí rebase
settings.pulls.default_delete_branch_after_merge=Ve výchozím nastavení mazat větev požadavku na natažení po jeho sloučení
settings.pulls.enable_autodetect_manual_merge=Povolit automatickou detekci ručních sloučení (upozornění: v některých zvláštních případech může dojít k nesprávnému rozhodnutí)
settings.pulls.allow_rebase_update=Povolit aktualizaci větve žádosti o sloučení pomocí rebase
settings.pulls.default_delete_branch_after_merge=Ve výchozím nastavení odstranit větev žádosti o sloučení po jejím sloučení
settings.pulls.default_allow_edits_from_maintainers=Ve výchozím nastavení povolit úpravy od správců
settings.releases_desc=Povolit vydání v repozitáři
settings.packages_desc=Povolit registr balíčků repozitáře
@ -2239,14 +2239,14 @@ settings.trust_model.collaboratorcommitter=Spolupracovník+Přispěvatel
settings.trust_model.collaboratorcommitter.long=Spolupracovník+Přispěvatel: Důvěřovat podpisům od spolupracovníků, které odpovídají tvůrci revize
settings.trust_model.collaboratorcommitter.desc=Platné podpisy spolupracovníků tohoto repozitáře budou označeny jako „důvěryhodné“, pokud se shodují s přispěvatelem. V opačném případě budou platné podpisy označeny jako "nedůvěryhodné", pokud se podpis shoduje s přispěvatelem a „neodpovídajícím“ v opačném případě. To přinutí Forgejo, aby bylo označeno jako autor podepsaných revizí se skutečným přispěvatelem označeným jako Co-Authored-By: a Co-Committed-By: na konci revize. Výchozí klíč Forgejo musí odpovídat uživateli v databázi.
settings.wiki_delete=Odstranit data wiki
settings.wiki_delete_desc=Smazání Wiki dat repozitáře je trvalé a nemůže být vráceno zpět.
settings.wiki_delete_desc=Smazání dat wiki repozitáře je trvalé a je nevratné.
settings.wiki_delete_notices_1=- Natrvalo odstraní a zakáže wiki repozitáře pro %s.
settings.confirm_wiki_delete=Odstranit data wiki
settings.wiki_deletion_success=Wiki data repozitáře byla odstraněna.
settings.wiki_deletion_success=Data wiki repozitáře byla odstraněna.
settings.delete=Odstranit tento repozitář
settings.delete_desc=Smazání repozitáře je trvalé a nemůže být vráceno zpět.
settings.delete_notices_1=- Tuto operaci <strong>nelze</strong> zvrátit.
settings.delete_notices_2=- Tato operace trvale smaže repozitář <strong>%s</strong> včetně kódu, problémů, komentářů, dat wiki a nastavení spolupracovníků.
settings.delete_notices_1=- Tato operace je <strong>NEVRATNÁ</strong>.
settings.delete_notices_2=- Tato operace trvale odstraní repozitář <strong>%s</strong> včetně kódu, problémů, komentářů, dat wiki a nastavení spolupracovníků.
settings.delete_notices_fork_1=- Fork tohoto repozitáře bude po smazání nezávislý.
settings.deletion_success=Repozitář byl odstraněn.
settings.update_settings_success=Nastavení repozitáře bylo aktualizováno.
@ -2317,7 +2317,7 @@ settings.event_delete_desc=Větev nebo značka smazána.
settings.event_fork=Fork
settings.event_fork_desc=Repozitář rozštěpen.
settings.event_wiki=Wiki
settings.event_wiki_desc=Wiki stránka vytvořena, přejmenována nebo smazána.
settings.event_wiki_desc=Stránka wiki vytvořena, přejmenována nebo smazána.
settings.event_release=Vydání
settings.event_release_desc=Vydání v tomto repozitáři bylo publikováno, aktualizováno nebo smazáno.
settings.event_push=Nahrát
@ -2391,7 +2391,7 @@ settings.add_deploy_key=Přidat klíč pro nasazení
settings.deploy_key_desc=Klíče pro nasazení mají k tomuto repozitáři přístup pouze pro čtení.
settings.is_writable=Povolit zápis
settings.is_writable_info=Povolit tomuto klíči pro nasazení <strong>nahrávání</strong> do tohoto repozitáře.
settings.no_deploy_keys=Dosud nejsou žádné klíče pro nasazení.
settings.no_deploy_keys=Zatím nebyly vytvořeny žádné klíče pro nasazení.
settings.title=Název
settings.deploy_key_content=Obsah
settings.key_been_used=Klíč pro nasazení se stejným obsahem je již používán.
@ -2464,7 +2464,7 @@ settings.block_on_official_review_requests_desc=Slučování nebude možné, pok
settings.block_outdated_branch=Blokovat sloučení, pokud je požadavek na natažení zastaralý
settings.block_outdated_branch_desc=Slučování nebude možné, pokud je hlavní větev za základní větví.
settings.default_branch_desc=Vybrat výchozí větev repozitáře pro žádosti o sloučení a příspěvky kódu:
settings.merge_style_desc=Sloučit styly
settings.merge_style_desc=Styly slučování
settings.default_merge_style_desc=Výchozí styl sloučení
settings.choose_branch=Vyberte větev…
settings.no_protected_branch=Nemáte žádné chráněné větve.
@ -2480,7 +2480,7 @@ settings.tags.protection.allowed.users=Povolení uživatelé
settings.tags.protection.allowed.teams=Povolené týmy
settings.tags.protection.allowed.noone=Nikdo
settings.tags.protection.create=Přidat pravidlo
settings.tags.protection.none=Neexistují žádné chráněné značky.
settings.tags.protection.none=Nebyly vytvořeny žádné chráněné značky.
settings.tags.protection.pattern.description=Můžete použít jediné jméno nebo vzor glob nebo regulární výraz, který bude odpovídat více značek. Přečtěte si více v <a target="_blank" rel="noopener" href="%s">průvodci chráněnými značkami</a>.
settings.bot_token=Token bota
settings.chat_id=ID chatu
@ -2503,8 +2503,8 @@ settings.unarchive.success=Repozitář byl úspěšně obnoven.
settings.unarchive.error=Nastala chyba při obnovování repozitáře. Prohlédněte si záznam pro více detailů.
settings.update_avatar_success=Avatar repozitáře byl aktualizován.
settings.lfs=LFS
settings.lfs_filelist=LFS soubory uložené v tomto repozitáři
settings.lfs_no_lfs_files=V tomto repozitáři nejsou uloženy žádné LFS soubory
settings.lfs_filelist=Soubory LFS uložené v tomto repozitáři
settings.lfs_no_lfs_files=V tomto repozitáři nejsou uloženy žádné soubory LFS
settings.lfs_findcommits=Najít revize
settings.lfs_lfs_file_no_commits=Pro tento soubor LFS nebyly nalezeny žádné revize
settings.lfs_noattribute=Tato cesta nemá uzamykatelný atribut ve výchozí větvi
@ -2550,7 +2550,7 @@ diff.whitespace_show_everything=Zobrazit všechny změny
diff.whitespace_ignore_all_whitespace=Ignorovat bílé znaky při porovnávání řádků
diff.whitespace_ignore_amount_changes=Ignorovat změny v množství bílých znaků
diff.whitespace_ignore_at_eol=Ignorovat změny v bílých znacích na konci řídku
diff.stats_desc=<strong> %d změnil soubory</strong>, kde provedl <strong>%d přidání</strong> a <strong>%d odebrání</strong>
diff.stats_desc=<strong> %d změněných souborů</strong>, kde bylo provedeno <strong>%d přidání</strong> a <strong>%d odebrání</strong>
diff.stats_desc_file=%d změn: %d přidání a %d smazání
diff.bin=binární
diff.bin_not_shown=Binární soubor nebyl zobrazen.
@ -2694,7 +2694,7 @@ error.csv.too_large=Tento soubor nelze vykreslit, protože je příliš velký.
error.csv.unexpected=Tento soubor nelze vykreslit, protože obsahuje neočekávaný znak na řádku %d ve sloupci %d.
error.csv.invalid_field_count=Soubor nelze vykreslit, protože má nesprávný počet polí na řádku %d.
pulls.made_using_agit = AGit
settings.confirm_wiki_branch_rename = Přejmenovat větev Wiki
settings.confirm_wiki_branch_rename = Přejmenovat větev wiki
issues.comment.blocked_by_user = U tohoto problému nemůžete vytvořit komentář, protože jste byl/a zablokován/a majitelem repozitáře nebo autorem problému.
contributors.contribution_type.additions = Přidání
admin.manage_flags = Spravovat vlajky
@ -2706,7 +2706,7 @@ pulls.cmd_instruction_checkout_title = Kontrola
settings.mirror_settings.docs.disabled_push_mirror.info = Push zrcadla byla zakázána administrátorem vašeho webu.
clone_in_vscodium = Klonovat do VSCodium
settings.wiki_rename_branch_main_notices_1 = Tato operace je <strong>NEVRATNÁ</strong>.
settings.wiki_branch_rename_success = Název větve Wiki repozitáře byl úspěšně normalizován.
settings.wiki_branch_rename_success = Název větve wiki repozitáře byl úspěšně normalizován.
rss.must_be_on_branch = Abyste mohli mít zdroj RSS, musíte se nacházet ve větvi.
issues.blocked_by_user = V tomto repozitáři nemůžete vytvořit problém, protože jste byl/a jeho majitelem zablokován/a.
migrate.forgejo.description = Migrovat data z codeberg.org nebo jiných instancí Forgejo.
@ -2723,14 +2723,14 @@ pulls.clear_merge_message_hint = Vymazáním zprávy o sloučení pouze odstran
pulls.agit_explanation = Vytvořeno pomocí workflow AGit. AGit umožňuje přispěvatelům navrhovat změny pomocí „git push“ bez vytváření forku nebo nové větve.
contributors.contribution_type.deletions = Odstranění
settings.pull_mirror_sync_in_progress = Probíhá načítání změn ze vzdáleného %s.
settings.enter_repo_name = Zadejte majitele a repozitář přesně tak, jak je vidíte níže:
settings.enter_repo_name = Zadejte jméno majitele a repozitáře přesně tak, jak je vidíte:
settings.mirror_settings.docs.disabled_push_mirror.pull_mirror_warning = Tuto akci lze v současné chvíli provést pouze v nabídce „Nová migrace“. Pro více informací viz:
settings.new_owner_blocked_doer = Nový majitel vás zablokoval.
settings.mirror_settings.pushed_repository = Odeslaný repozitář
settings.add_collaborator_blocked_our = Nepodařilo se přidat spolupracovníka, jelikož byl zablokován majitelem repozitáře.
pulls.commit_ref_at = `se odkázal/a na tuto žádost o sloučení z revize <a id="%[1]s" href="#%[1]s">%[2]s</a>`
settings.wiki_rename_branch_main = Normalizovat název větve Wiki
settings.wiki_rename_branch_main_desc = Přejmenovat větev interně používanou pro Wiki na „%s“. Tato změna je trvalá a nelze ji vrátit.
settings.wiki_rename_branch_main = Normalizovat název větve wiki
settings.wiki_rename_branch_main_desc = Přejmenovat větev interně používanou pro wiki na „%s“. Tato změna je trvalá a nelze ji vrátit.
pulls.fast_forward_only_merge_pull_request = Pouze zrychlené
pulls.reopen_failed.head_branch = Tuto žádost o sloučení nelze znovu otevřít, protože hlavní větev již neexistuje.
pulls.reopen_failed.base_branch = Tuto žádost o sloučení nelze znovu otevřít, protože základní větev již neexistuje.
@ -2745,9 +2745,9 @@ settings.units.overview = Přehled
settings.units.add_more = Povolit další
settings.push_mirror_sync_in_progress = Probíhá odesílání změn na vzdálený %s.
settings.wiki_globally_editable = Umožnit komukoli editovat wiki
settings.confirmation_string = Potvrzovací řetězec
settings.confirmation_string = Potvrzení
settings.wiki_rename_branch_main_notices_2 = Touto akcí trvale přejmenujete interní větev wiki repozitáře %s. Existující kontroly budou muset být aktualizovány.
settings.wiki_branch_rename_failure = Nepodařilo se normalizovat název větve Wiki repozitáře.
settings.wiki_branch_rename_failure = Nepodařilo se normalizovat název větve wiki repozitáře.
settings.add_collaborator_blocked_them = Nepodařilo se přidat spolupracovníka, jelikož má zablokovaného majitele repozitáře.
settings.ignore_stale_approvals = Ignorovat zastaralá schválení
settings.event_pull_request_merge = Sloučení žádosti o sloučení
@ -2879,7 +2879,7 @@ component_failed_to_load = Došlo k neočekávané chybě.
code_frequency.what = frekvence kódu
contributors.what = příspěvky
recent_commits.what = nedávné revize
component_loading = Načítání %s...
component_loading = Načítám %s…
component_loading_failed = Nepodařilo se načíst %s
[org]
@ -3310,7 +3310,7 @@ auths.tips=Tipy
auths.tips.oauth2.general=Ověřování OAuth2
auths.tips.oauth2.general.tip=Při registraci nové OAuth2 autentizace by URL callbacku/přesměrování měla být:
auths.tip.oauth2_provider=Poskytovatel OAuth2
auths.tip.bitbucket=Vytvořte nového OAuth uživatele na stránce %s
auths.tip.bitbucket=Vytvořte nového OAuth uživatele na stránce %s a přidejte oprávnění „Účet“ „Čtení“
auths.tip.nextcloud=Zaregistrujte nového OAuth konzumenta na vaší instanci pomocí následujícího menu „Nastavení -> Zabezpečení -> OAuth 2.0 klient“
auths.tip.dropbox=Vytvořte novou aplikaci na %s
auths.tip.facebook=Registrujte novou aplikaci na %s a přidejte produkt „Facebook Login“
@ -3367,7 +3367,7 @@ 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_minimum_key_sizes=Minimální velikosti klíčů
config.lfs_config=Nastavení LFS
config.lfs_enabled=Povoleno
@ -3898,7 +3898,7 @@ runs.status=Status
runs.actors_no_select=Všichni aktéři
runs.status_no_select=Všechny stavy
runs.no_results=Nebyly nalezeny žádné výsledky.
runs.no_workflows=Zatím neexistují žádné pracovní postupy.
runs.no_workflows=Zatím nebyly vytvořeny žádné pracovní postupy.
runs.no_workflows.quick_start = Nevíte jak začít s Gitea Action? Podívejte se na <a target="_blank" rel="noopener noreferrer" href="%s">průvodce rychlým startem</a>.
runs.no_workflows.documentation = Další informace o Gitea Action, viz <a target="_blank" rel="noopener noreferrer" href="%s">dokumentace</a>.
runs.no_runs=Pracovní postup zatím nebyl spuštěn.
@ -3945,6 +3945,8 @@ runs.expire_log_message = Protokoly byly smazány, protože byly příliš star
runs.no_workflows.help_no_write_access = Pro více informací o Forgejo Actions se podívejte do <a target="_blank" rel="noopener noreferrer" href="%s">dokumentace</a>.
runs.no_workflows.help_write_access = Nevíte, jak začít s Forgejo Actions? Podívejte se na <a target="_blank" rel="noopener noreferrer" href="%s">rychlý začátek v uživatelské dokumentaci</a> pro vytvoření vašeho prvního workflow. Poté <a target="_blank" rel="noopener noreferrer" href="%s">nastavte runner Forgejo</a> pro provádění vašich úloh.
variables.not_found = Nepodařilo se najít proměnnou.
[projects]
type-1.display_name=Samostatný projekt
type-2.display_name=Projekt repozitíře
@ -3985,7 +3987,7 @@ code_search_by_git_grep = Aktuální výsledky vyhledávání kódu jsou poskyto
exact = Přesné
exact_tooltip = Zahrnout pouze výsledky, které přesně odpovídají hledanému výrazu
issue_kind = Hledat problémy...
pull_kind = Hledat pully...
pull_kind = Hledat žádosti...
union = Sdružené
union_tooltip = Zahrnout výsledky, které odpovídají jakýmkoli slovům odděleným mezerami
milestone_kind = Hledat milníky...

View file

@ -55,7 +55,7 @@ your_profile = Profil
your_starred = Stjernemarkeret
your_settings = Indstillinger
passcode = Passcode
repository = Repository
repository = Depot
new_org.title = Ny organisation
new_repo.link = Nyt repository
new_migrate.link = Ny migration
@ -106,7 +106,7 @@ artifacts = Artefakter
archived = Arkiveret
concept_system_global = Global
concept_user_individual = Individuel
concept_code_repository = Repository
concept_code_repository = Depot
concept_user_organization = Organisation
show_timestamps = Vis tidsstempler
show_log_seconds = Vis sekunder
@ -1454,7 +1454,7 @@ issues.choose.ignore_invalid_templates = Ugyldige skabeloner er blevet ignoreret
issues.filter_sort.mostforks = Fleste forks
issues.filter_sort.fewestforks = Mindste forks
issues.action_open = Åben
issues.action_close = Lukket
issues.action_close = Luk
issues.action_label = Etiket
issues.action_milestone_no_select = Ingen milepæl
commitstatus.pending = Afventer
@ -1826,8 +1826,798 @@ pulls.blocked_by_changed_protected_files_1 = Denne pull-anmodning er blokeret, f
pulls.blocked_by_changed_protected_files_n = Denne pull-anmodning er blokeret, fordi den ændrer beskyttede filer:
pulls.can_auto_merge_desc = Denne pull-anmodning kan flettes automatisk.
pulls.cannot_auto_merge_desc = Denne pull-anmodning kan ikke flettes automatisk på grund af konflikter.
pulls.cannot_auto_merge_helper = Flet manuelt for at løse konflikterne.
pulls.num_conflicting_files_1 = %d modstridende fil
pulls.num_conflicting_files_n = %d modstridende filer
pulls.approve_count_1 = %d godkendelse
pulls.approve_count_n = %d godkendelser
pulls.reject_count_1 = %d ændringsanmodning
pulls.reject_count_n = %d ændringsanmodninger
pulls.waiting_count_1 = %d venter på gennemgang
pulls.waiting_count_n = %d venter på gennemgange
pulls.wrong_commit_id = commit id skal være et commit id på målgrenen
pulls.blocked_by_user = Du kan ikke oprette en pull-anmodning på dette depot, fordi du er blokeret af depotets ejer.
pulls.no_merge_desc = Denne pull-anmodning kan ikke flettes, fordi alle depotsfletningsmuligheder er deaktiveret.
pulls.no_merge_helper = Aktiver fletteindstillinger i depotindstillingerne, eller flet pull-anmodningen manuelt.
pulls.no_merge_wip = Denne pull-anmodning kan ikke flettes, fordi den er markeret som værende et igangværende arbejde.
pulls.no_merge_not_ready = Denne pull-anmodning er ikke klar til at blive flettet, tjek gennemgangsstatus og statustjek.
pulls.no_merge_access = Du er ikke autoriseret til at flette denne pull-anmodning.
pulls.merge_pull_request = Opret flet commit
pulls.rebase_merge_pull_request = Rebaser og spole derefter frem
pulls.rebase_merge_commit_pull_request = Rebase og opret derefter flet commit
pulls.squash_merge_pull_request = Opret squash-commit
pulls.fast_forward_only_merge_pull_request = Spol kun frem
pulls.merge_manually = Manuel flet
pulls.merge_commit_id = Flettes commit ID
pulls.require_signed_wont_sign = Grenen kræver underskrevne tilsagn, men denne fletning vil ikke blive underskrevet
pulls.invalid_merge_option = Du kan ikke bruge denne fletteindstilling til denne pull-anmodning.
pulls.merge_conflict = Fletning mislykkedes: Der var en konflikt under sammenlægningen. Tip: Prøv en anden strategi
pulls.merge_conflict_summary = Fejl besked
pulls.rebase_conflict = Fletning mislykkedes: Der var en konflikt under re-basering af commit: %[1]s. Tip: Prøv en anden strategi
pulls.rebase_conflict_summary = Fejl besked
pulls.unrelated_histories = Fletning mislykkedes: Sammenfletnings-hovedet og -basen deler ikke en fælles historie. Tip: Prøv en anden strategi
pulls.merge_out_of_date = Fletning mislykkedes: Under genereringen af fletningen blev basen opdateret. Tip: Prøv igen.
pulls.head_out_of_date = Fletning mislykkedes: Under genereringen af fletningen blev hovedet opdateret. Tip: Prøv igen.
pulls.has_merged = Mislykkedes: Pull-anmodningen er blevet flettet, du kan ikke flette igen eller ændre målgrenen.
pulls.push_rejected = Push mislykkedes: Pushet blev afvist. Gennemgå Git-hooks for dette depot.
pulls.push_rejected_summary = Fuld afvisningsmeddelelse
pulls.push_rejected_no_message = Push mislykkedes: Pushet blev afvist, men der var ingen fjernmeddelelse. Gennemgå Git-hooks for dette depot
pulls.open_unmerged_pull_exists = `Du kan ikke udføre en genåbnings handling, fordi der er en afventende pull-anmodning (#%d) med identiske egenskaber.`
pulls.status_checking = Nogle kontroller afventer
pulls.status_checks_success = Alle kontroller lykkedes
pulls.status_checks_warning = Nogle kontroller rapporterede advarsler
pulls.status_checks_failure = Nogle kontroller mislykkedes
pulls.status_checks_error = Nogle kontroller rapporterede fejl
pulls.status_checks_requested = Påkrævet
pulls.status_checks_details = Detaljer
pulls.status_checks_hide_all = Skjul alle kontroller
pulls.status_checks_show_all = Vis alle kontroller
pulls.update_branch = Opdater gren ved fletning
pulls.update_branch_rebase = Opdel gren ved genbase
pulls.update_branch_success = Grenopdatering var vellykket
pulls.update_not_allowed = Du har ikke tilladelse til at opdatere grenen
pulls.outdated_with_base_branch = Denne gren er forældet med basisgrenen
pulls.close = Luk pull anmodning
pulls.closed_at = `lukkede denne pull-anmodning <a id="%[1]s" href="#%[1]s">%[2]s</a>`
pulls.reopened_at = `genåbnede denne pull-anmodning <a id="%[1]s" href="#%[1]s">%[2]s</a>`
pulls.commit_ref_at = `henviste til denne pull-anmodning fra en commit <a id="%[1]s" href="#%[1]s">%[2]s</a>`
pulls.cmd_instruction_hint = Se instruktionerne på kommandolinjen
pulls.cmd_instruction_checkout_title = Checkout
pulls.cmd_instruction_checkout_desc = Fra dit projektdepot, tjek en ny gren og test ændringerne.
pulls.cmd_instruction_merge_title = Flet
pulls.cmd_instruction_merge_desc = Flet ændringerne og opdater på Forgejo.
pulls.cmd_instruction_merge_warning = <b>Advarsel:</b> Indstillingen "Autofind manuel fletning" er ikke aktiveret for dette depot. Du skal efterfølgende markere denne pull-anmodning som manuelt flettet.
pulls.clear_merge_message = Ryd flettemeddelelse
pulls.clear_merge_message_hint = Rydning af flettemeddelelsen vil kun fjerne commit-meddelelsens indhold og beholde genererede git-trailere såsom "Co-Authored-By ...".
pulls.reopen_failed.head_branch = Pull-anmodningen kan ikke genåbnes, fordi hovedgrenen ikke eksisterer længere.
pulls.reopen_failed.base_branch = Pull-anmodningen kan ikke genåbnes, fordi basisgrenen ikke eksisterer længere.
pulls.made_using_agit = AGit
pulls.agit_explanation = Oprettet ved hjælp af AGit-arbejdsgangen. AGit lader bidragydere foreslå ændringer ved hjælp af "git push" uden at oprette en fork eller en ny gren.
pulls.auto_merge_button_when_succeed = (Når kontroller lykkes)
pulls.auto_merge_when_succeed = Automatisk fletning, når alle kontroller lykkes
pulls.auto_merge_newly_scheduled = Pull-anmodningen var planlagt til at flette, når alle kontroller lykkes.
pulls.auto_merge_has_pending_schedule = %[1]s planlagde denne pull-anmodning til automatisk at flette, når alle kontroller lykkes %[2]s.
pulls.auto_merge_cancel_schedule = Annuller automatisk fletning
pulls.auto_merge_not_scheduled = Denne pull-anmodning er ikke planlagt til automatisk fletning.
pulls.auto_merge_canceled_schedule = Den automatiske fletning blev annulleret for denne pull-anmodning.
pulls.auto_merge_newly_scheduled_comment = `planlagde denne pull-anmodning til automatisk at flette, når alle kontroller lykkes %[1]s.`
pulls.auto_merge_canceled_schedule_comment = `annullerede automatisk fletning af denne pull-anmodning, når alle kontroller lykkes %[1]s`
pulls.delete_after_merge.head_branch.is_default = Den hovedgren, du vil slette, er standardgrenen og kan ikke slettes.
pulls.delete_after_merge.head_branch.is_protected = Den hovedgren, du vil slette, er en beskyttet gren og kan ikke slettes.
pulls.delete_after_merge.head_branch.insufficient_branch = Du har ikke tilladelse til at slette hovedgrenen.
pulls.delete.title = Vil du slette denne pull-anmodning?
pulls.delete.text = Vil du virkelig slette denne pull-anmodning? (Dette fjerner alt indhold permanent. Overvej at lukke det i stedet, hvis du har til hensigt at beholde det arkiveret)
pulls.recently_pushed_new_branches = Du pushed på grenen <a href="%[3]s"><strong>%[1]s</strong></a> %[2]s
pull.deleted_branch = (slettet):%s
comments.edit.already_changed = Kunne ikke gemme ændringer af kommentaren. Det ser ud til, at indholdet allerede er blevet ændret af en anden bruger. Opdater siden, og prøv at redigere igen for at undgå at overskrive deres ændringer
milestones.new = Ny milepæl
milestones.closed = Lukket %s
milestones.update_ago = Opdateret %s
milestones.no_due_date = Ingen forfaldsdato
milestones.open = Åben
milestones.close = Luk
milestones.new_subheader = Milepæle kan hjælpe dig med at organisere problemer og spore deres fremskridt.
milestones.completeness = <strong>%d%%</strong> Fuldført
milestones.create = Opret milepæl
milestones.title = Titel
milestones.desc = Beskrivelse
milestones.due_date = Forfaldsdato (valgfrit)
milestones.clear = Ryd
milestones.invalid_due_date_format = Forfaldsdatoformatet skal være "åååå-mm-dd".
milestones.create_success = Milepælen "%s" er blevet oprettet.
milestones.edit = Rediger milepæl
milestones.edit_subheader = Milepæle organiserer problemer og sporer fremskridt.
milestones.cancel = Annuller
milestones.modify = Opdater milepæl
milestones.edit_success = Milepæl "%s" er blevet opdateret.
milestones.deletion = Slet milepæl
milestones.deletion_desc = Sletning af en milepæl fjerner den fra alle relaterede problemer. Vil du fortsætte?
milestones.deletion_success = Milepælen er blevet slettet.
milestones.filter_sort.name = Navn
milestones.filter_sort.earliest_due_data = Nærmeste forfaldsdato
milestones.filter_sort.latest_due_date = Længste forfaldsdato
milestones.filter_sort.least_complete = Mindst komplet
milestones.filter_sort.most_complete = Mest komplet
milestones.filter_sort.most_issues = Fleste problemer
milestones.filter_sort.least_issues = Mindst problemer
signing.will_sign = Denne commit vil blive underskrevet med nøglen "%s".
signing.wont_sign.error = Der opstod en fejl under kontrol af, om commiten kunne underskrives.
signing.wont_sign.nokey = Denne instans har ingen nøgle at underskrive denne commit med.
signing.wont_sign.never = Commits er aldrig underskrevet.
signing.wont_sign.always = Commits er altid underskrevet.
signing.wont_sign.pubkey = Commiten vil ikke blive underskrevet, fordi du ikke har en offentlig nøgle knyttet til din konto.
signing.wont_sign.twofa = Du skal have tofaktorautentificering aktiveret for at få commits underskrevet.
signing.wont_sign.parentsigned = Commiten vil ikke blive underskrevet, da forældre commiten ikke er underskrevet.
signing.wont_sign.basesigned = Sammenfletningen vil ikke blive underskrevet, da basis commiten ikke er underskrevet.
signing.wont_sign.headsigned = Sammenlægningen vil ikke blive underskrevet, da hoved commiten ikke er underskrevet.
signing.wont_sign.commitssigned = Sammenlægningen vil ikke blive underskrevet, da alle de tilknyttede tilsagn ikke er underskrevet.
signing.wont_sign.approved = Sammenlægningen vil ikke blive underskrevet, da PR'en ikke er godkendt.
signing.wont_sign.not_signed_in = Du er ikke logget ind.
ext_wiki = Ekstern Wiki
wiki = Wiki
wiki.welcome = Velkommen til Wikien
wiki.welcome_desc = Wikien lader dig skrive og dele dokumentation med samarbejdspartnere.
wiki.desc = Skriv og del dokumentation med samarbejdspartnere.
wiki.create_first_page = Opret den første side
wiki.page = Side
wiki.filter_page = Filter side
wiki.new_page = Side
wiki.page_title = Side title
wiki.page_content = Side indhold
wiki.default_commit_message = Skriv en note om denne sideopdatering (valgfrit).
wiki.save_page = Gem side
wiki.cancel = Annuller
wiki.last_commit_info = %s redigerede denne side %s
wiki.edit_page_button = Rediger
wiki.new_page_button = Ny side
wiki.file_revision = Side revision
wiki.wiki_page_revisions = Side revisioner
wiki.back_to_wiki = Tilbage til wiki-siden
wiki.delete_page_button = Slet side
wiki.delete_page_notice_1 = Sletning af wiki-siden "%s" kan ikke fortrydes. Vil du fortsætte?
wiki.page_already_exists = Der findes allerede en wiki-side med samme navn.
wiki.reserved_page = Wikisidenavnet "%s" er reserveret.
wiki.pages = Sider
wiki.last_updated = Sidst opdateret %s
wiki.page_name_desc = Indtast et navn til denne Wiki-side. Nogle specielle navne er: "Hjem", "_Sidebar" og "_Footer".
wiki.original_git_entry_tooltip = Se original Git-fil i stedet for at bruge et venligt link.
wiki.search = Søg wiki
wiki.no_search_results = Ingen resultater
activity = Aktivitet
activity.navbar.pulse = Puls
activity.navbar.code_frequency = Kode frekvens
activity.navbar.contributors = Bidragydere
activity.navbar.recent_commits = Seneste commits
activity.period.filter_label = Periode:
activity.period.daily = 1 dag
activity.period.halfweekly = 3 dage
activity.period.weekly = 1 uge
activity.period.monthly = 1 måned
activity.period.quarterly = 3 måneder
activity.period.semiyearly = 6 måneder
activity.period.yearly = 1 år
activity.overview = Oversigt
activity.unresolved_conv_label = Åben
activity.title.releases_1 = %d udgivelse
activity.title.releases_n = %d udgivelser
activity.title.releases_published_by = %s udgivet af %s
activity.published_release_label = Udgivelse
settings.units.overview = Oversigt
settings.units.add_more = Aktiver flere
settings.teams = Teams
settings.webhook.payload = Indhold
settings.webhook.body = Body
settings.webhook.replay.description = Gentag denne webhook.
settings.webhook.replay.description_disabled = For at afspille denne webhook igen, skal du aktivere den.
settings.webhook.delivery.success = En begivenhed er blevet tilføjet til leveringskøen. Det kan tage et par sekunder, før det dukker op i leveringshistorikken.
settings.githooks_desc = Git hooks drives af Git selv. Du kan redigere hook-filer nedenfor for at konfigurere brugerdefinerede handlinger.
settings.githook_edit_desc = Hvis krogen er inaktiv, vil prøveindhold blive præsenteret. Hvis du overlader indholdet til en tom værdi, deaktiveres denne hook.
settings.githook_name = Hook navn
settings.githook_content = Hook indhold
settings.update_githook = Opdatere hook
settings.add_webhook_desc = Forgejo sender <code>POST</code>-anmodninger med en specificeret indholdstype til mål-URL'en. Læs mere i <a target="_blank" rel="noopener noreferrer" href="%s">webhooks-guiden</a>.
settings.payload_url = Mål URL
settings.http_method = HTTP metode
settings.content_type = POST indholdstype
settings.secret = Hemmelighed
settings.slack_username = Brugernavn
settings.discord_username = Brugernavn
settings.event_wiki = Wiki
settings.event_wiki_desc = Wiki-side oprettet, omdøbt, redigeret eller slettet.
settings.event_release = Udgivelse
settings.event_issue_label = Etiketter
settings.event_pull_request_label = Etiketter
settings.title = Titel
settings.deploy_key_content = Indhold
settings.lfs_lock = Lås
settings.lfs_locks_no_locks = Ingen låse
settings.lfs_lock_file_no_exist = Låst fil findes ikke i standardgrenen
settings.lfs_force_unlock = Tving oplåsning
settings.lfs_pointers.found = Fundet %d blob-pointer(e) - %d tilknyttet, %d ikke-associeret (%d mangler fra butikken)
settings.lfs_pointers.sha = Blob hash
settings.lfs_pointers.oid = OID
settings.lfs_pointers.inRepo = i depot
settings.lfs_pointers.exists = Eksisterer i lager
settings.lfs_pointers.accessible = Tilgængeligt for bruger
release.cancel = Annuller
release.publish = Udgiv udgivelse
release.save_draft = Gem kladde
release.edit_release = Opdater udgivelse
release.delete_release = Slet udgivelse
release.delete_tag = Slet tag
release.deletion = Slet udgivelse
activity.active_prs_count_1 = <strong>%d</strong> aktiv pull-anmodning
activity.active_prs_count_n = <strong>%d</strong> aktive pull-anmodninger
activity.merged_prs_count_1 = Sammenflettet pull-anmodning
activity.merged_prs_count_n = Flettede pull-anmodninger
activity.opened_prs_count_1 = Foreslået pull anmodning
activity.opened_prs_count_n = Foreslåede pull-anmodninger
activity.title.user_1 = %d bruger
activity.title.user_n = %d brugere
activity.title.prs_1 = %d pull-anmodning
activity.title.prs_n = %d pull-anmodninger
activity.title.prs_merged_by = %s flettet af %s
activity.title.prs_opened_by = %s foreslået af %s
activity.merged_prs_label = Flettet
activity.opened_prs_label = Foreslået
activity.active_issues_count_1 = <strong>%d</strong> aktivt problem
activity.active_issues_count_n = <strong>%d</strong> aktive problemer
activity.closed_issues_count_1 = Lukket problem
activity.closed_issues_count_n = Lukkede problemer
activity.title.issues_1 = %d problem
activity.title.issues_n = %d problemer
activity.title.issues_closed_from = %s lukket af %s
activity.title.issues_created_by = %s oprettet af %s
activity.closed_issue_label = Lukket
activity.new_issues_count_1 = Nyt problem
activity.new_issues_count_n = Nye problemer
activity.new_issue_label = Åbnet
activity.title.unresolved_conv_1 = %d uafsluttet samtale
activity.title.unresolved_conv_n = %d uafsluttede samtaler
activity.unresolved_conv_desc = Disse nyligt ændrede problemer og pull-anmodninger er ikke blevet løst endnu.
activity.published_prerelease_label = Før-udgivelse
activity.published_tag_label = Tag
activity.no_git_activity = Der har ikke været nogen commit-aktivitet i denne periode.
activity.git_stats_exclude_merges = Med undtagelse af fletninger,
activity.git_stats_author_1 = %d forfatter
activity.git_stats_author_n = %d forfattere
activity.git_stats_pushed_1 = har pushed
activity.git_stats_pushed_n = havde pushed
activity.git_stats_commit_1 = %d commit
activity.git_stats_commit_n = %d commits
activity.git_stats_push_to_branch = til %s og
activity.git_stats_push_to_all_branches = til alle grene.
activity.git_stats_on_default_branch = På %s,
activity.git_stats_file_1 = %d fil
activity.git_stats_file_n = %d filer
activity.git_stats_files_changed_1 = er ændret
activity.git_stats_files_changed_n = har ændret
activity.git_stats_additions = og der har været
activity.git_stats_addition_1 = %d tilføjelse
activity.git_stats_addition_n = %d tilføjelser
activity.git_stats_and_deletions = og
activity.git_stats_deletion_1 = %d sletning
activity.git_stats_deletion_n = %d sletninger
activity.commit = Commit aktivitet
contributors.contribution_type.filter_label = Bidrags type:
contributors.contribution_type.commits = Commits
contributors.contribution_type.additions = Tilføjelser
contributors.contribution_type.deletions = Sletninger
settings = Indstillinger
settings.desc = Indstillinger er, hvor du kan administrere indstillingerne for depotet
settings.options = Depot
settings.collaboration = Samarbejdspartnere
settings.collaboration.admin = Administrator
settings.collaboration.write = Skriv
settings.collaboration.read = Læs
settings.collaboration.owner = Ejer
settings.collaboration.undefined = Udefineret
settings.hooks = Webhooks
settings.githooks = Git hooks
settings.basic_settings = Grundlæggende indstillinger
settings.federation_settings = Føderationsindstillinger
settings.federation_apapiurl = Føderations-URL for dette depot. Kopiér og indsæt dette i Federation Settings af et andet lager som en URL for et Følgende Depot.
settings.federation_following_repos = URL'er for følgende depoter. Adskilt af ";", ingen mellemrum.
settings.federation_not_enabled = Føderation er ikke aktiveret på din instans.
settings.mirror_settings = Spejl indstillinger
settings.mirror_settings.docs = Konfigurer dit depot til automatisk at synkronisere commits, tags og branches med et andet depot.
settings.mirror_settings.docs.disabled_pull_mirror.instructions = Indstil dit projekt til automatisk at skubbe commits, tags og branches til et andet depot. Pull-spejle er blevet deaktiveret af din webstedsadministrator.
settings.mirror_settings.docs.disabled_push_mirror.instructions = Konfigurer dit projekt til automatisk at trække commits, tags og branches fra et andet depot.
settings.mirror_settings.docs.disabled_push_mirror.pull_mirror_warning = Lige nu kan dette kun gøres i menuen "Ny migration". For mere information, kontakt venligst:
settings.mirror_settings.docs.disabled_push_mirror.info = Push-spejle er blevet deaktiveret af din webstedsadministrator.
settings.mirror_settings.docs.no_new_mirrors = Dit depot spejler ændringer til eller fra et andet depot. Husk på, at du ikke kan oprette nye spejle på nuværende tidspunkt.
settings.mirror_settings.docs.can_still_use = Selvom du ikke kan ændre eksisterende spejle eller oprette nye, kan du stadig bruge dit eksisterende spejle.
settings.mirror_settings.docs.pull_mirror_instructions = For at opsætte et pull-spejl, se venligst:
settings.mirror_settings.docs.more_information_if_disabled = Du kan finde ud af mere om push and pull spejle her:
settings.mirror_settings.docs.doc_link_title = Hvordan spejler jeg depoter?
settings.mirror_settings.docs.doc_link_pull_section = afsnittet "Trækker fra et fjerndepot" i dokumentationen.
settings.mirror_settings.docs.pulling_remote_title = Trækker fra et fjerndepot
settings.mirror_settings.mirrored_repository = Spejlet depot
settings.mirror_settings.pushed_repository = Pushed depot
settings.mirror_settings.direction = Retning
settings.mirror_settings.direction.pull = Pull
settings.mirror_settings.direction.push = Push
settings.mirror_settings.last_update = Sidste opdatering
settings.mirror_settings.push_mirror.none = Der er ikke konfigureret push-spejle
settings.mirror_settings.push_mirror.remote_url = Git-URL for fjerndepot
settings.mirror_settings.push_mirror.add = Tilføj push spejl
settings.mirror_settings.push_mirror.edit_sync_time = Rediger spejlsynkroniseringsinterval
settings.mirror_settings.push_mirror.none_ssh = Intet
settings.units.units = Enheder
settings.sync_mirror = Synkroniser nu
settings.mirror_settings.push_mirror.copy_public_key = Kopier offentlig nøgle
settings.pull_mirror_sync_in_progress = Trækker ændringer fra remote %s i øjeblikket.
settings.pull_mirror_sync_quota_exceeded = Kvoten overskredet, ingen ændringer.
settings.push_mirror_sync_in_progress = Pusher ændringer til remote %s i øjeblikket.
settings.site = Websted
settings.update_settings = Gem indstillinger
settings.update_mirror_settings = Opdater spejlindstillinger
settings.branches.switch_default_branch = Skift standardgren
settings.branches.update_default_branch = Opdater standardgren
settings.branches.add_new_rule = Tilføj ny regel
settings.advanced_settings = Avancerede indstillinger
settings.wiki_desc = Aktiver depot wiki
settings.wiki_globally_editable = Tillad enhver at redigere wikien
settings.use_internal_wiki = Brug indbygget wiki
settings.use_external_wiki = Brug ekstern wiki
settings.external_wiki_url = Ekstern wiki-URL
settings.external_wiki_url_error = Den eksterne wiki-URL er ikke en gyldig URL.
settings.external_wiki_url_desc = Besøgende omdirigeres til den eksterne wiki-URL, når de klikker på wiki-fanen.
settings.issues_desc = Aktiver depotproblemsporing
settings.use_internal_issue_tracker = Brug indbygget problem tracker
settings.use_external_issue_tracker = Brug ekstern problemsporing
settings.external_tracker_url = Eksternt problem tracker URL
settings.external_tracker_url_error = Den eksterne problemsporings-URL er ikke en gyldig URL.
settings.external_tracker_url_desc = Besøgende omdirigeres til den eksterne problemsporings-URL, når de klikker på problemer-fanen.
settings.tracker_url_format = Eksternt problem tracker URL-format
settings.tracker_url_format_error = Det eksterne problemsporings-URL-format er ikke en gyldig URL.
settings.tracker_issue_style = Eksternt problem tracker Nummerformat
settings.tracker_issue_style.numeric = Numerisk
settings.tracker_issue_style.alphanumeric = Alfanumerisk
settings.tracker_issue_style.regexp = Regulært udtryk
settings.tracker_issue_style.regexp_pattern = Regulært udtryksmønster
settings.tracker_issue_style.regexp_pattern_desc = Den første fangede gruppe vil blive brugt i stedet for <code>{index}</code>.
settings.tracker_url_format_desc = Brug pladsholderne <code>{user}</code>, <code>{repo}</code> og <code>{index}</code> til brugernavn, depotnavn og problemindeks.
settings.enable_timetracker = Aktiver tidsregistrering
settings.allow_only_contributors_to_track_time = Lad kun bidragydere spore tid
settings.pulls_desc = Aktiver depot pull-anmodninger
settings.pulls.ignore_whitespace = Ignorer mellemrum for konflikter
settings.pulls.enable_autodetect_manual_merge = Aktiver automatisk manuel fletning (Bemærk: I nogle særlige tilfælde kan fejlvurderinger forekomme)
settings.pulls.allow_rebase_update = Aktiver opdatering af pull request-gren ved rebase
settings.default_update_style_desc = Standard opdateringsstil, der bruges til at opdatere pull-anmodninger, der ligger bag basisgrenen.
settings.pulls.default_delete_branch_after_merge = Slet pull request-gren efter fletning som standard
settings.pulls.default_allow_edits_from_maintainers = Tillad som standard redigeringer fra vedligeholdere
settings.releases_desc = Aktiver depotudgivelser
settings.packages_desc = Aktiver depotpakkeregistrering
settings.projects_desc = Aktiver depot-projekter
settings.actions_desc = Aktiver integrerede CI/CD-pipelines med Forgejo Actions
settings.admin_settings = Administratorindstillinger
settings.admin_enable_health_check = Aktiver depot sundheds checks (git fsck)
settings.admin_code_indexer = Kodeindekserer
settings.admin_stats_indexer = Kode statistik indekserer
settings.admin_indexer_commit_sha = Sidste indekserede commit
settings.admin_indexer_unindexed = Uindekseret
settings.reindex_button = Tilføj til genindekskø
settings.reindex_requested = Genindeks anmodet
settings.admin_enable_close_issues_via_commit_in_any_branch = Luk et problem via en commit lavet i en ikke-standard filial
settings.danger_zone = Farezone
settings.new_owner_has_same_repo = Den nye ejer har allerede et depot med samme navn. Vælg venligst et andet navn.
settings.new_owner_blocked_doer = Den nye ejer har blokeret dig.
settings.convert = Konverter til et almindeligt depot
settings.convert_desc = Du kan konvertere dette spejl til et almindeligt depot. Dette kan ikke fortrydes.
settings.convert_notices_1 = Denne handling vil konvertere spejlet til et almindeligt depot og kan ikke fortrydes.
settings.convert_confirm = Konverter depot
settings.convert_succeed = Spejlet er blevet omdannet til et almindeligt depot.
settings.convert_fork = Konverter til almindeligt depot
settings.convert_fork_desc = Du kan konvertere denne gaffel til et almindeligt depot. Dette kan ikke fortrydes.
settings.convert_fork_notices_1 = Denne operation vil konvertere forken til et almindeligt depot og kan ikke fortrydes.
settings.convert_fork_confirm = Konverter depot
settings.convert_fork_succeed = Forken er omdannet til et almindeligt depot.
settings.transfer.title = Overfør ejerskab
settings.transfer.button = Overfør ejerskab
settings.transfer.modal.title = Overfør ejerskab
settings.transfer.rejected = Depotoverførsel blev afvist.
settings.transfer.success = Overførsel af depot var vellykket.
settings.transfer_abort = Annullere overførsel
settings.transfer_abort_invalid = Du kan ikke annullere en ikke-eksisterende depotoverførsel.
settings.transfer_abort_success = Depot overførslen til %s blev annulleret.
settings.transfer_desc = Overfør dette depot til en bruger eller til en organisation, som du har administratorrettigheder til.
settings.enter_repo_name = Indtast ejer- og depotnavnet nøjagtigt som vist:
settings.confirmation_string = Bekræftelsesstreng
settings.transfer_in_progress = Der er i øjeblikket en igangværende overførsel. Annuller det, hvis du vil overføre dette depot til en anden bruger.
settings.transfer_notices_1 = - Du mister adgangen til depotet, hvis du overfører det til en individuel bruger.
settings.transfer_notices_2 = - Du beholder adgangen til depotet, hvis du overfører det til en organisation, som du (med)ejer.
settings.transfer_notices_3 = - Hvis depotet er privat og overføres til en individuel bruger, sikrer denne handling, at brugeren har mindst læsetilladelse (og ændrer tilladelser, hvis det er nødvendigt).
settings.transfer_owner = Nye ejer
settings.transfer_perform = Udfør overførslen
settings.transfer_started = Dette depot er blevet markeret til overførsel og afventer bekræftelse fra "%s"
settings.transfer_succeed = Depotet er blevet overført.
settings.transfer_quota_exceeded = Den nye ejer (%s) er over kvoten. Depotet er ikke blevet overført.
settings.signing_settings = Indstillinger for signering af bekræftelse
settings.trust_model = Signatur tillidsmodel
settings.trust_model.default = Standard tillidsmodel
settings.trust_model.default.desc = Brug standard depottillidsmodellen til denne installation.
settings.trust_model.collaborator = Samarbejdspartner
settings.trust_model.collaborator.long = Samarbejdspartner: Tillid til underskrifter fra samarbejdspartnere
settings.trust_model.collaborator.desc = Gyldige signaturer fra samarbejdspartnere af dette depot vil blive markeret som "pålidelige" - (uanset om de matcher committeren eller ej). Ellers vil gyldige signaturer blive markeret som "upålidelige", hvis signaturen matcher committeren og "umatchede", hvis ikke.
settings.trust_model.committer = Committer
settings.trust_model.committer.long = Committer: Stol på signaturer, der matcher committers (dette matcher GitHub og vil tvinge Forgejo underskrevne commits til at have Forgejo som committer)
settings.trust_model.committer.desc = Gyldige signaturer vil kun blive markeret som "trusted", hvis de matcher committeren, ellers vil de blive markeret "unmatched". Dette tvinger Forgejo til at være committer på underskrevne commits med den faktiske committer markeret som Co-authored-by: og Co-committed-by: trailer i commit. Forgejo-nøglen skal matche en bruger i databasen.
settings.trust_model.collaboratorcommitter = Samarbejdspartner+Committer
settings.trust_model.collaboratorcommitter.long = Collaborator+Committer: Stol på underskrifter fra samarbejdspartnere, der matcher forpligteren
settings.trust_model.collaboratorcommitter.desc = Gyldige signaturer fra samarbejdspartnere af dette depot vil blive markeret som "pålidelige", hvis de matcher committeren. Ellers vil gyldige signaturer blive markeret som "upålidelige", hvis signaturen matcher committeren og "umatchede" ellers. Dette vil tvinge Forgejo til at blive markeret som committer på underskrevne commits med den faktiske committer markeret som Co-Authored-By: og Co-Committed-By: trailer i commit. Forgejo-nøglen skal matche en bruger i databasen.
settings.wiki_rename_branch_main = Normaliser Wiki-grenens navn
settings.wiki_rename_branch_main_desc = Omdøb grenen, der bruges internt af Wiki, til "%s". Denne ændring er permanent og kan ikke fortrydes.
settings.wiki_rename_branch_main_notices_1 = Denne handling <strong>KAN IKKE</strong> fortrydes.
settings.wiki_rename_branch_main_notices_2 = Dette vil permanent omdøbe den interne gren af %s' depot wiki. Eksisterende checkouts skal opdateres.
settings.wiki_branch_rename_success = Depot-wikiens filialnavn er blevet normaliseret.
settings.wiki_branch_rename_failure = Det lykkedes ikke at normalisere depotwikiens filialnavn.
settings.confirm_wiki_branch_rename = Omdøb wiki-grenen
settings.wiki_delete = Slet wiki-data
settings.wiki_delete_desc = Sletning af depot wiki-data er permanent og kan ikke fortrydes.
settings.wiki_delete_notices_1 = - Dette vil permanent slette og deaktivere depot-wikien for %s.
settings.confirm_wiki_delete = Slet wiki-data
settings.wiki_deletion_success = Depot-wiki-dataene er blevet slettet.
settings.delete = Slet dette depot
settings.delete_desc = Sletning af et depot er permanent og kan ikke fortrydes.
settings.delete_notices_1 = - Denne handling <strong>KAN IKKE</strong> fortrydes.
settings.delete_notices_2 = - Denne handling vil permanent slette <strong>%s</strong>-depotet, inklusive kode, problemer, kommentarer, wiki-data og samarbejdspartnerindstillinger.
settings.delete_notices_fork_1 = - Forks af dette depot bliver uafhængige efter sletning.
settings.deletion_success = Depotet er blevet slettet.
settings.update_settings_success = Depotingsindstillingerne er blevet opdateret.
settings.update_settings_no_unit = Depotet bør tillade mindst en form for interaktion.
settings.confirm_delete = Slet depot
settings.add_collaborator = Tilføj samarbejdspartner
settings.add_collaborator_success = Samarbejdspartneren er tilføjet.
settings.add_collaborator_inactive_user = Kan ikke tilføje en inaktiv bruger som samarbejdspartner.
settings.add_collaborator_owner = Kan ikke tilføje en ejer som samarbejdspartner.
settings.add_collaborator_duplicate = Samarbejdspartneren er allerede føjet til dette depot.
settings.add_collaborator_blocked_our = Samarbejdspartneren kan ikke tilføjes, fordi depots ejer har blokeret dem.
settings.add_collaborator_blocked_them = Samarbejdspartneren kan ikke tilføjes, fordi de har blokeret depot ejeren.
settings.delete_collaborator = Slet
settings.collaborator_deletion = Fjern Samarbejdspartner
settings.collaborator_deletion_desc = Fjernelse af en samarbejdspartner vil tilbagekalde deres adgang til dette depot. Vil du fortsætte?
settings.remove_collaborator_success = Samarbejdspartneren er blevet fjernet.
settings.org_not_allowed_to_be_collaborator = Organisationer kan ikke tilføjes som samarbejdspartner.
settings.change_team_access_not_allowed = Ændring af teamadgang til depot er begrænset til organisationsejeren
settings.team_not_in_organization = Teamet er ikke i samme organisation som depotet
settings.add_team = Tilføj team
settings.add_team_duplicate = Teamet har allerede depotet
settings.add_team_success = Teamet har nu adgang til depotet.
settings.change_team_permission_tip = Teamets tilladelse er angivet på teamindstillingssiden og kan ikke ændres pr. depot
settings.delete_team_tip = Dette team har adgang til alle depoter og kan ikke fjernes
settings.remove_team_success = Teamets adgang til depotet er blevet fjernet.
settings.add_webhook = Tilføj webhook
settings.add_webhook.invalid_channel_name = Webhook-kanalnavnet må ikke være tomt og må ikke kun indeholde et #-tegn.
settings.add_webhook.invalid_path = Sti må ikke indeholde en del, der er "." eller ".." eller den tomme streng. Det kan ikke starte eller slutte med en skråstreg.
settings.hooks_desc = Webhooks foretager automatisk HTTP POST-anmodninger til en server, når visse Forgejo-hændelser udløses. Læs mere i <a target="_blank" rel="noopener noreferrer" href="%s">webhooks-guiden</a>.
settings.webhook_deletion = Fjern webhook
settings.webhook_deletion_desc = Fjernelse af en webhook sletter dens indstillinger og leveringshistorik. Vil du fortsætte?
settings.webhook_deletion_success = Webhook er blevet fjernet.
settings.webhook.test_delivery = Test levering
settings.webhook.test_delivery_desc = Test denne webhook med en falsk begivenhed.
settings.webhook.test_delivery_desc_disabled = For at teste denne webhook med en falsk begivenhed skal du aktivere den.
settings.webhook.request = Anmod
settings.webhook.response = Svar
settings.webhook.headers = Headers
settings.slack_icon_url = Icon URL
settings.slack_color = Farve
settings.discord_icon_url = Icon URL
settings.discord_icon_url.exceeds_max_length = Ikonets URL skal være mindre end eller lig med 2048 tegn
settings.event_desc = Trigger på:
settings.event_push_only = Push events
settings.event_send_everything = Alle events
settings.event_choose = Tilpassede begivenheder…
settings.event_header_repository = Depot events
settings.event_create = Opret
settings.event_create_desc = Gren eller tag oprettet.
settings.event_delete = Slet
settings.event_delete_desc = Gren eller tag slettet.
settings.event_fork = Fork
settings.event_fork_desc = Depot forked.
settings.event_release_desc = Udgivelse offentliggjort, opdateret eller slettet i et depot.
settings.event_push = Push
settings.event_push_desc = Git push til et depot.
settings.event_repository = Depot
settings.event_repository_desc = Depot oprettet eller slettet.
settings.event_header_issue = Problem events
settings.event_issues = Modifikation
settings.event_issues_desc = Problem åbnet, lukket, genåbnet eller redigeret.
settings.event_issue_assign = Tildeling
settings.event_issue_assign_desc = Problem tildelt eller ikke tildelt.
settings.event_issue_label_desc = Problem etiketter tilføjet eller fjernet.
settings.event_issue_milestone = Milepæle
settings.event_issue_milestone_desc = Milepæl tilføjet, fjernet eller ændret.
settings.event_issue_comment = Kommentarer
settings.event_issue_comment_desc = Problem kommentar oprettet, redigeret eller slettet.
settings.event_header_pull_request = Træk anmodnings events
settings.event_pull_request = Modifikation
settings.event_pull_request_desc = Pull-anmodning åbnet, lukket, genåbnet eller redigeret.
settings.event_pull_request_assign = Tildeling
settings.event_pull_request_assign_desc = Pull-anmodning tildelt eller ikke tildelt.
settings.event_pull_request_label_desc = Pull-anmodnings etiketter tilføjet eller fjernet.
settings.event_pull_request_milestone = Milepæle
settings.event_pull_request_milestone_desc = Milepæl tilføjet, fjernet eller ændret.
settings.event_pull_request_comment = Kommentarer
settings.event_pull_request_comment_desc = Pull-anmodning om kommentar oprettet, redigeret eller slettet.
settings.event_pull_request_review = Anmeldelser
settings.event_pull_request_review_desc = Pull-anmodning godkendt, afvist, eller gennemgå kommentarer tilføjet.
settings.event_pull_request_sync = Synkroniseret
settings.event_pull_request_sync_desc = Gren opdateres automatisk med målgren.
settings.event_pull_request_review_request = Gennemse forespørgsler
settings.event_pull_request_review_request_desc = Pull-anmodning gennemgang anmodet eller gennemgang anmodning fjernet.
settings.event_pull_request_approvals = Pull-anmodningsgodkendelser
settings.event_pull_request_merge = Pull-anmodning flet
settings.event_pull_request_enforcement = Håndhævelse
settings.event_package = Pakke
settings.event_package_desc = Pakke oprettet eller slettet i et depot.
settings.branch_filter = Gren filter
settings.branch_filter_desc = Grenhvidliste til push, grenoprettelse og grensletningshændelser, angivet som globmønster. Hvis den er tom eller <code>*</code>, rapporteres hændelser for alle filialer. Se dokumentationen til <a href="%[1]s">%[2]s</a> for syntaks. Eksempler: <code>master</code>, <code>{master,release*}</code>.
settings.authorization_header = Autorisationshoved
settings.authorization_header_desc = Vil blive inkluderet som autorisationshoved for anmodninger, når de er til stede. Eksempler: %s.
settings.active = Aktiv
settings.active_helper = Oplysninger om udløste hændelser vil blive sendt til denne webhook-URL.
settings.add_hook_success = Webhook er tilføjet.
settings.update_webhook = Opdatere webhook
settings.update_hook_success = Webhook er blevet opdateret.
settings.delete_webhook = Fjern webhook
settings.recent_deliveries = Seneste leverancer
settings.hook_type = Hook type
settings.slack_token = Token
settings.slack_domain = Domæne
settings.slack_channel = Kanal
settings.add_web_hook_desc = Integrer <a target="_blank" rel="noreferrer" href="%s">%s</a> i dit depot.
settings.graphql_url = GraphQL URL
settings.web_hook_name_gitea = Gitea
settings.web_hook_name_forgejo = Forgejo
settings.web_hook_name_gogs = Gogs
settings.web_hook_name_slack = Slack
settings.web_hook_name_discord = Discord
settings.web_hook_name_dingtalk = DingTalk
settings.web_hook_name_telegram = Telegram
settings.web_hook_name_matrix = Matrix
settings.web_hook_name_msteams = Microsoft Teams
settings.web_hook_name_feishu = Feishu / Lark Suite
settings.web_hook_name_feishu_only = Feishu
settings.web_hook_name_larksuite_only = Lark Suite
settings.web_hook_name_wechatwork = WeCom (Wechat Work)
settings.web_hook_name_packagist = Packagist
settings.packagist_username = Packagist brugernavn
settings.packagist_api_token = API token
settings.packagist_package_url = Packagist-pakke-URL
settings.web_hook_name_sourcehut_builds = SourceHut Builds
settings.sourcehut_builds.manifest_path = Build manifest sti
settings.sourcehut_builds.visibility = Jobsynlighed
settings.sourcehut_builds.secrets = Hemmeligheder
settings.sourcehut_builds.secrets_helper = Giv jobbet adgang til byggehemmelighederne (kræver SECRETS:RO-bevillingen)
settings.sourcehut_builds.access_token_helper = Adgangstoken, der har JOBS:RW-bevilling. Generer et <a target="_blank" rel="noopener noreferrer" href="%s">builds.sr.ht-token</a> eller et <a target="_blank" rel="noopener noreferrer" href="%s">builds.sr.ht-token med hemmelig adgang</a> på meta.sr.ht.
settings.deploy_keys = Deploy nøgler
settings.add_deploy_key = Tilføj deploy nøgle
settings.deploy_key_desc = Deploy nøgler har skrivebeskyttet pull-adgang til depotet.
settings.is_writable = Aktiver skriveadgang
settings.is_writable_info = Tillad denne deploy nøgle at <strong>skubbe</strong> til depotet.
settings.no_deploy_keys = Der er ingen deploy nøgler endnu.
settings.key_been_used = En deploy nøgle med identisk indhold er allerede i brug.
settings.key_name_used = En deploy nøgle med identisk navn er allerede i brug.
settings.add_key_success = Deploy nøglen "%s" er blevet tilføjet.
settings.deploy_key_deletion = Slet deploy nøglen
settings.deploy_key_deletion_desc = Fjernelse af en deploy nøgle vil tilbagekalde dens adgang til dette depot. Vil du fortsætte?
settings.deploy_key_deletion_success = Deploy nøglen er blevet slettet.
settings.branches = Grene
settings.protected_branch = Gren beskyttelse
settings.protected_branch.save_rule = Gem regel
settings.protected_branch.delete_rule = Slet regel
settings.branch_protection = Beskyttelsesregler for grenen "<b>%s</b>"
settings.protect_new_rule = Opret en ny gren beskyttelsesregel
settings.protect_disable_push = Deaktiver push
settings.protect_disable_push_desc = Ingen push vil være tilladt til denne gren.
settings.protect_enable_push = Aktiver push
settings.protect_enable_push_desc = Enhver med skriveadgang får lov til at pushe til denne gren (men ikke tvinge push).
settings.protect_enable_merge = Aktiver fletning
settings.protect_enable_merge_desc = Enhver med skriveadgang får lov til at flette pull-anmodningerne ind i denne gren.
settings.protect_whitelist_committers = Hvidliste begrænset push
settings.protect_whitelist_committers_desc = Kun hvidlistede brugere eller hold vil få lov til at pushe til denne gren (men ikke tvinge push).
settings.protect_whitelist_deploy_keys = Whitelist deploy nøgler med skriveadgang til push.
settings.protect_whitelist_users = Hvidlistede brugere til at skubbe
settings.protect_whitelist_teams = Hvidlistede hold til at skubbe
settings.protect_merge_whitelist_committers = Aktiver flet hvidliste
settings.protect_merge_whitelist_committers_desc = Tillad kun hvidlistede brugere eller teams at flette pull-anmodninger ind i denne gren.
settings.protect_merge_whitelist_users = Hvidlistede brugere til fletning
settings.protect_merge_whitelist_teams = Hvidlistede hold til fletning
settings.protect_check_status_contexts = Aktiver statuskontrol
settings.protect_status_check_patterns = Statuskontrolmønstre
settings.protect_status_check_patterns_desc = Indtast mønstre for at angive, hvilke statuskontroller der skal bestå, før grene kan flettes til en gren, der matcher denne regel. Hver linje angiver et mønster. Mønstre må ikke være tomme.
settings.protect_check_status_contexts_desc = Kræv statustjek for at bestå før fletning. Når det er aktiveret, skal commits først skubbes til en anden gren, derefter flettes eller skubbes direkte til en gren, der matcher denne regel, efter statustjek er bestået. Hvis ingen kontekster matches, skal den sidste commit være vellykket uanset kontekst.
settings.protect_check_status_contexts_list = Statustjek fundet i den sidste uge for dette depot
settings.protect_status_check_matched = Matchet
settings.protect_invalid_status_check_pattern = Ugyldigt statuskontrolmønster: "%s".
settings.protect_no_valid_status_check_patterns = Ingen gyldige statuskontrolmønstre.
settings.protect_required_approvals = Krævede godkendelser
settings.protect_required_approvals_desc = Tillad kun at flette pull-anmodning med nok positive anmeldelser.
settings.protect_approvals_whitelist_enabled = Begræns godkendelser til hvidlistede brugere eller teams
settings.protect_approvals_whitelist_enabled_desc = Kun anmeldelser fra hvidlistede brugere eller teams tæller med til de påkrævede godkendelser. Uden hvidliste for godkendelse tæller anmeldelser fra alle med skriveadgang til de påkrævede godkendelser.
settings.protect_approvals_whitelist_users = Hvidlistede anmeldere
settings.protect_approvals_whitelist_teams = Hvidlistede hold til anmeldelser
settings.dismiss_stale_approvals = Afvis forældede godkendelser
settings.dismiss_stale_approvals_desc = Når nye commits, der ændrer indholdet af pull-anmodningen, skubbes til filialen, vil gamle godkendelser blive afvist.
settings.ignore_stale_approvals = Ignorer forældede godkendelser
settings.ignore_stale_approvals_desc = Tæl ikke godkendelser, der er foretaget på ældre commits (gamle anmeldelser) med, hvor mange godkendelser PR'en har. Irrelevant, hvis uaktuelle anmeldelser allerede er afvist.
settings.require_signed_commits = Kræv underskrevne commits
settings.require_signed_commits_desc = Afvis push til denne gren, hvis de er usignerede eller ikke kan verificeres.
settings.protect_branch_name_pattern = Beskyttet gren navn mønster
settings.protect_branch_name_pattern_desc = Beskyttede gren navne mønstre. Se <a href="%s">dokumentationen</a> for mønstersyntaks. Eksempler: main, release/**
settings.protect_patterns = Mønstre
settings.protect_protected_file_patterns = Beskyttede filmønstre (adskilt med semikolon ";")
settings.protect_protected_file_patterns_desc = Beskyttede filer må ikke ændres direkte, selvom brugeren har rettigheder til at tilføje, redigere eller slette filer i denne gren. Flere mønstre kan adskilles ved hjælp af semikolon (";"). Se dokumentationen til <a href="%[1]s">%[2]s</a> for mønstersyntaks. Eksempler: <code>.drone.yml</code>, <code>/docs/**/*.txt</code>.
settings.protect_unprotected_file_patterns = Ubeskyttede filmønstre (adskilt med semikolon ";")
settings.protect_unprotected_file_patterns_desc = Ubeskyttede filer, der må ændres direkte, hvis brugeren har skriveadgang, uden at push-begrænsning. Flere mønstre kan adskilles ved hjælp af semikolon (";"). Se dokumentationen til <a href="%[1]s">%[2]s</a> for mønstersyntaks. Eksempler: <code>.drone.yml</code>, <code>/docs/**/*.txt</code>.
settings.update_protect_branch_success = Filialbeskyttelse for reglen "%s" er blevet opdateret.
settings.remove_protected_branch_success = Grenbeskyttelse for reglen "%s" er blevet fjernet.
settings.remove_protected_branch_failed = Fjernelse af grenbeskyttelsesreglen "%s" mislykkedes.
settings.protected_branch_deletion = Slet grenbeskyttelse
settings.protected_branch_deletion_desc = Deaktivering af grenbeskyttelse giver brugere med skrivetilladelse mulighed for at push til grenen. Vil du fortsætte?
settings.block_rejected_reviews = Bloker fletning på afviste anmeldelser
settings.block_rejected_reviews_desc = Fletning vil ikke være mulig, når der anmodes om ændringer af officielle korrekturlæsere, selvom der er tilstrækkelige godkendelser.
settings.block_on_official_review_requests = Bloker fletning på officielle anmodninger om gennemgang
settings.block_on_official_review_requests_desc = Sammenlægning vil ikke være mulig, når den har officielle anmodninger om gennemgang, selvom der er tilstrækkelige godkendelser.
settings.block_outdated_branch = Bloker fletning, hvis pull-anmodning er forældet
settings.block_outdated_branch_desc = Fletning vil ikke være mulig, når hovedgrenen er bagved basisgrenen.
settings.enforce_on_admins = Håndhæv denne regel for depotadministratorer
settings.enforce_on_admins_desc = Depotadministratorer kan ikke omgå denne regel.
settings.default_branch_desc = Vælg en standardlagergren for pull-anmodninger og kode commits:
settings.merge_style_desc = Flettestil
settings.default_merge_style_desc = Standard flettestil
settings.choose_branch = Vælg en gren…
settings.no_protected_branch = Der er ingen beskyttede grene.
settings.edit_protected_branch = Redigere
settings.protected_branch_required_rule_name = Påkrævet regelnavn
settings.protected_branch_duplicate_rule_name = Der er allerede en regel for dette sæt af grene
settings.protected_branch_required_approvals_min = Påkrævede godkendelser kan ikke være negative.
settings.tags = Tags
settings.tags.protection = Tag beskyttelse
settings.tags.protection.pattern = Tag mønster
settings.tags.protection.allowed = Tilladt
settings.tags.protection.allowed.users = Tilladte brugere
release.edit = Redigere
branch.delete_head = Slet
branch.delete = Slet gren "%s"
branch.delete_html = Slet gren
branch.delete_desc = Sletning af en gren er permanent. Selvom den slettede gren kan fortsætte med at eksistere i kort tid, før den rent faktisk bliver fjernet, KAN den i de fleste tilfælde IKKE fortrydes. Vil du fortsætte?
branch.deletion_success = Gren "%s" er blevet slettet.
branch.deletion_failed = Kunne ikke slette grenen "%s".
[notification]
watching = Overvåger
read = Læs
[action]
watched_repo = begyndte at overvåge <a href="%[1]s">%[2]s</a>
watched_repo = begyndte at overvåge <a href="%[1]s">%[2]s</a>
[org]
repo_updated = Opdateret %s
members = Medlemmer
teams = Teams
lower_members = medlemmer
org_desc = Beskrivelse
team_desc = Beskrivelse
settings = Indstillinger
settings.options = Organisation
settings.full_name = Fulde navn
settings.website = Websted
settings.location = Lokation
settings.permission = Tilladelser
settings.repoadminchangeteam = Depotsadministrator kan tilføje og fjerne adgang for teams
settings.visibility = Synlighed
settings.visibility.public = Offentlig
settings.visibility.limited = Begrænset (kun synlig for brugere, der er logget ind)
settings.visibility.limited_shortname = Begrænset
settings.visibility.private = Privat (kun synlig for organisationsmedlemmer)
settings.visibility.private_shortname = Privat
members.owner = Ejer
members.remove = Slet
teams.read_access = Læs
teams.write_access = Skriv
teams.admin_access = Administrator adgang
teams.admin_access_helper = Medlemmer kan trække og skubbe til teamdepoter og tilføje samarbejdspartnere til dem.
teams.no_desc = Dette team har ingen beskrivelse
teams.settings = Indstillinger
[admin]
users.name = Brugernavn
emails.filter_sort.name = Brugernavn
orgs.teams = Teams
orgs.members = Medlemmer
orgs.new_orga = Ny organisation
config.db_user = Brugernavn
monitor.desc = Beskrivelse
notices.desc = Beskrivelse
config_settings = Indstillinger
users.full_name = Fulde navn
users.activated = Aktiveret
users.edit = Redigere
users.auth_source = Godkendelseskilde
emails.activated = Aktiveret
emails.filter_sort.email = Email
orgs.name = Navn
repos.owner = Ejer
repos.name = Navn
repos.private = Privat
packages.owner = Ejer
packages.name = Navn
packages.repository = Depot
auths.name = Navn
auths.enabled = Aktiveret
auths.oauth2_icon_url = Icon URL
config.ssh_enabled = Aktiveret
config.lfs_enabled = Aktiveret
config.db_name = Navn
config.enable_timetracking = Aktiver tidsregistrering
config.default_enable_timetracking = Aktiver tidsregistrering som standard
config.allow_dots_in_usernames = Tillad brugere at bruge prikker i deres brugernavne. Påvirker ikke eksisterende konti.
config.default_allow_only_contributors_to_track_time = Lad kun bidragydere spore tid
config.mailer_enabled = Aktiveret
config.mailer_name = Navn
config.oauth_enabled = Aktiveret
monitor.name = Navn
monitor.queue.name = Navn
notices.type_1 = Depot
[tool]
1d = 1 dag
1w = 1 uge
1mon = 1 måned
1y = 1 år
[packages]
arch.version.description = Beskrivelse
container.labels = Etiketter
alpine.install = For at installere pakken skal du køre følgende kommando:
alpine.repository = Depot info
alpine.repository.architectures = Arkitekturer
chef.install = For at installere pakken skal du køre følgende kommando:
composer.dependencies.development = Udviklingsafhængigheder
conan.details.repository = Depot
conan.registry = Konfigurer dette register fra kommandolinjen:
cran.install = For at installere pakken skal du køre følgende kommando:
debian.registry = Konfigurer dette register fra kommandolinjen:
debian.install = For at installere pakken skal du køre følgende kommando:
debian.repository = Depot info
debian.repository.distributions = Fordelinger
debian.repository.components = Komponenter
debian.repository.architectures = Arkitekturer
helm.registry = Konfigurer dette register fra kommandolinjen:
helm.install = For at installere pakken skal du køre følgende kommando:
nuget.registry = Konfigurer dette register fra kommandolinjen:
npm.dependencies.development = Udviklingsafhængigheder
npm.dependencies.bundle = Samlede afhængigheder
npm.dependencies.peer = Peer-afhængigheder
npm.dependencies.optional = Valgfrie afhængigheder
npm.details.tag = Tag
pub.install = For at installere pakken ved hjælp af Dart skal du køre følgende kommando:
pypi.requires = Kræver Python
pypi.install = For at installere pakken ved hjælp af pip skal du køre følgende kommando:
rpm.registry = Konfigurer dette register fra kommandolinjen:
rpm.install = For at installere pakken skal du køre følgende kommando:
rpm.repository = Depot info
rpm.repository.architectures = Arkitekturer
rpm.repository.multiple_groups = Denne pakke er tilgængelig i flere grupper.
rubygems.install = For at installere pakken ved hjælp af gem skal du køre følgende kommando:
rubygems.install2 = eller føj det til Gemfilen:
rubygems.dependencies.runtime = Kørselsafhængigheder
rubygems.dependencies.development = Udviklingsafhængigheder
swift.registry = Konfigurer dette register fra kommandolinjen:
owner.settings.cleanuprules.enabled = Aktiveret
[actions]
runners.description = Beskrivelse
runners.labels = Etiketter
runners.name = Navn
runners.task_list.repository = Depot

View file

@ -3950,6 +3950,8 @@ runs.expire_log_message = Logs wurden gelöscht, weil sie zu alt waren.
runs.no_workflows.help_write_access = Keine Ahnung, wie man mit Forgejo Actions anfangen soll? Schau im <a target="_blank" rel="noopener noreferrer" href="%s">Schnellstart in der Benutzerdokumentation</a> vorbei, um deinen ersten Workflow zu schreiben, dann <a target="_blank" rel="noopener noreferrer" href="%s">setze einen Forgejo-Runner auf</a>, um deine Jobs auszuführen.
runs.no_workflows.help_no_write_access = Um über Forgejo Actions zu lernen, siehe <a target="_blank" rel="noopener noreferrer" href="%s">die Dokumentation</a>.
variables.not_found = Die Variable wurde nicht gefunden.
[projects]
type-1.display_name=Individuelles Projekt
type-2.display_name=Repository-Projekt

View file

@ -518,15 +518,15 @@ issue_assigned.issue=Ο/Η @%[1]s σας ανέθεσε το ζήτημα %[2]s
issue.x_mentioned_you=Ο/Η <b>@%s</b> σας ανέφερε:
issue.action.force_push=Ο/Η <b>%[1]s</b> έκανε force-push το <b>%[2]s</b> από %[3]s σε %[4]s.
issue.action.push_1=Ο/Η <b>@%[1]s</b> έκανε push την υποβολή %[3]d στο %[2]s
issue.action.push_n=Ο/Η <b>@%[1]s</b> έκανε push τις υποβολές %[3]d στο %[2]s
issue.action.push_1=Ο/Η <b>@%[1]s</b> έκανε push το commit %[3]d στο %[2]s
issue.action.push_n=Ο/Η <b>@%[1]s</b> έκανε push τα commits %[3]d στο %[2]s
issue.action.close=Ο/Η <b>@%[1]s</b> έκλεισε το #%[2]d.
issue.action.reopen=Ο/Η <b>@%[1]s</b> άνοιξε ξανά το #%[2]d.
issue.action.merge=Ο/Η <b>@%[1]s</b> συγχώνευσε το #%[2]d στο %[3]s.
issue.action.approve=<b>@%[1]s</b> ενέκρινε αυτό το pull request.
issue.action.reject=<b>@%[1]s</b> ζήτησε αλλαγές σε αυτό το pull request.
issue.action.review=<b>@%[1]s</b> άφησε σχόλιο σε αυτό το pull request.
issue.action.review_dismissed=<b>@%[1]s</b> απέρριψε την τελευταία αναθεώρηση από %[2]s για αυτό το pull request.
issue.action.review_dismissed=<b>@%[1]s</b> απέρριψε την τελευταία αξιολόγηση από %[2]s για αυτό το pull request.
issue.action.ready_for_review=Ο/Η <b>@%[1]s</b> επισήμανε πως αυτό το pull request είναι έτοιμο για αξιολόγηση.
issue.action.new=Ο/Η <b>@%[1]s</b> δημιούργησε το #%[2]d.
issue.in_tree_path=Σε %s:
@ -591,9 +591,9 @@ AuthName=Όνομα εξουσιοδότησης
AdminEmail=Email διαχειριστή
NewBranchName=Όνομα νέου κλάδου
CommitSummary=Περίληψη υποβολών
CommitMessage=Μήνυμα υποβολής
CommitChoice=Επιλογή υποβολής
CommitSummary=Περίληψη commit
CommitMessage=Μήνυμα commit
CommitChoice=Επιλογή commit
TreeName=Διαδρομή αρχείου
Content=Περιεχόμενο
@ -682,6 +682,8 @@ Website = Ιστοσελίδα
Location = Τοποθεσία
email_domain_is_not_allowed = Το domain του email χρήστη <b>%s</b> έρχεται σε σύγκρουση είτε με την ρύθμιση EMAIL_DOMAIN_ALLOWLIST ή με την ρύθμιση EMAIL_DOMAIN_BLOCKLIST. Βεβαιωθείτε ότι η διεύθυνση email έχει οριστεί σωστά.
[user]
change_avatar=Αλλαγή εικόνας προφίλ…
joined_on=Εγγράφηκε στις %s
@ -768,7 +770,7 @@ language=Γλώσσα
ui=Θέμα Διεπαφής
hidden_comment_types=Κρυμμένοι τύποι σχολίων
hidden_comment_types_description=Οι τύποι σχολίων που επιλέγονται εδώ δε θα εμφανίζονται μέσα στις σελίδες ζητημάτων. Επιλέγοντας π.χ τις "Ταμπέλες", θα αφαιρεθούν όλα τα σχόλια σαν το "<user> πρόσθεσε/αφαίρεσε τα σήματα <label>".
hidden_comment_types.ref_tooltip=Σχόλια όπου αυτό το ζήτημα αναφέρθηκε από άλλο ζήτημα/υποβολή/…
hidden_comment_types.ref_tooltip=Σχόλια όπου αυτό το ζήτημα αναφέρθηκε από άλλο ζήτημα/commit/…
hidden_comment_types.issue_ref_tooltip=Σχόλια όπου ο χρήστης αλλάζει τον κλάδο/ετικέτα που σχετίζεται με το ζήτημα
comment_type_group_reference=Αναφορά
comment_type_group_label=Σήμα
@ -781,7 +783,7 @@ comment_type_group_deadline=Προθεσμία
comment_type_group_dependency=Εξάρτηση
comment_type_group_lock=Κατάσταση κλειδώματος
comment_type_group_review_request=Αίτηση αξιολόγησης
comment_type_group_pull_request_push=Προστέθηκαν υποβολές
comment_type_group_pull_request_push=Προστέθηκαν commits
comment_type_group_project=Έργο
comment_type_group_issue_ref=Αναφορά ζητήματος
saved_successfully=Οι ρυθμίσεις σας αποθηκεύτηκαν επιτυχώς.
@ -823,7 +825,7 @@ activations_pending=Εκκρεμεί ενεργοποίηση
can_not_add_email_activations_pending=Εκκρεμεί μια ενεργοποίηση, δοκιμάστε ξανά σε λίγα λεπτά αν θέλετε να προσθέσετε ένα νέο email.
delete_email=Αφαίρεση
email_deletion=Αφαίρεση διεύθυνσης email
email_deletion_desc=Η διεύθυνση ηλεκτρονικού ταχυδρομείου και οι σχετικές πληροφορίες θα αφαιρεθούν από τον λογαριασμό σας. Οι υποβολές Git από αυτή τη διεύθυνση email θα παραμείνουν αμετάβλητες. Συνέχεια;
email_deletion_desc=Η διεύθυνση email και οι πληροφορίες που συσχετίζονται με αυτήν θα αφαιρεθούν από τον λογαριασμό σας. Τα Git commit που περιλαμβάνουν το email δεν θα επηρεαστούν. Συνέχεια;
email_deletion_success=Η διεύθυνση email σας έχει καταργηθεί.
theme_update_success=Το θέμα διεπαφής σας ενημερώθηκε.
theme_update_error=Το επιλεγμένο θέμα διεπαφής δεν υπάρχει.
@ -839,16 +841,16 @@ add_email_success=Η νέα διεύθυνση email έχει προστεθεί
email_preference_set_success=Οι προτιμήσεις email έχουν οριστεί επιτυχώς.
add_openid_success=Προστέθηκε η νέα διεύθυνση OpenID.
keep_email_private=Απόκρυψη διεύθυνσης email
keep_email_private_popup=Αυτό θα κρύψει το email σας από το προφίλ σας, καθώς και όταν κάνετε ένα pull request ή επεξεργάζεστε ένα αρχείο μέσω της ιστοσελίδας. Οι υποβολές που έχετε ήδη ωθήσει δεν θα τροποποιηθούν. Χρησιμοποιήστε το %s στις υποβολές για να τις συσχετίσετε με το λογαριασμό σας.
keep_email_private_popup=Η διεύθυνση email σας δεν θα εμφανίζεται στο προφίλ σας και δεν θα χρησιμοποιείται για commits που γίνονται μέσω του web UI, όπως σε ανεβασμένα αρχεία, αλλαγές ή merge commits. Για τον συσχετισμό commit με τον λογαριασμό σας, θα χρησιμοποιηθεί αντί αυτού η ειδική διεύθυνση %s. Αυτή η ρύθμιση δεν επηρεάζει commit που υπάρχουν ήδη.
openid_desc=Το OpenID σας επιτρέπει να αναθέσετε τον έλεγχο ταυτότητας σε έναν εξωτερικό πάροχο.
manage_ssh_keys=Διαχείριση κλειδιών SSH
manage_ssh_principals=Διαχείριση Των Αρχών Πιστοποιητικού SSH
manage_gpg_keys=Διαχείριση κλειδιών GPG
add_key=Προσθήκη κλειδιού
ssh_desc=Αυτά τα δημόσια κλειδιά SSH θα συσχετιθούν με το λογαριασμό σας. Τα ιδιωτικά κλειδιά που τους αντιστοιχούν θα επιτρέπουν πλήρη πρόσβαση στα αποθετήριά σας. Ένα επιβεβαιωμένο κλειδί SSH μπορεί να χρησιμοποιηθεί για την υπογραφή των υποβολών (commits) σας.
ssh_desc=Αυτά τα δημόσια κλειδιά SSH θα συσχετιθούν με το λογαριασμό σας. Τα ιδιωτικά κλειδιά που τους αντιστοιχούν θα επιτρέπουν πλήρη πρόσβαση στα αποθετήριά σας. Ένα επιβεβαιωμένο κλειδί SSH μπορεί να χρησιμοποιηθεί για την υπογραφή των commit σας.
principal_desc=Αυτές οι αρχές πιστοποιητικών SSH συνδέονται με το λογαριασμό σας και επιτρέπουν την πλήρη πρόσβαση στα αποθετήριά σας.
gpg_desc=Αυτά τα δημόσια κλειδιά GPG συσχετίζονται με το λογαριασμό σας και επιτρέπουν την επικύρωση των υποβολών (commits) σας. Κρατήστε τα ιδιωτικά κλειδιά σας ασφαλή, καθώς επιτρέπουν την υπογραφή των υποβολών (commits) εκ μέρους σας.
gpg_desc=Αυτά τα δημόσια κλειδιά GPG συσχετίζονται με το λογαριασμό σας και επιτρέπουν την επικύρωση των commit σας. Κρατήστε τα ιδιωτικά κλειδιά σας ασφαλή, καθώς επιτρέπουν την υπογραφή των commits εκ μέρους σας.
ssh_helper=<strong>Χρειάζεστε βοήθεια;</strong> Συμβουλευτείτε τον οδηγό του GitHub για να <a href="%s">δημιουργήσετε τα δικά σας κλειδιά SSH</a> ή να επιλύσετε <a href="%s">κοινά προβλήματα</a> που ίσως αντιμετωπίσετε με τη χρήση του SSH.
gpg_helper=<strong>Χρειάζεστε βοήθεια;</strong> Συμβουλευτείτε τον οδηγό του GitHub <a href="%s">για το GPG</a>.
add_new_key=Προσθήκη κλειδιού SSH
@ -862,9 +864,9 @@ ssh_principal_been_used=Αυτή η αρχή πιστοποίησης (principal
gpg_key_id_used=Υπάρχει ήδη δημόσιο κλειδί GPG με το ίδιο ID.
gpg_no_key_email_found=Αυτό το κλειδί GPG δεν ταιριάζει με οποιαδήποτε ενεργοποιημένη διεύθυνση ηλεκτρονικού ταχυδρομείου που σχετίζεται με το λογαριασμό σας. Μπορεί ακόμα να προστεθεί, αν υπογράψετε το παρεχόμενο διακριτικό (token).
gpg_key_matched_identities=Ταυτότητες που ταιριάζουν:
gpg_key_matched_identities_long=Οι ενσωματωμένες ταυτότητες σε αυτό το κλειδί ταιριάζουν με τις ακόλουθες ενεργοποιημένες διευθύνσεις email για αυτόν το χρήστη. Οι υποβολές που ταιριάζουν με αυτές τις διευθύνσεις email μπορούν να επαληθευτούν με αυτό το κλειδί.
gpg_key_matched_identities_long=Οι ενσωματωμένες ταυτότητες σε αυτό το κλειδί ταιριάζουν με τις ακόλουθες ενεργοποιημένες διευθύνσεις email για αυτόν το χρήστη. Τα commit που περιέχουν αυτές τις διευθύνσεις email μπορούν να επαληθευτούν με αυτό το κλειδί.
gpg_key_verified=Επαληθευμένο κλειδί
gpg_key_verified_long=Το κλειδί έχει επαληθευτεί με ένα διακριτικό (token) και μπορεί να χρησιμοποιηθεί για να επαληθεύσει τις υποβολές που ταιριάζουν με οποιεσδήποτε ενεργοποιημένες διευθύνσεις email για αυτόν το χρήστη εκτός από οποιαδήποτε αντιστοιχισμένη ταυτότητα για αυτό το κλειδί.
gpg_key_verified_long=Το κλειδί έχει επαληθευτεί με ένα διακριτικό (token) και μπορεί να χρησιμοποιηθεί για να επαληθεύσει τα commit που ταιριάζουν με οποιεσδήποτε ενεργοποιημένες διευθύνσεις email για αυτόν το χρήστη εκτός από οποιαδήποτε αντιστοιχισμένη ταυτότητα για αυτό το κλειδί.
gpg_key_verify=Επαλήθευση
gpg_invalid_token_signature=Το κλειδί GPG, η υπογραφή και το διακριτικό (token) δεν ταιριάζουν ή το διακριτικό (token) είναι παρωχημένο.
gpg_token_required=Πρέπει να δώσετε μια υπογραφή για το παρακάτω διακριτικό
@ -875,7 +877,7 @@ gpg_token_signature=Θωρακισμένη υπογραφή GPG
key_signature_gpg_placeholder=Αρχίζει με «-----BEGIN PGP SIGNATURE-----»
verify_gpg_key_success=Το κλειδί GPG «%s» επαληθεύτηκε.
ssh_key_verified=Επαληθευμένο κλειδί
ssh_key_verified_long=Το κλειδί έχει επαληθευτεί με ένα διακριτικό και μπορεί να χρησιμοποιηθεί για να επαληθεύσει τα commits που ταιριάζουν με οποιεσδήποτε ενεργοποιημένες διευθύνσεις ηλεκτρονικού ταχυδρομείου για αυτόν το χρήστη.
ssh_key_verified_long=Το κλειδί έχει επαληθευτεί με ένα διακριτικό και μπορεί να χρησιμοποιηθεί για να επαληθεύσει τα commit που ταιριάζουν με οποιεσδήποτε ενεργοποιημένες διευθύνσεις ηλεκτρονικού ταχυδρομείου για αυτόν το χρήστη.
ssh_key_verify=Επαλήθευση
ssh_invalid_token_signature=Το παρεχόμενο κλειδί SSH, υπογραφή ή διακριτικό δεν ταιριάζει ή το διακριτικό έληξε.
ssh_token_required=Πρέπει να δώσετε μια υπογραφή για το παρακάτω διακριτικό
@ -897,7 +899,7 @@ ssh_key_deletion=Διαγραφή κλειδιού SSH
gpg_key_deletion=Διαγραφή κλειδιού GPG
ssh_principal_deletion=Διαγραφή Αρχών Πιστοποιητικού SSH
ssh_key_deletion_desc=Η διαγραφή ενός κλειδιού SSH ανακαλεί την πρόσβασή του στο λογαριασμό σας. Συνέχεια;
gpg_key_deletion_desc=Η διαγραφή ενός κλειδιού GPG απο-επαληθεύει τις υποβολές που έχουν υπογραφεί από αυτό. Συνέχεια;
gpg_key_deletion_desc=Η διαγραφή ενός κλειδιού GPG αφαιρεί τις επαληθεύσεις των commit που έχουν υπογραφεί από αυτό το κλειδί. Συνέχεια;
ssh_principal_deletion_desc=Η διαγραφή μιας αρχής πιστοποιητικού SSH ανακαλεί την πρόσβασή της στο λογαριασμό σας. Συνέχεια;
ssh_key_deletion_success=Το SSH κλειδί έχει διαγραφεί.
gpg_key_deletion_success=Το κλειδί GPG έχει διαγραφεί.
@ -915,7 +917,7 @@ principal_state_desc=Αυτή η αρχή πιστοποιητικού έχει
show_openid=Εμφάνιση στο προφίλ
hide_openid=Απόκρυψη από το προφίλ
ssh_disabled=Το SSH είναι απενεργοποιημένο
ssh_signonly=Το SSH είναι απενεργοποιημένο αυτή τη στιγμή, έτσι αυτά τα κλειδιά είναι μόνο για την επαλήθευση υπογραφής των υποβολών.
ssh_signonly=Το SSH είναι απενεργοποιημένο αυτή τη στιγμή, έτσι αυτά τα κλειδιά είναι μόνο για την επαλήθευση υπογραφών των commit.
ssh_externally_managed=Αυτό το κλειδί SSH διαχειρίζεται εξωτερικά για αυτόν το χρήστη
manage_social=Διαχείριση Συσχετιζόμενων Λογαριασμών Κοινωνικών Δικτύων
social_desc=Αυτοί οι λογαριασμοί κοινωνικών δικτύων μπορούν να χρησιμοποιηθούν για να συνδεθείτε στο λογαριασμό σας. Βεβαιωθείτε ότι τους αναγνωρίζετε όλους.
@ -1111,7 +1113,7 @@ trust_model_helper_default=Προεπιλογή: Χρήση προεπιλεγμ
create_repo=Δημιουργία αποθετηρίου
default_branch=Προεπιλεγμένος κλάδος
default_branch_label=προεπιλογή
default_branch_helper=Ο προεπιλεγμένος κλάδος είναι ο βασικός κλάδος για pull requests και υποβολές κώδικα.
default_branch_helper=Ο προεπιλεγμένος κλάδος είναι ο βασικός κλάδος για pull requests και commits.
mirror_prune=Καθαρισμός
mirror_prune_desc=Αφαίρεση παρωχημένων αναφορών απομακρυσμένης-παρακολούθησης
mirror_interval=Διάστημα ανανέωσης ειδώλου (έγκυρες μονάδες ώρας είναι "h", "m", "s"). 0 για απενεργοποίηση του αυτόματου συγχρονισμού. (Ελάχιστο διάστημα: %s)
@ -1150,7 +1152,7 @@ blame.ignore_revs=Αγνόηση των αναθεωρήσεων στο <a href=
blame.ignore_revs.failed=Αποτυχία αγνόησης των αναθεωρήσεων στο <a href="%s">.git-blame-ignore-revs</a>.
author_search_tooltip=Εμφάνιση το πολύ 30 χρηστών
tree_path_not_found_commit=Η διαδρομή %[1]s δεν υπάρχει στην υποβολή %[2]s
tree_path_not_found_commit=Η διαδρομή %[1]s δεν υπάρχει στο commit %[2]s
tree_path_not_found_branch=Η διαδρομή %[1]s δεν υπάρχει στον κλάδο %[2]s
tree_path_not_found_tag=Η διαδρομή %[1]s δεν υπάρχει στην ετικέτα %[2]s
@ -1266,7 +1268,7 @@ empty_message=Αυτό το repository δεν έχει περιεχόμενο.
broken_message=Τα δεδομένα Git που διέπουν αυτό το αποθετήριο δεν μπορούν να διαβαστούν. Επικοινωνήστε με το διαχειριστή ή διαγράψτε αυτό το repository.
code=Κώδικας
code.desc=Πρόσβαση στον πηγαίο κώδικα, αρχεία, υποβολές και κλάδους.
code.desc=Πρόσβαση στον πηγαίο κώδικα, αρχεία, commits και κλάδους.
branch=Κλάδος
tree=Δέντρο
clear_ref=`Καθαρισμός τρέχουσας αναφοράς`
@ -1284,8 +1286,8 @@ org_labels_desc=Οι ταμπέλες, που ισχύουν για ολόκλη
org_labels_desc_manage=διαχείριση
milestones=Ορόσημα
commits=Υποβολές
commit=Υποβολή
commits=Commits
commit=Commit
release=Κυκλοφορία
releases=Κυκλοφορίες
tag=Ετικέτα
@ -1317,14 +1319,14 @@ stored_lfs=Αποθηκεύτηκε με το Git LFS
stored_annex=Αποθηκεύτηκε με το Git Annex
symbolic_link=Symbolic link
executable_file=Εκτελέσιμο αρχείο
commit_graph=Γράφημα υποβολών
commit_graph=Γράφημα commit
commit_graph.select=Επιλογή κλάδων
commit_graph.hide_pr_refs=Απόκρυψη pull request
commit_graph.monochrome=Μονόχρωμο
commit_graph.color=Έγχρωμο
commit.contained_in=Αυτή η υποβολή περιλαμβάνεται σε:
commit.contained_in_default_branch=Αυτή η υποβολή είναι μέρος του προεπιλεγμένου κλάδου
commit.load_referencing_branches_and_tags=Φόρτωση κλάδων και ετικετών που παραπέμπουν σε αυτήν την υποβολή
commit.contained_in=Αυτό το commit περιλαμβάνεται σε:
commit.contained_in_default_branch=Αυτό το commit αποτελεί μέρος του προεπιλεγμένου κλάδου
commit.load_referencing_branches_and_tags=Φόρτωση κλάδων και ετικετών που παραπέμπουν σε αυτό το commit
blame=Ευθύνη
download_file=Λήψη αρχείου
normal_view=Κανονική Προβολή
@ -1362,12 +1364,12 @@ editor.patching=Επιδιόρθωση:
editor.fail_to_apply_patch=`Αδυναμία εφαρμογής της επιδιόρθωσης "%s"`
editor.new_patch=Νέο patch
editor.commit_message_desc=Προσθήκη προαιρετικής εκτενούς περιγραφής…
editor.signoff_desc=Προσθέστε ένα πρόσθετο Signed-off-by στο τέλος του μηνύματος καταγραφής της υποβολής.
editor.commit_directly_to_this_branch=Υποβολή απευθείας στο κλάδο <strong class="%[2]s">%[1]s</strong>.
editor.create_new_branch=Δημιουργήστε έναν <strong>νέο κλάδο</strong> για αυτή την υποβολή και ξεκινήστε ένα pull request.
editor.create_new_branch_np=Δημιουργήστε έναν <strong>νέο κλάδο</strong> για αυτή την υποβολή.
editor.signoff_desc=Προσθέστε ένα πρόσθετο Signed-off-by στο τέλος του μηνύματος καταγραφής του commit.
editor.commit_directly_to_this_branch=Υποβολή commit απευθείας στο κλάδο <strong class="%[2]s">%[1]s</strong>.
editor.create_new_branch=Δημιουργήστε έναν <strong>νέο κλάδο</strong> για αυτό το commit και δημιουργήστε ένα pull request.
editor.create_new_branch_np=Δημιουργήστε έναν <strong>νέο κλάδο</strong> για αυτό το commit.
editor.propose_file_change=Πρόταση αλλαγής αρχείου
editor.new_branch_name=Ονόμασε τον νέο κλάδο για αυτήν την υποβολή
editor.new_branch_name=Ονόμασε τον νέο κλάδο για αυτό το commit
editor.new_branch_name_desc=Όνομα νέου κλάδου…
editor.cancel=Ακύρωση
editor.filename_cannot_be_empty=Το όνομα αρχείου δεν μπορεί να είναι κενό.
@ -1379,9 +1381,9 @@ editor.file_is_a_symlink=`Το «%s» είναι συμβολικός σύνδε
editor.filename_is_a_directory=Το όνομα αρχείου «%s» χρησιμοποιείται ήδη ως όνομα φακέλου σε αυτό το repository.
editor.file_editing_no_longer_exists=Το αρχείο «%s», το οποίο επεξεργάζεστε, δεν υπάρχει πλέον σε αυτό το repository.
editor.file_deleting_no_longer_exists=Το αρχείο «%s», το οποίο διαγράφεται, δεν υπάρχει πλέον σε αυτό το repository.
editor.file_changed_while_editing=Προέκυψαν κάποιες αλλαγές στα περιεχόμενα του αρχείου από τότε που ξεκινήσατε να τα επεξεργάζεστε. <a target="_blank" rel="noopener noreferrer" href="%s">Κάντε κλικ εδώ</a> για να τα δείτε ή <strong>ξανακάντε μία υποβολή των αλλαγών σας</strong> για να τις αντικαταστήσετε.
editor.file_changed_while_editing=Προέκυψαν κάποιες αλλαγές στα περιεχόμενα του αρχείου από τότε που ξεκινήσατε να τα επεξεργάζεστε. <a target="_blank" rel="noopener noreferrer" href="%s">Κάντε κλικ εδώ</a> για να τα δείτε ή <strong>ξανακάνετε μία υποβολή των αλλαγών σας</strong> για να τις αντικαταστήσετε.
editor.file_already_exists=Υπάρχει ήδη ένα αρχείο με το όνομα «%s» σε αυτό το repository.
editor.commit_empty_file_header=Υποβολή ενός κενού αρχείου
editor.commit_empty_file_header=Commit κενού αρχείου
editor.commit_empty_file_text=Το αρχείο που πρόκειται να υποβληθεί είναι κενό. Συνέχεια;
editor.no_changes_to_show=Δεν υπάρχουν αλλαγές για εμφάνιση.
editor.fail_to_update_file=Αποτυχία ενημέρωσης/δημιουργίας του αρχείου «%s».
@ -1401,8 +1403,8 @@ editor.cherry_pick=Ανθολόγηση (cherry-pick) του %s σε:
editor.revert=Απόσυρση του %s στο:
commits.desc=Δείτε το ιστορικό αλλαγών του πηγαίου κώδικα.
commits.commits=Υποβολές
commits.no_commits=Δεν υπάρχουν κοινές υποβολές. Τα «%s» και «%s» έχουν εντελώς διαφορετικές ιστορίες.
commits.commits=Commits
commits.no_commits=Δεν υπάρχουν κοινά commit. Τα «%s» και «%s» έχουν εντελώς διαφορετικές ιστορίες.
commits.nothing_to_compare=Αυτοί οι κλάδοι είναι όμοιοι.
commits.search=Αναζήτηση υποβολών…
commits.search.tooltip=Μπορείτε να προθέτετε τις λέξεις-κλειδιά με "author:", "committer:", "after:", ή "before:", π.χ. "επαναφορά author:Alice before:2019-01-13".
@ -1837,9 +1839,9 @@ pulls.show_all_commits=Εμφάνιση όλων των υποβολών
pulls.show_changes_since_your_last_review=Εμφάνιση αλλαγών από την τελευταία αξιολόγηση
pulls.showing_only_single_commit=Εμφάνιση μόνο αλλαγών της υποβολής %[1]s
pulls.showing_specified_commit_range=Εμφάνιση μόνο των αλλαγών μεταξύ %[1]s..%[2]s
pulls.select_commit_hold_shift_for_range=Επιλέξτε υποβολή. Κρατήστε πατημένο το shift + κάντε κλικ για να επιλέξετε ένα εύρος
pulls.select_commit_hold_shift_for_range=Επιλέξτε commit. Κρατήστε πατημένο το shift + κάντε κλικ για να επιλέξετε ένα εύρος
pulls.review_only_possible_for_full_diff=Η αξιολόγηση είναι δυνατή μόνο κατά την προβολή της πλήρης διαφοράς
pulls.filter_changes_by_commit=Φιλτράρισμα κατά υποβολή
pulls.filter_changes_by_commit=Φιλτράρισμα κατά commit
pulls.nothing_to_compare=Αυτοί οι κλάδοι είναι ίδιοι. Δεν χρειάζεται να δημιουργήσετε ένα pull request.
pulls.nothing_to_compare_and_allow_empty_pr=Αυτοί οι κλάδοι είναι ίδιοι. Αυτό το PR θα είναι κενό.
pulls.has_pull_request=`Υπάρχει ήδη pull request μεταξύ αυτών των κλάδων: <a href="%[1]s">%[2]s#%[3]d</a>`
@ -1848,7 +1850,7 @@ pulls.title_desc_few=θέλει να συγχωνεύσει %[1]d υποβολέ
pulls.merged_title_desc_few=συγχώνευσε %[1]d υποβολές από <code>%[2]s</code> σε <code>%[3]s</code> %[4]s
pulls.change_target_branch_at=`άλλαξε τον κλάδο προορισμού από <b>%s</b> σε <b>%s</b> %s`
pulls.tab_conversation=Συζήτηση
pulls.tab_commits=Υποβολές
pulls.tab_commits=Commits
pulls.tab_files=Αλλαγμένα αρχεία
pulls.reopen_to_merge=Παρακαλώ ανοίξτε ξανά αυτό το pull request για να εκτελέσετε μια συγχώνευση.
pulls.cant_reopen_deleted_branch=Αυτό το pull request δεν μπορεί να ανοίξει ξανά επειδή ο κλάδος διαγράφηκε.
@ -1867,7 +1869,7 @@ pulls.data_broken=Αυτό το pull request είναι κατεστραμμέν
pulls.files_conflicted=Αυτό το pull request περιέχει αλλαγές που συγκρούονται με το κλάδο προορισμού.
pulls.is_checking=Ο έλεγχος συγκρούσεων κατά την συγχώνευση βρίσκεται σε εξέλιξη. Δοκιμάστε ξανά σε λίγα λεπτά.
pulls.is_ancestor=Αυτός ο κλάδος δεν περιέχει κάτι καινούργιο που δεν έχει ο κλάδος προορισμού ήδη. Δεν υπάρχει τίποτα που θα μπορούσε να συγχωνευτεί.
pulls.is_empty=Οι αλλαγές σε αυτόν τον κλάδο βρίσκονται ήδη στον κλάδο προορισμού. Θα είναι μια κενή υποβολή.
pulls.is_empty=Οι αλλαγές σε αυτόν τον κλάδο βρίσκονται ήδη στον κλάδο προορισμού. Θα είναι ένα κενό commit.
pulls.required_status_check_failed=Ορισμένοι απαιτούμενοι έλεγχοι δεν ήταν επιτυχείς.
pulls.required_status_check_missing=Λείπουν ορισμένοι απαιτούμενοι έλεγχοι.
pulls.required_status_check_administrator=Ως διαχειριστής, μπορείτε ακόμα να συγχωνεύσετε αυτό το pull request.
@ -1888,25 +1890,25 @@ pulls.reject_count_1=%d αίτημα αλλαγής
pulls.reject_count_n=%d αιτήματα αλλαγής
pulls.waiting_count_1=%d αναμονή αξιολόγησης
pulls.waiting_count_n=%d αναμονές αξιολόγησης
pulls.wrong_commit_id=Το αναγνωριστικό της υποβολής πρέπει να αντιστοιχεί σε μία υποβολή στον κλάδο προορισμού
pulls.wrong_commit_id=Το αναγνωριστικό του commit πρέπει να αντιστοιχεί σε μία υποβολή στον κλάδο προορισμού
pulls.no_merge_desc=Αυτό το pull request δεν μπορεί να συγχωνευθεί επειδή όλες οι επιλογές συγχώνευσης αποθετηρίων είναι απενεργοποιημένες.
pulls.no_merge_helper=Ενεργοποιήστε τις επιλογές συγχώνευσης στις ρυθμίσεις αποθετηρίου ή συγχωνεύστε το pull request χειροκίνητα.
pulls.no_merge_wip=Αυτό το pull request δεν μπορεί να συγχωνευθεί, επειδή έχει επισημανθεί ως μια εργασία σε εξέλιξη.
pulls.no_merge_not_ready=Αυτό το pull request δεν είναι έτοιμο για συγχώνευση, ελέγξτε την κατάσταση εξέτασης και τους ελέγχους κατάστασης.
pulls.no_merge_access=Δεν είστε εξουσιοδοτημένοι να συγχωνεύσετε αυτό το pull request.
pulls.merge_pull_request=Δημιουργία υποβολής συγχώνευσης
pulls.merge_pull_request=Δημιουργία commit συγχώνευσης
pulls.rebase_merge_pull_request=Αλλαγή βάσης και μετά γρήγορα-μπροστά
pulls.rebase_merge_commit_pull_request=Αλλαγής βάσης και δημιουργία υποβολής συγχώνευσης
pulls.squash_merge_pull_request=Δημιουργία υποβολής squash
pulls.rebase_merge_commit_pull_request=Αλλαγής βάσης και δημιουργία commit συγχώνευσης
pulls.squash_merge_pull_request=Δημιουργία squash commit
pulls.merge_manually=Συγχωνεύτηκαν χειροκίνητα
pulls.merge_commit_id=Το ID της υποβολής συγχώνευσης
pulls.require_signed_wont_sign=Ο κλάδος απαιτεί υπογεγραμμένες υποβολές αλλά αυτή η συγχώνευση δεν θα υπογραφεί
pulls.merge_commit_id=Το ID του commit συγχώνευσης
pulls.require_signed_wont_sign=Ο κλάδος απαιτεί υπογεγραμμένες commits αλλά αυτή η συγχώνευση δεν θα υπογραφεί
pulls.invalid_merge_option=Δεν μπορείτε να χρησιμοποιήσετε αυτήν την επιλογή συγχώνευσης για αυτό το pull request.
pulls.merge_conflict=Η συγχώνευση απέτυχε: Υπήρξε μια σύγκρουση κατά τη συγχώνευση. Συμβουλή: Δοκιμάστε μια διαφορετική στρατηγική
pulls.merge_conflict_summary=Μήνυμα σφάλματος
pulls.rebase_conflict=Η συγχώνευση απέτυχε: Υπήρξε μια σύγκρουση κατά την αλλαγή βάσης της υποβολής: %[1]s. Συμβουλή: Δοκιμάστε μια διαφορετική στρατηγική
pulls.rebase_conflict=Η συγχώνευση απέτυχε: Προέκυψε σύγκρουση κατά το rebase του commit: %[1]s. Συμβουλή: Δοκιμάστε μία διαφορετική στρατηγική
pulls.rebase_conflict_summary=Μήνυμα σφάλματος
pulls.unrelated_histories=H συγχώνευση απέτυχε: Η κεφαλή και η βάση της συγχώνευσης δεν έχουν κοινή ιστορία. Συμβουλή: Δοκιμάστε μια διαφορετική στρατηγική
pulls.merge_out_of_date=Η συγχώνευση απέτυχε: Κατά τη δημιουργία της συγχώνευσης, η βάση ενημερώθηκε. Συμβουλή: Προσπαθήστε πάλι.
@ -1939,7 +1941,7 @@ pulls.cmd_instruction_checkout_desc=Από το repository του έργου σ
pulls.cmd_instruction_merge_title=Συγχώνευση
pulls.cmd_instruction_merge_desc=Συγχώνευση των αλλαγών και ενημέρωση στο Forgejo.
pulls.clear_merge_message=Εκκαθάριση μηνύματος συγχώνευσης
pulls.clear_merge_message_hint=Η εκκαθάριση του μηνύματος συγχώνευσης θα αφαιρέσει μόνο το περιεχόμενο του μηνύματος υποβολής και θα διατηρήσει τα παραγόμενα git trailers όπως "Co-Authored-By …".
pulls.clear_merge_message_hint=Η εκκαθάριση του μηνύματος συγχώνευσης θα αφαιρέσει μόνο το περιεχόμενο του μηνύματος commit και θα διατηρήσει τα παραγόμενα git trailers όπως "Co-Authored-By …".
pulls.auto_merge_button_when_succeed=(Όταν οι έλεγχοι πετύχουν)
pulls.auto_merge_when_succeed=Αυτόματη συγχώνευση όταν όλοι οι έλεγχοι πετύχουν
@ -1990,14 +1992,14 @@ milestones.filter_sort.most_complete=Περισσότερο πλήρη
milestones.filter_sort.most_issues=Περισσότερα ζητήματα
milestones.filter_sort.least_issues=Λιγότερα ζητήματα
signing.will_sign=Αυτή η υποβολή θα υπογραφεί με το κλειδί «%s».
signing.wont_sign.error=Παρουσιάστηκε σφάλμα κατά τον έλεγχο για το αν η υποβολή μπορεί να υπογραφεί.
signing.wont_sign.nokey=Ο διακομιστής δεν παρέχει κάποιο κλειδί για την υπογραφή αυτής της υποβολής (commit).
signing.wont_sign.never=Οι υποβολές δεν υπογράφονται ποτέ.
signing.wont_sign.always=Οι υποβολές υπογράφονται πάντα.
signing.wont_sign.pubkey=Η υποβολή δε θα υπογραφεί επειδή δεν υπάρχει δημόσιο κλειδί που να συνδέεται με το λογαριασμό σας.
signing.wont_sign.twofa=Πρέπει να έχετε ενεργοποιημένη την ταυτοποίηση δύο παραγόντων για να υπογράφεται υποβολές.
signing.wont_sign.parentsigned=Η υποβολή δε θα υπογραφεί καθώς η γονική υποβολή δεν έχει υπογραφεί.
signing.will_sign=Αυτό το commit θα υπογραφεί με το κλειδί «%s».
signing.wont_sign.error=Παρουσιάστηκε σφάλμα κατά τον έλεγχο για το αν το commit μπορεί να υπογραφεί.
signing.wont_sign.nokey=Ο διακομιστής δεν παρέχει κάποιο κλειδί για την υπογραφή αυτού του commit.
signing.wont_sign.never=Τα commits δεν υπογράφονται ποτέ.
signing.wont_sign.always=Τα commit υπογράφονται πάντα.
signing.wont_sign.pubkey=To ψομμιτ δε θα υπογραφεί επειδή δεν υπάρχει δημόσιο κλειδί που συσχετίζεται με τον λογαριασμό σας.
signing.wont_sign.twofa=Πρέπει να έχετε ενεργοποιημένη την ταυτοποίηση δύο παραγόντων για την υπογραφή commit.
signing.wont_sign.parentsigned=To commit δεν θα υπογραφεί καθώς το προηγούμενο commit δεν έχει υπογραφεί.
signing.wont_sign.basesigned=Η συγχώνευση δε θα υπογραφεί καθώς η βασική υποβολή δεν έχει υπογραφή της βάσης.
signing.wont_sign.headsigned=Η συγχώνευση δε θα υπογραφεί καθώς δεν έχει υπογραφή η υποβολή της κεφαλής.
signing.wont_sign.commitssigned=Η συγχώνευση δε θα υπογραφεί καθώς όλες οι σχετικές υποβολές δεν έχουν υπογραφεί.
@ -2019,7 +2021,7 @@ wiki.page_title=Τίτλος σελίδας
wiki.page_content=Περιεχόμενο σελίδας
wiki.default_commit_message=Γράψτε μια σημείωση σχετικά με αυτή την ενημέρωση σελίδας (προαιρετικό).
wiki.save_page=Αποθήκευση σελίδας
wiki.last_commit_info=%s επεξεργάστηκε αυτή τη σελίδα %s
wiki.last_commit_info=%s επεξεργάστηκε την σελίδα %s
wiki.edit_page_button=Επεξεργασία
wiki.new_page_button=Νέα σελίδα
wiki.file_revision=Έκδοση σελίδας
@ -2078,14 +2080,14 @@ activity.title.releases_1=%d κυκλοφορία
activity.title.releases_n=%d εκδόσεις
activity.title.releases_published_by=%s δημοσιεύτηκε από %s
activity.published_release_label=Δημοσίευση
activity.no_git_activity=Δεν έχει υπάρξει καμία δραστηριότητα υποβολών σε αυτήν την περίοδο.
activity.no_git_activity=Δεν έχει υπάρξει καμία δραστηριότητα commit σε αυτήν την περίοδο.
activity.git_stats_exclude_merges=Εκτός τις συγχωνεύσεις,
activity.git_stats_author_1=%d συγγραφέας
activity.git_stats_author_n=%d συγγραφείς
activity.git_stats_pushed_1=έχει ωθήσει
activity.git_stats_pushed_n=έχουν ωθήσει
activity.git_stats_commit_1=%d υποβολή
activity.git_stats_commit_n=%d υποβολές
activity.git_stats_commit_1=%d commit
activity.git_stats_commit_n=%d commits
activity.git_stats_push_to_branch=στο %s και
activity.git_stats_push_to_all_branches=σε όλους τους κλάδους.
activity.git_stats_on_default_branch=Στο %s,
@ -2100,7 +2102,7 @@ activity.git_stats_and_deletions=και
activity.git_stats_deletion_1=%d διαγραφή
activity.git_stats_deletion_n=%d διαγραφές
contributors.contribution_type.commits=Υποβολές
contributors.contribution_type.commits=Commits
search=Αναζήτηση
search.search_repo=Αναζήτηση αποθετηρίου
@ -2126,7 +2128,7 @@ settings.hooks=Webhooks
settings.githooks=Git hooks
settings.basic_settings=Βασικές ρυθμίσεις
settings.mirror_settings=Ρυθμίσεις ειδώλου
settings.mirror_settings.docs=Ρυθμίστε τον αυτόματο συγχρονισμό των commit, ετικετών και κλάδων του αποθετηρίου σας σε ένα άλλο repository.
settings.mirror_settings.docs=Ρυθμίστε τον αυτόματο συγχρονισμό commit, ετικετών και κλάδων του αποθετηρίου σας σε ένα άλλο repository.
settings.mirror_settings.docs.disabled_pull_mirror.instructions=Ρυθμίστε τον αυτόματο συγχρονισμό των commit, ετικετών και κλάδων του έργου σας με ένα άλλο repository. Τα είδωλα τύπου λήψης έχουν απενεργοποιηθεί από τον διαχειριστή σας.
settings.mirror_settings.docs.disabled_push_mirror.instructions=Ρυθμίστε την αυτόματη λήψη υποβολών, ετικετών και κλάδων από ένα άλλο repository.
settings.mirror_settings.docs.disabled_push_mirror.pull_mirror_warning=Αυτή τη στιγμή, αυτό μπορεί να γίνει μόνο στο μενού "Νέα Μεταφορά". Για περισσότερες πληροφορίες, συμβουλευτείτε το:
@ -2195,11 +2197,11 @@ settings.admin_settings=Ρυθμίσεις διαχειριστή
settings.admin_enable_health_check=Ενεργοποίηση ελέγχων υγείας αποθετηρίων (git fsck)
settings.admin_code_indexer=Indexer κώδικα
settings.admin_stats_indexer=Indexer στατιστικών κώδικα
settings.admin_indexer_commit_sha=Τελευταίο indexed SHA
settings.admin_indexer_commit_sha=Τελευταίο indexed commit
settings.admin_indexer_unindexed=Unindexed
settings.reindex_button=Προσθήκη στην ουρά Reindex
settings.reindex_requested=Αιτήθηκε reindex
settings.admin_enable_close_issues_via_commit_in_any_branch=Κλείσιμο ενός ζητήματος μέσω μιας υποβολής που έγινε σε έναν μη προεπιλεγμένο κλάδο
settings.admin_enable_close_issues_via_commit_in_any_branch=Κλείσιμο ενός ζητήματος μέσω commit που έγινε σε έναν μη'προεπιλεγμένο κλάδο
settings.danger_zone=Ζώνη κινδύνου
settings.new_owner_has_same_repo=Ο νέος ιδιοκτήτης έχει ήδη ένα repository με το ίδιο όνομα. Παρακαλώ επιλέξτε ένα άλλο όνομα.
settings.convert=Μετατροπή σε κανονικό repository
@ -2448,9 +2450,9 @@ settings.protect_approvals_whitelist_enabled_desc=Μόνο κριτικές απ
settings.protect_approvals_whitelist_users=Εγκεκριμένοι εξεταστές:
settings.protect_approvals_whitelist_teams=Λίστα επιτρεπόμενων ομάδων για κριτικές:
settings.dismiss_stale_approvals=Παράβλεψη καθυστερημένων εγκρίσεων
settings.dismiss_stale_approvals_desc=Όταν οι νέες υποβολές που αλλάζουν το περιεχόμενο του pull request γίνονται push στο κλάδο, οι παλιές εγκρίσεις απορρίπτονται.
settings.require_signed_commits=Να απαιτούνται υπογεγραμμένες υποβολές
settings.require_signed_commits_desc=Απόρριψη νέων υποβολών σε αυτόν τον κλάδο εάν είναι μη υπογεγραμμένες ή μη επαληθεύσιμες.
settings.dismiss_stale_approvals_desc=Όταν νέα commit που αλλάζουν το περιεχόμενο του pull request γίνονται push στο κλάδο, οι παλιές εγκρίσεις απορρίπτονται.
settings.require_signed_commits=Να απαιτούνται υπογεγραμμένα commit
settings.require_signed_commits_desc=Απόρριψη νέων commit σε αυτόν τον κλάδο εάν είναι μη υπογεγραμμένες ή μη επαληθεύσιμες.
settings.protect_branch_name_pattern=Μοτίβο προστατευμένου ονόματος κλάδου
settings.protect_branch_name_pattern_desc=Μοτίβα ονόματος προστατευμένων κλάδων. Συμβολευτείτε <a href="%s">την τεκμηρίωση</a> για την σύνταξη ενός μοτίβου. Παραδείγματα: main, release/**
settings.protect_patterns=Μοτίβα
@ -2471,7 +2473,7 @@ settings.block_on_official_review_requests=Φραγή συγχώνευσης σ
settings.block_on_official_review_requests_desc=Η συγχώνευση δεν θα είναι δυνατή όταν θα έχει αιτήσεις επίσημης αξιολόγησης, ακόμη και αν υπάρχουν αρκετές εγκρίσεις.
settings.block_outdated_branch=Φραγή συγχώνευσης αν το pull request είναι ξεπερασμένο
settings.block_outdated_branch_desc=Η συγχώνευση δεν θα είναι δυνατή όταν ο κλάδος κεφαλής είναι πίσω από τον βασικό κλάδο.
settings.default_branch_desc=Επιλέξτε έναν προεπιλεγμένο κλάδο αποθετηρίου για pull requests και υποβολές κώδικα:
settings.default_branch_desc=Επιλέξτε έναν προεπιλεγμένο κλάδο αποθετηρίου για pull requests και commit
settings.merge_style_desc=Στυλ συγχώνευσης
settings.default_merge_style_desc=Προεπιλεγμένο στυλ συγχώνευσης
settings.choose_branch=Επιλέξτε έναν κλάδο…
@ -2498,7 +2500,7 @@ settings.matrix.room_id=ID Δωματίου
settings.matrix.message_type=Είδος μηνύματος
settings.archive.button=Αρχειοθέτηση αποθετηρίου
settings.archive.header=Αρχειοθέτηση αποθετηρίου
settings.archive.text=Η αρχειοθέτηση του αποθετηρίου θα το αλλάξει σε μόνο για ανάγνωση. Δε θα φαίνεται στον αρχικό πίνακα. Κανείς (ακόμα και εσείς!) δε θα μπορεί να κάνει νέες υποβολές, ή να ανοίξει ζητήματα ή pull request.
settings.archive.text=Η αρχειοθέτηση του αποθετηρίου θα το αλλάξει σε μόνο για ανάγνωση. Δε θα φαίνεται στον αρχικό πίνακα. Κανείς (ακόμα και εσείς!) δε θα μπορεί να υποβάλει νέα commit, ή να ανοίξει ζητήματα ή pull request.
settings.archive.success=Το repository αρχειοθετήθηκε με επιτυχία.
settings.archive.error=Παρουσιάστηκε σφάλμα κατά την προσπάθεια αρχειοθέτησης του αποθετηρίου. Δείτε το αρχείο καταγραφής για περισσότερες λεπτομέρειες.
settings.archive.error_ismirror=Δε μπορείτε να αρχειοθετήσετε ένα είδωλο αποθετηρίου.
@ -2506,15 +2508,15 @@ settings.archive.branchsettings_unavailable=Οι ρυθμίσεις του κλ
settings.archive.tagsettings_unavailable=Οι ρυθμίσεις της ετικέτας δεν είναι διαθέσιμες αν το repository είναι αρχειοθετημένο.
settings.unarchive.button=Αναίρεση αρχειοθέτησης αποθετηρίου
settings.unarchive.header=Απο-Αρχειοθέτηση του αποθετηρίου
settings.unarchive.text=Η απο-αρχειοθέτηση του αποθετηρίου θα αποκαταστήσει την ικανότητά του να λαμβάνει υποβολές και ωθήσεις, καθώς και νέα ζητήματα και pull-requests.
settings.unarchive.text=Η απο-αρχειοθέτηση του αποθετηρίου θα αποκαταστήσει την ικανότητά του να λαμβάνει commits και ωθήσεις, καθώς και νέα ζητήματα και pull-requests.
settings.unarchive.success=Το repository απο-αρχειοθετήθηκε με επιτυχία.
settings.unarchive.error=Παρουσιάστηκε σφάλμα κατά την προσπάθεια απο-αρχειοθέτησης του αποθετηρίου. Δείτε τις καταγραφές για περισσότερες λεπτομέρειες.
settings.update_avatar_success=Η εικόνα του αποθετηρίου έχει ενημερωθεί.
settings.lfs=LFS
settings.lfs_filelist=Αρχεία LFS σε αυτό το repository
settings.lfs_no_lfs_files=Δεν υπάρχουν αρχεία LFS σε αυτό το repository
settings.lfs_findcommits=Εύρεση υποβολών
settings.lfs_lfs_file_no_commits=Δεν βρέθηκαν υποβολές για αυτό το αρχείο LFS
settings.lfs_findcommits=Εύρεση commit
settings.lfs_lfs_file_no_commits=Δεν βρέθηκαν commit για αυτό το αρχείο LFS
settings.lfs_noattribute=Αυτή η διαδρομή δεν έχει λειτουργία κλειδώματος στον προεπιλεγμένο κλάδο
settings.lfs_delete=Διαγραφή αρχείου LFS με το OID %s
settings.lfs_delete_warning=Η διαγραφή ενός αρχείου LFS μπορεί να προκαλέσει σφάλματα «object does not exist» κατά την ολοκλήρωση του checkout. Είστε βέβαιοι;
@ -2544,7 +2546,7 @@ settings.rename_branch=Μετονομασία κλάδου
diff.browse_source=Προβολή πηγαίου κώδικα
diff.parent=γονέας
diff.commit=υποβολή
diff.commit=commit
diff.git-notes=Σημειώσεις
diff.data_not_available=Δεν υπάρχει διαθέσιμο περιεχόμενο diff
diff.options_button=Επιλογές diff
@ -2609,7 +2611,7 @@ release.prerelease=Προδημοσίευση
release.stable=Σταθερή
release.compare=Σύγκριση
release.edit=επεξεργασία
release.ahead.commits=<strong>%d</strong> υποβολές
release.ahead.commits=<strong>%d</strong> commits
release.ahead.target=σε %s από αυτή την έκδοση
tag.ahead.target=μέχρι το %s από αυτή την ετικέτα
release.source_code=Πηγαίος κώδικας
@ -2655,7 +2657,7 @@ branch.delete_html=Διαγραφή κλάδου
branch.delete_desc=Η διαγραφή ενός κλάδου είναι μόνιμη. Αν και ο διαγραμμένος κλάδος μπορεί να συνεχίσει να υπάρχει για σύντομο χρονικό διάστημα πριν να αφαιρεθεί, ΔΕΝ ΜΠΟΡΕΙ να αναιρεθεί στις περισσότερες περιπτώσεις. Συνέχεια;
branch.deletion_success=Ο κλάδος «%s» διαγράφηκε.
branch.deletion_failed=Η διαγραφή του κλάδου «%s» απέτυχε.
branch.delete_branch_has_new_commits=Ο κλάδος «%s» δεν μπορεί να διαγραφεί επειδή προστέθηκαν νέες υποβολές μετά τη συγχώνευση.
branch.delete_branch_has_new_commits=Ο κλάδος «%s» δεν μπορεί να διαγραφεί επειδή προστέθηκαν νέα commit μετά τη συγχώνευση.
branch.create_branch=Δημιουργία κλάδου %s
branch.create_from=`από το «%s»`
branch.create_success=Ο κλάδος «%s» δημιουργήθηκε.
@ -2712,7 +2714,7 @@ settings.new_owner_blocked_doer = Ο νέος κάτοχος του αποθετ
settings.enter_repo_name = Γράψτε το όνομα του κατόχου και του αποθετηρίου ακριβώς όπως το βλέπετε:
settings.confirmation_string = Κείμενο επιβεβαίωσης
settings.units.overview = Επισκόπηση
pulls.commit_ref_at = `ανέφερε το pull request στην υποβολή <a id="%[1]s" href="#%[1]s">%[2]s</a>`
pulls.commit_ref_at = `ανέφερε το pull request στο commit <a id="%[1]s" href="#%[1]s">%[2]s</a>`
contributors.contribution_type.filter_label = Είδος συνεισφοράς:
settings.wiki_rename_branch_main_notices_1 = Αυτή η ενέργεια <strong>ΔΕΝ</strong> αναιρείται.
activity.navbar.contributors = Συνεισφέροντες
@ -2721,11 +2723,11 @@ contributors.contribution_type.deletions = Διαγραφές
migrate.forgejo.description = Μεταφορά δεδομένων από το codeberg.org ή άλλων υπηρεσιών Forgejo.
rss.must_be_on_branch = Για να αποκτήσετε ένα RSS feed, πρέπει να βρίσκεστε σε έναν κλάδο.
clone_in_vscodium = Κλωνοποίηση στο VSCodium
editor.invalid_commit_mail = Αυτή η διεύθυνση email δεν είναι έγκυρη για την δημιουργία μίας υποβολής.
editor.invalid_commit_mail = Αυτή η διεύθυνση email δεν είναι έγκυρη για την δημιουργία commit.
pulls.nothing_to_compare_have_tag = Ο επιλεγμένος κλάδος/tag είναι όμοιος.
issues.blocked_by_user = Δεν μπορείτε να δημιουργήσετε ζητήματα σε αυτό το repository, επειδή ο κάτοχος του repository σας έχει αποκλείσει.
pulls.agit_explanation = Δημιουργημένο μέσω του AGit. Το AGit επιτρέπει σε συνεισφέροντες να προτείνουν αλλαγές χρησιμοποιώντας την εντολή «git push», χωρίς την δημιουργία fork ή έναν νέο κλάδο.
activity.navbar.recent_commits = Πρόσφατες υποβολές
activity.navbar.recent_commits = Πρόσφατα commit
settings.wiki_globally_editable = Να επιτρέπεται η επεξεργασία του wiki σε όλους
admin.manage_flags = Διαχείριση σημάνσεων
admin.enabled_flags = Το repository έχει τις εξής σημάνσεις:
@ -2753,13 +2755,13 @@ settings.add_collaborator_blocked_our = Δεν είναι δυνατή η προ
n_branch_few = %s κλάδοι
n_tag_one = %s ετικέτα
n_tag_few = %s ετικέτες
n_commit_one = %s υποβολή
n_commit_one = %s commit
stars = Αστέρια
n_branch_one = %s κλάδος
commits.search_branch = Αυτός ο κλάδος
pulls.title_desc_one = : θα ήθελε να συγχωνεύσει %[1]d υποβολή από τον κλάδο <code>%[2]s</code> στον κλάδο <code id="%[4]s">%[3]s</code>
pulls.merged_title_desc_one = συγχώνευσε %[1]d υποβολή από τον κλάδο <code>%[2]s</code> στον κλάδο <code>%[3]s</code> %[4]s
n_commit_few = %s υποβολές
n_commit_few = %s commits
settings.sourcehut_builds.secrets = Μυστικά
settings.add_webhook.invalid_path = Η τοποθεσία του αρχείου δεν μπορεί να περιέχει κενά, «.» ή «..». Δεν μπορεί να αρχίζει ή να τελειώνει με μία κάθετο.
commits.browse_further = Περιήγηση περισσοτέρων
@ -2779,7 +2781,7 @@ settings.event_pull_request_enforcement = Εξαναγκασμός
editor.commit_id_not_matching = Το αρχείο άλλαξε όσο το επεξεργαζόσασταν. Θα πρέπει να υποβάλετε τις αλλαγές σας σε έναν νέο κλάδο και μετά να τις συγχωνεύσετε.
settings.sourcehut_builds.visibility = Ορατότητα εργασιών
object_format = Μορφή αντικειμένων («object format»)
settings.ignore_stale_approvals_desc = Οι εγκρίσεις, οι οποίες αναφέρονται σε παλαιότερες υποβολές, δεν θα προσμετρούνται στο σύνολο των απαιτούμενων εγκρίσεων του pull request. Εφόσον αυτές οι εγκρίσεις έχουν ήδη ανακληθεί, τότε αυτή η ρύθμιση δεν θα παίξει κάποιον ρόλο.
settings.ignore_stale_approvals_desc = Οι εγκρίσεις, οι οποίες αναφέρονται σε παλαιότερα commit, δεν θα προσμετρούνται στο σύνολο των απαιτούμενων εγκρίσεων του pull request. Εφόσον αυτές οι εγκρίσεις έχουν ήδη ανακληθεί, τότε αυτή η ρύθμιση δεν θα παίξει κάποιον ρόλο.
settings.archive.mirrors_unavailable = Οι λειτουργίες ειδώλου δεν είναι διαθέσιμες εφόσον το repository έχει αρχειοθετηθεί.
settings.web_hook_name_sourcehut_builds = SourceHut Builds
settings.enforce_on_admins = Εφαρμογή κανόνα σε διαχειριστές του αποθετηρίου
@ -2823,7 +2825,7 @@ release.asset_name = Όνομα αρχείου
release.asset_external_url = Εξωτερικό URL
release.invalid_external_url = Μη έγκυρο εξωτερικό URL: «%s»
no_eol.text = Λείπει το EOL
activity.commit = Δραστηριότητα υποβολών
activity.commit = Δραστηριότητα commit
no_eol.tooltip = Αυτό το αρχείο δεν περιέχει έναν χαρακτήρα τύπου επιστροφής φορέα («end of line») στο τέλος του αρχείου.
release.add_external_asset = Προσθήκη εξωτερικού αρχείου
milestones.filter_sort.name = Όνομα
@ -2831,13 +2833,26 @@ release.type_external_asset = Εξωτερικό αρχείο
mirror_public_key = Δημόσιο κλειδί SSH
mirror_use_ssh.helper = το Forgejo θα κατοπτρίσει το αποθετήριο μέσω Git με τη χρήση SSH και θα δημιουργήσει ένα ζεύγος κλειδιών. Πρέπει να εξασφαλίσετε πως το δημιουργημένο κλειδί είναι εξουσιοδοτημένο να ωθεί στο αποθετήριο προορισμού. Εφόσον το έχετε επιλέξει, δε μπορείτε να χρησιμοποιήσετε εξουσιοδότηση συνθηματικού.
new_from_template = Χρήση προτύπου
new_from_template_description = Μπορείτε να χρησιμοποιήσετε ένα προυπάρχον πρότυπο αποθετηρίου και να εφαρμόσετε τις ρυθμίσεις του.
new_advanced = Ρυθμίσεις για προχωρημένους
new_advanced_expand = Κλικ για επέκταση
auto_init_description = Δημιουργία αρχικού commit που περιέχει ένα αρχείο README, μαζί με τα αρχεία άδειας χρήσης και .gitignore προαιρετικά.
mirror_use_ssh.text = Χρήση ταυτοποίησης SSH
mirror_use_ssh.not_available = Η ταυτοποίηση μέσω SSH δεν είναι διαθέσιμη.
mirror_denied_combination = Η χρήση ενός κλειδιού καθώς και ενός κωδικού για ταυτοποίηση ταυτόχρονα δεν είναι δυνατή.
summary_card_alt = Κάρτα σύνοψης του αποθετηρίου %s
editor.add_tmpl.filename = Όνομα αρχείου
editor.commit_email = Email για commit
issues.all_title = Όλα
[graphs]
component_loading_failed = Δεν ήταν δυνατή η φόρτωση του %s
component_loading = Γίνεται φόρτωση του %s...
component_loading_info = Αυτό μπορεί να πάρει λίγη ώρα…
component_failed_to_load = Προέκυψε ένα απρόσμενο σφάλμα.
contributors.what = συνεισφορές
recent_commits.what = πρόσφατες υποβολές
recent_commits.what = πρόσφατα commit
code_frequency.what = συχνότητα κώδικα
[org]
@ -3543,8 +3558,8 @@ push_tag=ώθησε την ετικέτα <a href="%[2]s">%[3]s</a> σε <a href
delete_tag=διέγραψε την ετικέτα %[2]s από <a href="%[1]s">%[3]s</a>
delete_branch=διέγραψε το κλάδο %[2]s από <a href="%[1]s">%[3]s</a>
compare_branch=Σύγκριση
compare_commits=Σύγκριση %d υποβολών
compare_commits_general=Σύγκριση υποβολών
compare_commits=Σύγκριση %d commit
compare_commits_general=Σύγκριση commits
mirror_sync_push=συγχρονιστήκαν οι υποβολές του <a href="%[2]s">%[3]s</a> στο <a href="%[1]s">%[4]s</a> από το είδωλο
mirror_sync_create=συγχρονίστηκε η νέα αναφορά <a href="%[2]s">%[3]s</a> στο <a href="%[1]s">%[4]s</a> από το είδωλο
mirror_sync_delete=συγχρόνισε και διάγραψε την αναφορά <code>%[2]s</code> σε <a href="%[1]s">%[3]s</a> από το είδωλο
@ -3600,13 +3615,13 @@ no_subscriptions=Καμία συνδρομή
[gpg]
default_key=Υπογραφή με το προεπιλεγμένο κλειδί
error.extract_sign=Αποτυχία εξαγωγής υπογραφής
error.generate_hash=Αποτυχία δημιουργίας του κατακερματισμού (hash) της υποβολής
error.no_committer_account=Δεν υπάρχει λογαριασμός συνδεδεμένος με τη διεύθυνση email του υποβολέα
error.generate_hash=Αποτυχία δημιουργίας hash του commit
error.no_committer_account=Δεν υπάρχει λογαριασμός που συσχετίζεται με τη διεύθυνση email του υποβολέα
error.no_gpg_keys_found=Δεν βρέθηκε γνωστό κλειδί για αυτήν την υπογραφή στη βάση δεδομένων
error.not_signed_commit=Η υποβολή δεν είναι υπογεγραμμένη
error.not_signed_commit=Το commit δεν είναι υπογεγραμμένη
error.failed_retrieval_gpg_keys=Αποτυχία ανάκτησης κλειδιού που είναι συνδεδεμένο στο λογαριασμό του υποβολέα
error.probable_bad_signature=ΠΡΟΣΟΧΗ! Αν και υπάρχει ένα κλειδί με αυτό το ID στη βάση δεδομένων δεν επαληθεύει αυτή την υποβολή! Αυτή η υποβολή είναι ΥΠΟΠΤΗ.
error.probable_bad_default_signature=ΠΡΟΣΟΧΗ! Αν και το προεπιλεγμένο κλειδί έχει αυτό το ID, δεν επαληθεύει αυτή την υποβολή! Αυτή η υποβολή είναι ΥΠΟΠΤΗ.
error.probable_bad_signature=ΠΡΟΣΟΧΗ! Αν και υπάρχει ένα κλειδί με αυτό το ID στη βάση δεδομένων δεν επαληθεύει αυτό το commit! Αυτή η υποβολή είναι ΥΠΟΠΤΗ.
error.probable_bad_default_signature=ΠΡΟΣΟΧΗ! Αν και το προεπιλεγμένο κλειδί έχει αυτό το ID, δεν επαληθεύει αυτό το commit! Αυτή η υποβολή είναι ΥΠΟΠΤΗ.
[units]
unit=Μονάδα
@ -3827,7 +3842,7 @@ runners.task_list.no_tasks=Δεν υπάρχει καμία εργασία ακ
runners.task_list.run=Εκτέλεση
runners.task_list.status=Κατάσταση
runners.task_list.repository=Repository
runners.task_list.commit=Υποβολή
runners.task_list.commit=Commit
runners.task_list.done_at=Ολοκλήρωσε Στις
runners.edit_runner=Επεξεργασία Εκτελεστή
runners.update_runner=Ενημέρωση αλλαγών
@ -3848,7 +3863,7 @@ runners.reset_registration_token=Επαναφορά διακριτικού εγ
runners.reset_registration_token_success=Επιτυχής επανέκδοση διακριτικού εγγραφής του εκτελεστή
runs.all_workflows=Όλες οι ροές εργασίας
runs.commit=Υποβολή
runs.commit=Commit
runs.scheduled=Προγραμματισμένα
runs.pushed_by=ωθήθηκε από
runs.invalid_workflow_helper=Το αρχείο ροής εργασίας δεν είναι έγκυρο. Ελέγξτε το αρχείο σας: %s
@ -3860,7 +3875,7 @@ runs.status_no_select=Όλες οι καταστάσεις
runs.no_results=Δεν βρέθηκαν αποτελέσματα.
runs.no_workflows=Δεν υπάρχουν ροές εργασίας ακόμα.
runs.no_runs=Η ροή εργασίας δεν έχει τρέξει ακόμα.
runs.empty_commit_message=(κενό μήνυμα υποβολής)
runs.empty_commit_message=(κενό μήνυμα commit)
workflow.disable=Απενεργοποίηση ροής εργασίας
workflow.disable_success=Η ροή εργασίας «%s» απενεργοποιήθηκε επιτυχώς.
@ -3922,7 +3937,7 @@ code_search_by_git_grep = Για την αναζήτηση κώδικα, χρη
package_kind = Αναζήτηση πακέτων...
project_kind = Αναζήτηση έργων...
branch_kind = Αναζήτηση κλάδων...
commit_kind = Αναζήτηση υποβολών...
commit_kind = Αναζήτηση commit...
no_results = Δεν βρέθηκαν κατάλληλα αποτελέσματα.
search = Αναζήτηση...
type_tooltip = Είδος αναζήτησης

View file

@ -19,7 +19,7 @@ language=Idioma
notifications=Notificaciones
active_stopwatch=Rastreador de tiempo activo
create_new=Crear…
user_profile_and_more=Perfil y ajustes
user_profile_and_more=Perfil y configuración
signed_in_as=Identificado como
enable_javascript=Este sitio web requiere JavaScript.
toc=Tabla de contenidos
@ -316,7 +316,7 @@ confirm_password=Confirmar contraseña
admin_email=Correo electrónico
install_btn_confirm=Instalar Forgejo
test_git_failed=Fallo al probar el comando "git": %v
sqlite3_not_available=Esta versión de Forgejo no soporta SQLite3. Por favor, descarga la versión binaria oficial de %s (no la versión "gobuild").
sqlite3_not_available=Esta versión de Forgejo no admite SQLite3. Descárguese la versión binaria oficial desde %s (no la versión «gobuild»).
invalid_db_setting=La configuración de la base de datos no es válida: %v
invalid_db_table=La tabla "%s" de la base de datos no es válida: %v
invalid_repo_path=La ruta de la raíz del repositorio no es válida: %v
@ -680,6 +680,8 @@ To = Nombre de rama
Website = Sitio web
email_domain_is_not_allowed = El dominio de la dirección de correo electrónico del usuario <b>%s</b> entra en conflicto con EMAL_DOMAIN_ALLOWLIST o EMAIL_DOMAIN_BLOCKLIST. Asegúrese de que ha establecido la dirección de correo electrónico correctamente.
[user]
change_avatar=Cambiar su avatar…
joined_on=Se unió el %s
@ -699,7 +701,7 @@ disabled_public_activity=Este usuario ha desactivado la visibilidad pública de
email_visibility.limited=Tu dirección de correo electrónico es visible para todos los usuarios autenticados
email_visibility.private=Tu dirección de correo electrónico solo es visible para ti y los administradores
show_on_map=Mostrar este lugar en un mapa
settings=Ajustes del usuario
settings=Configuración del usuario
form.name_reserved=El nombre de usuario "%s" está reservado.
form.name_pattern_not_allowed=El patrón "%s" no está permitido en un nombre de usuario.
@ -2148,7 +2150,7 @@ settings.update_mirror_settings=Actualizar ajustes de réplica
settings.branches.switch_default_branch=Cambiar rama por defecto
settings.branches.update_default_branch=Actualizar rama por defecto
settings.branches.add_new_rule=Añadir nueva regla
settings.advanced_settings=Ajustes avanzados
settings.advanced_settings=Configuración avanzada
settings.wiki_desc=Activar wiki del repositorio
settings.use_internal_wiki=Usar wiki integrada
settings.use_external_wiki=Usar wiki externa
@ -2182,7 +2184,7 @@ settings.releases_desc=Activar lanzamientos en el repositorio
settings.packages_desc=Habilitar registro de paquetes en el repositorio
settings.projects_desc=Activar proyectos en el repositorio
settings.actions_desc=Habilite procesos CI/CD integrados con Forgejo Actions
settings.admin_settings=Ajustes de administrador
settings.admin_settings=Configuración administrativa
settings.admin_enable_health_check=Activar cheques de estado de salud del repositorio (git fsck)
settings.admin_code_indexer=Indexador de código
settings.admin_stats_indexer=Indexador de estadísticas de código
@ -3517,7 +3519,7 @@ emails.delete = Eliminar correo electrónico
emails.delete_desc = ¿Estás seguro que quieres eliminar esta dirección de correo electrónico?
emails.deletion_success = El correo electrónico ha sido eliminado.
emails.delete_primary_email_error = No puedes eliminar el correo electrónico principal.
auths.tips.gmail_settings = Ajustes de Gmail:
auths.tips.gmail_settings = Configuración de Gmail:
auths.tip.gitlab_new = Registrar una nueva aplicación en %s
config.cache_test = Caché de prueba
self_check.no_problem_found = Aún no se encontró un problema.

View file

@ -112,9 +112,9 @@ new_project_column = ستون جدید
retry = سعی دوباره
rerun = اجرای دوباره
rerun_all = اجرای دوباره تمام کارها
rss_feed = خوراک RSS
rss_feed = خوراک آراس‌اس
pin = سنجاق
unpin = حذف سنجاق
unpin = برداشتن سنجاق
locked = قفل شده
copy_hash = رونوشت هش
unknown = نامشخص
@ -134,17 +134,93 @@ new_repo.title = مخزن جدید
new_migrate.title = مهاجرت جدید
new_repo.link = مخزن جدید
tracked_time_summary = چکیده‌ای از زمان ردیابی‌شده بر اساس پالایه‌های فهرست مشکل‌ها
toggle_menu = دگرش فهرست
webauthn_error_insecure = احرازوب فقط از روش‌های ایمن ممکن است. برای آزمودن بر روی اچ‌تی‌تی‌پی می‌توانید از «میزبان‌محلی» یا «۱۲۷.۰.۰.۱» استفاده کنید.
remove_label_str = حذف مورد "%s"
view = نما
test = آزمودن
copy_generic = رونوشت در بریده‌دان
copy_path = رونوشت مسیر
copy_content = رونوشت درون‌مایه
error413 = شما سهمیه خود را تمام کرده‌اید.
go_back = بازگشت
invalid_data = داده نامعتبر: %v
artifacts = آلایه
confirm_delete_artifact = آیا مطمئن هستید که می‌خواهید آلایه « %s » را حذف کنید؟
concept_system_global = سراسری
concept_user_individual = تکی
show_timestamps = نمایش برچسب‌زمان
show_log_seconds = نمایش ثانیه‌ها
show_full_screen = نمایش تمام صفحه
download_logs = بارگیری واقعه‌نگاری
confirm_delete_selected = تایید می‌کنید که همه موارد گزینش شده حذف شوند؟
value = ارزش
filter = فیلتر
filter.clear = پاک‌کردن پالایه‌ها
filter.is_archived = بایگانی شده
filter.not_archived = بایگانی نشده
filter.is_fork = چنگ‌ها
filter.not_fork = چنگ نشده‌ها
filter.is_mirror = آینه‌ها
filter.not_mirror = نا آینه
filter.is_template = کالبد‌ها
filter.not_template = بدون کالبد‌ها
filter.public = عمومی
filter.private = خصوصی
[aria]
navbar = نوار ناوبری
footer = پاورقی
footer.software = درباره این نرم‌افزار
footer.links = پیوندها
[heatmap]
number_of_contributions_in_the_last_12_months = %s هم‌کاری در ۱۲ ماه گذشته
contributions_zero = بدون هم‌کاری
contributions_format = {هم‌کاری} در {روز}{ماه}{سال}
contributions_one = هم‌کاری
contributions_few = هم‌کاری‌ها
less = کم‌تر
more = بیش‌تر
[editor]
buttons.heading.tooltip = افزودن سرصفحه
buttons.bold.tooltip = افزودن متن درشت
buttons.italic.tooltip = افزودن متن کج
buttons.quote.tooltip = افزودن نقل‌قول
buttons.code.tooltip = افزودن کد
buttons.link.tooltip = افزودن یک پیوند
buttons.list.unordered.tooltip = افزودن یک فهرست نقطه‌ای
buttons.list.ordered.tooltip = افزودن یک فهرست شماره‌دار
buttons.list.task.tooltip = افزودن یک فهرست کارها
buttons.mention.tooltip = یادکردن از کاربر یا گروهی
buttons.ref.tooltip = اشاره به مشکلی یا درخواست واکشی
buttons.switch_to_legacy.tooltip = به جای آن از ویرایش‌گر کهنه‌تر استفاده کن
buttons.enable_monospace_font = فونت یکپارچه را فعال کن
buttons.disable_monospace_font = فونت یکپارچه را غیرفعال کن
buttons.indent.tooltip = اجزا را با یک سطح گروه‌بندی کن
buttons.unindent.tooltip = اجزا را با یک سطح گروه‌بندی نکن
buttons.new_table.tooltip = افزودن جدول
table_modal.header = افزودن جدول
table_modal.placeholder.header = سرآیند
table_modal.placeholder.content = محتوا
table_modal.label.rows = ردیف‌ها
table_modal.label.columns = ستون‌ها
[filter]
string.asc = آ - ی
string.desc = ی - آ
[error]
missing_csrf=درخواست بد: بلیط CSRF ندارد
occurred = خطایی رخ داد
report_message = اگر گمان می‌برید این اشکال از فورججو است، لطفا در مشکلات در <a href="%s" target="_blank">کدبرگ</a> را بگردید یا اگر لازم است یک مشکل باز کنید.
not_found = هدف را نمی‌توان یافت.
network_error = خطای شبکه
server_internal = خطای درونی کارساز
[startpage]
app_desc=یک سرویس گیت بی‌درد سر و راحت
install=راه‌اندازی ساده
@ -154,16 +230,19 @@ lightweight_desc=گیتی با حداقل منابع میتوانید برای
license=متن باز
license_desc=برو به <a target="_blank" rel="noopener noreferrer" href="%[1]s">Forgejo</a>! به ملحق شوید با <a target="_blank" rel="noopener noreferrer" href="%[2]s"> مشارکت کردن</a> برای این که این پروژه بهتر شود. برای مشارکت کردن خجالت نکشید!
install_desc = به آسانی <a target="_blank" rel="noopener noreferrer" href="%[1]s">اعداد دو دویی</a> را برای سکوی خود اجرا کنید. با <a target="_blank" rel="noopener noreferrer" href="%[2]s">داکر</a> آن را ارسال کنید، یا <a target="_blank" rel="noopener noreferrer" href="%[3]s">بسته‌بندی</a> تحویل بگیرید.
platform_desc = فورججو برای اجرا بر روی سامانه‌عامل‌های آزاد مانند گنو/لینوکس و بی‌اس‌دی آزاد و هم‌چنین معماری‌های گوناگون پردازنده ثبات دارد. هر چی میل‌تان هست انتخاب کنید!
[install]
install=نصب و راه اندازی
title=تنظیمات اولیه
title=پیکربندی اولیه
docker_helper=اگر گیتی را با داکر اجرا کرده‌اید، لطفا قبل از هر تغییری <a target="_blank" rel="noopener noreferrer" href="%s">مستندات</a> را مطالعه نمایید.
db_title=تنظیمات پایگاه داده
db_type=نوع پایگاه داده
db_title=تنظیمات پایگاهداده
db_type=گونه پایگاه‌داده
host=میزبان
user=نام کاربری
password=رمز عبور
db_name=نام پایگاه داده
db_name=نام پایگاهداده
db_schema=قالب
db_schema_helper=برای مقدار پیش فرض پایگاه داده خالی بگذارید ("public").
ssl_mode=SSL
@ -178,24 +257,24 @@ err_empty_db_path=مسیر دیتابیس SQLite3 نمیتواند خالی با
no_admin_and_disable_registration=شما بدون ایجاد حساب‌ کاربری مدیر نمی‌توانید عضویت را غیر فعال کنید.
err_empty_admin_password=کلمه عبور حساب مدیر نمی تواند خالی باشد.
err_empty_admin_email=رایانامه (ایمیل) مدیر نمی تواند خالی باشد.
err_admin_name_is_reserved=نام کاربری مدیر اشتباه است. نام کاربری قبلا استفاده شده است
err_admin_name_is_reserved=نام‌کاربری مدیر اشتباه است، نام‌کاربری قبلا استفاده شده است
err_admin_name_pattern_not_allowed=نام کاربری مدیر اشتباه است. نام کاربری قبلا استفاده شده است
err_admin_name_is_invalid=نام کابری مدیر اشتباه است
general_title=تنظیمات عمومی
app_name=عنوان سایت
app_name_helper=شما می توانید نام شرکت خود را در اینجا وارد کنید.
app_name=تیتر نمونه
app_name_helper=شما می توانید نام نمونه خود را در اینجا وارد کنید. آن در همه برگه‌ها به نمایش در خواهد آمد.
repo_path=مسیر ریشه مخزن
repo_path_helper=تمام مخازن کد راه دور در این پوشه ذخیره می‌شوند.
lfs_path=مسیر Git LFS
lfs_path=مسیر ریشه ذخیره‌سازی پرونده بزرگ گیت
lfs_path_helper=فایل هایی که توسط Git LFS دنبال میشوند در این پوشه ذخیره خواهند شد. درصورت خالی بودن فیلد این قابلیت غیرفعال خواهد بود.
run_user=اجرا به عنوان نام کاربری
domain=دامنه سرور
run_user=اجرای کاربر به عنوان
domain=دامنه کارساز
domain_helper=آدرس میزبان یا دامنه برای سرور.
ssh_port=پورت SSH سرور
ssh_port_helper=شماره درگاهی که سرور SSH گوش می دهد. برای غیر فعال کردن خالی بگذارید.
http_port=پورت HTTP گیتی
http_port_helper=پورت سرور وب گیتی.
ssh_port=درگاه کارساز پوسته‌امن
ssh_port_helper=شماره درگاهی که سرور پوسته‌امن استفاده می‌کند. برای غیر فعال کردن خالی بگذارید.
http_port=درگاه شنونده اچ‌تی‌تی‌پی
http_port_helper=شماره درگاهی که توسط کارساز وب فرججو استفاده می‌شود.
app_url=آدرس پایه گیتی
app_url_helper=آدرس پایه برای URLهای اجماع HTTP(S) و هشدار های رایانامه (ایمیل).
log_root_path=مسیر گزارش‌ها
@ -256,6 +335,12 @@ no_reply_address=مخفی کردن دامنه ایمیل
no_reply_address_helper=نام دامنه برای کاربران دارای آدرس ایمیل پنهان است. به عنوان مثال ، اگر نام دامنه ایمیل مخفی روی "noreply.example.org" تنظیم شده باشد ، نام کاربری "joe" در Git به عنوان "joe@noreply.example.org" وارد می شود
password_algorithm=الگوریتم درهم‌ساز گذرواژه
require_db_desc = فروججو به مای‌اس‌کیوال، پستگری‌اس‌کیوال،اس‌کیولایت۳ یا تی‌دی‌بی نیاز دارد.
app_slogan = شعار نمونه
app_slogan_helper = شعار نمونه خود را اینجا وارد کنید. برای غیرفعال شدن خالی بگذارید.
run_user_helper = نام‌کاربری سامانه‌عامل که با عنوان فرججو اجرا می‌شود. به یادداشته باشید که کاربر باید دسترسی به مسیر ریشه مخازن داشته باشد.
[home]
uname_holder=نام کاربری یا نشانی ایمیل
password_holder=گذرواژه
@ -1989,6 +2074,8 @@ error.csv.too_large=نمی توان این فایل را رندر کرد زیر
error.csv.unexpected=نمی توان این فایل را رندر کرد زیرا حاوی یک کاراکتر غیرمنتظره در خط %d و ستون %d است.
error.csv.invalid_field_count=نمی توان این فایل را رندر کرد زیرا تعداد فیلدهای آن در خط %d اشتباه است.
milestones.filter_sort.name = نام
[graphs]
[org]
@ -2542,6 +2629,9 @@ notices.op=عملیات.
notices.delete_success=گزارش سیستم حذف شده است.
config_summary = چکیده
config_settings = تنظيمات
[action]
create_repo=مخزن ایجاد شده <a href="%s"> %s</a>
rename_repo=مخزن تغییر نام داد از <code>%[1]s</code> به <a href="%[2]s">%[3]s</a>
@ -2671,3 +2761,29 @@ executable_file = فایل اجرایی
normal_file = فایل معمولی
changed_filemode = %[1] ها ← %[2] ها
directory = پوشه
[search]
search = جستجو...
type_tooltip = جستجو گونه
fuzzy = درهم
fuzzy_tooltip = پیامدهایی را درج کنید که دقیقا با عبارت جستجو همخوانی داشته باشند
union = بهم پیوستگی
exact = مو به مو
exact_tooltip = نتایجی را در بر بگیر که مو به مو با اصطلاح جستجو شده یکی باشد
regexp = عبارات باقاعده
regexp_tooltip = اصطلاح جستجو شده را با عبارات باقاعده تفسیر کن
repo_kind = جستجو مخازن...
user_kind = جستجو کاربران...
org_kind = جستجو سازمان‌ها...
team_kind = جستجو گروه‌ها...
code_kind = جستجو کدها...
code_search_unavailable = جستجوی کد اکنون در دسترس نیست. لطفا با مدیر سایت درمیان بگذارید.
package_kind = جستجو بسته‌ها...
project_kind = جستجو پروژه‌ها...
branch_kind = جستجو شاخه‌ها...
commit_kind = جستجو سپرده‌ها...
runner_kind = جستجو دونده‌ها...
no_results = نتیجه درخوری یافت نشد.
issue_kind = جستجو مشکلات...
pull_kind = جستجو واکشی‌ها...
keyword_search_unavailable = جستجو کلیدواژه اکنون در درسترس نیست. لطفا با مدیر سایت در میان بگذارید.

View file

@ -289,10 +289,10 @@ mailer_password=SMTP-salasana
register_confirm=Vaadi sähköpostinvahvistus rekisteröinnin edellytykseksi
mail_notify=Ota sähköposti-ilmoitukset käyttöön
server_service_title=Palvelimen ja kolmansien osapuolten palveluiden asetukset
offline_mode=Ota käyttöön lokaali tila
offline_mode=Ota käyttöön paikallinen tila
offline_mode.description=Poista kolmannen osapuolen sisällönjakeluverkot ja tarjoa kaikki resurssit paikallisesti.
disable_gravatar=Poista Gravatar käytöstä
disable_gravatar.description=Poista Gravatar ja kolmannen osapuolen avaratir käytöstä. Oletus-avatar näytetään, ellei käyttäjä ole ladannut omaansa.
disable_gravatar.description=Poista Gravatar- tai muiden kolmansien osapuolien avatar-lähteet käytöstä. Oletuskuvia käytetään käyttäjien avatareissa, elleivät he uloslataa omaa avatariaan ilmentymään.
federated_avatar_lookup=Käytä federoituja profiilikuvia
federated_avatar_lookup.description=Käytä Libravatar-palvelua profiilikuvien hakemiseen.
disable_registration=Poista omatoiminen rekisteröityminen käytöstä
@ -481,6 +481,8 @@ disable_forgot_password_mail_admin = Tilin palautus on käytössä vain, jos sä
authorization_failed_desc = Valtuus epäonnistui, koska havaitsimme virheellisen pyynnön. Ota yhteys sen sovelluksen ylläpitäjään, jota yritit valtuuttaa.
password_pwned_err = Pyyntöä HaveIBeenPwned-palveluun ei voitu suorittaa
prohibit_login_desc = Tilinne on estetty kanssakäymästä tämän instanssin kanssa. Ota yhteys instanssin järjestelmävalvojaan pääsyn uudelleenmahdollistamiseksi.
[mail]
view_it_on=Näytä %s
link_not_working_do_paste=Eikö linkki toimi? Yritä kopioida ja liittää se selaimesi osoitepalkkiin.
@ -545,6 +547,13 @@ repo.collaborator.added.text = Sinut on lisätty avustajaksi repoon:
primary_mail_change.text_1 = Tilisi ensisijaiseksi sähköpostiosoitteeksi asetettiin %[1]s. Se tarkoittaa, että tämä sähköpostiosoite ei enää vastaanota tilisi ilmoituksia sähköpostitse.
team_invite.text_1 = %[1]s on kutsunut sinut liittymään tiimiin %[2]s organisaatiossa %[3]s.
issue_assigned.pull = @%[1]s osoitti sinulle vetopyynnön %[2]s repossa %[3]s.
issue_assigned.issue = @%[1]s osoitti sinulle ongelman %[2]s repossa %[3]s.
register_notify.text_1 = tämä on %s:n rekistöröitymisen vahvistussähköposti!
reset_password.text = jos tämä oli sinun toimestasi, ole hyvä ja klikkaa oheista linkkiä palauttaaksesi tilisi <b>%s</b> sisällä:
totp_disabled.no_2fa = Muita kaksivaiheisen tunnistautumisen menetelmiä ei ole konfiguroituna, joten et tarvitse kaksivaiheista tunnistautumista kirjautuaaksesi tilillesi.
[modal]
yes=Kyllä
no=Ei
@ -627,6 +636,9 @@ must_use_public_key = Antamasi avain on yksityinen avain. Älä lähetä yksityi
still_own_packages = Tilisi omistaa yhden tai useamman paketin, poista ne ensin.
AccessToken = Pääsypoletti
enterred_invalid_owner_name = Uuden omistajan nimi ei ole kelvollinen.
[user]
change_avatar=Vaihda profiilikuvasi…
repositories=Repot
@ -963,7 +975,7 @@ repo_name=Repon nimi
repo_name_helper=Hyvä repon nimi on lyhyt, mieleenpainuva ja yksilöllinen.
repo_size=Repon koko
template=Malli
template_select=Valitse malli.
template_select=Valitse malli
template_helper=Tee reposta mallipohja
visibility=Näkyvyys
visibility_description=Vain omistaja tai organisaation jäsenet, jos heillä on oikeudet, voivat nähdä sen.
@ -978,7 +990,7 @@ repo_desc=Kuvaus
repo_lang=Kieli
repo_gitignore_helper=Valitse .gitignore-mallit
issue_labels=Ongelmien tunnisteet
issue_labels_helper=Valitse pohja ongelmien nimilapuille.
issue_labels_helper=Valitse nimiöjoukko
license=Lisenssi
license_helper=Valitse lisenssitiedosto
readme=README
@ -1517,12 +1529,12 @@ settings.protected_branch=Haaran suojaus
settings.branch_protection=Haaran "<b>%s</b>" suojaussäännöt
settings.protect_this_branch=Ota haaran suojaus käyttöön
settings.protect_whitelist_deploy_keys=Lisää julkaisuavaimet sallittujen listalle mahdollistaaksesi repohin kirjoituksen.
settings.protect_whitelist_users=Lista käyttäjistä joilla työntö oikeus:
settings.protect_whitelist_users=Sallitut käyttäjät suhteessa työntämiseen
settings.protect_whitelist_search_users=Etsi käyttäjiä…
settings.protect_merge_whitelist_committers_desc=Salli vain listaan merkittyjen käyttäjien ja tiimien yhdistää vetopyynnöt tähän haaraan.
settings.protect_merge_whitelist_users=Lista käyttäjistä joilla yhdistämis-oikeus:
settings.protect_merge_whitelist_users=Sallitut käyttäjät suhteessa yhdistämiseen
settings.protect_required_approvals=Vaadittavat hyväksynnät
settings.protect_approvals_whitelist_users=Sallittujen tarkastajien lista:
settings.protect_approvals_whitelist_users=Sallittujen tarkastajien lista
settings.choose_branch=Valitse haara…
settings.no_protected_branch=Suojattuja haaroja ei ole.
settings.edit_protected_branch=Muokkaa
@ -1696,7 +1708,7 @@ settings.event_issue_comment = Kommentit
diff.download_patch = Lataa patch-tiedosto
issues.filter_milestone_none = Ei merkkipaaluja
issues.filter_milestone_open = Avoimet merkkipaalut
new_repo_helper = Repositorio eli tietovarasto sisältää kaikki projektin tiedostot, mukaan lukien versiohistorian. Onko sinulla repo jo jossain muualla? <a href="%s">Tee repomigraatio.</a>
new_repo_helper = Tietovarasto sisältää kaikki projektitiedostot, mukaan lukien tarkistushistoria. Järjestätkö jo sellaisen muualla? <a href="%s">Siirrä tietovarasto</a>.
use_template = Käytä tätä mallipohjaa
star_guest_user = Kirjaudu sisään lisätäksesi tähden tähän repoon.
watch_guest_user = Kirjaudu sisään tarkkaillaksesi tätä repoa.
@ -2107,6 +2119,19 @@ settings.enter_repo_name = Kirjoita omistajan ja repon nimi täsmälleen kuten e
settings.confirmation_string = Vahvistusteksti
settings.delete_notices_2 = - Tämä toiminto poistaa pysyvästi repon <strong>%s</strong> mukaan lukien koodin, ongelmat, kommentit, wikidatan ja avustaja-asetukset.
issues.new.assign_to_me = Osoita itselle
issues.filter_assginee_no_select = Kaikki käsittelijät
pulls.closed_at = `sulki tämän vetopyynnön <a id="%[1]s" href="#%[1]s">%[2]s</a>`
generate_repo = Luo repo
tree_path_not_found_commit = Polkua %[1]s ei ole olemassa kommitissa %[2]s
tree_path_not_found_branch = Polkua %[1]s ei ole olemassa haarassa %[2]s
tree_path_not_found_tag = Polkua %[1]s ei ole olemassa tagissa %[2]s
transfer.no_permission_to_accept = Sinulla ei ole oikeutta hyväksyä tätä siirtoa.
transfer.no_permission_to_reject = Sinulla ei ole oikeutta hylätä tätä siirtoa.
settings.web_hook_name_feishu = Feishu / Lark Suite
[graphs]
component_loading_info = Tämä saattaa kestää hetken…
component_failed_to_load = Odottamaton virhe.

View file

@ -231,10 +231,10 @@ ssl_mode = SSL
path = Daanan
sqlite_helper = File path para sa SQLite3 database.<br>Maglagay ng absolute path kapag tinatakbo mo ang Forgejo bilang serbisyo.
reinstall_confirm_check_3 = Kinukumprima mo na sigurado ka talaga na ang Forgejo na ito ay tumatakbo sa tamang app.ini na lokasyon at sigurado ka na kailangan mo mag-reinstall. Kinukumpirma mo na kilalanin ang mga panganib sa itaas.
err_empty_db_path = Hindi maaring walang laman ang path ng SQLite database.
no_admin_and_disable_registration = Hindi mo maaring i-disable ang user self-registration nang hindi gumawa ng isang tagapangasiwa na account.
err_empty_admin_password = Hindi maaring walang laman ang password ng tagapangasiwa.
err_empty_admin_email = Hindi maaring walang laman ang email ng tagapangasiwa.
err_empty_db_path = Hindi maaaring walang laman ang path ng SQLite database.
no_admin_and_disable_registration = Hindi mo maaaring i-disable ang user self-registration nang hindi gumawa ng isang tagapangasiwa na account.
err_empty_admin_password = Hindi maaaring walang laman ang password ng tagapangasiwa.
err_empty_admin_email = Hindi maaaring walang laman ang email ng tagapangasiwa.
err_admin_name_is_reserved = Hindi angkop ang username ng tagapangasiwa, naka-reserba ang username
err_admin_name_is_invalid = Hindi angkop ang username ng tagapangasiwa
general_title = Mga General Setting
@ -250,9 +250,9 @@ domain_helper = Domain o host para sa server na ito.
ssh_port = Port ng SSH Server
http_port = Listen port sa HTTP
lfs_path_helper = Ang mga file na naka-track sa Git LFS ay ilalagay sa directory na ito. Iwanang walang laman para i-disable.
reinstall_confirm_message = Ang pag-install muli na may umiiral na Forgejo database ay maaring magdulot ng mga problema. Sa karamihan ng mga kaso, dapat mong gamitin ang iyong umiiral na "app.ini" para patakbuhin ang Forgejo. Kung alam mo ang ginagawa mo, kumpirmahin ang mga sumusunod:
reinstall_confirm_check_1 = Ang data na naka-encrypt sa pamamagitan ng SECRET_KEY sa app.ini ay maaring mawala: baka hindi maka-log in ang mga user gamit ng 2FA/OTP at ang mga mirror ay maaring hindi gumana mg maayos. Sa pamamagitan ng pag-check ng box na ito kinukumpirma mo na ang kasalukuyang app.ini file ay naglalaman ng tamang SECRET_KEY.
reinstall_confirm_check_2 = Ang mga repositoryo at mga setting ay maaring kailangang i-resynchronize. Sa pamamagitan ng pag-check ng box na ito kinukumprima mo na ire-resynchronize mo ang mga hook para sa mga repositoryo at authorized_keys ng mano-mano. Kinukumpirma mo na sisiguraduhin mo na tama ang mga setting ng repositoryo at mirror.
reinstall_confirm_message = Ang pag-install muli na may umiiral na Forgejo database ay maaaring magdulot ng mga problema. Sa karamihan ng mga kaso, dapat mong gamitin ang iyong umiiral na "app.ini" para patakbuhin ang Forgejo. Kung alam mo ang ginagawa mo, kumpirmahin ang mga sumusunod:
reinstall_confirm_check_1 = Ang data na naka-encrypt sa pamamagitan ng SECRET_KEY sa app.ini ay maaaring mawala: baka hindi maka-log in ang mga user gamit ng 2FA/OTP at ang mga mirror ay maaaring hindi gumana mg maayos. Sa pamamagitan ng pag-check ng box na ito kinukumpirma mo na ang kasalukuyang app.ini file ay naglalaman ng tamang SECRET_KEY.
reinstall_confirm_check_2 = Ang mga repositoryo at mga setting ay maaaring kailangang i-resynchronize. Sa pamamagitan ng pag-check ng box na ito kinukumprima mo na ire-resynchronize mo ang mga hook para sa mga repositoryo at authorized_keys ng mano-mano. Kinukumpirma mo na sisiguraduhin mo na tama ang mga setting ng repositoryo at mirror.
err_admin_name_pattern_not_allowed = Hindi angkop ang username ng tagapangasiwa, ang username ay tumutugma sa reserved pattern
ssh_port_helper = Numero ng port na gagamitin ng SSH server. Iwanang walang laman para i-disable ang SSH server.
server_service_title = Mga setting ng server at third-party na serbisyo
@ -565,7 +565,7 @@ SSPISeparatorReplacement = Pang-hiwalay
SSPIDefaultLanguage = Default na wika
CommitSummary = Pangkalahatang-ideya ng commit
glob_pattern_error = ` hindi angkop ang glob pattern: %s`
require_error = ` hindi maaring walang laman.`
require_error = ` hindi maaaring walang laman.`
alpha_dash_error = ` dapat maglaman lamang ng alphanumeric, dash ("-") at underscore ("_") na mga character.`
alpha_dash_dot_error = ` dapat maglaman lamang ng alphanumeric, dash ("-"), underscore ("_") at tuldok (".") na mga character.`
git_ref_name_error = ` dapat na mahusay na nabuong pangalan ng Git reference`
@ -613,8 +613,8 @@ unset_password = Hindi nagtakda ng password ang login user.
unsupported_login_type = Hindi sinusuportahan ang uri ng pag-login para burahin ang account.
user_not_exist = Hindi umiiral ang user.
team_not_exist = Hindi umiiral ang koponan.
last_org_owner = Hindi mo maaring tanggalin ang pinakahuling user sa "mga may-ari" na koponan. Kailangan may kahit isang may-ari para sa organisasyon.
cannot_add_org_to_team = Hindi maaring madagdag ang isang organisasyon bilang miyembro ng koponan.
last_org_owner = Hindi mo maaaring tanggalin ang pinakahuling user sa "mga may-ari" na koponan. Kailangan may kahit isang may-ari para sa organisasyon.
cannot_add_org_to_team = Hindi maaaring madagdag ang isang organisasyon bilang miyembro ng koponan.
duplicate_invite_to_team = Inimbita na ang user bilang miyembro ng koponan.
organization_leave_success = Matagumpay kang umalis sa organisasyon na %s.
invalid_ssh_key = Hindi ma-verify ang iyong SSH key: %s
@ -629,7 +629,7 @@ still_own_packages = Ang iyong account ay nagmamay-ari ng isa o higit pang packa
org_still_own_repo = Ang organisasyon na ito ay nagmamay-ari ng isa o higit pang mga repositoryo, burahin o ilipat sila muna.
org_still_own_packages = Ang organisasyon na ito ay nagmamay-ari ng isa o higit pang mga package, burahin sila muna.
target_branch_not_exist = Hindi umiiral ang target branch.
admin_cannot_delete_self = Hindi mo maaring burahin ang sarili mo kapag isa kang tagapangasiwa. Paki-tanggal ang iyong pribilehiyong tagapangasiwa muna.
admin_cannot_delete_self = Hindi mo maaaring burahin ang sarili mo kapag isa kang tagapangasiwa. Paki-tanggal ang iyong pribilehiyong tagapangasiwa muna.
required_prefix = Ang input ay dapat magsimula sa "%s"
FullName = Buong pangalan
Description = Paglalarawan
@ -762,8 +762,8 @@ gpg_token_code = echo "%s" | gpg -a --default-key %s --detach-sig
delete_token_success = Nabura na ang token. Ang mga application na gumagamit nito ay hindi na maa-access ang iyong account.
add_email_confirmation_sent = Ang isang email na pang-kumpirma ay ipinadala sa %s. Para kumpirmahin ang iyong email address, pakisuri ang iyong inbox at sundan ang ibinigay na link sa loob ng %s.
key_content_ssh_placeholder = Nagsisimula sa "ssh-ed25519", "ssh-rsa", "ecdsa-sha2-nistp256", "ecdsa-sha2-nistp384", "ecdsa-sha2-nistp521", "sk-ecdsa-sha2-nistp256@openssh.com", o "sk-ssh-ed25519@openssh.com"
gpg_key_verified_long = Na-verify ang key na ito gamit ng isang token at maaring gamitin para i-verify ang mga commit na tumutugma sa anumang mga naka-activate na email address para sa user na ito kasama ang mga tumutugmang pagkakakilanlan para sa key na ito.
ssh_key_verified_long = Ang key na ito ay na-verify gamit ng isang token at maaring gamitin para i-verify ang mga commit na tumutugma na email address para sa user na ito.
gpg_key_verified_long = Na-verify ang key na ito gamit ng isang token at maaaring gamitin para i-verify ang mga commit na tumutugma sa anumang mga naka-activate na email address para sa user na ito kasama ang mga tumutugmang pagkakakilanlan para sa key na ito.
ssh_key_verified_long = Ang key na ito ay na-verify gamit ng isang token at maaaring gamitin para i-verify ang mga commit na tumutugma na email address para sa user na ito.
add_principal_success = Idinagdag na ang SSH certificate principal na "%s".
ssh_key_deletion_desc = Ang pagtanggal ng SSH key ay matatanggihan ang pag-access sa iyong account. Magpatuloy?
no_activity = Walang kamakilang aktibidad
@ -822,7 +822,7 @@ keep_email_private = Itago ang email address
openid_desc = Hinahayaan ka ng OpenID na mag-delegate ng pagpapatunay sa isang panlabas na tagabigay ng serbisyo.
ssh_desc = Ang mga pampublikong SSH key na ito ay nauugnay sa iyong account. Pinapayagan ng kaukulang pribadong key ang buong pag-access sa iyong mga repositoryo. Ang mga SSH key na na-verify ay maaaring magamit upang mapatunayan ang mga naka-sign na Git commit sa pamamagitan ng SSH.
principal_desc = Ang mga SSH principal na ito ay nauugnay sa iyong account at pinapayagan ang buong pag-access sa iyong mga repositoryo.
ssh_helper = <strong>Kailangan ng tulong?</strong> Tignan ang guide sa <a href="%s">paggawa ng sarili mong mga SSH key</a> o ilutas ang <a href="%s">mga karaniwang problema</a> na maaring moong matagpo gamit ng SSH.
ssh_helper = <strong>Kailangan ng tulong?</strong> Tignan ang guide sa <a href="%s">paggawa ng sarili mong mga SSH key</a> o ilutas ang <a href="%s">mga karaniwang problema</a> na maaaring moong matagpo gamit ng SSH.
gpg_helper = <strong>Kailangan ng tulong?</strong> Tignan ang guide <a href="%s">tungkol sa GPG</a>.
add_new_key = Magdagdag ng SSH key
add_new_gpg_key = Magdagdag ng GPG key
@ -832,7 +832,7 @@ ssh_key_been_used = Idinagdag na ang SSH key na ito sa server.
ssh_key_name_used = Ang isang SSH key na may katulad na pangalan ay umiiral na sa iyong account.
ssh_principal_been_used = Idinagdag na ang principal na ito sa server.
gpg_key_matched_identities = Mga Tumutugma na Pagkakakilanlan:
gpg_key_matched_identities_long = Ang mga naka-embed na pagkakakilanlan sa key na ito ay tumutugma sa mga sumusunod na naka-activate na email address para sa user na ito. Ang mga commit na tumutugma sa mga email address na ito ay maaring i-verify gamit ng key na ito.
gpg_key_matched_identities_long = Ang mga naka-embed na pagkakakilanlan sa key na ito ay tumutugma sa mga sumusunod na naka-activate na email address para sa user na ito. Ang mga commit na tumutugma sa mga email address na ito ay maaaring i-verify gamit ng key na ito.
gpg_key_verified = Naka-verify na key
gpg_key_verify = I-verify
gpg_invalid_token_signature = Ang ibinigay na GPG key, signature, at token ay hindi tumutugma o luma.
@ -984,7 +984,7 @@ manage_account_links_desc = Ang mga panlabas na account na ito ay naka-link sa i
hooks.desc = Magdagdag ng mga webhook na mati-trigger para sa <strong>lahat ng mga repositoryo</strong> na minamay-ari mo.
orgs_none = Hindi ka isang miyembro ng anumang mga organisasyon.
oauth2_application_create_description = Ang mga OAuth2 application ay pinapayagan ang mga third-party na aplikasyon na i-access ang mga user account sa instansya na ito.
oauth2_application_locked = Ang Forgejo ay pini-pre register ang ibang mga OAuth2 application sa startup kapag naka-enable sa config. Para iwasan ang hindi inaasahang gawain, hindi ito maaring i-edit o tanggalin. Mangyaring sumangguni sa dokumentasyon ng OAuth2 para sa karagdagang impormasyon.
oauth2_application_locked = Ang Forgejo ay pini-pre register ang ibang mga OAuth2 application sa startup kapag naka-enable sa config. Para iwasan ang hindi inaasahang gawain, hindi ito maaaring i-edit o tanggalin. Mangyaring sumangguni sa dokumentasyon ng OAuth2 para sa karagdagang impormasyon.
remove_account_link_desc = Ang pagtanggal ng naka-link na account ay babawiin ang pag-access nito sa iyong Forgejo account. Magpatuloy?
visibility.public_tooltip = Makikita ng lahat
hints = Mga Pahiwatig
@ -1013,7 +1013,7 @@ admin.enabled_flags = Mga flag na naka-enable para sa repositoryo:
admin.update_flags = I-update ang mga flag
admin.flags_replaced = Napalitan ang mga flag ng repositoryo
owner = May-ari
owner_helper = Maaring hindi mapapakita ang ibang organisasyon sa dropdown dahil sa pinakamataas na bilang ng repositoryo na limitasyon.
owner_helper = Maaaring hindi mapapakita ang ibang organisasyon sa dropdown dahil sa pinakamataas na bilang ng repositoryo na limitasyon.
repo_name = Pangalan ng repositoryo
repo_name_helper = Ang mga magandang pangalan ng repositoryo ay gumagamit ng maliit, makakaalala, at unique na mga keyword.
repo_size = Laki ng Repositoryo
@ -1029,7 +1029,7 @@ fork_repo = I-fork ang repositoryo
fork_from = I-fork mula sa
already_forked = Na-fork mo na ang %s
fork_to_different_account = Mag-fork sa ibang account
fork_visibility_helper = Ang visibility ng isang naka-fork na repositoryo ay hindi maaring baguhin.
fork_visibility_helper = Ang visibility ng isang naka-fork na repositoryo ay hindi maaaring baguhin.
open_with_editor = Buksan gamit ang %s
download_bundle = I-download ang BUNDLE
repo_gitignore_helper_desc = Piliin kung anong mga file na hindi susubaybayin sa listahan ng mga template para sa mga karaniwang wika. Ang mga tipikal na artifact na ginagawa ng mga build tool ng wika ay kasama sa .gitignore ng default.
@ -1114,7 +1114,7 @@ stars = Mga bitwin
migrate_options_mirror_helper = Magiging salamin ang repositoryong ito
migrate_options_lfs_endpoint.description.local = Sinusuporta rin ang lokal na server path.
editor.this_file_locked = Nakakandado ang file
editor.filename_cannot_be_empty = Hindi maaring walang laman ang pangalan ng file.
editor.filename_cannot_be_empty = Hindi maaaring walang laman ang pangalan ng file.
commits.message = Mensahe
commits.newer = Mas bago
commits.date = Petsa
@ -1171,7 +1171,7 @@ template.avatar = Avatar
migrate_options = Mga opsyon sa paglipat
migrate.clone_address_desc = Ang HTTP(S) o Git "clone" URL ng umiiral na repositoryo
need_auth = Awtorisasyon
migrate.github_token_desc = Maari kang maglagay ng isa o higit pang mga token na hinihiwalay ng kuwit dito upang gawing mas-mabilis ang pagmigrate dahil sa rate limit ng GitHub API. BABALA: Ang pagabuso ng feature na ito ay maaring maglabag sa patakaran ng tagapagbigay ng serbisyo at maaring magdulot ng pag-block ng account.
migrate.github_token_desc = Maaari kang maglagay ng isa o higit pang mga token na hinihiwalay ng kuwit dito upang gawing mas-mabilis ang pagmigrate dahil sa rate limit ng GitHub API. BABALA: Ang pagabuso ng feature na ito ay maaaring maglabag sa patakaran ng tagapagbigay ng serbisyo at maaaring magdulot ng pag-block ng account.
template.invalid = Kailangang pumili ng kahit isang template na repositoryo
migrate_options_lfs_endpoint.description = Susubukan ng migration na gamitin ang iyong Git remote upang <a target="_blank" rel="noopener noreferrer" href="%s">matukoy ang LFS server</a>. Maari mong magtiyak ng custom na endpoint kapag ang LFS data ng repositoryo ay nakalagay sa ibang lugar.
blame.ignore_revs.failed = Nabigong hindi pansinin ang mga rebisyon sa <a href="%s">.git-blame-ignore-revs</a>.
@ -1204,7 +1204,7 @@ adopt_preexisting_success = Pinagtibay ang mga file at ginawa ang repositoryo mu
delete_preexisting_success = Burahin ang mga hindi pinatibay na file sa %s
blame_prior = Tignan ang blame bago ang pagbabago na ito
migrate.permission_denied = Hindi ka pinapayagang mag-import ng mga lokal na repositoryo.
migrate.permission_denied_blocked = Hindi ka maaring mag-import mula sa mga hindi pinapayagang host, magyaring magtanong sa pangangasiwa na suriin ang ALLOWED_DOMAINS/ALLOW_LOCALNETWORKS/BLOCKED_DOMAINS na mga setting.
migrate.permission_denied_blocked = Hindi ka maaaring mag-import mula sa mga hindi pinapayagang host, magyaring magtanong sa pangangasiwa na suriin ang ALLOWED_DOMAINS/ALLOW_LOCALNETWORKS/BLOCKED_DOMAINS na mga setting.
migrate.invalid_local_path = Hindi wasto ang lokal na path. Hindi ito umiiral o hindi isang direktoryo.
migrate.invalid_lfs_endpoint = Hindi wasto ang LFS endpoint.
migrate.migrating_failed = Nabigo ang pag-migrate mula sa <b>%s</b>.
@ -1253,7 +1253,7 @@ file_follow = Sundan ang symlink
file_view_source = Tignan ang source
file_view_rendered = Tignan ng naka-render
ambiguous_runes_header = `Naglalaman ng file na ito ng mga hindi tiyak na Unicode character`
ambiguous_runes_description = `Ang file na ito ay naglalaman ng mga Unicode character na maaring malilito sa ibang mga character. Kung sa tingin mo ay sinasadya ito, maari mong ligtas na hindi pansinin ang babala ito. Gamitin ang I-escape na button para ipakita sila.`
ambiguous_runes_description = `Ang file na ito ay naglalaman ng mga Unicode character na maaaring malilito sa ibang mga character. Kung sa tingin mo ay sinasadya ito, maaari mong ligtas na hindi pansinin ang babala ito. Gamitin ang I-escape na button para ipakita sila.`
file_copy_permalink = Kopyahin ang permalink
view_git_blame = Tignan ang git blame
video_not_supported_in_browser = Hindi sinusuportahan ng inyong browser ang HTML5 "video" tag.
@ -1283,7 +1283,7 @@ broken_message = Ang Git data na pinagbabatayan sa repositoryo na ito ay hindi m
file_history = Kasaysayan
invisible_runes_header = `Nalalaman ng file na ito ng mga hindi nakikitang Unicode character`
file_too_large = Masyadong malaki ang file para ipakita.
invisible_runes_description = `Ang file na ito ay naglalaman ng mga hindi nakikitang Unicode character na hindi nakikilala ng mga tao ngunit maaring maproseso ng ibang paraan ng isang computer. Kung sa tingin mo ay sinasadya ito, maari mong ligtas na hindi pansinin ang babala na ito. Gamitin ang I-escape na button para ipakita sila.`
invisible_runes_description = `Ang file na ito ay naglalaman ng mga hindi nakikitang Unicode character na hindi nakikilala ng mga tao ngunit maaaring maproseso ng ibang paraan ng isang computer. Kung sa tingin mo ay sinasadya ito, maaari mong ligtas na hindi pansinin ang babala na ito. Gamitin ang I-escape na button para ipakita sila.`
commit.contained_in_default_branch = Ang commit na ito ay bahagi ng default na branch
migrate.migrating_labels = Nililipat ang mga label
filter_branch_and_tag = I-filter ang branch o tag
@ -1317,7 +1317,7 @@ clone_this_repo = I-clone ang repositoryo na ito
cite_this_repo = Banggitin ang repositoryo na ito
create_new_repo_command = Paggawa ng bagong repositoryo sa command line
code = Code
ambiguous_character = `Ang %[1]c [U+%04[1]X] ay maaring malito sa %[2]c [U+%04[2]X]`
ambiguous_character = `Ang %[1]c [U+%04[1]X] ay maaaring malito sa %[2]c [U+%04[2]X]`
escape_control_characters = I-escape
unescape_control_characters = I-unescape
invisible_runes_line = `Ang linya na ito ay may mga hindi nakikitang Unicode character`
@ -1331,7 +1331,7 @@ editor.must_be_on_a_branch = Dapat nasa branch ka upang gumawa o magmunkahi ng m
editor.new_branch_name_desc = Bagong pangalan ng branch…
editor.cancel = Kanselahin
issues.role.member = Miyembro
issues.remove_request_review_block = Hindi maaring tanggalin ang hiling sa pagsuri
issues.remove_request_review_block = Hindi maaaring tanggalin ang hiling sa pagsuri
issues.edit = Baguhin
issues.cancel = Kanselahin
issues.save = IImbak
@ -1732,7 +1732,7 @@ issues.label_exclusive_desc = Pangalanan ang label na <code>scope/item</code> up
issues.archived_label_description = (Naka-archive) %s
issues.label.filter_sort.alphabetically = Ayon sa alpabeto
issues.subscribe = Mag-subscribe
issues.max_pinned = Hindi ka maaring mag-pin ng higit pang mga isyu
issues.max_pinned = Hindi ka maaaring mag-pin ng higit pang mga isyu
issues.pin_comment = na-pin ito %s
issues.unpin_comment = na-unpin ito %s
issues.lock = I-lock ang usapan
@ -1788,7 +1788,7 @@ wiki.last_commit_info = Binago ni %s ang pahinang ito %s
issues.content_history.edited = binago
issues.ref_pull_from = `<a href="%[3]s">isinangguni ang hiling sa paghila na ito %[4]s </a><a id="%[1]s" href="#%[1]s">%[2]s</a>`
pulls.merged_title_desc_few = isinali ang %[1]d mga commit mula sa <code>%[2]s</code> patungong <code>%[3]s</code> %[4]s
settings.org_not_allowed_to_be_collaborator = Hindi maaring idagdag ang mga organizasyon bilang tagatulong.
settings.org_not_allowed_to_be_collaborator = Hindi maaaring idagdag ang mga organisasyon bilang tagatulong.
settings.add_collaborator_success = Naidagdag ang tagatulong.
settings.federation_following_repos = Mga URL ng Mga Sinusundang Repositoryo. Hinihiwalay ng ";", walang whitespace.
diff.comment.reply = Tumugon
@ -1887,8 +1887,8 @@ issues.dependency.remove_info = Tanggalin ang dependency na ito
issues.dependency.added_dependency = `nagdagdag ng bagong dependency %s`
issues.review.dismissed_label = Nadismiss
issues.review.dismissed = nadismiss ang pagsuri ni %s %s
issues.review.self.approval = Hindi mo maaring aprubahan ang sarili mong hiling sa paghila.
issues.review.self.rejection = Hindi mo maaring humiling ng pagbabago sa sarili mong hiling sa paghila.
issues.review.self.approval = Hindi mo maaaring aprubahan ang sarili mong hiling sa paghila.
issues.review.self.rejection = Hindi mo maaaring humiling ng pagbabago sa sarili mong hiling sa paghila.
pulls.nothing_to_compare_have_tag = Magkapareho ang mga piniling branch/tag.
issues.dependency.no_permission_1 = Wala kang pahintulot na basahin ang dependency na %d
issues.dependency.no_permission_n = Wala kang pahintulot na basahin ang mga %d dependency
@ -1922,7 +1922,7 @@ activity.active_prs_count_n = <strong>%d</strong> aktibong mga hiling sa paghila
issues.author.tooltip.issue = May-akda ng iysung ito ang user.
issues.author.tooltip.pr = May-akda ng hiling sa paghila na ito ang user na ito.
issues.dependency.add_error_dep_exists = Umiiral na and dependency.
issues.dependency.add_error_cannot_create_circular = Hindi ka maaring gumawa ng dependency na may dalawang isyu na humaharang sa isa't isa.
issues.dependency.add_error_cannot_create_circular = Hindi ka maaaring gumawa ng dependency na may dalawang isyu na humaharang sa isa't isa.
issues.dependency.add_error_same_issue = Hindi mo magagwang dumepende ang isyu sa sarili.
issues.dependency.add_error_dep_not_same_repo = Dapat nasa katulad na repositoryo ang mga isyu.
issues.dependency.add_error_dep_issue_not_exist = Hindi umiiral ang dumedependeng isyu.
@ -2038,7 +2038,7 @@ pulls.wrong_commit_id = ang commit id ay dapat ang commit id sa patutunguhan na
pulls.blocked_by_changed_protected_files_1 = Hinarangan ang hiling sa paghila na ito dahil nagbabago ito ng isang nakaprotektang file:
pulls.blocked_by_changed_protected_files_n = Hinarangan ang hiling sa paghila na ito dahil nagbabago ito ng mga nakaprotektang file:
pulls.blocked_by_official_review_requests = Hinarangan ang hiling sa paghila na ito dahil may nawawalang pag-apruba mula sa isa o higit pang mga opisyal na tagasuri.
pulls.can_auto_merge_desc = Maaring isama ng awtomatiko ang hiling sa paghila na ito.
pulls.can_auto_merge_desc = Maaaring isama ng awtomatiko ang hiling sa paghila na ito.
pulls.num_conflicting_files_n = %d mga magkasalungat na file
pulls.num_conflicting_files_1 = %d magkasalungat na file
issues.review.add_review_requests = humiling ng mga pagsuri mula sa %[1]s %[2]s
@ -2318,7 +2318,7 @@ settings.convert_confirm = I-convert ang repositoryo
settings.webhook.replay.description_disabled = Para i-replay ang webhook na ito, i-activate ito.
settings.tracker_issue_style.regexp = Regular na Ekspresyon
settings.admin_stats_indexer = Taga-index ng istatistika ng code
pulls.open_unmerged_pull_exists = `Hindi ka maaring gumawa ng pagbukas-muli na operasyon dahil may nakabinbin na hiling sa paghila (#%d) na may magkatulad na katangian.`
pulls.open_unmerged_pull_exists = `Hindi ka maaaring gumawa ng pagbukas-muli na operasyon dahil may nakabinbin na hiling sa paghila (#%d) na may magkatulad na katangian.`
milestones.deletion_success = Binura na ang milestone.
pulls.auto_merge_has_pending_schedule = Naiskedyul ni %[1]s na awtomatiko na isama ang hiling sa paghila na ito kapag magtagumpay ang lahat ng mga pagsusuri %[2]s.
issues.summary_card_alt = Pangkalahatang-ideyang card ng isyu na tawag na "%s" sa repositoryong %s
@ -2386,9 +2386,9 @@ settings.external_wiki_url_desc = Ire-redirect ang mga bisita sa URL ng panlabas
settings.use_external_issue_tracker = Gumamit ng panlabas na tagasubaybay na isyu
settings.wiki_desc = I-enable ang wiki ng repositoryo
settings.trust_model.default.desc = Gamitin ang default na modelo ng pagkatiwala ng repositoryo para sa installation na ito.
settings.add_webhook.invalid_path = Hindi maaring maglaman ang path ng parte na "." o ".." o walang laman na string. Hindi maaring magsimula o magtapos sa slash.
settings.add_webhook.invalid_path = Hindi maaaring maglaman ang path ng parte na "." o ".." o walang laman na string. Hindi maaaring magsimula o magtapos sa slash.
settings.webhook_deletion = Tanggalin ang webhook
settings.add_webhook.invalid_channel_name = Hindi maaring walang laman ang pangalan ng channel ng webhook at hindi maaring maglaman lang ng # na character.
settings.add_webhook.invalid_channel_name = Hindi maaaring walang laman ang pangalan ng channel ng webhook at hindi maaaring maglaman lang ng # na character.
pulls.update_branch = I-update ang branch sa pamamagitan ng pagsama
pulls.status_checks_show_all = Ipakita ang lahat ng mga pagsusuri
pulls.cmd_instruction_checkout_title = I-checkout
@ -2441,8 +2441,8 @@ settings.mirror_settings.docs.doc_link_title = Paano ako mag-mirror ng mga repos
settings.pull_mirror_sync_quota_exceeded = Nalagpasan ang quota, hindi hihila ng mga pagbabago.
settings.mirror_settings.push_mirror.none_ssh = Wala
settings.mirror_settings.push_mirror.copy_public_key = Kopyahin ang publikong key
pulls.delete_after_merge.head_branch.is_protected = Ang head branch na gusto mong burahin ay isang pinoprotektahang branch at hindi maaring burahin.
pulls.delete_after_merge.head_branch.is_default = Ang head branch na gusto mong burahin ay ang default branch at hindi maaring burahin.
pulls.delete_after_merge.head_branch.is_protected = Ang head branch na gusto mong burahin ay isang pinoprotektahang branch at hindi maaaring burahin.
pulls.delete_after_merge.head_branch.is_default = Ang head branch na gusto mong burahin ay ang default branch at hindi maaaring burahin.
issues.num_reviews_few = %d mga pagsusuri
issues.num_reviews_one = %d pagsusuri
diff.image.swipe = I-swipe
@ -2465,7 +2465,7 @@ diff.comment.add_single_comment = Magdagdag ng iisang komento
diff.comment.placeholder = Mag-iwan ng komento
release.detail = Mga detalye sa release
release.tags = Mga tag
release.title_empty = Hindi maaring walang laman ang paksa.
release.title_empty = Hindi maaaring walang laman ang paksa.
branch.included_desc = Ang branch na ito ay kabilang ng default branch
release.source_code = Source code
release.edit_subheader = Inaayos ng mga release ang mga bersyon ng proyekto.
@ -2508,8 +2508,8 @@ settings.block_outdated_branch_desc = Hindi magiging posible ang pagsasama kung
settings.block_rejected_reviews_desc = Hindi magiging posible ang pagsasama kapag may mga hiniling ng pagbabago ang mga opisyal na tagasuri, kahit na may sapat na pagapruba.
settings.block_on_official_review_requests = Harangan ang merge sa opisyal na hiling sa pagsuri
settings.tags.protection.allowed = Pinapayagan
settings.lfs_delete_warning = Ang pagbura ng LFS file ay maaring magdulot ng mga "object does not exist" na error sa checkout. Sigurado ka ba?
settings.protected_branch_required_approvals_min = Hindi maaring negatibo ang mga kinakailangang pagapruba.
settings.lfs_delete_warning = Ang pagbura ng LFS file ay maaaring magdulot ng mga "object does not exist" na error sa checkout. Sigurado ka ba?
settings.protected_branch_required_approvals_min = Hindi maaaring negatibo ang mga kinakailangang pagapruba.
settings.lfs_lock_path = File path na kakandaduhin…
settings.lfs_force_unlock = Pilitin ang pag-unlock
settings.lfs_pointers.accessible = Naa-access ng user
@ -2520,7 +2520,7 @@ settings.protect_merge_whitelist_users = Mga naka-whitelist na user para sa pags
settings.protect_merge_whitelist_teams = Mga naka-whitelist na koponan para sa pagsasama
settings.protect_check_status_contexts = I-enable ang pagsusuri ng estado
settings.protect_status_check_patterns = Mga pattern sa pagsusuri ng estado
settings.protect_status_check_patterns_desc = Ilagay ang mga pattern para i-specify kung aling mga pagsusuri ng estado na kailangang magpasa bago maisama ang mga branch sa isang branch na tumutugma sa rule na ito. Nagse-specify ang bawat linya ng pattern. Hindi maaring walang laman ang mga pattern.
settings.protect_status_check_patterns_desc = Ilagay ang mga pattern para i-specify kung aling mga pagsusuri ng estado na kailangang magpasa bago maisama ang mga branch sa isang branch na tumutugma sa rule na ito. Nagse-specify ang bawat linya ng pattern. Hindi maaaring walang laman ang mga pattern.
settings.protect_check_status_contexts_list = Mga pagsusuri ng estado na nahanap sa huling linggo para sa repositoryo na ito
diff.generated = na-generate
branch.confirm_create_branch = Gumawa ng branch
@ -2670,9 +2670,9 @@ settings.protected_branch_deletion_desc = Ang pag-disable ng branch protection a
settings.rename_branch_failed_protected = Hindi mababago ang pangalan ng branch na %s dahil ito ay isang nakaprotektang branch.
editor.add_tmpl.filename = Pangalan ng file
settings.protect_approvals_whitelist_users = Mga naka-whitelist na tagasuri
settings.protect_protected_file_patterns_desc = Ang mga nakaprotektang file ay hindi pinapayagan na direktang mabago kahit na may karapatan ang user na magdagdag, i-edit, o burahin ang mga file sa branch na ito. Ang mga maraming pattern ay maaring mahiwalay gamit ng semicolon (";"). Tignan ang <a href="%[1]s">%[2]s</a> na dokumentasyon para sa pattern syntax. Mga halimbawa: <code>.drone.yml</code>, <code>/docs/**/*.txt</code>.
branch.delete_branch_has_new_commits = Hindi maaring burahin ang branch na "%s" dahil may mga bagong commit na nadagdag matapos ang pagsasama.
settings.protect_unprotected_file_patterns_desc = Ang mga hindi nakaprotektang file ay pinapayagan na direktang mabago kung may write access ang user, bina-bypass ang restriction ng pagtulak. Ang mga maraming pattern ay maaring mahiwalay gamit ng semicolon (";"). Tignan ang <a href="%[1]s">%[2]s</a> na dokumentasyon para sa pattern syntax. Mga halimbawa: <code>.drone.yml</code>, <code>/docs/**/*.txt</code>.
settings.protect_protected_file_patterns_desc = Ang mga nakaprotektang file ay hindi pinapayagan na direktang mabago kahit na may karapatan ang user na magdagdag, i-edit, o burahin ang mga file sa branch na ito. Ang mga maraming pattern ay maaaring mahiwalay gamit ng semicolon (";"). Tignan ang <a href="%[1]s">%[2]s</a> na dokumentasyon para sa pattern syntax. Mga halimbawa: <code>.drone.yml</code>, <code>/docs/**/*.txt</code>.
branch.delete_branch_has_new_commits = Hindi maaaring burahin ang branch na "%s" dahil may mga bagong commit na nadagdag matapos ang pagsasama.
settings.protect_unprotected_file_patterns_desc = Ang mga hindi nakaprotektang file ay pinapayagan na direktang mabago kung may write access ang user, bina-bypass ang restriction ng pagtulak. Ang mga maraming pattern ay maaaring mahiwalay gamit ng semicolon (";"). Tignan ang <a href="%[1]s">%[2]s</a> na dokumentasyon para sa pattern syntax. Mga halimbawa: <code>.drone.yml</code>, <code>/docs/**/*.txt</code>.
settings.no_protected_branch = Walang mga nakaprotekta na branch.
settings.protected_branch_required_rule_name = Kinakailangan na pangalan ng rule
settings.protected_branch_duplicate_rule_name = Mayroon nang rule para sa set ng mga branch na ito
@ -2688,7 +2688,7 @@ branch.branch_name_conflict = Sumasalungat ang pangalan ng branch na "%s" sa umi
branch.protected_deletion_failed = Nakaprotekta ang branch na "%s". Hindi ito mabubura.
diff.file_after = Pagkatapos
release.deletion_tag_desc = Buburahin ang tag na ito sa repositoryo. Mapapanatiling hindi nabago ang nilalaman at kasaysayan ng repositoryo. Magpatuloy?
topic.format_prompt = Dapat magsimula ang mga topic ng numero o letra, maaring magsama ng mga dash ("-") at dot ("."), maaring hanggang sa 35 na character na haba. Kailangang lowercase ang mga character.
topic.format_prompt = Dapat magsimula ang mga topic ng numero o letra, maaaring magsama ng mga dash ("-") at dot ("."), maaaring hanggang sa 35 na character na haba. Kailangang lowercase ang mga character.
branch.new_branch_from = Gumawa ng bagong branch mula sa "%s"
error.csv.unexpected = Hindi ma-render ang file na ito dahil naglalaman ito ng hindi inaasahang character sa linyang %d at column %d.
settings.ignore_stale_approvals_desc = Huwag ibilang ang mga pagapruba na ginawa sa mga lumang commit (mga lipas na pagsusuri) sa kung gaano karaming pagapruba ang mayroon sa PR na ito. Walang kinalaman kung ang mga lipas na pagsusuri ay na-dismiss na.
@ -2838,11 +2838,11 @@ users.repos = Mga Repo
users.send_register_notify = Abisuhan tungkol sa pagrehistro sa pamamagitan ng email
users.is_admin = Tagapangasiwa na account
users.is_restricted = Pinaghihigpitang account
users.allow_import_local = Maaring mag-import ng mga lokal na repositoryo
users.allow_import_local = Maaaring mag-import ng mga lokal na repositoryo
users.allow_create_organization = Makakagawa ng mga organisasyon
users.update_profile = I-update ang user account
users.delete_account = Burahin ang user account
users.cannot_delete_self = Hindi mo maaring burahin ang sarili mo
users.cannot_delete_self = Hindi mo maaaring burahin ang sarili mo
users.still_own_repo = Ang user na ito ay nagmamay-ari pa ng isa o higit pang mga repositoryo. Burahin o ilipat sila muna.
users.list_status_filter.is_active = Aktibo
users.list_status_filter.not_active = Hindi aktibo
@ -3113,7 +3113,7 @@ config.allow_dots_in_usernames = Payagan ang mga user na gumamit ng mga dot sa k
config.https_only = HTTPS lamang
auths.tip.github = Magrehistro ng bagong OAuth application sa %s
auths.tip.gitlab_new = Magrehistro ng bagong application sa %s
emails.delete_primary_email_error = Hindi mo maaring burahin ang pangunahing email.
emails.delete_primary_email_error = Hindi mo maaaring burahin ang pangunahing email.
config.provider_config = Config ng provider
config.cache_test_slow = Matagumpay ang pagsubok ng cache, ngunit mabagal ang tugon: %s.
config.picture_config = Configuration ng larawan at avatar
@ -3264,7 +3264,7 @@ config.cookie_name = Pangalan ng cookie
config.gc_interval_time = Oras ng pagitan ng GC
config.cookie_life_time = Lifetime ng cookie
config.git_clone_timeout = Timeout ng operasyon na pag-clone
monitor.process.cancel_desc = Ang pagkansela ng proseso ay maaring magdulot ng pagkawalan ng data
monitor.process.cancel_desc = Ang pagkansela ng proseso ay maaaring magdulot ng pagkawalan ng data
monitor.queue.name = Pangalan
auths.oauth2_required_claim_value_helper = Itakda ang value na ito upang i-restrict ang pag-login mula sa pinagmulang ito sa mga user na may claim na may ganitong pangalan at value
auths.tip.bitbucket = Magrehistro ng bagong OAuth consumer sa %s at idagdag ang pahintulot na "Account" - "Read"
@ -3350,7 +3350,7 @@ members.member = Miyembro
members.private_helper = Gawing visible
settings.location = Lokasyon
settings.update_setting_success = Nabago na ang mga setting ng organisasyon.
teams.can_create_org_repo_helper = Maaring gumawa ang mga miyembro ng mga bagong repositoryo sa organisasyon. Magkakaroon ng tagapangasiwa na access ang tagagawa sa bagong repositoryo.
teams.can_create_org_repo_helper = Maaaring gumawa ang mga miyembro ng mga bagong repositoryo sa organisasyon. Magkakaroon ng tagapangasiwa na access ang tagagawa sa bagong repositoryo.
settings.change_orgname_prompt = Tandaan: Ang pagpalit ng pangalan ng organisasyon ay papalitan din ang URL ng organisasyon at mapapalaya ang lumang pangalan.
settings.labels_desc = Magdagdag ng mga label na magagamit sa mga isyu para sa <strong>lahat ng mga repositoryo</strong> sa ilalim ng organisasyon.
members.public_helper = Gawing nakatago
@ -3623,7 +3623,7 @@ variables.deletion.description = Permanente ang pagtanggal ng isang variable at
status.running = Tumatakbo
runners.new_notice = Paano magsimula ng runner
runners.update_runner_success = Matagumpay na na-update ang runner
runners.delete_runner_notice = Kapag may trabaho na tumatakbo sa runner na ito, titigilan ito at mamarkahan bilang nabigo. Maaring sirain ang building workflow.
runners.delete_runner_notice = Kapag may trabaho na tumatakbo sa runner na ito, titigilan ito at mamarkahan bilang nabigo. Maaaring sirain ang building workflow.
runners.none = Walang mga available na runner
runs.status_no_select = Lahat ng status
runs.empty_commit_message = (walang laman na mensahe ng commit)
@ -3668,6 +3668,8 @@ runs.expire_log_message = Na-purge ang mga log dahil masyado silang luma.
runs.no_workflows.help_write_access = Hindi alam kung paano magsimula sa Forgejo Actions? Tignan ang <a target="_blank" rel="noopener noreferrer" href="%s">mabilisang pagsimula sa user documentation</a> para magsimulang magsulat ng unang workflow, at <a target="_blank" rel="noopener noreferrer" href="%s">mag-setup ng Forgejo runner</a> para patakbuhin ang mga job.
runs.no_workflows.help_no_write_access = Para matuto tungkol sa Forgejo Actions, tignan ang <a target="_blank" rel="noopener noreferrer" href="%s">dokumentasyon</a>.
variables.not_found = Nabigong hanapin ang variable.
[action]
commit_repo = itinulak sa <a href="%[2]s">%[3]s</a> sa <a href="%[1]s">%[4]s</a>
create_issue = `binuksan ang isyu na <a href="%[1]s">%[3]s#%[2]s</a>`
@ -3762,7 +3764,7 @@ error.unit_not_allowed = Hindi ka pinapayagang ma-access ang seksyon ng reposito
[dropzone]
default_message = I-drop ang mga file o mag-click dito para mag-upload.
invalid_input_type = Hindi ka maaring mag-upload ng mga file sa uri na ito.
invalid_input_type = Hindi ka maaaring mag-upload ng mga file sa uri na ito.
file_too_big = Ang laki ng file ({{filesize}}) MB) ay lumalagpas sa pinakamataas na size na ({{maxFilesize}} MB).
remove_file = Tanggalin ang file

View file

@ -3948,6 +3948,8 @@ runs.expire_log_message = Les journaux ont été purgés car ils étaient trop a
runs.no_workflows.help_write_access = Vous ne savez pas par où commencer avec Forgejo Actions ? Regardez la section <a target="_blank" rel="noopener noreferrer" href="%s"> démarrage rapide dans la documentation utilisateur</a> pour écrire votre premier workflow, puis <a target="_blank" rel="noopener noreferrer" href="%s">mettre en place un Forgejo runner</a> pour exécuter vos jobs.
runs.no_workflows.help_no_write_access = Pour en savoir plus sur Forgejo Actions, consultez <a target="_blank" rel="noopener noreferrer" href="%s">la documentation</a>.
variables.not_found = La variable n'a pas été trouvée.
[projects]
type-1.display_name=Projet personnel
type-2.display_name=Projet du dépôt

View file

@ -8,15 +8,15 @@ sign_in = Iniciar sesión
sign_in_with_provider = Iniciar Sesión con %s
sign_in_or = ou
sign_out = Pechar Sesión
sign_up = Rexístrate
sign_up = Rexistrarse
link_account = Vincular conta
register = Rexistro
version = Vesión
powered_by = Desenvolvido por %s
version = Versión
powered_by = Impulsado por %s
page = Páxina
template = Modelo
notifications = Notificacións
active_stopwatch = Activar Rastrexador de Tempo
active_stopwatch = Rastreador de tempo activo
create_new = Crear…
user_profile_and_more = Perfil e configuración…
signed_in_as = Sesión iniciada como
@ -31,8 +31,8 @@ re_type = Confirme o contrasinal
captcha = CAPTCHA
twofa = Autenticación de dobre factor
passcode = Código de acceso
webauthn_insert_key = Insira a súa clave de seguridade
webauthn_press_button = Prema o botón da súa clave de seguridade…
webauthn_insert_key = Insira a súa chave de seguridade
webauthn_press_button = Prema o botón da súa chave de seguridade…
webauthn_use_twofa = Use o Código de Dous Factores do seu Teléfono
webauthn_error = Non se puido ler a súa clave de seguridade.
webauthn_unsupported_browser = O seu navegador non soporta WebAuthn actualmente.
@ -102,7 +102,7 @@ copy_content = Copiar contido
language = Linguaxe
copy_hash = Copiar hash
twofa_scratch = Código Scratch de Dous Factores
webauthn_sign_in = Prema o botón da súa clave de seguridade. Se a súa clave de seguridade non ten ningún botón, insíraa de novo.
webauthn_sign_in = Prema o botón da súa chave de seguridade. Se a súa chave de seguridade non ten ningún botón, volva inserila.
issues = Incidencias
disabled = Desactivado
error404 = A páxina á que estás tentando acceder <strong>non existe</strong> ou <strong>non tes autorización</strong> para vela.
@ -163,6 +163,8 @@ number_of_contributions_in_the_last_12_months = %s de contribucións nos último
contributions_few = contribucións
contributions_one = contribución
contributions_format = {contributions} no {day} de {month} do {year}
[editor]
buttons.heading.tooltip = Engadir Título
buttons.italic.tooltip = Engade texto en cursiva
@ -176,6 +178,19 @@ buttons.disable_monospace_font = Desactivar o tipo de letra monoespazo
buttons.ref.tooltip = Referencia un problema ou pull request
buttons.list.ordered.tooltip = Engade unha lista numerada
buttons.list.task.tooltip = Engade unha lista de tarefas
buttons.mention.tooltip = Menciona a un usuario ou equipo
buttons.switch_to_legacy.tooltip = Utilizar o editor herdado
buttons.indent.tooltip = Aniña os elementos nun nivel
buttons.unindent.tooltip = Desaniñar os elementos nun nivel
buttons.new_table.tooltip = Engadir táboa
table_modal.header = Engadir táboa
table_modal.placeholder.header = Cabeceira
table_modal.placeholder.content = Contido
table_modal.label.rows = Filas
table_modal.label.columns = Columnas
[search]
search = Buscar...
type_tooltip = Tipo de procura
@ -196,12 +211,22 @@ exact = Exacta
exact_tooltip = Incluír só resultados correspondentes ao termo exacto da procura
issue_kind = Procurar incidencias...
project_kind = Buscar proxectos...
branch_kind = Buscar ramas...
commit_kind = Buscar achegas...
runner_kind = Buscar executores...
no_results = Non se atoparon resultados coincidentes.
pull_kind = Buscar pulls...
keyword_search_unavailable = A busca por palabra clave non está dispoñible actualmente. Póñase en contacto co administrador do sitio.
[startpage]
platform = Multiplataforma
app_desc = Um servizo Git autoxestionado e fácil de usar
install = Fácil de instalar
install_desc = Simplemente <a target="_blank" rel="noopener noreferrer" href="%[1]s">executa o binario</a> para a túa plataforma, envíao con <a target="_blank" rel="noopener noreferrer" href="%[2]s">Docker</a> ou consígueo <a target="_blank" rel="noopener noreferrer" href="%[3]s">empaquetado</a>.
license = Código aberto
[error]
occurred = Ocorreu un erro
missing_csrf = Solicitude incorrecta: non hai ningún token CSRF presente
@ -244,4 +269,26 @@ sqlite_helper = Ruta do ficheiro para a base de datos SQLite3.<br>Introduza unha
reinstall_confirm_message = A reinstalación cunha base de datos Forgejo existente pode causar varios problemas. Na maioría dos casos, deberías usar o teu "app.ini" existente para executar Forgejo. Se sabes o que estás facendo, confirma o seguinte:
reinstall_confirm_check_1 = É posible que se perdan os datos cifrados pola SECRET_KEY en app.ini: é posible que os usuarios non poidan iniciar sesión con 2FA/OTP e que os espellos non funcionen correctamente. Ao marcar esta caixa, confirmas que o ficheiro app.ini actual contén a SECRET_KEY correcta.
disable_gravatar.description = Desactiva o uso de Gravatar ou outras fontes de avatares de terceiros. As imaxes predeterminadas utilizaranse para os avatares dos usuarios a menos que carguen o seu propio avatar na instancia.
federated_avatar_lookup = Activar avatares federados
federated_avatar_lookup = Activar avatares federados
install = Instalación
title = Configuración inicial
db_title = Configuración da base de datos
db_type = Tipo de base de datos
user = Nome de usuario
password = Contrasinal
db_name = Nome da base de datos
db_schema = Esquema
db_schema_helper = Déixao baleiro para a base de datos por defecto ("public").
general_title = Opcións xerais
app_name = Título da instancia
app_name_helper = Escribe o nome da túa instancia aqui. Será amosado en cada páxina.
app_slogan = Slogan da instancia
app_slogan_helper = Escribe o slogan da túa instancia aqui. Ou deixao baleiro para desabilitala.
repo_path = Ruta raíz do repositorio
repo_path_helper = Os repositorios Git remotos gardaránse neste directorio.
lfs_path = Ruta raíz de Git LFS
run_user = O usuario co que executar
domain = Dominio do servidor
ssh_port = Porto do servidor SSH
mailer_user = Usuario SMTP
mailer_password = Contrasinal SMTP

View file

@ -133,6 +133,13 @@ filter.not_template = להוציא תבניות
filter.public = ציבורי
filter.private = פרטי
explore = קטלוגים
toggle_menu = הצגת\הסתרת תפריט
re_type = סיסמה (שוב)
view = עוד מידע
artifacts = ארטיפקטים
confirm_delete_artifact = למחוק את הארטיפקט "%s"?
[search]
search = חיפוש...
type_tooltip = סוג חיפוש
@ -158,11 +165,15 @@ no_results = לא נמצאו תוצאות.
issue_kind = חיפוש סוגיות...
keyword_search_unavailable = חיפוש מילות מפתח לא זמין. נא לדווח למנהלי המערכת.
pull_kind = חיפוש בקשות מיזוג...
[aria]
navbar = סרגל הניווט
footer.software = על תוכנה זו
footer.links = קישורים
footer = סיומת עמוד
[heatmap]
number_of_contributions_in_the_last_12_months = % תרומות ב־12 החודשים האחרונים
contributions_zero = אפס תרומות
@ -209,6 +220,9 @@ install = קל להתקנה
lightweight = קל
license = קוד פתוח
platform_desc = פורג'ו רץ על מערכות הפעלה פתוחות כמו לינוקס וFreeBSD, ועל ארכיטקטורות מעבד שונות.
lightweight_desc = פורג'ו צורך כמות מינימלית של משאבים ויכול לרוץ על מיני־מחשבים לא יקרים כמו הראספרי הפיי.
[install]
install = התקנה
title = הגדרה ראשונית
@ -225,6 +239,72 @@ err_empty_admin_email = כתובת אימייל של מנהל מערכת היא
general_title = הגדרות כלליות
app_name = שם שרת זה
require_db_desc = פורג'ו דורש MySQL, PostgreSQL, או TiDB (דרך פרוטוקול MySQL).
err_empty_db_path = הכתובת למסד המידע SQLite3 לא יכולה להיות ריקה.
no_admin_and_disable_registration = אי אפשר לחסום הרשמה עצמית בלי ליצור חשבון מנהל מערכת.
err_admin_name_is_reserved = שם משתמש חשבון המערכת לא זמין, שם המשתמש שמור
err_admin_name_pattern_not_allowed = שם משתמש מנהל המערכת לא זמין, שם המשתמש עונה על תבנית שמורה
err_admin_name_is_invalid = שם משתמש מנהל המערכת לא זמין
app_name_helper = שם האתר נכנס כאן. הוא יוצג בכל מקום באתר, בצד ימין למעלה (או באנגלית, שמאל למעלה).
app_slogan = סלוגן האתר
app_slogan_helper = סלוגן האתר נכנס כאן. פורג'ו יתעלם מסלוגן ריק.
run_user = משתמש שפורג'ו ירוץ תחת
run_user_helper = שם המשתמש של משתמש מערכת ההפעלה שפורג'ו ירוץ תחתיו. למשתמש חייבת להיות גישה לקרפיפים.
domain = דומיין השרת
domain_helper = דומיין או host address לשרת זה.
ssh_port = פורט שרת ה־SSH
ssh_port_helper = מספר הפורט ששרת ה־SSH ישתמש בו. ערך ריק יכבה את התמיכה ב־SSH.
http_port = פורט ה־HTTP (האזנה)
http_port_helper = הפורט שישמש את דף האינטרנט (זה שדפדפני אינטרנט ניגשים אליו).
app_url = כתובת (URL) בסיס
log_root_path = כתובת לוגינג
log_root_path_helper = יומנים (logfiles) ייוצאו לתיקייה זו.
optional_title = הגדרות לא חובה
email_title = הגדרות אימייל
smtp_addr = שרת SMTP
smtp_port = פורט SMTP
smtp_from = אימיילים ישלחו כ־
smtp_from_helper = כתובת האימייל שפורג'ו ישלח ממנה הודעות למשתמשים. אפשר להכניס כתובת אמייל פשוטה או להישמתש בפורמט "שם" <אימייל@דוגמה.קום>.
mailer_user = שם משתמש בשרת ה־SMTP
mailer_password = סיסמת שרת ה־SMTP
register_confirm = אישור אימייל חובה לרישום
mail_notify = הפעלת נוטיפיקציות דרך אימייל
server_service_title = הגדרות שרת ושירותים צד שלישי
offline_mode = הפעלת מצב לוקאלי
offline_mode.description = CDN־ים צד שלישי יושבתו וכל המשאבים יוגשו מהמחשב הנוכחי, ללא גישה לאינטרנט.
disable_gravatar = השבתת Gravatar
disable_gravatar.description = שימוש בגראווטאר, או כל מקור צד־שלישי אחר לתמונות פרופיל, יושבת. אלא אם כן לחשבון יש תמונה שהועלתה ידנית, פורג'ו ישתמש בתמונות ברירת המחדל הלוקאליות.
federated_avatar_lookup = הפעלת תמונות פרופיל מבוזרות
disable_registration = השבתת הרשמה עצמית
disable_registration.description = רק מנהלי מערכת יוכלו ליצור חשבונות משתמש חדשים. מאוד לא מומלץ להפעיל הרשמה עצמית אלא אם כן בכוונתך ליצור שרת ציבורי, דבר הכולל התעסקות בכמויות עצומות של ספאם והתקפות DDoS.
allow_only_external_registration = אפשור הרשמה רק דרך שירותים חיצוניים
allow_only_external_registration.description = חשבונות חדשים לא יכולו להיווצר לוקאלית, אלא רק דרך שירותים צד־שלישי שקונפגו מראש.
openid_signin = הפעלת כניסה דרך OpenID
openid_signup = הפעלת הרשמה עצמית דרך OpenID
openid_signup.description = חשבונות יוכלו להיווצר דרך OpenID אם הרשמה עצמית מופעלת.
enable_captcha = הפעלת CAPTCHA בתהליך הרישום
enable_captcha.description = כדי ליצור חשבונות חדשים, יהיה צריך לעבור אתגר CAPTCHA (טוב כנגד ספאם ובוטים; פוגע בנגישות ופחות אפקטיבי כנגד AI מודרני).
require_sign_in_view = שרת פרטי
require_sign_in_view.description = גישה לתוכן השרת תיחסם ללא כניסה לחשבון, למעט דפי הרישום והכניסה.
default_keep_email_private = הסתרת כתובות אימייל כברירת מחדל
default_keep_email_private.description = כתובות האימייל של חשבונות חדשים לא יוצגו על הפרופילים הציבוריים שלהם (אלא אם כן ישנו זאת בעצמם), כדי למנוע זליגה של מידע פרטי מיד לאחר ההרשמה.
default_allow_create_organization = אפשור יצירת ארגונים כברירת מחדל
default_allow_create_organization.description = חשבונות חדשים יוכלו ליצור ארגונים ללא אישור מנהל המערכת.
default_enable_timetracking = הפעלת מדידת זמן כברירת מחדל
default_enable_timetracking.description = תכונת מדידת הזמן של פורג'ו תופעל לקרפיפים חדשים כברירת מחדל.
admin_title = הגדרות חשבון מנהל מערכת
admin_setting.description = יצירת חשבון מנהל המערכת היא לא חובה; ללא חשבון מורשה, החשבון הראשון שיווצר יקבל הרשאות אדמיניסטרציה.
admin_name = שם משתמש של מנהל מערכת
admin_password = סיסמה
confirm_password = סיסמה (שוב)
admin_email = כתובת אימייל
config_location_hint = הגדרות אלו ישמרו ב־:
install_btn_confirm = סיום התקנת פורג'ו
test_git_failed = בדיקת פקודת "git" נכשלה: %v
sqlite3_not_available = גרסת פורג'ו זו לא תומכת ב־SQLite3. נא להוריד את הארטיפקט הרשמי מ %s (*לא* את גרסת ה"gobuild").
invalid_db_setting = הגדרות מסד המידע שגויות: %v
invalid_db_table = טבלת מסד המידע "%s" שגויה: %v
[mail]
issue_assigned.pull = @%[1]s שייך אותך לבקשת המיזוג %[2]s בקרפיף %[3]s.
issue_assigned.issue = @%[1]s שייך אותך לסוגיה %[2]s בקרפיף %[3]s.
@ -237,3 +317,345 @@ RepoName = שם קרפיף
repo_name_been_taken = כבר יש קרפיף בשם זה.
repository_force_private = פרטיות כפויה מופעלת: קרפיפים פרטיים לא יכולים להעשות ציבוריים.
repository_files_already_exist = כבר יש קבצים בקרפיף זה. יש לדבר עם מנהל המערכת כדי לתקן את הבעיה.
AccessToken = קוד גישה
Content = תוכן
SSPIDefaultLanguage = שפת ברירת מחדל
[home]
uname_holder = שם משתמש או כתובת אימייל
my_repos = קרפיפים
my_orgs = ארגונים
filter = מסננים אחרים
filter_by_team_repositories = סינון לפי קרפיפי צוות
feed_of = פיד של "%s"
show_archived = בארכיון
show_both_archived_unarchived = כולל גם מתוך וגם מחוץ הארכיון
show_only_archived = כולל רק מהארכיון
show_only_unarchived = לא כולל את הארכיון
show_private = פרטי
issues.in_your_repos = בקרפיפיך
[explore]
repos = קרפיפים
users = אנשים
stars_one = כוכב אחד
stars_few = %d כוכבים
forks_one = מזלוג אחד
forks_few = %d מזלוגים
organizations = ארגונים
code = קוד
code_last_indexed_at = אונדקס לאחרונה %s
relevant_repositories_tooltip = מזלוגים וקרפיפים ללא תיאור, נושא, וסמל לא מוצגים.
relevant_repositories = רק קרפיפים רלוונטים מוצגים; אפשר <a href="%s">להציג תוצאות לא מסוננות</a>.
[auth]
create_new_account = הרשמה
disable_register_prompt = הרשמה מושבתת. יש לדבר עם מנהלי המערכת.
disable_register_mail = אישור הרשמה דרך אימייל מושבת.
manual_activation_only = יש לדבר עם מנהלי המערכת כדי להשלים את הפעלת חשבונך.
remember_me = זה המכשיר שלי ואני רוצה לשמור עליו את הסיסמה שלי לפעם הבאה
forgot_password_title = שכחתי את הסיסמה
forgot_password = שכחת את הסיסמה?
hint_login = כבר יש לך חשבון? <a href="%s">כניסה</a>
hint_register = אין לך חשבון? <a href="%s">הרשמה</a>
sign_up_button = הרשמה
sign_up_successful = החשבון נוצר בהצלחה. ברוכים הבאים!
must_change_password = עדכן סיסמתך
allow_password_change = הכרחת המשתמש לעדכן את סיסמת חשבונו (מומלץ)
active_your_account = הפעלת חשבונך
account_activated = חשבונך הופעל
prohibit_login = חשבונך הושעה
prohibit_login_desc = חשבנוך הושעה משרת זה. אפשר לבקש ממנהלי המערכת לתת לך גישה.
resent_limit_prompt = כבר ביקשת מייל אימות בשלושת הדקות האחרונות. נא לחכות ולנסות שוב.
has_unconfirmed_mail = שלום %s, חשבונך משויך לכתובת אימייל לא מאומתת (<b>%s</b>). אם לא קיבלת הודעת אימות באימייל, או שאתה צריך חדשה, נא ללחוץ על הכפתור למטה.
change_unconfirmed_email = אם נתת את כתובת האימייל הלא נכונה כשנרשמת, אפשר לשנות אותה כאן, ומייל אימות חדש ישלח לכתובת החדשה.
change_unconfirmed_email_error = שינוי כתובת האימייל כשל: %v
resend_mail = שליחת מייל אימות חדש
send_reset_mail = שליחת מייל שחזור חשבון
reset_password = שחזור חשבון
invalid_code = קוד האימות שלך לא תקף, או שעבר יותר מדי זמן מאז שהונפק.
invalid_code_forgot_password = קוד האימות שלך לא תקף, או שעבר יותר מדי זמן מאז שהונפק. אפשר <a href="%s">לנסות שוב</a>.
invalid_password = הסיסמה לא תואמת את הסיסמה שאיתה יצרת את חשבונך.
reset_password_helper = שחזור חשבון
reset_password_wrong_user = נכנסת כ־%s, אבל הקישור נועד לשחזור החשבון של %s
password_too_short = הסיסמה חייבת להיות באורך %d תווים ומעלה.
non_local_account = חשבונות א־לוקאליים לא יכולים לעדכן את סיסמתם דרך אתר האינטרנט של פורג'ו.
verify = אימות
use_onetime_code = שימוש בקוד חד־פעמי
[settings]
update_avatar = עדכון תמונת פרופיל
delete_current_avatar = מחיקת תמונת הפרופיל הנוכחית
uploaded_avatar_not_a_image = הקובץ שהועלה לא תמונה.
key_name = שם המפתח
key_content = תוכן
principal_content = תוכן
add_key_success = מפתח ה־SSH "%s" הוסף לחשבונך.
add_gpg_key_success = מפתח ה־GPG "%s" הוסף לחשבונך.
delete_key = הסרה
ssh_key_deletion = הסרת מפתח SSH
gpg_key_deletion = הסרת מפתח GPG
ssh_key_deletion_desc = הסרת מפתח SSH מבטלת את גישתו לחשבונך. להמשיך?
gpg_key_deletion_desc = הסרת מפתח GPG הופכת קומיטים שנחתמו בעזרתו ללא־מאומתים. להמשיך?
ssh_key_deletion_success = מפתח ה־SSH הוסר מחשבונך.
gpg_key_deletion_success = מפתח ה־GPG הוסר מחשבונך.
added_on = הוסף ב־%s
valid_until_date = תקף עד ה־%s
valid_forever = תקף לנצח
last_used = שומש לאחרונה ב
can_read_info = קריאה
can_write_info = שינוי
key_state_desc = מפתח זה שומש בשבוע האחרון
show_openid = הצגה על פרופילך
hide_openid = הסתרה מפרופילך
ssh_disabled = SSH מושבת
ssh_signonly = SSH מושבת; מפתחות אלו ישמשו רק כדי לחתום קומיטים.
ssh_externally_managed = מפתח SSH זה מנוהל חיצונית
manage_access_token = קודי גישה
generate_new_token = קוד גישה חדש
token_name = שם קוד הגישה
generate_token_success = קוד הגישה החדש נוצר, ולא יוצג שוב.
generate_token_name_duplicate = כבר קיימת אפליקציה בשם <strong>%s</strong>.
delete_token = מחיקה
access_token_deletion = מחיקת קוד גישה
access_token_deletion_desc = אפליקציות שמשתמשות בקוד הגישה הזה לא יוכלו לגשת לחשבון שלך יותר. זוהי פעולה בלתי־הפיכה. להמשיך?
delete_token_success = קוד הגישה נמחק. אפליקציות שהשתמשו בו לא יכולות לגשת לחשבון שלך יותר.
repo_and_org_access = גישה לקרפיפים וארגונים
permissions_public_only = ציבורי בלבד
permissions_access_all = הכל (ציבורי, פרטי, מוגבל)
select_permissions = בחירת הרשאות
permission_no_access = שום גישה
permission_read = קריאה
permission_write = קריאה ושינוי
at_least_one_permission = קודי גישה צריכים לפחות הרשאה אחת
permissions_list = הרשאות:
manage_oauth2_applications = ניהול אפליקציות OAuth2
edit_oauth2_application = עריכת אפליקצית OAuth2
remove_oauth2_application = הסרת אפליקצית OAuth2
remove_oauth2_application_success = האפליקציה נמחקה.
create_oauth2_application = יצירת אפליקציית OAuth2 חדשה
create_oauth2_application_button = יצירת אפליקציה
create_oauth2_application_success = יצרת אפליקציית OAuth2 חדשה בהצלחה.
update_oauth2_application_success = ערכת אפליקציית OAuth2 בהצלחה.
oauth2_application_name = שם האפליקציה
oauth2_redirect_uris = קישורי הפניה מחדש. כל קישור בשורה משל עצמו.
save_application = שמירה
oauth2_application_edit = עריכה
revoke_key = הסרת גישה
revoke_oauth2_grant = הסרת גישה
delete_account = מחיקת החשבון
delete_prompt = פעולה זו <strong>בלתי הפיכה</strong> ותמחוק את החשבון שלך <strong>לחלוטין</strong>.
delete_with_all_comments = חשבונך נוצר לפני פחות מ־%s; כל התגובות שלך (לסוגיות, בקשות מיזוג, וכולי) ימחקו.
confirm_delete_account = כן, אני רוצה למחוק את החשבון שלי
delete_account_title = מחייקת חשבון משתמש
delete_account_desc = למחוק את חשבון משתמש זה לנצח?
email_notifications.enable = הפעלת הודעות אימייל
email_notifications.onmention = שליחת אימיילים רק עבור אזכור (mention\ping) מפורש
email_notifications.disable = השבתת הודעות אימייל
email_notifications.submit = בחירת אימייל מועדף
visibility = סוג חשבון
visibility.public = ציבורי
visibility.public_tooltip = נגיש לכולם
visibility.limited = מוגבל
visibility.limited_tooltip = נגיש רק למי שיש לו חשבון
visibility.private = פרטי
visibility.private_tooltip = נגיש רק למי שחבר בארגון שאתה חלק ממנו
blocked_since = חסום כבר %s
user_unblock_success = החסימה בוטלה.
user_block_success = המשתמש נחסם.
[repo]
new_from_template = קרפיף חדש מתבנית
new_advanced = הגדרות מתקדמות
new_advanced_expand =
owner = בעלים
owner_helper = ארגונים שכבר יצרו את כמות הקרפיפים המקסימלית לא מוצגים בתפריט.
repo_name = שם הקרפיף
repo_name_helper = שמות קרפיפים טובים הם זכירים, קצרים וייחודיים.
fork_repo = מזלוג
already_forked = כבר מזלגת את %s
fork_to_different_account = מזלוג לחשבון אחר
fork_branch = הענף שיועתק למזלוג
all_branches = כל הענפים
fork_no_valid_owners = קרפיף זה לא משויך לבעלים תקפים; אי אפשר למזלגו.
use_template = קרפיף חדש מתבנית זו
open_with_editor = פתיחה עם %s
download_zip = הורדה כ־.zip
download_tar = הורדה כ־.tag.gz
repo_desc = תיאור
repo_desc_helper = תיאור קצר (לא חובה)
repo_lang = שפה
repo_gitignore_helper = תבנית .gitignore
repo_gitignore_helper_desc = מאילו קבצים גיט יתעלם. התפריט כולל רשימות קבצים המשויכות לשפות או ספריות נפוצות. ארטיפקטים טיפוסיים כלולים ב.gitignore כברירת מחדל.
issue_labels = תוויות
issue_labels_helper = תוויות לדוגמה נפוצות ומומלצות שאפשר להתאים לדרישות הפרויקט הספציפי
license = רישיון
license_helper_desc = רישיונות מכתיבות מה אחרים יכולים ולא יכולים לעשות עם הקוד שלך. <a target="_blank" rel="noopener noreferrer" href="%s">איך לבחור רישיון?</a>
object_format = אלגוריתם גיבוב
object_format_helper = אלגוריתם הגיבוב שהקרפיף ישתמש בו. אי אפשר לשנות את הבחירה הזו. ל־SHA1 התאימות הטובה ביותר עם תוכנות אחרות.
readme = קרא־אותי
readme_helper = תבנית קובץ קרא־אותי (README)
readme_helper_desc = כאן אפשר לכתוב את התיאור המלא של הפרויקט שלך, וכל דבר שברצונך שאנשים ידעו עליו.
auto_init = תיחול הקרפיף
auto_init_description = פורג'ו מאפשר להוסיף קבצי קרא־אותי, .gitignore, ורשיונות בקומיט הראשון של הקרפיף שלך.
create_repo = קרפיף חדש
default_branch = ענף ברירת המחדל
default_branch_label = ברירת מחדל
mirror_public_key = מפתח SSH ציבורי
mirror_use_ssh.helper = פורג'ו ישקף את הקרפיף דרך התמיכה המובנית של גיט ב־SSH, ויצור בשבילך זוג מפתחות אוטומטית. באחריותך לוודא שלמפתח הציבורי שיווצר יהיה גישה לקרפיף היעד. אי אפשר להשתמש בכניסה על־בסיס סיסמה עם אפשרות זו.
mirror_use_ssh.not_available = אימות על־בסיס SSH לא זמין.
mirror_denied_combination = אי אפשר להשתמש באימות על־בסיס גם סיסמה וגם מפתח ציבורי; חובה לבחור רק באפשרות אחת.
mirror_sync = מסונכרן
mirror_sync_on_commit = סנכרון כשקומיטים מגיעים לשרת המקומי
mirror_address = שכפול מכתובת אינטרנט (URL)
mirror_lfs = אחסון קבצים גדולים (LFS)
mirror_lfs_desc = שיקוף אחסון קבצים גדולים (LFS)
mirror_last_synced = סונכרן לאחרונה
watchers = מנויים
stargazers = מככבים
stars_remove_warning = פעולה זו תסיר מהקרפיף את כל הכוכבים.
forks = מיזלוגים
stars = כוכבים
reactions_more = ועוד %d
unit_disabled = מנהלי המערכת השביתו תכונת קרפיף זאת.
language_other = אחרת
adopt_preexisting_content = קרפיף חדש מ־‏%s
delete_preexisting_label = מחיקה
delete_preexisting = מחיקת קבצים קיימים
delete_preexisting_content = מחיקת קבצים ב־%s
author_search_tooltip = מקסימום 30 חשבונות מוצגים
summary_card_alt = קלף תקציר הקרפיף %s
tree_path_not_found_commit = הכתובת %[1]s לא קיימת בקומיט %[2]s
tree_path_not_found_branch = הכתובת %[1]s לא קיימת בענף %[2]s
tree_path_not_found_tag = הכתובת %[1]s לא קיימת בתגית %[2]s
transfer.accept = אישור העברת הקרפיף
transfer.accept_desc = העברה ל "%s"
transfer.reject = דחיית העברת הקרפיף
transfer.reject_desc = ביטול העברת הקרפיף ל־"%s"
transfer.no_permission_to_accept = אין לך הרשאה לאשר את העברת הקרפיף הזו.
transfer.no_permission_to_reject = אין לך הרשאה לדחות את העברת הקרפיף הזו.
desc.private = פרטי
desc.public = ציבורי
desc.template = תבנית
desc.internal = פנימי
desc.archived = בארכיון
template.webhooks = Webhook־ים
template.topics = נושאים
form.reach_limit_of_creation_1 = החשבון של הבעלים כבר הגיע לכמות הקרפיפים המקסימלית (אחד).
form.reach_limit_of_creation_n = החשבון של הבעלים כבר הגיע לכמות הקרפיפים המקסימלית (%s).
form.name_reserved = שם הקרפיף "%s" שמור.
form.name_pattern_not_allowed = התבנית "%s" לא חוקית בתוך שם של קרפיף.
form.string_too_long = הטקסט הנתון ארוך מ־%d תווים.
migrate_options = אפשרויות ייבוא
migrate_options_mirror_helper = קרפיף זה יהיה מראה
migrate_options_lfs = ייבוא אחסון קבצים גדולים (LFS)
migrate_items_wiki = ויקי
migrate_items_milestones = אבני דרך
migrate_items_labels = תוויות
migrate_items_issues = סוגיות
migrate_items_pullrequests = בקשות מיזוג
migrate_items_releases = גרסאות
migrate_repo = ייבוא קרפיף
migrate.clone_address = ייבוא \ שכפול מ־URL
migrate.permission_denied = אין לך הרשאה לייבא קרפיפים מהשרת הנוכחי.
migrate.failed = הייבוא נכשל: %v
migrate.migrate_items_options = פורג'ו צריך קוד גישה כדי לייבא מידע נוסף
migrated_from = יובא מ‏־<a href="%[1]s">%[2]s</a>
migrated_from_fake = יובא מ־%[1]s
migrate.migrate = יבוא מ־%s
migrate.migrating = פורג'ו בתהליכי יבוא מ־<b>%s</b>...
migrate.migrating_failed = היבוא מ<b>%s</b> נכשל.
migrate.migrating_failed.error = הייבוא נכשל: %s
migrate.migrating_failed_no_addr = הייבוא נכשל.
migrate.github.description = ייבוא מידע מ־github.com או שרת GitHub Enteprise.
migrate.git.description = ייבוא קרפיף מכל שירות גיט שהוא.
migrate.gitlab.description = ייבוא מידע מ־gitlab.com או משרתי GitLab אחרים.
migrate.forgejo.description = ייבוא מידע מקודברג או שרת פורג'ו אחר.
migrate.gitea.description = ייבוא מידע מ־gitea.com או שרת גיטאה אחר.
migrate.gogs.description = ייבוא מידע מ־notabug.org או שרת גוגס אחר.
migrate.onedev.description = ייבוא מידע מ־code.onedev.io או שרת OneDev אחר.
migrate.codebase.description = ייבוא מידע מ־codebasehq.com.
migrate.gitbucket.description = יבוא מידע משרת GitBucket.
migrate.migrating_git = ייבוא הקרפיף עצמו
migrate.migrating_topics = ייבוא נושאים
migrate.migrating_milestones = ייבוא אבני דרך
migrate.migrating_labels = ייבוא תוויות
migrate.migrating_releases = ייבוא גרסאות
editor.delete_this_file = מחיקת קובץ
editor.file_delete_success = הקובץ "%s" נמחק.
editor.name_your_file = שם הקובץ…
editor.filename_help = אפשר להפריד בין תיקיות עם סלאשים, ו"למחוק" תיקיות עם backspace, כאילו זוהי תיבת טקסט רגילה.
editor.or = או
editor.cancel_lower = ביטול
editor.add_tmpl = הוספת "<%s>"
editor.add_tmpl.filename = שם הקובץ
editor.add = הוספתי את %s
editor.update = עידכנתי את %s
editor.delete = מחקתי את %s
editor.commit_message_desc = תיאור ארוך לא חובה…
editor.propose_file_change = הצעת השינוי
editor.new_branch_name = שם הענף שאליו הקומיט ידחף
editor.new_branch_name_desc = שם הענף החדש…
editor.cancel = ביטול
editor.filename_cannot_be_empty = שם הקובץ לא יכול להיות ריק.
editor.filename_is_invalid = שם הקובץ לא תקין: "%s".
editor.invalid_commit_mail = כתובת אימייל זו לא חוקית למטרות יצירת קומיטים.
editor.branch_does_not_exist = הענף "%s" לא קיים בקרפיף זה.
editor.branch_already_exists = הענף "%s" כבר קיים בקרפיף זה.
editor.directory_is_a_file = אי אפשר ליצור את התיקייה "%s"; כבר קיים קובץ תחת אותו שם.
editor.filename_is_a_directory = אי אפשר לקרוא לקובץ "%s"; כבר קיימת תיקייה תחת אותו שם.
editor.file_editing_no_longer_exists = הקובץ הנערך שהיה ידוע כ־"%s" לא קיים יותר בקרפיף זה.
editor.file_deleting_no_longer_exists = מחיקת הקובץ שהיה ידוע כ־"%s" נכשלה; הקובץ לא קיים יותר בקרפיף זה.
editor.file_changed_while_editing = תוכן קובץ זה השתנה מאז שהתחלת לערוך. אפשר <a target="_blank" rel="noopener noreferrer" href="%s">לראות מה היו השינויים</a> או <strong>ליצור את הקומיט שוב</strong> כדי לדרוס אותם.
editor.file_already_exists = כבר יש קובץ תחת השם "%s" בקרפיף זה.
editor.commit_id_not_matching = תוכן קובץ זה השתנה מאז שהתחלת לערוך. אפשר לשמור את השינויים לענף חדש ולפתוח בקשת מיזוג במקום.
editor.no_changes_to_show = אין שינויים להציג.
editor.fail_to_update_file = יצירת\שינוי הקובץ "s" נכשלה.
editor.fail_to_update_file_summary = הודעת שגיאה:
editor.push_rejected_summary = הודעת דחייה מלאה:
editor.add_subdir = הוספת תיקייה…
editor.unable_to_upload_files = העלאת הקבצים ל־"%s" נכשלה: %v
editor.upload_file_is_locked = הקובץ "%s" ננעל ע"י %s.
editor.upload_files_to_dir = העלאת קבצים ל"%s"
editor.commit_email = כתובת האימייל המשויכת לקומיט
commits.commits = קומיטים
commits.nothing_to_compare = ענפים אלו זהים.
commits.search_branch = ענף זה
commits.search_all = כל הענפים
commits.author = מחבר
commits.message = מסר
commits.date = תאריך
commits.signed_by = נחתם ע"י
commits.signed_by_untrusted_user = בעל חתימה לא מהימנת
commits.signed_by_untrusted_user_unmatched = בעל חתימה לא מהימנת שלא תואמת את מחבר הקומיט
commits.gpg_key_id = מזהה מפתח ה־GPG
commits.ssh_key_fingerprint = טביעת אצבע מפתח ה־SSH
commitstatus.error = שגיאה
commitstatus.failure = כישלון
commitstatus.pending = בתהליכים
commitstatus.success = הצלחה
ext_issues = סוגיות חיצוניות
projects = פרויקטים
projects.desc = פרויקטים עוזרים בניהול וארגון סוגיות ובקשות מיזוג.
projects.description = תיאור (לא חובה)
projects.description_placeholder = תיאור...
projects.create = פרויקט חדש
projects.title = כותרת
projects.new = פרויקט חדש
issues.create = סוגייה חדשה
issues.edit = עריכה
issues.cancel = ביטול
issues.save = שמירה
issues.label_title = שם
issues.label_description = תיאור
issues.label_color = צבע
issues.label_exclusive = בחירה בודדת
issues.label_archive = לארכיון
issues.label_archived_filter = הצגת תוויות מהארכיון
issues.label_archive_tooltip = תוויות בארכיון לא מוצעות בחיפוש על־בסיס תווית כברירת מחדל.
[projects]
deleted.display_name = פרויקט נמחק
[translation_meta]
test = ואהבת לרעך כמוך

View file

@ -1272,6 +1272,8 @@ topic.done=Kész
milestones.filter_sort.name = Név
[graphs]
[org]
@ -1686,6 +1688,9 @@ config.cache_item_ttl = Gyorsítótárelem TTL értéke
config.app_data_path = Alkalmazásadatok elérési útja
config_summary = Összefoglaló
config_settings = Beállítások
[action]
create_repo=létrehozott tárolót: <a href="%s"> %s</a>
rename_repo=átnevezte a(z) <code>%[1]s</code> tárolót <a href="%[2]s">%[3]s</a>-ra/re

View file

@ -84,15 +84,92 @@ concept_code_repository=Repositori
name=Nama
re_type = Konfirmasi Kata Sandi
webauthn_insert_key = Masukkan kunci keamanan anda
webauthn_sign_in = Tekan tombol pada kunci keamanan Anda. Jika kunci keamanan Anda tidak memiliki tombol, masukkan kembali.
webauthn_press_button = Silakan tekan tombol pada kunci keamanan Anda…
webauthn_use_twofa = Gunakan kode dua faktor dari telepon Anda
webauthn_error = Tidak dapat membaca kunci keamanan Anda.
webauthn_unsupported_browser = Browser Anda saat ini tidak mendukung WebAuthn.
webauthn_error_unknown = Terdapat kesalahan yang tidak diketahui. Mohon coba lagi.
webauthn_error_insecure = `WebAuthn hanya mendukung koneksi aman. Untuk pengujian melalui HTTP, Anda dapat menggunakan "localhost" atau "127.0.0.1"`
webauthn_error_unable_to_process = Server tidak dapat memproses permintaan Anda.
webauthn_error_duplicated = Kunci keamanan tidak diperbolehkan untuk permintaan ini. Pastikan bahwa kunci ini belum terdaftar sebelumnya.
webauthn_error_empty = Anda harus menetapkan nama untuk kunci ini.
webauthn_error_timeout = Waktu habis sebelum kunci Anda dapat dibaca. Mohon muat ulang halaman ini dan coba lagi.
new_project = Proyek Baru
new_project_column = Kolom Baru
ok = Oke
retry = Coba lagi
rerun = Jalankan ulang
rerun_all = Jalankan ulang semua job
remove_label_str = `Hapus item "%s"`
view = Tampilan
test = Pengujian
locked = Terkunci
copy = Salin
copy_url = Salin URL
copy_hash = Salin hash
copy_content = Salin konten
copy_branch = Salin nama branch
copy_success = Tersalin!
copy_error = Gagal menyalin
copy_type_unsupported = Tipe berkas ini tidak dapat disalin
error = Gangguan
go_back = Kembali
invalid_data = Data invalid: %v
never = Tidak Pernah
unknown = Tidak diketahui
rss_feed = Umpan Berita
pin = Sematkan
unpin = Lepas sematan
artifacts = Artefak
archived = Diarsipkan
concept_system_global = Global
concept_user_individual = Perorangan
show_full_screen = Tampilkan layar penuh
download_logs = Unduh Logs
confirm_delete_selected = Konfirmasi untuk menghapus semua item yang dipilih?
value = Nilai
filter = Saring
filter.is_archived = Diarsipkan
filter.not_archived = Tidak Diarsipkan
filter.public = Publik
filter.private = Pribadi
[aria]
navbar = Bar Navigasi
footer = Footer
footer.links = Tautan
[heatmap]
number_of_contributions_in_the_last_12_months = %s Kontribusi pada 12 bulan terakhir
less = Lebih sedikit
more = Lebih banyak
[editor]
buttons.heading.tooltip = Tambahkan heading
buttons.bold.tooltip = Tambahkan teks Tebal
buttons.italic.tooltip = Tambahkan teks Miring
buttons.quote.tooltip = Kutip teks
buttons.code.tooltip = Tambah Kode
buttons.link.tooltip = Tambahkan tautan
buttons.list.unordered.tooltip = Tambah daftar titik
buttons.list.ordered.tooltip = Tambah daftar angka
buttons.list.task.tooltip = Tambahkan daftar tugas
buttons.mention.tooltip = Tandai pengguna atau tim
buttons.ref.tooltip = Merujuk pada isu atau permintaan tarik
buttons.switch_to_legacy.tooltip = Gunakan editor versi lama
buttons.enable_monospace_font = Aktifkan font monospace
buttons.disable_monospace_font = Non-Aktifkan font monospace
[filter]
string.asc = A - Z
string.desc = Z - A
[error]
occurred = Terjadi kesalahan
not_found = Target tidak dapat ditemukan.
[startpage]
app_desc=Sebuah layanan hosting Git sendiri yang tanpa kesulitan
@ -124,6 +201,9 @@ require_sign_in_view=Harus Login Untuk Melihat Halaman
admin_password=Kata Sandi
admin_email=Alamat Email
email_title = Pengaturan email
smtp_from = Kirim Email Sebagai
[home]
uname_holder=Nama Pengguna atau Alamat Surel
password_holder=Kata Sandi
@ -141,6 +221,8 @@ show_private=Pribadi
issues.in_your_repos=Dalam repositori anda
show_archived = Diarsipkan
[explore]
repos=Repositori
users=Pengguna
@ -492,6 +574,8 @@ email_notifications.submit=Pasang Pengaturan Email
visibility.private=Pribadi
visibility.public = Publik
[repo]
owner=Pemilik
repo_name=Nama Repositori
@ -957,6 +1041,12 @@ branch.deleted_by=Dihapus oleh %s
desc.public = Publik
desc.archived = Diarsipkan
commitstatus.error = Gangguan
projects.new = Proyek Baru
milestones.filter_sort.name = Nama
[graphs]
[org]
@ -1011,6 +1101,8 @@ teams.delete_team_success=Tim sudah di hapus.
teams.repositories=Tim repositori
teams.search_repo_placeholder=Cari repositori…
settings.visibility.public = Publik
[admin]
dashboard=Dasbor
organizations=Organisasi
@ -1269,6 +1361,9 @@ notices.op=Op.
notices.delete_success=Laporan sistem telah dihapus.
config_settings = Pengaturan
users.list_status_filter.menu_text = Saring
[action]
create_repo=repositori dibuat <a href="%s">%s</a>
rename_repo=ganti nama gudang penyimpanan dari <code>%[1]s</code> ke <a href="%[2]s">%[3]s</a>
@ -1344,6 +1439,56 @@ runs.commit=Memperbuat
runs.no_matching_online_runner_helper = Tidak ada runner online yang cocok dengan label: %s
runs.actor = Aktor
runs.status = Status
runs.actors_no_select = Semua aktor
runs.status_no_select = Semua status
runs.no_results = Tidak ada hasil yang cocok.
runs.no_workflows = Belum ada alur kerja.
runs.no_runs = Alur kerja belum berjalan.
runs.empty_commit_message = (pesan commit kosong)
workflow.disable = Nonaktifkan Alur Kerja
workflow.enable = Aktifkan Alur Kerja
workflow.disabled = Alur kerja dinonaktifkan.
need_approval_desc = Butuh persetujuan untuk menjalankan alur kerja untuk pull request fork.
variables = Variabel
variables.creation = Tambah Variabel
variables.none = Belum ada variabel.
variables.deletion = Hapus variabel
variables.deletion.description = Menghapus variabel bersifat permanen dan tidak dapat dibatalkan. Lanjutkan?
variables.description = Variabel akan diteruskan ke beberapa tindakan dan tidak dapat dibaca sebaliknya.
variables.id_not_exist = Variabel dengan ID %d tidak ada.
variables.edit = Edit Variabel
variables.deletion.failed = Gagal menghapus variabel.
variables.deletion.success = Variabel telah dihapus.
variables.creation.failed = Gagal menambahkan variabel.
variables.creation.success = Variabel "%s" telah ditambahkan.
variables.update.failed = Gagal mengedit variabel.
variables.update.success = Variabel telah diedit.
[projects]
type-1.display_name = Proyek Individu
type-2.display_name = Proyek Repositori
type-3.display_name = Proyek Organisasi
[git.filemode]
changed_filemode = %[1]s → %[2]s
directory = Directory
normal_file = Normal file
executable_file = Executable file
symbolic_link = Symbolic link
submodule = Submodule
[search]
search = Cari...
type_tooltip = Tipe pencarian
fuzzy_tooltip = Termasuk juga hasil yang mendekati kata pencarian
exact_tooltip = Hanya menampilkan hasil yang cocok dengan istilah pencarian
repo_kind = Cari repo...
user_kind = Telusuri pengguna...
org_kind = Cari organisasi...
team_kind = Cari tim...
code_kind = Cari kode...
code_search_unavailable = Pencarian kode saat ini tidak tersedia. Silahkan hubungi administrator.
branch_kind = Cari cabang...

View file

@ -114,6 +114,10 @@ value=Gildi
sign_in_with_provider = Skrá inn með %s
enable_javascript = Þessi síða krefst JavaScript.
filter = Sía
filter.is_archived = Safnvistað
filter.public = Opinbert
[aria]
[heatmap]
@ -1119,6 +1123,8 @@ topic.done=Í lagi
milestones.filter_sort.name = Heiti
[graphs]
[org]
@ -1288,6 +1294,9 @@ notices.type_2=Verkefni
notices.desc=Lýsing
config_summary = Yfirlit
config_settings = Stillingar
[action]
create_issue=`opnaði vandamál <a href="%[1]s">%[3]s#%[2]s</a>`
reopen_issue=`enduropnaði vandamál <a href="%[1]s">%[3]s#%[2]s</a>`
@ -1372,3 +1381,5 @@ runs.commit=Framlag
[projects]
[git.filemode]
[search]

View file

@ -167,6 +167,8 @@ new_org.title = Nuova organizzazione
new_migrate.link = Nuova migrazione
new_org.link = Nuova organizzazione
copy_path = Copia percorso
[aria]
footer.links = Collegamenti
navbar = Barra di navigazione
@ -200,6 +202,13 @@ buttons.disable_monospace_font = Disattiva font monospace
buttons.indent.tooltip = Annida elementi di un livello
buttons.unindent.tooltip = Disannida elementi di un livello
buttons.new_table.tooltip = Aggiungi tabella
table_modal.header = Aggiungi tabella
table_modal.placeholder.header = Intestazione
table_modal.placeholder.content = Contenuto
table_modal.label.rows = File
table_modal.label.columns = Colonne
[filter]
string.asc = A - Z
string.desc = Z - A
@ -1402,8 +1411,8 @@ issues.new.open_projects=Apri progetti
issues.new.closed_projects=Progetti chiusi
issues.new.no_items=Nessun elemento
issues.new.milestone=Traguardo
issues.new.no_milestone=Nessuna pietra miliare
issues.new.clear_milestone=Milestone pulita
issues.new.no_milestone=Nessun traguardo
issues.new.clear_milestone=Rimuovi traguardo
issues.new.open_milestone=Traguardi aperti
issues.new.closed_milestone=Traguardi chiusi
issues.new.assignees=Assegnatari
@ -1431,7 +1440,7 @@ issues.remove_labels=rimosso le %s etichette %s
issues.add_remove_labels=aggiunto %s e rimosso %s etichette %s
issues.add_milestone_at=`aggiunta alle pietre miliari <b>%s</b> %s`
issues.add_project_at=`aggiunto questo al progetto <b>%s</b> %s`
issues.change_milestone_at=`pietra miliare modificata da <b> %s</b> a <b>%s</b> %s`
issues.change_milestone_at=`ha modificato il traguardo da <b> %s</b> a <b>%s</b> %s`
issues.change_project_at=`ha modificato il progetto da <b>%s</b> a <b>%s</b> %s`
issues.remove_milestone_at=`rimossa dalle pietre miliari <b>%s</b> %s`
issues.remove_project_at=`rimosso questo dal progetto <b>%s</b> %s`
@ -1479,8 +1488,8 @@ issues.filter_sort.fewestforks=Minor numero di fork
issues.action_open=Apri
issues.action_close=Chiuso
issues.action_label=Etichetta
issues.action_milestone=Pietra Miliare
issues.action_milestone_no_select=Nessuna pietra miliare
issues.action_milestone=Traguardo
issues.action_milestone_no_select=Nessun Traguardo
issues.action_assignee=Assegnatario
issues.action_assignee_no_select=Nessun assegnatario
issues.opened_by=aperta %[1]s da <a href="%[2]s">%[3]s</a>
@ -1506,7 +1515,7 @@ issues.close_comment_issue=Commenta e chiudi
issues.reopen_issue=Riapri
issues.reopen_comment_issue=Commenta e riapri
issues.create_comment=Commento
issues.closed_at=`chiuso questo probleam <a id="%[1]s" href="#%[1]s">%[2]s</a>`
issues.closed_at=`ha chiuso questa segnalazione <a id="%[1]s" href="#%[1]s">%[2]s</a>`
issues.reopened_at=`ha riaperto questa segnalazione <a id="%[1]s" href="#%[1]s">%[2]s</a>`
issues.commit_ref_at=`ha fatto riferimento a questa segnalazione dal commit <a id="%[1]s" href="#%[1]s">%[2]s</a>`
issues.ref_issue_from=`<a href="%[3]s">ha fatto riferimento a questa segnalazione %[4]s</a> <a id="%[1]s" href="#%[1]s">%[2]s</a>`
@ -1628,7 +1637,7 @@ issues.dependency.blocks_short=Blocchi
issues.dependency.blocked_by_short=Dipende da
issues.dependency.remove_header=Rimuovi Dipendenza
issues.dependency.issue_remove_text=Questo rimuoverà la dipendenza da questa issue. Continuare?
issues.dependency.pr_remove_text=Questo rimuoverà la dipendenza da questa pull request. Continuare?
issues.dependency.pr_remove_text=Questo rimuoverà la dipendenza da questa richiesta di modifica. Continuare?
issues.dependency.setting=Abilita le dipendenze per segnalazioni e richieste di modifica
issues.dependency.add_error_same_issue=Non si può fare dipendere una segnalazione da se stessa.
issues.dependency.add_error_dep_issue_not_exist=La segnalazione dalla quale dipende non esiste.
@ -1673,7 +1682,7 @@ issues.reference_link=Riferimento: %s
compare.compare_base=base
compare.compare_head=confronta
pulls.desc=Attiva pull request e revisioni di codice.
pulls.desc=Attiva richieste di modifica e revisioni del codice.
pulls.new=Nuova richiesta di modifica
pulls.view=Visualizza richiesta di modifica
pulls.compare_changes=Nuova richiesta di modifica
@ -1700,17 +1709,17 @@ pulls.change_target_branch_at=`cambiato il ramo di destinazione da <b>%s</b> a <
pulls.tab_conversation=Conversazione
pulls.tab_commits=Commit
pulls.tab_files=File modificati
pulls.reopen_to_merge=Riapri questa pull request per effettuare l'unione.
pulls.cant_reopen_deleted_branch=Questa richiesta di modifica non può essere riaperta perché il ramo è stato eliminato.
pulls.reopen_to_merge=Riapri questa richiesta di modifica per poter fondere.
pulls.cant_reopen_deleted_branch=Questa richiesta di modifica non può essere riaperta in quanto il ramo è stato eliminato.
pulls.merged=Unito
pulls.manually_merged=Unito manualmente
pulls.is_closed=La richiesta di modifica è stata chiusa.
pulls.title_wip_desc=`<a href="#">Inizia il titolo con <strong>%s</strong></a> per evitare che la pull request venga unita accidentalmente.`
pulls.cannot_merge_work_in_progress=Questa pull request è contrassegnata come un lavoro in corso.
pulls.title_wip_desc=`<a href="#">Inizia il titolo con <strong>%s</strong></a> per evitare che la richiesta di modifica venga fusa accidentalmente.`
pulls.cannot_merge_work_in_progress=Questa richiesta di modifica è contrassegnata come lavori in corso.
pulls.still_in_progress=Ancora in corso?
pulls.add_prefix=Aggiungi prefisso <strong>%s</strong>
pulls.remove_prefix=Rimuovi il prefisso <strong>%s</strong>
pulls.data_broken=Questa pull request è rovinata a causa di informazioni mancanti del fork.
pulls.data_broken=Questa richiesta di modifica è rovinata a causa di informazioni mancanti riguardo la derivazione.
pulls.files_conflicted=Questa richiesta di modifica va in conflitto con il ramo di destinazione.
pulls.is_checking=Verifica dei conflitti di fusione in corso. Riprova tra qualche istante.
pulls.is_ancestor=Questo ramo è già incluso nel ramo di destinazione. Non c'è nulla da fondere.
@ -1718,8 +1727,8 @@ pulls.is_empty=Le modifiche di questo ramo sono già nel ramo di destinazione. Q
pulls.required_status_check_failed=Alcuni controlli richiesti non hanno avuto successo.
pulls.required_status_check_missing=Mancano alcuni controlli richiesti.
pulls.required_status_check_administrator=Come amministratore, puoi ancora unire questa pull request.
pulls.can_auto_merge_desc=La pull request può essere unita automaticamente.
pulls.cannot_auto_merge_desc=Questa pull request non può essere unita automaticamente a causa di conflitti.
pulls.can_auto_merge_desc=La richiesta di modifica può essere unita automaticamente.
pulls.cannot_auto_merge_desc=Questa richiesta di modifica non può essere unita automaticamente a causa di conflitti.
pulls.cannot_auto_merge_helper=Unire manualmente per risolvere i conflitti.
pulls.num_conflicting_files_1=%d file in conflitto
pulls.num_conflicting_files_n=%d file in conflitto
@ -1731,20 +1740,20 @@ pulls.waiting_count_1=%d in attesa di revisione
pulls.waiting_count_n=%d in attesa di revisione
pulls.wrong_commit_id=l'ID del commit deve essere un ID del commit nel ramo di destinazione
pulls.no_merge_desc=Questa pull request non può essere unita perché tutte le opzioni di merge del repository sono disattivate.
pulls.no_merge_desc=Questa richiesta di modifica non può essere fusa perché tutte le opzioni di fusione del repositorio sono disattivate.
pulls.no_merge_helper=Attiva le opzioni di merge nelle impostazioni del repository o unisci la pull request manualmente.
pulls.no_merge_wip=Questa pull request non può essere unita perché è contrassegnata come un lavoro in corso.
pulls.no_merge_not_ready=Questa pull request non è pronta per il merge, controlla lo stato della revisione e i controlli di stato.
pulls.no_merge_access=Non sei autorizzato ad effettuare il merge su questa pull request.
pulls.merge_pull_request=Crea commit unito
pulls.rebase_merge_pull_request=Ricostruisci poi manda avanti
pulls.rebase_merge_commit_pull_request=Ricostruisci quindi crea commit unito
pulls.no_merge_access=Non sei autorizzatə a fondere questa richiesta di modifica.
pulls.merge_pull_request=Crea commit di fusione
pulls.rebase_merge_pull_request=Ricostruisci e avanti veloce
pulls.rebase_merge_commit_pull_request=Ricostruisci e crea commit di fusione
pulls.squash_merge_pull_request=Crea commit mescolato
pulls.merge_manually=Unito manualmente
pulls.merge_commit_id=L'ID del commit di merge
pulls.require_signed_wont_sign=Il ramo richiede commit firmati ma questa fusione non verrà firmata
pulls.invalid_merge_option=Non puoi utilizzare questa opzione di merge per questa pull request.
pulls.invalid_merge_option=Non è possibile utilizzare l'opzione di fusione selezionata per questa richiesta di modifica.
pulls.merge_conflict=Unione non riuscita: C'è stato un conflitto durante l'operazione. Suggerimento: Prova una strategia diversa
pulls.merge_conflict_summary=Messaggio d'errore
pulls.rebase_conflict=Merge non riuscito: c'è stato un conflitto durante il rebase dell'commit: %[1]s. Suggerimento: Prova una strategia diversa
@ -1773,7 +1782,7 @@ pulls.reopened_at=`ha riaperto questa richiesta di modifica <a id="%[1]s" href="
pulls.auto_merge_button_when_succeed=(Quando i controlli sono superati)
pulls.auto_merge_when_succeed=Unione automatica quando tutti i controlli sono superati
pulls.auto_merge_newly_scheduled=La pull request era programmata per unire quando tutti i controlli sono superati.
pulls.auto_merge_newly_scheduled=La richiesta di modifica era programmata per essere fusa al passare di tutti i controlli.
pulls.auto_merge_has_pending_schedule=%[1]s ha programmato questa pull request per unire automaticamente quando tutti i controlli hanno successo %[2]s.
pulls.auto_merge_cancel_schedule=Annulla fusione automatica
@ -1783,7 +1792,7 @@ pulls.auto_merge_canceled_schedule=L'unione automatica è stata annullata per qu
pulls.auto_merge_newly_scheduled_comment=`ha programmato questa pull request per unire automaticamente quando tutti i controlli sono superati %[1]s`
pulls.auto_merge_canceled_schedule_comment=`cancella l'auto-merging di questa pull request quando tutti i testi sono superati %[1]s`
pulls.delete.title=Eliminare questa pull request?
pulls.delete.title=Eliminare questa richiesta di modifica?
pulls.delete.text=Vuoi davvero eliminare questa richiesta di modifica? (Ciò rimuoverà permanentemente tutti i contenuti. Considera invece di chiuderla, se vuoi tenerla archiviata)
@ -3886,6 +3895,9 @@ pull_kind = Cerca richieste...
exact = Esatto
milestone_kind = Ricerca tappe...
regexp = Espressione Regolare
regexp_tooltip = Interpreta i termini di ricerca come un'espressione regolare
[munits.data]
gib = GiB
tib = TiB
@ -3899,3 +3911,7 @@ b = B
filepreview.lines = Linee da %[1]d a %[2]d in %[3]s
filepreview.truncated = L'anteprima è stata troncata
filepreview.line = Linea %[1]d in %[2]s
[repo.permissions]
issues.write = <b>Scrittura:</b> Chiudere segnalazioni e gestire metadati come etichette, traguardi, assegnatarɜ, scadenze e dipendenze.
pulls.write = <b>Scrittura:</b> Chiudere richieste di modifica e gestire metadati come etichette, traguardi, assegnatarɜ, scadenze e dipendenze.

View file

@ -167,6 +167,8 @@ new_org.link = 新しい組織
test = テスト
error413 = 割り当て量を使い切りしました。
copy_path = パスをコピー
[aria]
navbar=ナビゲーションバー
footer=フッター
@ -3517,6 +3519,8 @@ config.app_slogan = インスタンスのスローガン
config.cache_test = テストキャッシュ
config.cache_test_failed = キャッシュの調査に失敗しました: %v.
[action]
create_repo=がリポジトリ <a href="%s">%s</a> を作成しました
rename_repo=がリポジトリ名を <code>%[1]s</code> から <a href="%[2]s">%[3]s</a> へ変更しました
@ -3877,11 +3881,15 @@ workflow.dispatch.invalid_input_type = 入力タイプ「%s」が無効です。
workflow.dispatch.warn_input_limit = 最初の %d 個の入力のみを表示します。
runs.no_job = ワークフローには少なくとも1つのジョブが含まれている必要があります
runs.expire_log_message = ログは古すぎるため消去されています。
[projects]
type-1.display_name=個人プロジェクト
type-2.display_name=リポジトリ プロジェクト
type-3.display_name=組織プロジェクト
deleted.display_name = 削除されたプロジェクト
[git.filemode]
changed_filemode=%[1]s → %[2]s
directory=ディレクトリ

View file

@ -1438,6 +1438,8 @@ settings.packagist_username = Packagist 사용자명
archive.title_date = 이 저장소는 %s에 보관처리되었습니다. 파일을 볼 수 있고 복제할 수도 있지만, 푸시하거나 이슈를 열거나 풀 리퀘스트를 만들 수 없습니다.
milestones.filter_sort.name = 이름
[graphs]
[org]
@ -1812,6 +1814,9 @@ auths.sspi_strip_domain_names = 사용자명들에서 도메인명을 제거함
auths.tip.yandex = %s에 새 애플리케이션을 만듭니다. "Yandex.Passport API"부분의 "Access to email address", "Access to user avatar", "Access to username, first name and surname, gender" 권한을 활성화 하세요.
config.allow_dots_in_usernames = 사용자들이 마침표를 사용자명에 사용할 수 있도록 허가합니다. 이미 존재하는 계정에는 영향을 주지 않습니다.
config_summary = 요약
config_settings = 설정
[action]
create_repo=저장소를 만들었습니다. <a href="%s">%s</a>
rename_repo=저장소 이름을 <code>%[1]s에서</code>에서 <a href="%[2]s"> %[3]s</a>으로 변경함

File diff suppressed because it is too large Load diff

View file

@ -357,8 +357,8 @@ account_security_caution.text_1 = Wenn du dat weerst, kannst du deese E-Mail sek
account_security_caution.text_2 = Wenn du dat nich weerst, hett well in dien Konto inbroken. Bidde kuntakteer de Sied-Chefs.
register_success = Registreren kumpleet
issue_assigned.pull = @%[1]s hett di to Haalvörslag %[2]s in Repositorium %[3]s towiesen.
issue.action.reopen = <b>@%[1]s</b> hett #%[2]s weer opmaakt.
issue.action.merge = <b>@%[1]s</b> hett #%[2]s in %[3]s tosamenföhrt.
issue.action.reopen = <b>@%[1]s</b> hett #%[2]d weer opmaakt.
issue.action.merge = <b>@%[1]s</b> hett #%[2]d in %[3]s tosamenföhrt.
issue.action.reject = <b>@%[1]s</b> hett um Änners för deesen Haalvörslag beden.
issue.action.ready_for_review = <b>@%[1]s</b> hett deesen Haalvörslag as klaar tum Nakieken markeert.
issue.action.new = <b>@%[1]s</b> hett #%[2]d opmaakt.
@ -375,8 +375,8 @@ activate_email.text = Bidde klick up deesen Verwies, um diene E-Mail-Adress binn
reset_password.text = Wenn du dat weerst, klick bidde up deesen Verwies, um dien Konto binnen <b>%s</b> torüggtohalen:
password_change.subject = Dien Passwoord is ännert worden
issue_assigned.issue = @%[1]s hett di to Gefall %[2]s in Repositorium %[3]s towiesen.
issue.action.push_1 = <b>@%[1]s</b> hett %[3]Kommitteren to %[2]s schuven
issue.action.push_n = <b>@%[1]s</b> hett %[3]Kommitterens to %[2]s schuven
issue.action.push_1 = <b>@%[1]s</b> hett %[3]d Kommitteren to %[2]s schuven
issue.action.push_n = <b>@%[1]s</b> hett %[3]d Kommitterens to %[2]s schuven
activate_account.text_1 = Moin <b>%[1]s</b>, wees bedankt, dat du di up %[2]s registreert hest!
issue.action.review_dismissed = <b>@%[1]s</b> hett dat leste Nakieken vun %[2]s för deesen Haalvörslag ofseggt.
issue.in_tree_path = In %s:
@ -404,7 +404,7 @@ issue.x_mentioned_you = <b>@%s</b> hett di nöömt:
issue.action.approve = <b>@%[1]s</b> hett deesem Haalvörslag tostimmt.
repo.transfer.subject_to_you = %s will Repositorium »%s« to di överdragen
team_invite.text_3 = Wahrschau: Deese Inladen weer för %[1]s dacht. Wenn du deese Inladen nich verwacht hest, kannst du deese E-Mail minnachten.
issue.action.close = <b>@%[1]s</b> hett #%[2]s dichtmaakt.
issue.action.close = <b>@%[1]s</b> hett #%[2]d dichtmaakt.
repo.transfer.body = Um dat antonehmen of oftolehnen, besöök %s, of ignoreer dat eenfach.
release.download.zip = Quelltext (ZIP)
team_invite.subject = %[1]s hett di inladen, in de Vereenigung %[2]s intotreden
@ -1407,7 +1407,7 @@ issues.comment_manually_pull_merged_at = hett Kommitteren %[1]s in %[2]s %[3]s v
issues.reopen_issue = Weer opmaken
issues.closed_at = `hett deeses Gefall <a id="%[1]s" href="#%[1]s">%[2]s</a> dichtmaakt`
issues.commit_ref_at = `hett deeses Gefall <a id="%[1]s" href="#%[1]s">%[2]s</a> vun eenem Kommitteren benöömt`
issues.ref_closing_from = `<a href="%[3]s">hett deeses Gefall vun eenem Haalvörslag %[4]s, wat t dichtmaken word,</a> <a id="%[1]s" href="#%[1]s">%[2]s</a> <a href="%[3]s">benöömt</a>`
issues.ref_closing_from = `<a href="%[3]s">hett deeses Gefall vun eenem Haalvörslag, wat t %[4]s dichtmaken word,</a> <a id="%[1]s" href="#%[1]s">%[2]s</a> <a href="%[3]s">benöömt</a>`
issues.ref_closed_from = `<a href="%[3]s">hett deeses Gefall %[4]s</a> <a id="%[1]s" href="#%[1]s">%[2]s</a> <a href="%[3]s">dichtmaakt</a>`
issues.ref_reopened_from = `<a href="%[3]s">hett deeses Gefall %[4]s</a> <a id="%[1]s" href="#%[1]s">%[2]s</a> <a href="%[3]s">weer opmaakt</a>`
issues.ref_from = `vun %[1]s`
@ -1445,12 +1445,12 @@ issues.label.filter_sort.reverse_alphabetically = Umdreiht na de Alphabeet
issues.label.filter_sort.by_size = Lüttste Grött
issues.num_participants_one = %d Mitmaker
issues.num_participants_few = %d Mitmakers
issues.ref_pull_from = `<a href="%[3]s">hett deeses Haalvörslag %[4]s</a> <a id="%[1]s" href="#%[1]s">%[2]s</a> <a href="%[3]s">benöömt</a>`
issues.ref_pull_from = `<a href="%[3]s">hett deesen Haalvörslag %[4]s</a> <a id="%[1]s" href="#%[1]s">%[2]s</a> <a href="%[3]s">benöömt</a>`
issues.label_title = Naam
issues.label_archived_filter = Archiveert Vermarkens wiesen
issues.archived_label_description = (Archiveert) %s
issues.ref_issue_from = `<a href="%[3]s">hett deeses Gefall %[4]s</a> <a id="%[1]s" href="#%[1]s">%[2]s</a> <a href="%[3]s">benöömt</a>`
issues.ref_reopening_from = `<a href="%[3]s">hett deeses Gefall vun eenem Haalvörslag %[4]s, wat t weer opmaken word,</a> <a id="%[1]s" href="#%[1]s">%[2]s</a> <a href="%[3]s">benöömt</a>`
issues.ref_reopening_from = `<a href="%[3]s">hett deeses Gefall vun eenem Haalvörslag, wat t %[4]s weer opmaken word,</a> <a id="%[1]s" href="#%[1]s">%[2]s</a> <a href="%[3]s">benöömt</a>`
issues.author.tooltip.issue = Deeser Bruker is de Autor vun deesem Gefall.
issues.role.member_helper = Deeser Bruker is een Liddmaat vun de Vereenigung, wat de Eegner vun deesem Repositorium is.
issues.role.collaborator_helper = Deeser Bruuker is inladen worden, in deesem Repositorium mittoarbeiden.
@ -1553,7 +1553,7 @@ issues.start_tracking_history = `hett %s to warken begunnen`
issues.lock.notice_2 = - Du un anner Mitarbeiders mit Togriep to deesem Repositorium köönt wiederhen Kommentaren schrieven, wat elkeenwell sücht.
issues.due_date_modified = hett dat Anstahns-Datum vun %[2]s to %[1]s %[3]s ännert
issues.dependency.issue_remove_text = Dat word de Ofhangen vun deesem Gefall wegdoon. Wiedermaken?
issues.review.approve = hett deese Ännerns %s tostimmt
issues.review.approve = hett %s deesen Ännerns tostimmt
issues.review.dismissed = hett %[2]s dat Nakieken vun %[1]s ofseggt
issues.lock.title = Snack up deesem Gefall tosluten.
issues.unlock.title = Snack up deesem Gefall upsluten.
@ -1939,7 +1939,7 @@ milestones.filter_sort.earliest_due_data = Nahst Anstahns-Datum
milestones.filter_sort.least_issues = Minnst Gefallens
wiki.wiki_page_revisions = Sied-Versioonen
activity.period.yearly = 1 Jahr
activity.title.issues_1 = %s Gefall
activity.title.issues_1 = %d Gefall
activity.git_stats_files_changed_1 = ännert worden
activity.git_stats_deletion_n = %d lösket Riegen geven
contributors.contribution_type.deletions = Lösket Riegen
@ -1975,7 +1975,7 @@ activity.merged_prs_count_n = Tosamenföhrt Haalvörslagen
activity.title.user_1 = %d Bruker
activity.title.prs_1 = %d Haalvörslag
activity.active_issues_count_n = <strong>%d</strong> aktiiv Gefallens
activity.title.issues_n = %s Gefallens
activity.title.issues_n = %d Gefallens
activity.title.unresolved_conv_n = %d nich lööst Snacks
activity.title.releases_1 = %d Publizeren
activity.git_stats_file_1 = is %d Datei
@ -3735,6 +3735,8 @@ runs.no_workflows.documentation = För mehr Informatioonen över Forgejo-Aktioon
runs.no_workflows.help_write_access = Weetst du nich, wo man mit Forgejo-Aktioonen begünnen sall? Kiek de <a target="_blank" rel="noopener noreferrer" href="%s">Fixanwies in de Bruker-Dokumenteren</a> an, um diene eerste Warkwies to schrieven, un <a target="_blank" rel="noopener noreferrer" href="%s">richt dann dienen eersten Forgejo-Loper in</a>, um diene Upgavens uttoföhren.
runs.no_workflows.help_no_write_access = Um mehr över Forgejo-Aktioonen to lehren, kiek <a target="_blank" rel="noopener noreferrer" href="%s">de Dokumenteren</a> an.
variables.not_found = Kunn de Variaabel nich finnen.
[projects]
deleted.display_name = Lösket Projekt
type-1.display_name = Enkelt Projekt

View file

@ -4,14 +4,14 @@ dashboard=Overzicht
explore=Verkennen
help=Help
logo=Logo
sign_in=Inloggen
sign_in=Aanmelden
sign_in_or=of
sign_out=Uitloggen
sign_up=Registreren
link_account=Account Koppelen
register=Registreren
version=Versie
powered_by=Aangedreven door %s
powered_by=Mogelijk gemaakt door %s
page=Pagina
template=Sjabloon
language=Taal
@ -28,24 +28,24 @@ username=Gebruikersnaam
email=E-mailadres
password=Wachtwoord
access_token=Toegangstoken
re_type=Verifieer wachtwoord
re_type=Bevestig wachtwoord
captcha=CAPTCHA
twofa=Twee-factor authenticatie
twofa_scratch=Twee-factor krascode
passcode=PIN
passcode=Code
webauthn_insert_key=Voer uw beveiligingssleutel in
webauthn_sign_in=Druk op de knop van uw beveiligingssleutel. Als uw beveiligingssleutel geen knop heeft, voeg deze dan opnieuw in.
webauthn_sign_in=Druk op de knop van uw beveiligingssleutel. Als uw beveiligingssleutel geen knop heeft, voer deze dan opnieuw in.
webauthn_press_button=Druk alstublieft op de knop van uw beveiligingssleutel…
webauthn_use_twofa=Gebruik een twee-factor code van uw telefoon
webauthn_error=Kon uw beveiligingssleutel niet lezen.
webauthn_unsupported_browser=Uw browser ondersteunt momenteel geen WebAuthn.
webauthn_error_unknown=Er is een onbekende fout opgetreden. Probeer het opnieuw.
webauthn_error_insecure=WebAuthn ondersteunt alleen beveiligde verbindingen. Om te testen via HTTP, kan je de oorsprong "localhost" of "127.0.0.1" gebruiken
webauthn_error_insecure=WebAuthn ondersteunt alleen beveiligde verbindingen. Om te testen via HTTP, kan je als systeemnaam "localhost" of "127.0.0.1" gebruiken
webauthn_error_unable_to_process=De server kon uw verzoek niet verwerken.
webauthn_error_duplicated=De beveiligingssleutel is niet toegestaan voor dit verzoek. Zorg er alstublieft voor dat de sleutel niet al geregistreerd is.
webauthn_error_duplicated=De beveiligingssleutel is voor dit verzoek niet toegestaan. Controleer alstublieft of de sleutel niet al is geregistreerd.
webauthn_error_empty=U moet een naam voor deze sleutel instellen.
webauthn_error_timeout=Time-out bereikt voordat uw sleutel kon worden gelezen. Laad deze pagina opnieuw en probeer het opnieuw.
webauthn_error_timeout=Time-out bereikt voordat uw sleutel kon worden gelezen. Herlaad deze pagina en probeer het opnieuw.
webauthn_reload=Vernieuwen
repository=Repository
@ -56,9 +56,9 @@ new_migrate=Nieuwe migratie
new_mirror=Nieuwe mirror
new_fork=Nieuwe repository fork
new_org=Nieuwe organisatie
new_project=Nieuwe project
new_project=Nieuw project
manage_org=Beheer organisaties
admin_panel=Website administratie
admin_panel=Site beheer
account_settings=Accountinstellingen
settings=Instellingen
your_profile=Profiel
@ -66,12 +66,12 @@ your_starred=Favoriet
your_settings=Instellingen
all=Alles
sources=Bronnen
sources=Broncode
mirrors=Mirrors
collaborative=Samenwerkend
collaborative=Samenwerkende
forks=Forks
activities=Activiteiten
activities=Activiteit
pull_requests=Pull requests
issues=Issues
milestones=Mijlpalen
@ -83,7 +83,7 @@ add=Toevoegen
add_all=Alles toevoegen
remove=Verwijder
remove_all=Alles verwijderen
edit=Bewerk
edit=Wijzig
enabled=Ingeschakeld
disabled=Uitgeschakeld
@ -115,8 +115,8 @@ concept_user_organization=Organisatie
name=Naam
sign_in_with_provider = Log in met %s
tracked_time_summary = Overzicht van geregistreerde tijd op basis van filters van probleemlijst
sign_in_with_provider = Aanmelden met %s
tracked_time_summary = Overzicht van geregistreerde tijd op basis van filters van issuelijst
enable_javascript = Deze website vereist JavaScript.
retry = Probeer opnieuw
rerun_all = Alle taken opnieuw uitvoeren
@ -140,9 +140,9 @@ confirm_delete_selected = Bevestigen om alle geselecteerde items te verwijderen?
copy_type_unsupported = Dit bestandstype kan niet worden gekopieerd
pin = Vastpinnen
unpin = Ontpinnen
remove_label_str = Verwijder punt "%s"
remove_label_str = Verwijder item "%s"
confirm_delete_artifact = Weet u zeker dat u het artefact "%s" wilt verwijderen?
toggle_menu = Menu schakelen
toggle_menu = Menu aan/uit
filter.clear = Filter wissen
filter.is_archived = Gearchiveerd
filter.is_fork = Forks
@ -159,7 +159,7 @@ more_items = Meer items
invalid_data = Ongeldige data: %v
copy_generic = Kopieer naar klembord
test = Test
error413 = U heeft al uw quotum opgebruikt.
error413 = U heeft uw hele quotum gebruikt.
new_migrate.title = Nieuwe migratie
new_org.title = Nieuwe organisatie
new_repo.link = Nieuwe repository
@ -1254,7 +1254,7 @@ tags=Labels
issues=Issues
pulls=Pull requests
project_board=Projecten
packages=Paketten
packages=Pakketten
labels=Labels
org_labels_desc=Organisatielabel dat gebruikt kan worden met <strong>alle repositories</strong> onder deze organisatie
org_labels_desc_manage=beheren
@ -2948,7 +2948,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.can_create_org_repo=Maak repositories
teams.can_create_org_repo_helper=Leden kunnen nieuwe repositories aanmaken in de organisatie. De maker krijgt beheerder toegang tot de nieuwe repository.
teams.read_access=Gelezen
@ -3945,6 +3945,8 @@ runs.no_workflows.help_write_access = Weet je niet hoe je moet beginnen met Forg
variables.not_found = De variabele kon niet gevonden worden.
[projects]
type-1.display_name = Individueel project
type-2.display_name = Repository project

View file

@ -29,8 +29,8 @@ password=Hasło
access_token=Token dostępu
re_type=Potwierdź hasło
captcha=CAPTCHA
twofa=Autoryzacja dwuskładnikowa
twofa_scratch=Kod jednorazowy weryfikacji dwuetapowej
twofa=Uwierzytelnianie dwuskładnikowe
twofa_scratch=Kod jednorazowy uwierzytelniania dwuskładnikowego
passcode=Kod dostępu
webauthn_insert_key=Podłącz swój klucz bezpieczeństwa
@ -172,17 +172,17 @@ copy_path = Skopiuj ścieżkę
[aria]
navbar = Pasek nawigacji
footer = Stopka
footer.software = O oprogramowaniu
footer.software = O tym oprogramowaniu
footer.links = Linki
[heatmap]
contributions_format = {contributions} w dniu {month} {day}, {year}
contributions_format = {contributions} w dniu {day} {month} {year}
less = Mniej
more = Więcej
number_of_contributions_in_the_last_12_months = %s kontrybucji w ciągu ostatnich 12 miesięcy
contributions_zero = Brak kontrybucji
contributions_one = Wkład
contributions_few = Wkłady
contributions_one = kontrybucja
contributions_few = kontrybucji
[editor]
buttons.heading.tooltip = Dodaj nagłówek
@ -197,8 +197,8 @@ buttons.list.task.tooltip = Dodaj listę zadań
buttons.ref.tooltip = Dodaj odniesienie do zgłoszenia lub pull requestu
buttons.mention.tooltip = Dodaj wzmiankę o użytkowniku lub zespole
buttons.switch_to_legacy.tooltip = Zamiast tego użyj starego edytora
buttons.disable_monospace_font = Wyłącz czcionkę monospace
buttons.enable_monospace_font = Włącz czcionkę monospace
buttons.disable_monospace_font = Wyłącz czcionkę o stałej szerokości
buttons.enable_monospace_font = Włącz czcionkę o stałej szerokości
buttons.indent.tooltip = Zagnieźdź elementy o jeden poziom
buttons.new_table.tooltip = Dodaj tabelę
table_modal.header = Dodaj tabelę
@ -258,7 +258,7 @@ err_empty_db_path=Ścieżka do bazy danych SQLite3 nie może być pusta.
no_admin_and_disable_registration=Nie możesz wyłączyć możliwości samodzielnej rejestracji kont użytkowników bez stworzenia konta administratora.
err_empty_admin_password=Hasło administratora nie może być puste.
err_empty_admin_email=Pole adresu e-mail administratora nie może być puste.
err_admin_name_is_reserved=Nazwa użytkownika administratora jest nieprawidłowa, pseudonim jest zarezerwowany
err_admin_name_is_reserved=Nazwa użytkownika administratora jest nieprawidłowa, nazwa użytkownika jest zarezerwowana
err_admin_name_pattern_not_allowed=Nazwa użytkownika administratora jest nieprawidłowa, pseudonim zawiera zastrzeżone znaki
err_admin_name_is_invalid=Nazwa użytkownika administratora jest nieprawidłowa
@ -331,12 +331,12 @@ default_keep_email_private.description=Domyślnie włącz ukrywanie adresu e-mai
default_allow_create_organization=Domyślne zezwolenie na tworzenie organizacji
default_allow_create_organization.description=Domyślnie zezwalaj nowym użytkownikom na tworzenie organizacji. Gdy ta opcja jest wyłączona, administrator będzie musiał przyznać uprawnienia do tworzenia organizacji nowym użytkownikom.
default_enable_timetracking=Domyślnie włącz śledzenie czasu
default_enable_timetracking.description=Domyślne zezwól na korzystanie z funkcji śledzenia czasu dla nowych repozytoriów.
no_reply_address=Ukryta domena e-mail
default_enable_timetracking.description=Domyślnie zezwól na korzystanie z funkcji śledzenia czasu dla nowych repozytoriów.
no_reply_address=Domena ukrytych e-maili
no_reply_address_helper=Nazwa domeny dla użytkowników z ukrytym adresem e-mail. Przykładowo, użytkownik "jan" będzie zalogowany na Git'cie jako "jan@noreply.example.org", jeśli domena ukrytego adresu e-mail jest ustawiona na "noreply.example.org".
password_algorithm=Algorytm hashowania haseł
invalid_db_table = Tabela bazy danych "%s" jest nieprawidłowa: %v
allow_dots_in_usernames = Zezwolenie użytkownikom na używanie kropek w nazwach użytkowników. Nie ma to wpływu na istniejące konta.
allow_dots_in_usernames = Zezwól użytkownikom na używanie kropek w nazwach użytkowników. Nie ma to wpływu na istniejące konta.
invalid_password_algorithm = Nieprawidłowy algorytm hashowania haseł
smtp_from_invalid = Adres "Wyślij e-mail jako" jest nieprawidłowy
env_config_keys_prompt = Następujące zmienne środowiskowe zostaną również zastosowane do pliku konfiguracyjnego:
@ -352,7 +352,7 @@ app_slogan = Slogan instancji
app_slogan_helper = Wprowadź tutaj slogan swojej instancji. Pozostaw puste, aby wyłączyć.
[home]
uname_holder=Nazwa użytkownika lub adres email
uname_holder=Nazwa użytkownika lub adres e-mail
password_holder=Hasło
switch_dashboard_context=Przełącz kontekst pulpitu
my_repos=Repozytoria
@ -409,10 +409,10 @@ remember_me=Zapamiętaj to urządzenie
forgot_password_title=Zapomniałem hasła
forgot_password=Zapomniałeś hasła?
sign_up_now=Potrzebujesz konta? Zarejestruj się teraz.
confirmation_mail_sent_prompt=Nowa wiadomość e-mail z potwierdzeniem została wysłana do <b>%s</b>. Aby zakończyć proces rejestracji, sprawdź swoją skrzynkę odbiorczą i kliknij podany link w ciągu najbliższych %s. Jeśli wiadomość email jest nieważna, możesz się zalogować i poprosić o wysłanie kolejnej wiadomości email z potwierdzeniem na inny adres.
confirmation_mail_sent_prompt=Nowa wiadomość e-mail z potwierdzeniem została wysłana do <b>%s</b>. Aby zakończyć proces rejestracji, sprawdź swoją skrzynkę odbiorczą i kliknij podany link w ciągu najbliższych %s. Jeśli wiadomość e-mail jest nieważna, możesz się zalogować i poprosić o wysłanie kolejnej wiadomości e-mail z potwierdzeniem na inny adres.
must_change_password=Zaktualizuj swoje hasło
allow_password_change=Użytkownik musi zmienić hasło (zalecane)
reset_password_mail_sent_prompt=Wiadomość email z potwierdzeniem została wysłana do <b>%s</b>. Aby zakończyć proces odzyskiwania konta, sprawdź swoją skrzynkę odbiorczą i kliknij podany link w ciągu najbliższych %s.
reset_password_mail_sent_prompt=Wiadomość e-mail z potwierdzeniem została wysłana do <b>%s</b>. Aby zakończyć proces odzyskiwania konta, sprawdź swoją skrzynkę odbiorczą i kliknij podany link w ciągu najbliższych %s.
active_your_account=Aktywuj swoje konto
account_activated=Konto zostało aktywowane
prohibit_login=Konto jest zawieszone
@ -420,7 +420,7 @@ resent_limit_prompt=Zażądano już wiadomości aktywacyjnej. Zaczekaj 3 minuty
has_unconfirmed_mail=Witaj, %s, masz niepotwierdzony adres e-mail (<b>%s</b>). 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=Adres e-mail nie jest powiązany z żadnym kontem.
send_reset_mail=Wyślij email odzyskiwania
send_reset_mail=Wyślij e-mail odzyskiwania
reset_password=Odzyskiwanie konta
invalid_code=Twój kod potwierdzający jest nieprawidłowy lub wygasł.
reset_password_helper=Odzyskaj konto
@ -468,7 +468,7 @@ password_pwned = Wybrane hasło znajduje się na <a target="_blank" rel="noopene
last_admin = Nie można usunąć ostatniego administratora. Musi istnieć co najmniej jeden administrator.
tab_signin = Zaloguj
oauth.signin.error = Wystąpił błąd podczas przetwarzania żądania autoryzacji. Jeśli ten błąd nadal występuje, skontaktuj się z administratorem witryny.
change_unconfirmed_email_error = Nie udało się zmienić adresu email: %v
change_unconfirmed_email_error = Nie udało się zmienić adresu e-mail: %v
invalid_code_forgot_password = Twój kod potwierdzający jest niepoprawny lub wygasł. Naciśnij <a href="%s">tutaj</a>, aby rozpocząć nową sesję.
invalid_password = Twoje hasło nie zgadza się z hasłem, które zostało użyte do stworzenia konta.
reset_password_wrong_user = Jesteś zalogowany(-a) jako %s, ale link odzyskujący jest dla %s
@ -548,7 +548,7 @@ issue.action.reject = <b>@%[1]s</b> poprosił o zmiany w tym pull requeście.
issue.action.review_dismissed = <b>@%[1]s</b> odrzucił ostatnią analizę od %[2]s dla tego pull requesta.
team_invite.subject = %[1]s zaprosił cię do dołączenia do organizacji %[2]s
primary_mail_change.subject = Twój główny mail został zmieniony
primary_mail_change.text_1 = Główny mail twojego konta został właśnie zmieniony na %[1]s. To oznacza ze ten adres email nie będzie już otrzymywał powiadomień dla twojego konta.
primary_mail_change.text_1 = Główny mail twojego konta został właśnie zmieniony na %[1]s. To oznacza ze ten adres e-mail nie będzie już otrzymywał powiadomień dla twojego konta.
totp_disabled.subject = TOTP został wyłączony
password_change.subject = Twoje hasło zostało zmienione
password_change.text_1 = Hasło do twojego konta zostało właśnie zmienione.
@ -558,7 +558,7 @@ account_security_caution.text_2 = Jeśli to nie byłeś(-aś) Ty, Twoje konto pa
account_security_caution.text_1 = Jeśli to byłeś(-aś) ty, możesz bezpiecznie zignorować tę wiadomość.
totp_enrolled.subject = Aktywowałeś(-aś) TOTP jako metodę 2FA
totp_enrolled.text_1.no_webauthn = Właśnie włączyłeś(-aś) TOTP dla swojego konta. Oznacza to, że dla wszystkich przyszłych logowań do konta musisz używać TOTP jako metody 2FA.
team_invite.text_3 = Uwaga: To zaproszenie było przeznaczone dla %[1]s. Jeśli nie spodziewałeś(-aś) się tego zaproszenia, możesz zignorować ten email.
team_invite.text_3 = Uwaga: To zaproszenie było przeznaczone dla %[1]s. Jeśli nie spodziewałeś(-aś) się tego zaproszenia, możesz zignorować ten e-mail.
totp_disabled.text_1 = Jednorazowe hasło czasowe (TOTP) zostało właśnie wyłączone na twoim koncie.
totp_disabled.no_2fa = Nie ma już skonfigurowanych innych metod 2FA, co oznacza, że nie jest już konieczne logowanie się do konta za pomocą 2FA.
removed_security_key.subject = Klucz bezpieczeństwa został usunięty
@ -674,12 +674,14 @@ admin_cannot_delete_self = Nie możesz usunąć siebie, gdy jesteś administrato
include_error = ` musi zawierać podciąg znaków "%s".`
email_domain_is_not_allowed = Domena adresu email użytkownika <b>%s</b> konfliktuje z EMAIL_DOMAIN_ALLOWLIST lub EMAIL_DOMAIN_BLOCKLIST. Upewnij się, że ustawiony adres email jest poprawny.
email_domain_is_not_allowed = Domena adresu e-mail użytkownika <b>%s</b> konfliktuje z EMAIL_DOMAIN_ALLOWLIST lub EMAIL_DOMAIN_BLOCKLIST. Upewnij się, że ustawiony adres e-mail jest poprawny.
unsupported_login_type = Ta forma logowania nie wspiera możliwości usunięcia konta.
still_own_packages = Twoje konto jest właścicielem jednego lub więcej pakietów, musisz je najpierw usunąć.
org_still_own_packages = Ta organizacja nadal jest właścicielem jednego lub wielu pakietów, musisz je najpierw usunąć.
required_prefix = Pole musi zaczynać się od "%s"
invalid_ssh_principal = Nieprawidłowy podmiot: %s
[user]
change_avatar=Zmień swój awatar…
repositories=Repozytoria
@ -785,10 +787,10 @@ primary=Podstawowy
activated=Aktywowany
requires_activation=Wymaga aktywacji
primary_email=Ustaw jako podstawowy
activate_email=Wyślij email aktywacyjny
activate_email=Wyślij e-mail aktywacyjny
activations_pending=Oczekujące aktywacje
delete_email=Usuń
email_deletion=Usuń adres email
email_deletion=Usuń adres e-mail
email_deletion_desc=Adres e-mail i powiązane informacje zostaną usunięte z Twojego konta. Commity za pomocą tego adresu e-mail pozostaną niezmienione. Kontynuować?
email_deletion_success=Adres e-mail został usunięty.
theme_update_success=Twój motyw został zaktualizowany.
@ -1002,10 +1004,10 @@ keep_activity_private.description = Twoja <a href="%s">aktywność publiczna</a>
uploaded_avatar_is_too_big = Rozmiar wgranego pliku (%d KiB) przekraczana rozmiar maksymalny (%d KiB).
update_user_avatar_success = Awatar użytkownika został zaktualizowany.
retype_new_password = Potwierdź nowe hasło
email_desc = Twój główny adres email będzie użyty dla powiadomień, odzyskiwania hasła i, chyba że jest ukryty, operacji Git w przeglądarce.
can_not_add_email_activations_pending = Aktywacja w toku, spróbuj ponownie w ciągu kolejnych kilku minut jeżeli chcesz dodać nowy email.
add_email_confirmation_sent = Email z potwierdzeniem został wysłany do "%s". By potwierdzić swój adres email, proszę sprawdź swoją skrzynkę odbiorczą i odwiedź dostarczony link w ciągu %s.
keep_email_private_popup = Twój adres email nie będzie pokazywany na twoim profilu i nie będzie używany jako domyślny dla commitów utworzonych przez interfejs przeglądarki, takich jak wgrywanie plików, edycje, commity scalające. Zamiast tego, specjalny adres %s może zostać użyty do powiązania commitów z twoim kontem. Ta opcja nie wpływa na commity już istniejące.
email_desc = Twój główny adres e-mail będzie użyty dla powiadomień, odzyskiwania hasła i, chyba że jest ukryty, operacji Git w przeglądarce.
can_not_add_email_activations_pending = Aktywacja w toku, spróbuj ponownie w ciągu kolejnych kilku minut jeżeli chcesz dodać nowy e-mail.
add_email_confirmation_sent = E-mail z potwierdzeniem został wysłany do "%s". By potwierdzić swój adres e-mail, proszę sprawdź swoją skrzynkę odbiorczą i odwiedź dostarczony link w ciągu %s.
keep_email_private_popup = Twój adres e-mail nie będzie pokazywany na twoim profilu i nie będzie używany jako domyślny dla commitów utworzonych przez interfejs przeglądarki, takich jak wgrywanie plików, edycje, commity scalające. Zamiast tego, specjalny adres %s może zostać użyty do powiązania commitów z twoim kontem. Ta opcja nie wpływa na commity już istniejące.
key_content_ssh_placeholder = Rozpoczyna się z "ssh-ed25519", "ssh-rsa", "ecdsa-sha2-nistp256", "ecdsa-sha2-nistp384", "ecdsa-sha2-nistp521", "sk-ecdsa-sha2-nistp256@openssh.com", lub "sk-ssh-ed25519@openssh.com"
verify_gpg_key_success = Klucz GPG "%s" został zweryfikowany.
ssh_invalid_token_signature = Zapewniony klucz SSH, sygnatura lub token nie zgadzają się lub token jest przedawniony.
@ -1049,6 +1051,12 @@ blocked_since = Zablokowany od %s
user_unblock_success = Użytkownik odblokowany pomyślnie.
user_block_success = Użytkownik zablokowany pomyślnie.
manage_ssh_principals = Zarządzaj podmiotami certyfikatu SSH
principal_desc = Te podmioty certyfikatu SSH będą powiązane z twoim kontem i pozwolą na pełen dostęp do twoich repozytoriów.
add_new_principal = Dodaj podmiot
add_principal_success = Podmiot certyfikatu SSH "%s" został dodany.
principal_state_desc = Ten podmiot nie był używany w ciągu ostatnich 7 dni
[repo]
owner=Właściciel
owner_helper=Niektóre organizacje mogą nie pojawiać się w liście ze względu na limit maksymalnej liczby repozytoriów.
@ -2395,7 +2403,7 @@ editor.upload_files_to_dir = Wgraj pliki do "%s"
editor.cannot_commit_to_protected_branch = Nie można dodać commita do gałęzi chronionej "%s".
editor.cherry_pick = Cherry-pick %s na:
editor.revert = Przywróć %s na:
editor.commit_email = Email commitu
editor.commit_email = E-mail commitu
commits.no_commits = Brak wspólnych commitów. "%s" i "%s" mają zupełnie inne historie.
commits.nothing_to_compare = Te gałęzie są takie same.
commits.search.tooltip = Możesz rozpocząć słowa kluczowe z "author:", "committer:","after:", lub "before:", np. "revert author:Alice before:2019-01-13".
@ -2840,6 +2848,10 @@ find_file.go_to_file = Szukaj pliku
find_file.no_matching = Nie znaleziono pasujących plików
error.broken_git_hook = Hooki Git tego repozytorium zdają się być zepsute. Proszę sprawdź jak je naprawić w <a target="_blank" rel="noreferrer" href="%s">dokumentacji</a>, a następnie wypchnij parę commitów by odświeżyć stan.
settings.matrix.access_token_helper = Zalecane jest skonfigurowanie dedykowany konta Matrix. Token dostępu może zostać pozyskany z przeglądarkowego klienta Element (w zakładce incognito/prywatnej) > Menu użytkownika (lewy górny róg) > Wszystkie ustawienia > Pomoc i O aplikacji > Zaawansowane > Token dostępu (zaraz pod URL Serwera domowego). Zamknij zakładkę incognito/prywatną (wylogowanie się unieważniłoby ten token).
settings.matrix.room_id_helper = ID Pokoju może być pozyskane z klienta przeglądarkowego Element > Ustawienia pokoju > Zaawansowane > Wewnętrzne ID pokoju. Przykład: %s.
tag.ahead.target = do %s od tego tagu
[graphs]
component_loading = Wczytywanie %s...
component_loading_failed = Nie można wczytać %s
@ -2961,7 +2973,7 @@ open_dashboard = Otwórz pulpit
follow_blocked_user = Nie możesz obserwować tej organizacji ponieważ ta organizacja ciebie zablokowała.
form.name_reserved = Nazwa organizacji "%s" jest zarezerwowana.
form.name_pattern_not_allowed = Wzór "%s" nie jest dozwolony w nazwie organizacji.
settings.email = Email kontaktowy
settings.email = E-mail kontaktowy
settings.visibility.limited = Ograniczona (widoczne tylko dla zalogowanych użytkowników)
settings.change_orgname_prompt = Uwaga: Zmiana nazwy organizacji zmieni również URL twojej organizacji i udostępni starą nazwę.
members.remove.detail = Usunąć %[1]s z %[2]s?
@ -2983,7 +2995,7 @@ organizations=Organizacje
repositories=Repozytoria
hooks=Weebhook'i
authentication=Źródła uwierzytelniania
emails=Emaile użytkowników
emails=E-maile użytkowników
config=Konfiguracja
notices=Powiadomienia systemu
monitor=Monitorowanie
@ -3022,7 +3034,7 @@ dashboard.archive_cleanup=Usuń stare archiwa repozytoriów
dashboard.deleted_branches_cleanup=Wyczyść usunięte galęzie
dashboard.git_gc_repos=Wykonaj zbieranie śmieci ze wszystkich repozytoriów
dashboard.resync_all_sshkeys=Zaktualizuj plik '.ssh/authorized_keys' z kluczami SSH Forgejo.
dashboard.resync_all_sshprincipals=Zaktualizuj plik '.ssh/authorized_keys' z kluczami SSH Forgejo.
dashboard.resync_all_sshprincipals=Zaktualizuj plik ".ssh/authorized_principals" z podmiotami SSH Forgejo.
dashboard.resync_all_hooks=Ponownie synchronizuj hooki pre-receive, update i post-receive we wszystkich repozytoriach
dashboard.reinit_missing_repos=Ponownie zainicjalizuj wszystkie brakujące repozytoria Git, dla których istnieją rekordy
dashboard.sync_external_users=Synchronizuj zewnętrzne dane użytkownika
@ -3099,7 +3111,7 @@ users.list_status_filter.is_active=Aktywne
users.list_status_filter.is_admin=Administrator
users.list_status_filter.is_restricted=Ograniczone
emails.email_manage_panel=Zarządzanie adresami email
emails.email_manage_panel=Zarządzanie adresami e-mail
emails.primary=Podstawowy
emails.activated=Aktywowany
emails.filter_sort.email=E-mail
@ -3164,7 +3176,7 @@ auths.attribute_username=Atrybut nazwy użytkownika
auths.attribute_username_placeholder=Pozostaw puste, aby użyć nazwy użytkownika wprowadzonej w Forgejo.
auths.attribute_name=Atrybut imienia
auths.attribute_surname=Atrybut nazwiska
auths.attribute_mail=Atrybut adresu email
auths.attribute_mail=Atrybut adresu e-mail
auths.attribute_ssh_public_key=Atrybut publicznego klucza SSH
auths.attributes_in_bind=Pobierz atrybuty w kontekście Bind DN
auths.allow_deactivate_all=Zezwól na pusty wynik wyszukiwania, aby zdezaktywować wszystkich użytkowników
@ -3183,7 +3195,7 @@ auths.allowed_domains_helper=Pozostaw puste, aby zezwolić na wszystkie domeny.
auths.skip_tls_verify=Pomiń weryfikację protokołu TLS
auths.disable_helo=Wyłącz HELO
auths.pam_service_name=Nazwa usługi PAM
auths.pam_email_domain=Domena email PAM (opcjonalna)
auths.pam_email_domain=Domena e-mail PAM (opcjonalna)
auths.oauth2_provider=Dostawca OAuth2
auths.oauth2_icon_url=Adres URL Ikony
auths.oauth2_clientID=ID klienta (klucz)
@ -3283,16 +3295,16 @@ config.enable_openid_signup=Włącz samodzielną rejestrację za pomocą OpenID
config.enable_openid_signin=Włącz logowanie za pomocą OpenID
config.show_registration_button=Pokazuj przycisk rejestracji
config.require_sign_in_view=Wymagaj zalogowania w celu wyświetlania stron
config.mail_notify=Włącz powiadomienia email
config.mail_notify=Włącz powiadomienia e-mail
config.enable_captcha=Włącz CAPTCHA
config.active_code_lives=Ważność kodów aktywacyjnych
config.reset_password_code_lives=Czas wygaśnięcia kodu przywracania konta
config.default_keep_email_private=Domyślne ukrywanie adresów email
config.default_keep_email_private=Domyślne ukrywanie adresów e-mail
config.default_allow_create_organization=Domyślnie zezwalaj na tworzenie organizacji
config.enable_timetracking=Włącz śledzenie czasu
config.default_enable_timetracking=Domyślnie włącz śledzenie czasu
config.default_allow_only_contributors_to_track_time=Zezwalaj wyłącznie współpracownikom na śledzenie czasu
config.no_reply_address=Ukryta domena email
config.no_reply_address=Domena ukrytych e-maili
config.default_visibility_organization=Domyślna widoczność dla nowych organizacji
config.default_enable_dependencies=Domyślne włączanie zależności zgłoszeń
@ -3434,7 +3446,7 @@ dashboard.sync_tag.started = Synchronizacja tagu rozpoczęta
dashboard.rebuild_issue_indexer = Przebuduj indekser zgłoszeń
users.reserved = Zarezerwowane
users.new_success = Konto użytkownika "%s" zostało utworzone.
users.activated.description = Zakończenie weryfikacji email. Właściciel nieaktywowanego konta nie będzie mógł się zalogować dopóki weryfikacja email nie została zakończona.
users.activated.description = Zakończenie weryfikacji e-mail. Właściciel nieaktywowanego konta nie będzie mógł się zalogować dopóki weryfikacja e-mail nie została zakończona.
users.block.description = Zablokuj użytkownikowi możliwości interakcji z tym serwisem przez jego konto i zabroń logowania się.
users.admin.description = Nadaj temu użytkownikowi pełen dostęp do wszystkich funkcji administracyjnych dostępnych przez interfejs przeglądarkowy lub API.
users.restricted.description = Zezwól tylko na interakcje z repozytoriami i organizacjami do których ten użytkownik został dodany jako współpracownik. To uniemożliwia dostęp do publicznych repozytoriów na tej instancji.
@ -3451,18 +3463,90 @@ users.list_status_filter.not_prohibit_login = Zezwól na logowanie
users.list_status_filter.is_2fa_enabled = 2FA włączone
users.list_status_filter.not_2fa_enabled = 2FA wyłączone
users.details = Szczegóły użytkownika
emails.change_email_text = Czy jesteś pewien(-na), że chcesz zaktualizować ten adres email?
emails.delete = Usuń Email
emails.delete_desc = Czy jesteś pewien(-na), że chcesz usunąć ten adres email?
emails.deletion_success = Adres email został usunięty.
emails.delete_primary_email_error = Nie możesz usunąć głównego adresu email.
emails.change_email_text = Czy jesteś pewien(-na), że chcesz zaktualizować ten adres e-mail?
emails.delete = Usuń E-mail
emails.delete_desc = Czy jesteś pewien(-na), że chcesz usunąć ten adres e-mail?
emails.deletion_success = Adres e-mail został usunięty.
emails.delete_primary_email_error = Nie możesz usunąć głównego adresu e-mail.
repos.lfs_size = Wielkość LFS
packages.package_manage_panel = Zarządzaj pakietami
packages.total_size = Wielkość całkowita: %s
packages.unreferenced_size = Nieodniesiona wielkość: %s
packages.cleanup = Wyczyść przedawnione dane
packages.cleanup.success = Pomyślnie wyczyszczono przedawnione dane
defaulthooks.desc = Webhooki automatycznie wykonują żądania HTTP POST do serwera kiedy pewne wydarzenia Forgejo zostają wywołane. Webhooki zdefiniowane tutaj są domyślne i będą kopiowane do wszystkich nowych repozytoriów. Przeczytaj więcej w <a target="_blank" rel="noopener" href="%s">przewoniku webhooków</a>.
defaulthooks.desc = Webhooki automatycznie wykonują żądania HTTP POST do serwera kiedy pewne wydarzenia Forgejo zostają wywołane. Webhooki zdefiniowane tutaj są domyślne i będą kopiowane do wszystkich nowych repozytoriów. Przeczytaj więcej w <a target="_blank" rel="noopener" href="%s">przewodniku webhooków</a>.
self_check = Autoweryfikacja
dashboard.update_migration_poster_id = Aktualizuj ID autora migracji
dashboard.update_checker = Sprawdzanie aktualizacji
dashboard.start_schedule_tasks = Uruchomienie zaplanowanych zadań akcji
systemhooks.desc = Webhooki automatycznie tworzą zapytania HTTP POST do serwera, kiedy następują pewne zdarzenia w Forgejo. Zdefiniowane tutaj webhooki będą oddziaływać na wszystkie repozytoria tego systemu, zatem proszę rozważ ich możliwy wpływ na wydajność. Przeczytaj o tym więcej w <a target="_blank" rel="noopener" href="%s">przewodniku o webhookach</a>.
auths.attribute_avatar = Atrybut awatara
auths.default_domain_name = Domyślna nazwa domeny używana do adresu e-mail
auths.verify_group_membership = Weryfikuj przynależność do grupy w LDAP (pozostaw filtr pusty by pominąć)
auths.group_search_base = Podstawowy DN do wyszukiwania grup
auths.group_attribute_list_users = Atrybut grupy zawierający listę użytkowników
auths.user_attribute_in_group = Atrybut użytkownika w grupie
auths.map_group_to_team = Odwzorowywuj grupy LDAP na zespoły Organizacji (pozostaw pole puste by pominąć)
auths.map_group_to_team_removal = Usuń użytkowników z synchronizowanych zespołów jeżeli użytkownik nie należy do odpowiadającej grupy LDAP
auths.enable_ldap_groups = Włącz grupy LDAP
auths.force_smtps = Wymuś SMTPS
auths.force_smtps_helper = SMTPS jest zawsze używane na porcie 465. Zaznacz tę opcję by wymusić SMTPS na innych portach. (W przeciwnym wypadku dla innych portów zostanie użyte STARTTLS gdy jest wspierane przez hosta.)
auths.helo_hostname = Nazwa hosta HELO
auths.helo_hostname_helper = Nazwa hosta wysyłana z HELO. Aby wysłać bieżącą nazwę hosta, pozostaw puste.
auths.skip_local_two_fa_helper = Pozostawienie tej opcji jako odznaczonej oznacza, że użytkownicy lokalni z aktywowanym 2FA nadal będą musieli przejść 2FA by móc się zalogować
auths.oauth2_tenant = Dzierżawa
auths.oauth2_scopes = Dodatkowe zakresy
auths.oauth2_required_claim_name = Nazwa wymaganego oświadczenia
auths.oauth2_required_claim_name_helper = Ustaw tę nazwę by ograniczyć logowanie z tego źródła dla użytkowników z oświadczeniem o tej nazwie
auths.oauth2_required_claim_value = Wymagana wartość oświadczenia
auths.oauth2_required_claim_value_helper = Ustaw tę nazwę by ograniczyć logowanie z tego źródła dla użytkowników z oświadczeniem o tej nazwie i wartości
auths.oauth2_group_claim_name = Nazwa oświadczenia określającego nazwy grup dla tego źródła. (Opcjonalne)
auths.oauth2_admin_group = Wartość oświadczenia grupy dla administratorów. (Opcjonalne - wymaga nazwy oświadczenia powyżej)
auths.oauth2_restricted_group = Wartość oświadczenia grupy dla użytkowników ograniczonych. (Opcjonalne - wymaga nazwy oświadczenia powyżej)
auths.oauth2_map_group_to_team = Odwzorowywuj grupy oświadczenia na zespoły organizacji (Opcjonalne - wymaga nazwy oświadczenia powyżej)
auths.oauth2_map_group_to_team_removal = Usuń użytkowników z synchronizowanych zespołów jeżeli użytkownik nie należy do odpowiadającej grupy.
auths.tips.gmail_settings = Ustawienia Gmail:
auths.tips.oauth2.general.tip = Podczas rejestrowania nowego uwierzytelniania OAuth2, callback/przekierowanie URL powinno być:
auths.tip.gitlab_new = Zarejestruj nową aplikację na %s
auths.tip.gitea = Zarejestruj nową aplikację OAuth2. Przewodnik można znaleźć na %s
auths.new_success = Uwierzytelnianie "%s" została dodana.
auths.login_source_exist = Źródło uwierzytelniania "%s" już istnieje.
auths.unable_to_initialize_openid = Nie można zainicjalizować Dostawcy Uwierzytelniania OpenID Connect: %s
auths.invalid_openIdConnectAutoDiscoveryURL = Niepoprawny URL Auto Discovery (musi to być poprawny URL rozpoczynający się od http:// lub https://)
config.app_slogan = Slogan instancji
config.domain = Domena serwera
config.app_data_path = Ścieżka danych aplikacji
config.ssh_domain = Domena serwera SSH
config.allow_dots_in_usernames = Zezwól użytkownikom na użycie kropek w ich nazwach użytkowników. Nie wpływa na już istniejące konta.
config.mailer_config = Konfiguracja Mailer
config.mailer_enable_helo = Włącz HELO
config.mailer_smtp_addr = Host SMTP
config.mailer_use_dummy = Testowa
config.test_mail_failed = Nie udało się wysłać testowego e-maila do "%s": %v
config.test_mail_sent = Testowy e-mail został wysłany do "%s".
config.cache_test = Przetestuj Pamięć Podręczną
config.cache_test_failed = Nie udało się zbadać pamięci podręcznej: %v.
config.cache_test_slow = Test pamięci podręcznej zakończony powodzeniem, jednak odpowiedź była wolna: %s.
config.cache_test_succeeded = Test pamięci podręcznej zakończony powodzeniem, otrzymano odpowiedź w ciągu %s.
config.open_with_editor_app_help = Edytory dostępne w menu klonowania "Otwórz przy pomocy". Jeżeli pozostawione puste, ustawienie domyślne będzie użyte. Rozwiń by zobaczyć ustawienie domyślne.
config.logger_name_fmt = Dziennik: %s
config.access_log_template = Szablon dziennika dostępu
config.set_setting_failed = Ustawienie %s nie powiodło się
monitor.stacktrace = Stacktrace
monitor.processes_count = %d Procesów
monitor.download_diagnosis_report = Pobierz raport diagnostyczny
monitor.queue.activeworkers = Aktywne procesy pracujące
monitor.queue.numberinqueue = Liczba w kolejce
monitor.queue.review_add = Sprawdź / dodaj procesy pracujące
monitor.queue.settings.desc = Pule rosną dynamicznie w odpowiedzi na blokadę kolejki procesów pracujących.
monitor.queue.settings.remove_all_items = Usuń wszystkie
monitor.queue.settings.remove_all_items_done = Wszystkie elementy w kolejce zostały usunięte.
self_check.no_problem_found = Nie znaleziono jeszcze żadnych problemów.
self_check.database_collation_mismatch = Wymagaj by baza danych korzystała z układu sortowania: %s
self_check.database_collation_case_insensitive = Baza danych korzysta z układu sortowania %s, dla którego nie ma znaczenia wielkość liter. Mimo, że Forgejo mógłoby działać z tym ustawieniem poprawnie, mogą wydarzyć się rzadkie przypadki, które nie będą działać zgodnie z oczekiwaniami.
self_check.database_inconsistent_collation_columns = Baza danych korzysta z układu sortowania %s, ale te kolumny korzystają z niedopasowanych układów sortowania. Może to spowodować nieoczekiwane problemy.
self_check.database_fix_mysql = Dla użytkowników MySQL/MariaDB, możesz użyć polecenia "forgejo doctor convert" by naprawić problemy układu sortowania. Możesz też naprawić problem przez ręczne użycie kwerend SQL "ALTER ... COLLATE ...".
[action]
create_repo=tworzy repozytorium <a href="%s">%s</a>
@ -3476,6 +3560,28 @@ compare_commits_general=Porównaj commity
mirror_sync_delete=synchronizuje i usuwa odwołanie <code>%[2]s</code> w <a href="%[1]s">%[3]s</a> z kopii lustrzanej
review_dismissed_reason=Powód:
commit_repo = wypchnął(-ęła) do <a href="%[2]s">%[3]s</a> na <a href="%[1]s">%[4]s</a>
create_issue = `otworzył(a) zgłoszenie <a href="%[1]s">%[3]s#%[2]s</a>`
close_issue = `zamknął(-ęła) zgłoszenie <a href="%[1]s">%[3]s#%[2]s</a>`
reopen_issue = `otworzył(a) ponownie zgłoszenie <a href="%[1]s">%[3]s#%[2]s</a>`
create_pull_request = `utworzył(a) pull request <a href="%[1]s">%[3]s#%[2]s</a>`
close_pull_request = `zamknął(-ęła) pull request <a href="%[1]s">%[3]s#%[2]s</a>`
reopen_pull_request = `otworzył(a) ponownie pull request <a href="%[1]s">%[3]s#%[2]s</a>`
comment_issue = `skomentował(a) zgłoszenie <a href="%[1]s">%[3]s#%[2]s</a>`
comment_pull = `skomentował(a) pull request <a href="%[1]s">%[3]s#%[2]s</a>`
merge_pull_request = `scalił(a) pull request <a href="%[1]s">%[3]s#%[2]s</a>`
auto_merge_pull_request = `automatycznie scalił(a) pull request <a href="%[1]s">%[3]s#%[2]s</a>`
push_tag = wypchnął tag <a href="%[2]s">%[3]s</a> do <a href="%[1]s">%[4]s</a>
mirror_sync_push = zsynchronizował commity do <a href="%[2]s">%[3]s</a> na <a href="%[1]s">%[4]s</a> z kopii lustrzanej
mirror_sync_create = zsynchronizował(a) nowe odniesienie <a href="%[2]s">%[3]s</a> do <a href="%[1]s">%[4]s</a> z kopii lustrzanej
approve_pull_request = `zatwierdził(a) <a href="%[1]s">%[3]s#%[2]s</a>`
reject_pull_request = `zasugerował(a) zmiany dla <a href="%[1]s">%[3]s#%[2]s</a>`
publish_release = `wydał <a href="%[2]s">%[4]s</a> na <a href="%[1]s">%[3]s</a>`
review_dismissed = `odrzucił(a) recenzję od <b>%[4]s</b> dla <a href="%[1]s">%[3]s#%[2]s</a>`
create_branch = utworzył(a) gałąź <a href="%[2]s">%[3]s</a> in <a href="%[1]s">%[4]s</a>
starred_repo = dał(a) gwiazdkę <a href="%[1]s">%[2]s</a>
watched_repo = zaczął(-ęła) obserwować <a href="%[1]s">%[2]s</a>
[tool]
now=teraz
future=przyszły
@ -3514,6 +3620,9 @@ mark_as_unread=Oznacz jak nieprzeczytane
mark_all_as_read=Oznacz wszystkie jako przeczytane
subscriptions = Subskrybcje
watching = Obserwowane
no_subscriptions = Brak subskrypcji
[gpg]
default_key=Podpisano domyślnym kluczem
error.extract_sign=Nie udało się wyłuskać podpisu
@ -3565,6 +3674,144 @@ rpm.repository.architectures = Architektury
owner.settings.chef.keypair.description = Para kluczy jest konieczna do uwierzytelnienia do rejestru Chef. Jeżeli wygenerowałeś(-aś) parę kluczy wcześniej, generowanie nowej pary kluczy porzuci starą parę kluczy.
desc = Zarządzaj pakietami repozytoriów.
empty = Nie ma jeszcze żadnych pakietów.
empty.documentation = Więcej informacji o rejestrze przekietów znajdziesz w <a target="_blank" rel="noopener noreferrer" href="%s">dokumentacji</a>.
empty.repo = Czy wgrałeś pakiet, ale nie jest tutaj wyświetlany? Odwiedź <a href="%[1]s">ustawienia pakietów</a> i powiąż go z tym repozytorium.
registry.documentation = Więcej informacji o rejestrze %s znajdziesz w <a target="_blank" rel="noopener noreferrer" href="%s">dokumentacji</a>.
filter.no_result = Twój filtr nie dał żadnych wyników.
published_by = Opublikowano %[1]s przez <a href="%[2]s">%[3]s</a>
published_by_in = Opublikowano %[1]s przez <a href="%[2]s">%[3]s</a> w <a href="%[4]s"><strong>%[5]s</strong></a>
about = O tym pakiecie
details.project_site = Strona projektu
details.repository_site = Strona repozytorium
details.documentation_site = Strona dokumentacji
assets = Zasoby
versions.view_all = Pokaż wszystkie
alpine.registry = Skonfiguruj ten rejestr dodając url do twojego pliku <code>/etc/apk/repositories</code>:
alpine.registry.key = Pobierz klucz publiczny RSA rejestru do folderu <code>/etc/apk/keys/</code> by zweryfikować podpis indeksu:
alpine.registry.info = Wybierz $branch i $repository z listy poniżej.
alpine.install = By zainstalować ten pakiet, wykonaj następujące polecenie:
alpine.repository = Informacje o repozytorium
arch.pacman.helper.gpg = Dodaj certyfikat zaufania do pacmana:
arch.pacman.repo.multi = %s ma tę samą wersję co w innych dystrybucjach.
arch.pacman.repo.multi.item = Konfiguracja dla %s
arch.pacman.conf = Dodaj serwer z powiązaną dystrybucją i architekturą do <code>/etc/pacman.conf</code> :
arch.pacman.sync = Synchronizuj pakiet przy użyciu pacman:
arch.version.properties = Własności wersji
arch.version.description = Opis
arch.version.provides = Zapewnia
arch.version.groups = Grupa
arch.version.depends = Zależności
arch.version.optdepends = Opcjonalne zależności
arch.version.makedepends = Zależności budowy
arch.version.checkdepends = Zależności weryfikacji
arch.version.conflicts = Konflikty
arch.version.replaces = Zamienia
arch.version.backup = Kopia zapasowa
cargo.registry = Skonfiguruj ten rejestr w pliku konfiguracyjnym Cargo (na przykład <code>~/.cargo/config.toml</code>):
cargo.install = By zainstalować ten pakiet przy użyciu Cargo, wykonaj następujące polecenie:
chef.registry = Skonfiguruj ten rejestr w twoim pliku <code>~/.chef/config.rb</code>:
chef.install = By zainstalować ten pakiet, wykonaj następujące polecenie:
composer.registry = Skonfiguruj ten rejestr w twoim pliku <code>~/.composer/config.json</code>:
composer.install = By zainstalować ten pakiet przy użyciu Composer, wykonaj następujące polecenie:
composer.dependencies.development = Zależności programistyczne
conan.registry = Skonfiguruj ten rejestr z wiersza poleceń:
conan.install = By zainstalować ten pakiet przy użyciu Conan, wykonaj następujące polecenie:
conda.registry = Skonfiguruj ten rejestr jako repozytorium Conda w twoim pliku <code>.condarc</code>:
conda.install = By zainstalować ten pakiet przy użyciu Conda, wykonaj następujące polecenie:
container.images.title = Obrazy
container.details.type = Rodzaj obrazu
container.pull = Pobierz obraz z wiersza poleceń:
container.digest = Digest
container.multi_arch = OS / Architektura
container.layers = Warstwy obrazu
cran.registry = Skonfiguruj ten rejestr w twoim pliku <code>Rprofile.site</code>:
cran.install = By zainstalować ten pakiet, wykonaj następujące polecenie:
debian.registry = Skonfiguruj ten rejestr z wiersza poleceń:
debian.registry.info = Wybierz $distribution i $component z listy poniżej.
debian.install = By zainstalować ten pakiet, wykonaj następujące polecenie:
debian.repository = Informacje o repozytorium
generic.download = Pobierz pakiet z wiersza poleceń:
go.install = Zainstaluj pakiet z wiersza poleceń:
helm.registry = Skonfiguruj ten rejestr z wiersza poleceń:
helm.install = By zainstalować ten pakiet, wykonaj następujące polecenie:
maven.registry = Skonfiguruj ten rejestr w twoim pliku projektu <code>pom.xml</code>:
maven.install = By użyć tego pakietu dołącz następującą treść w bloku <code>dependencies</code> w pliku <code>pom.xml</code>:
maven.install2 = Uruchom z wiersza poleceń:
maven.download = By pobrać zależność, wykonaj w wierszu poleceń:
nuget.registry = Skonfiguruj ten rejestr z wiersza poleceń:
nuget.install = By zainstalować ten pakiet przy użyciu NuGet, wykonaj następujące polecenie:
nuget.dependency.framework = Framework Docelowy
npm.registry = Skonfiguruj ten rejestr w pliku projektu <code>.npmrc</code>:
npm.install = By zainstalować ten pakiet przy użyciu npm, wykonaj następujące polecenie:
npm.install2 = lub dodaj to do pliku package.json:
npm.dependencies.development = Zależności programistyczne
npm.dependencies.bundle = Dołączone zależności
npm.dependencies.peer = Zależności rówieśnicze
npm.dependencies.optional = Zależności opcjonalne
pub.install = By zainstalować ten pakiet przy użyciu Dart, wykonaj następujące polecenie:
pypi.requires = Wymagany Python
pypi.install = By zainstalować ten pakiet przy użyciu pip, wykonaj następujące polecenie:
rpm.registry = Skonfiguruj ten rejestr z wiersza poleceń:
rpm.distros.redhat = na dystrybucjach opartych o RedHat
rpm.distros.suse = na dystrybucjach opartych o SUSE
rpm.install = By zainstalować ten pakiet, wykonaj następujące polecenie:
rpm.repository = Informacje o repozytorium
rpm.repository.multiple_groups = Ten pakiet jest dostępny w wielu grupach.
rubygems.install = By zainstalować ten pakiet przy użyciu gem, wykonaj następujące polecenie:
rubygems.install2 = lub dodaj to do Gemfile:
rubygems.dependencies.runtime = Zależności czasu wykonywania
rubygems.dependencies.development = Zależności programistyczne
rubygems.required.ruby = Wymaga wersji Ruby
rubygems.required.rubygems = Wymaga wersji RubyGem
swift.registry = Skonfiguruj ten rejestr z wiersza poleceń:
swift.install = Dodaj ten packiet do twojego pliku <code>Package.swift</code>:
swift.install2 = i wykonaj następujące polecenie:
vagrant.install = By dodać box Vagrant, wykonaj następujące polecenie:
settings.link = Połącz ten pakiet z repozytorium
settings.link.description = Jeżeli połączych pakiet z repozytorium, pakiet ten będzie widoczny na liście pakietów danego repozytorium.
settings.link.select = Wybierz Repozytorium
settings.link.button = Zaktualizuj Połączone Repozytorium
settings.link.success = Połączone repozytorium zostało zaktualizowane pomyślnie.
settings.link.error = Nie udało się zaktualizować połączonego repozytorium.
settings.delete = Usuń pakiet
settings.delete.description = Usunięcie pakietu jest operacją permanentną i nie może zostać cofnięte.
settings.delete.notice = Za moment usuniesz %s (%s). Ta operacja jest nieodwracalna, jesteś pewien(-na)?
settings.delete.success = Pakiet został usunięty.
settings.delete.error = Nie udało się usunąć pakietu.
owner.settings.cargo.title = Indeks rejestru Cargo
owner.settings.cargo.initialize = Zainicjuj indeks
owner.settings.cargo.initialize.description = Specjalny indeks repozytorium Git jest potrzebny by użyć rejestru Cargo. Wybranie tej opcji utworzy/odtworzy repozytorium i skonfiguruje jest automatycznie.
owner.settings.cargo.initialize.error = Nie udało się zainicjować indeksu Cargo: %v
owner.settings.cargo.initialize.success = Indeks Cargo został utworzony pomyślnie.
owner.settings.cargo.rebuild = Odbuduj indeks
owner.settings.cargo.rebuild.description = Odbudowanie może być przydatne gdy indeks nie jest synchronizowany z zapisanymi pakietami Cargo.
owner.settings.cargo.rebuild.error = Nie udało się odbudować indeksu Cargo: %v
owner.settings.cargo.rebuild.success = Indeks Cargo został odbudowany pomyślnie.
owner.settings.cargo.rebuild.no_index = Nie można odbudować, żaden indeks nie jest zainicjowany.
owner.settings.cleanuprules.title = Reguły czyszczenia
owner.settings.cleanuprules.add = Dodaj regułę czyszczenia
owner.settings.cleanuprules.edit = Edytuj regułę czyszczenia
owner.settings.cleanuprules.none = Nie ma jeszcze żadnych reguł czyszczenia.
owner.settings.cleanuprules.preview = Podgląd reguły czyszczenia
owner.settings.cleanuprules.preview.overview = %d pakietów jest zaplanowanych do usunięcia.
owner.settings.cleanuprules.preview.none = Reguła czyszczenia nie pasuje do żadnego pakietu.
owner.settings.cleanuprules.pattern_full_match = Zastosuj wzór do pełnej nazwy pakietu
owner.settings.cleanuprules.keep.title = Wersje które pasują do tych reguł są pozostawiane, nawet jeżeli pasują do reguły usunięcia niżej.
owner.settings.cleanuprules.keep.count = Pozostaw ostatnie
owner.settings.cleanuprules.keep.count.1 = 1 wersji na pakiet
owner.settings.cleanuprules.keep.count.n = %d wersji na pakiet
owner.settings.cleanuprules.keep.pattern = Pozostaw pasujące wersje
owner.settings.cleanuprules.keep.pattern.container = Wersja <code>latest</code> jest zawsze pozostawiana dla pakietów kontenerów.
owner.settings.cleanuprules.remove.title = Wersje które nie pasują do tych reguł zostaną usunięte, chyba, że reguła wcześniej każe jest pozostawić.
owner.settings.cleanuprules.remove.days = Usuń wersje starsze niż
owner.settings.cleanuprules.remove.pattern = Usuń wersje pasujące
owner.settings.cleanuprules.success.update = Reguła czyszczenia została zaktualizowana.
owner.settings.cleanuprules.success.delete = Reguła czyszczenia została usunięta.
owner.settings.chef.title = Rejestr Chef
owner.settings.chef.keypair = Wygeneruj parę kluczy
[secrets]
secrets = Sekrety
@ -3656,6 +3903,34 @@ variables.creation.success = Zmienna "%s" została dodana.
variables.update.failed = Nie udało się zmienić zmiennej.
variables.update.success = Zmienna została zmieniona.
unit.desc = Zarządzaj zintegrowanymi procesami CI/CD z Forgejo Actions.
status.running = Uruchomione
runners.task_list.done_at = Ukończone W
runs.all_workflows = Wszystkie procesy prac
runs.pushed_by = wypchnięty przez
runs.workflow = Proces pracy
runs.invalid_workflow_helper = Plik konfiguracyjny procesu pracy jest nieprawidłowy. Proszę sprawdź swój plik konfiguracyjny: %s
runs.no_job_without_needs = Proces pracy musi zawierać chociaż jedno zadanie bez zależności.
runs.no_job = Proces pracy musi posiadać chociaż jedno zadanie
runs.actors_no_select = Wszyscy aktorzy
runs.status_no_select = Wszystkie stany
runs.no_workflows = Nie ma jeszcze żadnych procesów pracy.
runs.no_runs = Ten proces pracy nie ma jeszcze uruchomień.
workflow.disable = Wyłącz proces pracy
workflow.disable_success = Proces pracy "%s" wyłączony pomyślnie.
workflow.enable = Włącz proces pracy
workflow.enable_success = Proces pracy "%s" włączony pomyślnie.
workflow.disabled = Proces pracy jest wyłączony.
workflow.dispatch.trigger_found = Ten proces pracy zawiera wywołanie przy wydarzeniu <c>workflow_dispatch</c>.
workflow.dispatch.use_from = Wykorzystaj proces pracy z
workflow.dispatch.run = Uruchom proces pracy
workflow.dispatch.success = Proces pracy został pomyślnie zażądany.
workflow.dispatch.input_required = Wymagaj wartości dla danych wejścia "%s".
workflow.dispatch.invalid_input_type = Nieprawidłowy typ danych wejścia "%s".
workflow.dispatch.warn_input_limit = Wyświetlane jest tylko pierwszych %d danych wejścia.
need_approval_desc = Potrzebne zatwierdzenie by móc uruchamiać procesy pracy dla pull requestów forków.
variables.not_found = Nie udało się znaleźć zmiennej.
[projects]
deleted.display_name = Projekt usunięty
type-1.display_name = Projekt osobisty
@ -3676,9 +3951,9 @@ normal_file = Zwykły plik
[search]
search = Wyszukaj...
type_tooltip = Typ wyszukiwania
fuzzy = Fuzzy
package_kind = Wyszukaj paczki...
fuzzy_tooltip = Uwzględnij wyniki, które również pasują do wyszukiwanego hasła
fuzzy = Przybliżone
package_kind = Wyszukaj pakiety...
fuzzy_tooltip = Uwzględnij wyniki, które są bliskie wyszukiwanemu hasłu
match = Dopasuj
match_tooltip = Uwzględniaj tylko wyniki pasujące do wyszukiwanego hasła
repo_kind = Wyszukaj repozytoria...
@ -3696,7 +3971,7 @@ runner_kind = Wyszukaj runnery...
keyword_search_unavailable = Wyszukiwanie według słów kluczowych jest obecnie niedostępne. Skontaktuj się z administratorem strony.
milestone_kind = Wyszukaj kamienie milowe...
union_tooltip = Uwzględnij wyniki pasujące do dowolnego słowa kluczowego oddzielonego spacjami
exact = Dokładnie
exact = Dokładne
exact_tooltip = Uwzględniaj tylko wyniki pasujące do wyszukiwanego hasła
issue_kind = Wyszukaj zgłoszenia...
pull_kind = Wyszukaj pull requesty...
@ -3730,4 +4005,13 @@ filepreview.lines = Linie %[1]d do %[2]d w %[3]s
filepreview.truncated = Podgląd został przycięty
[translation_meta]
test = Litwo, Ojczyzno moja! ty jesteś jak zdrowie; ile cię trzeba cenić, ten tylko się dowie, kto cię stracił. Dziś piękność twą w całej ozdobie widzę i opisuję, bo tęsknię po tobie.
test = Litwo, Ojczyzno moja! ty jesteś jak zdrowie; ile cię trzeba cenić, ten tylko się dowie, kto cię stracił. Dziś piękność twą w całej ozdobie widzę i opisuję, bo tęsknię po tobie :)
[munits.data]
b = B
kib = KiB
mib = MiB
gib = GiB
tib = TiB
pib = PiB
eib = EiB

View file

@ -55,7 +55,7 @@ organization=Organização
mirror=Espelhamento
new_repo=Novo repositório
new_migrate=Nova migração
new_mirror=Novo espelhamento
new_mirror=Novo espelho
new_fork=Novo fork do repositório
new_org=Nova organização
new_project=Novo projeto
@ -723,8 +723,8 @@ following.title.one = seguindo
followers.title.one = seguidor
followers.title.few = seguidores
public_activity.visibility_hint.self_private = Sua atividade está visível apenas para você e para os administradores da instância. <a href="%s">Configurar</a>.
public_activity.visibility_hint.self_public = Sua atividade está visível para todos, exceto o engajamento em espaços privados. <a href="%s">Configurar</a>.
public_activity.visibility_hint.admin_public = Sua atividade está visível para todos, mas como um administrador você também pode ver o engajamento em espaços privados.
public_activity.visibility_hint.self_public = Sua atividade está visível para todos, exceto interações em espaços privados. <a href="%s">Configurar</a>.
public_activity.visibility_hint.admin_public = Sua atividade está visível para todos, mas como um administrador você também pode ver interações em espaços privados.
public_activity.visibility_hint.admin_private = Essa atividade está visível para você porque você é um administrador, mas o usuário dejesa que ela seja mantida em privado.
public_activity.visibility_hint.self_private_profile = Sua atividade só é visível para você e para os administradores do servidor porque seu perfil é privado. <a href="%s">Configurar</a>.
@ -993,7 +993,7 @@ scan_this_image=Escaneie esta imagem com o seu aplicativo de autenticação:
or_enter_secret=Ou digite esse código: %s
then_enter_passcode=E insira a senha mostrada no aplicativo:
passcode_invalid=Esse código de acesso é inválido. Tente novamente.
twofa_enrolled=Sua conta foi inscrita na autenticação de dois fatores. Armazene seu token de backup (%s) em um local seguro, pois ele é exibido apenas uma vez!
twofa_enrolled=Sua conta foi inscrita na autenticação de dois fatores. Armazene seu token de recuperação de uso único (%s) em um local seguro, pois ele não será exibido novamente.
twofa_failed_get_secret=Falha ao obter o segredo.
webauthn_desc=Chaves de segurança são dispositivos de hardware que contém chaves de criptografia. Elas podem ser usadas para autenticação de dois fatores. A chave de segurança deve suportar o padrão <a rel="noreferrer" target="_blank" href="%s">WebAuthnn Authenticator</a>.
@ -2752,8 +2752,8 @@ release.system_generated = Este anexo foi gerado automaticamente.
settings.wiki_branch_rename_failure = Falha ao regularizar o nome do ramo da wiki do repositório.
settings.add_collaborator_blocked_them = Não foi possível adicionar o(a) colaborador(a) porque ele(a) bloqueou o(a) proprietário(a) do repositório.
settings.thread_id = ID da discussão
issues.edit.already_changed = Não foi possível salvar as alterações desta questão porque o conteúdo foi alterado por outro(a) usuário(a). Atualize a página e tente novamente para evitar sobrescrever as alterações.
pulls.edit.already_changed = Não foi possível salvar as alterações deste pedido de integração porque o conteúdo foi alterado por outro(a) usuário(a). Atualize a página e tente novamente para evitar sobrescrever as alterações.
issues.edit.already_changed = Não foi possível salvar as alterações desta questão. O conteúdo parece já ter sido alterado por outro(a) usuário(a). Atualize a página e tente novamente para evitar sobrescrever estas alterações.
pulls.edit.already_changed = Não foi possível salvar as alterações deste pull request. Parece que o conteúdo já foi alterado por outro(a) usuário(a). Atualize a página e tente novamente para evitar sobrescrever estas alterações.
editor.commit_id_not_matching = O arquivo foi alterado durante a edição. Salve as alterações em um novo ramo e realize a mesclagem.
blame.ignore_revs = As revisões em <a href="%s">.git-blame-ignore-revs</a> foram ignoradas. Clique <a href="%s">aqui</a> para retornar à visualização normal.
topic.format_prompt = Os tópicos devem começar com um caracter alfanumérico, podem incluir hífens ("-") e pontos ("."), e podem ter até 35 caracteres. As letras devem ser minúsculas.
@ -3178,7 +3178,7 @@ orgs.new_orga=Nova organização
repos.repo_manage_panel=Gerenciar repositórios
repos.unadopted=Repositórios não adotados
repos.unadopted.no_more=Não foram encontrados repositórios não adotados
repos.unadopted.no_more=Não foram encontrados repositórios não adotados.
repos.owner=Proprietário(a)
repos.name=Nome
repos.private=Privado
@ -3947,6 +3947,8 @@ runs.no_workflows.help_no_write_access = Para aprender sobre as Actions do Forge
runs.no_workflows.help_write_access = Não sabe como começar a usar as Actions do Forgejo? Veja o <a target="_blank" rel="noopener noreferrer" href="%s">guia de como começar na documentação do usuário</a> para escrever seu primeiro workflow, depois <a target="_blank" rel="noopener noreferrer" href="%s">configure um runner do Forgejo</a> para executar trabalhos.
variables.not_found = Não foi possível encontrar a variável.
[projects]
type-1.display_name=Projeto individual
type-2.display_name=Projeto do repositório

View file

@ -3947,6 +3947,8 @@ runs.expire_log_message = Os registos foram purgados por serem demasiado antigos
runs.no_workflows.help_no_write_access = Para aprender sobre Forgejo Actions, veja<a target="_blank" rel="noopener noreferrer" href="%s">a documentação</a>.
runs.no_workflows.help_write_access = Não sabe como começar com o Forgejo Actions? Consulte o <a target="_blank" rel="noopener noreferrer" href="%s">início rápido na documentação do utilizador</a> para escrever a sua primeira sequência de trabalho, depois <a target="_blank" rel="noopener noreferrer" href="%s">prepare um executor Forgejo</a> para executar os seus trabalhos.
variables.not_found = Não foi possível encontrar a variável.
[projects]
type-1.display_name=Planeamento individual
type-2.display_name=Planeamento do repositório
@ -4009,7 +4011,7 @@ filepreview.line = Linha %[1]d em %[2]s
filepreview.truncated = A previsão foi truncada
[translation_meta]
test = ok
test = ok :)
[repo.permissions]
code.read = <b>Ler:</b> Aceder e clonar o código-fonte do repositório.

View file

@ -17,14 +17,14 @@ page=Страница
template=Шаблон
language=Язык
notifications=Уведомления
active_stopwatch=Трекер рабочего времени
active_stopwatch=Счётчик затраченного времени
create_new=Создать…
user_profile_and_more=Профиль и настройки…
signed_in_as=Вы вошли как
enable_javascript=Для этого сайта требуется поддержка JavaScript.
toc=Содержание
licenses=Лицензии
return_to_forgejo=Вернуться к Forgejo
return_to_forgejo=Вернуться в Forgejo
username=Имя пользователя
email=Адрес эл. почты
@ -155,7 +155,7 @@ filter.public = Публичные
filter.private = Частные
filter.is_archived = Архивированные
filter.not_mirror = Не зеркала
more_items = Больше элементов
more_items = Больше разделов
invalid_data = Неверные данные: %v
copy_generic = Копировать в буфер обмена
test = Проверить
@ -267,14 +267,14 @@ repo_path=Путь до каталога репозиториев
repo_path_helper=Все удалённые Git репозитории будут сохранены в этом каталоге.
lfs_path=Путь до корневого каталога Git LFS
lfs_path_helper=В этом каталоге будут храниться файлы Git LFS. Оставьте пустым, чтобы отключить LFS.
run_user=Работа под пользователем
run_user=Выполнение под пользователем
run_user_helper=Имя пользователя операционной системы, под которым работает Forgejo. Обратите внимание, что этот пользователь должен иметь доступ к корневому пути репозиториев.
domain=Домен сервера
domain_helper=Домен или адрес хоста для сервера.
ssh_port=Порт SSH-сервера
ssh_port_helper=Номер порта, используемый для входящих подключений по SSH. Оставьте пустым для отключения доступа по SSH.
http_port=Порт HTTP-сервера
http_port_helper=Номер порта, используемый веб-сервером Forgejo.
http_port_helper=Номер порта, который будет прослушиваться веб-сервером Forgejo.
app_url=Базовый URL
app_url_helper=Этот параметр влияет на URL клонирования по HTTP/HTTPS и на ссылки в уведомлениях по эл. почте.
log_root_path=Путь журналов
@ -345,7 +345,7 @@ enable_update_checker_helper_forgejo = Периодически проверят
allow_dots_in_usernames = Разрешить точки в именах пользователей. Это не повлияет на уже созданные учётные записи.
smtp_from_invalid = Адрес для отправки писем некорректен
config_location_hint = Эти настройки конфигурации будут сохранены в:
allow_only_external_registration = Разрешить регистрацию только через сторонние службы
allow_only_external_registration = Регистрация только через сторонние службы
app_slogan = Лозунг сервера
app_slogan_helper = Укажите лозунг вашего сервера, либо оставьте пустым для отключения.
@ -962,8 +962,8 @@ oauth2_redirect_uris=URI перенаправлений. Размещайте UR
save_application=Сохранить
oauth2_client_id=ИД клиента
oauth2_client_secret=Клиентский ключ
oauth2_regenerate_secret=Сгенерировать новый ключ
oauth2_regenerate_secret_hint=Потеряли свой ключ?
oauth2_regenerate_secret=Создать новый
oauth2_regenerate_secret_hint=Ключ был утерян?
oauth2_client_secret_hint=Секрет не будет показан после того, как вы покинете или обновите страницу. Убедитесь, что вы его надёжно сохранили.
oauth2_application_edit=Изменить
oauth2_application_create_description=Приложения OAuth2 предоставляет стороннему приложению доступ к учётным записям пользователей данного сервиса.
@ -2151,7 +2151,7 @@ settings.tracker_issue_style.regexp=Регулярное выражение
settings.tracker_issue_style.regexp_pattern=Шаблон регулярного выражения
settings.tracker_issue_style.regexp_pattern_desc=Вместо <code>{index}</code> будет использоваться первая захваченная группа.
settings.tracker_url_format_desc=Вы можете использовать шаблоны <code>{user}</code>, <code>{repo}</code> и <code>{index}</code> для имени пользователя, репозитория и номера задачи.
settings.enable_timetracker=Включить отслеживание времени
settings.enable_timetracker=Счётчик времени
settings.allow_only_contributors_to_track_time=Подсчитывать время могут только соавторы
settings.pulls_desc=Включить запросы слияний
settings.pulls.ignore_whitespace=Игнорировать незначащие различия (пробелы, табуляцию) при проверке слияний на конфликты
@ -2788,7 +2788,7 @@ release.download_count_few = %s скачиваний
release.system_generated = Это вложение сгенерировано автоматически.
settings.event_pull_request_enforcement = Форсирование
pulls.cmd_instruction_checkout_desc = В репозитории вашего проекта перейдите на эту ветвь и протестируйте изменения.
error.broken_git_hook = Гит-хуки этого репозитория сломаны. Ознакомьтесь с <a target="_blank" rel="noreferrer" href="%s">документацией</a> и почините их, затем отправьте какие-нибудь коммиты для обновления статуса.
error.broken_git_hook = Гит-хуки этого репозитория сломаны. Ознакомьтесь с <a target="_blank" rel="noreferrer" href="%s">документацией</a> и исправьте их, затем отправьте какие-нибудь коммиты для обновления статуса.
pulls.cmd_instruction_checkout_title = Перейдите к ветви
settings.graphql_url = Ссылка GraphQL
settings.sourcehut_builds.access_token_helper = Токен builds.sr.ht с разрешением JOBS:RW. Создайте <a target="_blank" rel="noopener noreferrer" href="%s">обычный токен</a> или <a target="_blank" rel="noopener noreferrer" href="%s">токен с доступом к секретам</a> на meta.sr.ht.
@ -3396,8 +3396,8 @@ config.active_code_lives=Срок действия кода активации
config.reset_password_code_lives=Срок действия кода восстановления учётной записи
config.default_keep_email_private=Скрывать адреса эл. почты по умолчанию
config.default_allow_create_organization=Разрешить создание организаций по умолчанию
config.enable_timetracking=Отслеживание времени
config.default_enable_timetracking=Включить отслеживание времени по умолчанию
config.enable_timetracking=Счётчик времени
config.default_enable_timetracking=Включить счётчик затраченного времени по умолчанию
config.allow_dots_in_usernames = Разрешить точки в именах пользователей. Это не повлияет на уже созданные учётные записи.
config.default_allow_only_contributors_to_track_time=Подсчитывать время могут только соавторы
config.no_reply_address=Домен скрытых адресов почты
@ -3692,7 +3692,7 @@ details.project_site=Веб-сайт проекта
details.repository_site=Веб-сайт репозитория
details.documentation_site=Веб-сайт документации
details.license=Лицензия
assets=Ресурсы
assets=Объекты
versions=Версии
versions.view_all=Показать всё
dependency.id=ID
@ -3958,6 +3958,8 @@ runs.expire_log_message = Журнал был удалён из-за старо
runs.no_workflows.help_write_access = Не знаете, как начать использовать Действия Forgejo? Ознакомьтесь с <a target="_blank" rel="noopener noreferrer" href="%s">руководством по быстрому старту в документации</a> и создайте первый рабочий поток, затем <a target="_blank" rel="noopener noreferrer" href="%s">настройте исполнитель Forgejo</a>, который будет выполнять задачи.
runs.no_workflows.help_no_write_access = Ознакомьтесь с <a target="_blank" rel="noopener noreferrer" href="%s">документацией</a>, чтобы узнать про Действия Forgejo.
variables.not_found = Не удалось найти переменную.
[projects]
type-1.display_name=Индивидуальный проект
type-2.display_name=Проект репозитория
@ -4012,7 +4014,7 @@ filepreview.lines = Строки с %[1]d по %[2]d в %[3]s
filepreview.truncated = Предпросмотр был обрезан
[translation_meta]
test = forgejo :)
test = Forgejo!
[repo.permissions]
code.write = <b>Запись:</b> отправка изменений в репозиторий, создание веток и тегов.

View file

@ -101,6 +101,11 @@ concept_user_organization=සංවිධානය
name=නම
filter = පෙරහන
filter.is_archived = සංරක්ෂිත
filter.public = ප්‍රසිද්ධ
filter.private = පෞද්ගලික
[aria]
[heatmap]
@ -1915,6 +1920,8 @@ error.csv.too_large=එය ඉතා විශාල නිසා මෙම ග
error.csv.unexpected=%d පේළියේ සහ %dතීරුවේ අනපේක්ෂිත චරිතයක් අඩංගු බැවින් මෙම ගොනුව විදැහුම්කරණය කළ නොහැක.
error.csv.invalid_field_count=මෙම ගොනුව රේඛාවේ වැරදි ක්ෂේත්ර සංඛ්යාවක් ඇති බැවින් එය විදැහුම්කරණය කළ නොහැක %d.
milestones.filter_sort.name = නම
[graphs]
[org]
@ -2464,6 +2471,9 @@ notices.op=ඔප්.
notices.delete_success=පද්ධති දැන්වීම් මකා දමා ඇත.
config_summary = සාරාංශය
config_settings = සැකසුම්
[action]
create_repo=නිර්මිත ගබඩාව <a href="%s">%s</a>
rename_repo=<code>%[1]s</code> සිට <a href="%[2]s">%[3]s</a>දක්වා නම් කරන ලද ගබඩාව
@ -2556,3 +2566,5 @@ runs.commit=කැප
[git.filemode]
symbolic_link=සංකේතාත්මක සබැඳිය
[search]

View file

@ -142,6 +142,9 @@ name=Meno
value=Hodnota
issues = Problémy
filter.is_archived = Archivované
filter.private = Súkromný
[aria]
navbar=Navigačná lišta
footer=Päta
@ -1371,4 +1374,6 @@ runners.labels=Štítky
[projects]
[git.filemode]
symbolic_link=Symbolický odkaz
symbolic_link=Symbolický odkaz
[search]

View file

@ -1,23 +1,23 @@
[common]
language = Jezik
passcode = Pristopna koda
passcode = Vstopna koda
webauthn_error_timeout = Preden je bilo mogoče prebrati vaš ključ, je bil dosežen časovni rok. Ponovno naložite to stran in poskusite znova.
cancel = Prekliči
webauthn_sign_in = Pritisnite gumb na varnostnem ključu. Če varnostni ključ nima gumba, ga ponovno vstavite.
create_new = Ustvarite
create_new = Ustvari
disabled = Invalidi
go_back = Pojdi nazaj
licenses = Licence
sign_in = Prijavite se
sign_in = Prijava
activities = Dejavnosti
copy_content = Kopiranje vsebine
collaborative = Sodelovanje
archived = Arhivirano
user_profile_and_more = Profil in nastavitve
user_profile_and_more = Profil in nastavitve
view = Ogled
your_settings = Nastavitve
explore = Raziščite
return_to_forgejo = Vrnitev v Forgejo
explore = Razišči
return_to_forgejo = Nazaj na Forgejo
write = Napišite
webauthn_error_unknown = Zgodila se je neznana napaka. Prosimo, poskusite znova.
webauthn_reload = Ponovno polnjenje
@ -38,10 +38,10 @@ page = Stran
concept_system_global = Globalno
forks = Vilice
concept_user_organization = Organizacija
link_account = Povezava račun
link_account = Poveži račun
your_profile = Profil
copy_hash = Kopiraj hash
sign_out = Odjavite se
sign_out = Odjava
settings = Nastavitve
locked = Zaklenjeno
error = Napaka
@ -76,7 +76,7 @@ active_stopwatch = Aktivno sledenje času
organization = Organizacija
new_migrate = Nova migracija
save = Shrani
sign_in_with_provider = Prijavite se z %s
sign_in_with_provider = Prijava s/z %s
manage_org = Upravljanje organizacij
new_repo = Nov repozitorij
webauthn_error_unable_to_process = Strežnik ni mogel obdelati vaše zahteve.
@ -84,24 +84,24 @@ register = Registracija
mirror = Zrcalo
access_token = Token za dostop
download_logs = Prenos dnevnikov
webauthn_insert_key = Vstavite varnostni ključ
webauthn_insert_key = Vnesite varnostni ključ
password = Geslo
webauthn_error_duplicated = Varnostni ključ za to zahtevo ni dovoljen. Prepričajte se, da ključ še ni registriran.
template = Šablona
template = Predloga
webauthn_press_button = Pritisnite gumb na varnostnem ključu…
unknown = Neznano
sign_up = Registracija
enable_javascript = To spletno mesto zahteva JavaScript.
twofa_scratch = Dvofaktorska koda Scratch
home = Domov
powered_by = Poganja ga %s
powered_by = Poganja %s
retry = Ponovite
preview = Predogled
mirrors = Ogledala
loading = Nalaganje…
show_full_screen = Prikaži celoten zaslon
webauthn_error_insecure = WebAuthn podpira samo varne povezave. Za testiranje prek protokola HTTP lahko uporabite izvor "localhost" ali "127.0.0.1"
username = Usmerjevalno ime
username = Uporabniško ime
tracked_time_summary = Povzetek spremljanega časa na podlagi filtrov seznama zadev
email = E-poštni naslov
captcha = CAPTCHA
@ -111,7 +111,7 @@ milestones = Mejniki
ok = OK
copy_branch = Kopiranje imena veje
artifacts = Artefakti
signed_in_as = Prijavil se je kot
signed_in_as = Prijavljeni ste kot
remove = Odstrani
remove_all = Odstrani vse
remove_label_str = Odstranite element "%s"

View file

@ -166,7 +166,7 @@ remove_label_str = Ta bort objektet "%"
copy_generic = Kopiera till urklipp
confirm_delete_selected = Bekräfta för att ta bort alla valda objekt?
filter.is_fork = Förgreningar
filter.not_fork = Inte gafflar
filter.not_fork = Inte förgrenade
[aria]
footer.software = Om den här mjukvaran

View file

@ -56,7 +56,7 @@ organization=Organizasyon
mirror=Yansı
new_repo=Yeni Depo
new_migrate=Yeni Göç
new_mirror=Yeni Yansı
new_mirror=Yeni yansıma
new_fork=Yeni Depo Çatalı
new_org=Yeni Organizasyon
new_project=Yeni proje
@ -76,7 +76,7 @@ collaborative=İşbirlikçi
forks=Çatallar
activities=Etkinlikler
pull_requests=Değişiklik İstekleri
pull_requests=Değişiklik istekleri
issues=Konular
milestones=Kilometre Taşları
@ -146,7 +146,7 @@ filter = Filtrele
filter.not_archived = Arşivlenmemiş
filter.clear = Filtreleri Temizle
filter.is_archived = Arşivlenmiş
filter.is_mirror = Yansılaştırılmış
filter.is_mirror = Yansılar
filter.is_fork = Çatallar
filter.not_fork = Çatallanmayanlar
filter.not_mirror = Yansılanmamış
@ -344,6 +344,8 @@ app_slogan_helper = Oluşum sloganınızı giriniz. Devre dışı bırakmak içi
enable_update_checker_helper_forgejo = release.forgejo.org adresindeki TXT DNS kayıdı kullanılarak yeni Forgejo sürümleri düzenli olarak kontrol edilecektir.
allow_dots_in_usernames = Kullanıcı isimlerinde noktaya izin ver. Var olan kullanıcıları etkilemez.
smtp_from_invalid = `"E-posta Olarak Gönder" adresi geçersiz`
[home]
uname_holder=Kullanıcı adı veya e-posta adresi
password_holder=Parola
@ -668,6 +670,9 @@ Website = Websitesi
username_error_no_dots = ` sadece alfanumerik karakterler ("0-9","a-z","A-Z"), tire ("-") ve alt tire ("-") içerebilir. Alfanumerik olmayan karakterlerle başlayamaz ve bitemez, ayrıca ardışık alfanumerik olmayan karakterler de kullanılamaz.`
admin_cannot_delete_self = Yöneticiyken kullanıcınızı silemezsiniz. Lütfen önce yönetici yetkilerinizi kaldırın.
unset_password = Oturum açma kullanıcısı parola belirlemedi.
unsupported_login_type = Oturum açma türü hesap silmeyi desteklemiyor.
[user]
change_avatar=Profil resmini değiştir…
joined_on=%s tarihinde katıldı
@ -2700,7 +2705,37 @@ activity.navbar.contributors = Katılımcılar
contributors.contribution_type.deletions = Çıkarmalar
settings.new_owner_blocked_doer = Yeni sahip sizi engelledi.
open_with_editor = %s ile aç
object_format = Nesne Biçimi
mirror_sync = eşitlendi
stars = Yıldızlar
desc.sha256 = SHA256
vendored = Sağlanmış
generated = Üretilmiş
editor.push_out_of_date = İtme eskimiş.
commits.search_branch = Bu Dal
issues.edit.already_changed = Konuya yapılan değişiklikler kaydedilemiyor. İçerik başka kullanıcı tarafından değiştirilmiş gözüküyor. Diğerlerinin değişikliklerinin üzerine yazmamak için lütfen sayfayı yenileyin ve tekrar düzenlemeye çalışın
pulls.edit.already_changed = Değişiklik isteğine yapılan değişiklikler kaydedilemiyor. İçerik başka kullanıcı tarafından değiştirilmiş gözüküyor. Diğerlerinin değişikliklerinin üzerine yazmamak için lütfen sayfayı yenileyin ve tekrar düzenlemeye çalışın
pulls.nothing_to_compare_have_tag = Seçili dal/etiket aynı.
pulls.fast_forward_only_merge_pull_request = Sadece ileri sarma
comments.edit.already_changed = Yoruma yapılan değişiklikler kaydedilemiyor. İçerik başka kullanıcı tarafından değiştirilmiş gözüküyor. Diğerlerinin değişikliklerinin üzerine yazmamak için lütfen sayfayı yenileyin ve tekrar düzenlemeye çalışın
milestones.filter_sort.name = Ad
activity.navbar.pulse = Eğilim
activity.navbar.code_frequency = Kod Frekansı
activity.navbar.recent_commits = Son İşlemeler
settings.mirror_settings.pushed_repository = İtilmiş depo
settings.ignore_stale_approvals = Eskimiş onayları yoksay
settings.ignore_stale_approvals_desc = Daha eski işlemelere (eski incelemelere) yapılmış olan onayları, Dİ'nin kaç onayı olduğunu belirlerken sayma. Eskimiş incelemeler atıldıysa bu ilgisizdir.
error.broken_git_hook = Bu deponun Git İstemcileri bozuk gibi gözüküyor. Onarmak için lütfen <a target="_blank" rel="noreferrer" href="%s">belgelere</a> bakın, daha sonra durumu yenilemek için bazı işlemeler itin.
[graphs]
component_loading = %s yükleniyor...
component_loading_failed = %s yüklenemedi
component_loading_info = Bu biraz sürebilir…
component_failed_to_load = Beklenmedik bir hata oluştu.
code_frequency.what = kod frekansı
contributors.what = katkılar
recent_commits.what = son işlemeler
[org]
org_name_holder=Organizasyon Adı
@ -3354,6 +3389,23 @@ notices.op=İşlem
notices.delete_success=Sistem bildirimleri silindi.
self_check = Öz Denetim
config_summary = Özet
config_settings = Ayarlar
dashboard.sync_repo_tags = Etiketleri git verisinden veritabanına eşitle
emails.delete = E-postayı Sil
emails.delete_desc = Bu e-posta adresini silmek istediğinizden emin misiniz?
emails.deletion_success = E-posta adresi silindi.
emails.delete_primary_email_error = Ana e-posta adresini silemezsiniz.
config.cache_test = Önbelleği Sına
config.cache_test_failed = Önbelleğin incelenmesi başarısız oldu: %v.
config.cache_test_slow = Önbellek sınaması başarılı, ancak yanıt yavaş: %s.
config.cache_test_succeeded = Önbellek sınaması başarılı, %s sürede bir yanıt alındı.
config.open_with_editor_app_help = Klon menüsü için "Birlikte aç" düzenleyicileri. Boş bırakılırsa, varsayılan kullanılacaktır. Varsayılanı görmek için genişletin.
self_check.no_problem_found = Henüz bir sorun bulunmadı.
self_check.database_collation_mismatch = Veritabanının şu harmanlamayı kullanmasını bekle: %s
self_check.database_inconsistent_collation_columns = Veritabanı %s harmanlamasını kullanıyor, ancak bu sütunlar uyumsuz harmanlamalar kullanıyor. Bu beklenmedik sorunlar oluşturabilir.
[action]
create_repo=depo <a href="%s">%s</a> oluşturuldu
rename_repo=<code>%[1]s</code> olan depo adını <a href="%[2]s">%[3]s</a> buna çevirdi
@ -3594,6 +3646,9 @@ owner.settings.chef.title=Chef Kütüğü
owner.settings.chef.keypair=Anahtar çifti üret
owner.settings.chef.keypair.description=Chef kütüğünde kimlik doğrulaması için bir anahtar çifti gereklidir. Eğer daha önce bir anahtar çifti ürettiyseniz, yeni bir anahtar çifti üretmek eski anahtar çiftini ıskartaya çıkartacaktır.
npm.dependencies.bundle = Paketlenmiş Bağımlılıklar
rpm.repository.multiple_groups = Bu paket birçok grupta mevcut.
[secrets]
secrets=Gizlilikler
description=Gizlilikler belirli işlemlere aktarılacaktır, bunun dışında okunamaz.
@ -3701,6 +3756,10 @@ runs.no_workflows.documentation = Gitea İşlem'i hakkında daha fazla bilgi iç
variables.id_not_exist = %d kimlikli değişken mevcut değil.
runs.no_workflows.quick_start = Gitea İşlem'i nasıl başlatacağınızı bilmiyor musunuz? <a target="_blank" rel="noopener noreferrer" href="%s">Hızlı başlangıç rehberine</a> bakabilirsiniz.
runs.no_job_without_needs = İş akışı en azından bağımlılığı olmayan bir görev içermelidir.
runs.no_job = İş akışı en azından bir görev içermelidir
runs.expire_log_message = Günlükler, çok eski oldukları için temizlendiler.
[projects]
type-1.display_name=Kişisel Proje
type-2.display_name=Depo Projesi
@ -3741,3 +3800,5 @@ keyword_search_unavailable = Anahtar kelime ile arama şu anda kullanıma açık
fuzzy_tooltip = Arama terimine yakın olan eşleşmeleri dahil et
union_tooltip = Boşlukla ayrılmış anahtar kelime eşleşmelerini dahil et
exact_tooltip = Sadece arama terimiyle tam uyuşan sonuçları dahit et.
fuzzy = Bulanık
exact = Tam

View file

@ -164,7 +164,7 @@ filter.not_fork = Не форки
filter.is_mirror = Дзеркала
filter.not_mirror = Не дзеркала
filter.not_template = Не шаблони
error413 = Ви вичерпали свою частку.
error413 = Ви вичерпали свою квоту.
invalid_data = Недійсні дані: %v
copy_path = Копіювати шлях
@ -406,10 +406,10 @@ remember_me=Запам'ятати цей пристрій
forgot_password_title=Забули пароль
forgot_password=Забули пароль?
sign_up_now=Потрібен обліковий запис? Зареєструйтеся зараз.
confirmation_mail_sent_prompt=Новий лист для підтвердження було відправлено на <b>%s</b>, будь ласка, перевірте вашу поштову скриньку протягом %s для завершення реєстрації.
confirmation_mail_sent_prompt=Новий лист підтвердження було надіслано <b>%s</b>. Щоб завершити реєстрацію, перевірте вхідні й перейдіть за наведеним посиланням (на це маєте %s). Якщо електронну адресу вказано неправильно, ви можете ввійти і створити запит для надсилання ще одного листа підтвердження на іншу адресу.
must_change_password=Оновіть свій пароль
allow_password_change=Вимагати в користувача змінити пароль (рекомендується)
reset_password_mail_sent_prompt=Електронний лист із підтвердженням надіслано <b>%s</b>. Перевірте папку 'Вхідні' в межах наступних %s, щоб завершити процес відновлення облікового запису.
reset_password_mail_sent_prompt=Лист підтвердження було надіслано <b>%s</b>. Щоб завершити відновлення облікового запису, перевірте вхідні й перейдіть за наведеним посиланням (на це маєте %s).
active_your_account=Активувати обліковий запис
account_activated=Обліковий запис активовано
prohibit_login=Обліковий запис заблоковано
@ -448,14 +448,14 @@ email_domain_blacklisted=З вказаним email реєстрація немо
authorize_application=Авторизувати програму
authorize_redirect_notice=Вас буде переадресовано до %s, якщо ви авторизуєте цю програму.
authorize_application_created_by=Ця програма створена %s.
authorize_application_description=Якщо ви надасте цей доступ, то він матиме доступ до всіх ваших даних облікового запису, включаючи приватні репозиторії та організації.
authorize_title=Авторизуйвати "%s" для доступу до вашого облікового запису?
authorize_application_description=Якщо ви надасте дозвіл, то програма отримає доступ до всіх даних вашого облікового запису, включно з приватними репозиторіями та організаціями.
authorize_title=Дозволити «%s» доступ до вашого облікового запису?
authorization_failed=Помилка авторизації
sspi_auth_failed=Помилка SSPI-автентифікації
password_pwned_err=Не вдалося виконати запит до HaveIBeenPwed
change_unconfirmed_email_summary = Змінити адресу електронної пошти, на яку надходять активаційні листи.
oauth.signin.error.temporarily_unavailable = Авторизація не вдалася, оскільки сервер автентифікації тимчасово недоступний. Будь ласка, спробуйте пізніше.
change_unconfirmed_email = Якщо ви вказали неправильну електронну адресу впродовж реєстрації, ви можете змінити її нижче. Підтвердження буде надіслано на нову адресу.
change_unconfirmed_email = Якщо під час реєстрації ви вказали неправильну електронну адресу, ви можете змінити її нижче. Підтвердження буде надіслано на нову адресу.
last_admin = Ви не можете видалити останнього адміністратора. Має бути хоча б один адміністратор.
oauth.signin.error.access_denied = Запит на авторизацію було відхилено.
change_unconfirmed_email_error = Не вдалося змінити електронну адресу: %v
@ -472,7 +472,7 @@ hint_register = Потрібен обліковий запис? <a href="%s">З
sign_up_button = Зареєструватися.
sign_up_successful = Обліковий запис успішно створений. Вітаємо!
unauthorized_credentials = Хибні або прострочені дані для входу. Спробуйте ще раз або перейдіть до %s по докладнішу інформацію
use_onetime_code = Користати одноразовий код
use_onetime_code = Використати одноразовий код
oauth.signin.error = Виникла помилка при обробці запиту на авторизацію. Якщо ця помилка буде повторюватись, зверніться до адміністратора сайту.
authorization_failed_desc = Авторизація не відбулася: виявлено недійсний запит. Будь ласка, зверніться до розробника програми, яку ви намагалися авторизувати.
@ -721,6 +721,9 @@ public_activity.visibility_hint.self_private = Вашу діяльність б
public_activity.visibility_hint.admin_private = Цю дію видно адміністрації, зокрема вам, але користувач_ка бажає залишити її приватною.
public_activity.visibility_hint.self_private_profile = Вашу діяльність видно лише вам і адміністрації сервера, оскільки ваш профіль приватний. <a href="%s">Налаштувати</a>.
public_activity.visibility_hint.admin_public = Цю дію видно всім, але адміністрація (зокрема й ви) може бачити ще й взаємодії в приватних просторах.
form.name_pattern_not_allowed = Вираз «%s» не може бути частиною користувацького імені.
[settings]
profile=Профіль
account=Обліковий запис
@ -809,9 +812,9 @@ add_openid_success=Нова адреса OpenID була додана.
keep_email_private=Приховати адресу електронної пошти
openid_desc=OpenID дозволяє делегувати аутентифікацію зовнішньому постачальнику послуг.
manage_ssh_keys=Керувати ключами SSH
manage_ssh_keys=Керування ключами SSH
manage_ssh_principals=Управління SSH сертифікатами користувачів
manage_gpg_keys=Керувати ключами GPG
manage_gpg_keys=Керування ключами GPG
add_key=Додати ключ
ssh_desc=Ці відкриті ключі SSH повʼязані з вашим обліковим записом. Відповідні приватні ключі дозволяють отримати повний доступ до ваших репозиторіїв. Підтверджені ключі можна використати для підтвердження комітів Git, підписані з SSH.
principal_desc=Ці настройки SSH сертифікатів вказані у вашому обліковому записі та надають повний доступ до ваших репозиторіїв.
@ -822,7 +825,7 @@ add_new_key=Додати SSH ключ
add_new_gpg_key=Додати GPG ключ
key_content_ssh_placeholder=Починається з «ssh-ed25519», «ssh-rsa», «ecdsa-sha2-nistp256», «ecdsa-sha2-nistp384», «ecdsa-sha2-nistp521», «sk-ecdsa-sha2-nistp256@openssh.com» або «sk-ssh-ed25519@openssh.com»
key_content_gpg_placeholder=Починається з «-----BEGIN PGP PUBLIC KEY BLOCK-----»
add_new_principal=Додати користувача
add_new_principal=Додати принципал
ssh_key_been_used=Цей SSH ключ вже був додано до сервера.
ssh_key_name_used=Ключ SSH з таким ім'ям вже існує у вашому обліковому записі.
ssh_principal_been_used=Цей користувач вже був доданий на сервер.
@ -915,7 +918,7 @@ twofa_desc=Двофакторна автентифікація підвищує
twofa_is_enrolled=Ваш обліковий запис на даний час <strong>використовує</strong> двофакторну автентифікацію.
twofa_not_enrolled=Ваш обліковий запис наразі не використовує двофакторну автентифікацію.
twofa_disable=Вимкнути двофакторну автентифікацію
twofa_scratch_token_regenerate=Перестворити токен одноразового пароля
twofa_scratch_token_regenerate=Згенерувати новий одноразовий ключ відновлення
twofa_enroll=Увімкнути двофакторну автентифікацію
twofa_disable_note=При необхідності можна відключити двофакторну автентифікацію.
twofa_disable_desc=Вимкнення двофакторної автентифікації зробить ваш обліковий запис менш безпечним. Продовжити?
@ -969,7 +972,7 @@ retype_new_password = Підтвердіть новий пароль
email_desc = Ваша основна адреса електронної пошти буде використовуватися для сповіщень, відновлення пароля і, за умови, що вона не прихована, для операцій з Git через веб-інтерфейс.
visibility.limited_tooltip = Видимий(а) тільки для авторизованих користувачів
visibility.private_tooltip = Видимий(а) тільки для учасників організацій, до яких ви приєдналися
twofa_scratch_token_regenerated = Ваш одноразовий код відновлення наразі %s. Збережіть його у безпечному місці, бо він не буде показаний знову.
twofa_scratch_token_regenerated = Ваш одноразовий ключ відновлення: %s. Збережіть його у безпечному місці, бо він не буде показаний знову.
authorized_oauth2_applications_description = Ви надали цим стороннім застосункам доступ до вашого облікового запису Forgejo. Будь ласка, відкличте доступ із застосунків, що більше не використовуються.
webauthn_delete_key = Видалити ключ безпеки
webauthn_key_loss_warning = Якщо ви втратите ключ безпеки, то втратите доступ до вашого облікового запису.
@ -977,7 +980,7 @@ webauthn_register_key = Додати ключ безпеки
webauthn_nickname = Псевдонім
webauthn_desc = Ключі безпеки — це апаратні пристрої, що містять криптографічні ключі. Вони можуть використовуватись для двофакторної автентифікації. Ключі безпеки мають підтримувати стандарт <a rel="noreferrer" target="_blank" href="%s">WebAuthn Authenticator</a>.
revoke_oauth2_grant_success = Доступ відкликано успішно.
twofa_recovery_tip = Якщо ви втратите ваш пристрій, ви зможете використати одноразовий код відновлення, щоб знову отримати доступ до свого облікового запису.
twofa_recovery_tip = Якщо ви втратите ваш пристрій, ви зможете використати одноразовий ключ відновлення, щоб знову отримати доступ до свого облікового запису.
webauthn_delete_key_desc = Якщо ви видалите ключ безпеки, ви більше не зможете з ним зайти. Продовжити?
change_password = Зміна пароля
email_notifications.andyourown = І ваші власні сповіщення
@ -1036,6 +1039,23 @@ webauthn_alternative_tip = Можливо, ви бажаєте налаштув
user_unblock_success = Користувач_ку успішно розблоковано.
user_block_success = Користувач_ку успішно заблоковано.
hidden_comment_types.ref_tooltip = Коментарі, в яких на цю задачу послалися з іншої задачі, коміту тощо
hidden_comment_types.issue_ref_tooltip = Коментарі, в яких користувач_ка змінює гілку чи тег, пов'язані з задачею
comment_type_group_reference = Посилання
comment_type_group_review_request = Запит на відгук
comment_type_group_issue_ref = Посилання на задачу
add_email_confirmation_sent = Лист підтвердження було надіслано «%s». Щоб підтвердити електронну пошту, перевірте вхідні й перейдіть за наведеним посиланням (на це маєте %s).
ssh_key_verified_long = Ключ перевірений за допомогою токена й може підтверджувати коміти з будь-яких активованих адрес електронної пошти користувач_ки.
ssh_token_signature = SSH-підпис у кодуванні Base64
add_principal_success = Принципал SSH-сертифіката «%s» додано.
access_token_deletion_desc = Видалення токена скасує доступ програм, які використовують цей токен, до вашого облікового запису. Це незворотна дія. Продовжити?
access_token_desc = При обраних для токена дозволах будуть авторизовані лише відповідні <a href="%[1]s" target="_blank">API</a>-роути. Докладніше в <a href="%[2]s" target="_blank">документації</a>.
update_oauth2_application_success = Програму OAuth2 успішно оновлено.
oauth2_client_secret_hint = Ключ більше не буде показано після закриття чи оновлення сторінки. Обов'язково його збережіть.
oauth2_application_remove_description = Видалена програма OAuth2 не зможе доступатись авторизованих користувацьких облікових записів на цьому сервері. Продовжити?
oauth2_application_locked = Forgejo попередньо реєструє деякі програми OAuth2 при запуску, якщо це увімкнено в конфігурації. Щоб запобігти неочікуваній поведінці, їх не можна редагувати чи видаляти. Докладніше — в документації OAuth2.
hooks.desc = Додайте вебхуки, які спрацьовуватимуть для <strong>всіх репозиторіїв</strong> у вашій власності.
[repo]
owner=Власник
owner_helper=Деякі організації можуть не відображатися у випадаючому списку через максимальну кількість репозиторііїв.
@ -1081,7 +1101,7 @@ trust_model_helper_committer=Учасник: довірені підписи у
trust_model_helper_collaborator_committer=Співавтор+Комітер: довірчі підписи від співавторів, які відповідають комітеру
trust_model_helper_default=За замовчуванням: використовувати стандартну модель довіри для цієї установки
create_repo=Створити репозиторій
default_branch=Головна гілка
default_branch=Типова гілка
default_branch_helper=Гілка за замовчуванням є базовою гілкою для запитів на злиття та комітів коду.
mirror_prune=Очистити
mirror_prune_desc=Видалення застарілих посилань які ви відслідковуєте
@ -1454,7 +1474,7 @@ issues.commented_at=`прокоментував(ла) <a href="#%s">%s</a>`
issues.delete_comment_confirm=Ви впевнені, що хочете видалити цей коментар?
issues.context.copy_link=Скопіювати посилання
issues.context.quote_reply=Цитувати відповідь
issues.context.reference_issue=Посилання в новій задачі
issues.context.reference_issue=Послатися в новій задачі
issues.context.edit=Редагувати
issues.context.delete=Видалити
issues.close_comment_issue=Прокоментувати і закрити
@ -1464,7 +1484,7 @@ issues.create_comment=Коментар
issues.closed_at=`закрив цю задачу <a id="%[1]s" href="#%[1]s">%[2]s</a>`
issues.reopened_at=`повторно відкрив цю задачу <a id="%[1]s" href="#%[1]s">%[2]s</a>`
issues.commit_ref_at=`згадано цю задачу в коміті <a id="%[1]s" href="#%[1]s">%[2]s</a>`
issues.ref_issue_from=`<a href="%[3]s">посилання на цю задачу %[4]s</a> <a id="%[1]s" href="#%[1]s">%[2]s</a>`
issues.ref_issue_from=`<a href="%[3]s">посилається на цю задачу %[4]s</a> <a id="%[1]s" href="#%[1]s">%[2]s</a>`
issues.ref_pull_from=`<a href="%[3]s">послався на цей запит злиття %[4]s</a> <a id="%[1]s" href="#%[1]s">%[2]s</a>`
issues.ref_closing_from=`<a href="%[3]s">згадав запит на злиття %[4]s, які закриють цю задачу</a> <a id="%[1]s" href="#%[1]s">%[2]s</a>`
issues.ref_reopening_from=`<a href="%[3]s">згадав запит на злиття %[4]s, які повторно відкриють цю задачу</a> <a id="%[1]s" href="#%[1]s">%[2]s</a>`
@ -1477,7 +1497,7 @@ issues.re_request_review=Повторно попросити рецензію
issues.is_stale=З часу останньої перевірки в цей PR було внесено деякі зміни
issues.remove_request_review=Видалити запит рецензування
issues.remove_request_review_block=Неможливо видалити запит рецензування
issues.dismiss_review=Відхилити рецензiю
issues.dismiss_review=Відхилити відгук
issues.dismiss_review_warning=Ви впевнені, що хочете відхилити цей відгук?
issues.sign_in_require_desc=<a href="%s">Підпишіться</a> щоб приєднатися до обговорення.
issues.edit=Редагувати
@ -1753,8 +1773,8 @@ wiki.save_page=Зберегти сторінку
wiki.last_commit_info=%s редагував цю сторінку %s
wiki.edit_page_button=Редагувати
wiki.new_page_button=Нова сторінка
wiki.file_revision=Ревізії сторінки
wiki.wiki_page_revisions=Ревізії вікі сторінок
wiki.file_revision=Версія сторінки
wiki.wiki_page_revisions=Версії сторінок
wiki.back_to_wiki=Повернутись на сторінку Вікі
wiki.delete_page_button=Видалити сторінку
wiki.page_already_exists=Вікі-сторінка з таким самим ім'ям вже існує.
@ -1802,8 +1822,8 @@ activity.title.unresolved_conv_1=%d Незавершене обговоренн
activity.title.unresolved_conv_n=%d Незавершених обговорень
activity.unresolved_conv_desc=Список всіх старих задач і Pull Request'ів з недавньої активністю, але ще не закритих або прийнятих.
activity.unresolved_conv_label=Відкрити
activity.title.releases_1=%d Реліз
activity.title.releases_n=%d Релізів
activity.title.releases_1=%d випуск
activity.title.releases_n=%d випусків
activity.title.releases_published_by=%s опубліковано %s
activity.published_release_label=Опубліковано
activity.no_git_activity=У цей період не було здійснено жодних дій.
@ -1862,7 +1882,7 @@ settings.mirror_settings.push_mirror.add=Додати Push дзеркало
settings.sync_mirror=Синхронізувати зараз
settings.site=Веб-сайт
settings.update_settings=Зберегти налаштування
settings.branches.update_default_branch=Оновити гілку за замовчуванням
settings.branches.update_default_branch=Оновити типову гілку
settings.advanced_settings=Додаткові налаштування
settings.wiki_desc=Увімкнути вікі репозиторію
settings.use_internal_wiki=Використовувати вбудовану вікі
@ -1964,10 +1984,10 @@ settings.search_team=Знайти команду…
settings.change_team_permission_tip=Дозволи команди встановлюються на сторінці налаштувань команди та не можуть бути заданими для кожного з репозиторіїв окремо
settings.delete_team_tip=Ця команда має доступ до всіх репозиторіїв та не може бути видалена
settings.remove_team_success=Доступ команди до репозиторію видалений.
settings.add_webhook=Додати веб-хук
settings.add_webhook=Додати вебхук
settings.add_webhook.invalid_channel_name=Назва каналу Webhook не може бути порожньою і не може містити лише символ #.
settings.hooks_desc=Веб-хуки автоматично робить HTTP POST-запити на сервер, коли відбуваються певні події Forgejo. Дізнайтеся більше в <a target="_blank" rel="noopener" href="%s"> інструкції по використанню web-хуків </a>.
settings.webhook_deletion=Видалити веб-хук
settings.webhook_deletion=Видалити вебхук
settings.webhook_deletion_desc=Видалення цього веб-хука призведе до видалення всієї пов'язаної з ним інформації, включаючи історію. Бажаєте продовжити?
settings.webhook_deletion_success=Webhook видалено.
settings.webhook.test_delivery=Перевірити доставку
@ -1999,7 +2019,7 @@ settings.event_header_repository=Події репозиторію
settings.event_create=Створити
settings.event_create_desc=Гілку або тег створено.
settings.event_delete=Видалити
settings.event_delete_desc=Гілку або мітку було видалено.
settings.event_delete_desc=Гілку або тег видалено.
settings.event_fork=Форк
settings.event_fork_desc=Репозиторій було форкнуто.
settings.event_wiki=Вікі
@ -2017,7 +2037,7 @@ settings.event_issue_assign_desc=Задачу призначено або ска
settings.event_issue_label=Мітки
settings.event_issue_label_desc=Додавання або видалення міток задач.
settings.event_issue_milestone=Задача з етапом
settings.event_issue_milestone_desc=Задача призначена на етап або видалена з етапу.
settings.event_issue_milestone_desc=Етап призначено, видалено або змінено.
settings.event_issue_comment=Коментарі
settings.event_issue_comment_desc=Коментар задачі створено, видалено чи відредаговано.
settings.event_header_pull_request=Події запиту на злиття
@ -2027,22 +2047,22 @@ settings.event_pull_request_assign=Призначення
settings.event_pull_request_assign_desc=Запит про злиття призначено або скасовано.
settings.event_pull_request_label=Мітки
settings.event_pull_request_label_desc=Мітки запиту на злиття оновлено або очищено.
settings.event_pull_request_milestone=Запит на злиття призначений на етап
settings.event_pull_request_milestone_desc=Запит на злиття призначений на етап або видалений з етапу.
settings.event_pull_request_milestone=Етапи
settings.event_pull_request_milestone_desc=Етап призначено, видалено або змінено.
settings.event_pull_request_comment=Коментарі
settings.event_pull_request_comment_desc=Коментар запиту на злиття створено, відредаговано чи видалено.
settings.event_pull_request_review=Запит на злиття рецензовано
settings.event_pull_request_review_desc=Коментар запиту до злиття підтверджений, відхилений або рецензований.
settings.event_pull_request_review=Відгуки
settings.event_pull_request_review_desc=Запит на злиття схвалено, відхилено або прокоментовано.
settings.event_pull_request_sync=Синхронізовано
settings.event_pull_request_sync_desc=Запит до злиття синхронізовано.
settings.event_pull_request_sync_desc=Гілку автоматично оновлено цільовою гілкою.
settings.branch_filter=Фільтр гілок
settings.branch_filter_desc=Білий список гілок для push, створення гілок та видалення гілок, визначається як шаблон glob. Якщо він порожній або містить <code>*</code>, то реєструються події для всіх гілок. Дивіться синтаксис у документації на <a href="%[1]s">%[2]s</a>. Наприклад: <code>master</code>, <code>{master,release*}</code>.
settings.active=Активний
settings.active_helper=Інформацію про викликані події буде надіслано за цією веб-хук URL-адресою.
settings.add_hook_success=Веб-хук було додано.
settings.update_webhook=Оновити веб-хук
settings.update_webhook=Оновити вебхук
settings.update_hook_success=Веб-хук було оновлено.
settings.delete_webhook=Видалити веб-хук
settings.delete_webhook=Видалити вебхук
settings.recent_deliveries=Недавні розсилки
settings.hook_type=Тип хука
settings.slack_token=Токен
@ -2051,7 +2071,7 @@ settings.slack_channel=Канал
settings.deploy_keys=Ключі для розгортання
settings.add_deploy_key=Додати ключ для розгортання
settings.deploy_key_desc=Ключі розгортання доступні тільки для читання. Це не те ж саме що і SSH-ключі аккаунта.
settings.is_writable=Увімкнути доступ для запису
settings.is_writable=Увімкнути доступ на запис
settings.is_writable_info=Чи може цей ключ бути використаний для виконання <strong>push</strong> в репозиторій? Ключі розгортання завжди мають доступ на pull.
settings.no_deploy_keys=Ви не додавали ключі розгортання.
settings.title=Заголовок
@ -2113,8 +2133,8 @@ settings.choose_branch=Оберіть гілку…
settings.no_protected_branch=Немає захищених гілок.
settings.edit_protected_branch=Редагувати
settings.protected_branch_required_approvals_min=Число необхідних схвалень не може бути від'ємним.
settings.tags=Мітки
settings.tags.protection=Захист мітки
settings.tags=Теги
settings.tags.protection=Захист тегу
settings.tags.protection.pattern=Шаблон тега
settings.tags.protection.allowed=Дозволено
settings.tags.protection.allowed.users=Дозволені користувачі
@ -2133,7 +2153,7 @@ settings.archive.success=Репозиторію успішно присвоєн
settings.archive.error=Сталася помилка при спробі архівувати репозиторій. Докладнішу інформацію див. у журналі.
settings.archive.error_ismirror=Неможливо архівувати дзеркальний репозиротрій.
settings.archive.branchsettings_unavailable=Параметри гілки недоступні в архівованих репозиторіях.
settings.archive.tagsettings_unavailable=Параметри міток недоступні в архівованих репозиторіях.
settings.archive.tagsettings_unavailable=Параметри тегів недоступні в архівованих репозиторіях.
settings.update_avatar_success=Аватар репозиторію оновлений.
settings.lfs=LFS
settings.lfs_filelist=Файли LFS, які зберігаються в цьому репозиторії
@ -2206,7 +2226,7 @@ diff.comment.add_single_comment=Додати простий коментар
diff.comment.add_review_comment=Додати коментар
diff.comment.start_review=Розпочати рецензію
diff.comment.reply=Відповідь
diff.review=Рецензія
diff.review=Завершити відгук
diff.review.header=Надіслати рецензію
diff.review.placeholder=Рецензійований коментарій
diff.review.comment=Коментар
@ -2222,7 +2242,7 @@ releases.desc=Відслідковувати версії проєкту і за
release.releases=Релізи
release.detail=Деталі релізу
release.tags=Теги
release.new_release=Новий реліз
release.new_release=Новий випуск
release.draft=Чернетка
release.prerelease=Пре-реліз
release.stable=Стабільний
@ -2247,15 +2267,15 @@ release.delete_tag=Видалити тег
release.deletion=Видалити реліз
release.deletion_success=Реліз, було видалено.
release.deletion_tag_desc=Буде видалено цей тег із репозиторію. Вміст репозиторія та історія залишаться незмінними. Продовжити?
release.deletion_tag_success=Мітка видалена.
release.tag_name_already_exist=Реліз з цим ім'ям мітки вже існує.
release.deletion_tag_success=Тег видалено.
release.tag_name_already_exist=Випуск із такою назвою тегу вже існує.
release.tag_name_invalid=Неприпустиме ім'я тега.
release.tag_name_protected=Ім'я тега захищене.
release.tag_already_exist=Цей тег вже використовується.
release.downloads=Завантажити
release.download_count=Завантаження: %s
release.add_tag_msg=Використовуйте заголовок і зміст релізу як повідомлення як тег повідомлення.
release.add_tag=Створити тільки мітку
release.add_tag=Створити тег
branch.name=Назва гілки
branch.delete_head=Видалити
@ -2446,7 +2466,7 @@ signing.will_sign = Коміт буде підписано ключем «%s».
signing.wont_sign.error = Під час перевірки можливості підписати коміт сталася помилка.
commits.search_branch = У цій гілці
ext_wiki = Зовнішня вікі
pulls.commit_ref_at = `послався на цей запит на злиття в коміті <a id="%[1]s" href="#%[1]s">%[2]s</a>`
pulls.commit_ref_at = `посилається на цей запит на злиття в коміті <a id="%[1]s" href="#%[1]s">%[2]s</a>`
pulls.cmd_instruction_hint = Переглянути інструкції для командного рядка
issues.max_pinned = Неможливо закріпити більше задач
issues.unpin_comment = відкріпив %s
@ -2514,6 +2534,99 @@ stars = Зірки
activity.navbar.pulse = Пульс
activity.navbar.code_frequency = Частота кодування
rss.must_be_on_branch = Щоб мати RSS-стрічку, вам потрібно бути в гілці.
admin.manage_flags = Керування прапорцями
admin.enabled_flags = Для репозиторія ввімкнено прапорці:
admin.update_flags = Оновити прапорці
admin.failed_to_replace_flags = Не вдалося замінити прапорці репозиторія
admin.flags_replaced = Прапорці репозиторія замінено
new_repo_helper = Репозиторій містить усі файли проєкту, зокрема історію змін. У вас він уже десь є? <a href="%s">Мігруйте репозиторій</a>.
object_format_helper = Формат об'єктів репозиторія. Змінити потім неможливо. SHA1 — найсумісніший.
default_branch_label = типова
mirror_interval = Інтервал синхронізації дзеркала (часові одиниці — «h», «m», «s»). 0 вимикає синхронізацію. (Мінімальний інтервал: %s)
mirror_use_ssh.helper = Forgejo може віддзеркалювати репозиторій за допомогою Git через SSH, згенерувавши вам пару ключів. Дозвольте відкритому ключу вивантажувати зміни в цільовий репозиторій. При виборі цієї опції вхід паролем неможливий.
mirror_use_ssh.not_available = SSH-вхід недоступний.
mirror_denied_combination = Неможливо водночас використовувати вхід відкритим ключем і паролем.
mirror_sync = синхронізовано
mirror_sync_on_commit = Синхронізувати при вивантаженні комітів
mirror_address_url_invalid = Вказано хибну URL-адресу. Замініть escape-послідовностями всі неоднозначні складники адреси.
mirror_address_protocol_invalid = Хибна URL-адреса. Лише адреси http(s):// чи git:// можна використовувати для віддзеркалення.
stars_remove_warning = Це вилучить усі зірки репозиторія.
desc.sha256 = SHA256
n_release_one = %s випуск
n_release_few = %s випусків
issues.num_reviews_one = %d відгук
issues.num_reviews_few = %d відгуків
issues.reference_link = Посилання: %s
settings.event_pull_request_review_request = Запити на відгук
settings.event_pull_request_review_request_desc = Створено або видалено запит на відгук до запиту на злиття.
settings.rename_branch_failed_protected = Неможливо перейменувати гілку %s, оскільки ця гілка захищена.
release.releases_for = Випуски %s
release.type_attachment = Вкладення
tree_path_not_found_commit = Шлях %[1]s не існує в коміті %[2]s
pulls.blocked_by_user = Ви не можете створити запит на злиття в цьому репозиторії, оскільки вас заблокував власник репозиторію.
activity.commit = К-ть комітів
settings.actions_desc = Увімкнути вбудовані конвеєри CI/CD з Діями Forgejo
tree_path_not_found_branch = Шлях %[1]s не існує в гілці %[2]s
tree_path_not_found_tag = Шлях %[1]s не існує в тегу %[2]s
n_tag_one = %s тег
n_tag_few = %s тегів
generated = Згенерований
commit.contained_in = Цей коміт міститься в:
commit.contained_in_default_branch = Цей коміт — частина типової гілки
commit.load_referencing_branches_and_tags = Завантажити гілки і теги, які посилаються на цей коміт
editor.branch_does_not_exist = У цьому репозиторії немає гілки «%s».
editor.branch_already_exists = Гілка «%s» вже є у цьому репозиторії.
editor.fail_to_update_file = Не вдалося оновити/створити файл «%s».
editor.upload_file_is_locked = Файл «%s» заблоковано %s.
commits.no_commits = Немає спільних комітів. У «%s» і «%s» зовсім різні історії.
issues.reaction.alt_few = %[1]s реагує %[2]s.
issues.context.menu = Меню коментаря
issues.delete.title = Видалити цю задачу?
pulls.view = Переглянути запит на злиття
pulls.allow_edits_from_maintainers_desc = Користувачі з доступом на запис у базову гілку можуть також виконувати push у цю гілку
pulls.select_commit_hold_shift_for_range = Виберіть коміт. Клацніть, утримуючи Shift, щоб вибрати діапазон
pulls.nothing_to_compare_have_tag = Вибрані гілки/теги однакові.
pulls.reopen_failed.head_branch = Ви не можете знову відкрити цей запит на злиття, оскільки головна гілка більше не існує.
pulls.reopen_failed.base_branch = Ви не можете знову відкрити цей запит на злиття, оскільки базова гілка більше не існує.
pulls.delete_after_merge.head_branch.is_default = Головна гілка, яку ви намагаєтеся видалити, є типовою гілкою. Її неможливо видалити.
pulls.delete_after_merge.head_branch.is_protected = Головна гілка, яку ви намагаєтеся видалити, є захищеною і її неможливо видалити.
pulls.delete_after_merge.head_branch.insufficient_branch = У вас немає дозволу видаляти головну гілку.
milestones.create_success = Етап «%s» створено.
milestones.edit_success = Етап «%s» оновлено.
activity.published_tag_label = Тег
settings.mirror_settings.docs.can_still_use = Хоча ви не можете змінювати наявні дзеркала або створювати нові, ви можете використовувати наявне дзеркало.
settings.branches.switch_default_branch = Змінити типову гілку
settings.default_update_style_desc = Типовий стиль оновлення для запитів на злиття, що знаходяться позаду базової гілки.
settings.confirmation_string = Рядок підтвердження
settings.confirm_wiki_branch_rename = Перейменувати гілку вікі
settings.protect_new_rule = Створити нове правило захисту гілок
settings.protect_enable_merge_desc = Будь-хто з доступом на запис зможе об'єднувати запити на злиття у цю гілку.
release.tag_helper_new = Новий тег. Цей тег буде створено з цілі.
release.tag_helper_existing = Наявний тег.
release.message = Опишіть цей випуск
release.asset_external_url = Зовнішня URL-адреса
branch.already_exists = Гілка з назвою «%s» вже існує.
branch.create_from = з «%s»
branch.create_success = Гілку «%s» створено.
branch.branch_already_exists = Гілка «%s» вже є у цьому репозиторії.
branch.restore_success = Гілку «%s» відновлено.
branch.restore_failed = Не вдалося відновити гілку «%s».
branch.protected_deletion_failed = Гілку «%s» захищено. Її неможливо видалити.
branch.default_deletion_failed = Гілка «%s» є типовою. Її неможливо видалити.
branch.restore = Відновити гілку «%s»
branch.download = Завантажити гілку «%s»
branch.rename = Перейменувати гілку «%s»
branch.warning_rename_default_branch = Ви збираєтеся перейменувати типову гілку.
branch.rename_branch_to = Перейменувати «%s» на:
branch.new_branch_from = Створити нову гілку з «%s»
tag.create_tag_operation = Створити тег
tag.confirm_create_tag = Створити тег
tag.create_tag_from = Створити новий тег із «%s»
tag.create_success = Тег «%s» створено.
[graphs]
contributors.what = внески
component_loading_info = Це може зайняти деякий час…
@ -2586,13 +2699,13 @@ members.member=Учасник
members.remove=Видалити
members.remove.detail=Вилучити %[1]s з %[2]s?
members.leave=Покинути
members.leave.detail=Покинути %s?
members.leave.detail=Ви впевнені, що хочете покинути організацію «%s»?
members.invite_desc=Додати нового учасника до %s:
members.invite_now=Запросити зараз
teams.join=Приєднатися
teams.leave=Покинути
teams.leave.detail=Покинути %s?
teams.leave.detail=Ви впевнені, що хочете покинути команду «%s»?
teams.can_create_org_repo=Створити репозиторії
teams.can_create_org_repo_helper=Учасники можуть створювати нові репозиторії в організації. Автор отримає доступ адміністратора до нового репозиторію.
teams.read_access=Прочитані
@ -2638,6 +2751,11 @@ teams.invite.title = Вас запрошено приєднатися до ко
form.name_reserved = Назву організації «%s» зарезервовано.
teams.none_access = Немає доступу
teams.write_access = Запис
teams.invite_team_member = Запросити до %s
[admin]
dashboard=Панель управління
users=Облікові записи користувачів
@ -2734,7 +2852,7 @@ users.repos=Репозиторії
users.created=Створено
users.last_login=Останній вхід
users.never_login=Ніколи не входив
users.send_register_notify=Надіслати повідомлення про реєстрацію користувача
users.send_register_notify=Повідомити про реєстрацію на електронну пошту
users.edit=Редагувати
users.auth_source=Джерело автентифікації
users.local=Локальні
@ -2771,7 +2889,7 @@ users.list_status_filter.not_prohibit_login=Вхід дозволено
users.list_status_filter.is_2fa_enabled=2FA увімкнено
users.list_status_filter.not_2fa_enabled=2FA вимкнено
emails.email_manage_panel=Управління поштою користувача
emails.email_manage_panel=Керування електронними адресами користувачів
emails.primary=Головний
emails.activated=Активовано
emails.filter_sort.email=Електронна пошта
@ -2807,7 +2925,7 @@ packages.type=Тип
packages.repository=Репозиторій
packages.size=Розмір
defaulthooks=Веб-хуки за замовчуванням
defaulthooks=Вебхуки за замовчуванням
defaulthooks.add_webhook=Додати веб-хук за замовчуванням
defaulthooks.update_webhook=Змінити веб-хук за замовчуванням
@ -2900,7 +3018,7 @@ auths.tip.google_plus=Отримайте облікові дані клієнт
auths.tip.openid_connect=Використовуйте OpenID Connect Discovery URL (<server>/.well-known/openid-configuration) для автоматичної настройки входу OAuth
auths.tip.twitter=Перейдіть на %s, створіть програму і переконайтеся, що включена опція «Дозволити цю програму для входу в систему за допомогою Twitter»
auths.tip.discord=Зареєструйте новий додаток на %s
auths.tip.yandex=Створіть новий додаток на %s. Виберіть наступні дозволи з «Yandex.Passport API»: «Доступ до адреси електронної пошти», «Доступ до аватара» і «Доступ до імені користувача, імені та прізвища, статі»
auths.tip.yandex=Створіть новий додаток на %s. У розділі «Yandex.Passport API» виберіть такі дозволи: «Доступ до адреси електронної пошти», «Доступ до аватара» і «Доступ до імені користувача, імені та прізвища, статі»
auths.tip.mastodon=Введіть URL спеціального екземпляра для екземпляра mastodon, який ви хочете автентифікувати за допомогою (або використовувати за замовчуванням)
auths.edit=Редагувати джерело автентифікації
auths.activated=Це джерело авторизації активоване
@ -2975,11 +3093,11 @@ config.default_allow_create_organization=Дозволити створення
config.enable_timetracking=Увімкнути відстеження часу
config.default_enable_timetracking=Увімкнути відстеження часу за замовчуванням
config.default_allow_only_contributors_to_track_time=Враховувати тільки учасників розробки в підрахунку часу
config.no_reply_address=Прихований домен електронної пошти
config.no_reply_address=Домен прихованих адрес електронної пошти
config.default_visibility_organization=Видимість за замовчуванням для нових організацій
config.default_enable_dependencies=Увімкнути залежності задачі за замовчуванням
config.webhook_config=Конфігурація web-хуків
config.webhook_config=Конфігурація вебхуків
config.queue_length=Довжина черги
config.deliver_timeout=Затримка доставки
config.skip_tls_verify=Пропустити перевірку TLS
@ -3085,7 +3203,7 @@ packages.total_size = Загальний розмір: %s
packages.unreferenced_size = Розмір без посилань: %s
packages.creator = Творець
packages.version = Версія
packages.package_manage_panel = Керувати пакунками
packages.package_manage_panel = Керування пакунками
packages.published = Опубліковано
notices.operations = Дії
packages.cleanup = Очистити недійсні дані
@ -3121,6 +3239,32 @@ auths.tip.gitlab_new = Зареєструйте новий додаток на %
users.reserved = Зарезервовано
dashboard.cleanup_actions = Очистити прострочені журнали й артефакти від дій
dashboard.gc_lfs = Виконати очистку сміття метаоб'єктів LFS
systemhooks.desc = Вебхуки автоматично сповіщають HTTP-сервер POST-запитами, коли в Forgejo відбуваються певні події. Вказані тут вебхуки спрацьовуватимуть для всіх репозиторіїв системи, тож врахуйте всі ймовірні наслідки для швидкодії. Докладніше — в <a target="_blank" rel="noopener" href="%s">посібнику з вебхуків</a>.
dashboard.new_version_hint = Вийшла %s версія Forgejo, ви використовуєте %s. Докладніше читайте у <a target="_blank" rel="noreferrer" href="%s">блозі</a>.
dashboard.task.cancelled = Завдання: %[1]s скасовано: %[3]s
dashboard.cron.cancelled = Cron: %[1]s скасовано: %[3]s
dashboard.sync_branch.started = Розпочато синхронізацію гілок
dashboard.sync_tag.started = Розпочато синхронізацію тегів
emails.change_email_text = Ви впевнені, що хочете оновити цю адресу електронної пошти?
emails.delete = Видалити електронну адресу
emails.delete_desc = Ви впевнені, що хочете видалити цю адресу електронної пошти?
emails.deletion_success = Адресу електронної пошти видалено.
emails.delete_primary_email_error = Ви не можете видалити основну адресу електронної пошти.
defaulthooks.desc = Вебхуки автоматично сповіщають HTTP-сервер POST-запитами, коли в Forgejo відбуваються певні події. Вказані тут вебхуки є типовими і будуть скопійовані до всіх нових репозиторіїв. Докладніше — в <a target="_blank" rel="noopener" href="%s">посібнику з вебхуків</a>.
auths.default_domain_name = Домен за замовчуванням для адрес електронної пошти
auths.tips.gmail_settings = Налаштування Gmail:
config.mailer_protocol = Протокол
config.test_mail_failed = Не вдалося надіслати тестового листа «%s»: %v
config.test_mail_sent = Тестового листа надіслано «%s».
self_check.database_collation_mismatch = Очікується, що база даних використовує зіставлення: %s
self_check.database_collation_case_insensitive = База даних використовує зіставлення %s, яке є нечутливим до регістру. Forgejo може працювати з ним, однак можливі рідкісні випадки, коли щось працюватиме не так, як очікувалося.
self_check.database_inconsistent_collation_columns = База даних використовує зіставлення %s, але ці стовпчики використовують невідповідні зіставлення. Це може спричинити деякі несподівані проблеми.
self_check.database_fix_mysql = Користувачі MySQL та MariaDB можуть скористатися командою «forgejo doctor convert», щоб виправити проблеми зіставлення, або виправити проблему вручну за допомогою «ALTER ... COLLATE ...» SQL.
[action]
create_repo=створив(ла) репозиторій <a href="%s">%s</a>
rename_repo=репозиторій перейменовано з <code>%[1]s</code> на <a href="%[2]s">%[3]s</a>
@ -3135,8 +3279,8 @@ comment_issue=`прокоментував задачу <a href="%[1]s">%[3]s#%[2
comment_pull=`прокоментував запит злиття <a href="%[1]s">%[3]s#%[2]s</a>`
merge_pull_request=`прийняв запит злиття <a href="%[1]s">%[3]s#%[2]s</a>`
transfer_repo=перенесено репозиторій <code>%s</code> у <a href="%s">%s</a>
push_tag=створив мітку <a href="%[2]s">%[3]s</a> в <a href="%[1]s">%[4]s</a>
delete_tag=видалено мітку %[2]s з <a href="%[1]s">%[3]s</a>
push_tag=надсилає тег <a href="%[2]s">%[3]s</a> в <a href="%[1]s">%[4]s</a>
delete_tag=видаляє тег %[2]s із <a href="%[1]s">%[3]s</a>
delete_branch=видалено гілку %[2]s з <a href="%[1]s">%[3]s</a>
compare_branch=Порівняти
compare_commits=Порівняти %d комітів
@ -3146,7 +3290,7 @@ mirror_sync_create=синхронізував нове посилання <a hre
mirror_sync_delete=синхронізовано й видалено посилання <code>%[2]s</code> на <a href="%[1]s">%[3]s</a> із дзеркала
approve_pull_request=`схвалив <a href="%[1]s">%[3]s#%[2]s</a>`
reject_pull_request=`запропонував зміни до <a href="%[1]s">%[3]s#%[2]s</a>`
publish_release=`опублікував випуск <a href="%[2]s"> "%[4]s" </a> з <a href="%[1]s">%[3]s</a>`
publish_release=`публікує випуск <a href="%[2]s">%[4]s</a> з <a href="%[1]s">%[3]s</a>`
review_dismissed=`відхилив відгук від <b>%[4]s</b> для <a href="%[1]s">%[3]s#%[2]s</a>`
review_dismissed_reason=Причина:
create_branch=створив гілку <a href="%[2]s">%[3]s</a> в <a href="%[1]s">%[4]s</a>
@ -3227,8 +3371,8 @@ arch.version.conflicts = Суперечки
arch.version.replaces = Заміни
arch.version.provides = Надає
arch.version.groups = Група
conda.install = Аби встановити пакунок, використовуючи Conda, запустіть команду:
cargo.install = Аби встановити пакунок, використовуючи Cargo, запустіть команду:
conda.install = Аби встановити пакунок, використовуючи Conda, виконайте команду:
cargo.install = Аби встановити пакунок, використовуючи Cargo, виконайте команду:
versions.view_all = Переглянути всі
generic.download = Завантажте пакунок із командного рядка:
details = Подробиці
@ -3236,21 +3380,21 @@ arch.version.optdepends = Необовʼязково залежить
installation = Установлення
details.license = Ліцензія
filter.type.all = Усі
conan.install = Аби встановити пакунок, використовуючи Conan, запустіть команду:
conan.install = Аби встановити пакунок, використовуючи Conan, виконайте команду:
container.layers = Шари образу
details.project_site = Вебсторінка проєкту
details.documentation_site = Вебсторінка документації
desc = Керувати пакунками репозиторію.
desc = Керування пакунками репозиторію.
requirements = Вимоги
dependencies = Залежності
empty.repo = Ви опублікували пакунок, але він не показаний тут? Перейдіть до <a href="%[1]s">налаштувань пакунків</a> та привʼяжіть його до цього репозиторію.
alpine.repository = Про репозиторій
alpine.install = Аби встановити цей пакунок, запустіть команду:
cran.install = Аби встановити пакунок, запустіть команду:
alpine.install = Аби встановити цей пакунок, виконайте команду:
cran.install = Аби встановити пакунок, виконайте команду:
composer.dependencies.development = Залежності розробки
container.labels.key = Ключ
container.labels.value = Значення
composer.install = Аби встановити пакунок, використовуючи Composer, запустіть команду:
composer.install = Аби встановити пакунок, використовуючи Composer, виконайте команду:
debian.repository.components = Складові
filter.container.tagged = Відмічений
filter.container.untagged = Невідмічений
@ -3260,20 +3404,20 @@ arch.pacman.sync = Синхронізуйте пакунок з pacman:
arch.pacman.conf = Додайте сервер з повʼязаним дострибутивом та архітектурою до <code>/etc/pacman.conf</code> :
arch.version.properties = Властивості версії
arch.version.description = Опис
chef.install = Аби встановити пакунок, запустіть команду:
chef.install = Аби встановити пакунок, виконайте команду:
container.details.platform = Платформа
container.details.type = Тип образу
container.pull = Завантажити образ із командного рядка:
details.repository_site = Вебсторінка репозиторію
composer.dependencies = Залежності
debian.install = Аби встановити пакунок, запустіть команду:
debian.install = Аби встановити пакунок, виконайте команду:
debian.repository = Про репозиторій
debian.repository.distributions = Дистрибутиви
alpine.repository.architectures = Архітектури
arch.version.depends = Залежить
go.install = Встановити пакунок із командного рядка:
debian.repository.architectures = Архітектури
helm.install = Аби встановити пакунок, запустіть команду:
helm.install = Аби встановити пакунок, виконайте команду:
keywords = Ключові слова
assets = Ресурси
versions = Версії
@ -3305,6 +3449,26 @@ rpm.registry = Налаштуйте цей реєстр із командног
rpm.repository.multiple_groups = Цей пакунок доступний у кількох групах.
swift.registry = Налаштуйте цей реєстр із командного рядка:
maven.install = Для використання пакунка включіть у блок <code>dependencies</code> у файлі <code>pom.xml</code> таке:
nuget.install = Аби встановити пакунок, використовуючи NuGet, виконайте команду:
npm.install = Аби встановити пакунок, використовуючи npm, виконайте команду:
pub.install = Аби встановити пакунок, використовуючи Dart, виконайте команду:
pypi.install = Аби встановити пакунок, використовуючи pip, виконайте команду:
rpm.install = Щоб установити пакунок, виконайте команду:
rubygems.install = Аби встановити пакунок, використовуючи gem, виконайте команду:
swift.install2 = і виконайте команду:
vagrant.install = Щоб додати скриньку Vagrant, виконайте команду:
published_by = %[1]s опубліковано <a href="%[2]s">%[3]s</a>
published_by_in = %[1]s опубліковано <a href="%[2]s">%[3]s</a> в <a href="%[4]s"><strong>%[5]s</strong></a>
alpine.registry.info = Виберіть $branch і $repository зі списку нижче.
npm.install2 = або додайте його у файл package.json:
npm.details.tag = Тег
rubygems.install2 = або додайте його у Gemfile:
swift.install = Додайте пакунок у свій файл <code>Package.swift</code>:
settings.link.select = Виберіть репозиторій
owner.settings.chef.keypair = Згенерувати пару ключів
[secrets]
deletion = Видалити секрет
creation.success = Секрет «%s» додано.
@ -3382,6 +3546,35 @@ need_approval_desc = Потрібне схвалення для запуску
runners.last_online = Востаннє в мережі
runners.task_list.done_at = Завершено
variables.not_found = Не вдалося знайти змінну.
unit.desc = Керування вбудованими конвеєрами CI/CD з Діями Forgejo.
runs.no_workflows.help_write_access = Не знаєте, як почати роботу з Діями Forgejo? Перегляньте <a target="_blank" rel="noopener noreferrer" href="%s">посібник для початківців у документації</a>, щоб написати свій перший робочий потік, а потім <a target="_blank" rel="noopener noreferrer" href="%s">налаштуйте ранер Forgejo</a> для виконання завдань.
runs.no_workflows.help_no_write_access = Щоб дізнатися більше про Дії Forgejo, читайте <a target="_blank" rel="noopener noreferrer" href="%s">документацію</a>.
runners = Ранери
runners.runner_manage_panel = Керування ранерами
runners.new = Створити новий ранер
runners.new_notice = Як запустити ранер
runners.runner_title = Ранер
runners.task_list = Нещодавні завдання ранера
runners.edit_runner = Редагувати ранер
runners.update_runner_success = Ранер оновлено
runners.update_runner_failed = Не вдалося оновити ранер
runners.delete_runner = Видалити цей ранер
runners.delete_runner_success = Ранер успішно видалено
runners.delete_runner_failed = Не вдалося видалити ранер
runners.delete_runner_header = Підтвердіть видалення ранера
runners.delete_runner_notice = Якщо на цьому ранері виконується завдання, його буде завершено і позначено як невдале. Це може порушити робочий потік збірки.
runners.none = Немає доступних ранерів
runners.reset_registration_token_success = Токен реєстрації ранера успішно скинуто
runs.no_matching_online_runner_helper = Не знайдено ранера в мережі з міткою: %s
runs.no_runs = Робочий потік ще не запускався.
workflow.dispatch.run = Запустити робочий потік
workflow.dispatch.success = Запит на запуск робочого потоку успішно створено.
[projects]
type-3.display_name = Проєкт організації
type-2.display_name = Проєкт репозиторію

View file

@ -87,10 +87,10 @@ rerun=重新运行
rerun_all=重新运行所有任务
save=保存
add=添加
add_all=添加所有
add_all=全部添加
remove=移除
remove_all=移除所有
remove_label_str=删除标签 "%s"
remove_all=全部移除
remove_label_str=删除标签“%s”
edit=编辑
view=查看
@ -143,7 +143,7 @@ confirm_delete_selected=确认删除所有选中项目?
name=名称
value=
filter = 筛选
filter.clear = 清除筛选条件
filter.clear = 清除条件
filter.is_archived = 已存档
filter.not_archived = 未存档
filter.is_fork = 是派生
@ -243,7 +243,7 @@ user=用户名
password=数据库用户密码
db_name=数据库名称
db_schema=架构模式
db_schema_helper=留空则数据库中默认值为("public")
db_schema_helper=留空则数据库中默认值为"public"
ssl_mode=SSL
path=数据库文件路径
sqlite_helper=SQLite3 数据库的文件路径。<br>如果以服务的方式运行 Forgejo请输入绝对路径。
@ -276,7 +276,7 @@ ssh_port_helper=SSH 服务器的端口号,为空则禁用它。
http_port=HTTP 服务端口
http_port_helper=Forgejos web 服务器将侦听的端口号。
app_url=基础URL
app_url_helper=用于 HTTP (S) 克隆和电子邮件通知的基本地址
app_url_helper=用于 HTTP(S) 克隆和电子邮件通知的基础URL
log_root_path=日志路径
log_root_path_helper=日志文件将写入此目录。
@ -317,7 +317,7 @@ admin_email=电子邮件地址
install_btn_confirm=立即安装
test_git_failed=无法识别 “git” 命令:%v
sqlite3_not_available=当前 Forgejo 版本不支持 SQLite3。请从 %s 下载官方构建版(注:请勿下载标有 “gobuild” 的版本)。
invalid_db_setting=数据库设置无效: %v
invalid_db_setting=数据库设置无效%v
invalid_db_table=数据库表 '%s' 无效: %v
invalid_repo_path=仓库根目录设置无效:%v
invalid_app_data_path=应用数据路径无效: %v
@ -325,8 +325,8 @@ run_user_not_match=运行用户名不是当前的用户名:%s -> %s
internal_token_failed=生成内部令牌失败: %v
secret_key_failed=生成密钥失败: %v
save_config_failed=应用配置保存失败:%v
invalid_admin_setting=管理员帐户设置无效: %v
invalid_log_root_path=日志路径无效: %v
invalid_admin_setting=管理员帐户设置无效%v
invalid_log_root_path=日志路径无效%v
default_keep_email_private=默认情况下隐藏电子邮件地址
default_keep_email_private.description=默认为新用户启用电子邮件地址隐藏,防止这些信息在注册后立即泄露。
default_allow_create_organization=默认情况下允许创建组织
@ -369,7 +369,7 @@ show_both_archived_unarchived=显示已存档和未存档的
show_only_archived=只显示已存档的
show_only_unarchived=只显示未存档的
show_private=私有
show_private=私有
show_both_private_public=同时显示公开的和私有的
show_only_private=只显示私有的
show_only_public=只显示公开的
@ -536,8 +536,8 @@ release.new.text=<b>@%[1]s</b> 于 %[3]s 发布了 %[2]s
release.title=标题: %s
release.note=注释:
release.downloads=下载:
release.download.zip=源代码 (ZIP)
release.download.targz=源代码 (TAR.GZ)
release.download.zip=源代码ZIP
release.download.targz=源代码TAR.GZ
repo.transfer.subject_to=%s 想要将 "%s" 仓库转让给 %s
repo.transfer.subject_to_you=%s 想要将 "%s" 仓库转让给你
@ -641,7 +641,7 @@ password_complexity=密码未达到复杂程度要求:
password_lowercase_one=至少一个小写字符
password_uppercase_one=至少一个大写字符
password_digit_one=至少一个数字
password_special_one=至少一个特殊字符(标点符号,括号,引号等)
password_special_one=至少一个特殊字符(标点符号,括号,引号等)
enterred_invalid_repo_name=输入的仓库名称不正确。
enterred_invalid_org_name=您输入的组织名称不正确。
enterred_invalid_owner_name=新的所有者名称无效。
@ -653,8 +653,8 @@ cannot_add_org_to_team=组织不能被加入到团队中。
duplicate_invite_to_team=此用户已被邀请为团队成员。
organization_leave_success=您已成功离开组织 %s。
invalid_ssh_key=无法验证您的 SSH 密钥: %s
invalid_gpg_key=无法验证您的 GPG 密钥: %s
invalid_ssh_key=无法验证您的 SSH 密钥%s
invalid_gpg_key=无法验证您的 GPG 密钥%s
invalid_ssh_principal=无效的规则: %s
must_use_public_key=您提供的密钥是私钥。不要在任何地方上传您的私钥,请改用您的公钥。
unable_verify_ssh_key=无法验证 SSH 密钥,请仔细检查是否有错误。
@ -797,7 +797,7 @@ choose_new_avatar=选择新的头像
update_avatar=更新头像
delete_current_avatar=删除当前头像
uploaded_avatar_not_a_image=上传的文件不是一张图片。
uploaded_avatar_is_too_big=上传的文件大小(%d KiB) 超过最大限制(%d KiB)
uploaded_avatar_is_too_big=上传的文件大小%d KiB 超过最大限制(%d KiB
update_avatar_success=您的头像已更新。
update_user_avatar_success=用户头像已更新。
@ -813,7 +813,7 @@ emails=邮箱地址
manage_emails=管理邮箱地址
manage_themes=默认主题
manage_openid=OpenID 地址
email_desc=您的主要电子邮件地址将用于通知、密码恢复基于网页界面的Git操作(只要它不是设置为隐藏的)
email_desc=您的主要电子邮件地址将用于通知、密码恢复基于网页界面的Git操作(只要它不是设置为隐藏的)
theme_desc=此主题将在您已登录时被用于网页界面。
primary=主要
activated=已激活
@ -938,7 +938,7 @@ access_token_deletion_desc=删除令牌将撤销程序对您账户的访问权
delete_token_success=令牌已经被删除。使用该令牌的应用将不再能够访问你的账号。
repo_and_org_access=仓库和组织访问权限
permissions_public_only=仅公开
permissions_access_all=全部(公开、私有和受限)
permissions_access_all=全部(公开、私有和受限)
select_permissions=选择权限
permission_no_access=无访问权限
permission_read=可读
@ -974,7 +974,7 @@ oauth2_application_locked=如果配置启用Forgejo预注册一些OAuth2应
authorized_oauth2_applications=已授权的 OAuth2 应用
authorized_oauth2_applications_description=您已授予这些第三方应用程序访问您的个人 Forgejo 账户的权限。请撤销那些您不再使用的应用程序的访问权限。
revoke_key=撤销
revoke_oauth2_grant=权限
revoke_oauth2_grant=销访问权限
revoke_oauth2_grant_description=确定撤销此三方应用程序的授权,并阻止此应用程序访问您的数据?
revoke_oauth2_grant_success=成功撤销了访问权限。
@ -1028,7 +1028,7 @@ delete_account_desc=确实要永久删除此用户帐户吗?
email_notifications.enable=启用邮件通知
email_notifications.onmention=只在被提到时邮件通知
email_notifications.disable=停用邮件通知
email_notifications.submit=邮件通知设置
email_notifications.submit=设置邮件偏好
email_notifications.andyourown=和您自己的通知
visibility=用户可见性
@ -1092,7 +1092,7 @@ download_bundle=下载 BUNDLE
generate_repo=生成仓库
generate_from=生成自
repo_desc=仓库描述
repo_desc_helper=输入简要描述 (可选)
repo_desc_helper=输入简要描述(可选)
repo_lang=仓库语言
repo_gitignore_helper=选择 .gitignore 模板
repo_gitignore_helper_desc=从常见语言的模板列表中选择忽略跟踪的文件。默认情况下,由开发或构建工具生成的特殊文件都包含在 .gitignore 中。
@ -1125,14 +1125,14 @@ mirror_sync_on_commit=推送提交时同步
mirror_address=从 URL 克隆
mirror_address_desc=在授权框中输入必要的凭据。
mirror_address_url_invalid=URL无效。请检查您所输入的URL是否正确。
mirror_address_protocol_invalid=提供的URL无效。只能使用http(s)://或git://地址进行镜像操作。
mirror_lfs=大文件存储 (LFS)
mirror_address_protocol_invalid=提供的URL无效。只能使用https://或git://地址进行镜像操作。
mirror_lfs=大文件存储LFS
mirror_lfs_desc=镜像 LFS 数据。
mirror_lfs_endpoint=LFS 网址
mirror_lfs_endpoint_desc=同步将尝试使用克隆网址来 <a target="_blank" rel="noopener noreferrer" href="%s">确定 LFS 服务器</a>。如果仓库 LFS 数据存储在其他位置,你还可以指定自定义网址。
mirror_last_synced=上次同步
mirror_password_placeholder=(未更改)
mirror_password_blank_placeholder=(未设置)
mirror_password_placeholder=(未更改)
mirror_password_blank_placeholder=(未设置)
mirror_password_help=更改用户名以删除已储存的密码。
watchers=关注者
stargazers=称赞者
@ -1141,7 +1141,7 @@ forks=派生仓库
reactions_more=再加载 %d
unit_disabled=站点管理员已禁用此仓库单元。
language_other=其它
adopt_search=输入用户名以搜索未被收录的仓库... (留空以查找全部)
adopt_search=输入用户名以搜索未被收录的仓库…(留空以查找全部)
adopt_preexisting_label=收录文件
adopt_preexisting=收录已存在的仓库
adopt_preexisting_content=从 %s 创建仓库
@ -1166,14 +1166,14 @@ transfer.reject_desc=`取消转移到 "%s"`
transfer.no_permission_to_accept=您没有权限接受此转让。
transfer.no_permission_to_reject=您没有权限拒绝此转让。
desc.private=私有
desc.private=私有
desc.public=公开
desc.template=模板
desc.internal=内部
desc.archived=已存档
desc.sha256 = SHA256
template.items=模板选项
template.git_content=Git数据(默认分支)
template.git_content=Git数据(默认分支)
template.git_hooks=Git 钩子
template.git_hooks_tooltip=你目前无法修改或删除被添加过的 Git Hook。仅当你信任模板仓库时才可以选择此项。
template.webhooks=Web 钩子
@ -1212,7 +1212,7 @@ migrate_items_merge_requests=合并请求
migrate_items_releases=版本发布
migrate_repo=迁移仓库
migrate.clone_address=从 URL 迁移/克隆
migrate.clone_address_desc=现有仓库的 HTTP(s) 或 Git “clone” URL
migrate.clone_address_desc=现有仓库的 HTTPs 或 Git “clone” URL
migrate.github_token_desc=由于 GitHub API 速率限制,您可以在此处放置一个或多个以逗号分隔的令牌,以加快迁移速度。 警告:滥用此功能可能会违反服务提供商的政策并导致帐户被封。
migrate.clone_local_path=或服务器本地路径
migrate.permission_denied=您没有获得导入本地仓库的权限。
@ -1224,7 +1224,7 @@ migrate.migrate_items_options=需要访问令牌来迁移额外的内容
migrated_from=从 <a href="%[1]s">%[2]s</a> 迁移
migrated_from_fake=从 %[1]s 迁移成功
migrate.migrate=从 %s 迁移
migrate.migrating=正在从 <b>%s</b> 迁移...
migrate.migrating=正在从 <b>%s</b> 迁移
migrate.migrating_failed=从 <b>%s</b> 迁移失败。
migrate.migrating_failed.error=迁移失败:%s
migrate.migrating_failed_no_addr=迁移失败。
@ -1337,7 +1337,7 @@ download_file=下载文件
normal_view=普通视图
line=
lines=
from_comment=(评论)
from_comment=(评论)
editor.add_file=添加文件
editor.new_file=新建文件
@ -1445,7 +1445,7 @@ ext_issues.desc=链接到外部工单跟踪系统。
projects=项目
projects.desc=在项目看板中管理工单和合并请求。
projects.description=描述(可选)
projects.description=描述(可选)
projects.description_placeholder=描述
projects.create=创建项目
projects.title=标题
@ -1540,7 +1540,7 @@ issues.change_project_at=修改项目从 <b>%s</b> 到 <b>%s</b> %s
issues.remove_milestone_at=`%[2]s 删除了里程碑 <b>%[1]s</b>`
issues.remove_project_at=`从 <b>%s</b> 项目 %s 中删除`
issues.deleted_milestone=(已删除)
issues.deleted_project=`(已删除)`
issues.deleted_project=`(已删除)`
issues.self_assign_at=`于 %s 指派给自己`
issues.add_assignee_at=`于 %[2]s 被 <b>%[1]s</b> 指派`
issues.remove_assignee_at=`<b>%s</b> 取消了指派在 %s`
@ -1708,7 +1708,7 @@ issues.unlock.title=解锁有关此问题的对话。
issues.comment_on_locked=您不能对锁定的问题发表评论。
issues.delete=删除
issues.delete.title=是否删除工单?
issues.delete.text=您真的要删除这个工单吗?(该操作将会永久删除所有内容。如果您需要保留,请关闭它)
issues.delete.text=您真的要删除这个工单吗?(该操作将会永久删除所有内容。如果您需要保留,请关闭它)
issues.tracker=时间跟踪
issues.start_tracking_short=启动计时器
issues.start_tracking=开始时间跟踪
@ -1850,7 +1850,7 @@ pulls.filter_changes_by_commit=按提交筛选
pulls.nothing_to_compare=分支内容相同,无需创建合并请求。
pulls.nothing_to_compare_have_tag = 所选分支/标签相同。
pulls.nothing_to_compare_and_allow_empty_pr=这些分支是相等的,此合并请求将为空。
pulls.has_pull_request=这些分支之间的合并请求已存在: <a href="%[1]s">%[2]s#%[3]d</a>
pulls.has_pull_request=这些分支之间的合并请求已存在<a href="%[1]s">%[2]s#%[3]d</a>
pulls.create=创建合并请求
pulls.title_desc_few=请求将 %[1]d 次代码提交从 <code>%[2]s</code> 合并至 <code id="%[4]s">%[3]s</code>
pulls.merged_title_desc_few=于 %[4]s 将 %[1]d 次代码提交从 <code>%[2]s</code>合并至 <code>%[3]s</code>
@ -1923,7 +1923,7 @@ pulls.has_merged=失败:合并请求已经被合并,您不能再次合并或
pulls.push_rejected=合并失败:推送被拒绝。请查看此仓库的 Git 钩子。
pulls.push_rejected_summary=详细拒绝信息
pulls.push_rejected_no_message=推送失败:此推送被拒绝但未提供其他信息。请检查此仓库的 Git 钩子
pulls.open_unmerged_pull_exists=`您不能执行重新打开操作, 因为已经存在相同的合并请求 (#%d)。`
pulls.open_unmerged_pull_exists=`您不能执行重新打开操作, 因为已经存在相同的合并请求#%d。`
pulls.status_checking=一些检测仍在等待运行
pulls.status_checks_success=所有检测均成功
pulls.status_checks_warning=一些检查报告了警告
@ -1949,7 +1949,7 @@ pulls.cmd_instruction_merge_desc=合并更改并在 Forgejo 上更新。
pulls.clear_merge_message=清除合并信息
pulls.clear_merge_message_hint=清除合并消息只会删除提交消息内容,并保留生成的 git 附加内容如“Co-Authored-By …”。
pulls.auto_merge_button_when_succeed=(当检查成功时)
pulls.auto_merge_button_when_succeed=(当检查成功时)
pulls.auto_merge_when_succeed=在所有检查成功后自动合并
pulls.auto_merge_newly_scheduled=合并请求计划在所有检查成功后合并。
pulls.auto_merge_has_pending_schedule=%[1]s 安排此拉取请求在所有检查成功时自动合并 %[2]s。
@ -1962,11 +1962,11 @@ pulls.auto_merge_newly_scheduled_comment=`已安排此拉取请求在所有检
pulls.auto_merge_canceled_schedule_comment=`已取消当所有检查成功后自动合并此拉取请求 %[1]s`
pulls.delete.title=删除此拉取请求?
pulls.delete.text=你真的要删除这个拉取请求吗? (这将永久删除所有内容。如果你打算将内容存档,请考虑关闭它)
pulls.delete.text=你真的要删除这个拉取请求吗?(这将永久删除所有内容。如果你打算将内容存档,请考虑关闭它)
pulls.recently_pushed_new_branches=您已于%[2]s推送了分支 <a href="%[3]s"><strong>%[1]s</strong></a>
pull.deleted_branch=(已删除): %s
pull.deleted_branch=(已删除):%s
milestones.new=新的里程碑
milestones.closed=于 %s关闭
@ -2196,7 +2196,7 @@ settings.enable_timetracker=启用时间跟踪
settings.allow_only_contributors_to_track_time=仅允许成员跟踪时间
settings.pulls_desc=启用合并请求
settings.pulls.ignore_whitespace=忽略空格冲突
settings.pulls.enable_autodetect_manual_merge=启用自动检测手动合并 (注意:在某些特殊情况下可能发生错误判断)
settings.pulls.enable_autodetect_manual_merge=启用自动检测手动合并(注意:在某些特殊情况下可能发生错误判断)
settings.pulls.allow_rebase_update=允许通过变基更新拉取请求分支
settings.pulls.default_delete_branch_after_merge=默认合并后删除合并请求分支
settings.pulls.default_allow_edits_from_maintainers=默认开启允许维护者编辑
@ -2205,7 +2205,7 @@ settings.packages_desc=启用仓库软件包注册中心
settings.projects_desc=启用仓库项目
settings.actions_desc=使用 Forgejo Actions 启用集成 CI/CD 管道
settings.admin_settings=管理员设置
settings.admin_enable_health_check=启用仓库健康检查 (git fsck)
settings.admin_enable_health_check=启用仓库健康检查git fsck
settings.admin_code_indexer=代码索引器
settings.admin_stats_indexer=代码统计索引器
settings.admin_indexer_commit_sha=上次索引的提交
@ -2235,8 +2235,8 @@ settings.transfer_desc=您可以将仓库转移至您拥有管理员权限的帐
settings.transfer_form_title=输入仓库名称以做确认:
settings.transfer_in_progress=当前正在进行转让。 如果你想将此代码库转让给另一个用户,请取消它。
settings.transfer_notices_1=- 如果将此仓库转移给其他用户, 您将失去对此仓库的访问权限。
settings.transfer_notices_2=-如果将其转移到您 (共同) 拥有的组织,您可以继续访问该仓库。
settings.transfer_notices_3=- 如果仓库是私有的并且被转移给某个用户,那么此操作可以确保该用户至少具有读权限(以及必要时的更改权限)
settings.transfer_notices_2=-如果将其转移到您(共同) 拥有的组织,您可以继续访问该仓库。
settings.transfer_notices_3=- 如果仓库是私有的并且被转移给某个用户,那么此操作可以确保该用户至少具有读权限(以及必要时的更改权限)
settings.transfer_owner=新拥有者
settings.transfer_perform=执行转让
settings.transfer_started=该代码库已被标记为转让并等待来自 %s 的确认
@ -2247,10 +2247,10 @@ settings.trust_model.default=默认信任模型
settings.trust_model.default.desc=为此安装使用默认仓库信任模型。
settings.trust_model.collaborator=协作者
settings.trust_model.collaborator.long=协作者:信任协作者的签名
settings.trust_model.collaborator.desc=此仓库中协作者的有效签名将被标记为「可信」(无论它们是否是提交者),签名只符合提交者时将标记为「不可信」,都不匹配时标记为「不匹配」。
settings.trust_model.collaborator.desc=此仓库中协作者的有效签名将被标记为「可信」(无论它们是否是提交者),签名只符合提交者时将标记为「不可信」,都不匹配时标记为「不匹配」。
settings.trust_model.committer=提交者
settings.trust_model.committer.long=提交者: 信任与提交者相符的签名 (此特性类似 GitHub这会强制采用 Forgejo 作为提交者和签名者)
settings.trust_model.committer.desc=有效签名只有和提交者相匹配才会被标记为“受信任”,否则它们将被标记为“不匹配”。这强制 Forgejo 成为签名提交的提交者,而实际提交者被加上 Co-authored-by: 和 Co-committed-by: 的标记。 默认的 Forgejo 密钥必须匹配数据库中的一名用户。
settings.trust_model.committer.long=提交者: 信任与提交者相符的签名(此特性类似 GitHub这会强制采用 Forgejo 作为提交者和签名者)
settings.trust_model.committer.desc=有效签名只有和提交者相匹配才会被标记为“受信任”,否则它们将被标记为“不匹配”。这强制 Forgejo 成为签名提交的提交者,而实际提交者被加上 Co-authored-by:和 Co-committed-by的标记。 默认的 Forgejo 密钥必须匹配数据库中的一名用户。
settings.trust_model.collaboratorcommitter=协作者+提交者
settings.trust_model.collaboratorcommitter.long=协作者+提交者:信任协作者同时是提交者的签名
settings.trust_model.collaboratorcommitter.desc=此仓库中协作者的有效签名在他同时是提交者时将被标记为「可信」,签名只匹配了提交者时将标记为「不可信」,都不匹配时标记为「不匹配」。这会强制 Forgejo 成为签名者和提交者实际的提交者将被标记于提交消息结尾处的「Co-Authored-By:」和「Co-Committed-By:」。默认的 Forgejo 签名密钥必须匹配数据库中的一个用户密钥。
@ -2350,7 +2350,7 @@ settings.event_issue_label_desc=工单标签被添加或移除。
settings.event_issue_milestone=里程碑
settings.event_issue_milestone_desc=里程碑被添加、移除或修改。
settings.event_issue_comment=评论
settings.event_issue_comment_desc=工单评论被创建、编辑或删除
settings.event_issue_comment_desc=工单评论被创建、编辑或删除
settings.event_header_pull_request=合并请求事件
settings.event_pull_request=修改
settings.event_pull_request_desc=合并请求被打开、被关闭、被重新打开或被编辑。
@ -2367,7 +2367,7 @@ settings.event_pull_request_review_desc=合并请求被批准、拒绝或提出
settings.event_pull_request_sync=被同步
settings.event_pull_request_sync_desc=分支自动更新为目标分支。
settings.event_pull_request_review_request=评审请求
settings.event_pull_request_review_request_desc=合并请求评审已请求或已取消
settings.event_pull_request_review_request_desc=合并请求评审被请求或被取消。
settings.event_pull_request_approvals=合并请求批准
settings.event_pull_request_merge=合并请求合并
settings.event_package=软件包
@ -2375,7 +2375,7 @@ settings.event_package_desc=软件包已在仓库中被创建或删除。
settings.branch_filter=分支过滤
settings.branch_filter_desc=推送、创建,删除分支事件的分支白名单,使用 glob 模式匹配指定。若为空或 <code>*</code>,则将报告所有分支的事件。语法文档见 <a href="%[1]s">%[2]s</a>。示例:<code>master</code>,<code>{master,release*}</code>。
settings.authorization_header=授权标头
settings.authorization_header_desc=当存在时将被作为授权标头包含在内。例如: %s。
settings.authorization_header_desc=当存在时将被作为授权标头包含在内。例如%s。
settings.active=激活
settings.active_helper=触发事件的信息将发送到此 webhook 网址。
settings.add_hook_success=Web 钩子已添加。
@ -2432,11 +2432,11 @@ settings.protect_this_branch_desc=阻止删除并限制Git推送和合并到分
settings.protect_disable_push=禁用推送
settings.protect_disable_push_desc=此分支不允许推送。
settings.protect_enable_push=启用推送
settings.protect_enable_push_desc=任何拥有写访问权限的人将被允许推送到此分支(但不能强行推送)
settings.protect_enable_push_desc=任何拥有写访问权限的人将被允许推送到此分支(但不能强行推送)
settings.protect_enable_merge=启用合并
settings.protect_enable_merge_desc=任何具有写入权限的人都可以将合并请求合并到此分支中。
settings.protect_whitelist_committers=受白名单限制的推送
settings.protect_whitelist_committers_desc=只有列入白名单的用户或团队才能被允许推送到此分支(但不能强行推送)
settings.protect_whitelist_committers_desc=只有列入白名单的用户或团队才能被允许推送到此分支(但不能强行推送)
settings.protect_whitelist_deploy_keys=将具有推送权限的部署密钥加入白名单。
settings.protect_whitelist_users=推送白名单用户
settings.protect_whitelist_search_users=搜索用户...
@ -2465,7 +2465,7 @@ settings.dismiss_stale_approvals_desc=当新的提交更改合并请求内容被
settings.ignore_stale_approvals = 忽略过时的批准
settings.ignore_stale_approvals_desc = 不将旧的提交(陈旧的评审)计入已批准的合并请求数量。注:如过期的评审已被取消,则无需设置。
settings.require_signed_commits=需要签名提交
settings.require_signed_commits_desc=拒绝推送未签名或无法验证的提交到分支
settings.require_signed_commits_desc=拒绝推送未签名或无法验证的提交到分支
settings.protect_branch_name_pattern=受保护的分支名称正则
settings.protect_branch_name_pattern_desc=受保护的分支名称正则。语法请参阅<a href="%s">文档</a> 。如main, release/**
settings.protect_patterns=规则
@ -2490,7 +2490,7 @@ settings.default_branch_desc=请选择一个默认的分支用于合并请求和
settings.merge_style_desc=合并方式
settings.default_merge_style_desc=默认合并方式
settings.choose_branch=选择一个分支…
settings.no_protected_branch=没有受保护的分支
settings.no_protected_branch=没有分支受到保护。
settings.edit_protected_branch=编辑
settings.protected_branch_required_rule_name=必须填写规则名称
settings.protected_branch_duplicate_rule_name=这些分支已设有规则
@ -2503,7 +2503,7 @@ settings.tags.protection.allowed.users=允许的账号
settings.tags.protection.allowed.teams=允许的团队
settings.tags.protection.allowed.noone=
settings.tags.protection.create=添加规则
settings.tags.protection.none=没有受保护的Git标签
settings.tags.protection.none=没有Git标签受到保护。
settings.tags.protection.pattern.description=你可以使用单个名称或 glob 模式匹配或正则表达式来匹配多个标签。了解详情请访问 <a target="_blank" rel="noopener" href="%s">受保护Git标签指南</a>。
settings.bot_token=机器人令牌
settings.chat_id=聊天 ID
@ -2540,11 +2540,11 @@ settings.lfs_invalid_locking_path=无效路径:%s
settings.lfs_invalid_lock_directory=无法锁定目录:%s
settings.lfs_lock_already_exists=锁已经存在:%s
settings.lfs_lock=锁定
settings.lfs_lock_path=要锁定的文件路径...
settings.lfs_lock_path=要锁定的文件路径
settings.lfs_locks_no_locks=无锁定
settings.lfs_lock_file_no_exist=锁定的文件在默认分支中不存在
settings.lfs_force_unlock=强制解锁
settings.lfs_pointers.found=找到 %d 个块指针 - %d 个关联, %d 个未关联(%d 个从仓库丢失)
settings.lfs_pointers.found=找到 %d 个块指针 - %d 个关联, %d 个未关联%d 个从仓库丢失)
settings.lfs_pointers.sha=Blob SHA
settings.lfs_pointers.oid=OID
settings.lfs_pointers.inRepo=在仓库中
@ -2651,11 +2651,11 @@ release.deletion=删除发布
release.deletion_desc=删除版本发布只会从 Forgejo 中移除。这不会影响 Git 的标签以及您仓库的内容和历史。是否继续?
release.deletion_success=Release已被删除。
release.deletion_tag_desc=将从仓库中删除此 Git标签。仓库内容和历史记录保持不变。继续吗
release.deletion_tag_success=该 Git标签 已经被删除
release.deletion_tag_success=该 Git 标签已被删除。
release.tag_name_already_exist=使用此标签名称的发布版本已经存在。
release.tag_name_invalid=标签名称无效。
release.tag_name_protected=Git标签名称已受保护。
release.tag_already_exist=此 Git标签 名称已存在
release.tag_already_exist=此 Git 标签已存在
release.downloads=下载附件
release.download_count=下载:%s
release.add_tag_msg=使用发布的标题和内容作为标签消息。
@ -2704,7 +2704,7 @@ tag.create_tag_operation=创建标签
tag.confirm_create_tag=创建标签
tag.create_tag_from=基于"%s"创建新标签
tag.create_success=标签"%s"已存在
tag.create_success=已创建标签“%s”。
topic.manage_topics=管理主题
topic.done=保存
@ -2778,7 +2778,7 @@ editor.push_out_of_date = 推送似乎已过期。
settings.enforce_on_admins = 对仓库的管理员适用该规则
settings.enforce_on_admins_desc = 使仓库管理员也须遵守此规则。
settings.sourcehut_builds.secrets = 密钥
size_format = %[1]s: %[2]s, %[3]s: %[4]s
size_format = %[1]s%[2]s, %[3]s%[4]s
settings.sourcehut_builds.graphql_url = GraphQL URL (例如: https://builds.sr.ht/query)
settings.add_webhook.invalid_path = 路径中不能包含“.”或“..”,也不能在开头或结尾中使用斜杠。
settings.sourcehut_builds.secrets_helper = 给予任务访问构建密钥的权限(需要 SECRETS:RO 权限)
@ -2786,7 +2786,7 @@ release.download_count_one = %s 下载
release.download_count_few = %s 下载
release.system_generated = 此附件是自动生成的。
pulls.ready_for_review = 准备好接受评审了吗?
settings.web_hook_name_sourcehut_builds = SourceHut 构建
settings.web_hook_name_sourcehut_builds = SourceHut Builds
settings.graphql_url = GraphQL URL 链接
settings.sourcehut_builds.access_token_helper = 已授予 JOBS:RW 权限的访问令牌。可在 meta.sr.ht 上生成标准的 <a target="_blank" rel="noopener noreferrer" href="%s">builds.sr.ht 令牌</a>或<a target="_blank" rel="noopener noreferrer" href="%s">带有密匙访问权限的 builds.sr.ht 令牌</a> 。
settings.matrix.access_token_helper = 推荐为此设立专门的 Matrix 账户。访问令牌可从 Element Web 客户端(在隐私/无痕模式选项卡中打开)> 用户菜单(左上角)> 所有设置 > 帮助及关于 > 高级 > 访问令牌(在主服务器 URL 下方)检索。获取完成后,请直接关闭隐私/无痕选项卡(注销会使令牌失效)。
@ -2904,11 +2904,11 @@ team_desc_helper=描述团队的目的或作用。
team_access_desc=仓库权限
team_permission_desc=权限
team_unit_desc=允许访问仓库单元
team_unit_disabled=(已禁用)
team_unit_disabled=(已禁用)
form.name_reserved=组织名称 '%s' 是被保留的。
form.name_pattern_not_allowed=仓库名称中不允许使用 "%s"。
form.create_org_not_allowed=此账号禁止创建组织
form.create_org_not_allowed=您不能创建组织。
settings=组织设置
settings.options=组织
@ -3039,15 +3039,15 @@ dashboard.operation_run=执行
dashboard.clean_unbind_oauth=清理未绑定的 OAuth 连接
dashboard.clean_unbind_oauth_success=所有未绑定的 OAuth 连接已被删除。
dashboard.task.started=已开始任务:%[1]s
dashboard.task.process=任务: %[1]s
dashboard.task.cancelled=任务: %[1]s 已取消: %[3]s
dashboard.task.error=任务中的错误: %[1]s: %[3]s
dashboard.task.finished=任务: %[2]s 启动的 %[1]s 已完成
dashboard.task.process=任务%[1]s
dashboard.task.cancelled=任务%[1]s 已取消:%[3]s
dashboard.task.error=任务中的错误%[1]s%[3]s
dashboard.task.finished=任务%[2]s 启动的 %[1]s 已完成
dashboard.task.unknown=未知任务: %[1]s
dashboard.cron.started=已开始计划任务:%[1]s
dashboard.cron.process=计划任务:%[1]s
dashboard.cron.cancelled=定时任务: %[1]s 已取消: %[3]s
dashboard.cron.error=任务中的错误: %s: %[3]s
dashboard.cron.cancelled=定时任务%[1]s 已取消:%[3]s
dashboard.cron.error=任务中的错误: %s%[3]s
dashboard.cron.finished=任务:%[1]s 已经完成
dashboard.delete_inactive_accounts=删除所有未激活的帐户
dashboard.delete_inactive_accounts.started=删除所有未激活的账户任务已启动。
@ -3177,9 +3177,9 @@ emails.email_manage_panel=管理用户邮件地址
emails.primary=主要的
emails.activated=已激活
emails.filter_sort.email=电子邮件
emails.filter_sort.email_reverse=电子邮件(逆序)
emails.filter_sort.email_reverse=电子邮件(逆序)
emails.filter_sort.name=用户名
emails.filter_sort.name_reverse=用户名(倒序)
emails.filter_sort.name_reverse=用户名(倒序)
emails.updated=电子邮件已更新
emails.not_updated=无法更新请求的电子邮件地址: %v
emails.duplicate_active=此电子邮件地址已被另一个用户激活使用。
@ -3197,7 +3197,7 @@ repos.unadopted=未收录仓库
repos.unadopted.no_more=找不到更多未被收录的仓库。
repos.owner=所有者
repos.name=名称
repos.private=私有
repos.private=私有
repos.watches=关注数
repos.stars=点赞数
repos.forks=派生数
@ -3260,12 +3260,12 @@ auths.search_page_size=分页大小
auths.filter=用户过滤规则
auths.admin_filter=管理员过滤规则
auths.restricted_filter=受限的过滤器
auths.restricted_filter_helper=留空则不将任何用户设置为受限。使用星号('*') 将所有不匹配管理过滤器的用户设置为受限用户。
auths.verify_group_membership=验证 LDAP 组成员资格 (留空过滤器跳过)
auths.restricted_filter_helper=留空则不将任何用户设置为受限。使用星号'*' 将所有不匹配管理过滤器的用户设置为受限用户。
auths.verify_group_membership=验证 LDAP 组成员资格(留空过滤器跳过)
auths.group_search_base=群组搜索基础 DN
auths.group_attribute_list_users=包含用户列表的群组属性
auths.user_attribute_in_group=群组中列出的用户属性
auths.map_group_to_team=将 LDAP 组映射到组织团队 (留空字段则跳过)
auths.map_group_to_team=将 LDAP 组映射到组织团队(留空字段则跳过)
auths.map_group_to_team_removal=如果用户不属于相应的 LDAP 组,从已同步团队中移除用户
auths.enable_ldap_groups=启用 LDAP 组
auths.ms_ad_sa=MS AD 搜索属性
@ -3276,12 +3276,12 @@ auths.allowed_domains=域名白名单
auths.allowed_domains_helper=每个域名用逗号分隔,如要允许任意域名则留空。
auths.skip_tls_verify=忽略 TLS 验证
auths.force_smtps=强制 SMTPS
auths.force_smtps_helper=SMTPS 始终用于 465 端口。设置此项会强制其他端口也使用 SMTPS。(否则,如果主机支持,将在其他端口上使用 STARTTLS。)
auths.force_smtps_helper=SMTPS 始终用于 465 端口。设置此项会强制其他端口也使用 SMTPS。(否则,如果主机支持,将在其他端口上使用 STARTTLS。
auths.helo_hostname=HELO 主机名
auths.helo_hostname_helper=用 HELO 发送的主机名。 留空发送当前主机名。
auths.disable_helo=禁用 HELO
auths.pam_service_name=PAM 服务名称
auths.pam_email_domain=PAM 电子邮件域(可选)
auths.pam_email_domain=PAM 电子邮件域(可选)
auths.oauth2_provider=OAuth2 提供程序
auths.oauth2_icon_url=图标 URL
auths.oauth2_clientID=客户端 ID (键)
@ -3300,9 +3300,9 @@ auths.oauth2_required_claim_name=必须填写 Claim 声明的名称
auths.oauth2_required_claim_name_helper=设置此名称只有具有此名称的声明Claim的用户可从此源登录
auths.oauth2_required_claim_value=必须填写 Claim 声明的值
auths.oauth2_required_claim_value_helper=设置此值只有拥有对应的声明Claim的名称和值的用户才被允许从此源登录
auths.oauth2_group_claim_name=用于提供用户组名称的 Claim 声明名称。(可选)
auths.oauth2_admin_group=管理员用户组的 Claim 声明值。(可选 - 需要上面的声明名称)
auths.oauth2_restricted_group=受限用户组的 Claim 声明值。(可选 - 需要上面的声明名称)
auths.oauth2_group_claim_name=用于提供用户组名称的 Claim 声明名称。(可选)
auths.oauth2_admin_group=管理员用户组的 Claim 声明值。(可选 - 需要上面的声明名称)
auths.oauth2_restricted_group=受限用户组的 Claim 声明值。(可选 - 需要上面的声明名称)
auths.oauth2_map_group_to_team=映射声明的组到组织团队。(可选 - 要求在上面填写声明的名字)
auths.oauth2_map_group_to_team_removal=如果用户不属于相应的组,从已同步团队中移除用户
auths.enable_auto_register=允许自动注册
@ -3311,9 +3311,9 @@ auths.sspi_auto_create_users_helper=允许 SSPI 认证在用户第一次登录
auths.sspi_auto_activate_users=自动激活用户
auths.sspi_auto_activate_users_helper=允许 SSPI 认证自动激活新用户
auths.sspi_strip_domain_names=从用户名中删除域名部分
auths.sspi_strip_domain_names_helper=如果选中此项,域名将从登录名中删除(例如,"DOMAIN\user"和"user@example.org",两者都将变成只是 "user")
auths.sspi_strip_domain_names_helper=如果选中此项,域名将从登录名中删除(例如,"DOMAIN\user"和"user@example.org",两者都将变成只是 "user"
auths.sspi_separator_replacement=要使用的分隔符代替\, / 和 @
auths.sspi_separator_replacement_helper=用于替换下级登录名称分隔符的字符 (例如 "DOMAIN\user") 中的 \ 和用户主名字(如"user@example.org"中的 @)
auths.sspi_separator_replacement_helper=用于替换下级登录名称分隔符的字符(例如 "DOMAIN\user" 中的 \ 和用户主名字(如"user@example.org"中的 @
auths.sspi_default_language=默认语言
auths.sspi_default_language_helper=SSPI 认证方法为用户自动创建的默认语言。如果您想要自动检测到语言,请留空。
auths.tips=帮助提示
@ -3326,13 +3326,13 @@ auths.tip.dropbox=在 %s 上创建一个新的应用程序
auths.tip.facebook=`在 %s 注册一个新的应用,并添加产品"Facebook 登录"`
auths.tip.github=在 %s 注册一个 OAuth 应用程序
auths.tip.gitlab=在 https://gitlab.com/profile/applications 上注册新应用程序
auths.tip.google_plus=从谷歌 API 控制台 (%s) 获得 OAuth2 客户端凭据
auths.tip.openid_connect=使用 OpenID 连接发现 URL (<server>/.well-known/openid-configuration) 来指定终点
auths.tip.google_plus=从谷歌 API 控制台%s 获得 OAuth2 客户端凭据
auths.tip.openid_connect=使用 OpenID 连接发现 URL<server>/.well-known/openid-configuration 来指定终点
auths.tip.twitter=前往 %s创建一个应用程序并确保启用了“允许此应用程序用于使用 Twitter 登录”选项
auths.tip.discord=在 %s 上注册新应用程序
auths.tip.gitea=注册一个新的 OAuth2 应用程序。可以访问 %s 查看帮助
auths.tip.yandex=在 %s 上创建一个新的应用程序。在“ Yandex.Passport API”这部分中选择以下权限“访问电子邮件地址Access to email address“访问用户头像Access to user avatar”和“访问用户名名字和姓氏性别Access to username, first name and surname, genderAccess to username, first name and surname, gender
auths.tip.mastodon=输入您想要认证的 mastodon 实例的自定义 URL (或使用默认值)
auths.tip.mastodon=输入您想要认证的 mastodon 实例的自定义 URL(或使用默认值)
auths.edit=修改认证源
auths.activated=该认证源已经启用
auths.new_success=已添加身份验证 '%s'。
@ -3346,7 +3346,7 @@ auths.deletion_success=认证源已经更新。
auths.login_source_exist=认证源 '%s' 已经存在。
auths.login_source_of_type_exist=此类型的认证源已存在。
auths.unable_to_initialize_openid=无法初始化 OpenID Connect 提供商: %s
auths.invalid_openIdConnectAutoDiscoveryURL=无效的 Auto Discovery URL (这必须是一个以 http:// 或 https://开头的有效的 URL)
auths.invalid_openIdConnectAutoDiscoveryURL=无效的 Auto Discovery URL(这必须是一个以 http:// 或 https://开头的有效的 URL
config.server_config=服务器配置
config.app_name=实例名称
@ -3434,7 +3434,7 @@ config.mailer_sendmail_path=Sendmail 路径
config.mailer_sendmail_args=Sendmail 的额外参数
config.mailer_sendmail_timeout=Sendmail 超时
config.mailer_use_dummy=Dummy
config.test_email_placeholder=电子邮址 (例如test@example.com)
config.test_email_placeholder=电子邮址例如test@example.com
config.send_test_mail=发送测试邮件
config.send_test_mail_submit=发送
config.test_mail_failed=发送测试邮件至 "%s" 时失败:%v
@ -3677,7 +3677,7 @@ keywords=关键词
details=详情
details.author=作者
details.project_site=项目站点
details.repository_site=仓库
details.repository_site=仓库
details.documentation_site=文档站点
details.license=许可协议
assets=文件
@ -3693,7 +3693,7 @@ alpine.repository=仓库信息
alpine.repository.branches=分支
alpine.repository.repositories=仓库管理
alpine.repository.architectures=架构
cargo.registry=在 Cargo 配置文件中设置此注册中心(例如:<code>~/.cargo/config.toml</code>)
cargo.registry=在 Cargo 配置文件中设置此注册中心(例如:<code>~/.cargo/config.toml</code>
cargo.install=要使用 Cargo 安装软件包,请运行以下命令:
chef.registry=在您的 <code>~/.chef/config.rb</code> 文件中设置此注册中心:
chef.install=要安装包,请运行以下命令:
@ -3771,7 +3771,7 @@ settings.link.success=仓库链接已成功更新。
settings.link.error=更新仓库链接失败。
settings.delete=删除软件包
settings.delete.description=删除软件包是永久性的,无法撤消。
settings.delete.notice=您将要删除 %s (%s)。此操作是不可逆的,您确定吗?
settings.delete.notice=您将要删除 %s%s。此操作是不可逆的,您确定吗?
settings.delete.success=软件包已被删除。
settings.delete.error=删除软件包失败。
owner.settings.cargo.title=Cargo 注册中心索引
@ -3781,7 +3781,7 @@ owner.settings.cargo.initialize.error=初始化Cargo索引失败 %v
owner.settings.cargo.initialize.success=Cargo索引已经成功创建。
owner.settings.cargo.rebuild=重建索引
owner.settings.cargo.rebuild.description=如果索引与存储的 Cargo 包不同步,重建可能会有用。
owner.settings.cargo.rebuild.error=无法重建 Cargo 索引: %v
owner.settings.cargo.rebuild.error=无法重建 Cargo 索引%v
owner.settings.cargo.rebuild.success=Cargo 索引已成功重建。
owner.settings.cleanuprules.title=清理规则
owner.settings.cleanuprules.add=添加清理规则
@ -3797,7 +3797,7 @@ owner.settings.cleanuprules.keep.count=保留最新的
owner.settings.cleanuprules.keep.count.1=每个软件包1个版本
owner.settings.cleanuprules.keep.count.n=每个软件包 %d 个版本
owner.settings.cleanuprules.keep.pattern=保持版本匹配
owner.settings.cleanuprules.keep.pattern.container=容器包的 <code>最新版本</code> 总是会保留。
owner.settings.cleanuprules.keep.pattern.container=容器的<code>latest</code>版本总是会被保留。
owner.settings.cleanuprules.remove.title=与这些规则相匹配的版本将被删除,除非其中存在某个保留它们的规则。
owner.settings.cleanuprules.remove.days=移除旧于天数的版本
owner.settings.cleanuprules.remove.pattern=删除匹配的版本
@ -3907,7 +3907,7 @@ runs.no_workflows=目前还没有工作流。
runs.no_workflows.quick_start=不知道如何使用 Forgejo Actions吗请查看 <a target="_blank" rel="noopener noreferrer" href="%s">快速启动指南</a>。
runs.no_workflows.documentation=关于Forgejo Actions的更多信息请参阅 <a target="_blank" rel="noopener noreferrer" href="%s">文档</a>。
runs.no_runs=工作流尚未运行过。
runs.empty_commit_message=(空白的提交消息)
runs.empty_commit_message=(空白的提交消息)
workflow.disable=禁用工作流
workflow.disable_success=工作流 "%s" 已成功禁用。
@ -3946,6 +3946,8 @@ runs.expire_log_message = 已清除日志,因为它们太旧了。
runs.no_workflows.help_write_access = 不知道如何上手 Forgejo Actions查看<a target="_blank" rel="noopener noreferrer" href="%s">用户文档的快速上手部分</a>来编写你的第一个工作流,然后<a target="_blank" rel="noopener noreferrer" href="%s">配置一个Forgejo运行器</a>来运行你的任务。
runs.no_workflows.help_no_write_access = 欲了解关于Forgejo Actions的更多信息请参见<a target="_blank" rel="noopener noreferrer" href="%s">文档</a>。
variables.not_found = 找不到变量。
[projects]
type-1.display_name=个人项目
type-2.display_name=仓库项目
@ -3963,14 +3965,14 @@ submodule=子模块
[search]
keyword_search_unavailable = 关键词搜索目前不可用请联系站点管理员。
keyword_search_unavailable = 关键词搜索目前不可用请联系站点管理员。
search = 搜索…
repo_kind = 搜索仓库…
user_kind = 搜索用户…
org_kind = 搜索组织…
team_kind = 搜索团队…
code_kind = 搜索代码…
code_search_unavailable = 代码搜索目前不可用请联系站点管理员。
code_search_unavailable = 代码搜索目前不可用请联系站点管理员。
package_kind = 搜索软件包…
project_kind = 搜索项目…
branch_kind = 搜索分支…
@ -3982,7 +3984,7 @@ fuzzy = 模糊
code_search_by_git_grep = 当前搜索结果由 git grep 提供,如果站点管理员启用了代码索引可能会有更好的结果。
match = 匹配
match_tooltip = 仅包含与搜索词完全匹配的结果
fuzzy_tooltip = 在搜索结果中包含与搜索词相近的项目
fuzzy_tooltip = 包含与搜索词相近的结果
exact = 精确
issue_kind = 搜索工单…
pull_kind = 搜索合并请求…

View file

@ -120,6 +120,22 @@ new_project = 新增專案
new_project_column = 新增欄位
filter.public = 公開
admin_panel = 網站管理
new_repo.title = 新儲存庫
new_migrate.title = 新遷移
new_org.title = 新組織
new_repo.link = 新儲存庫
new_migrate.link = 新遷移
new_org.link = 新組織
add_all = 新增全部
remove_all = 移除全部
remove_label_str = 移除項目「%s」
test = 測試
copy_generic = 複製到剪貼簿
copy_url = 複製網址
copy_hash = 複製雜湊值
filter.private = 私有庫
[aria]
footer = 頁尾
footer.links = 連結
@ -778,6 +794,8 @@ settings.branches.update_default_branch = 更新預設分支
milestones.filter_sort.name = 組織名稱
[graphs]
[org]
@ -1063,6 +1081,8 @@ users = 使用者帳戶
defaulthooks = 預設 Webhook
config_settings = 組織設定
[action]
create_repo=建立了儲存庫 <a href="%s">%s</a>
rename_repo=重新命名儲存庫 <code>%[1]s</code> 為 <a href="%[2]s">%[3]s</a>
@ -1134,3 +1154,5 @@ runners.labels = 標籤
[projects]
[git.filemode]
[search]

View file

@ -16,7 +16,7 @@ page=頁面
template=模板
language=語言
notifications=通知
active_stopwatch=正在進行的時間追蹤
active_stopwatch=啟動的時間追蹤器
create_new=建立…
user_profile_and_more=個人資料和設定…
signed_in_as=已登入為
@ -219,7 +219,7 @@ missing_csrf=錯誤的請求:未提供 CSRF 符記
invalid_csrf=錯誤的請求:無效的 CSRF 符記
not_found=找不到目標。
network_error=網路錯誤
report_message = 如果您相信這是一個 Forgejo 的錯誤,請在 <a href="%s" target="_blank">Codeberg</a> 上搜尋相關問題,或在必要時提出一個問題。
report_message = 如果您相信這是一個 Forgejo 的錯誤,請在 <a href="%s" target="_blank">Codeberg</a> 上搜尋相關問題,或在必要時提出一個問題。
server_internal = 伺服器內部錯誤
[startpage]
@ -687,6 +687,8 @@ username_error_no_dots = ` 只能包含英數字符("0-9","a-z","A-Z"),破
required_prefix = 輸入文字必須以「%s」開頭
email_domain_is_not_allowed = 使用者電子郵件地址 <b>%s</b> 的網域與 EMAIL_DOMAIN_ALLOWLIST 或 EMAIL_DOMAIN_BLOCKLIST 衝突。確保你已正確設定電子郵件地址。
[user]
change_avatar=更改大頭貼…
repositories=儲存庫
@ -807,7 +809,7 @@ emails=電子信箱
manage_emails=管理電子信箱
manage_themes=預設佈景主題
manage_openid=OpenID 地址
theme_desc=這將是您在整個網站上的預設佈景主題
theme_desc=此主題將在您已登入時套用於網站介面
primary=主要
activated=已啟用
requires_activation=需要啟動
@ -1035,7 +1037,7 @@ ssh_signonly = 因為目前 SSH 已被停用,這個金鑰只被用來校驗提
email_desc = 您的主要電子信箱將被用於通知、密碼復原、和網頁 Git 操作(如果您的信箱不是隱藏的)。
pronouns_custom = 自訂
oauth2_client_secret_hint = 這把密鑰在您離開或重新整理此頁面後將不再被顯示。請確保您已儲存它。
additional_repo_units_hint_description = 在沒有啟用所有模組的儲存庫中顯示「新增更多模組…」按鈕
additional_repo_units_hint_description = 對於未啟用所有可用功能的儲存庫顯示「啟用更多」提示
hidden_comment_types.issue_ref_tooltip = 使用者更改與問題相關分支/標籤的留言
pronouns = 稱謂語
update_oauth2_application_success = 您已成功更新該 OAuth2 應用程式。
@ -1063,6 +1065,8 @@ language.description = 這個語言會被儲存至您的帳號,並被用作您
pronouns_custom_label = 自訂代名詞
keep_activity_private.description = 你的<a href="%s">公開活動</a>只有你和站點管理員可見。
[repo]
owner=所有者
owner_helper=組織可能因為儲存庫數量上限而未列入此選單。
@ -1624,9 +1628,9 @@ issues.attachment.download=`點擊下載「%s」`
issues.subscribe=訂閱
issues.unsubscribe=取消訂閱
issues.unpin_issue=取消釘選問題
issues.max_pinned=您不能固定更多問題
issues.pin_comment=固定於 %s
issues.unpin_comment=取消固定於 %s
issues.max_pinned=您不能釘選更多問題
issues.pin_comment=釘選於 %s
issues.unpin_comment=取消釘選於 %s
issues.lock=鎖定對話
issues.unlock=解鎖對話
issues.lock.unknown_reason=由於未知的原因而無法鎖定問題。
@ -1669,7 +1673,7 @@ issues.add_time_minutes=分鐘
issues.add_time_sum_to_small=沒有輸入時間。
issues.time_spent_total=總花費時間
issues.time_spent_from_all_authors=`總花費時間:%s`
issues.due_date=截止日期
issues.due_date=到期日
issues.invalid_due_date_format=截止日期的格式必須為「yyyy-mm-dd」。
issues.error_modifying_due_date=無法修改截止日期。
issues.error_removing_due_date=無法移除截止日期。
@ -1681,10 +1685,10 @@ issues.due_date_form=yyyy年mm月dd日
issues.due_date_form_add=新增截止日期
issues.due_date_form_edit=編輯
issues.due_date_form_remove=移除
issues.due_date_not_set=未設定截止日期
issues.due_date_added=新增了截止日期 %s %s
issues.due_date_not_set=未設定到期日
issues.due_date_added=新增了到期日 %s %s
issues.due_date_modified=將截止日期從 %[2]s 修改為 %[1]s %[3]s
issues.due_date_remove=移除了截止日期 %s %s
issues.due_date_remove=移除了到期日 %s %s
issues.due_date_overdue=逾期
issues.due_date_invalid=截止日期無效或超出範圍請使用「yyyy-mm-dd」的格式。
issues.dependency.title=先決條件
@ -1808,10 +1812,10 @@ pulls.num_conflicting_files_1=%d 個衝突的檔案
pulls.num_conflicting_files_n=%d 個衝突的檔案
pulls.approve_count_1=%d 個核可
pulls.approve_count_n=%d 個核可
pulls.reject_count_1=%d 變更請求
pulls.reject_count_n=%d 變更請求
pulls.waiting_count_1=%d 等待審核
pulls.waiting_count_n=%d 等待審核
pulls.reject_count_1=%d 變更請求
pulls.reject_count_n=%d 變更請求
pulls.waiting_count_1=%d 個正在等待審核
pulls.waiting_count_n=%d 個正在等待審核
pulls.wrong_commit_id=提交 id 必須存在於目標分支上
pulls.no_merge_desc=無法進行合併,因為所有儲存庫的合併選項已被停用。
@ -1884,9 +1888,9 @@ milestones.completeness=<strong>%d%%</strong> 已完成
milestones.create=建立里程碑
milestones.title=標題
milestones.desc=描述
milestones.due_date=截止日期 (選用)
milestones.due_date=到期日(選用)
milestones.clear=清除
milestones.invalid_due_date_format=截止日期的格式必須為「yyyy-mm-dd」。
milestones.invalid_due_date_format=到期日的格式必須為「yyyy-mm-dd」。
milestones.create_success=已建立里程碑「%s」。
milestones.edit=編輯里程碑
milestones.edit_subheader=里程碑可用來組織問題和追蹤進度。
@ -2029,7 +2033,7 @@ settings.mirror_settings.direction.pull=拉取
settings.mirror_settings.direction.push=推送
settings.mirror_settings.last_update=最近更新時間
settings.mirror_settings.push_mirror.none=未設定推送鏡像
settings.mirror_settings.push_mirror.remote_url=Git 遠端儲存庫 URL
settings.mirror_settings.push_mirror.remote_url=Git 遠端儲存庫網址
settings.mirror_settings.push_mirror.add=新增推送鏡像
settings.sync_mirror=立即同步
@ -2047,10 +2051,10 @@ settings.external_wiki_url_desc=點擊百科分頁時,使用者會被轉址至
settings.issues_desc=啟用儲存庫問題追蹤器
settings.use_internal_issue_tracker=使用內建問題追蹤器
settings.use_external_issue_tracker=使用外部問題追蹤器
settings.external_tracker_url=外部問題追蹤器 URL
settings.external_tracker_url=外部問題追蹤器網址
settings.external_tracker_url_error=該外部問題追蹤器 URL 無效。
settings.external_tracker_url_desc=點擊問題頁籤時,使用者會被轉址至外部問題追蹤器 URL。
settings.tracker_url_format=外部問題追蹤器的 URL 格式
settings.tracker_url_format=外部問題追蹤器的網址格式
settings.tracker_url_format_error=該外部問題追蹤器 URL 格式無效。
settings.tracker_issue_style=外部問題追蹤器的編號格式
settings.tracker_issue_style.numeric=數字
@ -2068,14 +2072,14 @@ settings.pulls.allow_rebase_update=啟用透過變基更新合併請求分支
settings.pulls.default_delete_branch_after_merge=預設在合併後刪除合併請求分支
settings.pulls.default_allow_edits_from_maintainers=預設允許維護者進行編輯
settings.releases_desc=啟用儲存庫版本發佈
settings.packages_desc=啟用儲存庫軟體註冊中心
settings.packages_desc=啟用儲存庫軟體註冊中心
settings.projects_desc=啟用儲存庫專案
settings.actions_desc=啟用儲存庫 Actions
settings.admin_settings=管理員設定
settings.admin_enable_health_check=啟用儲存庫的健康檢查 (git fsck)
settings.admin_enable_health_check=啟用儲存庫的健康檢查git fsck
settings.admin_code_indexer=程式碼索引器
settings.admin_stats_indexer=程式碼統計數據索引器
settings.admin_indexer_commit_sha=最後索引的 SHA
settings.admin_indexer_commit_sha=最後索引的提交
settings.admin_indexer_unindexed=未索引
settings.reindex_button=加入到重新索引佇列
settings.reindex_requested=已請求重新索引
@ -2108,7 +2112,7 @@ settings.transfer_perform=進行轉移
settings.transfer_started=此儲存庫已被標記為待轉移且正在等待「%s」的確認
settings.transfer_succeed=已轉移儲存庫。
settings.signing_settings=簽署驗證設定
settings.trust_model=簽署信任模
settings.trust_model=簽署信任模
settings.trust_model.default=預設信任模型
settings.trust_model.default.desc=使用此 Forgejo 的預設儲存庫信任模式。
settings.trust_model.collaborator=協作者
@ -2177,7 +2181,7 @@ settings.update_githook=更新 Hook
settings.add_webhook_desc=Forgejo 會發送含有指定 Content Type 的 <code>POST</code> 請求到目標 URL。 在 <a target="_blank" rel="noopener noreferrer" href="%s">Webhook 指南</a>閱讀更多內容。
settings.payload_url=目標 URL
settings.http_method=HTTP 請求方法
settings.content_type=POST Content Type
settings.content_type=POST 內容類型
settings.secret=Secret
settings.slack_username=服務名稱
settings.slack_icon_url=圖示 URL
@ -2209,9 +2213,9 @@ settings.event_issues_desc=建立、編輯、關閉及重新開放問題。
settings.event_issue_assign=指派
settings.event_issue_assign_desc=指派或取消指派問題。
settings.event_issue_label=標籤
settings.event_issue_label_desc=更新或清除問題標籤。
settings.event_issue_label_desc=問題標籤已新增或已刪除
settings.event_issue_milestone=里程碑
settings.event_issue_milestone_desc=設定或取消設定問題里程碑。
settings.event_issue_milestone_desc=里程碑已新增、已移除或已修改
settings.event_issue_comment=評註
settings.event_issue_comment_desc=已經建立、編輯或刪除的問題留言。
settings.event_header_pull_request=合併請求事件
@ -2222,7 +2226,7 @@ settings.event_pull_request_assign_desc=指派或取消指派合併請求。
settings.event_pull_request_label=標籤
settings.event_pull_request_label_desc=更新或清除合併請求標籤。
settings.event_pull_request_milestone=里程碑
settings.event_pull_request_milestone_desc=設定或取消設定合併請求里程碑。
settings.event_pull_request_milestone_desc=里程碑已新增、已移除或已修改
settings.event_pull_request_comment=評註
settings.event_pull_request_comment_desc=建立、編輯或刪除合併請求的留言。
settings.event_pull_request_review=審核
@ -2275,7 +2279,7 @@ 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=除部署金鑰
settings.deploy_key_deletion_desc=移除部署金鑰將拒絕它存取此儲存庫。是否繼續?
settings.deploy_key_deletion_success=部署金鑰已移除。
settings.branches=分支
@ -2285,7 +2289,7 @@ settings.protected_branch.delete_rule=刪除規則
settings.protected_branch_can_push=允許推送?
settings.protected_branch_can_push_yes=你可以推送
settings.protected_branch_can_push_no=你不能推送
settings.branch_protection=<b>%s</b> 的分支保護
settings.branch_protection=分支「<b>%s</b>」的保護規則
settings.protect_this_branch=啟用分支保護
settings.protect_this_branch_desc=防止刪除分支,並限制 Git 推送與合併到分支。
settings.protect_disable_push=停用推送
@ -2371,7 +2375,7 @@ settings.lfs_findcommits=尋找提交
settings.lfs_lfs_file_no_commits=找不到和此 LFS 檔案關聯的提交
settings.lfs_noattribute=此路徑在預設分支中沒有可鎖定的屬性
settings.lfs_delete=刪除 OID 為 %s 的 LFS 檔案
settings.lfs_delete_warning=刪除 LFS 檔案可能會造成 Checkout 時發生「物件不存在」的錯誤,您確定嗎?
settings.lfs_delete_warning=刪除 LFS 檔案可能會導致簽出時發生「物件不存在」的錯誤。你確定嗎?
settings.lfs_findpointerfiles=尋找指標檔案
settings.lfs_locks=鎖定
settings.lfs_invalid_locking_path=無效的路徑: %s
@ -2383,7 +2387,7 @@ settings.lfs_locks_no_locks=沒有鎖定
settings.lfs_lock_file_no_exist=已鎖定的檔案不存在於預設分支
settings.lfs_force_unlock=強制解鎖
settings.lfs_pointers.found=找到 %d 個 blob 指標 - %d 個已關聯, %d 個未關聯 (%d 個從存放區遺失)
settings.lfs_pointers.sha=Blob 哈希
settings.lfs_pointers.sha=Blob 雜湊
settings.lfs_pointers.oid=OID
settings.lfs_pointers.inRepo=在儲存庫中
settings.lfs_pointers.exists=存在於存放區
@ -2430,7 +2434,7 @@ diff.load=載入差異
diff.generated=自動產生的
diff.vendored=vendored
diff.comment.placeholder=留言
diff.comment.markdown_info=支援 markdown 格式。
diff.comment.markdown_info=支援 Markdown 格式。
diff.comment.add_single_comment=加入單獨的留言
diff.comment.add_review_comment=新增留言
diff.comment.start_review=開始審核
@ -2445,7 +2449,7 @@ diff.review.reject=請求變更
diff.review.self_approve=合併請求的作者不能核可自己的合併請求
diff.committed_by=提交者
diff.protected=受保護
diff.image.side_by_side=
diff.image.side_by_side=
diff.image.swipe=滑動
diff.image.overlay=重疊
diff.has_escaped=這一行有隱藏的 Unicode 字元
@ -2670,7 +2674,7 @@ pulls.commit_ref_at = `在提交 <a id="%[1]s" href="#%[1]s">%[2]s</a> 引用了
pulls.cmd_instruction_checkout_desc = 從您的專案儲存庫 checkout 一個新的分支來測試這些更改。
pulls.cmd_instruction_merge_title = 合併
pulls.ready_for_review = 可以開始審閱了嗎?
pulls.cmd_instruction_hint = `檢視 命令列指示`
pulls.cmd_instruction_hint = `檢視命令列指示`
file_follow = 跟隨象徵式連結
milestones.filter_sort.earliest_due_data = 最早到期日
size_format = %[1]s%[2]s%[3]s%[4]s
@ -2693,7 +2697,7 @@ pulls.blocked_by_changed_protected_files_n = 這個合併請求被暫止,因
pulls.status_checks_hide_all = 隱藏所有檢查
pulls.status_checks_show_all = 顯示所有檢查
pulls.reopen_failed.head_branch = 因為這個合併請求的 head 分支不存在,它無法被開啟。
activity.navbar.pulse = 脈搏
activity.navbar.pulse = 動態
signing.will_sign = 將以金鑰「%s」簽署這個提交。
signing.wont_sign.headsigned = 因為 head 提交沒有被簽署,這個合併不會被簽署。
signing.wont_sign.commitssigned = 因為所有相關的提交都沒有被簽署,這個合併不會被簽署。
@ -2770,12 +2774,105 @@ settings.protect_patterns = 式樣
settings.matrix.access_token_helper = 建議為此設定一個專用的 Matrix 帳號。存取符記可以從 Element 網路使用者端(於私人/隱身分頁)> 使用者選單(左上角)> 所有設定 > 幫助和關於 > 進階 > 存取符記(位於 Homeserver 網址正下方)檢索。關閉私人/隱身分頁(登出將使存取符記失效)。
release.title = 發行標題
new_from_template_description = 你可以選擇此站點上現有的儲存庫範本並套用其設定。
auto_init_description = 使用 README 開始 Git 歷史記錄並可選擇新增 License 和 .gitignore 檔案。
mirror_denied_combination = 不能組合使用公鑰和基於密碼的驗證。
summary_card_alt = 儲存庫 %s 的摘要卡
vendored = 已供應
issues.new.assign_to_me = 指派給我
issues.edit.already_changed = 無法儲存對問題的變更。看起來內容已被另一個使用者變更。請重新整理頁面並嘗試再次編輯以避免覆蓋其變更
issues.num_reviews_one = %d 則審閱
issues.num_reviews_few = %d 則審閱
issues.reaction.add = 新增反應
issues.reaction.alt_few = %[1]s 對 %[2]s 做出了反應。
issues.reaction.alt_many = %[1]s 和另外 %[2]d 人對 %[3]s 做出了反應。
issues.reaction.alt_remove = 從留言中移除 %[1]s 的反應。
issues.context.menu = 留言選單
issues.review.pending.tooltip = 其他使用者目前看不到此留言。要提交你的待處理留言,請選擇頁面頂部的「%s」->「%s/%s/%s」。
issues.summary_card_alt = 儲存庫 %[2]s 中標題為「%[1]s」的問題摘要卡
pulls.edit.already_changed = 無法儲存對合併請求的變更。看起來內容已被另一個使用者變更。請重新整理頁面並嘗試再次編輯以避免覆蓋其變更
pulls.sign_in_require = <a href="%s">登入</a>以建立新的合併請求。
pulls.delete_after_merge.head_branch.is_default = 你要刪除的頭分支是預設分支,無法刪除。
pulls.delete_after_merge.head_branch.is_protected = 你要刪除的頭分支是受保護的分支,無法刪除。
pulls.delete_after_merge.head_branch.insufficient_branch = 你沒有權限刪除頭分支。
pulls.recently_pushed_new_branches = 你已於 %[2]s 推送分支 <a href="%[3]s"><strong>%[1]s</strong></a>
settings.federation_apapiurl = 此儲存庫的聯邦網址。將其複製並貼上至另一個儲存庫的聯邦設定中作為關注儲存庫的網址。
settings.federation_following_repos = 關注儲存庫的網址。以半形分號「;」分隔,沒有空格。
settings.federation_not_enabled = 你的站點上未啟用聯邦。
settings.mirror_settings.docs.doc_link_pull_section = 文件中的「從遠端儲存庫拉取」部分。
settings.units.units = 功能
settings.mirror_settings.push_mirror.copy_public_key = 複製公鑰
settings.pull_mirror_sync_in_progress = 目前正在從遠端 %s 拉取變更。
settings.pull_mirror_sync_quota_exceeded = 配額已超出,不拉取變更。
settings.push_mirror_sync_in_progress = 目前正在將變更推送至遠端 %s。
settings.wiki_globally_editable = 允許任何人編輯 Wiki
settings.default_update_style_desc = 用於更新落後於基礎分支的合併請求的預設更新模式。
settings.transfer_abort_success = 轉移儲存庫至 %s 已成功取消。
settings.enter_repo_name = 準確輸入擁有者和儲存庫名稱,如下所示:
settings.confirmation_string = 確認字串
settings.transfer_quota_exceeded = 新擁有者(%s已超出配額。儲存庫尚未轉移。
settings.wiki_rename_branch_main = 規範化 Wiki 分支名稱
settings.wiki_rename_branch_main_desc = 將 Wiki 內部使用的分支重新命名為「%s」。此變更是永久性的無法撤消。
settings.wiki_rename_branch_main_notices_1 = 此操作<strong>無法</strong>撤銷。
settings.wiki_rename_branch_main_notices_2 = 這將永久重新命名儲存庫 %s 的 Wiki 的內部分支。現有的簽出將需要更新。
settings.wiki_branch_rename_success = 儲存庫 Wiki 的分支名稱已成功規範化。
settings.wiki_branch_rename_failure = 無法規範化儲存庫 Wiki 的分支名稱。
settings.confirm_wiki_branch_rename = 重新命名 Wiki 分支
settings.update_settings_no_unit = 儲存庫至少應該允許某種形式的交互。
settings.add_collaborator_blocked_our = 無法新增協作者,因為儲存庫擁有者已封鎖他們。
settings.add_collaborator_blocked_them = 無法新增協作者,因為他們已封鎖儲存庫擁有者。
settings.add_webhook.invalid_path = 路徑不能包含「.」、「..」或空字串。它不能以斜線開頭或結尾。
settings.webhook.test_delivery_desc_disabled = 要使用虛假事件測試此 Webhook請啟動它。
settings.webhook.replay.description_disabled = 要重播此 Webhook請啟動它。
settings.discord_icon_url.exceeds_max_length = 圖示網址長度必須小於或等於 2048 個字符
settings.event_pull_request_review_request_desc = 合併請求審核請求或審核請求已移除。
settings.event_pull_request_enforcement = 執行
settings.protect_new_rule = 建立新的分支保護規則
settings.protect_status_check_patterns = 狀態檢查式樣
settings.protect_status_check_patterns_desc = 輸入模式以指定其他分支在合併到受此規則保護的分支前必須通過的狀態檢查。每行指定一個模式,模式不得為空白。
settings.protect_invalid_status_check_pattern = 狀態檢查模式無效: 「%s」。
settings.protect_no_valid_status_check_patterns = 沒有有效的狀態檢查式樣。
settings.ignore_stale_approvals_desc = 不計算在較舊提交上進行的核可(過時的審核)作為合併請求的核可數量。如果過時的審核已經被捨棄,則無關緊要。
settings.remove_protected_branch_success = 分支保護規則「%s」已被移除。
settings.remove_protected_branch_failed = 移除分支保護規則「%s」失敗。
settings.enforce_on_admins = 為儲存庫管理員強制執行此規則
settings.enforce_on_admins_desc = 儲存庫管理員不能繞過此規則。
settings.tags.protection.pattern.description = 您可以使用單一名稱或 glob 模式或正則表達式來匹配多個標籤。詳情請參閱 <a target="_blank" rel="noopener" href="%s">受保護標籤指南</a>。
settings.thread_id = 線程 ID
settings.archive.text = 封存儲存庫將使其完全變為唯讀。它將從儀表板中隱藏。沒有人(甚至包括您!)將能夠進行新的提交,或打開任何問題或合併請求。
settings.unarchive.text = 取消封存儲存庫將恢復其接收提交和推送,以及新問題和合併請求的能力。
settings.unarchive.success = 此儲存庫已成功取消封存。
settings.unarchive.error = 嘗試取消封存儲存庫時發生錯誤。請參閱日誌以了解更多詳細資訊。
settings.rename_branch_failed_protected = 無法重新命名分支 %s因為它是受保護的分支。
diff.git-notes.add = 增加註釋
diff.git-notes.remove-header = 移除註釋
diff.comment.add_line_comment = 新增行評論
release.message = 描述此發行
release.deletion_desc = 刪除發行只會將其從 Forgejo 中移除。它不會影響 Git 標籤、儲存庫的內容或其歷史記錄。繼續?
release.hide_archive_links = 隱藏自動產生的封存
release.hide_archive_links_helper = 隱藏此發行自動產生的原始碼封存。例如,如果你正在自行上載。
release.system_generated = 此附件是自動產生的。
release.type_external_asset = 外部資產
release.asset_name = 資產名稱
release.add_external_asset = 新增外部資產
release.invalid_external_url = 無效的外部網址:%s
release.summary_card_alt = 儲存庫 %[2]s 中名為「%[1]s」的發行摘要卡
branch.delete_desc = 刪除分支是永久性的。雖然被刪除的分支在實際被移除之前可能會繼續存在一小段時間,但是大多數情況下它是無法撤銷的。繼續?
branch.tag_collision = 無法建立分支「%s」因為儲存庫中已存在同名標籤。
branch.warning_rename_default_branch = 你正在重新命名預設分支。
topic.format_prompt = 主題必須以字母或數字開頭,可以包含半形破折號(-)和點(.),最長 35 個字元。字母必須是小寫。
error.broken_git_hook = 此儲存庫的 Git 鉤子似乎已損壞。請按照<a target="_blank" rel="noreferrer" href="%s">文件</a>修復它們,然後推送一些提交以重新整理狀態。
[graphs]
component_loading = 載入中 %s…
component_loading = %s載入中…
code_frequency.what = 寫程式頻率
recent_commits.what = 最近的提交
contributors.what = 貢獻
component_loading_failed = 無法載入 %s
component_loading_info = 這可能需要一點時間…
component_failed_to_load = 發生了意外錯誤。
[org]
org_name_holder=組織名稱
org_full_name_holder=組織全名
@ -2841,17 +2938,17 @@ members.member=普通成員
members.remove=移除
members.remove.detail=確定要從 %[2]s 中刪除 %[1]s 嗎?
members.leave=離開
members.leave.detail=確定要離開 %s 嗎?
members.leave.detail=你確定你要離開組織「%s」嗎?
members.invite_desc=邀請新的用戶加入 %s
members.invite_now=立即邀請
teams.join=加入
teams.leave=離開
teams.leave.detail=確定要離開 %s 嗎?
teams.leave.detail=你確定你要離開團隊「%s」嗎?
teams.can_create_org_repo=建立儲存庫
teams.can_create_org_repo_helper=成員可以在組織中新增儲存庫。建立者將自動取得新儲存庫的管理員權限。
teams.none_access=沒有權限
teams.none_access_helper=成員無法檢視此單元或對其執行其他動作,這對公開儲存庫沒有影響
teams.none_access=無權存取
teams.none_access_helper=「無權存取」選項僅對私人儲存庫有效
teams.general_access=自訂存取
teams.general_access_helper=成員權限將由下列權限表決定。
teams.read_access=讀取
@ -2900,6 +2997,9 @@ settings.email = 聯絡電子郵件
form.name_pattern_not_allowed = 組織名稱中不允許使用式樣「%s」。
follow_blocked_user = 你無法關注此組織,因為此組織已封鎖你。
settings.change_orgname_prompt = 注意:變更組織名稱也會變更你組織的網址並釋放舊名稱。
teams.invite.title = 你已被邀請加入組織 <strong>%[2]s</strong> 中的團隊 <strong>%[1]s</strong>。
[admin]
dashboard=資訊主頁
users=使用者帳號
@ -2988,9 +3088,9 @@ dashboard.delete_old_actions.started=從資料庫刪除所有舊行為的任務
dashboard.update_checker=更新檢查器
dashboard.delete_old_system_notices=從資料庫刪除所有舊系統提示
dashboard.gc_lfs=對 LFS meta objects 進行垃圾回收
dashboard.stop_zombie_tasks=停止殭屍任務
dashboard.stop_endless_tasks=停止永不停止的任務
dashboard.cancel_abandoned_jobs=取消已放棄的作業
dashboard.stop_zombie_tasks=停止殭屍 Actions 任務
dashboard.stop_endless_tasks=停止永不停止的 Actions 任務
dashboard.cancel_abandoned_jobs=取消已放棄的 Actions 作業
users.user_manage_panel=使用者帳號管理
users.new_account=建立使用者帳號
@ -3127,7 +3227,7 @@ auths.search_page_size=頁面大小
auths.filter=使用者篩選器
auths.admin_filter=管理者篩選器
auths.restricted_filter=受限制的篩選器
auths.restricted_filter_helper=留白則不限制任何使用者。使用米字「*」將所有不符合管理員篩選條件的使用者設定為受限。
auths.restricted_filter_helper=留白以不限制任何使用者。使用半形星號「*」以將所有不符合管理員篩選條件的使用者設定為受限。
auths.verify_group_membership=驗證 LDAP 群組成員資格 (篩選器留空以跳過)
auths.group_search_base=群組搜尋的 Base DN
auths.group_attribute_list_users=包含使用者清單的群組屬性
@ -3140,15 +3240,15 @@ auths.smtp_auth=SMTP 驗證類型
auths.smtphost=SMTP 主機地址
auths.smtpport=SMTP 連接埠
auths.allowed_domains=允許的域名
auths.allowed_domains_helper=留白以允許所有域名。以半形逗號「,」分隔多個域名。
auths.skip_tls_verify=略 TLS 驗證
auths.allowed_domains_helper=留白以允許所有域名。以半形逗號,分隔多個域名。
auths.skip_tls_verify= TLS 驗證
auths.force_smtps=強制 SMTPS
auths.force_smtps_helper=SMTPS 總是使用 465 埠。設定此選項以強制 SMTPS 使用其他埠。(除此之外若主機支援的話 STARTTLS 也會使用該埠。)
auths.helo_hostname=HELO 主機名稱
auths.helo_hostname_helper=用 HELO 傳送的主機名稱。留空以傳送目前的主機名稱。
auths.disable_helo=停用 HELO
auths.pam_service_name=PAM 服務名稱
auths.pam_email_domain=PAM 電子信箱域名 (選用)
auths.pam_email_domain=PAM 電子信箱域名(選用)
auths.oauth2_provider=OAuth2 提供者
auths.oauth2_icon_url=圖示 URL
auths.oauth2_clientID=客戶端 ID (金鑰)
@ -3194,11 +3294,11 @@ auths.tip.github=註冊新的 OAuth 應用程式。網址:%s
auths.tip.gitlab=註冊新的應用程式。網址https://gitlab.com/profile/applications
auths.tip.google_plus=從 Google API 控制台取得 OAuth2 使用者端憑證。網址:%s
auths.tip.openid_connect=使用 OpenID 連接探索 URL (<server>/.well-known/openid-configuration) 來指定節點
auths.tip.twitter=建立應用程式並確保有啟用「Allow this application to be used to Sign in with Twitter」。網址%s
auths.tip.discord=註冊新應用程式。網址:%s
auths.tip.twitter=前往 %s建立應用程式並確保啟用了「允許此應用程式用於使用 Twitter 登入」選項
auths.tip.discord=在 %s 上註冊新應用程式
auths.tip.yandex=在 %s 建立新的應用程式。請在「Yandex.Passport API」區塊選擇選擇下列權限「Access to email address」、「Access to user avatar」和「Access to username, first name and surname, gender」
auths.tip.mastodon=輸入您想用來認證的 Mastodon 站點的自訂網址(或使用預設值)
auths.edit=修改認證來源
auths.edit=編輯認證來源
auths.activated=該認證來源已啟用
auths.new_success=已新增認證「%s」。
auths.update_success=已更新認證來源。
@ -3218,10 +3318,10 @@ config.app_name=站點標題
config.app_ver=Forgejo 版本
config.app_url=Forgejo 基底 URL
config.custom_conf=設定檔路徑
config.custom_file_root_path=自訂檔案根目錄
config.custom_file_root_path=自訂檔案根路徑
config.domain=伺服器域名
config.offline_mode=本地模式
config.disable_router_log=關閉路由日誌
config.disable_router_log=停用路由日誌
config.run_user=以使用者名稱執行
config.run_mode=執行模式
config.git_version=Git 版本
@ -3229,7 +3329,7 @@ config.repo_root_path=儲存庫根路徑
config.lfs_root_path=LFS 根路徑
config.log_file_root_path=日誌路徑
config.script_type=腳本類型
config.reverse_auth_user=反向代理認證
config.reverse_auth_user=反向代理認證使用者
config.ssh_config=SSH 設定
config.ssh_enabled=已啟用
@ -3239,7 +3339,7 @@ config.ssh_port=連接埠
config.ssh_listen_port=監聽埠
config.ssh_root_path=根路徑
config.ssh_key_test_path=金鑰測試路徑
config.ssh_keygen_path=金鑰產生 (' ssh-keygen ') 路徑
config.ssh_keygen_path=金鑰產生ssh-keygen路徑
config.ssh_minimum_key_size_check=金鑰最小大小檢查
config.ssh_minimum_key_sizes=金鑰最小大小
@ -3265,13 +3365,13 @@ config.allow_only_external_registration=只允許從外部服務註冊
config.enable_openid_signup=啟用 OpenID 自助註冊
config.enable_openid_signin=啟用 OpenID 登入
config.show_registration_button=顯示註冊按鈕
config.require_sign_in_view=需要登入才能瀏覽頁面
config.require_sign_in_view=需要登入才能瀏覽內容
config.mail_notify=啟用電子郵件通知
config.enable_captcha=啟用驗證碼
config.active_code_lives=用使用者連結有效期
config.active_code_lives=動碼過期時間
config.reset_password_code_lives=帳號復原碼有效時間
config.default_keep_email_private=預設隱藏電子信箱
config.default_allow_create_organization=預設允許新增組織
config.default_allow_create_organization=預設允許建立組織
config.enable_timetracking=啟用時間追蹤
config.default_enable_timetracking=預設啟用時間追蹤
config.default_allow_only_contributors_to_track_time=只讓貢獻者追蹤時間
@ -3378,7 +3478,7 @@ monitor.queue.settings.submit=更新設定
monitor.queue.settings.changed=已更新設定
notices.system_notice_list=系統提示
notices.view_detail_header=查看提示細節
notices.view_detail_header=提示詳情
notices.operations=操作
notices.select_all=全部選取
notices.deselect_all=取消所有選取
@ -3405,15 +3505,15 @@ monitor.stats = 統計資料
self_check.no_problem_found = 未發現任何問題。
config.send_test_mail_submit = 寄送
users.details = 使用者詳細資訊
assets = 程式碼資
dashboard.sync_branch.started = 已開始同步分支
assets = 程式碼資
dashboard.sync_branch.started = 分支同步已開始
dashboard.rebuild_issue_indexer = 重建問題索引
repos.lfs_size = LFS 大小
packages.cleanup = 清除過期的資料
packages.cleanup.success = 已成功清除過期資料
monitor.processes_count = %d 個程序
monitor.queue.settings.remove_all_items = 全部移除
identity_access = 身分和存取權限
identity_access = 身分和存取
config.cache_test = 測試快取
config_settings = 設定
config_summary = 概要
@ -3437,6 +3537,29 @@ config.logger_name_fmt = 日誌:%s
monitor.queue.review_add = 審閱/增加 Worker
self_check.database_fix_mysql = 對於 MySQLMariaDB 的使用者你可以使用命令「forgejo doctor convert」來修復排序規則問題或者你也可以手動透過「ALTER ... COLLATE ...」SQL 修復問題。
dashboard.sync_repo_branches = 將缺少的分支從 Git 資料同步至資料庫
dashboard.sync_repo_tags = 將標籤從 Git 資料同步至資料庫
users.activated.description = 完成電子郵件驗證。未啟動帳號的擁有者將無法登入,直至電子郵件驗證完成。
users.block.description = 阻止此使用者透過其帳號與此服務互動並禁止登入。
users.admin.description = 授予此使用者透過網頁介面和 API 提供的所有管理功能的完全存取權。
users.restricted.description = 僅允許與將此使用者新增為合作者的儲存庫和組織進行互動。這會阻止存取此站點上的公共儲存庫。
users.local_import.description = 允許從伺服器的本機檔案系統匯入儲存庫。這可能是個安全問題。
defaulthooks.desc = 當某些 Forgejo 事件觸發時Webhook 會自動向伺服器發出 HTTP POST 請求。此處定義的 Webhook 是預設的,將複製至所有新的儲存庫中。更多資訊請參考<a target="_blank" rel="noopener" href="%s">Webhook 指南</a>。
systemhooks.desc = 當某些 Forgejo 事件觸發時Webhook 會自動向伺服器發出 HTTP POST 請求。此處定義的 Webhook 將作用於系統上的所有儲存庫,因此請考慮這可能產生的任何效能影響。更多資訊請參考<a target="_blank" rel="noopener" href="%s">Webhook 指南</a>。
auths.tips.oauth2.general.tip = 當註冊新的 OAuth2 驗證時,回呼/重新導向網址應該是:
auths.tip.gitlab_new = 在 %s 上註冊新應用程式
auths.tip.gitea = 註冊一個新的 OAuth2 應用程式。指南可在 %s 找到
config.allow_dots_in_usernames = 允許使用者在使用者名稱中使用點。不會影響現有帳號。
config.cache_test_failed = 無法探測快取:%v。
config.cache_test_slow = 快取測試成功,但是回應很慢:%s。
config.cache_test_succeeded = 快取測試成功,在 %s 內收到回應。
config.open_with_editor_app_help = 拓製選單中的「開啟方式」編輯器。如果留空則將使用預設值。展開以查看預設值。
monitor.queue.activeworkers = 活躍工作者
monitor.queue.settings.desc = 集區會根據工作者佇列的阻塞情況動態增長。
self_check.database_collation_mismatch = 期望資料庫使用的排序規則:%s
self_check.database_collation_case_insensitive = 資料庫正在使用排序規則 %s這是一種不敏感的排序規則。雖然 Forgejo 可以與其配合使用,但是在一些罕見情況下可能會出現無法如預期運作的情況。
self_check.database_inconsistent_collation_columns = 資料庫正在使用排序規則 %s但是這些欄使用的排序規則不相符。這可能會引起一些意想不到的問題。
[action]
create_repo=建立了儲存庫 <a href="%s">%s</a>
rename_repo=重新命名儲存庫 <code>%[1]s</code> 為 <a href="%[2]s">%[3]s</a>
@ -3460,7 +3583,7 @@ compare_commits=比較 %d 個提交
compare_commits_general=比較提交
mirror_sync_push=從鏡像同步了提交到 <a href="%[1]s">%[4]s</a> 的 <a href="%[2]s">%[3]s</a>
mirror_sync_create=從鏡像同步了新參考 <a href="%[2]s">%[3]s</a> 到 <a href="%[1]s">%[4]s</a>
mirror_sync_delete=從鏡像同步並從 <a href="%[1]s">%[3]s</a> 刪除了參考 <code>%[2]s</code>
mirror_sync_delete=從鏡像同步並從 <a href="%[1]s">%[3]s</a> 刪除了參考 <code>%[2]s</code>
approve_pull_request=`核可了 <a href="%[1]s">%[3]s#%[2]s</a>`
reject_pull_request=`提出了修改建議 <a href="%[1]s">%[3]s#%[2]s</a>`
publish_release=`發布了 <a href="%[1]s">%[3]s</a> 的 <a href="%[2]s"> "%[4]s" </a>`
@ -3530,7 +3653,7 @@ error.unit_not_allowed=您未被允許存取此儲存庫區域。
title=軟體包
desc=管理儲存庫軟體包。
empty=目前還沒有軟體包。
empty.documentation=關於軟體包註冊中心的詳情請參閱<a target="_blank" rel="noopener noreferrer" href="%s">說明文件</a>。
empty.documentation=關於軟體包註冊中心的詳情請參閱<a target="_blank" rel="noopener noreferrer" href="%s">文件</a>。
empty.repo=已經上傳了一個軟體包,但是它不在這裡嗎?造訪<a href="%[1]s">軟體包設定</a>並將其連結到這個儲存庫。
filter.type=類型
filter.type.all=所有
@ -3605,7 +3728,7 @@ npm.install=執行下列命令以使用 npm 安裝此軟體包:
npm.install2=或將它加到 package.json 檔:
npm.dependencies=相依性
npm.dependencies.development=開發相依性
npm.dependencies.peer=Peer 相依性
npm.dependencies.peer=同行相依性
npm.dependencies.optional=選用相依性
npm.details.tag=標籤
pub.install=執行下列命令以使用 Dart 安裝此軟體包:
@ -3671,7 +3794,7 @@ arch.version.description = 描述
arch.version.properties = 版本屬性
arch.version.backup = 備份
arch.version.conflicts = 衝突
npm.dependencies.bundle = 已捆綁的依賴項
npm.dependencies.bundle = 已捆綁相依性
arch.version.provides = 提供
arch.pacman.repo.multi.item = %s 的組態
arch.version.replaces = 取代
@ -3723,7 +3846,7 @@ status.running=執行中
status.success=成功
status.failure=失敗
status.skipped=已略過
status.blocked=已阻
status.blocked=已阻
runners=Runner
runners.runner_manage_panel=管理 Runner
@ -3785,7 +3908,7 @@ variables.creation = 新增變數
variables.none = 目前沒有變數。
variables.deletion = 刪除變數
variables.deletion.description = 刪除變數是永久且不可取消的。要繼續嗎?
variables.creation.success = 變數 「%s」已成功被新增
variables.creation.success = 已新增變數 「%s」。
variables.update.failed = 編輯變數失敗。
runs.no_results = 沒有相符的結果。
runs.no_workflows = 目前沒有任何工作流程。
@ -3807,7 +3930,7 @@ workflow.dispatch.warn_input_limit = 僅顯示前 %d 個輸入。
runs.no_job = 工作流程必須包含至少一項作業
runs.expire_log_message = 日誌已被清除,因為它們太舊了。
runs.no_job_without_needs = 工作流程必須包含至少一項沒有依賴性的作業。
runs.no_matching_online_runner_helper = 沒有在線執行器匹配標籤:%s
runs.no_matching_online_runner_helper = 沒有在線執行器匹配標籤:%s
workflow.dispatch.success = 已成功請求工作流程運行。
runs.no_workflows.documentation = 有關 Forgejo Actions 的更多資訊,請參閱<a target="_blank" rel="noopener noreferrer" href="%s">文件</a>。
runners.reset_registration_token = 重置註冊符記
@ -3817,6 +3940,8 @@ runs.no_workflows.help_write_access = 不知道如何開始使用 Forgejo Action
runs.no_workflows.help_no_write_access = 要了解 Forgejo Actions請參閱<a target="_blank" rel="noopener noreferrer" href="%s">文件</a>。
workflow.dispatch.use_from = 使用工作流程自
variables.not_found = 找不到變數。
[projects]
type-2.display_name = 儲存庫專案
type-1.display_name = 個人專案
@ -3863,6 +3988,8 @@ pull_kind = 搜尋拉取…
regexp = 正規表示式
regexp_tooltip = 將搜尋詞解釋為正規表示式
union = 關鍵字
[munits.data]
eib = EiB
b = B
@ -3879,3 +4006,7 @@ filepreview.line = %[2]s 中的第 %[1]d 行
[translation_meta]
test = 好的
[repo.permissions]
ext_issues = 存取外部問題追蹤器的連結。權限由外部管理。
ext_wiki = 存取外部 Wiki 的連結。權限由外部管理。

1
release-notes/7251.md Normal file
View file

@ -0,0 +1 @@
When migrating from a Forgejo version lower than v10, the TOTP secrets found to be corrupted are now transparently removed from the database instead of failing the migration. TOTP is no longer required to login with the associated users. They should be informed because they will need to visit their security settings and configure TOTP again. No other action is required.

View file

@ -363,7 +363,7 @@ func CreatePushMirror(ctx *context.APIContext, mirrorOption *api.CreatePushMirro
address, err := forms.ParseRemoteAddr(mirrorOption.RemoteAddress, mirrorOption.RemoteUsername, mirrorOption.RemotePassword)
if err == nil {
err = migrations.IsMigrateURLAllowed(address, ctx.ContextUser)
err = migrations.IsPushMirrorURLAllowed(address, ctx.ContextUser)
}
if err != nil {
HandleRemoteAddressError(ctx, err)

View file

@ -85,7 +85,7 @@ func Search(ctx *context.APIContext) {
// type: boolean
// - name: is_private
// in: query
// description: show only pubic, private or all repositories (defaults to all)
// description: show only public, private or all repositories (defaults to all)
// type: boolean
// - name: template
// in: query

View file

@ -74,28 +74,27 @@ func ProtocolMiddlewares() (handlers []any) {
func stripSlashesMiddleware(next http.Handler) http.Handler {
return http.HandlerFunc(func(resp http.ResponseWriter, req *http.Request) {
// First of all escape the URL RawPath to ensure that all routing is done using a correctly escaped URL
// Ensure that URL.RawPath is always set.
req.URL.RawPath = req.URL.EscapedPath()
urlPath := req.URL.RawPath
rctx := chi.RouteContext(req.Context())
if rctx != nil && rctx.RoutePath != "" {
urlPath = rctx.RoutePath
}
sanitizedPath := &strings.Builder{}
prevWasSlash := false
for _, chr := range strings.TrimRight(urlPath, "/") {
if chr != '/' || !prevWasSlash {
sanitizedPath.WriteRune(chr)
sanitize := func(path string) string {
sanitizedPath := &strings.Builder{}
prevWasSlash := false
for _, chr := range strings.TrimRight(path, "/") {
if chr != '/' || !prevWasSlash {
sanitizedPath.WriteRune(chr)
}
prevWasSlash = chr == '/'
}
prevWasSlash = chr == '/'
return sanitizedPath.String()
}
if rctx == nil {
req.URL.Path = sanitizedPath.String()
} else {
rctx.RoutePath = sanitizedPath.String()
// Sanitize the unescaped path for application logic.
req.URL.Path = sanitize(req.URL.Path)
rctx := chi.RouteContext(req.Context())
if rctx != nil {
// Sanitize the escaped path for routing.
rctx.RoutePath = sanitize(req.URL.RawPath)
}
next.ServeHTTP(resp, req)
})

View file

@ -7,14 +7,18 @@ import (
"net/http/httptest"
"testing"
"code.gitea.io/gitea/modules/web"
chi "github.com/go-chi/chi/v5"
"github.com/stretchr/testify/assert"
)
func TestStripSlashesMiddleware(t *testing.T) {
type test struct {
name string
expectedPath string
inputPath string
name string
expectedPath string
expectedNormalPath string
inputPath string
}
tests := []test{
@ -43,28 +47,51 @@ func TestStripSlashesMiddleware(t *testing.T) {
inputPath: "/user2//repo1/",
expectedPath: "/user2/repo1",
},
{
name: "path with slashes in the beginning",
inputPath: "https://codeberg.org//user2/repo1/",
expectedPath: "/user2/repo1",
},
{
name: "path with slashes and query params",
inputPath: "/repo//migrate?service_type=3",
expectedPath: "/repo/migrate",
},
{
name: "path with encoded slash",
inputPath: "/user2/%2F%2Frepo1",
expectedPath: "/user2/%2F%2Frepo1",
name: "path with encoded slash",
inputPath: "/user2/%2F%2Frepo1",
expectedPath: "/user2/%2F%2Frepo1",
expectedNormalPath: "/user2/repo1",
},
{
name: "path with space",
inputPath: "/assets/css/theme%20cappuccino.css",
expectedPath: "/assets/css/theme%20cappuccino.css",
expectedNormalPath: "/assets/css/theme cappuccino.css",
},
}
for _, tt := range tests {
testMiddleware := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
assert.Equal(t, tt.expectedPath, r.URL.Path)
r := web.NewRoute()
r.Use(stripSlashesMiddleware)
called := false
r.Get("*", func(w http.ResponseWriter, r *http.Request) {
if tt.expectedNormalPath != "" {
assert.Equal(t, tt.expectedNormalPath, r.URL.Path)
} else {
assert.Equal(t, tt.expectedPath, r.URL.Path)
}
rctx := chi.RouteContext(r.Context())
assert.Equal(t, tt.expectedPath, rctx.RoutePath)
called = true
})
// pass the test middleware to validate the changes
handlerToTest := stripSlashesMiddleware(testMiddleware)
// create a mock request to use
req := httptest.NewRequest("GET", tt.inputPath, nil)
// call the handler using a mock response recorder
handlerToTest.ServeHTTP(httptest.NewRecorder(), req)
r.ServeHTTP(httptest.NewRecorder(), req)
assert.True(t, called)
}
}

View file

@ -61,7 +61,7 @@ func autoSignIn(ctx *context.Context) (bool, error) {
return false, nil
}
u, err := user_model.VerifyUserAuthorizationToken(ctx, authCookie, auth.LongTermAuthorization, false)
u, _, err := user_model.VerifyUserAuthorizationToken(ctx, authCookie, auth.LongTermAuthorization)
if err != nil {
return false, fmt.Errorf("VerifyUserAuthorizationToken: %w", err)
}
@ -170,6 +170,8 @@ func SignIn(ctx *context.Context) {
context.SetCaptchaData(ctx)
}
ctx.Data["DisablePassword"] = !setting.Service.EnableInternalSignIn
ctx.HTML(http.StatusOK, tplSignIn)
}
@ -189,6 +191,7 @@ func SignInPost(ctx *context.Context) {
ctx.Data["PageIsLogin"] = true
ctx.Data["EnableSSPI"] = auth.IsSSPIEnabled(ctx)
ctx.Data["EnableInternalSignIn"] = setting.Service.EnableInternalSignIn
ctx.Data["DisablePassword"] = !setting.Service.EnableInternalSignIn
// Permission denied if EnableInternalSignIn is false
if !setting.Service.EnableInternalSignIn {
@ -674,7 +677,7 @@ func Activate(ctx *context.Context) {
return
}
user, err := user_model.VerifyUserAuthorizationToken(ctx, code, auth.UserActivation, false)
user, deleteToken, err := user_model.VerifyUserAuthorizationToken(ctx, code, auth.UserActivation)
if err != nil {
ctx.ServerError("VerifyUserAuthorizationToken", err)
return
@ -695,6 +698,11 @@ func Activate(ctx *context.Context) {
return
}
if err := deleteToken(); err != nil {
ctx.ServerError("deleteToken", err)
return
}
handleAccountActivation(ctx, user)
}
@ -743,7 +751,7 @@ func ActivatePost(ctx *context.Context) {
return
}
user, err := user_model.VerifyUserAuthorizationToken(ctx, code, auth.UserActivation, true)
user, deleteToken, err := user_model.VerifyUserAuthorizationToken(ctx, code, auth.UserActivation)
if err != nil {
ctx.ServerError("VerifyUserAuthorizationToken", err)
return
@ -772,6 +780,11 @@ func ActivatePost(ctx *context.Context) {
}
}
if err := deleteToken(); err != nil {
ctx.ServerError("deleteToken", err)
return
}
handleAccountActivation(ctx, user)
}
@ -832,7 +845,7 @@ func ActivateEmail(ctx *context.Context) {
code := ctx.FormString("code")
emailStr := ctx.FormString("email")
u, err := user_model.VerifyUserAuthorizationToken(ctx, code, auth.EmailActivation(emailStr), true)
u, deleteToken, err := user_model.VerifyUserAuthorizationToken(ctx, code, auth.EmailActivation(emailStr))
if err != nil {
ctx.ServerError("VerifyUserAuthorizationToken", err)
return
@ -842,6 +855,11 @@ func ActivateEmail(ctx *context.Context) {
return
}
if err := deleteToken(); err != nil {
ctx.ServerError("deleteToken", err)
return
}
email, err := user_model.GetEmailAddressOfUser(ctx, emailStr, u.ID)
if err != nil {
ctx.ServerError("GetEmailAddressOfUser", err)

View file

@ -44,6 +44,7 @@ func LinkAccount(ctx *context.Context) {
ctx.Data["DisableRegistration"] = setting.Service.DisableRegistration
ctx.Data["AllowOnlyInternalRegistration"] = setting.Service.AllowOnlyInternalRegistration
ctx.Data["ShowRegistrationButton"] = false
ctx.Data["EnableInternalSignIn"] = true
// use this to set the right link into the signIn and signUp templates in the link_account template
ctx.Data["SignInLink"] = setting.AppSubURL + "/user/link_account_signin"
@ -132,6 +133,7 @@ func LinkAccountPostSignIn(ctx *context.Context) {
ctx.Data["CfTurnstileSitekey"] = setting.Service.CfTurnstileSitekey
ctx.Data["DisableRegistration"] = setting.Service.DisableRegistration
ctx.Data["ShowRegistrationButton"] = false
ctx.Data["EnableInternalSignIn"] = true
// use this to set the right link into the signIn and signUp templates in the link_account template
ctx.Data["SignInLink"] = setting.AppSubURL + "/user/link_account_signin"

View file

@ -116,7 +116,7 @@ func commonResetPassword(ctx *context.Context, shouldDeleteToken bool) (*user_mo
}
// Fail early, don't frustrate the user
u, err := user_model.VerifyUserAuthorizationToken(ctx, code, auth.PasswordReset, shouldDeleteToken)
u, deleteToken, err := user_model.VerifyUserAuthorizationToken(ctx, code, auth.PasswordReset)
if err != nil {
ctx.ServerError("VerifyUserAuthorizationToken", err)
return nil, nil
@ -127,6 +127,13 @@ func commonResetPassword(ctx *context.Context, shouldDeleteToken bool) (*user_mo
return nil, nil
}
if shouldDeleteToken {
if err := deleteToken(); err != nil {
ctx.ServerError("deleteToken", err)
return nil, nil
}
}
twofa, err := auth.GetTwoFactorByUID(ctx, u.ID)
if err != nil {
if !auth.IsErrTwoFactorNotEnrolled(err) {

View file

@ -19,6 +19,7 @@ import (
"code.gitea.io/gitea/modules/annex"
"code.gitea.io/gitea/modules/graceful"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/setting"
services_context "code.gitea.io/gitea/services/context"
)
@ -93,6 +94,10 @@ func AnnexP2PHTTP(ctx *services_context.Context) {
Pdeathsig: syscall.SIGINT,
}
cmd.Cancel = func() error { return cmd.Process.Signal(os.Interrupt) }
cmd.Env = append(os.Environ(),
"GIT_AUTHOR_NAME="+setting.AppName,
"GIT_AUTHOR_EMAIL="+setting.RunUser+"@"+setting.Domain,
)
_ = cmd.Run()
}(p2phttpCtx)
graceful.GetManager().RunAtTerminate(p2phttpCtxCancel)

View file

@ -82,6 +82,24 @@ func CreateCodeComment(ctx *context.Context) {
attachments = form.Files
}
// If the reply is made to a comment that is part of a pending review, then
// this comment also should be seen as part of that pending review. Consider
// it to be a pending review by default, except when `single_review` was
// passed.
pendingReview := !form.SingleReview
if form.Reply > 0 {
r, err := issues_model.GetReviewByID(ctx, form.Reply)
if err != nil {
ctx.ServerError("GetReviewByID", err)
return
}
if r.IssueID != issue.ID {
ctx.NotFound("Review does not belong to pull request", nil)
return
}
pendingReview = r.Type == issues_model.ReviewTypePending
}
comment, err := pull_service.CreateCodeComment(ctx,
ctx.Doer,
ctx.Repo.GitRepo,
@ -89,7 +107,7 @@ func CreateCodeComment(ctx *context.Context) {
signedLine,
form.Content,
form.TreePath,
!form.SingleReview,
pendingReview,
form.Reply,
form.LatestCommitID,
attachments,

View file

@ -651,7 +651,7 @@ func SettingsPost(ctx *context.Context) {
address, err := forms.ParseRemoteAddr(form.PushMirrorAddress, form.PushMirrorUsername, form.PushMirrorPassword)
if err == nil {
err = migrations.IsMigrateURLAllowed(address, ctx.Doer)
err = migrations.IsPushMirrorURLAllowed(address, ctx.Doer)
}
if err != nil {
ctx.Data["Err_PushMirrorAddress"] = true

View file

@ -353,6 +353,11 @@ func RepoRefForAPI(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) {
ctx := GetAPIContext(req)
if ctx.Repo.Repository.IsEmpty {
ctx.NotFound(fmt.Errorf("repository is empty"))
return
}
if ctx.Repo.GitRepo == nil {
ctx.InternalServerError(fmt.Errorf("no open git repo"))
return

View file

@ -39,8 +39,17 @@ func RegisterDownloaderFactory(factory base.DownloaderFactory) {
factories = append(factories, factory)
}
// IsMigrateURLAllowed checks if an URL is allowed to be migrated from
// IsPushMirrorURLAllowed checks if an URL is allowed to be pushed to.
func IsPushMirrorURLAllowed(remoteURL string, doer *user_model.User) error {
return isURLAllowed(remoteURL, doer, true)
}
// IsMigrateURLAllowed checks if an URL is allowed to be migrated from.
func IsMigrateURLAllowed(remoteURL string, doer *user_model.User) error {
return isURLAllowed(remoteURL, doer, false)
}
func isURLAllowed(remoteURL string, doer *user_model.User, isPushMirror bool) error {
// Remote address can be HTTP/HTTPS/Git URL or local path.
u, err := url.Parse(remoteURL)
if err != nil {
@ -71,7 +80,7 @@ func IsMigrateURLAllowed(remoteURL string, doer *user_model.User) error {
return &models.ErrInvalidCloneAddr{Host: u.Host, IsURLError: true}
}
if u.Opaque != "" || u.Scheme != "" && u.Scheme != "http" && u.Scheme != "https" && u.Scheme != "git" && u.Scheme != "ssh" {
if u.Opaque != "" || u.Scheme != "" && u.Scheme != "http" && u.Scheme != "https" && u.Scheme != "git" && u.Scheme != "ssh" || (!isPushMirror && u.Scheme == "ssh") {
return &models.ErrInvalidCloneAddr{Host: u.Host, IsProtocolInvalid: true, IsPermissionDenied: true, IsURLError: true}
}

View file

@ -113,3 +113,18 @@ func TestAllowBlockList(t *testing.T) {
// reset
init("", "", false)
}
func TestURLAllowedSSH(t *testing.T) {
require.NoError(t, unittest.PrepareTestDatabase())
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{Name: "user2"})
sshURL := "ssh://git@git.gay/gitgay/forgejo"
t.Run("Migrate URL", func(t *testing.T) {
require.Error(t, IsMigrateURLAllowed(sshURL, user))
})
t.Run("Pushmirror URL", func(t *testing.T) {
require.NoError(t, IsPushMirrorURLAllowed(sshURL, user))
})
}

View file

@ -23,7 +23,7 @@
{{if .CanCreateOrgRepo}}
<div class="center aligned">
<a class="ui primary button tw-mb-1" href="{{AppSubUrl}}/repo/create?org={{.Org.ID}}">{{ctx.Locale.Tr "new_repo.link"}}</a>
{{if not .DisableNewPullMirrors}}
{{if not .DisableMigrations}}
<a class="ui primary button tw-mb-1" href="{{AppSubUrl}}/repo/migrate?org={{.Org.ID}}&mirror=1">{{ctx.Locale.Tr "new_migrate.link"}}</a>
{{end}}
</div>

View file

@ -31,7 +31,6 @@
{{if $.reply}}
<button class="ui submit primary tiny button btn-reply" type="submit">{{ctx.Locale.Tr "repo.diff.comment.reply"}}</button>
<input type="hidden" name="reply" value="{{$.reply}}">
<input type="hidden" name="single_review" value="true">
{{else}}
{{if $.root.CurrentReview}}
<button name="pending_review" type="submit" class="ui submit primary tiny button btn-add-comment">{{ctx.Locale.Tr "repo.diff.comment.add_review_comment"}}</button>

View file

@ -20,7 +20,12 @@
{{end}}
</div>
{{if and (.Permission.CanRead $.UnitTypeCode) (not .IsEmptyRepo) .LanguageStats}}
<div class="ui segment sub-menu language-stats-details tw-hidden">
<a class="ui segment show-panel toggle" id="language-stats-bar" data-panel="#language-stats-legend">
{{range .LanguageStats}}
<div class="bar" style="width: {{.Percentage}}%; background-color: {{.Color}}" data-tooltip-placement="top" data-tooltip-content={{.Language}} data-tooltip-follow-cursor="horizontal"></div>
{{end}}
</a>
<div class="ui segment sub-menu tw-hidden" id="language-stats-legend">
{{range .LanguageStats}}
<div class="item">
<i class="color-icon" style="background-color: {{.Color}}"></i>
@ -35,11 +40,6 @@
</div>
{{end}}
</div>
<a class="ui segment language-stats show-panel toggle" data-panel=".repository-summary > .sub-menu">
{{range .LanguageStats}}
<div class="bar" style="width: {{.Percentage}}%; background-color: {{.Color}}" data-tooltip-placement="top" data-tooltip-content={{.Language}} data-tooltip-follow-cursor="horizontal"></div>
{{end}}
</a>
{{end}}
</div>
{{end}}

View file

@ -4455,7 +4455,7 @@
},
{
"type": "boolean",
"description": "show only pubic, private or all repositories (defaults to all)",
"description": "show only public, private or all repositories (defaults to all)",
"name": "is_private",
"in": "query"
},

View file

@ -50,6 +50,7 @@
</div>
</div>
{{if not .DisablePassword}}
<div class="ui container fluid">
{{template "user/auth/webauthn_error" .}}
@ -65,3 +66,5 @@
</div>
</div>
</div>
{{end}}

View file

@ -107,7 +107,7 @@
{{else if .GetOpType.InActions "create_pull_request"}}
<span class="text truncate issue title">{{RenderIssueTitle ctx (index .GetIssueInfos 1) (.Repo.ComposeMetas ctx)}}</span>
{{else if .GetOpType.InActions "comment_issue" "approve_pull_request" "reject_pull_request" "comment_pull"}}
<a href="{{.GetCommentLink ctx}}" class="text truncate issue title">{{RenderIssueTitle ctx (.GetIssueTitle ctx) (.Repo.ComposeMetas ctx)}}</a>
<a href="{{.GetCommentLink ctx}}" class="text truncate issue title">{{(.GetIssueTitle ctx) | RenderEmoji $.Context | RenderCodeBlock}}</a>
{{$comment := index .GetIssueInfos 1}}
{{if $comment}}
<div class="markup tw-text-14">{{RenderMarkdownToHtml ctx $comment}}</div>

View file

@ -0,0 +1,25 @@
// Copyright 2025 The Forgejo Authors. All rights reserved.
// SPDX-License-Identifier: GPL-3.0-or-later
// @watch start
// templates/repo/issue/view_title.tmpl
// web_src/js/features/repo-issue.js
// @watch end
import {expect} from '@playwright/test';
import {save_visual, test} from './utils_e2e.ts';
test.use({user: 'user2'});
test('PR: title edit', async ({page}) => {
const response = await page.goto('/user2/repo1/pulls/5');
expect(response?.status()).toBe(200);
await expect(page.locator('#editable-label')).toBeVisible();
await save_visual(page);
// Labels AGit and Editable are hidden when title is in edit mode
await page.locator('#issue-title-edit-show').click();
await expect(page.locator('#editable-label')).toBeHidden();
await save_visual(page);
});

View file

@ -0,0 +1,19 @@
// @watch start
// web_src/js/features/common-global.js
// web_src/css/repo.css
// @watch end
import {expect} from '@playwright/test';
import {save_visual, test} from './utils_e2e.ts';
test('Language stats bar', async ({page}) => {
const response = await page.goto('/user2/repo1');
expect(response?.status()).toBe(200);
await expect(page.locator('#language-stats-legend')).toBeVisible();
await save_visual(page);
await page.click('#language-stats-bar');
await expect(page.locator('#language-stats-legend')).toBeHidden();
await save_visual(page);
});

View file

@ -0,0 +1,39 @@
package integration
import (
"net/http"
"testing"
"code.gitea.io/gitea/modules/setting"
"code.gitea.io/gitea/modules/test"
"code.gitea.io/gitea/tests"
)
func TestDisableForgottenPasswordFalse(t *testing.T) {
defer tests.PrepareTestEnv(t)()
defer test.MockVariableValue(&setting.Service.EnableInternalSignIn, true)()
req := NewRequest(t, "GET", "/user/login/")
resp := MakeRequest(t, req, http.StatusOK)
htmlDoc := NewHTMLParser(t, resp.Body)
htmlDoc.AssertElement(t, "a[href='/user/forgot_password']", true)
}
func TestDisableForgottenPasswordTrue(t *testing.T) {
defer tests.PrepareTestEnv(t)()
defer test.MockVariableValue(&setting.Service.EnableInternalSignIn, false)()
req := NewRequest(t, "GET", "/user/login/")
resp := MakeRequest(t, req, http.StatusOK)
htmlDoc := NewHTMLParser(t, resp.Body)
htmlDoc.AssertElement(t, "a[href='/user/forgot_password']", false)
}
func TestDisableForgottenPasswordDefault(t *testing.T) {
defer tests.PrepareTestEnv(t)()
req := NewRequest(t, "GET", "/user/login/")
resp := MakeRequest(t, req, http.StatusOK)
htmlDoc := NewHTMLParser(t, resp.Body)
htmlDoc.AssertElement(t, "a[href='/user/forgot_password']", true)
}

View file

@ -136,3 +136,24 @@ func TestEmptyRepoAddFileByAPI(t *testing.T) {
DecodeJSON(t, resp, &apiRepo)
assert.Equal(t, "new_branch", apiRepo.DefaultBranch)
}
func TestEmptyRepoAPIRequestsReturn404(t *testing.T) {
defer tests.PrepareTestEnv(t)()
session := loginUser(t, "user30")
token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeReadRepository)
t.Run("Raw", func(t *testing.T) {
defer tests.PrintCurrentTest(t)()
req := NewRequest(t, "GET", "/api/v1/repos/user30/empty/raw/main/something").AddTokenAuth(token)
_ = session.MakeRequest(t, req, http.StatusNotFound)
})
t.Run("Media", func(t *testing.T) {
defer tests.PrintCurrentTest(t)()
req := NewRequest(t, "GET", "/api/v1/repos/user30/empty/media/main/something").AddTokenAuth(token)
_ = session.MakeRequest(t, req, http.StatusNotFound)
})
}

View file

@ -0,0 +1,25 @@
-
id: 1001
type: 21 # code comment
poster_id: 2
issue_id: 2
content: "Still pending"
review_id: 1002
line: 4
tree_path: "README.md"
created_unix: 1730000000
invalidated: false
content_version: 1
-
id: 1002
type: 21 # code comment
poster_id: 2
issue_id: 2
content: "Visible"
review_id: 1001
line: 3
tree_path: "README.md"
created_unix: 1720000000
invalidated: false
content_version: 1

View file

@ -0,0 +1,17 @@
-
id: 1001
type: 2
reviewer_id: 2
issue_id: 2
content: "Normal review"
updated_unix: 1720000000
created_unix: 1720000000
-
id: 1002
type: 0
reviewer_id: 2
issue_id: 2
content: "Pending review"
updated_unix: 1730000000
created_unix: 1730000000

View file

@ -15,7 +15,9 @@ import (
"code.gitea.io/gitea/models/unit"
"code.gitea.io/gitea/models/unittest"
user_model "code.gitea.io/gitea/models/user"
"code.gitea.io/gitea/modules/setting"
api "code.gitea.io/gitea/modules/structs"
"code.gitea.io/gitea/modules/test"
"code.gitea.io/gitea/tests"
"github.com/stretchr/testify/assert"
@ -266,3 +268,32 @@ func TestOwnerTeamUnit(t *testing.T) {
unittest.AssertExistsAndLoadBean(t, &organization.TeamUnit{TeamID: 1, Type: unit.TypeIssues, AccessMode: perm.AccessModeOwner})
}
func TestOrgNewMigrationButton(t *testing.T) {
defer tests.PrepareTestEnv(t)()
migrateSelector := `a[href^="/repo/migrate?org="]`
session := loginUser(t, "user2")
t.Run("Migration disabled", func(t *testing.T) {
defer tests.PrintCurrentTest(t)()
defer test.MockVariableValue(&setting.Repository.DisableMigrations, true)()
req := NewRequest(t, "GET", "/org3")
resp := session.MakeRequest(t, req, http.StatusOK)
htmlDoc := NewHTMLParser(t, resp.Body)
htmlDoc.AssertElement(t, migrateSelector, false)
})
t.Run("Migration enabled", func(t *testing.T) {
defer tests.PrintCurrentTest(t)()
defer test.MockVariableValue(&setting.Repository.DisableMigrations, false)()
req := NewRequest(t, "GET", "/org3")
resp := session.MakeRequest(t, req, http.StatusOK)
htmlDoc := NewHTMLParser(t, resp.Body)
htmlDoc.AssertElement(t, migrateSelector, true)
})
}

View file

@ -24,7 +24,7 @@ func TestPrivateIssueProject(t *testing.T) {
user2 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2})
sess := loginUser(t, user2.Name)
test := func(t *testing.T, sess *TestSession, username string, projectID int64, hasAccess bool) {
test := func(t *testing.T, sess *TestSession, username string, projectID int64, hasAccess bool, publicIssueHref ...string) {
t.Helper()
defer tests.PrintCurrentTest(t, 1)()
@ -35,9 +35,9 @@ func TestPrivateIssueProject(t *testing.T) {
htmlDoc := NewHTMLParser(t, resp.Body)
openCloseStats := htmlDoc.Find(".milestone-toolbar .group").First().Text()
if hasAccess {
assert.Contains(t, openCloseStats, "1\u00a0Open")
assert.Contains(t, openCloseStats, "2\u00a0Open")
} else {
assert.Contains(t, openCloseStats, "0\u00a0Open")
assert.Contains(t, openCloseStats, "1\u00a0Open")
}
assert.Contains(t, openCloseStats, "0\u00a0Closed")
@ -46,14 +46,21 @@ func TestPrivateIssueProject(t *testing.T) {
resp = sess.MakeRequest(t, req, http.StatusOK)
htmlDoc = NewHTMLParser(t, resp.Body)
htmlDoc.AssertElement(t, ".project-column .issue-card", hasAccess)
issueCardsLen := htmlDoc.Find(".project-column .issue-card").Length()
if hasAccess {
assert.EqualValues(t, 2, issueCardsLen)
} else {
assert.EqualValues(t, 1, issueCardsLen)
// Ensure that the public issue is shown.
assert.EqualValues(t, publicIssueHref[0], htmlDoc.Find(".project-column .issue-card .issue-card-title").AttrOr("href", ""))
}
// And that the issue count is correct.
issueCount := strings.TrimSpace(htmlDoc.Find(".project-column-issue-count").Text())
if hasAccess {
assert.EqualValues(t, "1", issueCount)
assert.EqualValues(t, "2", issueCount)
} else {
assert.EqualValues(t, "0", issueCount)
assert.EqualValues(t, "1", issueCount)
}
}
@ -66,7 +73,7 @@ func TestPrivateIssueProject(t *testing.T) {
})
t.Run("Anonymous user", func(t *testing.T) {
test(t, emptyTestSession(t), org.Name, orgProject.ID, false)
test(t, emptyTestSession(t), org.Name, orgProject.ID, false, "/org3/repo21/issues/1")
})
})
@ -78,7 +85,7 @@ func TestPrivateIssueProject(t *testing.T) {
})
t.Run("Anonymous user", func(t *testing.T) {
test(t, emptyTestSession(t), user2.Name, userProject.ID, false)
test(t, emptyTestSession(t), user2.Name, userProject.ID, false, "/user2/repo1/issues/1")
})
})
}

View file

@ -23,6 +23,7 @@ import (
repo_module "code.gitea.io/gitea/modules/repository"
"code.gitea.io/gitea/modules/test"
issue_service "code.gitea.io/gitea/services/issue"
"code.gitea.io/gitea/services/mailer"
repo_service "code.gitea.io/gitea/services/repository"
files_service "code.gitea.io/gitea/services/repository/files"
"code.gitea.io/gitea/tests"
@ -604,3 +605,115 @@ func getUserNotificationCount(t *testing.T, session *TestSession, csrf string) s
doc := NewHTMLParser(t, resp.Body)
return doc.Find(`.notification_count`).Text()
}
func TestPullRequestReplyMail(t *testing.T) {
defer tests.AddFixtures("tests/integration/fixtures/TestPullRequestReplyMail/")()
defer tests.PrepareTestEnv(t)()
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2})
session := loginUser(t, user.Name)
t.Run("Reply to pending review comment", func(t *testing.T) {
defer tests.PrintCurrentTest(t)()
called := false
defer test.MockVariableValue(&mailer.SendAsync, func(...*mailer.Message) {
called = true
})()
review := unittest.AssertExistsAndLoadBean(t, &issues_model.Review{ID: 1002}, "type = 0")
req := NewRequestWithValues(t, "POST", "/user2/repo1/pulls/2/files/reviews/comments", map[string]string{
"_csrf": GetCSRF(t, session, "/user2/repo1/pulls/2"),
"origin": "diff",
"content": "Just a comment!",
"side": "proposed",
"line": "4",
"path": "README.md",
"reply": strconv.FormatInt(review.ID, 10),
})
session.MakeRequest(t, req, http.StatusOK)
assert.False(t, called)
unittest.AssertExistsIf(t, true, &issues_model.Comment{Content: "Just a comment!", ReviewID: review.ID, IssueID: 2})
})
t.Run("Start a review", func(t *testing.T) {
defer tests.PrintCurrentTest(t)()
called := false
defer test.MockVariableValue(&mailer.SendAsync, func(msgs ...*mailer.Message) {
called = true
})()
req := NewRequestWithValues(t, "POST", "/user2/repo1/pulls/2/files/reviews/comments", map[string]string{
"_csrf": GetCSRF(t, session, "/user2/repo1/pulls/2"),
"origin": "diff",
"content": "Notification time 2!",
"side": "proposed",
"line": "2",
"path": "README.md",
})
session.MakeRequest(t, req, http.StatusOK)
assert.False(t, called)
unittest.AssertExistsIf(t, true, &issues_model.Comment{Content: "Notification time 2!", IssueID: 2})
})
t.Run("Create a single comment", func(t *testing.T) {
t.Run("As a reply", func(t *testing.T) {
defer tests.PrintCurrentTest(t)()
called := false
defer test.MockVariableValue(&mailer.SendAsync, func(msgs ...*mailer.Message) {
assert.Len(t, msgs, 2)
assert.Equal(t, "user1@example.com", msgs[0].To)
assert.EqualValues(t, "Re: [user2/repo1] issue2 (PR #2)", msgs[0].Subject)
assert.Contains(t, msgs[0].Body, "Notification time!")
called = true
})()
review := unittest.AssertExistsAndLoadBean(t, &issues_model.Review{ID: 1001, Type: issues_model.ReviewTypeComment})
req := NewRequestWithValues(t, "POST", "/user2/repo1/pulls/2/files/reviews/comments", map[string]string{
"_csrf": GetCSRF(t, session, "/user2/repo1/pulls/2"),
"origin": "diff",
"content": "Notification time!",
"side": "proposed",
"line": "3",
"path": "README.md",
"reply": strconv.FormatInt(review.ID, 10),
})
session.MakeRequest(t, req, http.StatusOK)
assert.True(t, called)
unittest.AssertExistsIf(t, true, &issues_model.Comment{Content: "Notification time!", ReviewID: review.ID, IssueID: 2})
})
t.Run("On a new line", func(t *testing.T) {
defer tests.PrintCurrentTest(t)()
called := false
defer test.MockVariableValue(&mailer.SendAsync, func(msgs ...*mailer.Message) {
assert.Len(t, msgs, 2)
assert.Equal(t, "user1@example.com", msgs[0].To)
assert.EqualValues(t, "Re: [user2/repo1] issue2 (PR #2)", msgs[0].Subject)
assert.Contains(t, msgs[0].Body, "Notification time 2!")
called = true
})()
req := NewRequestWithValues(t, "POST", "/user2/repo1/pulls/2/files/reviews/comments", map[string]string{
"_csrf": GetCSRF(t, session, "/user2/repo1/pulls/2"),
"origin": "diff",
"content": "Notification time 2!",
"side": "proposed",
"line": "5",
"path": "README.md",
"single_review": "true",
})
session.MakeRequest(t, req, http.StatusOK)
assert.True(t, called)
unittest.AssertExistsIf(t, true, &issues_model.Comment{Content: "Notification time 2!", IssueID: 2})
})
})
}

View file

@ -89,3 +89,27 @@ func TestWikiBranchNormalize(t *testing.T) {
assert.Equal(t, setting.Repository.DefaultBranch, repo.GetWikiBranchName())
assertNormalizeButton(false)
}
func TestWikiTOC(t *testing.T) {
defer tests.PrepareTestEnv(t)()
username := "user2"
session := loginUser(t, username)
t.Run("Link in heading", func(t *testing.T) {
defer tests.PrintCurrentTest(t)()
req := NewRequestWithValues(t, "POST", "/user2/repo1/wiki/Home?action=_edit", map[string]string{
"_csrf": GetCSRF(t, session, "/user2/repo1/wiki/Home"),
"title": "Home",
"content": "# [Helpdesk](Helpdesk)",
})
session.MakeRequest(t, req, http.StatusSeeOther)
req = NewRequest(t, "GET", "/user2/repo1/wiki/Home")
resp := MakeRequest(t, req, http.StatusOK)
htmlDoc := NewHTMLParser(t, resp.Body)
assert.EqualValues(t, "Helpdesk", htmlDoc.Find(".wiki-content-toc a").Text())
})
}

View file

@ -73,7 +73,11 @@ func TestDashboardTitleRendering(t *testing.T) {
count := 0
htmlDoc.doc.Find("#activity-feed .flex-item-main .title").Each(func(i int, s *goquery.Selection) {
count++
assert.EqualValues(t, ":exclamation: not rendered", s.Text())
if s.IsMatcher(goquery.Single("a")) {
assert.EqualValues(t, "❗ not rendered", s.Text())
} else {
assert.EqualValues(t, ":exclamation: not rendered", s.Text())
}
})
assert.EqualValues(t, 6, count)

View file

@ -886,11 +886,27 @@ func TestUserActivate(t *testing.T) {
assert.False(t, authToken.IsExpired())
assert.EqualValues(t, authToken.HashedValidator, auth_model.HashValidator(rawValidator))
req = NewRequest(t, "POST", "/user/activate?code="+code)
session.MakeRequest(t, req, http.StatusOK)
t.Run("No password", func(t *testing.T) {
defer tests.PrintCurrentTest(t)()
unittest.AssertNotExistsBean(t, &auth_model.AuthorizationToken{ID: authToken.ID})
unittest.AssertExistsAndLoadBean(t, &user_model.User{Name: "doesnotexist", IsActive: true})
req = NewRequest(t, "POST", "/user/activate?code="+code)
session.MakeRequest(t, req, http.StatusOK)
unittest.AssertExistsIf(t, true, &auth_model.AuthorizationToken{ID: authToken.ID})
unittest.AssertExistsAndLoadBean(t, &user_model.User{Name: "doesnotexist"}, "is_active = false")
})
t.Run("With password", func(t *testing.T) {
defer tests.PrintCurrentTest(t)()
req = NewRequestWithValues(t, "POST", "/user/activate?code="+code, map[string]string{
"password": "examplePassword!1",
})
session.MakeRequest(t, req, http.StatusSeeOther)
unittest.AssertExistsIf(t, false, &auth_model.AuthorizationToken{ID: authToken.ID})
unittest.AssertExistsAndLoadBean(t, &user_model.User{Name: "doesnotexist"}, "is_active = true")
})
}
func TestUserPasswordReset(t *testing.T) {

View file

@ -2047,13 +2047,14 @@ details.repo-search-result summary::marker {
font-weight: var(--font-weight-medium);
}
.repository .repository-summary .segment.language-stats {
.repository .repository-summary #language-stats-bar {
display: flex;
gap: 2px;
padding: 0;
height: 10px;
white-space: nowrap;
border-radius: 0 0 3px 3px !important;
border-top-left-radius: 0 !important;
border-top-right-radius: 0 !important;
overflow: hidden;
}

View file

@ -631,9 +631,11 @@ export function initRepoIssueTitleEdit() {
const issueTitleInput = issueTitleEditor.querySelector('input');
const oldTitle = issueTitleInput.getAttribute('data-old-title');
const normalModeElements = [issueTitleDisplay, '#pull-desc-display', '#agit-label', '#editable-label'];
issueTitleDisplay.querySelector('#issue-title-edit-show').addEventListener('click', () => {
hideElem(issueTitleDisplay);
hideElem('#pull-desc-display');
for (const element of normalModeElements) {
hideElem(element);
}
showElem(issueTitleEditor);
showElem('#pull-desc-editor');
if (!issueTitleInput.value.trim()) {
@ -644,8 +646,9 @@ export function initRepoIssueTitleEdit() {
issueTitleEditor.querySelector('.ui.cancel.button').addEventListener('click', () => {
hideElem(issueTitleEditor);
hideElem('#pull-desc-editor');
showElem(issueTitleDisplay);
showElem('#pull-desc-display');
for (const element of normalModeElements) {
showElem(element);
}
});
const pullDescEditor = document.querySelector('#pull-desc-editor'); // it may not exist for a merged PR