Compare commits

...

201 commits

Author SHA1 Message Date
Earl Warren
5058c76f3e Merge pull request '[v9.0/forgejo] bug: correctly generate oauth2 jwt signing key' (#5992) from bp-v9.0/forgejo-7d59060 into v9.0/forgejo
Some checks failed
testing / backend-checks (push) Has been skipped
testing / frontend-checks (push) Has been skipped
testing / test-unit (push) Has been cancelled
testing / test-remote-cacher (map[image:docker.io/bitnami/redis:7.2 port:6379]) (push) Has been cancelled
testing / test-remote-cacher (map[image:docker.io/bitnami/valkey:7.2 port:6379]) (push) Has been cancelled
testing / test-remote-cacher (map[image:ghcr.io/microsoft/garnet-alpine:1.0.14 port:6379]) (push) Has been cancelled
testing / test-remote-cacher (map[image:registry.redict.io/redict:7.3.0-scratch port:6379]) (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
/ release (push) Has been cancelled
Integration tests for the release process / release-simulation (push) Has been cancelled
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5992
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
2024-11-16 18:07:38 +00:00
Gusted
90e05e7d52 bug: correctly generate oauth2 jwt signing key
- When RS256, RS384, ES384, ES512 was specified as the JWT signing
algorithm they would generate RS512 and ES256 respectively.
- Added unit test.

(cherry picked from commit 7d59060dc6)
2024-11-16 17:07:01 +00:00
Earl Warren
6569f1f25f Merge pull request '[v9.0/forgejo] fix: 15 November 2024 security fixes batch' (#5975) from earl-warren/forgejo:wip-v9.0-security-15-11 into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5975
Reviewed-by: Otto <otto@codeberg.org>
2024-11-15 11:57:38 +00:00
Earl Warren
2f72bec100
[v9.0/forgejo] chore(release-notes): 15 November 2024 security fixes 2024-11-15 11:46:38 +01:00
Gusted
42f3644409
fix: disallow basic authorization when security keys are enrolled
- This unifies the security behavior of enrolling security keys with
enrolling TOTP as a 2FA method. When TOTP is enrolled, you cannot use
basic authorization (user:password) to make API request on behalf of the
user, this is now also the case when you enroll security keys.
- The usage of access tokens are the only method to make API requests on
behalf of the user when a 2FA method is enrolled for the user.
- Integration test added.

(cherry picked from commit e6bbecb02d)
2024-11-15 11:33:45 +01:00
Gusted
1770117178
fix: extend forgejo_auth_token table
- Add a `purpose` column, this allows the `forgejo_auth_token` table to
be used by other parts of Forgejo, while still enjoying the
no-compromise architecture.
- Remove the 'roll your own crypto' time limited code functions and
migrate them to the `forgejo_auth_token` table. This migration ensures
generated codes can only be used for their purpose and ensure they are
invalidated after their usage by deleting it from the database, this
also should help making auditing of the security code easier, as we're
no longer trying to stuff a lot of data into a HMAC construction.
-Helper functions are rewritten to ensure a safe-by-design approach to
these tokens.
- Add the `forgejo_auth_token` to dbconsistency doctor and add it to the
`deleteUser` function.
- TODO: Add cron job to delete expired authorization tokens.
- Unit and integration tests added.

(cherry picked from commit 1ce33aa38d)

v9: Removed migration - XORM can handle this case automatically without
migration. Add `DEFAULT 'long_term_authorization'`.
2024-11-15 11:33:17 +01:00
Gusted
1379914c45
Improve usage of HMAC output for mailer tokens
- If the incoming mail feature is enabled, tokens are being sent with
outgoing mails. These tokens contains information about what type of
action is allow with such token (such as replying to a certain issue
ID), to verify these tokens the code uses the HMAC-SHA256 construction.
- The output of the HMAC is truncated to 80 bits, because this is
recommended by RFC2104, but RFC2104 actually doesn't recommend this. It
recommends, if truncation should need to take place, it should use
max(80, hash_len/2) of the leftmost bits. For HMAC-SHA256 this works out
to 128 bits instead of the currently used 80 bits.
- Update to token version 2 and disallow any usage of token version 1,
token version 2 are generated with 128 bits of HMAC output.
- Add test to verify the deprecation of token version 1 and a general
MAC check test.

(cherry picked from commit 9508aa7713)
2024-11-15 11:33:08 +01:00
Gusted
254bded75e
fix: strict matching of allowed content for sanitizer
- _Simply_ add `^$` to regexp that didn't had it yet, this avoids any
content being allowed that simply had the allowed content as a
substring.
- Fix file-preview regex to have `$` instead of `*`.

(cherry picked from commit 7067cc7da4)

v9: added fix for ref-issue, this is already fixed in forgejo branch but
not backported as it was part of a feature.
2024-11-15 11:32:51 +01:00
Gusted
a88e3e6ac0
fix: anomynous users code search for private/limited user's repository
- Consider private/limited users in the `AccessibleRepositoryCondition`
query, previously this only considered private/limited organization.
This limits the ability for anomynous users to do code search on
private/limited user's repository
- Unit test added.

(cherry picked from commit b70196653f)
2024-11-15 11:32:38 +01:00
Gusted
6c75d1a504
fix: require code permissions for branch feed
- The RSS and atom feed for branches exposes details about the code, it
therefore should be guarded by the requirement that the doer has access
to the code of that repository.
- Added integration testing.

(cherry picked from commit 3e3ef76808)
2024-11-15 11:32:24 +01:00
Gusted
36300be94e
fix: don't show private forks in forks list
- If a repository is forked to a private or limited user/organization,
the fork should not be visible in the list of forks depending on the
doer requesting the list of forks.
- Added integration testing for web and API route.

(cherry picked from commit 061abe6004)
2024-11-15 11:32:09 +01:00
Gusted
c8c8377acb
fix: add ID check for updating push mirror interval
- Ensure that the specified push mirror ID belongs to the requested
repository, otherwise it is possible to modify the intervals of the push
mirrors that do not belong to the requested repository.
- Integration test added.

(cherry picked from commit 786dfc7fb8)
2024-11-15 11:31:28 +01:00
Earl Warren
fd4a68b4de Merge pull request '[v9.0/forgejo] chore(ci): ROLE forgejo-coding & forgejo-testing' (#5952) from earl-warren/forgejo:wip-v9.0-testing-only into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5952
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
Reviewed-by: Michael Kriese <michael.kriese@gmx.de>
2024-11-14 11:28:49 +00:00
Earl Warren
78f69040fc
chore(ci): ROLE forgejo-coding & forgejo-testing (part two)
When the CI vars.ROLE is forgejo-coding, it is assumed to be the
repository where collaborative coding happens,
i.e. https://codeberg.org/forgejo/forgejo

When the CI vars.ROLE is forgejo-testing, it is assumed that only codebase
testing is to be run and no other tests such as release build
integration, label constraints, backporting etc.

(cherry picked from commit 068558accd)

Conflicts:
	.forgejo/workflows/testing.yml
  was in .forgejo/workflows/e2e.yml
2024-11-14 10:12:36 +01:00
Earl Warren
3465f73e2c
chore(ci): ROLE forgejo-coding & forgejo-testing
When the CI vars.ROLE is forgejo-coding, it is assumed to be the
repository where collaborative coding happens,
i.e. https://codeberg.org/forgejo/forgejo

When the CI vars.ROLE is forgejo-testing, it is assumed that only codebase
testing is to be run and no other tests such as release build
integration, label constraints, backporting etc.

(cherry picked from commit f82840f1ea)

Conflicts:
	.forgejo/workflows/merge-requirements.yml
2024-11-14 10:09:44 +01:00
Otto
86496d701d Merge pull request '[v9.0/forgejo] fix: handle renamed dependency for cargo registry' (#5945) from bp-v9.0/forgejo-bb93d3e into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5945
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
2024-11-13 23:13:42 +00:00
Gusted
de389f2ecc fix: handle renamed dependency for cargo registery
- When a dependency is renamed, specified via `package="actual-name"` in
Cargo.toml, this should become the name of the depedency when the
package is retrieved from the registery by cargo and the old name should
be available in the `package` field.
- The reference implementation also does this: 490e66a9d6/src/controllers/krate/publish.rs (L702-L705)
- Resolves #5936
- Unit test added.

(cherry picked from commit bb93d3e6c8)
2024-11-13 22:56:30 +00:00
Earl Warren
e43533cd1b Merge pull request '[v9.0/forgejo] chore(release): also copy the release to code.forgejo.org' (#5937) from bp-v9.0/forgejo-7492330 into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5937
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
2024-11-13 18:33:57 +00:00
Earl Warren
2a78dba95b chore(ci): trigger a mirror when a release is publish
Notify https://code.forgejo.org/forgejo/forgejo that a new release was
published by setting the trigger label to
https://code.forgejo.org/forgejo/forgejo/issues/5.

It is only ever useful when a stable release is published, the
experimental releases are not mirrored. But it is triggered in all
cases. This will waste a few mirror check daily, when experimental
releases are built. This is an improvement compared to the current
situation where mirrors are checked hourly:

* Instead of being checked 24 times per day it will be down to less
  than 5
* The mirror happens immediately after the release is published
  instead of waiting for the next run of the cron job.

If a mirror operation is in progress, as evidenced by the presence of
the trigger label on the issure, it means two releases are being
published. Wait up to 1h for the mirror to complete and remove the
trigger label.

(cherry picked from commit 7492330721)
2024-11-13 16:53:43 +00:00
Earl Warren
e9cd753b98 Merge pull request '[v9.0/forgejo] fix(ci): synchronize updates the commit status asynchronously' (#5926) from bp-v9.0/forgejo-983aed4 into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5926
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
2024-11-12 12:33:20 +00:00
Earl Warren
dac13b7fc3 fix(ci): synchronize updates the commit status asynchronously
When a new commit is pushed to an existing pull request, the update of
the commit status will happen asynchronously, via the git hook.

   --- FAIL: TestPullRequestCommitStatus/synchronize (2.14s)
        actions_trigger_test.go:331:
            	Error Trace:	/workspace/forgejo/forgejo/tests/integration/actions_trigger_test.go:331
            	Error:      	Should be true
            	Test:       	TestPullRequestCommitStatus/synchronize

(cherry picked from commit 983aed4268)
2024-11-12 11:53:06 +00:00
Otto
0db515dfec Merge pull request '[v9.0/forgejo] fix: Move forgot_password-link to fix login tab order' (#5887) from fnetx/bp-5838 into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5887
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
2024-11-10 13:41:51 +00:00
Gusted
336ccf45c8 Merge pull request '[v9.0/forgejo] fix(ui): Details icon in repo settings sidebar' (#5891) from bp-v9.0/forgejo-5932b86 into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5891
Reviewed-by: Otto <otto@codeberg.org>
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
2024-11-10 12:54:50 +00:00
Otto Richter
70aefc810c fix(ui): Details icon in repo settings sidebar
Consistent classes between both details/summary constructs in the sidebar, ensuring they have the same style.

(cherry picked from commit 5932b86af4)
2024-11-10 02:13:45 +00:00
MrSmoer
6025b93664 Remove unused css class "form-field-content-aside-label"
This css class was used to display the "forgot password"-link right and above the password field.
cd75519a0b moves this link, so this class is now unused
2024-11-10 02:24:58 +01:00
MrSmoer
e823122f19 fix: Move "forgot_password"-link to fix login tab order
Previously hitting tab in the username field set the focus to the "forgot password" link. Only on the next hit the password field was selected.
This is an issue for some password managers (keepassdx android keyboard) and not as nice for accessibility.
Now the forgot link is below the sign up link at the bottom of the page.
Using "tabindex" didn't work properly with the templating engine because many elements get assigned a tabindex of "0" by default disrupting the tab selection sequence.
2024-11-10 02:24:58 +01:00
Gusted
ef9df01cd2 Merge pull request '[v9.0/forgejo] [THEME] Copy ansi terminal colours from gitea to forgejo themes' (#5882) from bp-v9.0/forgejo-e58d5d4 into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5882
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
2024-11-09 22:40:07 +00:00
Ragnar Groot Koerkamp
2e114bcaa0 [THEME] Copy ansi terminal colours from gitea to forgejo themes
(cherry picked from commit e58d5d46c1)
2024-11-09 21:57:08 +00:00
Gusted
91a12abdaf Merge pull request '[v9.0/forgejo] [PORT] Fix code owners will not be mentioned when a pull request comes from a forked repository (gitea#30476)' (#5879) from bp-v9.0/forgejo-2efc1f5-536e192 into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5879
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
2024-11-09 19:21:37 +00:00
Gusted
79bc6e8c35 chore: add extra integration test
(cherry picked from commit 536e1923b4)
2024-11-09 18:43:38 +00:00
Lunny Xiao
770fa89dc8 [PORT] Fix code owners will not be mentioned when a pull request comes from a forked repository (gitea#30476)
Fix #30277
Caused by #29783

---

- Resolves #5842
- Regression from #2855

(cherry picked from commit c63060b130d34e3f03f28f4dccbf04d381a95c17)
(cherry picked from commit 2efc1f5686)
2024-11-09 18:43:37 +00:00
Earl Warren
9a7b0c3f02 Merge pull request '[v9.0/forgejo] bug: require.Eventually must not test with assert' (#5870) from bp-v9.0/forgejo-2541a94 into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5870
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
2024-11-09 00:39:12 +00:00
Earl Warren
8c51053739 bug: require.Eventually must not test with assert
Otherwise it fails the test instead of retrying if the condition fails
at least once.

(cherry picked from commit 2541a943ce)
2024-11-08 23:42:01 +00:00
Otto
3a4612cb2b Merge pull request '[v9.0/forgejo] chore(renovate): only run if renovate workflow changed' (#5861) from bp-v9.0/forgejo-2eeb2fc into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5861
Reviewed-by: Michael Kriese <michael.kriese@gmx.de>
2024-11-08 12:58:13 +00:00
Michael Kriese
c0113bfbbe chore(renovate): only run if renovate workflow changed
(cherry picked from commit 2eeb2fcd35)
2024-11-08 12:43:09 +00:00
Renovate Bot
08396d566b Update dependency happy-dom to v15.10.2 [SECURITY] (v9.0/forgejo) (#5854)
Co-authored-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
Co-committed-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
2024-11-08 06:39:14 +00:00
Otto
66b6917923 Merge pull request '[v9.0/forgejo] fix: issue labels are not set after deleting one label' (#5844) from bp-v9.0/forgejo-db899c1-f06bdb0 into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5844
Reviewed-by: Otto <otto@codeberg.org>
2024-11-07 11:22:14 +00:00
Earl Warren
397b3cf88f chore(refactor): split ReloadLabels out of LoadLabels in issue model
Functions modifying the labels in the database (DeleteIssueLabel,
NewIssueLabels, NewIssueLabel, ReplaceIssueLabels) need to force
reload them. Instead of:

	issue.isLabelsLoaded = false
	issue.Labels = nil
	if err = issue.LoadLabels(ctx); err != nil {
		return err
	}

They can now use:

	if err = issue.ReloadLabels(ctx); err != nil {
		return err
	}

(cherry picked from commit f06bdb0552)
2024-11-07 10:38:36 +00:00
Earl Warren
bcb72df356 fix: issue labels are not set after deleting one label
Because issue.isLabelsLoaded = false is missing, LoadLabels is a noop
and the issue.Labels is nil.

(cherry picked from commit db899c19d8)
2024-11-07 10:38:36 +00:00
Earl Warren
ed2d5f6b73 Merge pull request '[v9.0/forgejo] fix: labels are missing in the pull request payload removing a label' (#5834) from bp-v9.0/forgejo-c801838 into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5834
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
2024-11-07 08:03:00 +00:00
Earl Warren
eda6b436dc fix: labels are missing in the pull request payload removing a label
When ReplaceIssueLabels calls issue.LoadLabels it was a noop because
issue.isLabelsLoaded is still set to true because of the call  to
issue.LoadLabels that was done at the beginning of the function.

(cherry picked from commit c801838690)
2024-11-06 17:38:04 +00:00
Earl Warren
09a35a7cb8 Merge pull request '[v9.0/forgejo] Add label to Forgejo Actions PR labeled/unlabeled events and update the commit status' (#5810) from bp-v9.0/forgejo-58e3c1f-66c85b7-f56fc51 into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5810
Reviewed-by: Otto <otto@codeberg.org>
2024-11-06 16:13:39 +00:00
Otto
a68a37f59c Merge pull request '[v9.0/forgejo] chore(ci): deprecate legacy infrastructure supporting v*.next' (#5823) from bp-v9.0/forgejo-ece87d0 into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5823
Reviewed-by: Otto <otto@codeberg.org>
2024-11-05 22:30:44 +00:00
Earl Warren
2b86ff6768 chore(ci): deprecate legacy infrastructure supporting v*.next
https://code.forgejo.org/infrastructure/k8s/ was replaced with
https://code.forgejo.org/infrastructure/k8s-cluster/
(cherry picked from commit ece87d0569)
2024-11-05 21:43:31 +00:00
Earl Warren
8a65c4d28d chore(release-notes): related pull requests workflow fixes
(cherry picked from commit f56fc51c74)
2024-11-04 14:10:27 +00:00
Earl Warren
d624a5edd6 fix: Actions PR workflows must update the commit status
When a workflow has

on:
  pull_request:
    types:
      - labeled
      - unlabeled

The outcome of the workflow (success or failure) must be associated
with the head sha commit status. Otherwise it cannot be used as a
requirement for merging the pull request (branch protections).

(cherry picked from commit 66c85b7d8b)
2024-11-04 14:10:27 +00:00
Earl Warren
11f71dcb09 fix: add label to issues and PR labeled/unlabeled events
When a workflow has

on:
  pull_request:
    types:
      - labeled
      - unlabeled

The payload misses the label field describing the added or removed
label.

The unlabeled event type was also incorrectly mapped to the labeled
event type.

(cherry picked from commit 58e3c1fbdb)
2024-11-04 14:10:27 +00:00
Earl Warren
7ec30b6ee9 Merge pull request '[v9.0/forgejo] chore(ci): notify the k8s cluster about experimental releases' (#5807) from earl-warren/forgejo:wip-v9.0-next-digest into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5807
Reviewed-by: Michael Kriese <michael.kriese@gmx.de>
2024-11-04 13:52:05 +00:00
Earl Warren
13a5d9f3af
[v9.0/forgejo] chore(ci): notify the k8s cluster about experimental releases
This is in preparation of the migration of the v*.next.forgejo.org
instances currently managed at https://code.forgejo.org/infrastructure/k8s

The key difference is that the former system relies on ad-hoc scripts
and creates one k8s cluster for each instance, sharing nothing between
them.

The newer k8s cluster is used for all and requires significantly less
ad-hoc tooling.

See also:

* https://code.forgejo.org/infrastructure/next-digest
* https://code.forgejo.org/infrastructure/k8s-cluster/src/branch/main/k8s.md#updating-v-next-forgejo-org

(cherry picked from commit dab156b452)
2024-11-04 14:30:53 +01:00
Gusted
a429dbad98 Merge pull request '[v9.0/forgejo] fix: support www.github.com for migrations' (#5800) from bp-v9.0/forgejo-284ffe4 into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5800
Reviewed-by: Michael Kriese <michael.kriese@gmx.de>
2024-11-03 18:21:04 +00:00
Michael Kriese
0c0fd333f3 fix: support www.github.com for migrations
(cherry picked from commit 284ffe4e00)
2024-11-03 17:28:30 +00:00
Earl Warren
d96cef1ac4 Merge pull request '[v9.0/forgejo] fix: reset history.scrollRestoration if set to manual and no issue anchor in url' (#5753) from bp-v9.0/forgejo-ec4a0e1 into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5753
Reviewed-by: Otto <otto@codeberg.org>
Reviewed-by: Michael Kriese <michael.kriese@gmx.de>
2024-11-01 10:10:25 +00:00
Earl Warren
3f58b8d1bd Merge pull request '[v9.0/forgejo] fix git-grep for code search when git version is below 2.38' (#5759) from earl-warren/forgejo:wip-v9.0-grep into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5759
Reviewed-by: Otto <otto@codeberg.org>
2024-10-31 21:12:18 +00:00
Shiny Nematoda
908bd64238
fix(grep): fix git-grep for code search when git version is below 2.38
(cherry picked from commit f2ab4ff83a)

Conflicts:
	modules/git/grep.go
  trivial context conflict
2024-10-31 21:26:03 +01:00
Earl Warren
be36f91bb7 Merge pull request '[v9.0/forgejo] i18n: update of translations from Codeberg Translate' (#5748) from bp-v9.0/forgejo-031451e into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5748
Reviewed-by: Otto <otto@codeberg.org>
2024-10-31 06:38:23 +00:00
Michael Kriese
8e4536fd98 fix: reset history.scrollRestoration if set to manual and no issue anchor in url
(cherry picked from commit ec4a0e1b6e)
2024-10-31 02:37:43 +00:00
Codeberg Translate
f043fb4495 i18n: update of translations from Codeberg Translate (#5681)
Co-authored-by: 0ko <0ko@users.noreply.translate.codeberg.org>
Co-authored-by: artnay <artnay@users.noreply.translate.codeberg.org>
Co-authored-by: emansije <emansije@users.noreply.translate.codeberg.org>
Co-authored-by: Gusted <postmaster@gusted.xyz>
Co-authored-by: Outbreak2096 <Outbreak2096@users.noreply.translate.codeberg.org>
Co-authored-by: Benedikt Straub <Nordfriese@users.noreply.translate.codeberg.org>
Co-authored-by: Fjuro <fjuro@alius.cz>
Co-authored-by: Juno Takano <jutty@users.noreply.translate.codeberg.org>
Co-authored-by: Bálint Gonda <balinteus@gmail.com>
Co-authored-by: Wuzzy <Wuzzy@users.noreply.translate.codeberg.org>
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5681
Reviewed-by: 0ko <0ko@noreply.codeberg.org>
Co-authored-by: Codeberg Translate <translate@noreply.codeberg.org>
Co-committed-by: Codeberg Translate <translate@noreply.codeberg.org>
(cherry picked from commit 031451e740)
2024-10-30 15:15:39 +00:00
Earl Warren
1dc03cc1c3 Merge pull request '[v9.0/forgejo] use constant time check for internal token' (#5724) from bp-v9.0/forgejo-53231ba into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5724
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
2024-10-28 08:03:48 +00:00
Earl Warren
e4dac6a6ab Merge pull request '[v9.0/forgejo] add permission check to 'delete branch after merge'' (#5721) from bp-v9.0/forgejo-266e0b2 into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5721
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
2024-10-28 07:24:05 +00:00
Earl Warren
ff585d0a20 Merge pull request '[gitea] week 2024-44-v9.0 cherry pick (gitea/main -> v9.0/forgejo)' (#5715) from earl-warren/wcp/2024-44-v9.0 into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5715
2024-10-28 06:59:58 +00:00
Gusted
5f9a2ad1db fix(sec): use constant time check for internal token
(cherry picked from commit 53231bad61)
2024-10-28 06:17:25 +00:00
Gusted
618eb8e72a security: add permission check to 'delete branch after merge'
- Add a permission check that the doer has write permissions to the head
repository if the the 'delete branch after merge' is enabled when
merging a pull request.
- Unify the checks in the web and API router to `DeleteBranchAfterMerge`.
- Added integration tests.

(cherry picked from commit 266e0b2ce9)
2024-10-28 06:04:45 +00:00
Earl Warren
d763886dae
chore(release-notes): notes for the week 2024-44-v9.0 weekly cherry pick 2024-10-27 12:05:14 +01:00
Lunny Xiao
768402c884
Fix disable 2fa bug (#32320)
(cherry picked from commit 2abdbe88b5d16dcb345d27b73f1d9738f2d826dd)
2024-10-27 11:57:08 +01:00
Lunny Xiao
9c6f2a132d
Add warn log when deleting inactive users (#32318)
Add log for the problem #31480

(cherry picked from commit a264c46fb04112c5ec2c1b2acd523a2e4450da40)

Conflicts:
	- services/user/user.go
	  Resolved by manually adding the log line.
2024-10-27 11:54:36 +01:00
Otto
d77096071d Merge pull request '[v9.0/forgejo] fix: use buffered iterate for debian searchpackages' (#5710) from bp-v9.0/forgejo-459ab11 into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5710
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
2024-10-27 01:17:59 +00:00
Gusted
f0abba3eef fix: use buffered iterate for debian searchpackages
- The driver being used for PostgreSQL doesn't handle interleaved
queries (you start a query, read some rows and start another query while
you didn't finish that query yet), this is the case with using
`.Iterate` from XORM.
- Switch to a variant of what exist in the current codebase of
`db.Iterate`, which is a simple buffered iteration and doesn't keep
queries open, which allow other database operations to happen.
- Unit test added. This doesn't cover that postgres does not error on
this case, as this is not run with a postgres database.
- Resolves #5696

(cherry picked from commit 459ab11a8a)
2024-10-27 00:10:02 +00:00
Earl Warren
5d211c101f Merge pull request '[v9.0/forgejo] Fix boolean inputs in workflow_dispatch' (#5708) from bp-v9.0/forgejo-96c4ca2 into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5708
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
2024-10-26 06:42:18 +00:00
Mai-Lapyst
01e9ac0561 Fix boolean inputs in workflow_dispatch; closes #5425
(cherry picked from commit 96c4ca249a)
2024-10-26 06:00:50 +00:00
Earl Warren
a4e5b1b6bc Merge pull request '[v9.0/forgejo] fix: make branch protection work for new branches' (#5691) from bp-v9.0/forgejo-f5e0259 into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5691
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
2024-10-24 21:09:50 +00:00
Gusted
1f62fe8ae0 fix: make branch protection work for new branches
- If `GetAffectedFiles` is called for a push with an empty oldCommitID,
then set the oldCommitID to the empty tree. This will effictively diff
all the changes included in the push, which is the expected behavior for
branches.
- Integration test added.
- Resolves #5683
- Port of gitea#31778 but implemented differently.

(cherry picked from commit f5e025917f)
2024-10-24 20:21:43 +00:00
Earl Warren
96f0c76648 Merge pull request '[v9.0/forgejo] i18n: update of translations from Codeberg Translate' (#5680) from bp-v9.0/forgejo-f72567e into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5680
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
2024-10-24 05:21:03 +00:00
Codeberg Translate
e37a344ce5 i18n: update of translations from Codeberg Translate (#5583)
Co-authored-by: SomeTr <SomeTr@users.noreply.translate.codeberg.org>
Co-authored-by: eldyj <eldyj@users.noreply.translate.codeberg.org>
Co-authored-by: Benedikt Straub <Nordfriese@users.noreply.translate.codeberg.org>
Co-authored-by: tkbremnes <tkbremnes@users.noreply.translate.codeberg.org>
Co-authored-by: Gusted <postmaster@gusted.xyz>
Co-authored-by: meskobalazs <meskobalazs@users.noreply.translate.codeberg.org>
Co-authored-by: div72 <div72@users.noreply.translate.codeberg.org>
Co-authored-by: xtex <xtexchooser@duck.com>
Co-authored-by: kmpm <kmpm@users.noreply.translate.codeberg.org>
Co-authored-by: Fnurkla <Fnurkla@users.noreply.translate.codeberg.org>
Co-authored-by: Juno Takano <jutty@users.noreply.translate.codeberg.org>
Co-authored-by: Fjuro <fjuro@alius.cz>
Co-authored-by: buhtz <buhtz@users.noreply.translate.codeberg.org>
Co-authored-by: 0ko <0ko@users.noreply.translate.codeberg.org>
Co-authored-by: Dirk <Dirk@users.noreply.translate.codeberg.org>
Co-authored-by: Outbreak2096 <Outbreak2096@users.noreply.translate.codeberg.org>
Co-authored-by: Atul_Eterno <Atul_Eterno@users.noreply.translate.codeberg.org>
Co-authored-by: artnay <artnay@users.noreply.translate.codeberg.org>
Co-authored-by: earl-warren <earl-warren@users.noreply.translate.codeberg.org>
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5583
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
Co-authored-by: Codeberg Translate <translate@noreply.codeberg.org>
Co-committed-by: Codeberg Translate <translate@noreply.codeberg.org>
(cherry picked from commit f72567ee14)
2024-10-24 04:39:43 +00:00
Earl Warren
887a9576b8 Merge pull request '[v9.0/forgejo] link to security policy in security.txt' (#5656) from bp-v9.0/forgejo-d06f1c6 into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5656
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
2024-10-22 18:05:09 +00:00
Earl Warren
edd468323f Merge pull request '[v9.0/forgejo] fix: don't show truncated comments in RSS/Atom feeds' (#5655) from bp-v9.0/forgejo-f4a7132 into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5655
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
2024-10-22 17:45:54 +00:00
Otto Richter
4b7f369290 link to security policy in security.txt
(cherry picked from commit d06f1c6856)
2024-10-22 16:51:21 +00:00
Gusted
ef8f366734 fix: don't show truncated comments in RSS/Atom feeds
- When a truncated comment is detected in the RSS/Atom feeds, fetch the
comment from the database and use the original content.
- Added integration test.
- Resolves #5650

(cherry picked from commit f4a7132a89)
2024-10-22 16:50:57 +00:00
Earl Warren
c5e4694327 Merge pull request '[gitea] week 2024-43-v9.0 cherry pick (gitea/main -> v9.0/forgejo)' (#5647) from earl-warren/wcp/2024-43-v9.0 into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5647
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
2024-10-22 16:47:01 +00:00
Gusted
9471083571 Merge pull request '[v9.0/forgejo] fix: typo on releases for source code downloads' (#5654) from bp-v9.0/forgejo-02f8fad into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5654
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
Reviewed-by: Michael Kriese <michael.kriese@gmx.de>
2024-10-22 15:22:50 +00:00
Michael Kriese
804051b9dd fix: typo on releases for source code downloads
Closes #5648

(cherry picked from commit 02f8fad54d)
2024-10-22 14:03:42 +00:00
Earl Warren
893d0941a8
chore(release-notes): weekly cherry-pick week 2024-43-v9.0 2024-10-22 07:36:59 +02:00
Zettat123
1913399d81
Always update expiration time when creating an artifact (#32281)
Fix #32256

(cherry picked from commit 9116665e9c1c01d882c919fb3058f7fdb695350e)
2024-10-22 07:28:30 +02:00
Zettat123
4fe311e7c0
Update scheduled tasks even if changes are pushed by "ActionsUser" (#32246)
Fix #32219

---------

Co-authored-by: delvh <dev.lh@web.de>
(cherry picked from commit 81aec6d621a3ea0dfb02d3b4d20b9be77c30c6ab)
2024-10-22 07:28:30 +02:00
Otto
b8ffb88d1d Merge pull request '[v9.0/forgejo] Revert "add gap between branch dropdown and PR button"' (#5645) from bp-v9.0/forgejo-04e2e15 into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5645
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
Reviewed-by: Otto <otto@codeberg.org>
2024-10-21 22:13:03 +00:00
Otto Richter
fd8565c91a Revert "add gap between branch dropdown and PR button"
This change does not bring the desired benefit, because the button is
reinitialized from a Vue component once loaded, overriding this change
and causing a visual glitch upon page load (the button is moving its
position).

See the comment:

> this code must match the code in BranchTagSelector.vue

This button is also used in other places such as the release list where
the additional margin does not fit well. As such, this needs a new
solution.

This reverts commit 18cad9d342.

(cherry picked from commit 04e2e1510d)
2024-10-21 20:44:28 +00:00
Earl Warren
c87ff7dc1d Merge pull request '[v9.0/forgejo] package arch database not updating when uploading "any" architecture' (#5636) from bp-v9.0/forgejo-95c7599 into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5636
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
2024-10-21 06:04:38 +00:00
Earl Warren
7d3d8ef142 Merge pull request '[v9.0/forgejo] specify default value for EXPLORE_DEFAULT_SORT.' (#5629) from bp-v9.0/forgejo-f4be4e7 into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5629
Reviewed-by: Otto <otto@codeberg.org>
2024-10-21 05:18:20 +00:00
Earl Warren
032bb17899 Merge pull request '[v9.0/forgejo] correct SQL query for active issues' (#5631) from bp-v9.0/forgejo-0055fdb into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5631
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
2024-10-21 05:16:13 +00:00
dragon
fa307f06ac fix arch pkg
(cherry picked from commit 95c7599db5)
2024-10-21 05:10:13 +00:00
Gusted
d5c6036c53 fix: correct SQL query for active issues
- The `OR` should be inside the `AND` condition to not 'bypass' the other
conditions.
- Added minimal unit test.
- Regression from 2675a24649

(cherry picked from commit 0055fdbdc4)
2024-10-20 23:31:54 +00:00
Gusted
f3b16e1363 fix: Specify default value for EXPLORE_DEFAULT_SORT.
- This is another regression from
5a0bc35799, where the default value was
changed to "alphabetically" because it relied on `ExploreDefaultSort`
providing a fallback value.
- Set the default value for `EXPLORE_DEFAULT_SORT` to `recentupdate`,
this was already the behavior explicitly for existing users of this setting
but with 5a0bc35799 it didn't provide a
explicit fallback to `recentupdate`. So opting for a 'easy' fix, that
doesn't add boilerplate code to those instances.

(cherry picked from commit f4be4e733c)
2024-10-20 23:07:18 +00:00
Gusted
240fbc2661 Merge pull request '[v9.0/forgejo] fix: Add recentupdated as recognized sort option' (#5624) from bp-v9.0/forgejo-df38c41 into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5624
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
2024-10-20 12:38:24 +00:00
Gusted
642dd61446 fix: Add recentupdated as recognized sort option
- Add `recentupdated` to the `OrderByMap`.
- Add integration testing for organization and user repository sorting.
- Resolves #5612
- Regression from 12e23ee199 where the
`recentupdated` case was not added to the map, but was handled
seperately as a fallback. The regression came into affect when
5a0bc35799 also relied on this map but
didn't handle the `recentupdated` case.

(cherry picked from commit df38c41c7a)
2024-10-20 10:58:07 +00:00
Otto
c7e52852bb Merge pull request '[v9.0/forgejo] fix: Don't double escape delete branch text' (#5618) from bp-v9.0/forgejo-8c8b31f into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5618
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
Reviewed-by: Otto <otto@codeberg.org>
2024-10-19 22:28:48 +00:00
Gusted
5d85dc2d91 fix: Don't double escape delete branch text
- Don't double escape the 'Delete branch "$BRANCH"' text. `Locale.Tr`
escapes the argument already and Vue does too by default.
- Let Vue escape the text and add a unit test ensuring that it escapes.
- Resolves #5582

(cherry picked from commit 8c8b31f304)
2024-10-19 21:29:27 +00:00
Gusted
b692da7f6f Merge pull request 'Update dependency mermaid to v11.3.0 (v9.0/forgejo)' (#5616) from renovate/v9.0/forgejo-mermaid-11.x into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5616
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
2024-10-19 21:12:44 +00:00
Renovate Bot
2c5d47ec1f Update dependency mermaid to v11.3.0 2024-10-19 20:03:44 +00:00
Otto
e740aa05a4 Merge pull request '[v9.0/forgejo] fix: Add server logging for OAuth server errors' (#5596) from bp-v9.0/forgejo-a857007 into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5596
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
2024-10-17 10:29:39 +00:00
Gusted
fb21899097 fix: Add server logging for OAuth server errors
Although an error was presented to the user about that there's an
internal server error, the error itself is never logged.

Relevant: https://codeberg.org/Codeberg/Community/issues/1675
(cherry picked from commit a857007d65)
2024-10-17 09:47:06 +00:00
Earl Warren
0f7020cbef Merge pull request '[v9.0/forgejo] forgejo-cli is now a symlink and cannot be used for sanity checks' (#5594) from bp-v9.0/forgejo-1a7a905-54c8ac3 into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5594
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
2024-10-17 06:46:15 +00:00
Earl Warren
e491b05935 vars.SKIP_END_TO_END optionally skip tests when building a release
The end-to-end tests will always fail when more than one release is
broken. When trying to fix one, the other will get in the way and vice
versa. The only way to get out of this deadlock is to replace all
broken releases but one by doing the following on forgejo-integration:

* set SKIP_END_TO_END to true in the actions vars tab
* pushing a commit to the corresponding branch, fixing the problem

(cherry picked from commit 54c8ac3e39)
2024-10-17 06:00:05 +00:00
Earl Warren
7845659322 forgejo-cli is now a symlink and cannot be used for sanity checks
It could be used but then `cp --dereference` would need to be used instead in
the forgejo-build-publish action.

+ docker cp forgejo-amd64:/app/gitea/forgejo-cli forgejo-9.0-test-linux-amd64
+ chmod +x forgejo-9.0-test-linux-amd64
chmod: cannot operate on dangling symlink 'forgejo-9.0-test-linux-amd64'

(cherry picked from commit 1a7a9055e4)
2024-10-17 06:00:05 +00:00
Earl Warren
9011f73da3 Merge pull request '[v9.0/forgejo] Dockerfile: use alpine:3.20 instead of golang:1.23-alpine3.20' (#5588) from bp-v9.0/forgejo-a99bb2c into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5588
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
2024-10-16 21:45:29 +00:00
Earl Warren
b1ffd0f58f Dockerfile: use alpine:3.20 instead of golang:1.23-alpine3.20
Runtime does not need golang.

(cherry picked from commit a99bb2c61a)
2024-10-16 20:45:09 +00:00
Earl Warren
f5d83f395f Merge pull request '[v9.0/forgejo] unnecessary container image layer duplication' (#5586) from bp-v9.0/forgejo-7d779a7 into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5586
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
2024-10-16 20:34:26 +00:00
Earl Warren
348e083227 unecessary container image layer duplication
container images grew by 100MB when

RUN ln /app/gitea/gitea /app/gitea/forgejo-cli

was added because hard links are not preserved.

Use symbolic links instead.

https://tauri.earth/@AliveDevil/113318561067465279
(cherry picked from commit 7d779a7859)
2024-10-16 19:45:35 +00:00
Earl Warren
704910c7e9 Merge pull request '[v9.0/forgejo] fix: correct documentation for non 200 responses in swagger' (#5575) from bp-v9.0/forgejo-fcc3dd2 into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5575
Reviewed-by: Otto <otto@codeberg.org>
2024-10-16 17:54:00 +00:00
Earl Warren
12a277ed65 Merge pull request '[v9.0/forgejo] i18n: update of translations from Codeberg Translate' (#5580) from bp-v9.0/forgejo-2f1c33b into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5580
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
2024-10-16 03:47:57 +00:00
Codeberg Translate
e43b9edc36 i18n: update of translations from Codeberg Translate (#5555)
Co-authored-by: Benedikt Straub <Nordfriese@users.noreply.translate.codeberg.org>
Co-authored-by: SomeTr <SomeTr@users.noreply.translate.codeberg.org>
Co-authored-by: Juno Takano <jutty@users.noreply.translate.codeberg.org>
Co-authored-by: Atul_Eterno <Atul_Eterno@users.noreply.translate.codeberg.org>
Co-authored-by: Outbreak2096 <Outbreak2096@users.noreply.translate.codeberg.org>
Co-authored-by: Xinayder <Xinayder@users.noreply.translate.codeberg.org>
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5555
Reviewed-by: 0ko <0ko@noreply.codeberg.org>
Co-authored-by: Codeberg Translate <translate@noreply.codeberg.org>
Co-committed-by: Codeberg Translate <translate@noreply.codeberg.org>
(cherry picked from commit 2f1c33b5e0)
2024-10-16 02:50:28 +00:00
JakobDev
acd7e57295 fix: correct documentation for non 200 responses in swagger
(cherry picked from commit fcc3dd228d)
2024-10-15 20:05:40 +00:00
Otto
c131de73a5 Merge pull request '[v9.0/forgejo] fix: use column flex on mobile to prevent project title from wrapping' (#5571) from bp-v9.0/forgejo-dcae7d3 into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5571
Reviewed-by: Otto <otto@codeberg.org>
2024-10-15 19:52:50 +00:00
Michael Zhang
b8fc56885e fix: use column flex on mobile to prevent project title from wrapping
(cherry picked from commit dcae7d368c)
2024-10-15 11:27:04 +00:00
Earl Warren
7f4efb1c34 Merge pull request 'Update dependency go to v1.23.2 (v9.0/forgejo)' (#5570) from renovate/v9.0/forgejo-patch-golang-packages into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5570
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
2024-10-15 03:29:07 +00:00
Renovate Bot
779ed6cf3f Update dependency go to v1.23.2 2024-10-15 00:07:24 +00:00
Otto
11bb77313e Merge pull request '[v9.0/forgejo] Fix typo in English locale file' (#5566) from bp-v9.0/forgejo-5443bca into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5566
Reviewed-by: Otto <otto@codeberg.org>
2024-10-14 22:03:15 +00:00
jutty
c2f99a5a1f Fix typo in English locale file
Key settings.wiki_rename_branch_main_notices_2 had a duplicated 'the'.

(cherry picked from commit 5443bca39a)
2024-10-14 21:07:04 +00:00
Gusted
d1c4670e45 Merge pull request '[v9.0/forgejo] [BUG] Don't allow owner team with incorrect unit access (includes doctor fix)' (#5565) from bp-v9.0/forgejo-9de9034 into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5565
Reviewed-by: Otto <otto@codeberg.org>
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
2024-10-14 21:03:04 +00:00
Gusted
fe35a17dbe [BUG] Don't allow owner team with incorrect unit access
- On editting a team, only update the units if the team isn't the
'Owners' team. Otherwise the 'Owners' team end up having all of their
unit access modes set to 'None'; because the request form doesn't send
over any units, as it's simply not shown in the UI.
- Adds a database inconstency check and fix for the case where the
'Owners' team is affected by this bug.
- Adds unit test.
- Adds integration test.
- Resolves #5528
- Regression of https://github.com/go-gitea/gitea/pull/24012

(cherry picked from commit 9de9034400)
2024-10-14 19:59:17 +00:00
Otto
d66a184f45 Merge pull request '[v9.0/forgejo] Fix typo in #5537' (#5556) from bp-v9.0/forgejo-5a21ff8 into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5556
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
Reviewed-by: Otto <otto@codeberg.org>
2024-10-14 11:18:01 +00:00
0ko
932801ae18 i18n(en): fix typo (#5554)
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5554
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
(cherry picked from commit 5a21ff8e95)
2024-10-14 05:21:04 +00:00
Earl Warren
d6d6561295 Merge pull request '[v9.0/forgejo] i18n: update of translations from Codeberg Translate' (#5553) from bp-v9.0/forgejo-575276c into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5553
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
2024-10-14 04:19:04 +00:00
Codeberg Translate
18b60db6ae i18n: update of translations from Codeberg Translate (#5514)
Co-authored-by: CDN18 <CDN18@users.noreply.translate.codeberg.org>
Co-authored-by: q3yi <q3yi@users.noreply.translate.codeberg.org>
Co-authored-by: Juno Takano <jutty@users.noreply.translate.codeberg.org>
Co-authored-by: xtex <xtexchooser@duck.com>
Co-authored-by: Benedikt Straub <Nordfriese@users.noreply.translate.codeberg.org>
Co-authored-by: ddogfoodd <ddogfoodd@users.noreply.translate.codeberg.org>
Co-authored-by: Wuzzy <Wuzzy@users.noreply.translate.codeberg.org>
Co-authored-by: mahlzahn <mahlzahn@posteo.de>
Co-authored-by: Beowulf <Beowulf@users.noreply.translate.codeberg.org>
Co-authored-by: qwerty287 <qwerty287@users.noreply.translate.codeberg.org>
Co-authored-by: SteffoSpieler <SteffoSpieler@users.noreply.translate.codeberg.org>
Co-authored-by: sinsky <sinsky@users.noreply.translate.codeberg.org>
Co-authored-by: SomeTr <SomeTr@users.noreply.translate.codeberg.org>
Co-authored-by: fnetX <otto@codeberg.org>
Co-authored-by: Fjuro <fjuro@alius.cz>
Co-authored-by: 0ko <0ko@users.noreply.translate.codeberg.org>
Co-authored-by: Fnurkla <Fnurkla@users.noreply.translate.codeberg.org>
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5514
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
Co-authored-by: Codeberg Translate <translate@noreply.codeberg.org>
Co-committed-by: Codeberg Translate <translate@noreply.codeberg.org>
(cherry picked from commit 575276cf79)
2024-10-14 03:35:31 +00:00
Earl Warren
1b36e34fc4 Merge pull request '[v9.0/forgejo] fix: don't cancel schedule workflows on push to main branch' (#5547) from bp-v9.0/forgejo-b20c0b1 into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5547
Reviewed-by: Kwonunn <kwonunn@noreply.codeberg.org>
2024-10-13 13:32:25 +00:00
Kwonunn
d2d161ad28 fix: don't cancel schedule workflows on push to main branch
(cherry picked from commit b20c0b1469)
2024-10-13 12:25:59 +00:00
Otto
f2f2d7dab2 Merge pull request '[v9.0/forgejo] i18n: Improve translation strings for webhook events' (#5538) from bp-v9.0/forgejo-86bac2c into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5538
Reviewed-by: Otto <otto@codeberg.org>
2024-10-12 16:13:29 +00:00
Otto Richter
1667fece88 i18n: Improve translation strings for webhook events (#5537)
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5537
Reviewed-by: 0ko <0ko@noreply.codeberg.org>
Co-authored-by: Otto Richter <git@otto.splvs.net>
Co-committed-by: Otto Richter <git@otto.splvs.net>
(cherry picked from commit 86bac2c54e)
2024-10-12 15:19:53 +00:00
Earl Warren
044cd5cf7e Merge pull request '[v9.0/forgejo] Fix bug when a token is given public only' (#5526) from earl-warren/forgejo:wip-v9.0-public-scope into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5526
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
2024-10-11 20:16:28 +00:00
Otto
dfd1b2fdcd Merge pull request '[v9.0/forgejo] i18n: remove unnecessary variable' (#5535) from bp-v9.0/forgejo-aafc1de into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5535
Reviewed-by: 0ko <0ko@noreply.codeberg.org>
Reviewed-by: Otto <otto@codeberg.org>
2024-10-11 19:34:14 +00:00
Otto
bf1839aed3 Merge pull request '[v9.0/forgejo] i18n: Fine tune language for units' (#5534) from bp-v9.0/forgejo-79a3fe6 into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5534
Reviewed-by: 0ko <0ko@noreply.codeberg.org>
Reviewed-by: Otto <otto@codeberg.org>
2024-10-11 19:22:50 +00:00
Otto
26f0a7e779 Merge pull request '[v9.0/forgejo] [BUG] Make chroma match case-insenstive' (#5532) from bp-v9.0/forgejo-dcc4423 into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5532
Reviewed-by: Otto <otto@codeberg.org>
2024-10-11 19:07:06 +00:00
Otto Richter
a7f4346f5e fix(i18n): remove unnecessary variable (#5533)
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5533
Reviewed-by: 0ko <0ko@noreply.codeberg.org>
Co-authored-by: Otto Richter <git@otto.splvs.net>
Co-committed-by: Otto Richter <git@otto.splvs.net>
(cherry picked from commit aafc1de0a3)
2024-10-11 18:52:23 +00:00
Otto Richter
d2ee58fb2a i18n: Fine tune language for units (#5523)
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5523
Reviewed-by: 0ko <0ko@noreply.codeberg.org>
Co-authored-by: Otto Richter <git@otto.splvs.net>
Co-committed-by: Otto Richter <git@otto.splvs.net>
(cherry picked from commit 79a3fe6cc6)
2024-10-11 18:28:59 +00:00
Gusted
aec4a0dd59 [BUG] Make chroma match case-insenstive
- In the case that [go-enry](https://github.com/go-enry/go-enry/)
returned langauge doesn't match a lexer name (Either because its not
available or because it doesn't match Chroma's name), a last effort
attempt is made to use Chroma's matching.
- go-enry already applies `strings.ToLower` onto the filename to avoid
being case-sensitive, add the same code for Chroma's matching. The code
being used doesn't rely on the filename being case senstive for correct
matching.
- Adds unit test.
- Resolves #752

(cherry picked from commit dcc442351d)
2024-10-11 17:35:54 +00:00
Otto
5ffa1ee883 Merge pull request '[v9.0/forgejo] log concise repo names in lfs doctor' (#5531) from bp-v9.0/forgejo-15a407a into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5531
Reviewed-by: Otto <otto@codeberg.org>
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
2024-10-11 15:03:30 +00:00
Kwonunn
3cd20d7d37 log concise repo names in lfs doctor
the old log prints the entire repo object

(cherry picked from commit 15a407a617)
2024-10-11 14:26:53 +00:00
Otto
d8c8fa9bae Merge pull request '[v9.0/forgejo] feat: "Assign to me" button on PR and Issues #5215' (#5524) from bp-v9.0/forgejo-2feb3d0 into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5524
Reviewed-by: Otto <otto@codeberg.org>
2024-10-11 12:33:50 +00:00
Otto
d7e2fd555c Merge pull request '[v9.0/forgejo] fix: correct Discord webhook JSON for issue events' (#5507) from bp-v9.0/forgejo-cf3ebab-6ea6f22 into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5507
Reviewed-by: Otto <otto@codeberg.org>
2024-10-11 11:01:23 +00:00
Earl Warren
1f9104d96f
chore(lint): Fix bug when a token is given public only
(cherry picked from commit 14d85597f8)
2024-10-11 05:25:32 +03:00
Lunny Xiao
ea5a8c7809
Fix bug when a token is given public only
Port of https://github.com/go-gitea/gitea/pull/32204

(cherry picked from commit d6d3c96e6555fc91b3e2ef21f4d8d7475564bb3e)

Conflicts:
  routers/api/v1/api.go
	services/context/api.go
  trivial context conflicts
(cherry picked from commit a052d2b602)

Conflicts:
	routers/api/v1/user/user.go
  trivial context conflict (search by email is not in v9.0)
2024-10-11 05:24:23 +03:00
TimedIn
5ae3b81f3c Small fixes and rename for #5482
- New Issue Fixed assign me being hidden after assignees were cleared https://codeberg.org/forgejo/forgejo/pulls/5482/files#issuecomment-2365431
- Test for verifying the above
- Removed wait for network idle from e2e test
- Renamed templ key assigneeId to assigneeIds
2024-10-11 03:41:23 +02:00
TimedIn
6d2c29ae85 feat: "assign to me" button on PRs and issues
includes:
Tests for assignees on issues
Move assignees selector of new Issue to assignees.tmpl

(cherry picked from commit 2feb3d03d7)
2024-10-11 01:39:54 +00:00
Earl Warren
0496e72d15 Merge pull request '[v9.0/forgejo] i18n: update of translations from Codeberg Translate' (#5512) from bp-v9.0/forgejo-90182a6 into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5512
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
2024-10-10 07:00:55 +00:00
Codeberg Translate
e90a48fd4b i18n: update of translations from Codeberg Translate (#5471)
Co-authored-by: 413x1nkp <413x1nkp@users.noreply.translate.codeberg.org>
Co-authored-by: 0ko <0ko@users.noreply.translate.codeberg.org>
Co-authored-by: Juno Takano <jutty@users.noreply.translate.codeberg.org>
Co-authored-by: feroli <feroli@users.noreply.translate.codeberg.org>
Co-authored-by: pgmtx <pgmtx@users.noreply.translate.codeberg.org>
Co-authored-by: kwoot <kwoot@users.noreply.translate.codeberg.org>
Co-authored-by: atarwn <atarwn@users.noreply.translate.codeberg.org>
Co-authored-by: Benny <Benny@users.noreply.translate.codeberg.org>
Co-authored-by: Fjuro <fjuro@alius.cz>
Co-authored-by: JoseDouglas26 <JoseDouglas26@users.noreply.translate.codeberg.org>
Co-authored-by: Outbreak2096 <Outbreak2096@users.noreply.translate.codeberg.org>
Co-authored-by: whitecold <whitecold@users.noreply.translate.codeberg.org>
Co-authored-by: sinsky <sinsky@users.noreply.translate.codeberg.org>
Co-authored-by: William_Weber_Berrutti <William_Weber_Berrutti@users.noreply.translate.codeberg.org>
Co-authored-by: eldyj <eldyj@users.noreply.translate.codeberg.org>
Co-authored-by: CDN18 <CDN18@users.noreply.translate.codeberg.org>
Co-authored-by: jaahas <jaahas@users.noreply.translate.codeberg.org>
Co-authored-by: aleksi <aleksi@users.noreply.translate.codeberg.org>
Co-authored-by: stevenroose <stevenroose@users.noreply.translate.codeberg.org>
Co-authored-by: lumi200 <lumi200@users.noreply.translate.codeberg.org>
Co-authored-by: marcoaraujojunior <marcoaraujojunior@users.noreply.translate.codeberg.org>
Co-authored-by: SmolLemon <SmolLemon@users.noreply.translate.codeberg.org>
Co-authored-by: timedin <timedin@users.noreply.translate.codeberg.org>
Co-authored-by: Vaclovas Intas <Gateway_31@protonmail.com>
Co-authored-by: thodorisl <thodorisl@users.noreply.translate.codeberg.org>
Co-authored-by: SerikaFrame <SerikaFrame@users.noreply.translate.codeberg.org>
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5471
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
Co-authored-by: Codeberg Translate <translate@noreply.codeberg.org>
Co-committed-by: Codeberg Translate <translate@noreply.codeberg.org>
(cherry picked from commit 90182a6204)
2024-10-10 05:22:51 +00:00
Kidsan
e2ffe12e50 fix: improve discord webhook api conformance
This commit corrects some cases in the discord webhook payload that do
not align with the discord documentation

(cherry picked from commit 6ea6f224b8)
2024-10-09 16:07:34 +00:00
Kidsan
2c0c6f408e fix: add length limit to discord webhook icon_url
(cherry picked from commit cf3ebab4ba)
2024-10-09 16:07:34 +00:00
Earl Warren
092cb967b0 Merge pull request '[v9.0/forgejo] update git book link to v2' (#5504) from bp-v9.0/forgejo-82b1ab5 into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5504
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
2024-10-09 11:38:00 +00:00
ehshi
d62cbfe923 update git book link to v2 (#5503)
## 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

- [ ] 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.

Co-authored-by: Ehsan Shirvanian <ehsan@duck.com>
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5503
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
Co-authored-by: ehshi <ehshi@noreply.codeberg.org>
Co-committed-by: ehshi <ehshi@noreply.codeberg.org>
(cherry picked from commit 82b1ab56de)
2024-10-09 09:29:23 +00:00
Otto
43bad93715 Merge pull request '[v9.0/forgejo] fix: "forked from" note alignment on 404 error pages #5324' (#5475) from bp-v9.0/forgejo-8cbb9f3 into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5475
Reviewed-by: Otto <otto@codeberg.org>
2024-10-08 19:32:37 +00:00
Otto
eb80c9429e Merge pull request '[v9.0/forgejo] Improve 'Verify' error message, stopgap for #2809' (#5490) from bp-v9.0/forgejo-d17db93 into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5490
Reviewed-by: Otto <otto@codeberg.org>
2024-10-08 19:27:41 +00:00
voltagex
946a10a8d5 i18n: improve 'Verify' error message, stopgap for #2809 (#5479)
Signed-off-by: Adam Baxter <codeberg@voltagex.org>
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5479
Reviewed-by: Otto <otto@codeberg.org>
Co-authored-by: voltagex <voltagex@noreply.codeberg.org>
Co-committed-by: voltagex <voltagex@noreply.codeberg.org>
(cherry picked from commit d17db93fbf)
2024-10-07 16:22:06 +00:00
Earl Warren
a7165d1fb0 Merge pull request '[gitea] week 2024-41-v9.0 cherry pick (gitea/main -> v9.0/forgejo)' (#5480) from earl-warren/wcp/2024-41-v9.0 into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5480
Reviewed-by: Otto <otto@codeberg.org>
2024-10-07 05:13:25 +00:00
Earl Warren
47b67fcafc
chore(release-notes): weekly cherry-pick week 2024-41-v9.0 2024-10-06 11:48:21 +02:00
Job
7d3a013e5e
Fix PR creation on forked repositories (#31863)
Resolves #20475

(cherry picked from commit 7e68bc88238104d2ee8b5a877fc1ad437f1778a4)

Conflicts:
	tests/integration/pull_create_test.go
  add missing testPullCreateDirectly from
  c63060b130d34e3f03f28f4dccbf04d381a95c17 Fix code owners will not be mentioned when a pull request comes from a forked repository (#30476)
2024-10-06 11:45:22 +02:00
Bruno Sofiato
4cb10ff28a
Fixed race condition when deleting documents by repoId in ElasticSearch (#32185)
Resolves #32184

---------

Signed-off-by: Bruno Sofiato <bruno.sofiato@gmail.com>
(cherry picked from commit d266d190bd744b7b6f572bf69a42013e21b9be62)
2024-10-06 11:45:22 +02:00
Earl Warren
00e5c68060
Fix the logic of finding the latest pull review commit ID (#32139) (followup)
Adjust the tests for review deletion to ignore a newly inserted
fixture. It is a review request and cannot be deleted.
2024-10-06 11:45:22 +02:00
Zettat123
700e9f027b
Fix the logic of finding the latest pull review commit ID (#32139)
Fix #31423

(cherry picked from commit f4b8f6fc40ce2869135372a5c6ec6418d27ebfba)

Conflicts:
	models/fixtures/comment.yml
  comment fixtures have to be shifted because there is one more in Forgejo
2024-10-06 11:34:08 +02:00
TimedIn
9ee88e965e #5324 Fix centered fork note
(cherry picked from commit 8cbb9f3116)
2024-10-06 01:57:24 +00:00
Earl Warren
0ae05e1000 Merge pull request '[v9.0/forgejo] i18n: update of translations from Codeberg Translate' (#5457) from bp-v9.0/forgejo-aca00fa into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5457
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
2024-10-04 06:39:20 +00:00
Codeberg Translate
2ff9e77dba i18n: update of translations from Codeberg Translate (#5413)
Translations update from [Codeberg Translate](https://translate.codeberg.org) for [Forgejo/forgejo](https://translate.codeberg.org/projects/forgejo/forgejo/).

Current translation status:

![Weblate translation status](https://translate.codeberg.org/widget/forgejo/forgejo/horizontal-auto.svg)

Co-authored-by: 0ko <0ko@users.noreply.translate.codeberg.org>
Co-authored-by: fnetX <otto@codeberg.org>
Co-authored-by: be4zad <be4zad@users.noreply.translate.codeberg.org>
Co-authored-by: Fjuro <fjuro@alius.cz>
Co-authored-by: hankskyjames777 <hankskyjames777@users.noreply.translate.codeberg.org>
Co-authored-by: kwoot <kwoot@users.noreply.translate.codeberg.org>
Co-authored-by: emansije <emansije@users.noreply.translate.codeberg.org>
Co-authored-by: xtex <xtexchooser@duck.com>
Co-authored-by: Outbreak2096 <Outbreak2096@users.noreply.translate.codeberg.org>
Co-authored-by: WithLithum <WithLithum@users.noreply.translate.codeberg.org>
Co-authored-by: yeziruo <yeziruo@users.noreply.translate.codeberg.org>
Co-authored-by: kecrily <kecrily@users.noreply.translate.codeberg.org>
Co-authored-by: overloop <overloop@users.noreply.translate.codeberg.org>
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5413
Reviewed-by: Otto <otto@codeberg.org>
Co-authored-by: Codeberg Translate <translate@noreply.codeberg.org>
Co-committed-by: Codeberg Translate <translate@noreply.codeberg.org>
(cherry picked from commit aca00fa346)
2024-10-03 21:23:48 +00:00
Renovate Bot
4ddf4a8fd3 Update actions/setup-node action to v4 (v9.0/forgejo) (#5444)
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5444
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>
2024-10-01 11:38:53 +00:00
Renovate Bot
4c7fef22f6 Update actions/checkout action to v4 (v9.0/forgejo) (#5443)
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5443
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>
2024-10-01 11:36:57 +00:00
Renovate Bot
01e7095968 Update actions/cache action to v4 (v9.0/forgejo) (#5442)
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5442
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>
2024-10-01 11:19:39 +00:00
Earl Warren
f1e413eb7c Merge pull request '[gitea] week 2024-40-v9.0 cherry pick (gitea/main -> v9.0/forgejo)' (#5418) from earl-warren/wcp/2024-40-v9.0 into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5418
Reviewed-by: Otto <otto@codeberg.org>
2024-10-01 07:51:16 +00:00
Earl Warren
67b9b0c76e Merge pull request 'Lock file maintenance (v9.0/forgejo)' (#5432) from renovate/v9.0/forgejo-lock-file-maintenance into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5432
Reviewed-by: Michael Kriese <michael.kriese@gmx.de>
2024-09-30 19:00:12 +00:00
Earl Warren
56f9ddc9af Merge pull request '[v9.0/forgejo] fix: referenced sha256:* container images may be deleted' (#5433) from bp-v9.0/forgejo-0a5fd7f into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5433
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
2024-09-30 17:36:30 +00:00
Earl Warren
00749b3a8f fix: referenced sha256:* container images may be deleted
The inventory of the sha256:* images and the manifest index that
reference them is incomplete because it does not take into account any
image older than the expiration limit. As a result some sha256:* will
be considered orphaned although they are referenced from a manifest
index that was created more recently than the expiration limit.

There must not be any filtering based on the creation time when
building the inventory. The expiration limit must only be taken into
account when deleting orphaned images: those that are more recent than
the expiration limit must not be deleted.

This limit is specially important because it protects against a race
between a cleanup task and an ongoing mirroring task. A mirroring
task (such as skopeo sync) will first upload sha256:* images and then
create the corresponding manifest index. If a cleanup races against
it, the sha256:* images that are not yet referenced will be deleted
without skopeo noticing and the published index manifest that happens
at a later time will contain references to non-existent images.

(cherry picked from commit 0a5fd7fdb8)
2024-09-30 16:46:11 +00:00
Renovate Bot
8da48fead3 Lock file maintenance 2024-09-30 16:03:41 +00:00
forgejo-renovate-action
b835f0a1b0 Merge pull request 'Update dependency vue to v3.5.10 (v9.0/forgejo)' (#5419) from renovate/v9.0/forgejo-patch-vue-monorepo into v9.0/forgejo 2024-09-30 11:31:28 +00:00
Renovate Bot
f8c0a352ab Update dependency vue to v3.5.10 2024-09-29 18:02:49 +00:00
Earl Warren
859fa4e489 Merge pull request 'Update module github.com/minio/minio-go/v7 to v7.0.77 (v9.0/forgejo)' (#5420) from renovate/v9.0/forgejo-github.com-minio-minio-go-v7-7.x into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5420
Reviewed-by: Michael Kriese <michael.kriese@gmx.de>
2024-09-29 16:08:56 +00:00
Renovate Bot
e8a67571a1 Update module github.com/minio/minio-go/v7 to v7.0.77 2024-09-29 12:03:27 +00:00
Earl Warren
28c8a889bb Merge pull request 'Update dependency monaco-editor to v0.51.0 (v9.0/forgejo)' (#5399) from renovate/v9.0/forgejo-monaco-editor-0.x into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5399
Reviewed-by: Michael Kriese <michael.kriese@gmx.de>
2024-09-29 10:49:31 +00:00
Earl Warren
3003195ad7
chore(release-notes): weekly cherry-pick week 2024-40-v9.0 2024-09-29 11:58:17 +02:00
yp05327
c400f26e6c
Fix wrong status of Set up Job when first step is skipped (#32120)
Fix #32089

(cherry picked from commit 6fa962f409c84477a7a4cf35b4a38a4a93fc3224)
2024-09-29 11:52:09 +02:00
Lunny Xiao
0a0a3cea1b
Fix bug when deleting a migrated branch (#32075)
After migrating a repository with pull request, the branch is missed and
after the pull request merged, the branch cannot be deleted.

(cherry picked from commit 5a8568459d22e57cac506465463660526ca6a08f)

Conflicts:
	services/repository/branch.go
  conflict because of [GITEA] Fix typo in formatting error e71b5a038e
2024-09-29 11:51:47 +02:00
Lunny Xiao
cb88d55837
Include collaboration repositories on dashboard source/forks/mirrors list (#31946)
Fix #13489

In the original implementation, only `All` will display your owned and
collaborated repositories. For other filters like `Source`, `Mirrors`
and etc. will only display your owned repositories.

This PR removed the limitations. Now except `collbrations`, other
filters will always display your owned and collaborated repositories.

(cherry picked from commit 4947bec8360c152daca23e120eae1732d3848492)
2024-09-29 11:51:31 +02:00
Kemal Zebari
e1e7299bd9
Truncate commit message during Discord webhook push events (#31970)
Resolves #31668.

(cherry picked from commit aadbe0488f454b9f7f5a56765f4530f9d1e2c6ec)
2024-09-29 11:50:27 +02:00
Lunny Xiao
d8ae7d9e96
Fix panic when cloning with wrong ssh format. (#32076)
(cherry picked from commit 3f2d8f873035b614b4cdb447d8e16f5af82cefe8)
2024-09-29 11:48:56 +02:00
cloudchamb3r
b28a070a52
Fix Bug in Issue/pulls list (#32081)
fix #32080

## After
### for opened issues
<img width="1199" alt="Screenshot 2024-09-19 at 6 29 31 PM"
src="https://github.com/user-attachments/assets/86cf48ad-5e4b-4dcb-8abe-4d7fd74e0aec">

### for closed issues
<img width="1208" alt="Screenshot 2024-09-19 at 6 29 37 PM"
src="https://github.com/user-attachments/assets/a16bc545-bfcf-49a4-be52-3e7334910482">

### for all issues
<img width="1340" alt="Screenshot 2024-09-20 at 12 07 12 PM"
src="https://github.com/user-attachments/assets/b2309c8f-e59d-44e9-ae3b-bf54e1196169">

(cherry picked from commit e1f0598c8f5af5ac95f5e13b74fbab99506762db)
2024-09-29 11:46:14 +02:00
Earl Warren
b2483b2ae0
Fix artifact v4 upload above 8MB (#31664) (fix lint errors) 2024-09-29 11:43:20 +02:00
ChristopherHX
14c7055494
Fix artifact v4 upload above 8MB (#31664)
Multiple chunks are uploaded with type "block" without using
"appendBlock" and eventually out of order for bigger uploads.
8MB seems to be the chunk size

This change parses the blockList uploaded after all blocks to get the
final artifact size and order them correctly before calculating the
sha256 checksum over all blocks

Fixes #31354

(cherry picked from commit b594cec2bda6f861effedb2e8e0a7ebba191c0e9)

Conflicts:
	routers/api/actions/artifactsv4.go
  conflict because of Refactor AppURL usage (#30885) 67c1a07285008cc00036a87cef966c3bd519a50c
    that was not cherry-picked in Forgejo
    the resolution consist of removing the extra ctx argument
2024-09-29 11:43:18 +02:00
Earl Warren
81b9977540 Merge pull request 'Update dependency webpack to v5.95.0 (v9.0/forgejo)' (#5417) from renovate/v9.0/forgejo-webpack-5.x into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5417
Reviewed-by: Michael Kriese <michael.kriese@gmx.de>
2024-09-29 09:23:08 +00:00
Renovate Bot
a75862bd7d Update dependency webpack to v5.95.0 2024-09-29 08:03:17 +00:00
Otto
99baeb47e5 Merge pull request '[v9.0/forgejo] i18n: update of translations from Codeberg Translate' (#5412) from bp-v9.0/forgejo-e40554f into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5412
Reviewed-by: 0ko <0ko@noreply.codeberg.org>
Reviewed-by: Otto <otto@codeberg.org>
2024-09-28 10:41:31 +00:00
Codeberg Translate
7d45c1c6c7 i18n: update of translations from Codeberg Translate (#5355)
Co-authored-by: earl-warren <earl-warren@users.noreply.translate.codeberg.org>
Co-authored-by: Vaclovas Intas <Gateway_31@protonmail.com>
Co-authored-by: Zughy <Zughy@users.noreply.translate.codeberg.org>
Co-authored-by: aleksi <aleksi@users.noreply.translate.codeberg.org>
Co-authored-by: Application-Maker <Application-Maker@users.noreply.translate.codeberg.org>
Co-authored-by: Salif Mehmed <mail@salif.eu>
Co-authored-by: 0ko <0ko@users.noreply.translate.codeberg.org>
Co-authored-by: Fjuro <fjuro@alius.cz>
Co-authored-by: Panagiotis \"Ivory\" Vasilopoulos <git@n0toose.net>
Co-authored-by: claudep <claudep@users.noreply.translate.codeberg.org>
Co-authored-by: vri <vri@users.noreply.translate.codeberg.org>
Co-authored-by: nicokaiser <nicokaiser@users.noreply.translate.codeberg.org>
Co-authored-by: Outbreak2096 <Outbreak2096@users.noreply.translate.codeberg.org>
Co-authored-by: robines <robines@users.noreply.translate.codeberg.org>
Co-authored-by: nazrin <nazrin@users.noreply.translate.codeberg.org>
Co-authored-by: Kaede Fujisaki <ledyba@users.noreply.translate.codeberg.org>

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5355
Reviewed-by: 0ko <0ko@noreply.codeberg.org>
Co-authored-by: Codeberg Translate <translate@noreply.codeberg.org>
Co-committed-by: Codeberg Translate <translate@noreply.codeberg.org>
(cherry picked from commit e40554f89b)
2024-09-28 09:41:02 +00:00
Earl Warren
5442b0a6b1 Merge pull request '[v9.0/forgejo] feat: add architecture-specific removal support for arch package' (#5407) from bp-v9.0/forgejo-89742c4 into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5407
2024-09-27 12:09:01 +00:00
Earl Warren
da0c4ab199 Merge pull request '[v9.0/forgejo] [gitea] week 2024-39 cherry pick (gitea/main -> forgejo)' (#5406) from bp-v9.0/forgejo-e3deb88-2ffb08b-9d34731-f709de2-2675a24-5260543-6275d1b-1ae3b12-1bdf334-9d5f409-0cafec4-9617667 into v9.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5406
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
2024-09-27 12:07:43 +00:00
Exploding Dragon
658ed564cb feat: add architecture-specific removal support for arch package (#5351)
- [x] add architecture-specific removal support
- [x] Fix upload competition
- [x] Fix not checking input when downloading

docs: https://codeberg.org/forgejo/docs/pulls/874

### Release notes

- [ ] I do not want this change to show in the release notes.

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5351
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
Co-authored-by: Exploding Dragon <explodingfkl@gmail.com>
Co-committed-by: Exploding Dragon <explodingfkl@gmail.com>
(cherry picked from commit 89742c4913)
2024-09-27 08:29:09 +00:00
Earl Warren
eb4f1de8ec chore(release-notes): weekly cherry-pick week 2024-39
(cherry picked from commit e3deb88a8d)
2024-09-27 08:13:30 +00:00
Lunny Xiao
ba7da0af31 Use camo.Always instead of camo.Allways (#32097)
Fix #31575

https://gitea.com/gitea/docs/pulls/73
(cherry picked from commit 8e2dd5d3ddfb442937c79f05df88d18b856952cb)
(cherry picked from commit 2ffb08bb88)
2024-09-27 08:13:30 +00:00
Jamie Schouten
74712e3400 Add bin to Composer Metadata (#32099)
This PR addresses the missing `bin` field in Composer metadata, which
currently causes vendor-provided binaries to not be symlinked to
`vendor/bin` during installation.

In the current implementation, running `composer install` does not
publish the binaries, leading to issues where expected binaries are not
available.

By properly declaring the `bin` field, this PR ensures that binaries are
correctly symlinked upon installation, as described in the [Composer
documentation](https://getcomposer.org/doc/articles/vendor-binaries.md).

(cherry picked from commit d351a42494e71b5e2da63302c2f9b46c78e6dbde)
(cherry picked from commit 9d34731198)
2024-09-27 08:13:30 +00:00
Lunny Xiao
6c16834d28 Fix wrong last modify time (#32102)
(cherry picked from commit a802508f88e546bf18990559e44bf27a09c869ee)
(cherry picked from commit f709de2403)
2024-09-27 08:13:30 +00:00
Timon van der Berg
81308159fd Repo Activity: count new issues that were closed (#31776)
I'm new to go and contributing to gitea, your guidance is much
appreciated.

This is meant to solve https://github.com/go-gitea/gitea/issues/13309

Previously, closed issues would not be shown under new issues in the
activity tab, even if they were newly created.

changes:
* Split out newlyCreatedIssues from issuesForActivityStatement to count
  both currently open and closed issues.
* Use a seperate function to count active issues to prevent
double-counting issues after the above change.

Result is that new issues that have been closed are shown both under
"new" and "closed".

Signed-off-by: Timon van der Berg <tmnvanderberg@gmail.com>
(cherry picked from commit ebfde845294cc681de6b1fe1adcf27e35f61b89b)
(cherry picked from commit 2675a24649)
2024-09-27 08:13:30 +00:00
KN4CK3R
2f1a737769 Fix incorrect /tokens api (#32085)
Fixes #32078

- Add missing scopes output.
- Disallow empty scope.

---------

Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
(cherry picked from commit 08adbc468f8875fd4763c3656b334203c11adc0a)
(cherry picked from commit 526054332a)
2024-09-27 08:13:30 +00:00
Earl Warren
5b6d8a303d Refactor CSRF protector (#32057) (fix forgejo tests)
Fix the tests unique to Forgejo that are impacted by the refactor.

(cherry picked from commit 6275d1bc50)
2024-09-27 08:13:29 +00:00
wxiaoguang
d26b7902ec Refactor CSRF protector (#32057)
Remove unused CSRF options, decouple "new csrf protector" and "prepare"
logic, do not redirect to home page if CSRF validation falis (it
shouldn't happen in daily usage, if it happens, redirecting to home
doesn't help either but just makes the problem more complex for "fetch")

(cherry picked from commit 1fede04b83288d8a91304a83b7601699bb5cba04)

Conflicts:
	options/locale/locale_en-US.ini
	tests/integration/repo_branch_test.go
  trivial context conflicts
(cherry picked from commit 1ae3b127fc)
2024-09-27 08:13:29 +00:00
Earl Warren
1a8f1482af feat: add IfZero utility function
(cherry picked from commit 43de021ac1ca017212ec75fd88a8a80a9db27c4c)
(cherry picked from commit 1bdf334844)
2024-09-27 08:13:29 +00:00
hiifong
84718e7b17 Lazy load avatar images (#32051)
(cherry picked from commit f38e1014483b84f4541ffb354cd5dfdd7e000e2c)
(cherry picked from commit 9d5f409a5a)
2024-09-27 08:13:29 +00:00
KN4CK3R
232179aa3d Do not escape relative path in RPM primary index (#32038)
Fixes #32021

Do not escape the relative path.

(cherry picked from commit f528df944bb9436afcb9272add2ee0cccefbdb55)
(cherry picked from commit 0cafec4c7a)
2024-09-27 08:13:29 +00:00
Zettat123
300e01f733 Check if the due_date is nil when editing issues (#32035)
(cherry picked from commit 3a51c37672d2fbad1f222922e75ce704d5a1ac71)
(cherry picked from commit 961766744b)
2024-09-27 08:13:29 +00:00
Renovate Bot
d727757cfb Update dependency monaco-editor to v0.51.0 2024-09-26 08:03:00 +00:00
245 changed files with 12227 additions and 3164 deletions

View file

@ -3,4 +3,4 @@ ARG RELEASE_VERSION=unkown
LABEL maintainer="contact@forgejo.org" \
org.opencontainers.image.version="${RELEASE_VERSION}"
RUN mkdir -p /app/gitea
RUN ( echo '#!/bin/sh' ; echo "echo forgejo v$RELEASE_VERSION" ) > /app/gitea/forgejo-cli ; chmod +x /app/gitea/forgejo-cli
RUN ( echo '#!/bin/sh' ; echo "echo forgejo v$RELEASE_VERSION" ) > /app/gitea/gitea ; chmod +x /app/gitea/gitea

View file

@ -1,3 +1,3 @@
module code.gitea.io/gitea
go 1.23.1
go 1.23.2

View file

@ -31,7 +31,7 @@ on:
jobs:
backporting:
if: >
!startsWith(vars.ROLE, 'forgejo-') && (
( vars.ROLE == 'forgejo-coding' ) && (
github.event.pull_request.merged
&&
contains(toJSON(github.event.pull_request.labels), 'backport/v')

View file

@ -22,10 +22,10 @@ on:
jobs:
release-simulation:
if: ${{ !startsWith(vars.ROLE, 'forgejo-') }}
if: vars.ROLE == 'forgejo-coding'
runs-on: self-hosted
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- id: forgejo
uses: https://code.forgejo.org/actions/setup-forgejo@v1

View file

@ -27,7 +27,7 @@ jobs:
# root is used for testing, allow it
if: vars.ROLE == 'forgejo-integration' || github.repository_owner == 'root'
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
fetch-depth: 0
@ -37,7 +37,7 @@ jobs:
repository="${{ github.repository }}"
echo "value=${repository##*/}" >> "$GITHUB_OUTPUT"
- uses: https://code.forgejo.org/actions/setup-node@v3
- uses: https://code.forgejo.org/actions/setup-node@v4
with:
node-version: 20
@ -87,7 +87,7 @@ jobs:
- name: cache node_modules
id: node
uses: https://code.forgejo.org/actions/cache@v3
uses: https://code.forgejo.org/actions/cache@v4
with:
path: |
node_modules
@ -170,7 +170,7 @@ jobs:
platforms: linux/amd64,linux/arm64,linux/arm/v6
release-notes: "${{ steps.release-notes.outputs.value }}"
binary-name: forgejo
binary-path: /app/gitea/forgejo-cli
binary-path: /app/gitea/gitea
override: "${{ steps.release-info.outputs.override }}"
verify-labels: "maintainer=contact@forgejo.org,org.opencontainers.image.version=${{ steps.release-info.outputs.version }}"
verbose: ${{ vars.VERBOSE || secrets.VERBOSE || 'false' }}
@ -194,7 +194,7 @@ jobs:
verbose: ${{ vars.VERBOSE || secrets.VERBOSE || 'false' }}
- name: end-to-end tests
if: ${{ secrets.TOKEN != '' && vars.ROLE == 'forgejo-integration' }}
if: ${{ secrets.TOKEN != '' && vars.ROLE == 'forgejo-integration' && vars.SKIP_END_TO_END != 'true' }}
uses: https://code.forgejo.org/actions/cascading-pr@v2
with:
origin-url: ${{ env.GITHUB_SERVER_URL }}

View file

@ -24,7 +24,7 @@ on:
jobs:
info:
if: ${{ !startsWith(vars.ROLE, 'forgejo-') }}
if: vars.ROLE == 'forgejo-coding'
runs-on: docker
container:
image: code.forgejo.org/oci/node:20-bookworm
@ -44,7 +44,7 @@ jobs:
cascade:
if: >
!startsWith(vars.ROLE, 'forgejo-') && (
vars.ROLE == 'forgejo-coding' && (
github.event_name == 'push' ||
(
github.event.action == 'label_updated' && contains(github.event.pull_request.labels.*.name, 'run-end-to-end-tests')

View file

@ -14,7 +14,7 @@ on:
jobs:
test-e2e:
if: ${{ !startsWith(vars.ROLE, 'forgejo-') }}
if: vars.ROLE == 'forgejo-coding' || vars.ROLE == 'forgejo-testing'
runs-on: docker
container:
image: 'code.forgejo.org/oci/playwright:latest'

View file

@ -39,7 +39,7 @@ jobs:
runs-on: self-hosted
if: vars.DOER != '' && vars.FORGEJO != '' && vars.TO_OWNER != '' && vars.FROM_OWNER != '' && secrets.TOKEN != ''
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: copy & sign
uses: https://code.forgejo.org/forgejo/forgejo-build-publish/publish@v5
@ -59,16 +59,31 @@ jobs:
gpg-passphrase: ${{ secrets.GPG_PASSPHRASE }}
verbose: ${{ vars.VERBOSE }}
- name: get trigger mirror issue
id: mirror
uses: https://code.forgejo.org/infrastructure/issue-action/get@v1.1.0
with:
forgejo: https://code.forgejo.org
repository: forgejo/forgejo
labels: mirror-trigger
- name: trigger the mirror
uses: https://code.forgejo.org/infrastructure/issue-action/set@v1.1.0
with:
forgejo: https://code.forgejo.org
repository: forgejo/forgejo
token: ${{ secrets.LABEL_ISSUE_FORGEJO_MIRROR_TOKEN }}
numbers: ${{ steps.mirror.outputs.numbers }}
label-wait-if-exists: 3600
label: trigger
- name: upgrade v*.next.forgejo.org
run: |
export DEBIAN_FRONTEND=noninteractive
apt-get update -qq
apt-get -q install -y -qq curl
version="${{ github.ref_name }}"
version=${version##*v}
major=$(echo $version | sed -E -e 's/^([0-9]+).*/\1/')
# https://forgejo.org/docs/next/developer/infrastructure
curl -o /dev/null -sS https://v$major.next.forgejo.org/.well-known/wakeup-on-logs/forgejo-v$major
uses: https://code.forgejo.org/infrastructure/next-digest@v1.1.0
with:
url: https://placeholder:${{ secrets.TOKEN_NEXT_DIGEST }}@code.forgejo.org/infrastructure/next-digest
ref_name: '${{ github.ref_name }}'
image: 'codeberg.org/forgejo-experimental/forgejo'
tag_suffix: '-rootless'
- name: set up go for the DNS update below
if: vars.ROLE == 'forgejo-experimental' && secrets.OVH_APP_KEY != ''

View file

@ -6,12 +6,12 @@ on:
jobs:
release-notes:
if: ${{ !startsWith(vars.ROLE, 'forgejo-')
if: vars.ROLE == 'forgejo-coding'
runs-on: docker
container:
image: 'code.forgejo.org/oci/node:20-bookworm'
steps:
- uses: https://code.forgejo.org/actions/checkout@v3
- uses: https://code.forgejo.org/actions/checkout@v4
- uses: https://code.forgejo.org/actions/setup-go@v4
with:

View file

@ -7,12 +7,12 @@ on:
jobs:
release-notes:
if: ${{ !startsWith(vars.ROLE, 'forgejo-') && contains(github.event.pull_request.labels.*.name, 'worth a release-note') }}
if: ( vars.ROLE == 'forgejo-coding' ) && contains(github.event.pull_request.labels.*.name, 'worth a release-note')
runs-on: docker
container:
image: 'code.forgejo.org/oci/node:20-bookworm'
steps:
- uses: https://code.forgejo.org/actions/checkout@v3
- uses: https://code.forgejo.org/actions/checkout@v4
- name: event
run: |

View file

@ -8,7 +8,9 @@ name: renovate
on:
push:
branches:
- 'renovate/**' # self-test updates
- renovate/** # self-test updates
paths:
- .forgejo/workflows/renovate.yml
schedule:
- cron: '0 0/2 * * *'
workflow_dispatch:
@ -19,7 +21,7 @@ env:
jobs:
renovate:
if: ${{ secrets.RENOVATE_TOKEN != '' }}
if: vars.ROLE == 'forgejo-coding' && secrets.RENOVATE_TOKEN != ''
runs-on: docker
container:

View file

@ -9,7 +9,7 @@ on:
jobs:
backend-checks:
if: ${{ !startsWith(vars.ROLE, 'forgejo-') }}
if: vars.ROLE == 'forgejo-coding' || vars.ROLE == 'forgejo-testing'
runs-on: docker
container:
image: 'code.forgejo.org/oci/node:20-bookworm'
@ -19,7 +19,7 @@ jobs:
cat <<'EOF'
${{ toJSON(github) }}
EOF
- uses: https://code.forgejo.org/actions/checkout@v3
- uses: https://code.forgejo.org/actions/checkout@v4
- uses: https://code.forgejo.org/actions/setup-go@v4
with:
go-version-file: "go.mod"
@ -34,19 +34,19 @@ jobs:
path: '/workspace/forgejo/forgejo/gitea'
key: backend-build-${{ github.sha }}
frontend-checks:
if: ${{ !startsWith(vars.ROLE, 'forgejo-') }}
if: vars.ROLE == 'forgejo-coding' || vars.ROLE == 'forgejo-testing'
runs-on: docker
container:
image: 'code.forgejo.org/oci/node:20-bookworm'
steps:
- uses: https://code.forgejo.org/actions/checkout@v3
- uses: https://code.forgejo.org/actions/checkout@v4
- run: make deps-frontend
- run: make lint-frontend
- run: make checks-frontend
- run: make test-frontend-coverage
- run: make frontend
test-unit:
if: ${{ !startsWith(vars.ROLE, 'forgejo-') }}
if: vars.ROLE == 'forgejo-coding' || vars.ROLE == 'forgejo-testing'
runs-on: docker
needs: [backend-checks, frontend-checks]
container:
@ -66,7 +66,7 @@ jobs:
MINIO_ROOT_USER: 123456
MINIO_ROOT_PASSWORD: 12345678
steps:
- uses: https://code.forgejo.org/actions/checkout@v3
- uses: https://code.forgejo.org/actions/checkout@v4
- uses: https://code.forgejo.org/actions/setup-go@v4
with:
go-version-file: "go.mod"
@ -106,7 +106,7 @@ jobs:
TAGS: bindata
TEST_ELASTICSEARCH_URL: http://elasticsearch:9200
test-remote-cacher:
if: ${{ !startsWith(vars.ROLE, 'forgejo-') }}
if: vars.ROLE == 'forgejo-coding' || vars.ROLE == 'forgejo-testing'
runs-on: docker
needs: [backend-checks, frontend-checks]
container:
@ -131,7 +131,7 @@ jobs:
image: ${{ matrix.cacher.image }}
options: ${{ matrix.cacher.options }}
steps:
- uses: https://code.forgejo.org/actions/checkout@v3
- uses: https://code.forgejo.org/actions/checkout@v4
- uses: https://code.forgejo.org/actions/setup-go@v4
with:
go-version-file: "go.mod"
@ -167,7 +167,7 @@ jobs:
TAGS: bindata
TEST_REDIS_SERVER: cacher:${{ matrix.cacher.port }}
test-mysql:
if: ${{ !startsWith(vars.ROLE, 'forgejo-') }}
if: vars.ROLE == 'forgejo-coding' || vars.ROLE == 'forgejo-testing'
runs-on: docker
needs: [backend-checks, frontend-checks]
container:
@ -183,7 +183,7 @@ jobs:
#
MYSQL_EXTRA_FLAGS: --innodb-adaptive-flushing=OFF --innodb-buffer-pool-size=4G --innodb-log-buffer-size=128M --innodb-flush-log-at-trx-commit=0 --innodb-flush-log-at-timeout=30 --innodb-flush-method=nosync --innodb-fsync-threshold=1000000000
steps:
- uses: https://code.forgejo.org/actions/checkout@v3
- uses: https://code.forgejo.org/actions/checkout@v4
- uses: https://code.forgejo.org/actions/setup-go@v4
with:
go-version-file: "go.mod"
@ -218,7 +218,7 @@ jobs:
env:
USE_REPO_TEST_DIR: 1
test-pgsql:
if: ${{ !startsWith(vars.ROLE, 'forgejo-') }}
if: vars.ROLE == 'forgejo-coding' || vars.ROLE == 'forgejo-testing'
runs-on: docker
needs: [backend-checks, frontend-checks]
container:
@ -237,7 +237,7 @@ jobs:
POSTGRES_DB: test
POSTGRES_PASSWORD: postgres
steps:
- uses: https://code.forgejo.org/actions/checkout@v3
- uses: https://code.forgejo.org/actions/checkout@v4
- uses: https://code.forgejo.org/actions/setup-go@v4
with:
go-version-file: "go.mod"
@ -274,13 +274,13 @@ jobs:
USE_REPO_TEST_DIR: 1
TEST_LDAP: 1
test-sqlite:
if: ${{ !startsWith(vars.ROLE, 'forgejo-') }}
if: vars.ROLE == 'forgejo-coding' || vars.ROLE == 'forgejo-testing'
runs-on: docker
needs: [backend-checks, frontend-checks]
container:
image: 'code.forgejo.org/oci/node:20-bookworm'
steps:
- uses: https://code.forgejo.org/actions/checkout@v3
- uses: https://code.forgejo.org/actions/checkout@v4
- uses: https://code.forgejo.org/actions/setup-go@v4
with:
go-version-file: "go.mod"
@ -318,7 +318,7 @@ jobs:
TEST_TAGS: sqlite sqlite_unlock_notify
USE_REPO_TEST_DIR: 1
security-check:
if: ${{ !startsWith(vars.ROLE, 'forgejo-') }}
if: vars.ROLE == 'forgejo-coding' || vars.ROLE == 'forgejo-testing'
runs-on: docker
needs:
- test-sqlite
@ -329,7 +329,7 @@ jobs:
container:
image: 'code.forgejo.org/oci/node:20-bookworm'
steps:
- uses: https://code.forgejo.org/actions/checkout@v3
- uses: https://code.forgejo.org/actions/checkout@v4
- uses: https://code.forgejo.org/actions/setup-go@v4
with:
go-version-file: "go.mod"

View file

@ -51,7 +51,7 @@ RUN chmod 755 /tmp/local/usr/bin/entrypoint \
/go/src/code.gitea.io/gitea/environment-to-ini
RUN chmod 644 /go/src/code.gitea.io/gitea/contrib/autocompletion/bash_autocomplete
FROM code.forgejo.org/oci/golang:1.23-alpine3.20
FROM code.forgejo.org/oci/alpine:3.20
ARG RELEASE_VERSION
LABEL maintainer="contact@forgejo.org" \
org.opencontainers.image.authors="Forgejo" \
@ -103,6 +103,6 @@ CMD ["/bin/s6-svscan", "/etc/s6"]
COPY --from=build-env /tmp/local /
RUN cd /usr/local/bin ; ln -s gitea forgejo
COPY --from=build-env /go/src/code.gitea.io/gitea/gitea /app/gitea/gitea
RUN ln /app/gitea/gitea /app/gitea/forgejo-cli
RUN ln -s /app/gitea/gitea /app/gitea/forgejo-cli
COPY --from=build-env /go/src/code.gitea.io/gitea/environment-to-ini /usr/local/bin/environment-to-ini
COPY --from=build-env /go/src/code.gitea.io/gitea/contrib/autocompletion/bash_autocomplete /etc/profile.d/gitea_bash_autocomplete.sh

View file

@ -49,7 +49,7 @@ RUN chmod 755 /tmp/local/usr/local/bin/docker-entrypoint.sh \
/go/src/code.gitea.io/gitea/environment-to-ini
RUN chmod 644 /go/src/code.gitea.io/gitea/contrib/autocompletion/bash_autocomplete
FROM code.forgejo.org/oci/golang:1.23-alpine3.20
FROM code.forgejo.org/oci/alpine:3.20
LABEL maintainer="contact@forgejo.org" \
org.opencontainers.image.authors="Forgejo" \
org.opencontainers.image.url="https://forgejo.org" \
@ -90,7 +90,7 @@ RUN chown git:git /var/lib/gitea /etc/gitea
COPY --from=build-env /tmp/local /
RUN cd /usr/local/bin ; ln -s gitea forgejo
COPY --from=build-env --chown=root:root /go/src/code.gitea.io/gitea/gitea /app/gitea/gitea
RUN ln /app/gitea/gitea /app/gitea/forgejo-cli
RUN ln -s /app/gitea/gitea /app/gitea/forgejo-cli
COPY --from=build-env --chown=root:root /go/src/code.gitea.io/gitea/environment-to-ini /usr/local/bin/environment-to-ini
COPY --from=build-env /go/src/code.gitea.io/gitea/contrib/autocompletion/bash_autocomplete /etc/profile.d/gitea_bash_autocomplete.sh

View file

@ -147,6 +147,12 @@ func runServ(c *cli.Context) error {
return nil
}
defer func() {
if err := recover(); err != nil {
_ = fail(ctx, "Internal Server Error", "Panic: %v\n%s", err, log.Stack(2))
}
}()
keys := strings.Split(c.Args().First(), "-")
if len(keys) != 2 || keys[0] != "key" {
return fail(ctx, "Key ID format error", "Invalid key argument: %s", c.Args().First())
@ -193,10 +199,7 @@ func runServ(c *cli.Context) error {
}
verb := words[0]
repoPath := words[1]
if repoPath[0] == '/' {
repoPath = repoPath[1:]
}
repoPath := strings.TrimPrefix(words[1], "/")
var lfsVerb string
if verb == lfsAuthenticateVerb {

View file

@ -529,7 +529,8 @@ INTERNAL_TOKEN =
;; HMAC to encode urls with, it **is required** if camo is enabled.
;HMAC_KEY =
;; Set to true to use camo for https too lese only non https urls are proxyed
;ALLWAYS = false
;; ALLWAYS is deprecated and will be removed in the future
;ALWAYS = false
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

6
go.mod
View file

@ -1,6 +1,6 @@
module code.gitea.io/gitea
go 1.23.1
go 1.23.2
require (
code.forgejo.org/f3/gof3/v3 v3.7.0
@ -75,7 +75,7 @@ require (
github.com/meilisearch/meilisearch-go v0.28.0
github.com/mholt/archiver/v3 v3.5.1
github.com/microcosm-cc/bluemonday v1.0.27
github.com/minio/minio-go/v7 v7.0.74
github.com/minio/minio-go/v7 v7.0.77
github.com/msteinert/pam v1.2.0
github.com/nektos/act v0.2.52
github.com/niklasfasching/go-org v1.7.0
@ -250,7 +250,7 @@ require (
github.com/rhysd/actionlint v1.6.27 // indirect
github.com/rivo/uniseg v0.4.7 // indirect
github.com/rogpeppe/go-internal v1.12.0 // indirect
github.com/rs/xid v1.5.0 // indirect
github.com/rs/xid v1.6.0 // indirect
github.com/russross/blackfriday/v2 v2.1.0 // indirect
github.com/sagikazarmark/locafero v0.4.0 // indirect
github.com/sagikazarmark/slog-shim v0.1.0 // indirect

8
go.sum
View file

@ -502,8 +502,8 @@ github.com/miekg/dns v1.1.59 h1:C9EXc/UToRwKLhK5wKU/I4QVsBUc8kE6MkHBkeypWZs=
github.com/miekg/dns v1.1.59/go.mod h1:nZpewl5p6IvctfgrckopVx2OlSEHPRO/U4SYkRklrEk=
github.com/minio/md5-simd v1.1.2 h1:Gdi1DZK69+ZVMoNHRXJyNcxrMA4dSxoYHZSQbirFg34=
github.com/minio/md5-simd v1.1.2/go.mod h1:MzdKDxYpY2BT9XQFocsiZf/NKVtR7nkE4RoEpN+20RM=
github.com/minio/minio-go/v7 v7.0.74 h1:fTo/XlPBTSpo3BAMshlwKL5RspXRv9us5UeHEGYCFe0=
github.com/minio/minio-go/v7 v7.0.74/go.mod h1:qydcVzV8Hqtj1VtEocfxbmVFa2siu6HGa+LDEPogjD8=
github.com/minio/minio-go/v7 v7.0.77 h1:GaGghJRg9nwDVlNbwYjSDJT1rqltQkBFDsypWX1v3Bw=
github.com/minio/minio-go/v7 v7.0.77/go.mod h1:AVM3IUN6WwKzmwBxVdjzhH8xq+f57JSbbvzqvUzR6eg=
github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw=
github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw=
github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s=
@ -599,8 +599,8 @@ github.com/rogpeppe/go-internal v1.8.1/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4
github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8=
github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4=
github.com/rs/xid v1.5.0 h1:mKX4bl4iPYJtEIxp6CYiUuLQ/8DYMoz0PUdtGgMFRVc=
github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg=
github.com/rs/xid v1.6.0 h1:fV591PaemRlL6JfRxGDEPl69wICngIQ3shQtzfy2gxU=
github.com/rs/xid v1.6.0/go.mod h1:7XoLgs4eV+QndskICGsho+ADou8ySMSjJKDIan90Nz0=
github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk=
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/sagikazarmark/locafero v0.4.0 h1:HApY1R9zGo4DBgr7dqsTH/JJxLTTsOt7u6keLGt6kNQ=

View file

@ -69,7 +69,7 @@ func CreateArtifact(ctx context.Context, t *ActionTask, artifactName, artifactPa
OwnerID: t.OwnerID,
CommitSHA: t.CommitSHA,
Status: int64(ArtifactStatusUploadPending),
ExpiredUnix: timeutil.TimeStamp(time.Now().Unix() + 3600*24*expiredDays),
ExpiredUnix: timeutil.TimeStamp(time.Now().Unix() + timeutil.Day*expiredDays),
}
if _, err := db.GetEngine(ctx).Insert(artifact); err != nil {
return nil, err
@ -78,6 +78,13 @@ func CreateArtifact(ctx context.Context, t *ActionTask, artifactName, artifactPa
} else if err != nil {
return nil, err
}
if _, err := db.GetEngine(ctx).ID(artifact.ID).Cols("expired_unix").Update(&ActionArtifact{
ExpiredUnix: timeutil.TimeStamp(time.Now().Unix() + timeutil.Day*expiredDays),
}); err != nil {
return nil, err
}
return artifact, nil
}

View file

@ -146,7 +146,11 @@ func (run *ActionRun) GetPushEventPayload() (*api.PushPayload, error) {
}
func (run *ActionRun) GetPullRequestEventPayload() (*api.PullRequestPayload, error) {
if run.Event == webhook_module.HookEventPullRequest || run.Event == webhook_module.HookEventPullRequestSync {
if run.Event == webhook_module.HookEventPullRequest ||
run.Event == webhook_module.HookEventPullRequestSync ||
run.Event == webhook_module.HookEventPullRequestAssign ||
run.Event == webhook_module.HookEventPullRequestMilestone ||
run.Event == webhook_module.HookEventPullRequestLabel {
var payload api.PullRequestPayload
if err := json.Unmarshal([]byte(run.EventPayload), &payload); err != nil {
return nil, err

View file

@ -118,21 +118,23 @@ func DeleteScheduleTaskByRepo(ctx context.Context, id int64) error {
return committer.Commit()
}
func CleanRepoScheduleTasks(ctx context.Context, repo *repo_model.Repository) error {
func CleanRepoScheduleTasks(ctx context.Context, repo *repo_model.Repository, cancelPreviousJobs bool) error {
// If actions disabled when there is schedule task, this will remove the outdated schedule tasks
// There is no other place we can do this because the app.ini will be changed manually
if err := DeleteScheduleTaskByRepo(ctx, repo.ID); err != nil {
return fmt.Errorf("DeleteCronTaskByRepo: %v", err)
}
// cancel running cron jobs of this repository and delete old schedules
if err := CancelPreviousJobs(
ctx,
repo.ID,
repo.DefaultBranch,
"",
webhook_module.HookEventSchedule,
); err != nil {
return fmt.Errorf("CancelPreviousJobs: %v", err)
if cancelPreviousJobs {
// cancel running cron jobs of this repository and delete old schedules
if err := CancelPreviousJobs(
ctx,
repo.ID,
repo.DefaultBranch,
"",
webhook_module.HookEventSchedule,
); err != nil {
return fmt.Errorf("CancelPreviousJobs: %v", err)
}
}
return nil
}

View file

@ -34,6 +34,7 @@ type ActivityStats struct {
OpenedPRAuthorCount int64
MergedPRs issues_model.PullRequestList
MergedPRAuthorCount int64
ActiveIssues issues_model.IssueList
OpenedIssues issues_model.IssueList
OpenedIssueAuthorCount int64
ClosedIssues issues_model.IssueList
@ -172,7 +173,7 @@ func (stats *ActivityStats) MergedPRPerc() int {
// ActiveIssueCount returns total active issue count
func (stats *ActivityStats) ActiveIssueCount() int {
return stats.OpenedIssueCount() + stats.ClosedIssueCount()
return len(stats.ActiveIssues)
}
// OpenedIssueCount returns open issue count
@ -285,13 +286,21 @@ func (stats *ActivityStats) FillIssues(ctx context.Context, repoID int64, fromTi
stats.ClosedIssueAuthorCount = count
// New issues
sess = issuesForActivityStatement(ctx, repoID, fromTime, false, false)
sess = newlyCreatedIssues(ctx, repoID, fromTime)
sess.OrderBy("issue.created_unix ASC")
stats.OpenedIssues = make(issues_model.IssueList, 0)
if err = sess.Find(&stats.OpenedIssues); err != nil {
return err
}
// Active issues
sess = activeIssues(ctx, repoID, fromTime)
sess.OrderBy("issue.created_unix ASC")
stats.ActiveIssues = make(issues_model.IssueList, 0)
if err = sess.Find(&stats.ActiveIssues); err != nil {
return err
}
// Opened issue authors
sess = issuesForActivityStatement(ctx, repoID, fromTime, false, false)
if _, err = sess.Select("count(distinct issue.poster_id) as `count`").Table("issue").Get(&count); err != nil {
@ -317,6 +326,22 @@ func (stats *ActivityStats) FillUnresolvedIssues(ctx context.Context, repoID int
return sess.Find(&stats.UnresolvedIssues)
}
func newlyCreatedIssues(ctx context.Context, repoID int64, fromTime time.Time) *xorm.Session {
sess := db.GetEngine(ctx).Where("issue.repo_id = ?", repoID).
And("issue.is_pull = ?", false). // Retain the is_pull check to exclude pull requests
And("issue.created_unix >= ?", fromTime.Unix()) // Include all issues created after fromTime
return sess
}
func activeIssues(ctx context.Context, repoID int64, fromTime time.Time) *xorm.Session {
sess := db.GetEngine(ctx).Where("issue.repo_id = ?", repoID).
And("issue.is_pull = ?", false).
And("issue.created_unix >= ? OR issue.closed_unix >= ?", fromTime.Unix(), fromTime.Unix())
return sess
}
func issuesForActivityStatement(ctx context.Context, repoID int64, fromTime time.Time, closed, unresolved bool) *xorm.Session {
sess := db.GetEngine(ctx).Where("issue.repo_id = ?", repoID).
And("issue.is_closed = ?", closed)

View file

@ -0,0 +1,30 @@
// Copyright 2024 The Forgejo Authors. All rights reserved.
// SPDX-License-Identifier: MIT
package activities
import (
"testing"
"time"
"code.gitea.io/gitea/models/db"
repo_model "code.gitea.io/gitea/models/repo"
"code.gitea.io/gitea/models/unittest"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestGetActivityStats(t *testing.T) {
require.NoError(t, unittest.PrepareTestDatabase())
repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 1})
stats, err := GetActivityStats(db.DefaultContext, repo, time.Unix(0, 0), true, true, true, true)
require.NoError(t, err)
assert.EqualValues(t, 2, stats.ActiveIssueCount())
assert.EqualValues(t, 2, stats.OpenedIssueCount())
assert.EqualValues(t, 0, stats.ClosedIssueCount())
assert.EqualValues(t, 3, stats.ActivePRCount())
}

View file

@ -15,12 +15,31 @@ import (
"code.gitea.io/gitea/modules/util"
)
type AuthorizationPurpose string
var (
// Used to store long term authorization tokens.
LongTermAuthorization AuthorizationPurpose = "long_term_authorization"
// Used to activate a user account.
UserActivation AuthorizationPurpose = "user_activation"
// Used to reset the password.
PasswordReset AuthorizationPurpose = "password_reset"
)
// Used to activate the specified email address for a user.
func EmailActivation(email string) AuthorizationPurpose {
return AuthorizationPurpose("email_activation:" + email)
}
// AuthorizationToken represents a authorization token to a user.
type AuthorizationToken struct {
ID int64 `xorm:"pk autoincr"`
UID int64 `xorm:"INDEX"`
LookupKey string `xorm:"INDEX UNIQUE"`
HashedValidator string
Purpose AuthorizationPurpose `xorm:"NOT NULL DEFAULT 'long_term_authorization'"`
Expiry timeutil.TimeStamp
}
@ -41,7 +60,7 @@ func (authToken *AuthorizationToken) IsExpired() bool {
// GenerateAuthToken generates a new authentication token for the given user.
// It returns the lookup key and validator values that should be passed to the
// user via a long-term cookie.
func GenerateAuthToken(ctx context.Context, userID int64, expiry timeutil.TimeStamp) (lookupKey, validator string, err error) {
func GenerateAuthToken(ctx context.Context, userID int64, expiry timeutil.TimeStamp, purpose AuthorizationPurpose) (lookupKey, validator string, err error) {
// Request 64 random bytes. The first 32 bytes will be used for the lookupKey
// and the other 32 bytes will be used for the validator.
rBytes, err := util.CryptoRandomBytes(64)
@ -56,14 +75,15 @@ func GenerateAuthToken(ctx context.Context, userID int64, expiry timeutil.TimeSt
Expiry: expiry,
LookupKey: lookupKey,
HashedValidator: HashValidator(rBytes[32:]),
Purpose: purpose,
})
return lookupKey, validator, err
}
// FindAuthToken will find a authorization token via the lookup key.
func FindAuthToken(ctx context.Context, lookupKey string) (*AuthorizationToken, error) {
func FindAuthToken(ctx context.Context, lookupKey string, purpose AuthorizationPurpose) (*AuthorizationToken, error) {
var authToken AuthorizationToken
has, err := db.GetEngine(ctx).Where("lookup_key = ?", lookupKey).Get(&authToken)
has, err := db.GetEngine(ctx).Where("lookup_key = ? AND purpose = ?", lookupKey, purpose).Get(&authToken)
if err != nil {
return nil, err
} else if !has {

View file

@ -94,3 +94,22 @@
content: "test markup light/dark-mode-only ![GitHub-Mark-Light](https://user-images.githubusercontent.com/3369400/139447912-e0f43f33-6d9f-45f8-be46-2df5bbc91289.png#gh-dark-mode-only)![GitHub-Mark-Dark](https://user-images.githubusercontent.com/3369400/139448065-39a229ba-4b06-434b-bc67-616e2ed80c8f.png#gh-light-mode-only)"
created_unix: 946684813
updated_unix: 946684813
-
id: 11
type: 22 # review
poster_id: 5
issue_id: 3 # in repo_id 1
content: "reviewed by user5"
review_id: 21
created_unix: 946684816
-
id: 12
type: 27 # review request
poster_id: 2
issue_id: 3 # in repo_id 1
content: "review request for user5"
review_id: 22
assignee_id: 5
created_unix: 946684817

View file

@ -91,6 +91,8 @@
size: 0
is_fsck_enabled: true
close_issues_via_commit_in_any_branch: false
created_unix: 1700000001
updated_unix: 1700000001
-
id: 4
@ -152,6 +154,8 @@
size: 0
is_fsck_enabled: true
close_issues_via_commit_in_any_branch: false
created_unix: 1700000002
updated_unix: 1700000002
-
id: 6
@ -182,6 +186,8 @@
size: 0
is_fsck_enabled: true
close_issues_via_commit_in_any_branch: false
created_unix: 1710000001
updated_unix: 1710000001
-
id: 7
@ -212,6 +218,8 @@
size: 0
is_fsck_enabled: true
close_issues_via_commit_in_any_branch: false
created_unix: 1710000003
updated_unix: 1710000003
-
id: 8
@ -242,6 +250,8 @@
size: 0
is_fsck_enabled: true
close_issues_via_commit_in_any_branch: false
created_unix: 1710000002
updated_unix: 1710000002
-
id: 9
@ -968,6 +978,8 @@
size: 0
is_fsck_enabled: true
close_issues_via_commit_in_any_branch: false
created_unix: 1700000003
updated_unix: 1700000003
-
id: 33
@ -1811,4 +1823,4 @@
template_id: 0
size: 0
is_fsck_enabled: true
close_issues_via_commit_in_any_branch: false
close_issues_via_commit_in_any_branch: false

View file

@ -179,3 +179,22 @@
content: "Review Comment"
updated_unix: 946684810
created_unix: 946684810
-
id: 21
type: 2
reviewer_id: 5
issue_id: 3
content: "reviewed by user5"
commit_id: 4a357436d925b5c974181ff12a994538ddc5a269
updated_unix: 946684816
created_unix: 946684816
-
id: 22
type: 4
reviewer_id: 5
issue_id: 3
content: "review request for user5"
updated_unix: 946684817
created_unix: 946684817

View file

@ -111,9 +111,7 @@ func NewIssueLabel(ctx context.Context, issue *Issue, label *Label, doer *user_m
return err
}
issue.isLabelsLoaded = false
issue.Labels = nil
if err = issue.LoadLabels(ctx); err != nil {
if err = issue.ReloadLabels(ctx); err != nil {
return err
}
@ -161,10 +159,7 @@ func NewIssueLabels(ctx context.Context, issue *Issue, labels []*Label, doer *us
return err
}
// reload all labels
issue.isLabelsLoaded = false
issue.Labels = nil
if err = issue.LoadLabels(ctx); err != nil {
if err = issue.ReloadLabels(ctx); err != nil {
return err
}
@ -205,8 +200,7 @@ func DeleteIssueLabel(ctx context.Context, issue *Issue, label *Label, doer *use
return err
}
issue.Labels = nil
return issue.LoadLabels(ctx)
return issue.ReloadLabels(ctx)
}
// DeleteLabelsByRepoID deletes labels of some repository
@ -326,14 +320,23 @@ func FixIssueLabelWithOutsideLabels(ctx context.Context) (int64, error) {
return res.RowsAffected()
}
// LoadLabels loads labels
// LoadLabels only if they are not already set
func (issue *Issue) LoadLabels(ctx context.Context) (err error) {
if !issue.isLabelsLoaded && issue.Labels == nil && issue.ID != 0 {
if !issue.isLabelsLoaded && issue.Labels == nil {
if err := issue.ReloadLabels(ctx); err != nil {
return err
}
issue.isLabelsLoaded = true
}
return nil
}
func (issue *Issue) ReloadLabels(ctx context.Context) (err error) {
if issue.ID != 0 {
issue.Labels, err = GetLabelsByIssueID(ctx, issue.ID)
if err != nil {
return fmt.Errorf("getLabelsByIssueID [%d]: %w", issue.ID, err)
}
issue.isLabelsLoaded = true
}
return nil
}
@ -496,8 +499,7 @@ func ReplaceIssueLabels(ctx context.Context, issue *Issue, labels []*Label, doer
}
}
issue.Labels = nil
if err = issue.LoadLabels(ctx); err != nil {
if err = issue.ReloadLabels(ctx); err != nil {
return err
}

View file

@ -15,6 +15,114 @@ import (
"github.com/stretchr/testify/require"
)
func TestIssueNewIssueLabels(t *testing.T) {
require.NoError(t, unittest.PrepareTestDatabase())
issue := unittest.AssertExistsAndLoadBean(t, &issues_model.Issue{ID: 2})
label1 := unittest.AssertExistsAndLoadBean(t, &issues_model.Label{ID: 1})
label2 := unittest.AssertExistsAndLoadBean(t, &issues_model.Label{ID: 4})
doer := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2})
label3 := &issues_model.Label{RepoID: 1, Name: "label3", Color: "#123"}
require.NoError(t, issues_model.NewLabel(db.DefaultContext, label3))
// label1 is already set, do nothing
// label3 is new, add it
require.NoError(t, issues_model.NewIssueLabels(db.DefaultContext, issue, []*issues_model.Label{label1, label3}, doer))
assert.Len(t, issue.Labels, 3)
// check that the pre-existing label1 is still present
assert.Equal(t, label1.ID, issue.Labels[0].ID)
// check that new label3 was added
assert.Equal(t, label3.ID, issue.Labels[1].ID)
// check that pre-existing label2 was not removed
assert.Equal(t, label2.ID, issue.Labels[2].ID)
}
func TestIssueNewIssueLabel(t *testing.T) {
require.NoError(t, unittest.PrepareTestDatabase())
issue := unittest.AssertExistsAndLoadBean(t, &issues_model.Issue{ID: 3})
doer := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2})
label := &issues_model.Label{RepoID: 1, Name: "label3", Color: "#123"}
require.NoError(t, issues_model.NewLabel(db.DefaultContext, label))
require.NoError(t, issues_model.NewIssueLabel(db.DefaultContext, issue, label, doer))
assert.Len(t, issue.Labels, 1)
assert.Equal(t, label.ID, issue.Labels[0].ID)
}
func TestIssueReplaceIssueLabels(t *testing.T) {
require.NoError(t, unittest.PrepareTestDatabase())
issue := unittest.AssertExistsAndLoadBean(t, &issues_model.Issue{ID: 2})
label1 := unittest.AssertExistsAndLoadBean(t, &issues_model.Label{ID: 1})
label2 := unittest.AssertExistsAndLoadBean(t, &issues_model.Label{ID: 4})
doer := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2})
label3 := &issues_model.Label{RepoID: 1, Name: "label3", Color: "#123"}
require.NoError(t, issues_model.NewLabel(db.DefaultContext, label3))
issue.LoadLabels(db.DefaultContext)
assert.Len(t, issue.Labels, 2)
assert.Equal(t, label1.ID, issue.Labels[0].ID)
assert.Equal(t, label2.ID, issue.Labels[1].ID)
// label1 is already set, do nothing
// label3 is new, add it
// label2 is not in the list but already set, remove it
require.NoError(t, issues_model.ReplaceIssueLabels(db.DefaultContext, issue, []*issues_model.Label{label1, label3}, doer))
assert.Len(t, issue.Labels, 2)
assert.Equal(t, label1.ID, issue.Labels[0].ID)
assert.Equal(t, label3.ID, issue.Labels[1].ID)
}
func TestIssueDeleteIssueLabel(t *testing.T) {
require.NoError(t, unittest.PrepareTestDatabase())
issue := unittest.AssertExistsAndLoadBean(t, &issues_model.Issue{ID: 2})
label1 := unittest.AssertExistsAndLoadBean(t, &issues_model.Label{ID: 1})
label2 := unittest.AssertExistsAndLoadBean(t, &issues_model.Label{ID: 4})
doer := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2})
issue.LoadLabels(db.DefaultContext)
assert.Len(t, issue.Labels, 2)
assert.Equal(t, label1.ID, issue.Labels[0].ID)
assert.Equal(t, label2.ID, issue.Labels[1].ID)
require.NoError(t, issues_model.DeleteIssueLabel(db.DefaultContext, issue, label2, doer))
assert.Len(t, issue.Labels, 1)
assert.Equal(t, label1.ID, issue.Labels[0].ID)
}
func TestIssueLoadLabels(t *testing.T) {
require.NoError(t, unittest.PrepareTestDatabase())
issue := unittest.AssertExistsAndLoadBean(t, &issues_model.Issue{ID: 2})
label1 := unittest.AssertExistsAndLoadBean(t, &issues_model.Label{ID: 1})
label2 := unittest.AssertExistsAndLoadBean(t, &issues_model.Label{ID: 4})
assert.Empty(t, issue.Labels)
issue.LoadLabels(db.DefaultContext)
assert.Len(t, issue.Labels, 2)
assert.Equal(t, label1.ID, issue.Labels[0].ID)
assert.Equal(t, label2.ID, issue.Labels[1].ID)
unittest.AssertSuccessfulDelete(t, &issues_model.IssueLabel{IssueID: issue.ID, LabelID: label2.ID})
// the database change is not noticed because the labels are cached
issue.LoadLabels(db.DefaultContext)
assert.Len(t, issue.Labels, 2)
issue.ReloadLabels(db.DefaultContext)
assert.Len(t, issue.Labels, 1)
assert.Equal(t, label1.ID, issue.Labels[0].ID)
}
func TestNewIssueLabelsScope(t *testing.T) {
require.NoError(t, unittest.PrepareTestDatabase())

View file

@ -408,7 +408,7 @@ func (pr *PullRequest) getReviewedByLines(ctx context.Context, writer io.Writer)
// Note: This doesn't page as we only expect a very limited number of reviews
reviews, err := FindLatestReviews(ctx, FindReviewOptions{
Type: ReviewTypeApprove,
Types: []ReviewType{ReviewTypeApprove},
IssueID: pr.IssueID,
OfficialOnly: setting.Repository.PullRequest.DefaultMergeMessageOfficialApproversOnly,
})

View file

@ -364,7 +364,7 @@ func GetCurrentReview(ctx context.Context, reviewer *user_model.User, issue *Iss
return nil, nil
}
reviews, err := FindReviews(ctx, FindReviewOptions{
Type: ReviewTypePending,
Types: []ReviewType{ReviewTypePending},
IssueID: issue.ID,
ReviewerID: reviewer.ID,
})

View file

@ -92,7 +92,7 @@ func (reviews ReviewList) LoadIssues(ctx context.Context) error {
// FindReviewOptions represent possible filters to find reviews
type FindReviewOptions struct {
db.ListOptions
Type ReviewType
Types []ReviewType
IssueID int64
ReviewerID int64
OfficialOnly bool
@ -107,8 +107,8 @@ func (opts *FindReviewOptions) toCond() builder.Cond {
if opts.ReviewerID > 0 {
cond = cond.And(builder.Eq{"reviewer_id": opts.ReviewerID})
}
if opts.Type != ReviewTypeUnknown {
cond = cond.And(builder.Eq{"type": opts.Type})
if len(opts.Types) > 0 {
cond = cond.And(builder.In("type", opts.Types))
}
if opts.OfficialOnly {
cond = cond.And(builder.Eq{"official": true})

View file

@ -64,7 +64,7 @@ func TestReviewType_Icon(t *testing.T) {
func TestFindReviews(t *testing.T) {
require.NoError(t, unittest.PrepareTestDatabase())
reviews, err := issues_model.FindReviews(db.DefaultContext, issues_model.FindReviewOptions{
Type: issues_model.ReviewTypeApprove,
Types: []issues_model.ReviewType{issues_model.ReviewTypeApprove},
IssueID: 2,
ReviewerID: 1,
})
@ -76,7 +76,7 @@ func TestFindReviews(t *testing.T) {
func TestFindLatestReviews(t *testing.T) {
require.NoError(t, unittest.PrepareTestDatabase())
reviews, err := issues_model.FindLatestReviews(db.DefaultContext, issues_model.FindReviewOptions{
Type: issues_model.ReviewTypeApprove,
Types: []issues_model.ReviewType{issues_model.ReviewTypeApprove},
IssueID: 11,
})
require.NoError(t, err)

View file

@ -0,0 +1,10 @@
-
id: 1000
org_id: 1000
lower_name: owners
name: Owners
authorize: 4 # owner
num_repos: 0
num_members: 0
includes_all_repositories: true
can_create_org_repo: true

View file

@ -0,0 +1,59 @@
-
id: 1000
team_id: 1000
type: 1
access_mode: 0 # None
-
id: 1001
team_id: 1000
type: 2
access_mode: 0
-
id: 1002
team_id: 1000
type: 3
access_mode: 0
-
id: 1003
team_id: 1000
type: 4
access_mode: 0
-
id: 1004
team_id: 1000
type: 5
access_mode: 0
-
id: 1005
team_id: 1000
type: 6
access_mode: 0
-
id: 1006
team_id: 1000
type: 7
access_mode: 0
-
id: 1007
team_id: 1000
type: 8
access_mode: 0
-
id: 1008
team_id: 1000
type: 9
access_mode: 0
-
id: 1009
team_id: 1000
type: 10
access_mode: 0

View file

@ -299,8 +299,8 @@ func TestAccessibleReposEnv_RepoIDs(t *testing.T) {
require.NoError(t, err)
assert.Equal(t, expectedRepoIDs, repoIDs)
}
testSuccess(2, []int64{3, 5, 32})
testSuccess(4, []int64{3, 32})
testSuccess(2, []int64{32, 5, 3})
testSuccess(4, []int64{32, 3})
}
func TestAccessibleReposEnv_Repos(t *testing.T) {
@ -318,8 +318,8 @@ func TestAccessibleReposEnv_Repos(t *testing.T) {
}
assert.Equal(t, expectedRepos, repos)
}
testSuccess(2, []int64{3, 5, 32})
testSuccess(4, []int64{3, 32})
testSuccess(2, []int64{32, 5, 3})
testSuccess(4, []int64{32, 3})
}
func TestAccessibleReposEnv_MirrorRepos(t *testing.T) {

View file

@ -268,3 +268,43 @@ func IncrTeamRepoNum(ctx context.Context, teamID int64) error {
_, err := db.GetEngine(ctx).Incr("num_repos").ID(teamID).Update(new(Team))
return err
}
// CountInconsistentOwnerTeams returns the amount of owner teams that have all of
// their access modes set to "None".
func CountInconsistentOwnerTeams(ctx context.Context) (int64, error) {
return db.GetEngine(ctx).Table("team").
Join("INNER", "team_unit", "`team`.id = `team_unit`.team_id").
Where("`team`.lower_name = ?", strings.ToLower(OwnerTeamName)).
GroupBy("`team_unit`.team_id").
Having("SUM(`team_unit`.access_mode) = 0").
Count()
}
// FixInconsistentOwnerTeams fixes inconsistent owner teams that have all of
// their access modes set to "None", it sets it back to "Owner".
func FixInconsistentOwnerTeams(ctx context.Context) (int64, error) {
teamIDs := []int64{}
if err := db.GetEngine(ctx).Table("team").
Select("`team`.id").
Join("INNER", "team_unit", "`team`.id = `team_unit`.team_id").
Where("`team`.lower_name = ?", strings.ToLower(OwnerTeamName)).
GroupBy("`team_unit`.team_id").
Having("SUM(`team_unit`.access_mode) = 0").
Find(&teamIDs); err != nil {
return 0, err
}
if err := db.Iterate(ctx, builder.In("team_id", teamIDs), func(ctx context.Context, bean *TeamUnit) error {
if bean.Type == unit.TypeExternalTracker || bean.Type == unit.TypeExternalWiki {
bean.AccessMode = perm.AccessModeRead
} else {
bean.AccessMode = perm.AccessModeOwner
}
_, err := db.GetEngine(ctx).ID(bean.ID).Table("team_unit").Cols("access_mode").Update(bean)
return err
}); err != nil {
return 0, err
}
return int64(len(teamIDs)), nil
}

View file

@ -4,11 +4,14 @@
package organization_test
import (
"path/filepath"
"testing"
"code.gitea.io/gitea/models/db"
"code.gitea.io/gitea/models/organization"
"code.gitea.io/gitea/models/perm"
"code.gitea.io/gitea/models/unittest"
"code.gitea.io/gitea/modules/setting"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
@ -198,3 +201,50 @@ func TestUsersInTeamsCount(t *testing.T) {
test([]int64{1, 2, 3, 4, 5}, []int64{2, 5}, 2) // userid 2,4
test([]int64{1, 2, 3, 4, 5}, []int64{2, 3, 5}, 3) // userid 2,4,5
}
func TestInconsistentOwnerTeam(t *testing.T) {
defer unittest.OverrideFixtures(
unittest.FixturesOptions{
Dir: filepath.Join(setting.AppWorkPath, "models/fixtures/"),
Base: setting.AppWorkPath,
Dirs: []string{"models/organization/TestInconsistentOwnerTeam/"},
},
)()
require.NoError(t, unittest.PrepareTestDatabase())
unittest.AssertExistsAndLoadBean(t, &organization.TeamUnit{ID: 1000, TeamID: 1000, AccessMode: perm.AccessModeNone})
unittest.AssertExistsAndLoadBean(t, &organization.TeamUnit{ID: 1001, TeamID: 1000, AccessMode: perm.AccessModeNone})
unittest.AssertExistsAndLoadBean(t, &organization.TeamUnit{ID: 1002, TeamID: 1000, AccessMode: perm.AccessModeNone})
unittest.AssertExistsAndLoadBean(t, &organization.TeamUnit{ID: 1003, TeamID: 1000, AccessMode: perm.AccessModeNone})
unittest.AssertExistsAndLoadBean(t, &organization.TeamUnit{ID: 1004, TeamID: 1000, AccessMode: perm.AccessModeNone})
unittest.AssertExistsAndLoadBean(t, &organization.TeamUnit{ID: 1005, TeamID: 1000, AccessMode: perm.AccessModeNone})
unittest.AssertExistsAndLoadBean(t, &organization.TeamUnit{ID: 1006, TeamID: 1000, AccessMode: perm.AccessModeNone})
unittest.AssertExistsAndLoadBean(t, &organization.TeamUnit{ID: 1007, TeamID: 1000, AccessMode: perm.AccessModeNone})
unittest.AssertExistsAndLoadBean(t, &organization.TeamUnit{ID: 1008, TeamID: 1000, AccessMode: perm.AccessModeNone})
unittest.AssertExistsAndLoadBean(t, &organization.TeamUnit{ID: 1009, TeamID: 1000, AccessMode: perm.AccessModeNone})
count, err := organization.CountInconsistentOwnerTeams(db.DefaultContext)
require.NoError(t, err)
require.EqualValues(t, 1, count)
count, err = organization.FixInconsistentOwnerTeams(db.DefaultContext)
require.NoError(t, err)
require.EqualValues(t, 1, count)
count, err = organization.CountInconsistentOwnerTeams(db.DefaultContext)
require.NoError(t, err)
require.EqualValues(t, 0, count)
unittest.AssertExistsAndLoadBean(t, &organization.TeamUnit{ID: 1000, AccessMode: perm.AccessModeOwner})
unittest.AssertExistsAndLoadBean(t, &organization.TeamUnit{ID: 1001, AccessMode: perm.AccessModeOwner})
unittest.AssertExistsAndLoadBean(t, &organization.TeamUnit{ID: 1002, AccessMode: perm.AccessModeOwner})
unittest.AssertExistsAndLoadBean(t, &organization.TeamUnit{ID: 1003, AccessMode: perm.AccessModeOwner})
unittest.AssertExistsAndLoadBean(t, &organization.TeamUnit{ID: 1004, AccessMode: perm.AccessModeOwner})
unittest.AssertExistsAndLoadBean(t, &organization.TeamUnit{ID: 1007, AccessMode: perm.AccessModeOwner})
unittest.AssertExistsAndLoadBean(t, &organization.TeamUnit{ID: 1008, AccessMode: perm.AccessModeOwner})
unittest.AssertExistsAndLoadBean(t, &organization.TeamUnit{ID: 1009, AccessMode: perm.AccessModeOwner})
// External wiki and issue
unittest.AssertExistsAndLoadBean(t, &organization.TeamUnit{ID: 1005, AccessMode: perm.AccessModeRead})
unittest.AssertExistsAndLoadBean(t, &organization.TeamUnit{ID: 1006, AccessMode: perm.AccessModeRead})
}

View file

@ -10,6 +10,7 @@ import (
"code.gitea.io/gitea/models/db"
"code.gitea.io/gitea/models/packages"
debian_module "code.gitea.io/gitea/modules/packages/debian"
"code.gitea.io/gitea/modules/setting"
"xorm.io/builder"
)
@ -76,25 +77,41 @@ func ExistPackages(ctx context.Context, opts *PackageSearchOptions) (bool, error
// SearchPackages gets the packages matching the search options
func SearchPackages(ctx context.Context, opts *PackageSearchOptions, iter func(*packages.PackageFileDescriptor)) error {
return db.GetEngine(ctx).
Table("package_file").
Select("package_file.*").
Join("INNER", "package_version", "package_version.id = package_file.version_id").
Join("INNER", "package", "package.id = package_version.package_id").
Where(opts.toCond()).
Asc("package.lower_name", "package_version.created_unix").
Iterate(new(packages.PackageFile), func(_ int, bean any) error {
pf := bean.(*packages.PackageFile)
var start int
batchSize := setting.Database.IterateBufferSize
for {
select {
case <-ctx.Done():
return ctx.Err()
default:
beans := make([]*packages.PackageFile, 0, batchSize)
pfd, err := packages.GetPackageFileDescriptor(ctx, pf)
if err != nil {
if err := db.GetEngine(ctx).
Table("package_file").
Select("package_file.*").
Join("INNER", "package_version", "package_version.id = package_file.version_id").
Join("INNER", "package", "package.id = package_version.package_id").
Where(opts.toCond()).
Asc("package.lower_name", "package_version.created_unix").
Limit(batchSize, start).
Find(&beans); err != nil {
return err
}
if len(beans) == 0 {
return nil
}
start += len(beans)
iter(pfd)
for _, bean := range beans {
pfd, err := packages.GetPackageFileDescriptor(ctx, bean)
if err != nil {
return err
}
return nil
})
iter(pfd)
}
}
}
}
// GetDistributions gets all available distributions

View file

@ -0,0 +1,93 @@
// Copyright 2024 The Forgejo Authors. All rights reserved.
// SPDX-License-Identifier: GPL-3.0-or-later
package debian
import (
"strings"
"testing"
"code.gitea.io/gitea/models/db"
packages_model "code.gitea.io/gitea/models/packages"
"code.gitea.io/gitea/models/unittest"
user_model "code.gitea.io/gitea/models/user"
"code.gitea.io/gitea/modules/packages"
"code.gitea.io/gitea/modules/setting"
"code.gitea.io/gitea/modules/test"
packages_service "code.gitea.io/gitea/services/packages"
_ "code.gitea.io/gitea/models"
_ "code.gitea.io/gitea/models/actions"
_ "code.gitea.io/gitea/models/activities"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestMain(m *testing.M) {
unittest.MainTest(m)
}
func preparePackage(t *testing.T, owner *user_model.User, name string) {
t.Helper()
data, err := packages.CreateHashedBufferFromReader(strings.NewReader("data"))
require.NoError(t, err)
_, _, err = packages_service.CreatePackageOrAddFileToExisting(
db.DefaultContext,
&packages_service.PackageCreationInfo{
PackageInfo: packages_service.PackageInfo{
Owner: owner,
PackageType: packages_model.TypeDebian,
Name: name,
},
Creator: owner,
},
&packages_service.PackageFileCreationInfo{
PackageFileInfo: packages_service.PackageFileInfo{
Filename: name,
},
Data: data,
Creator: owner,
IsLead: true,
},
)
require.NoError(t, err)
}
func TestSearchPackages(t *testing.T) {
require.NoError(t, unittest.PrepareTestDatabase())
defer test.MockVariableValue(&setting.Database.IterateBufferSize, 1)()
user2 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2})
user3 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 3})
preparePackage(t, user2, "debian-1")
preparePackage(t, user2, "debian-2")
preparePackage(t, user3, "debian-1")
packageFiles := []string{}
require.NoError(t, SearchPackages(db.DefaultContext, &PackageSearchOptions{
OwnerID: user2.ID,
}, func(pfd *packages_model.PackageFileDescriptor) {
assert.NotNil(t, pfd)
packageFiles = append(packageFiles, pfd.File.Name)
}))
assert.Len(t, packageFiles, 2)
assert.Contains(t, packageFiles, "debian-1")
assert.Contains(t, packageFiles, "debian-2")
packageFiles = []string{}
require.NoError(t, SearchPackages(db.DefaultContext, &PackageSearchOptions{
OwnerID: user3.ID,
}, func(pfd *packages_model.PackageFileDescriptor) {
assert.NotNil(t, pfd)
packageFiles = append(packageFiles, pfd.File.Name)
}))
assert.Len(t, packageFiles, 1)
assert.Contains(t, packageFiles, "debian-1")
}

View file

@ -0,0 +1,30 @@
-
id: 1001
owner_id: 33
owner_name: user33
lower_name: repo1001
name: repo1001
default_branch: main
num_watches: 0
num_stars: 0
num_forks: 0
num_issues: 0
num_closed_issues: 0
num_pulls: 0
num_closed_pulls: 0
num_milestones: 0
num_closed_milestones: 0
num_projects: 0
num_closed_projects: 0
is_private: false
is_empty: false
is_archived: false
is_mirror: false
status: 0
is_fork: false
fork_id: 0
is_template: false
template_id: 0
size: 0
is_fsck_enabled: true
close_issues_via_commit_in_any_branch: false

View file

@ -7,6 +7,7 @@ import (
"context"
"code.gitea.io/gitea/models/db"
"code.gitea.io/gitea/models/unit"
user_model "code.gitea.io/gitea/models/user"
"xorm.io/builder"
@ -54,9 +55,9 @@ func GetUserFork(ctx context.Context, repoID, userID int64) (*Repository, error)
return &forkedRepo, nil
}
// GetForks returns all the forks of the repository
func GetForks(ctx context.Context, repo *Repository, listOptions db.ListOptions) ([]*Repository, error) {
sess := db.GetEngine(ctx)
// GetForks returns all the forks of the repository that are visible to the user.
func GetForks(ctx context.Context, repo *Repository, user *user_model.User, listOptions db.ListOptions) ([]*Repository, int64, error) {
sess := db.GetEngine(ctx).Where(AccessibleRepositoryCondition(user, unit.TypeInvalid))
var forks []*Repository
if listOptions.Page == 0 {
@ -66,7 +67,8 @@ func GetForks(ctx context.Context, repo *Repository, listOptions db.ListOptions)
sess = db.SetSessionPagination(sess, &listOptions)
}
return forks, sess.Find(&forks, &Repository{ForkID: repo.ID})
count, err := sess.FindAndCount(&forks, &Repository{ForkID: repo.ID})
return forks, count, err
}
// IncrementRepoForkNum increment repository fork number

View file

@ -641,12 +641,9 @@ func AccessibleRepositoryCondition(user *user_model.User, unitType unit.Type) bu
// 1. Be able to see all non-private repositories that either:
cond = cond.Or(builder.And(
builder.Eq{"`repository`.is_private": false},
// 2. Aren't in an private organisation or limited organisation if we're not logged in
// 2. Aren't in an private organisation/user or limited organisation/user if the doer is not logged in.
builder.NotIn("`repository`.owner_id", builder.Select("id").From("`user`").Where(
builder.And(
builder.Eq{"type": user_model.UserTypeOrganization},
builder.In("visibility", orgVisibilityLimit)),
))))
builder.In("visibility", orgVisibilityLimit)))))
}
if user != nil {

View file

@ -4,13 +4,18 @@
package repo_test
import (
"path/filepath"
"slices"
"strings"
"testing"
"code.gitea.io/gitea/models/db"
repo_model "code.gitea.io/gitea/models/repo"
"code.gitea.io/gitea/models/unittest"
"code.gitea.io/gitea/models/user"
"code.gitea.io/gitea/modules/optional"
"code.gitea.io/gitea/modules/setting"
"code.gitea.io/gitea/modules/structs"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
@ -403,3 +408,43 @@ func TestSearchRepositoryByTopicName(t *testing.T) {
})
}
}
func TestSearchRepositoryIDsByCondition(t *testing.T) {
defer unittest.OverrideFixtures(
unittest.FixturesOptions{
Dir: filepath.Join(setting.AppWorkPath, "models/fixtures/"),
Base: setting.AppWorkPath,
Dirs: []string{"models/repo/TestSearchRepositoryIDsByCondition/"},
},
)()
require.NoError(t, unittest.PrepareTestDatabase())
// Sanity check of the database
limitedUser := unittest.AssertExistsAndLoadBean(t, &user.User{ID: 33, Visibility: structs.VisibleTypeLimited})
unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 1001, OwnerID: limitedUser.ID})
testCases := []struct {
user *user.User
repoIDs []int64
}{
{
user: nil,
repoIDs: []int64{1, 4, 8, 9, 10, 11, 12, 14, 17, 18, 21, 23, 25, 27, 29, 32, 33, 34, 35, 36, 37, 42, 44, 45, 46, 47, 48, 49, 50, 51, 53, 57, 58, 60, 61, 62, 1059},
},
{
user: unittest.AssertExistsAndLoadBean(t, &user.User{ID: 4}),
repoIDs: []int64{1, 3, 4, 8, 9, 10, 11, 12, 14, 17, 18, 21, 23, 25, 27, 29, 32, 33, 34, 35, 36, 37, 38, 40, 42, 44, 45, 46, 47, 48, 49, 50, 51, 53, 57, 58, 60, 61, 62, 1001, 1059},
},
{
user: unittest.AssertExistsAndLoadBean(t, &user.User{ID: 5}),
repoIDs: []int64{1, 4, 8, 9, 10, 11, 12, 14, 17, 18, 21, 23, 25, 27, 29, 32, 33, 34, 35, 36, 37, 38, 40, 42, 44, 45, 46, 47, 48, 49, 50, 51, 53, 57, 58, 60, 61, 62, 1001, 1059},
},
}
for _, testCase := range testCases {
repoIDs, err := repo_model.FindUserCodeAccessibleRepoIDs(db.DefaultContext, testCase.user)
require.NoError(t, err)
slices.Sort(repoIDs)
assert.EqualValues(t, testCase.repoIDs, repoIDs)
}
}

View file

@ -36,6 +36,7 @@ var OrderByMap = map[string]map[string]db.SearchOrderBy{
var OrderByFlatMap = map[string]db.SearchOrderBy{
"newest": OrderByMap["desc"]["created"],
"oldest": OrderByMap["asc"]["created"],
"recentupdate": OrderByMap["desc"]["updated"],
"leastupdate": OrderByMap["asc"]["updated"],
"reversealphabetically": OrderByMap["desc"]["alpha"],
"alphabetically": OrderByMap["asc"]["alpha"],

View file

@ -10,10 +10,8 @@ import (
"net/mail"
"regexp"
"strings"
"time"
"code.gitea.io/gitea/models/db"
"code.gitea.io/gitea/modules/base"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/optional"
"code.gitea.io/gitea/modules/setting"
@ -307,23 +305,6 @@ func updateActivation(ctx context.Context, email *EmailAddress, activate bool) e
return UpdateUserCols(ctx, user, "rands")
}
// VerifyActiveEmailCode verifies active email code when active account
func VerifyActiveEmailCode(ctx context.Context, code, email string) *EmailAddress {
if user := GetVerifyUser(ctx, code); user != nil {
// time limit code
prefix := code[:base.TimeLimitCodeLength]
data := fmt.Sprintf("%d%s%s%s%s", user.ID, email, user.LowerName, user.Passwd, user.Rands)
if base.VerifyTimeLimitCode(time.Now(), data, setting.Service.ActiveCodeLives, prefix) {
emailAddress := &EmailAddress{UID: user.ID, Email: email}
if has, _ := db.GetEngine(ctx).Get(emailAddress); has {
return emailAddress
}
}
}
return nil
}
// SearchEmailOrderBy is used to sort the results from SearchEmails()
type SearchEmailOrderBy string

View file

@ -7,7 +7,9 @@ package user
import (
"context"
"crypto/subtle"
"encoding/hex"
"errors"
"fmt"
"net/mail"
"net/url"
@ -318,15 +320,14 @@ func (u *User) OrganisationLink() string {
return setting.AppSubURL + "/org/" + url.PathEscape(u.Name)
}
// GenerateEmailActivateCode generates an activate code based on user information and given e-mail.
func (u *User) GenerateEmailActivateCode(email string) string {
code := base.CreateTimeLimitCode(
fmt.Sprintf("%d%s%s%s%s", u.ID, email, u.LowerName, u.Passwd, u.Rands),
setting.Service.ActiveCodeLives, time.Now(), nil)
// Add tail hex username
code += hex.EncodeToString([]byte(u.LowerName))
return code
// GenerateEmailAuthorizationCode generates an activation code based for the user for the specified purpose.
// The standard expiry is ActiveCodeLives minutes.
func (u *User) GenerateEmailAuthorizationCode(ctx context.Context, purpose auth.AuthorizationPurpose) (string, error) {
lookup, validator, err := auth.GenerateAuthToken(ctx, u.ID, timeutil.TimeStampNow().Add(int64(setting.Service.ActiveCodeLives)*60), purpose)
if err != nil {
return "", err
}
return lookup + ":" + validator, nil
}
// GetUserFollowers returns range of user's followers.
@ -421,6 +422,10 @@ func (u *User) IsIndividual() bool {
return u.Type == UserTypeIndividual
}
func (u *User) IsUser() bool {
return u.Type == UserTypeIndividual || u.Type == UserTypeBot
}
// IsBot returns whether or not the user is of type bot
func (u *User) IsBot() bool {
return u.Type == UserTypeBot
@ -832,35 +837,50 @@ func countUsers(ctx context.Context, opts *CountUserFilter) int64 {
return count
}
// GetVerifyUser get user by verify code
func GetVerifyUser(ctx context.Context, code string) (user *User) {
if len(code) <= base.TimeLimitCodeLength {
return nil
// 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) {
lookupKey, validator, found := strings.Cut(code, ":")
if !found {
return nil, nil
}
// use tail hex username query user
hexStr := code[base.TimeLimitCodeLength:]
if b, err := hex.DecodeString(hexStr); err == nil {
if user, err = GetUserByName(ctx, string(b)); user != nil {
return user
authToken, err := auth.FindAuthToken(ctx, lookupKey, purpose)
if err != nil {
if errors.Is(err, util.ErrNotExist) {
return nil, nil
}
log.Error("user.getVerifyUser: %v", err)
return nil, err
}
return nil
}
if authToken.IsExpired() {
return nil, auth.DeleteAuthToken(ctx, authToken)
}
// VerifyUserActiveCode verifies active code when active account
func VerifyUserActiveCode(ctx context.Context, code string) (user *User) {
if user = GetVerifyUser(ctx, code); user != nil {
// time limit code
prefix := code[:base.TimeLimitCodeLength]
data := fmt.Sprintf("%d%s%s%s%s", user.ID, user.Email, user.LowerName, user.Passwd, user.Rands)
if base.VerifyTimeLimitCode(time.Now(), data, setting.Service.ActiveCodeLives, prefix) {
return user
rawValidator, err := hex.DecodeString(validator)
if err != nil {
return nil, err
}
if subtle.ConstantTimeCompare([]byte(authToken.HashedValidator), []byte(auth.HashValidator(rawValidator))) == 0 {
return nil, errors.New("validator doesn't match")
}
u, err := GetUserByID(ctx, authToken.UID)
if err != nil {
if IsErrUserNotExist(err) {
return nil, nil
}
return nil, err
}
if delete {
if err := auth.DeleteAuthToken(ctx, authToken); err != nil {
return nil, err
}
}
return nil
return u, nil
}
// ValidateUser check if user is valid to insert / update into database

View file

@ -7,6 +7,7 @@ package user_test
import (
"context"
"crypto/rand"
"encoding/hex"
"fmt"
"strings"
"testing"
@ -21,7 +22,9 @@ import (
"code.gitea.io/gitea/modules/optional"
"code.gitea.io/gitea/modules/setting"
"code.gitea.io/gitea/modules/structs"
"code.gitea.io/gitea/modules/test"
"code.gitea.io/gitea/modules/timeutil"
"code.gitea.io/gitea/modules/util"
"code.gitea.io/gitea/tests"
"github.com/stretchr/testify/assert"
@ -699,3 +702,66 @@ func TestDisabledUserFeatures(t *testing.T) {
assert.True(t, user_model.IsFeatureDisabledWithLoginType(user, f))
}
}
func TestGenerateEmailAuthorizationCode(t *testing.T) {
defer test.MockVariableValue(&setting.Service.ActiveCodeLives, 2)()
require.NoError(t, unittest.PrepareTestDatabase())
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2})
code, err := user.GenerateEmailAuthorizationCode(db.DefaultContext, auth.UserActivation)
require.NoError(t, err)
lookupKey, validator, ok := strings.Cut(code, ":")
assert.True(t, ok)
rawValidator, err := hex.DecodeString(validator)
require.NoError(t, err)
authToken, err := auth.FindAuthToken(db.DefaultContext, lookupKey, auth.UserActivation)
require.NoError(t, err)
assert.False(t, authToken.IsExpired())
assert.EqualValues(t, authToken.HashedValidator, auth.HashValidator(rawValidator))
authToken.Expiry = authToken.Expiry.Add(-int64(setting.Service.ActiveCodeLives) * 60)
assert.True(t, authToken.IsExpired())
}
func TestVerifyUserAuthorizationToken(t *testing.T) {
defer test.MockVariableValue(&setting.Service.ActiveCodeLives, 2)()
require.NoError(t, unittest.PrepareTestDatabase())
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2})
code, err := user.GenerateEmailAuthorizationCode(db.DefaultContext, auth.UserActivation)
require.NoError(t, err)
lookupKey, _, ok := strings.Cut(code, ":")
assert.True(t, ok)
t.Run("Wrong purpose", func(t *testing.T) {
u, err := user_model.VerifyUserAuthorizationToken(db.DefaultContext, code, auth.PasswordReset, false)
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)
require.NoError(t, err)
assert.EqualValues(t, user.ID, u.ID)
authToken, err := auth.FindAuthToken(db.DefaultContext, lookupKey, auth.UserActivation)
require.NoError(t, err)
assert.NotNil(t, authToken)
})
t.Run("Delete", func(t *testing.T) {
u, err := user_model.VerifyUserAuthorizationToken(db.DefaultContext, code, auth.UserActivation, true)
require.NoError(t, err)
assert.EqualValues(t, user.ID, u.ID)
authToken, err := auth.FindAuthToken(db.DefaultContext, lookupKey, auth.UserActivation)
require.ErrorIs(t, err, util.ErrNotExist)
assert.Nil(t, authToken)
})
}

View file

@ -18,8 +18,32 @@ func FullSteps(task *actions_model.ActionTask) []*actions_model.ActionTaskStep {
return fullStepsOfEmptySteps(task)
}
firstStep := task.Steps[0]
// firstStep is the first step that has run or running, not include preStep.
// For example,
// 1. preStep(Success) -> step1(Success) -> step2(Running) -> step3(Waiting) -> postStep(Waiting): firstStep is step1.
// 2. preStep(Success) -> step1(Skipped) -> step2(Success) -> postStep(Success): firstStep is step2.
// 3. preStep(Success) -> step1(Running) -> step2(Waiting) -> postStep(Waiting): firstStep is step1.
// 4. preStep(Success) -> step1(Skipped) -> step2(Skipped) -> postStep(Skipped): firstStep is nil.
// 5. preStep(Success) -> step1(Cancelled) -> step2(Cancelled) -> postStep(Cancelled): firstStep is nil.
var firstStep *actions_model.ActionTaskStep
// lastHasRunStep is the last step that has run.
// For example,
// 1. preStep(Success) -> step1(Success) -> step2(Running) -> step3(Waiting) -> postStep(Waiting): lastHasRunStep is step1.
// 2. preStep(Success) -> step1(Success) -> step2(Success) -> step3(Success) -> postStep(Success): lastHasRunStep is step3.
// 3. preStep(Success) -> step1(Success) -> step2(Failure) -> step3 -> postStep(Waiting): lastHasRunStep is step2.
// So its Stopped is the Started of postStep when there are no more steps to run.
var lastHasRunStep *actions_model.ActionTaskStep
var logIndex int64
for _, step := range task.Steps {
if firstStep == nil && (step.Status.HasRun() || step.Status.IsRunning()) {
firstStep = step
}
if step.Status.HasRun() {
lastHasRunStep = step
}
logIndex += step.LogLength
}
preStep := &actions_model.ActionTaskStep{
Name: preStepName,
@ -28,32 +52,17 @@ func FullSteps(task *actions_model.ActionTask) []*actions_model.ActionTaskStep {
Status: actions_model.StatusRunning,
}
if firstStep.Status.HasRun() || firstStep.Status.IsRunning() {
// No step has run or is running, so preStep is equal to the task
if firstStep == nil {
preStep.Stopped = task.Stopped
preStep.Status = task.Status
} else {
preStep.LogLength = firstStep.LogIndex
preStep.Stopped = firstStep.Started
preStep.Status = actions_model.StatusSuccess
} else if task.Status.IsDone() {
preStep.Stopped = task.Stopped
preStep.Status = actions_model.StatusFailure
if task.Status.IsSkipped() {
preStep.Status = actions_model.StatusSkipped
}
}
logIndex += preStep.LogLength
// lastHasRunStep is the last step that has run.
// For example,
// 1. preStep(Success) -> step1(Success) -> step2(Running) -> step3(Waiting) -> postStep(Waiting): lastHasRunStep is step1.
// 2. preStep(Success) -> step1(Success) -> step2(Success) -> step3(Success) -> postStep(Success): lastHasRunStep is step3.
// 3. preStep(Success) -> step1(Success) -> step2(Failure) -> step3 -> postStep(Waiting): lastHasRunStep is step2.
// So its Stopped is the Started of postStep when there are no more steps to run.
var lastHasRunStep *actions_model.ActionTaskStep
for _, step := range task.Steps {
if step.Status.HasRun() {
lastHasRunStep = step
}
logIndex += step.LogLength
}
if lastHasRunStep == nil {
lastHasRunStep = preStep
}

View file

@ -137,6 +137,25 @@ func TestFullSteps(t *testing.T) {
{Name: postStepName, Status: actions_model.StatusSkipped, LogIndex: 0, LogLength: 0, Started: 0, Stopped: 0},
},
},
{
name: "first step is skipped",
task: &actions_model.ActionTask{
Steps: []*actions_model.ActionTaskStep{
{Status: actions_model.StatusSkipped, LogIndex: 0, LogLength: 0, Started: 0, Stopped: 0},
{Status: actions_model.StatusSuccess, LogIndex: 10, LogLength: 80, Started: 10010, Stopped: 10090},
},
Status: actions_model.StatusSuccess,
Started: 10000,
Stopped: 10100,
LogLength: 100,
},
want: []*actions_model.ActionTaskStep{
{Name: preStepName, Status: actions_model.StatusSuccess, LogIndex: 0, LogLength: 10, Started: 10000, Stopped: 10010},
{Status: actions_model.StatusSkipped, LogIndex: 0, LogLength: 0, Started: 0, Stopped: 0},
{Status: actions_model.StatusSuccess, LogIndex: 10, LogLength: 80, Started: 10010, Stopped: 10090},
{Name: postStepName, Status: actions_model.StatusSuccess, LogIndex: 90, LogLength: 10, Started: 10090, Stopped: 10100},
},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {

View file

@ -4,26 +4,20 @@
package base
import (
"crypto/hmac"
"crypto/sha1"
"crypto/sha256"
"crypto/subtle"
"encoding/base64"
"encoding/hex"
"errors"
"fmt"
"hash"
"os"
"path/filepath"
"runtime"
"strconv"
"strings"
"time"
"unicode/utf8"
"code.gitea.io/gitea/modules/git"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/setting"
"github.com/dustin/go-humanize"
)
@ -54,66 +48,6 @@ func BasicAuthDecode(encoded string) (string, string, error) {
return "", "", errors.New("invalid basic authentication")
}
// VerifyTimeLimitCode verify time limit code
func VerifyTimeLimitCode(now time.Time, data string, minutes int, code string) bool {
if len(code) <= 18 {
return false
}
startTimeStr := code[:12]
aliveTimeStr := code[12:18]
aliveTime, _ := strconv.Atoi(aliveTimeStr) // no need to check err, if anything wrong, the following code check will fail soon
// check code
retCode := CreateTimeLimitCode(data, aliveTime, startTimeStr, nil)
if subtle.ConstantTimeCompare([]byte(retCode), []byte(code)) != 1 {
retCode = CreateTimeLimitCode(data, aliveTime, startTimeStr, sha1.New()) // TODO: this is only for the support of legacy codes, remove this in/after 1.23
if subtle.ConstantTimeCompare([]byte(retCode), []byte(code)) != 1 {
return false
}
}
// check time is expired or not: startTime <= now && now < startTime + minutes
startTime, _ := time.ParseInLocation("200601021504", startTimeStr, time.Local)
return (startTime.Before(now) || startTime.Equal(now)) && now.Before(startTime.Add(time.Minute*time.Duration(minutes)))
}
// TimeLimitCodeLength default value for time limit code
const TimeLimitCodeLength = 12 + 6 + 40
// CreateTimeLimitCode create a time-limited code.
// Format: 12 length date time string + 6 minutes string (not used) + 40 hash string, some other code depends on this fixed length
// If h is nil, then use the default hmac hash.
func CreateTimeLimitCode[T time.Time | string](data string, minutes int, startTimeGeneric T, h hash.Hash) string {
const format = "200601021504"
var start time.Time
var startTimeAny any = startTimeGeneric
if t, ok := startTimeAny.(time.Time); ok {
start = t
} else {
var err error
start, err = time.ParseInLocation(format, startTimeAny.(string), time.Local)
if err != nil {
return "" // return an invalid code because the "parse" failed
}
}
startStr := start.Format(format)
end := start.Add(time.Minute * time.Duration(minutes))
if h == nil {
h = hmac.New(sha1.New, setting.GetGeneralTokenSigningSecret())
}
_, _ = fmt.Fprintf(h, "%s%s%s%s%d", data, hex.EncodeToString(setting.GetGeneralTokenSigningSecret()), startStr, end.Format(format), minutes)
encoded := hex.EncodeToString(h.Sum(nil))
code := fmt.Sprintf("%s%06d%s", startStr, minutes, encoded)
if len(code) != TimeLimitCodeLength {
panic("there is a hard requirement for the length of time-limited code") // it shouldn't happen
}
return code
}
// FileSize calculates the file size and generate user-friendly string.
func FileSize(s int64) string {
return humanize.IBytes(uint64(s))

View file

@ -4,13 +4,7 @@
package base
import (
"crypto/sha1"
"fmt"
"testing"
"time"
"code.gitea.io/gitea/modules/setting"
"code.gitea.io/gitea/modules/test"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
@ -46,57 +40,6 @@ func TestBasicAuthDecode(t *testing.T) {
require.Error(t, err)
}
func TestVerifyTimeLimitCode(t *testing.T) {
defer test.MockVariableValue(&setting.InstallLock, true)()
initGeneralSecret := func(secret string) {
setting.InstallLock = true
setting.CfgProvider, _ = setting.NewConfigProviderFromData(fmt.Sprintf(`
[oauth2]
JWT_SECRET = %s
`, secret))
setting.LoadCommonSettings()
}
initGeneralSecret("KZb_QLUd4fYVyxetjxC4eZkrBgWM2SndOOWDNtgUUko")
now := time.Now()
t.Run("TestGenericParameter", func(t *testing.T) {
time2000 := time.Date(2000, 1, 2, 3, 4, 5, 0, time.Local)
assert.Equal(t, "2000010203040000026fa5221b2731b7cf80b1b506f5e39e38c115fee5", CreateTimeLimitCode("test-sha1", 2, time2000, sha1.New()))
assert.Equal(t, "2000010203040000026fa5221b2731b7cf80b1b506f5e39e38c115fee5", CreateTimeLimitCode("test-sha1", 2, "200001020304", sha1.New()))
assert.Equal(t, "2000010203040000024842227a2f87041ff82025199c0187410a9297bf", CreateTimeLimitCode("test-hmac", 2, time2000, nil))
assert.Equal(t, "2000010203040000024842227a2f87041ff82025199c0187410a9297bf", CreateTimeLimitCode("test-hmac", 2, "200001020304", nil))
})
t.Run("TestInvalidCode", func(t *testing.T) {
assert.False(t, VerifyTimeLimitCode(now, "data", 2, ""))
assert.False(t, VerifyTimeLimitCode(now, "data", 2, "invalid code"))
})
t.Run("TestCreateAndVerify", func(t *testing.T) {
code := CreateTimeLimitCode("data", 2, now, nil)
assert.False(t, VerifyTimeLimitCode(now.Add(-time.Minute), "data", 2, code)) // not started yet
assert.True(t, VerifyTimeLimitCode(now, "data", 2, code))
assert.True(t, VerifyTimeLimitCode(now.Add(time.Minute), "data", 2, code))
assert.False(t, VerifyTimeLimitCode(now.Add(time.Minute), "DATA", 2, code)) // invalid data
assert.False(t, VerifyTimeLimitCode(now.Add(2*time.Minute), "data", 2, code)) // expired
})
t.Run("TestDifferentSecret", func(t *testing.T) {
// use another secret to ensure the code is invalid for different secret
verifyDataCode := func(c string) bool {
return VerifyTimeLimitCode(now, "data", 2, c)
}
code1 := CreateTimeLimitCode("data", 2, now, sha1.New())
code2 := CreateTimeLimitCode("data", 2, now, nil)
assert.True(t, verifyDataCode(code1))
assert.True(t, verifyDataCode(code2))
initGeneralSecret("000_QLUd4fYVyxetjxC4eZkrBgWM2SndOOWDNtgUUko")
assert.False(t, verifyDataCode(code1))
assert.False(t, verifyDataCode(code2))
})
}
func TestFileSize(t *testing.T) {
var size int64 = 512
assert.Equal(t, "512 B", FileSize(size))

View file

@ -272,6 +272,17 @@ func CutDiffAroundLine(originalDiff io.Reader, line int64, old bool, numbersOfLi
// GetAffectedFiles returns the affected files between two commits
func GetAffectedFiles(repo *Repository, oldCommitID, newCommitID string, env []string) ([]string, error) {
objectFormat, err := repo.GetObjectFormat()
if err != nil {
return nil, err
}
// If the oldCommitID is empty, then we must assume its a new branch, so diff
// against the empty tree. So all changes of this new branch are included.
if oldCommitID == objectFormat.EmptyObjectID().String() {
oldCommitID = objectFormat.EmptyTree().String()
}
stdoutReader, stdoutWriter, err := os.Pipe()
if err != nil {
log.Error("Unable to create os.Pipe for %s", repo.Path)

View file

@ -97,12 +97,12 @@ func SetExecutablePath(path string) error {
}
if gitVersion.LessThan(versionRequired) {
moreHint := "get git: https://git-scm.com/download/"
moreHint := "get git: https://git-scm.com/downloads"
if runtime.GOOS == "linux" {
// there are a lot of CentOS/RHEL users using old git, so we add a special hint for them
if _, err = os.Stat("/etc/redhat-release"); err == nil {
// ius.io is the recommended official(git-scm.com) method to install git
moreHint = "get git: https://git-scm.com/download/linux and https://ius.io"
moreHint = "get git: https://git-scm.com/downloads/linux and https://ius.io"
}
}
return fmt.Errorf("installed git version %q is not supported, Gitea requires git version >= %q, %s", gitVersion.Original(), RequiredVersion, moreHint)

View file

@ -17,6 +17,7 @@ import (
"strings"
"time"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/setting"
)
@ -30,7 +31,7 @@ type GrepResult struct {
type GrepOptions struct {
RefName string
MaxResultLimit int
MatchesPerFile int
MatchesPerFile int // >= git 2.38
ContextLineNumber int
IsFuzzy bool
PathSpec []setting.Glob
@ -77,7 +78,14 @@ func GrepSearch(ctx context.Context, repo *Repository, search string, opts GrepO
"-I", "--null", "--break", "--heading", "--column",
"--fixed-strings", "--line-number", "--ignore-case", "--full-name")
cmd.AddOptionValues("--context", fmt.Sprint(opts.ContextLineNumber))
cmd.AddOptionValues("--max-count", fmt.Sprint(opts.MatchesPerFile))
// --max-count requires at least git 2.38
if CheckGitVersionAtLeast("2.38.0") == nil {
cmd.AddOptionValues("--max-count", fmt.Sprint(opts.MatchesPerFile))
} else {
log.Warn("git-grep: --max-count requires at least git 2.38")
}
words := []string{search}
if opts.IsFuzzy {
words = strings.Fields(search)

View file

@ -96,7 +96,7 @@ func Code(fileName, language, code string) (output template.HTML, lexerName stri
}
if lexer == nil {
lexer = lexers.Match(fileName)
lexer = lexers.Match(strings.ToLower(fileName))
if lexer == nil {
lexer = lexers.Fallback
}
@ -165,7 +165,7 @@ func File(fileName, language string, code []byte) ([]template.HTML, string, erro
lexer = lexers.Get(guessLanguage)
if lexer == nil {
lexer = lexers.Match(fileName)
lexer = lexers.Match(strings.ToLower(fileName))
if lexer == nil {
lexer = lexers.Fallback
}

View file

@ -109,6 +109,12 @@ c=2
),
lexerName: "Python",
},
{
name: "DOS.PAS",
code: "",
want: lines(""),
lexerName: "ObjectPascal",
},
}
for _, tt := range tests {

View file

@ -76,7 +76,8 @@ func HandleGenericETagTimeCache(req *http.Request, w http.ResponseWriter, etag s
w.Header().Set("Etag", etag)
}
if lastModified != nil && !lastModified.IsZero() {
w.Header().Set("Last-Modified", lastModified.Format(http.TimeFormat))
// http.TimeFormat required a UTC time, refer to https://pkg.go.dev/net/http#TimeFormat
w.Header().Set("Last-Modified", lastModified.UTC().Format(http.TimeFormat))
}
if len(etag) > 0 {

View file

@ -79,6 +79,7 @@ func ServeSetHeaders(w http.ResponseWriter, opts *ServeHeaderOptions) {
httpcache.SetCacheControlInHeader(header, duration)
if !opts.LastModified.IsZero() {
// http.TimeFormat required a UTC time, refer to https://pkg.go.dev/net/http#TimeFormat
header.Set("Last-Modified", opts.LastModified.UTC().Format(http.TimeFormat))
}
}

View file

@ -20,6 +20,7 @@ import (
indexer_internal "code.gitea.io/gitea/modules/indexer/internal"
inner_elasticsearch "code.gitea.io/gitea/modules/indexer/internal/elasticsearch"
"code.gitea.io/gitea/modules/json"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/setting"
"code.gitea.io/gitea/modules/timeutil"
"code.gitea.io/gitea/modules/typesniffer"
@ -197,8 +198,33 @@ func (b *Indexer) Index(ctx context.Context, repo *repo_model.Repository, sha st
return nil
}
// Delete deletes indexes by ids
// Delete entries by repoId
func (b *Indexer) Delete(ctx context.Context, repoID int64) error {
if err := b.doDelete(ctx, repoID); err != nil {
// Maybe there is a conflict during the delete operation, so we should retry after a refresh
log.Warn("Deletion of entries of repo %v within index %v was erroneus. Trying to refresh index before trying again", repoID, b.inner.VersionedIndexName(), err)
if err := b.refreshIndex(ctx); err != nil {
return err
}
if err := b.doDelete(ctx, repoID); err != nil {
log.Error("Could not delete entries of repo %v within index %v", repoID, b.inner.VersionedIndexName())
return err
}
}
return nil
}
func (b *Indexer) refreshIndex(ctx context.Context) error {
if _, err := b.inner.Client.Refresh(b.inner.VersionedIndexName()).Do(ctx); err != nil {
log.Error("Error while trying to refresh index %v", b.inner.VersionedIndexName(), err)
return err
}
return nil
}
// Delete entries by repoId
func (b *Indexer) doDelete(ctx context.Context, repoID int64) error {
_, err := b.inner.Client.DeleteByQuery(b.inner.VersionedIndexName()).
Query(elastic.NewTermsQuery("repo_id", repoID)).
Do(ctx)

View file

@ -38,7 +38,7 @@ func camoHandleLink(link string) string {
if setting.Camo.Enabled {
lnkURL, err := url.Parse(link)
if err == nil && lnkURL.IsAbs() && !strings.HasPrefix(link, setting.AppURL) &&
(setting.Camo.Allways || lnkURL.Scheme != "https") {
(setting.Camo.Always || lnkURL.Scheme != "https") {
return CamoEncode(link)
}
}

View file

@ -28,7 +28,7 @@ func TestCamoHandleLink(t *testing.T) {
"https://image.proxy/eivin43gJwGVIjR9MiYYtFIk0mw/aHR0cDovL3Rlc3RpbWFnZXMub3JnL2ltZy5qcGc",
camoHandleLink("http://testimages.org/img.jpg"))
setting.Camo.Allways = true
setting.Camo.Always = true
assert.Equal(t,
"https://gitea.com/img.jpg",
camoHandleLink("https://gitea.com/img.jpg"))

View file

@ -94,10 +94,10 @@ func createDefaultPolicy() *bluemonday.Policy {
}
// Allow classes for anchors
policy.AllowAttrs("class").Matching(regexp.MustCompile(`ref-issue( ref-external-issue)?`)).OnElements("a")
policy.AllowAttrs("class").Matching(regexp.MustCompile(`^ref-issue( ref-external-issue)?$`)).OnElements("a")
// Allow classes for task lists
policy.AllowAttrs("class").Matching(regexp.MustCompile(`task-list-item`)).OnElements("li")
policy.AllowAttrs("class").Matching(regexp.MustCompile(`^task-list-item$`)).OnElements("li")
// Allow classes for org mode list item status.
policy.AllowAttrs("class").Matching(regexp.MustCompile(`^(unchecked|checked|indeterminate)$`)).OnElements("li")
@ -106,7 +106,7 @@ func createDefaultPolicy() *bluemonday.Policy {
policy.AllowAttrs("class").Matching(regexp.MustCompile(`^icon(\s+[\p{L}\p{N}_-]+)+$`)).OnElements("i")
// Allow classes for emojis
policy.AllowAttrs("class").Matching(regexp.MustCompile(`emoji`)).OnElements("img")
policy.AllowAttrs("class").Matching(regexp.MustCompile(`^emoji$`)).OnElements("img")
// Allow icons, emojis, chroma syntax and keyword markup on span
policy.AllowAttrs("class").Matching(regexp.MustCompile(`^((icon(\s+[\p{L}\p{N}_-]+)+)|(emoji)|(language-math display)|(language-math inline))$|^([a-z][a-z0-9]{0,2})$|^` + keywordClass + `$`)).OnElements("span")
@ -122,13 +122,13 @@ func createDefaultPolicy() *bluemonday.Policy {
policy.AllowAttrs("class").Matching(regexp.MustCompile("^header$")).OnElements("div")
policy.AllowAttrs("data-line-number").Matching(regexp.MustCompile("^[0-9]+$")).OnElements("span")
policy.AllowAttrs("class").Matching(regexp.MustCompile("^text small grey$")).OnElements("span")
policy.AllowAttrs("class").Matching(regexp.MustCompile("^file-preview*")).OnElements("table")
policy.AllowAttrs("class").Matching(regexp.MustCompile("^file-preview$")).OnElements("table")
policy.AllowAttrs("class").Matching(regexp.MustCompile("^lines-escape$")).OnElements("td")
policy.AllowAttrs("class").Matching(regexp.MustCompile("^toggle-escape-button btn interact-bg$")).OnElements("button")
policy.AllowAttrs("title").OnElements("button")
policy.AllowAttrs("class").Matching(regexp.MustCompile("^ambiguous-code-point$")).OnElements("span")
policy.AllowAttrs("data-tooltip-content").OnElements("span")
policy.AllowAttrs("class").Matching(regexp.MustCompile("muted|(text black)")).OnElements("a")
policy.AllowAttrs("class").Matching(regexp.MustCompile("^muted|(text black)$")).OnElements("a")
policy.AllowAttrs("class").Matching(regexp.MustCompile("^ui warning message tw-text-left$")).OnElements("div")
// Allow generally safe attributes

View file

@ -39,8 +39,8 @@ const (
var (
reName = regexp.MustCompile(`^[a-zA-Z0-9@._+-]+$`)
reVer = regexp.MustCompile(`^[a-zA-Z0-9:_.+]+-+[0-9]+$`)
reOptDep = regexp.MustCompile(`^[a-zA-Z0-9@._+-]+([<>]?=?[a-zA-Z0-9@._+-]+)?(:.*)?$`)
rePkgVer = regexp.MustCompile(`^[a-zA-Z0-9@._+-]+([<>]?=?[a-zA-Z0-9@._+-]+)?$`)
reOptDep = regexp.MustCompile(`^[a-zA-Z0-9@._+-]+([<>]?=?([0-9]+:)?[a-zA-Z0-9@._+-]+)?(:.*)?$`)
rePkgVer = regexp.MustCompile(`^[a-zA-Z0-9@._+-]+([<>]?=?([0-9]+:)?[a-zA-Z0-9@._+-]+)?$`)
magicZSTD = []byte{0x28, 0xB5, 0x2F, 0xFD}
magicXZ = []byte{0xFD, 0x37, 0x7A, 0x58, 0x5A}
@ -71,7 +71,7 @@ type VersionMetadata struct {
Conflicts []string `json:"conflicts,omitempty"`
Replaces []string `json:"replaces,omitempty"`
Backup []string `json:"backup,omitempty"`
Xdata []string `json:"xdata,omitempty"`
XData []string `json:"xdata,omitempty"`
}
// FileMetadata Metadata related to specific package file.
@ -125,7 +125,7 @@ func ParsePackage(r *packages.HashedBuffer) (*Package, error) {
defer tarball.Close()
var pkg *Package
var mtree bool
var mTree bool
for {
f, err := tarball.Read()
@ -135,24 +135,24 @@ func ParsePackage(r *packages.HashedBuffer) (*Package, error) {
if err != nil {
return nil, err
}
defer f.Close()
switch f.Name() {
case ".PKGINFO":
pkg, err = ParsePackageInfo(tarballType, f)
if err != nil {
_ = f.Close()
return nil, err
}
case ".MTREE":
mtree = true
mTree = true
}
_ = f.Close()
}
if pkg == nil {
return nil, util.NewInvalidArgumentErrorf(".PKGINFO file not found")
}
if !mtree {
if !mTree {
return nil, util.NewInvalidArgumentErrorf(".MTREE file not found")
}
@ -220,7 +220,7 @@ func ParsePackageInfo(compressType string, r io.Reader) (*Package, error) {
case "replaces":
p.VersionMetadata.Replaces = append(p.VersionMetadata.Replaces, value)
case "xdata":
p.VersionMetadata.Xdata = append(p.VersionMetadata.Xdata, value)
p.VersionMetadata.XData = append(p.VersionMetadata.XData, value)
case "builddate":
bd, err := strconv.ParseInt(value, 10, 64)
if err != nil {
@ -260,48 +260,43 @@ func ValidatePackageSpec(p *Package) error {
return util.NewInvalidArgumentErrorf("invalid project URL")
}
}
for _, cd := range p.VersionMetadata.CheckDepends {
if !rePkgVer.MatchString(cd) {
return util.NewInvalidArgumentErrorf("invalid check dependency: %s", cd)
for _, checkDepend := range p.VersionMetadata.CheckDepends {
if !rePkgVer.MatchString(checkDepend) {
return util.NewInvalidArgumentErrorf("invalid check dependency: %s", checkDepend)
}
}
for _, d := range p.VersionMetadata.Depends {
if !rePkgVer.MatchString(d) {
return util.NewInvalidArgumentErrorf("invalid dependency: %s", d)
for _, depend := range p.VersionMetadata.Depends {
if !rePkgVer.MatchString(depend) {
return util.NewInvalidArgumentErrorf("invalid dependency: %s", depend)
}
}
for _, md := range p.VersionMetadata.MakeDepends {
if !rePkgVer.MatchString(md) {
return util.NewInvalidArgumentErrorf("invalid make dependency: %s", md)
for _, makeDepend := range p.VersionMetadata.MakeDepends {
if !rePkgVer.MatchString(makeDepend) {
return util.NewInvalidArgumentErrorf("invalid make dependency: %s", makeDepend)
}
}
for _, p := range p.VersionMetadata.Provides {
if !rePkgVer.MatchString(p) {
return util.NewInvalidArgumentErrorf("invalid provides: %s", p)
for _, provide := range p.VersionMetadata.Provides {
if !rePkgVer.MatchString(provide) {
return util.NewInvalidArgumentErrorf("invalid provides: %s", provide)
}
}
for _, p := range p.VersionMetadata.Conflicts {
if !rePkgVer.MatchString(p) {
return util.NewInvalidArgumentErrorf("invalid conflicts: %s", p)
for _, conflict := range p.VersionMetadata.Conflicts {
if !rePkgVer.MatchString(conflict) {
return util.NewInvalidArgumentErrorf("invalid conflicts: %s", conflict)
}
}
for _, p := range p.VersionMetadata.Replaces {
if !rePkgVer.MatchString(p) {
return util.NewInvalidArgumentErrorf("invalid replaces: %s", p)
for _, replace := range p.VersionMetadata.Replaces {
if !rePkgVer.MatchString(replace) {
return util.NewInvalidArgumentErrorf("invalid replaces: %s", replace)
}
}
for _, p := range p.VersionMetadata.Replaces {
if !rePkgVer.MatchString(p) {
return util.NewInvalidArgumentErrorf("invalid xdata: %s", p)
for _, optDepend := range p.VersionMetadata.OptDepends {
if !reOptDep.MatchString(optDepend) {
return util.NewInvalidArgumentErrorf("invalid optional dependency: %s", optDepend)
}
}
for _, od := range p.VersionMetadata.OptDepends {
if !reOptDep.MatchString(od) {
return util.NewInvalidArgumentErrorf("invalid optional dependency: %s", od)
}
}
for _, bf := range p.VersionMetadata.Backup {
if strings.HasPrefix(bf, "/") {
for _, b := range p.VersionMetadata.Backup {
if strings.HasPrefix(b, "/") {
return util.NewInvalidArgumentErrorf("backup file contains leading forward slash")
}
}

View file

@ -96,7 +96,7 @@ func parsePackage(r io.Reader) (*Package, error) {
Target *string `json:"target"`
Kind string `json:"kind"`
Registry *string `json:"registry"`
ExplicitNameInToml string `json:"explicit_name_in_toml"`
ExplicitNameInToml *string `json:"explicit_name_in_toml"`
} `json:"deps"`
Features map[string][]string `json:"features"`
Authors []string `json:"authors"`
@ -136,8 +136,16 @@ func parsePackage(r io.Reader) (*Package, error) {
dependencies := make([]*Dependency, 0, len(meta.Deps))
for _, dep := range meta.Deps {
name := dep.Name
packageName := dep.ExplicitNameInToml
// If the explicit_name_in_toml field is set, the package is renamed and
// should be set accordingly.
if dep.ExplicitNameInToml != nil {
name = *dep.ExplicitNameInToml
packageName = &dep.Name
}
dependencies = append(dependencies, &Dependency{
Name: dep.Name,
Name: name,
Req: dep.VersionReq,
Features: dep.Features,
Optional: dep.Optional,
@ -145,6 +153,7 @@ func parsePackage(r io.Reader) (*Package, error) {
Target: dep.Target,
Kind: dep.Kind,
Registry: dep.Registry,
Package: packageName,
})
}

View file

@ -22,7 +22,7 @@ const (
)
func TestParsePackage(t *testing.T) {
createPackage := func(name, version string) io.Reader {
createPackage := func(name, version, dependency string) io.Reader {
metadata := `{
"name":"` + name + `",
"vers":"` + version + `",
@ -32,7 +32,7 @@ func TestParsePackage(t *testing.T) {
{
"name":"dep",
"version_req":"1.0"
}
}` + dependency + `
],
"homepage":"` + homepage + `",
"license":"` + license + `"
@ -48,7 +48,7 @@ func TestParsePackage(t *testing.T) {
t.Run("InvalidName", func(t *testing.T) {
for _, name := range []string{"", "0test", "-test", "_test", strings.Repeat("a", 65)} {
data := createPackage(name, "1.0.0")
data := createPackage(name, "1.0.0", "")
cp, err := ParsePackage(data)
assert.Nil(t, cp)
@ -58,7 +58,7 @@ func TestParsePackage(t *testing.T) {
t.Run("InvalidVersion", func(t *testing.T) {
for _, version := range []string{"", "1.", "-1.0", "1.0.0/1"} {
data := createPackage("test", version)
data := createPackage("test", version, "")
cp, err := ParsePackage(data)
assert.Nil(t, cp)
@ -67,7 +67,7 @@ func TestParsePackage(t *testing.T) {
})
t.Run("Valid", func(t *testing.T) {
data := createPackage("test", "1.0.0")
data := createPackage("test", "1.0.0", "")
cp, err := ParsePackage(data)
assert.NotNil(t, cp)
@ -84,4 +84,25 @@ func TestParsePackage(t *testing.T) {
content, _ := io.ReadAll(cp.Content)
assert.Equal(t, "test", string(content))
})
t.Run("Renamed dependency", func(t *testing.T) {
data := createPackage("test", "1.0.0", `, {"name":"v4l2-sys", "version":"0.3.0", "explicit_name_in_toml":"v4l2-sys-mit"}`)
cp, err := ParsePackage(data)
assert.NotNil(t, cp)
require.NoError(t, err)
assert.Equal(t, "test", cp.Name)
assert.Equal(t, "1.0.0", cp.Version)
assert.Equal(t, description, cp.Metadata.Description)
assert.Equal(t, []string{author}, cp.Metadata.Authors)
assert.Len(t, cp.Metadata.Dependencies, 2)
assert.Equal(t, "dep", cp.Metadata.Dependencies[0].Name)
assert.EqualValues(t, "v4l2-sys-mit", cp.Metadata.Dependencies[1].Name)
assert.EqualValues(t, "v4l2-sys", *cp.Metadata.Dependencies[1].Package)
assert.Equal(t, homepage, cp.Metadata.ProjectURL)
assert.Equal(t, license, cp.Metadata.License)
content, _ := io.ReadAll(cp.Content)
assert.Equal(t, "test", string(content))
})
}

View file

@ -48,6 +48,7 @@ type Metadata struct {
Homepage string `json:"homepage,omitempty"`
License Licenses `json:"license,omitempty"`
Authors []Author `json:"authors,omitempty"`
Bin []string `json:"bin,omitempty"`
Autoload map[string]any `json:"autoload,omitempty"`
AutoloadDev map[string]any `json:"autoload-dev,omitempty"`
Extra map[string]any `json:"extra,omitempty"`

View file

@ -3,18 +3,28 @@
package setting
import "code.gitea.io/gitea/modules/log"
import (
"strconv"
"code.gitea.io/gitea/modules/log"
)
var Camo = struct {
Enabled bool
ServerURL string `ini:"SERVER_URL"`
HMACKey string `ini:"HMAC_KEY"`
Allways bool
Always bool
}{}
func loadCamoFrom(rootCfg ConfigProvider) {
mustMapSetting(rootCfg, "camo", &Camo)
if Camo.Enabled {
oldValue := rootCfg.Section("camo").Key("ALLWAYS").MustString("")
if oldValue != "" {
log.Warn("camo.ALLWAYS is deprecated, use camo.ALWAYS instead")
Camo.Always, _ = strconv.ParseBool(oldValue)
}
if Camo.ServerURL == "" || Camo.HMACKey == "" {
log.Fatal(`Camo settings require "SERVER_URL" and HMAC_KEY`)
}

View file

@ -88,6 +88,7 @@ var UI = struct {
Reactions: []string{`+1`, `-1`, `laugh`, `hooray`, `confused`, `heart`, `rocket`, `eyes`},
CustomEmojis: []string{`git`, `gitea`, `codeberg`, `gitlab`, `github`, `gogs`, `forgejo`},
CustomEmojisMap: map[string]string{"git": ":git:", "gitea": ":gitea:", "codeberg": ":codeberg:", "gitlab": ":gitlab:", "github": ":github:", "gogs": ":gogs:", "forgejo": ":forgejo:"},
ExploreDefaultSort: "recentupdate",
PreferredTimestampTense: "mixed",
AmbiguousUnicodeDetection: true,

View file

@ -362,6 +362,7 @@ type IssuePayload struct {
Repository *Repository `json:"repository"`
Sender *User `json:"sender"`
CommitID string `json:"commit_id"`
Label *Label `json:"label,omitempty"`
}
// JSONPayload encodes the IssuePayload to JSON, with an indentation of two spaces.
@ -399,6 +400,7 @@ type PullRequestPayload struct {
Sender *User `json:"sender"`
CommitID string `json:"commit_id"`
Review *ReviewPayload `json:"review"`
Label *Label `json:"label,omitempty"`
}
// JSONPayload FIXME

View file

@ -34,7 +34,7 @@ func AvatarHTML(src string, size int, class, name string) template.HTML {
name = "avatar"
}
return template.HTML(`<img class="` + class + `" src="` + src + `" title="` + html.EscapeString(name) + `" width="` + sizeStr + `" height="` + sizeStr + `"/>`)
return template.HTML(`<img loading="lazy" class="` + class + `" src="` + src + `" title="` + html.EscapeString(name) + `" width="` + sizeStr + `" height="` + sizeStr + `"/>`)
}
// Avatar renders user avatars. args: user, size (int), class (string)

View file

@ -131,6 +131,8 @@ var ignoredErrorMessage = []string{
`:SSHLog() [E] ssh: Not allowed to push to protected branch protected. HookPreReceive(last) failed: internal API error response, status=403`,
// TestGit/HTTP/BranchProtectMerge
`:SSHLog() [E] ssh: branch protected is protected from force push. HookPreReceive(last) failed: internal API error response, status=403`,
// TestGit/HTTP/BranchProtect
`:SSHLog() [E] ssh: branch before-create-2 is protected from changing file protected-file-data-`,
// TestGit/HTTP/MergeFork/CreatePRAndMerge
`:DeleteBranchPost() [E] DeleteBranch: GetBranch: branch does not exist [repo_id: 1099 name: user2:master]`, // sqlite
"s/web/repo/branch.go:108:DeleteBranchPost() [E] DeleteBranch: GetBranch: branch does not exist [repo_id: 10000 name: user2:master]", // mysql

View file

@ -225,6 +225,15 @@ func Iif[T any](condition bool, trueVal, falseVal T) T {
return falseVal
}
// IfZero returns "def" if "v" is a zero value, otherwise "v"
func IfZero[T comparable](v, def T) T {
var zero T
if v == zero {
return def
}
return v
}
func ReserveLineBreakForTextarea(input string) string {
// Since the content is from a form which is a textarea, the line endings are \r\n.
// It's a standard behavior of HTML.

View file

@ -142,6 +142,11 @@ filter.not_fork = ليست اشتقاقات
filter.not_archived = ليس مؤرشف
filter.public = علني
filter.private = خاص
new_repo.title = مستودع جديد
new_migrate.title = انتقال جديد
new_org.title = منظمة جديدة
new_repo.link = مستودع جديد
new_migrate.link = انتقال جديد
[install]
db_name = اسم قاعدة البيانات
@ -1982,4 +1987,10 @@ match_tooltip = قم بتضمين النتائج التي تطابق مصطلح
repo_kind = بحث في المستودعات...
user_kind = بحث عن المستخدمين...
team_kind = بحث عن الفرق ...
code_kind = بحث في الكود...
code_kind = بحث في الكود...
project_kind = البحث ضمن المشاريع...
branch_kind = البحث ضمن الفروع...
no_results = لا توجد نتائج مطابقة.
issue_kind = البحث ضمن الأعطال...
pull_kind = البحث ضمن طلبات السحب...
keyword_search_unavailable = البحث من خلال الكلمات المفتاحية ليس متوفر حالياً. رجاءاً تواصل مع مشرف الموقع.

View file

@ -168,6 +168,7 @@ versions.view_all = Вижте всички
dependencies = Зависимости
published_by_in = Публикуван %[1]s от <a href="%[2]s">%[3]s</a> в <a href="%[4]s"><strong>%[5]s</strong></a>
published_by = Публикуван %[1]s от <a href="%[2]s">%[3]s</a>
generic.download = Изтеглете пакета от командния ред:
[tool]
hours = %d часа
@ -632,9 +633,9 @@ editor.file_delete_success = Файлът „%s“ е изтрит.
projects.type.uncategorized = Некатегоризирано
projects.column.set_default = Задаване по подразбиране
projects.column.assigned_to = Възложено на
issues.reopen_comment_issue = Коментиране и отваряне
issues.reopen_comment_issue = Отваряне наново с коментар
issues.reopen_issue = Отваряне наново
issues.close_comment_issue = Коментиране и Затваряне
issues.close_comment_issue = Затваряне с коментар
milestones.filter_sort.latest_due_date = Най-далечен краен срок
diff.view_file = Преглед на файла
release.deletion_success = Изданието е изтрито.
@ -940,7 +941,7 @@ pulls.approve_count_1 = %d одобрение
pulls.can_auto_merge_desc = Тази заявка за сливане може да бъде слята автоматично.
pulls.num_conflicting_files_1 = %d конфликтен файл
activity.git_stats_commit_n = %d подавания
settings.event_issues = Задачи
settings.event_issues = Модификация
branch.delete_head = Изтриване
branch.delete = Изтриване на клона „%s“
branch.delete_html = Изтриване на клона
@ -1020,7 +1021,7 @@ pulls.title_desc_one = иска да слее %[1]d подаване от <code>
pulls.showing_specified_commit_range = Показани са само промените между %[1]s..%[2]s
pulls.merged_title_desc_one = сля %[1]d подаване от <code>%[2]s</code> в <code>%[3]s</code> %[4]s
pulls.no_merge_access = Не сте упълномощени за сливане на тази заявка за сливане.
activity.navbar.code_frequency = Честота на кода
activity.navbar.code_frequency = Честота на промените
activity.git_stats_pushed_1 = е изтласкал
activity.git_stats_push_to_branch = към %s и
contributors.contribution_type.commits = Подавания
@ -1081,11 +1082,11 @@ pulls.commit_ref_at = `спомена тази заявка за сливане
issues.change_ref_at = `промени препратката от <b><strike>%s</strike></b> на <b>%s</b> %s`
diff.review.reject = Поискване на промени
diff.bin_not_shown = Двоичният файл не е показан.
settings.units.units = Елементи на хранилището
settings.units.units = Елементи
settings.delete_notices_fork_1 = - Разклоненията на това хранилище ще станат независими след изтриване.
settings.actions_desc = Включване на интегрираните CI/CD pipelines с Forgejo Actions
settings.packages_desc = Включване на регистъра на пакетите за хранилището
settings.units.add_more = Добавяне...
settings.units.add_more = Включване на повече
settings.use_external_issue_tracker = Използване на външен тракер за задачи
settings.releases_desc = Включване на изданията за хранилището
settings.projects_desc = Включване на проектите за хранилището
@ -1183,6 +1184,19 @@ diff.hide_file_tree = Скриване на файловото дърво
tag.ahead.target = в %s след този маркер
diff.file_image_width = Широчина
activity.unresolved_conv_label = Отворено
invisible_runes_line = `Този ред съдържа невидими Уникод знаци`
code.desc = Достъп до програмния код, файловете, подаванията и клоновете.
settings.branches.update_default_branch = Обновяване на стандартния клон
settings.default_branch_desc = Изберете стандартен клон за хранилището, за заявки за сливане и подавания на код:
settings.transfer.button = Прехвърляне на притежанието
settings.transfer.modal.title = Прехвърляне на притежанието
ambiguous_runes_line = `Този ред съдържа двусмислени Уникод знаци`
ambiguous_character = `%[1]c [U+%04[1]X] може да бъде объркан с %[2]c [U+%04[2]X]`
invisible_runes_header = `Този файл съдържа невидими Уникод знаци`
issues.all_title = Общо
issues.new.assign_to_me = Възлагане на мен
ext_wiki = Външно уики
ext_issues = Външни задачи
[modal]
confirm = Потвърждаване
@ -1279,6 +1293,7 @@ members.member = Участник
members.private_helper = Да е видим
teams.no_desc = Този екип няма описание
settings.delete_org_desc = Тази организация ще бъде изтрита перманентно. Продължаване?
open_dashboard = Отваряне на таблото
[install]
admin_password = Парола
@ -1378,6 +1393,7 @@ followers.title.few = Последователи
followers.title.one = Последовател
following.title.one = Следван
following.title.few = Следвани
public_activity.visibility_hint.self_public = Вашата дейност е видима за всички, с изключение на взаимодействията в частни пространства. <a href="%s">Конфигуриране</a>.
[home]
filter = Други филтри
@ -1544,6 +1560,8 @@ push_tag = изтласка маркер <a href="%[2]s">%[3]s</a> към <a hre
approve_pull_request = `одобри <a href="%[1]s">%[3]s#%[2]s</a>`
reject_pull_request = `предложи промени за <a href="%[1]s">%[3]s#%[2]s</a>`
compare_branch = Сравняване
compare_commits_general = Сравняване на подавания
compare_commits = Сравнете %d подавания
[auth]
tab_openid = OpenID
@ -1572,6 +1590,12 @@ tab_signin = Влизане
tab_signup = Регистриране
password_pwned = Паролата, която сте избрали, е в <a target="_blank" rel="noopener noreferrer" href="%s">списък с откраднати пароли</a>, разкрити преди това при публични пробиви на данни. Моля, опитайте отново с различна парола.
confirmation_mail_sent_prompt = Ново ел. писмо за потвърждение е изпратено до <b>%s</b>. За да завършите процеса на регистрация, моля, проверете входящата си кутия и последвайте предоставената връзка в рамките на следващите %s. Ако адресът за ел. поща е неправилен, можете да влезете и да поискате друго ел. писмо за потвърждение да бъде изпратено на различен адрес.
hint_login = Вече имате акаунт? <a href="%s">Влезте!</a>
hint_register = Нуждаете се от акаунт? <a href="%s">Регистрирайте се.</a>
sign_up_button = Регистрирайте се.
back_to_sign_in = Назад към Вход
sign_in_openid = Продължаване с OpenID
send_reset_mail = Изпращане на ел. писмо за възстановяване
[aria]
footer.software = Относно този софтуер
@ -1582,7 +1606,7 @@ footer = Долен колонтитул
install = Лесен за инсталиране
lightweight = Лек
license = Отворен код
install_desc = Просто <a target="_blank" rel="noopener noreferrer" href="%[1]s">стартирайте двоичния файл</a> за вашата платформа, използвайте <a target="_blank" rel="noopener noreferrer" href="%[2]s">Docker</a>, или го получете <a target="_blank" rel="noopener noreferrer" href="%[3]s">пакетирано</a>.
install_desc = Просто <a target="_blank" rel="noopener noreferrer" href="%[1]s">стартирайте двоичния файл</a> за вашата платформа, използвайте <a target="_blank" rel="noopener noreferrer" href="%[2]s">Docker</a>, или го получете <a target="_blank" rel="noopener noreferrer" href="%[3]s">пакетиран</a>.
app_desc = Безпроблемна Git услуга със самостоятелен хостинг
platform = Междуплатформен
lightweight_desc = Forgejo има ниски минимални изисквания и може да работи на икономичен Raspberry Pi. Спестете енергията на вашата машина!
@ -1670,6 +1694,7 @@ contributors.what = приноси
recent_commits.what = скорошни подавания
component_loading = Зареждане на %s...
component_loading_info = Това може да отнеме известно време…
code_frequency.what = честота на промените
[projects]
type-1.display_name = Индивидуален проект

View file

@ -33,7 +33,7 @@ password=Heslo
access_token=Přístupový token
re_type=Potvrzení hesla
captcha=CAPTCHA
twofa=Dvoufaktorové ověřová
twofa=Dvoufázové ověře
twofa_scratch=Dvoufaktorový kód
passcode=Přístupový kód
@ -434,7 +434,7 @@ non_local_account=Externě ověřovaní uživatelé nemohou změnit své heslo p
verify=Ověřit
scratch_code=Záložní kód
use_scratch_code=Použít záložní kód
twofa_scratch_used=Použili jste váš záložní kód. Byli jste přesměrování na stránku s nastavením dvoufaktorového ověřování, kde můžete odstranit registraci vašeho zařízení nebo vygenerovat nový záložní kód.
twofa_scratch_used=Použili jste svůj záložní kód. Byli jste přesměrování na stránku s nastavením dvoufázového ověření, kde můžete odstranit registraci vašeho zařízení nebo vygenerovat nový záložní kód.
twofa_passcode_incorrect=Vaše heslo je neplatné. Pokud jste ztratili vaše zařízení, použijte záložní kód k přihlášení.
twofa_scratch_token_incorrect=Váš záložní kód není správný.
login_userpass=Přihlásit se
@ -478,6 +478,8 @@ hint_register = Nemáte účet? <a href="%s">Zaregistrujte se nyní.</a>
sign_up_button = Zaregistrujte se nyní.
back_to_sign_in = Zpět na přihlášení
sign_in_openid = Pokračovat s OpenID
unauthorized_credentials = Údaje jsou nesprávné nebo vypršely. Opakujte svůj příkaz nebo se podívejte na %s pro více informací
use_onetime_code = Použít jednorázový kód
[mail]
view_it_on=Zobrazit na %s
@ -488,11 +490,11 @@ hi_user_x=Ahoj <b>%s</b>,
activate_account=Prosíme, aktivujte si váš účet
activate_account.title=%s, prosím aktivujte si váš účet
activate_account.text_1=Ahoj <b>%[1]s</b>, děkujeme za registraci na %[2]s!
activate_account.text_2=Pro aktivaci vašeho účtu do <b>%s</b> klikněte na následující odkaz:
activate_account.text_2=Pro aktivaci vašeho účtu klikněte <b>%s</b> na následující odkaz :
activate_email=Ověřte vaši e-mailovou adresu
activate_email.title=%s, prosím ověřte vaši e-mailovou adresu
activate_email.text=Pro aktivaci vašeho účtu do <b>%s</b> klikněte na následující odkaz:
activate_email.text=Pro ověření vaší e-mailové adresy klikněte <b>%s</b> na následující odkaz:
register_notify=Vítejte v %s
register_notify.title=%[1]s vítejte v %[2]s
@ -622,7 +624,7 @@ repository_files_already_exist.adopt=Soubory pro tento repozitář již existuj
repository_files_already_exist.delete=Soubory pro tento repozitář již existují. Musíte je odstranit.
repository_files_already_exist.adopt_or_delete=Soubory pro tento repozitář již existují. Přijměte je, nebo je odstraňte.
visit_rate_limit=Dosaženo limitu rychlosti dotazů při vzdáleném přístupu.
2fa_auth_required=Vzdálený přístup vyžaduje dvoufaktorové ověřování.
2fa_auth_required=Vzdálený přístup vyžaduje dvoufázové ověření.
org_name_been_taken=Název organizace je již použit.
team_name_been_taken=Název týmu je již použit.
team_no_units_error=Povolit přístup alespoň do jedné sekce repozitáře.
@ -718,6 +720,7 @@ public_activity.visibility_hint.self_private = Vaše aktivita je viditelná pouz
public_activity.visibility_hint.admin_private = Tato aktivita je pro vás viditelná, protože jste administrátor, ale uživatel chce, aby zůstala soukromá.
public_activity.visibility_hint.self_public = Vaše aktivita je viditelná všem, mimo interakcí v soukromých prostorech. <a href="%s">Nastavení</a>.
public_activity.visibility_hint.admin_public = Tato aktivita je viditelná všem, ale jako administrátor také můžete vidět interakce v soukromých prostorech.
public_activity.visibility_hint.self_private_profile = Vaše aktivita je viditelná pouze vám a správcům instance, protože váš profil je soukromý. <a href="%s">Nastavit</a>.
[settings]
profile=Profil
@ -732,11 +735,11 @@ applications=Aplikace
orgs=Organizace
repos=Repozitáře
delete=Smazat účet
twofa=Dvoufaktorové ověřování (TOTP)
twofa=Dvoufázové ověření (TOTP)
account_link=Propojené účty
organization=Organizace
uid=UID
webauthn=Dvoufaktorové ověřování (bezpečnostní klíče)
webauthn=Dvoufázové ověření (bezpečnostní klíče)
public_profile=Veřejný profil
biography_placeholder=Řekněte nám něco o sobě! (Můžete použít Markdown)
@ -806,7 +809,7 @@ manage_emails=Správa e-mailových adres
manage_themes=Výchozí motiv
manage_openid=Adresy OpenID
email_desc=Vaše hlavní e-mailová adresa bude použita pro oznámení, obnovení hesla, a pokud není skrytá, pro operace Gitu.
theme_desc=Toto bude váš výchozí motiv vzhledu napříč stránkou.
theme_desc=Toto bude váš výchozí motiv vzhledu na tomto webu.
primary=Hlavní
activated=Aktivován
requires_activation=Vyžaduje aktivaci
@ -842,8 +845,8 @@ add_key=Přidat klíč
ssh_desc=Tyto veřejné klíče SSH jsou propojeny s vaším účtem. Odpovídající soukromé klíče umožní plný přístup k vašim repozitářům. Klíče SSH, které byly ověřeny, mohou být použity pro ověření Git commitů podepsaných přes SSH.
principal_desc=Tyto SSH Principal certifikáty jsou přidruženy k vašemu účtu a umožňují plný přístup do vašich repozitářů.
gpg_desc=Tyto veřejné klíče GPG jsou propojeny s vaším účtem a používají se k ověření vašich commitů. Uložte je na bezpečné místo, jelikož umožňují podepsat commity vaší identitou.
ssh_helper=<strong>Potřebujete pomoct?</strong> Podívejte se do příručky GitHubu na to <a href="%s">vytvoření vlastních klíčů SSH</a> nebo vyřešte <a href="%s">běžné problémy</a>, se kterými se můžete potkat při použití SSH.
gpg_helper=<strong>Potřebujete pomoct?</strong> Podívejte se do příručky GitHubu <a href="%s">o GPG</a>.
ssh_helper=<strong>Potřebujete pomoct?</strong> Podívejte se do příručky, jak <a href="%s">vytvořit vlastní klíče SSH</a> nebo vyřešte <a href="%s">běžné problémy</a>, se kterými se můžete potkat při použití SSH.
gpg_helper=<strong>Potřebujete pomoct?</strong> Podívejte se do příručky <a href="%s">o GPG</a>.
add_new_key=Přidat klíč SSH
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“
@ -898,7 +901,7 @@ ssh_principal_deletion_success=SSH Principal certifikát byl odstraněn.
added_on=Přidáno %s
valid_until_date=Platné do %s
valid_forever=Platné navždy
last_used=Naposledy použito dne
last_used=Naposledy použito
no_activity=Žádná aktuální aktivita
can_read_info=Čtení
can_write_info=Zápis
@ -928,17 +931,17 @@ access_token_deletion_cancel_action=Zrušit
access_token_deletion_confirm_action=Smazat
access_token_deletion_desc=Smazání tokenu zruší přístup k vašemu účtu pro aplikace, které jej používají. Tuto akci nelze vrátit. Pokračovat?
delete_token_success=Token byl odstraněn. Aplikace, které jej používají již nemají přístup k vašemu účtu.
repo_and_org_access=Repozitář a přístup organizace
permissions_public_only=Pouze veřejnost
repo_and_org_access=Přístup k repozitářům a organizacím
permissions_public_only=Pouze veřejné
permissions_access_all=Vše (veřejné, soukromé a omezené)
select_permissions=Vyberte oprávnění
permission_no_access=Bez přístupu
permission_read=Přečtené
permission_no_access=Žádný přístup
permission_read=Čtení
permission_write=Čtení a zápis
at_least_one_permission=Musíte vybrat alespoň jedno oprávnění pro vytvoření tokenu
permissions_list=Oprávnění:
manage_oauth2_applications=Spravovat aplikace OAuth2
manage_oauth2_applications=Správa aplikací OAuth2
edit_oauth2_application=Upravit OAuth2 aplikaci
oauth2_applications_desc=OAuth2 aplikace umožní aplikacím třetích stran bezpečně ověřit uživatele v této instanci Forgejo.
remove_oauth2_application=Odstranit OAuth2 aplikaci
@ -949,8 +952,8 @@ create_oauth2_application_button=Vytvořit aplikaci
create_oauth2_application_success=Úspěšně jste vytvořili novou OAuth2 aplikaci.
update_oauth2_application_success=Úspěšně jste aktualizovali OAuth2 aplikaci.
oauth2_application_name=Název aplikace
oauth2_confidential_client=Důvěrný klient. Zvolte jej pro aplikace, které ukládají soubor secret, například webové aplikace. Nevybírejte jej pro nativní aplikace včetně aplikací pro počítače a mobilní zařízení.
oauth2_redirect_uris=Přesměrování URI. Použijte nový řádek pro každou URI.
oauth2_confidential_client=Důvěrný klient. Vyberte pro aplikace, které udržují tajný klíč v bezpečí, například webové aplikace. Nevybírejte pro nativní aplikace včetně aplikací pro počítače a mobilní zařízení.
oauth2_redirect_uris=Přesměrování URI. Zadejte každou URI na vlastní řádek.
save_application=Uložit
oauth2_client_id=ID klienta
oauth2_client_secret=Tajný klíč klienta
@ -958,12 +961,12 @@ oauth2_regenerate_secret=Obnovit tajný klíč
oauth2_regenerate_secret_hint=Ztratili jste svůj tajný klíč?
oauth2_client_secret_hint=Tajný klíč se znovu nezobrazí po opuštění nebo obnovení této stránky. Ujistěte se, že jste si jej uložili.
oauth2_application_edit=Upravit
oauth2_application_create_description=OAuth2 aplikace poskytuje přístup aplikacím třetích stran k uživatelským účtům na této instanci.
oauth2_application_create_description=Aplikace OAuth2 poskytují přístup vašim aplikacím třetích stran k uživatelským účtům na této instanci.
oauth2_application_remove_description=Odebráním OAuth2 aplikace zabrání přístupu ověřeným uživatelům na této instanci. Pokračovat?
oauth2_application_locked=Gitea předregistruje některé OAuth2 aplikace při spuštění, pokud je to povoleno v konfiguraci. Aby se zabránilo neočekávanému chování, nelze je upravovat ani odstranit. Více informací naleznete v dokumentaci OAuth2.
authorized_oauth2_applications=Autorizovat aplikaci OAuth2
authorized_oauth2_applications_description=Úspěšně jste povolili přístup k vašemu osobnímu účtu této aplikaci třetí strany. Zrušte prosím přístup aplikacím, které již nejsou používány.
authorized_oauth2_applications=Autorizované aplikace OAuth2
authorized_oauth2_applications_description=Těmto aplikacím třetích stran jste udělili přístup ke svému osobnímu účtu Forgejo. Zrušte prosím přístup aplikacím, které již nejsou používány.
revoke_key=Zrušit
revoke_oauth2_grant=Zrušit přístup
revoke_oauth2_grant_description=Zrušením přístupu této aplikaci třetí strany ji zabráníte v přístupu k vašim datům. Jste si jisti?
@ -971,24 +974,24 @@ revoke_oauth2_grant_success=Přístup byl úspěšně zrušen.
twofa_desc=Dvoufaktorový způsob ověřování zvýší zabezpečení vašeho účtu.
twofa_recovery_tip=Pokud ztratíte své zařízení, budete moci použít jednorázový obnovovací klíč k získání přístupu k vašemu účtu.
twofa_is_enrolled=Váš účet aktuálně <strong>používá</strong> dvoufaktorové ověřování.
twofa_not_enrolled=Váš účet aktuálně nepoužívá dvoufaktorové ověřování.
twofa_disable=Zakázat dvoufaktorové ověřová
twofa_is_enrolled=Váš účet aktuálně <strong>používá</strong> dvoufázové ověření.
twofa_not_enrolled=Váš účet aktuálně nepoužívá dvoufázové ověření.
twofa_disable=Zakázat dvoufázové ověře
twofa_scratch_token_regenerate=Znovu vygenerovat jednorázový klíč pro obnovení
twofa_scratch_token_regenerated=Váš jednorázový klíč pro obnovení je nyní %s. Uložte jej na bezpečné místo, protože se znovu nezobrazí.
twofa_enroll=Povolit dvoufaktorové ověřová
twofa_disable_note=Dvoufaktorové ověřování můžete zakázat, když bude potřeba.
twofa_disable_desc=Zakážete-li dvoufaktorové ověřování, bude váš účet méně zabezpečený. Pokračovat?
twofa_enroll=Povolit dvoufázové ověře
twofa_disable_note=Dvoufázové ověření můžete v případě potřeby zakázat.
twofa_disable_desc=Zakázáním dvoufázového ověření bude váš účet méně bezpečný. Pokračovat?
regenerate_scratch_token_desc=Pokud jste ztratili svůj klíč pro obnovení nebo jste jej již použili k přihlášení, můžete jej resetovat zde.
twofa_disabled=Dvoufaktorové ověřování bylo zakázáno.
twofa_disabled=Dvoufázové ověření bylo zakázáno.
scan_this_image=Naskenujte tento obrázek s vaší ověřovací aplikací:
or_enter_secret=Nebo zadejte tajný kód: %s
then_enter_passcode=A zadejte přístupový kód zobrazený ve vaší aplikaci:
passcode_invalid=Přístupový kód není platný. Zkuste to znovu.
twofa_enrolled=Ve vašem účtu bylo povoleno dvoufaktorové ověřování. Uložte si jednorázový obnovovací klíč (%s) na bezpečné místo, jelikož již nebude znovu zobrazen.
twofa_enrolled=Ve vašem účtu bylo povoleno dvoufázové ověření. Uložte si jednorázový obnovovací klíč (%s) na bezpečné místo, jelikož již nebude znovu zobrazen.
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 dvoufaktorové ověřování. Bezpečnostní klíče musí podporovat <a rel="noreferrer" target="_blank" href="%s">WebAuthn Authenticator</a> standard.
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íč
@ -997,7 +1000,7 @@ webauthn_key_loss_warning=Pokud ztratíte své bezpečnostní klíče, ztratíte
webauthn_alternative_tip=Možná budete chtít nakonfigurovat další metodu ověřování.
manage_account_links=Propojené účty
manage_account_links_desc=Tyto externí účty jsou propojeny s vaším Forgejo účtem.
manage_account_links_desc=Tyto externí účty jsou propojeny s vaším účtem Forgejo.
account_links_not_available=K vašemu Forgejo účtu nejsou aktuálně připojené žádné externí účty.
link_account=Propojit účet
remove_account_link=Odstranit propojený účet
@ -1009,7 +1012,7 @@ hooks.desc=Přidat webhooky, které budou spouštěny pro <strong>všechny repoz
orgs_none=Nejste členem žádné organizace.
repos_none=Nevlastníte žádné repozitáře.
delete_account=Odstranit svůj účet
delete_account=Odstranit účet
delete_prompt=Tato operace natrvalo odstraní váš uživatelský účet. <strong>NELZE</strong> ji vrátit zpět.
delete_with_all_comments=Váš účet je mladší než %s. Pro zabránění fantomovým komentářům budou společně s ním odstraněny všechny komentáře u problémů a ŽS.
confirm_delete_account=Potvrdit odstranění
@ -1037,10 +1040,10 @@ access_token_desc = Oprávnění vybraného tokenu omezují autorizaci pouze na
blocked_users_none = Nemáte žádné zablokované uživatele.
blocked_since = Zablokován od %s
hints = Nápovědy
additional_repo_units_hint = Navrhnout povolení dalších jednotek úložiště
additional_repo_units_hint = Navrhnout povolení dalších jednotek repozitáře
update_hints = Aktualizovat nápovědy
update_hints_success = Nápovědy byly aktualizovány.
additional_repo_units_hint_description = Zobrazit tlačítko „Přidat další jednotky...“ u repozitářů, které nemají povolené všechny dostupné jednotky.
additional_repo_units_hint_description = Zobrazit tip „Povolit další“ u repozitářů, které nemají povolené všechny dostupné jednotky.
pronouns = Zájmena
pronouns_custom = Vlastní
pronouns_unspecified = Neurčená
@ -1058,7 +1061,7 @@ repo_name_helper=Dobrý název repozitáře většinou používá krátká, zapa
repo_size=Velikost repozitáře
template=Šablona
template_select=Vyberte šablonu
template_helper=Z repozitáře vytvořit šablonu
template_helper=Nastavit repozitář jako šablonu
template_description=Šablony repozitářů umožňují uživatelům generovat nové repositáře se stejnou strukturou, soubory a volitelnými nastaveními.
visibility=Viditelnost
visibility_description=Pouze majitelé nebo členové organizace to budou moci vidět, pokud mají práva.
@ -1069,7 +1072,7 @@ clone_helper=Potřebujete pomoci s klonováním? Navštivte <a target="_blank" r
fork_repo=Fork repozitáře
fork_from=Fork z
already_forked=Již jsi rozštěpil %s
fork_to_different_account=Rozštěpit na jiný účet
fork_to_different_account=Vytvořit fork na jiném účtu
fork_visibility_helper=Viditelnost rozštěpeného repozitáře nemůže být změněna.
fork_branch=Větev, která má být klonována pro fork
all_branches=Všechny větve
@ -1165,7 +1168,7 @@ template.items=Položky šablony
template.git_content=Obsah Gitu (výchozí větev)
template.git_hooks=Git hooks
template.git_hooks_tooltip=Momentálně nemůžete po přidání upravovat nebo odebírat Git hooky. Vyberte pouze v případě, že důvěřujete šabloně repozitáře.
template.webhooks=Webové háčky
template.webhooks=Webhooky
template.topics=Témata
template.avatar=Avatar
template.issue_labels=Štítky problémů
@ -1238,7 +1241,7 @@ migrate.cancel_migrating_confirm=Chcete zrušit tuto migraci?
mirror_from=zrcadlo
forked_from=rozštěpen z
generated_from=generováno z
fork_from_self=Nemůžete rozštěpit váš vlastní repozitář.
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.
watch_guest_user=Pro sledování tohoto repozitáře se přihlaste.
star_guest_user=Pro hodnocení tohoto repozitáře se přihlaste.
@ -1246,7 +1249,7 @@ unwatch=Přestat sledovat
watch=Sledovat
unstar=Oblíbené
star=Oblíbit
fork=Rozštěpit
fork=Fork
download_archive=Stáhnout repozitář
more_operations=Další operace
@ -1337,7 +1340,7 @@ editor.cannot_edit_non_text_files=Binární soubory nemohou být upravovány př
editor.edit_this_file=Upravit soubor
editor.this_file_locked=Soubor je uzamčen
editor.must_be_on_a_branch=Musíte mít zvolenu větev pro úpravu či návrh změn tohoto souboru.
editor.fork_before_edit=Musíte rozštěpit tento repozitář pro vytvoření nebo navržení změny tohoto souboru.
editor.fork_before_edit=Pro vytvoření nebo navržení změn v tomto souboru musíte vytvořit fork tohoto repozitáře.
editor.delete_this_file=Odstranit soubor
editor.must_have_write_access=Musíte mít přístup pro zápis pro dělání či navrhování změn tohoto souboru.
editor.file_delete_success=Soubor „%s“ byl odstraněn.
@ -1345,9 +1348,9 @@ editor.name_your_file=Pojmenujte váš soubor…
editor.filename_help=Přidejte adresář zapsáním jeho jména následovaného lomítkem („/“). Adresář odeberete stiskem backspace na začátku vstupního pole.
editor.or=nebo
editor.cancel_lower=Zrušit
editor.commit_signed_changes=Commitnout podepsané změny
editor.commit_changes=Commitnout změny
editor.add_tmpl=Přidat „<nazevsouboru>“
editor.commit_signed_changes=Odeslat podepsané změny
editor.commit_changes=Odeslat změny
editor.add_tmpl=Přidán „<filename>“
editor.add=Přidat %s
editor.update=Aktualizovat %s
editor.delete=Odstranit %s
@ -1357,7 +1360,7 @@ editor.fail_to_apply_patch=Nelze použít záplatu „%s“
editor.new_patch=Nová záplata
editor.commit_message_desc=Přidat volitelný rozšířený popis…
editor.signoff_desc=Přidat Signed-off-by podpis přispěvatele na konec zprávy o commitu.
editor.commit_directly_to_this_branch=Odevzdat přímo do větve <strong class="branch-name">%s</strong>.
editor.commit_directly_to_this_branch=Odeslat přímo do větve <strong class="branch-name">%s</strong>.
editor.create_new_branch=Vytvořit <strong>novou větev</strong> pro tento commit a vytvořit žádost o sloučení.
editor.create_new_branch_np=Vytvořte <strong>novou větev</strong> z tohoto commitu.
editor.propose_file_change=Navrhnout změnu souboru
@ -1375,8 +1378,8 @@ editor.file_editing_no_longer_exists=Upravovaný soubor „%s“ již není sou
editor.file_deleting_no_longer_exists=Odstraňovaný soubor „%s“ již není součástí tohoto repozitáře.
editor.file_changed_while_editing=Obsah souboru se od zahájení úprav změnil. <a target="_blank" rel="noopener noreferrer" href="%s">Klikněte sem</a> pro jejich zobrazení nebo <strong>proveďte commit změn ještě jednou</strong> pro jejich přepsání.
editor.file_already_exists=Soubor „%s“ již existuje v tomto repozitáři.
editor.commit_empty_file_header=Odevzdat prázdný soubor
editor.commit_empty_file_text=Soubor, který se chystáte odevzdat, je prázdný. Pokračovat?
editor.commit_empty_file_header=Odeslat prázdný soubor
editor.commit_empty_file_text=Soubor, který se chystáte odeslat, je prázdný. Pokračovat?
editor.no_changes_to_show=Žádné změny k zobrazení.
editor.fail_to_update_file=Nepodařilo se aktualizovat/vytvořit soubor „%s“.
editor.fail_to_update_file_summary=Chybová zpráva:
@ -1386,9 +1389,9 @@ editor.push_rejected_summary=Úplná zpráva o zamítnutí:
editor.add_subdir=Přidat adresář…
editor.unable_to_upload_files=Nepodařilo se nahrát soubory do „%s“. Chyba: %v
editor.upload_file_is_locked=Soubor „%s“ je uzamčen uživatelem %s.
editor.upload_files_to_dir=Nahrát soubory do „%s“
editor.upload_files_to_dir=Nahrány soubory do „%s“
editor.cannot_commit_to_protected_branch=Nelze vytvořit commit v chráněné větvi „%s“.
editor.no_commit_to_branch=Nelze odevzdat přímo do větve, protože:
editor.no_commit_to_branch=Nepodařilo se odeslat přímo do větve:
editor.user_no_push_to_branch=Uživatel nemůže nahrávat do větve
editor.require_signed_commit=Větev vyžaduje podepsaný commit
editor.cherry_pick=Cherry-pick %s na:
@ -1427,7 +1430,7 @@ commitstatus.failure=Chyba
commitstatus.pending=Čekající
commitstatus.success=Úspěch
ext_issues=Přístup k externím problémům
ext_issues=Externí problémy
ext_issues.desc=Odkaz na externí systém problémů.
projects=Projekty
@ -1608,9 +1611,9 @@ issues.no_content=K dispozici není žádný popis.
issues.close=Zavřít problém
issues.comment_pull_merged_at=sloučený commit %[1]s do %[2]s %[3]s
issues.comment_manually_pull_merged_at=ručně sloučený commit %[1]s do %[2]s %[3]s
issues.close_comment_issue=Okomentovat a zavřít
issues.close_comment_issue=Zavřít s komentářem
issues.reopen_issue=Znovu otevřít
issues.reopen_comment_issue=Okomentovat a znovu otevřít
issues.reopen_comment_issue=Znovu otevřít s komentářem
issues.create_comment=Okomentovat
issues.closed_at=`uzavřel/a tento problém <a id="%[1]s" href="#%[1]s">%[2]s</a>`
issues.reopened_at=`znovu otevřel/a tento problém <a id="%[1]s" href="#%[1]s">%[2]s</a>`
@ -1776,8 +1779,8 @@ issues.review.left_comment=zanechal komentář
issues.review.content.empty=Je potřeba zanechat poznámku s uvedením požadované změny (požadovaných změn).
issues.review.reject=požádal/a o změny %s
issues.review.wait=byl/a požádán/a o posouzení %s
issues.review.add_review_request=požádal/a o posouzení od %s %s
issues.review.remove_review_request=odstranil/a žádost o posouzení na %s %s
issues.review.add_review_request=požádal/a o kontrolu od %[1]s %[2]s
issues.review.remove_review_request=odstranil/a žádost o kontrolu u %[1]s %[2]s
issues.review.remove_review_request_self=odmítl/a posoudit %s
issues.review.pending=Čekající
issues.review.pending.tooltip=Tento komentář není momentálně viditelný pro ostatní uživatele. Chcete-li odeslat Vaše čekající komentáře, vyberte „%s“ → „%s/%s/%s“ v horní části stránky.
@ -1909,7 +1912,7 @@ pulls.has_merged=Chyba: žádost byla sloučena, nelze ji znovu sloučit nebo zm
pulls.push_rejected=Push selhal: nahrání bylo zamítnuto. Zkontrolujte Git hooky pro tento repozitář.
pulls.push_rejected_summary=Úplná zpráva o zamítnutí
pulls.push_rejected_no_message=Push selhal: nahrání bylo odmítnuto, ale nebyla nalezena žádná vzdálená zpráva. Zkontrolujte Git hooky pro tento repozitář
pulls.open_unmerged_pull_exists=`Nemůžete provést operaci znovuotevření protože je tu čekající požadavek na natažení (#%d) s identickými vlastnostmi.`
pulls.open_unmerged_pull_exists=`Nemůžete provést operaci opětovného otevření, protože máte čekající žádost o sloučení (#%d) s identickými vlastnostmi.`
pulls.status_checking=Některé kontroly jsou nedořešeny
pulls.status_checks_success=Všechny kontroly byly úspěšné
pulls.status_checks_warning=Některé kontroly nahlásily varování
@ -1925,8 +1928,8 @@ pulls.update_branch_success=Aktualizace větve byla úspěšná
pulls.update_not_allowed=Nemáte oprávnění aktualizovat větev
pulls.outdated_with_base_branch=Tato větev je zastaralá oproti základní větvi
pulls.close=Zavřít žádost o sloučení
pulls.closed_at=`uzavřel/a tento požadavek na natažení <a id="%[1]s" href="#%[1]s">%[2]s</a>`
pulls.reopened_at=`znovuotevřel/a tento požadavek na natažení <a id="%[1]s" href="#%[1]s">%[2]s</a>`
pulls.closed_at=`uzavřel/a tuto žádost o sloučení <a id="%[1]s" href="#%[1]s">%[2]s</a>`
pulls.reopened_at=`znovu otevřel/a tuto žádost o sloučení <a id="%[1]s" href="#%[1]s">%[2]s</a>`
pulls.cmd_instruction_hint=Zobrazit instrukce příkazové řádky
pulls.cmd_instruction_checkout_desc=Z vašeho repositáře projektu se podívejte na novou větev a vyzkoušejte změny.
pulls.cmd_instruction_merge_title=Sloučit
@ -1935,18 +1938,18 @@ pulls.clear_merge_message=Vymazat zprávu o sloučení
pulls.auto_merge_button_when_succeed=(Když kontroly uspějí)
pulls.auto_merge_when_succeed=Automaticky sloučit, když všechny kontroly uspějí
pulls.auto_merge_newly_scheduled=Požadavek na natažení byl naplánován na sloučení, jakmile všechny kontroly uspějí.
pulls.auto_merge_has_pending_schedule=%[1]s naplánoval/a tento požadavek na natažení pro automatické sloučení, když všechny kontroly uspějí v %[2]s.
pulls.auto_merge_newly_scheduled=Žádost o sloučení bude sloučena, jakmile budou všechny kontroly úspěšné.
pulls.auto_merge_has_pending_schedule=%[1]s naplánoval/a tuto žádost o sloučení na automatické sloučení, jakmile budou všechny kontroly úspěšné %[2]s.
pulls.auto_merge_cancel_schedule=Zrušit automatické sloučení
pulls.auto_merge_not_scheduled=Tento požadavek na natažení není naplánován na automatické sloučení.
pulls.auto_merge_canceled_schedule=Automatické sloučení bylo zrušeno pro tento požadavek na natažení.
pulls.auto_merge_not_scheduled=Tato žádost o sloučení nebude automaticky sloučena.
pulls.auto_merge_canceled_schedule=Automatické sloučení bylo u této žádosti o sloučení zrušeno.
pulls.auto_merge_newly_scheduled_comment=`požadavek na automatické sloučení tohoto požadavku na natažení je naplánován, když všechny kontroly uspějí %[1]s`
pulls.auto_merge_canceled_schedule_comment=`zrušil/a automatické sloučení tohoto požadavku na natažení, když všechny kontroly uspějí %[1]s`
pulls.auto_merge_newly_scheduled_comment=`naplánoval/a tuto žádost o sloučení na automatické sloučení, jakmile budou všechny kontroly úspěšné %[1]s`
pulls.auto_merge_canceled_schedule_comment=`zrušil/a automatické sloučení této žádosti o sloučení, jakmile budou všechny kontroly úspěšné %[1]s`
pulls.delete.title=Odstranit tento požadavek na natažení?
pulls.delete.text=Opravdu chcete tento požadavek na natažení smazat? (Tím se trvale odstraní veškerý obsah. Pokud jej hodláte archivovat, zvažte raději jeho uzavření.)
pulls.delete.title=Odstranit tuto žádost o sloučení?
pulls.delete.text=Opravdu chcete odstranit tuto žádost o sloučení? (Tímto trvale odstraníte všechen obsah. Pokud jej chcete archivovat, zvažte raději jeho uzavření)
pull.deleted_branch=(odstraněno):%s
@ -1987,15 +1990,15 @@ signing.wont_sign.nokey=Tato instance nemá žádný klíč k podepsání tohoto
signing.wont_sign.never=Commity nejsou nikdy podepsány.
signing.wont_sign.always=Commity jsou vždy podepsány.
signing.wont_sign.pubkey=Commit nebude podepsán, protože nemáte veřejný klíč spojený s vaším účtem.
signing.wont_sign.twofa=Pro podepsání commitů musíte mít povoleno dvoufaktorové ověření.
signing.wont_sign.twofa=Pro podepisování commitů musíte mít zapnuto dvoufázové ověření.
signing.wont_sign.parentsigned=Commit nebude podepsán, protože nadřazený commit není podepsán.
signing.wont_sign.basesigned=Sloučení nebude podepsáno, protože základní commit není podepsaný.
signing.wont_sign.headsigned=Sloučení nebude podepsáno, protože hlavní revize není podepsána.
signing.wont_sign.commitssigned=Sloučení nebude podepsáno, protože všechny přidružené revize nejsou podepsány.
signing.wont_sign.approved=Sloučení nebude podepsáno, protože požadavek na natažení není schválen.
signing.wont_sign.approved=Sloučení nebude podepsáno, protože žádost o sloučení není schválena.
signing.wont_sign.not_signed_in=Nejste přihlášeni.
ext_wiki=Přístup k externí Wiki
ext_wiki=Externí wiki
ext_wiki.desc=Odkaz do externí Wiki.
wiki=Wiki
@ -2114,7 +2117,7 @@ settings.collaboration.write=Zápis
settings.collaboration.read=Čtení
settings.collaboration.owner=Vlastník
settings.collaboration.undefined=Neurčeno
settings.hooks=Webové háčky
settings.hooks=Webhooky
settings.githooks=Git hooky
settings.basic_settings=Základní nastavení
settings.mirror_settings=Nastavení zrcadla
@ -2125,7 +2128,7 @@ settings.mirror_settings.docs.no_new_mirrors=Váš repozitář zrcadlí změny d
settings.mirror_settings.docs.can_still_use=I když nemůžete upravit stávající zrcadla nebo vytvořit nová, stále můžete použít své stávající zrcadlo.
settings.mirror_settings.docs.more_information_if_disabled=Více informací o zrcadlech pro nahrání a natažení naleznete zde:
settings.mirror_settings.docs.doc_link_title=Jak mohu zrcadlit repozitáře?
settings.mirror_settings.docs.pulling_remote_title=Stažení ze vzdáleného úložiště
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
@ -2264,23 +2267,23 @@ settings.delete_team_tip=Tento tým má přístup ke všem repositářům a nem
settings.remove_team_success=Přístup týmu k repozitáři byl odstraněn.
settings.add_webhook=Přidat webhook
settings.add_webhook.invalid_channel_name=Kanál webového háčku nemůže být prázdný a nemůže obsahovat pouze znak #.
settings.hooks_desc=Webové háčky automaticky vytvářejí dotazy HTTP POST na server, když nastane určitá událost v Forgejo. Čtěte více v <a target="_blank" rel="noopener noreferrer" href="%s">příručce webových háčků</a>.
settings.hooks_desc=Webhooky automaticky vytvářejí dotazy HTTP POST na server, když nastane určitá událost ve Forgejo. Více informací v <a target="_blank" rel="noopener noreferrer" href="%s">příručce webhooků</a>.
settings.webhook_deletion=Odstranit webhook
settings.webhook_deletion_desc=Odstranění webového háčku smaže jeho nastavení a historii doručení. Pokračovat?
settings.webhook_deletion_success=Webový háček byl smazán.
settings.webhook_deletion_success=Webhook byl smazán.
settings.webhook.test_delivery=Test doručitelnosti
settings.webhook.test_delivery_desc=Vyzkoušet tento webový háček pomocí falešné události.
settings.webhook.test_delivery_desc_disabled=Chcete-li tento webový háček otestovat s falešnou událostí, aktivujte ho.
settings.webhook.test_delivery_desc=Otestovat tento webhook pomocí falešné události.
settings.webhook.test_delivery_desc_disabled=Chcete-li pomocí falešné události otestovat tento webhook, aktivujte ho.
settings.webhook.request=Požadavek
settings.webhook.response=Odpověď
settings.webhook.headers=Hlavičky
settings.webhook.payload=Obsah
settings.webhook.body=Tělo zprávy
settings.webhook.replay.description=Zopakovat tento webový háček.
settings.webhook.replay.description_disabled=Chcete-li znovu spustit tento webový háček, aktivujte jej.
settings.webhook.replay.description=Zopakovat tento webhook.
settings.webhook.replay.description_disabled=Chcete-li zopakovat tento webhook, aktivujte jej.
settings.webhook.delivery.success=Událost byla přidána do fronty doručení. Může to trvat několik sekund, než se zobrazí v historii doručení.
settings.githooks_desc=Git hooks jsou spravovány samotným Gitem. Níže můžete upravit soubory hooků pro nastavení vlastních operací.
settings.githook_edit_desc=Je-li háček neaktivní, bude zobrazen vzorový obsah. Nebude-li zadán žádný obsah, háček bude vypnut.
settings.githook_edit_desc=Je-li webhook neaktivní, bude zobrazen vzorový obsah. Ponechte prázdné pro zakázání tohoto webhooku.
settings.githook_name=Název hooku
settings.githook_content=Obsah hooku
settings.update_githook=Upravit hook
@ -2303,7 +2306,7 @@ settings.event_create=Vytvořit
settings.event_create_desc=Větev nebo značka vytvořena.
settings.event_delete=Smazat
settings.event_delete_desc=Větev nebo značka smazána.
settings.event_fork=Rozštěpit
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.
@ -2314,32 +2317,32 @@ settings.event_push_desc=Nahrání pomocí Gitu do repozitáře.
settings.event_repository=Repozitář
settings.event_repository_desc=Repozitář vytvořen nebo smazán.
settings.event_header_issue=Události problémů
settings.event_issues=Problémy
settings.event_issues=Úprava
settings.event_issues_desc=Problém otevřen, uzavřen, znovu otevřen nebo upraven.
settings.event_issue_assign=Problém přiřazen
settings.event_issue_assign=Přiřazení
settings.event_issue_assign_desc=Problém přiřazen nebo nepřiřazen.
settings.event_issue_label=Problém označen
settings.event_issue_label_desc=Štítky problému upraveny nebo vymazány.
settings.event_issue_milestone=K problému přidán milník
settings.event_issue_milestone_desc=K problému přidán nebo odebrán milník.
settings.event_issue_comment=Komentář k problému
settings.event_issue_label=Štítky
settings.event_issue_label_desc=Štítky problému přidány nebo odstraněny.
settings.event_issue_milestone=Milníky
settings.event_issue_milestone_desc=Milník přidán, odstraněn nebo upraven.
settings.event_issue_comment=Komentáře
settings.event_issue_comment_desc=Přidán, upraven nebo smazán komentář problému.
settings.event_header_pull_request=Události žádosti o sloučení
settings.event_pull_request=Žádost o sloučení
settings.event_pull_request=Úprava
settings.event_pull_request_desc=Požadavek na natažení otevřen, uzavřen, znovu otevřen nebo upraven.
settings.event_pull_request_assign=Žádost o sloučení přiřazena
settings.event_pull_request_assign=Přiřazení
settings.event_pull_request_assign_desc=Požadavek na natažení přiřazen nebo nepřiřazen.
settings.event_pull_request_label=Žádost o sloučení označena
settings.event_pull_request_label_desc=Štítky požadavku na natažení aktualizovány nebo vymazány.
settings.event_pull_request_milestone=K žádosti o sloučení přidán milník
settings.event_pull_request_milestone_desc=Požadavku na natažení přidán nebo odebrán milník.
settings.event_pull_request_comment=Žádost o sloučení okomentována
settings.event_pull_request_label=Štítky
settings.event_pull_request_label_desc=Štítky žádosti o sloučení přidány nebo odstraněny.
settings.event_pull_request_milestone=Milníky
settings.event_pull_request_milestone_desc=Milník přidán, odstraněn nebo upraven.
settings.event_pull_request_comment=Komentáře
settings.event_pull_request_comment_desc=Komentář požadavku na natažení vytvořen, upraven nebo odstraněn.
settings.event_pull_request_review=Žádost o sloučení zkontrolována
settings.event_pull_request_review_desc=Požadavek na natažení schválen, odmítnut nebo zkontrolován.
settings.event_pull_request_sync=Žádost o sloučení synchronizována
settings.event_pull_request_sync_desc=Požadavek na natažení synchronizován.
settings.event_pull_request_review_request=Vyžádána kontrola žádosti o sloučení
settings.event_pull_request_review=Kontroly
settings.event_pull_request_review_desc=Žádost o sloučení schválena, zamítnuta nebo byl přidán komentář kontroly.
settings.event_pull_request_sync=Synchronizováno
settings.event_pull_request_sync_desc=Větev automaticky aktualizována s cílovou větví.
settings.event_pull_request_review_request=Žádosti o kontrolu
settings.event_package=Balíček
settings.event_package_desc=Balíček vytvořen nebo odstraněn v repozitáři.
settings.branch_filter=Filtr větví
@ -2348,9 +2351,9 @@ settings.authorization_header=Autorizační hlavička
settings.authorization_header_desc=Pokud vyplněno, bude připojeno k požadavkům jako autorizační hlavička. Příklady: %s.
settings.active=Aktivní
settings.active_helper=Informace o spuštěných událostech budou odeslány na URL webového háčku.
settings.add_hook_success=Webový háček byl přidán.
settings.add_hook_success=Webhook byl přidán.
settings.update_webhook=Upravit webhook
settings.update_hook_success=Webový háček byl aktualizován.
settings.update_hook_success=Webhook byl aktualizován.
settings.delete_webhook=Odstranit webhook
settings.recent_deliveries=Nedávná doručení
settings.hook_type=Typ hooku
@ -2436,7 +2439,7 @@ settings.protect_branch_name_pattern=Vzor jména chráněné větve
settings.protect_branch_name_pattern_desc=Vzory názvů chráněných větví. Pro vzorovou syntaxi viz <a href="%s">dokumentace</a>. Příklady: main, release/**
settings.protect_patterns=Vzory
settings.protect_protected_file_patterns=Vzory chráněných souborů (oddělené středníkem „;“)
settings.protect_protected_file_patterns_desc=Chráněné soubory, které nemají povoleno být měněny přímo, i když uživatel má právo přidávat, upravovat nebo mazat soubory v této větvi. Více vzorů lze oddělit pomocí středníku („;“). Podívejte se na <a href="%s">github.com/gobwas/glob</a> dokumentaci pro syntaxi vzoru. Příklady: <code>.drone.yml</code>, <code>/docs/**/*.txt</code>.
settings.protect_protected_file_patterns_desc=Chráněné soubory, které nemají povoleno být měněny přímo, i když uživatel má právo přidávat, upravovat nebo mazat soubory v této větvi. Více vzorů lze oddělit pomocí středníku („;“). Podívejte se na dokumentaci <a href="%[1]s">%[2]s</a> pro syntaxi vzoru. Příklady: <code>.drone.yml</code>, <code>/docs/**/*.txt</code>.
settings.protect_unprotected_file_patterns=Vzory nechráněných souborů (oddělené středníkem „;“)
settings.protect_unprotected_file_patterns_desc=Nechráněné soubory, které je možné měnit přímo, pokud má uživatel právo zápisu, čímž se obejde omezení push. Více vzorů lze oddělit pomocí středníku („;“). Podívejte se na <a href="%[1]s">%[2]s</a> dokumentaci pro syntaxi vzoru. Příklady: <code>.drone.yml</code>, <code>/docs/**/*.txt</code>.
settings.add_protected_branch=Zapnout ochranu
@ -2582,14 +2585,14 @@ diff.hide_file_tree=Skrýt souborový strom
releases.desc=Sledování verzí projektu a souborů ke stažení.
release.releases=Vydání
release.detail=Podrobnosti vydání
release.detail=Podrobnosti o vydání
release.tags=Značky
release.new_release=Nové vydání
release.draft=Koncept
release.prerelease=Předběžná verze
release.stable=Stabilní
release.compare=Porovnat
release.edit=upravit
release.edit=Upravit
release.ahead.commits=<strong>%d</strong> revizí
release.ahead.target=do %s od tohoto vydání
tag.ahead.target=do %s od této značky
@ -2718,7 +2721,7 @@ issues.label_archive = Štítek archivu
milestones.new_subheader = Milníky vám pomohou zorganizovat problémy a sledovat jejich pokrok.
pulls.nothing_to_compare_have_tag = Vybraná větev a značka jsou shodné.
activity.navbar.recent_commits = Nedávné commity
settings.units.units = Jednotky repozitáře
settings.units.units = Jednotky
pulls.blocked_by_user = V tomto repozitáři nemůžete vytvořit žádost o sloučení, protože jste byli zablokováni jeho majitelem.
pulls.clear_merge_message_hint = Vymazáním zprávy o sloučení pouze odstraníte obsah zprávy commitu a ponecháte vygenerované git trailery, jako „Co-Authored-By …“.
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.
@ -2727,7 +2730,7 @@ settings.pull_mirror_sync_in_progress = Probíhá načítání změn ze vzdálen
settings.enter_repo_name = Zadejte majitele a repozitář přesně tak, jak je vidíte níže:
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 = Pushnutý repozitář
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 na tuto žádost o sloučení z commitu <a id="%[1]s" href="#%[1]s">%[2]s</a>`
settings.wiki_rename_branch_main = Normalizovat název větve Wiki
@ -2744,7 +2747,7 @@ activity.navbar.contributors = Přispěvatelé
settings.mirror_settings.docs.pull_mirror_instructions = Pro nastavení pull zrcadla viz:
settings.mirror_settings.docs.doc_link_pull_section = sekci „Pulling from a remote repository“ v dokumentaci.
settings.units.overview = Přehled
settings.units.add_more = Přidat další...
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
@ -2783,8 +2786,8 @@ settings.enforce_on_admins_desc = Správci repozitáře nemohou obejít toto pra
issues.num_participants_one = %d účastník
size_format = %[1]s: %[2]s, %[3]s: %[4]s
issues.archived_label_description = (Archivován) %s
release.download_count_one = %d stažení
release.download_count_few = %d stažení
release.download_count_one = %s stažení
release.download_count_few = %s stažení
release.system_generated = Tato příloha byla automaticky vygenerována.
settings.add_webhook.invalid_path = Cesta nesmí obsahovat část, která je „.“ nebo „..“ nebo prázdný řetězec. Nesmí začínat ani končit lomítkem.
settings.web_hook_name_sourcehut_builds = Sestavení SourceHut
@ -2841,6 +2844,15 @@ mirror_denied_combination = Nelze použít kombinaci ověřování pomocí veře
mirror_public_key = Veřejný klíč SSH
settings.mirror_settings.push_mirror.none_ssh = Žádné
mirror_use_ssh.not_available = Ověřování SSH není dostupné.
issues.new.assign_to_me = Přiřadit mně
issues.all_title = Vše
settings.discord_icon_url.exceeds_max_length = Adresa URL ikony musí mít méně než 2048 znaků
issues.review.add_review_requests = požádal/a o kontroly od %[1]s %[2]s
issues.review.remove_review_requests = odstranil/a žádosti o kontrolu u %[1]s %[2]s
issues.review.add_remove_review_requests = požádal/a o kontroly od %[1]s a odstranil/a žádosti u %[2]s %[3]s
pulls.delete_after_merge.head_branch.is_default = Větev hlavy, kterou chcete odstranit, je výchozí větví a nelze ji odstranit.
pulls.delete_after_merge.head_branch.is_protected = Větev hlavy, kterou chcete odstranit, je chráněnou větví a nelze ji odstranit.
pulls.delete_after_merge.head_branch.insufficient_branch = Nemáte oprávnění k odstranění větve hlavy.
[graphs]
component_loading_info = Tohle může chvíli trvat…
@ -2885,7 +2897,7 @@ settings.email=Kontaktní e-mail
settings.website=Webové stránky
settings.location=Umístění
settings.permission=Oprávnění
settings.repoadminchangeteam=Správce úložišť může týmům přidávat a odebírat přístup
settings.repoadminchangeteam=Správce repozitářů může týmům přidávat a odebírat přístup
settings.visibility=Viditelnost
settings.visibility.public=Veřejná
settings.visibility.limited=Omezená (viditelné pouze pro ověřené uživatele)
@ -2904,7 +2916,7 @@ settings.delete_prompt=Organizace bude trvale odstraněna. Tato změna <strong>N
settings.confirm_delete_account=Potvrdit odstranění
settings.delete_org_title=Odstranit organizaci
settings.delete_org_desc=Tato organizace bude trvale smazána. Pokračovat?
settings.hooks_desc=Přidat webové háčky, které budou spouštěny pro <strong>všechny repozitáře</strong> v této organizaci.
settings.hooks_desc=Přidat webhooky, které budou spouštěny pro <strong>všechny repozitáře</strong> v této organizaci.
settings.labels_desc=Přidejte štítky, které mohou být použity pro problémy <strong>všech repozitářů</strong> v rámci této organizace.
@ -2983,7 +2995,7 @@ identity_access=Identita a přístup
users=Uživatelské účty
organizations=Organizace
repositories=Repozitáře
hooks=Webové háčky
hooks=Webhooky
integrations=Integrace
authentication=Zdroje ověření
emails=Uživatelské e-maily
@ -3183,12 +3195,12 @@ packages.size=Velikost
packages.published=Publikováno
defaulthooks=Výchozí webhooky
defaulthooks.add_webhook=Přidat výchozí webový háček
defaulthooks.update_webhook=Aktualizovat výchozí webový háček
defaulthooks.add_webhook=Přidat výchozí webhook
defaulthooks.update_webhook=Aktualizovat výchozí webhook
systemhooks=Systémové webhooky
systemhooks.add_webhook=Přidat systémový webový háček
systemhooks.update_webhook=Aktualizovat systémový webový háček
systemhooks.add_webhook=Přidat systémový webhook
systemhooks.update_webhook=Aktualizovat systémový webhook
auths.auth_manage_panel=Správa zdrojů ověřování
auths.new=Přidat zdroj ověřování
@ -3589,7 +3601,7 @@ future=budoucí
1y=1 rokem
seconds=%d sekundami
minutes=%d minutami
hours=%d hodinami
hours=%d hodin
days=%d dny
weeks=%d týdny
months=%d měsíci
@ -3636,7 +3648,7 @@ error.unit_not_allowed=Nejste oprávněni přistupovat k této části repozitá
[packages]
title=Balíčky
desc=Správa balíčků repozitáře.
empty=Zatím nejsou žádné balíčky.
empty=Zatím zde nejsou žádné balíčky.
empty.documentation=Další informace o registru balíčků naleznete v <a target="_blank" rel="noopener noreferrer" href="%s">dokumentaci</a>.
empty.repo=Nahráli jste balíček, ale nezobrazil se zde? Přejděte na <a href="%[1]s">nastavení balíčku</a> a propojte jej s tímto repozitářem.
registry.documentation=Další informace o registru %s naleznete v <a target="_blank" rel="noopener noreferrer" href="%s">dokumentaci</a>.
@ -3754,7 +3766,7 @@ settings.delete.success=Balíček byl odstraněn.
settings.delete.error=Nepodařilo se odstranit balíček.
owner.settings.cargo.title=Index registru Cargo
owner.settings.cargo.initialize=Inicializovat index
owner.settings.cargo.initialize.description=Pro použití Cargo registru je zapotřebí speciální index Git. Použití této možnosti (znovu)vytvoří repozitář a automaticky jej nastaví.
owner.settings.cargo.initialize.description=Pro použití registru Cargo je zapotřebí speciální index Git. Použití této možnosti (znovu) vytvoří repozitář a automaticky jej nastaví.
owner.settings.cargo.initialize.error=Nepodařilo se inicializovat Cargo index: %v
owner.settings.cargo.initialize.success=Index Cargo byl úspěšně vytvořen.
owner.settings.cargo.rebuild=Znovu vytvořit index
@ -3822,7 +3834,7 @@ management=Správa tajných klíčů
[actions]
actions=Akce
unit.desc=Spravovat integrované pipeliny CI/CD pomocí funkce Forgejo Actions
unit.desc=Spravovat integrované pipeliny CI/CD pomocí funkce Forgejo Actions.
status.unknown=Neznámý
status.waiting=Čekání
@ -3893,7 +3905,7 @@ workflow.disabled=Pracovní postup je zakázán.
variables=Proměnné
variables.management=Správa proměnných
variables.creation=Přidat proměnnou
variables.none=Zatím nejsou žádné proměnné.
variables.none=Zatím zde nejsou žádné proměnné.
variables.deletion=Odstranit proměnnou
variables.deletion.description=Odstranění proměnné je trvalé a nelze jej vrátit zpět. Pokračovat?
variables.description=Proměnné budou předány určitým akcím a nelze je přečíst jinak.
@ -3970,6 +3982,8 @@ pull_kind = Hledat pully...
union = Sdružené
union_tooltip = Zahrnout výsledky, které odpovídají jakýmkoli slovům odděleným mezerami
milestone_kind = Hledat milníky...
regexp = RegExp
regexp_tooltip = Interpretovat hledaný výraz jako regulární výraz
[markup]
filepreview.lines = Řádky %[1]d až %[2]d v souboru %[3]s
@ -3987,4 +4001,24 @@ eib = EiB
[translation_meta]
test = diky vsem za pomoc :)
test = diky vsem za pomoc :)
[repo.permissions]
pulls.write = <b>Zapisovat:</b> Zavírat žádosti o sloučení a spravovat metadata jako štítky, milníky, zpracovatele, data dokončení a závislosti.
packages.write = <b>Zapisovat:</b> Zveřejňovat a mazat balíčky připojené k repozitáři.
projects.read = <b>Číst:</b> Přístup k projektovým nástěnkám repozitáře.
code.write = <b>Zapisovat:</b> Odesílat změny do repozitáře, vytvářet větve a značky.
issues.write = <b>Zapisovat:</b> Zavírat problémy a spravovat metadata jako štítky, milníky, zpracovatele, data dokončení a závislosti.
pulls.read = <b>Číst:</b> Číst a vytvářet žádosti o sloučení.
releases.read = <b>Číst:</b> Zobrazovat a stahovat vydání.
releases.write = <b>Zapisovat:</b> Zveřejňovat, upravovat a mazat vydání a jejich soubory.
wiki.read = <b>Číst:</b> Číst integrovanou wiki a její historii.
wiki.write = <b>Zapisovat:</b> Vytvářet, aktualizovat a mazat stránky v integrované wiki.
projects.write = <b>Zapisovat:</b> Vytvářet projekty a sloupce a upravovat je.
packages.read = <b>Číst:</b> Zobrazovat a stahovat balíčky připojené k repozitáři.
actions.read = <b>Číst:</b> Zobrazovat integrované pipeliny CI/CD a jejich protokoly.
actions.write = <b>Zapisovat:</b> Ručně spouštět, restartovat, rušit nebo schvalovat čekající pipeliny CI/CD.
ext_wiki = Přístup k odkazu v externí wiki. Oprávnění jsou spravována externě.
code.read = <b>Číst:</b> Přístup a klonování kódu v repozitáři.
issues.read = <b>Číst:</b> Číst a vytvářet problémy a komentáře.
ext_issues = Přístup k odkazu v externím sledovacím systému problémů. Oprávnění jsou spravována externě.

View file

@ -318,7 +318,7 @@ run_user_not_match=Der „Ausführen als“-Benutzername ist nicht der aktuelle
internal_token_failed=Fehler beim Generieren des internen Tokens: %v
secret_key_failed=Fehler beim Generieren des geheimen Schlüssels: %v
save_config_failed=Fehler beim Speichern der Konfiguration: %v
invalid_admin_setting=Administrator-Konto Einstellungen sind ungültig: %v
invalid_admin_setting=Die Administratorkonto-Einstellungen sind ungültig: %v
invalid_log_root_path=Pfad zum Log-Verzeichnis ist ungültig: %v
default_keep_email_private=E-Mail-Adressen standardmäßig verbergen
default_keep_email_private.description=E-Mail-Adressen von neuen Benutzern standardmäßig verbergen, damit diese nicht direkt nach der Registrierung öffentlich wird.
@ -476,6 +476,8 @@ back_to_sign_in = Zurück zur Anmeldung
sign_in_openid = Mit OpenID fortfahren
hint_login = Hast du bereits ein Konto? <a href="%s">Jetzt anmelden!</a>
hint_register = Brauchst du ein Konto? <a href="%s">Jetzt registrieren.</a>
unauthorized_credentials = Die Zugangsdaten sind inkorrekt oder abgelaufen. Versuchen es erneut oder siehe %s für mehr Informationen
use_onetime_code = Einen One-Time-Code benutzen
[mail]
view_it_on=Auf %s ansehen
@ -716,6 +718,7 @@ public_activity.visibility_hint.self_public = Deine Aktivität ist sichtbar für
public_activity.visibility_hint.admin_public = Diese Aktivität ist sichtbar für alle, aber als Administrator kannst du außerdem Interaktionen in privaten Räumen sehen.
public_activity.visibility_hint.self_private = Deine Aktivität ist nur sichtbar für dich und den Instanzadministratoren. <a href="%s">Konfigurieren</a>.
public_activity.visibility_hint.admin_private = Diese Aktivität ist sichtbar für dich, weil du ein Administrator bist, aber der Benutzer will sie privat halten.
public_activity.visibility_hint.self_private_profile = Deine Aktivität ist nur für dich und die Instanzadministratoren sichtbar, weil den Profil privat ist. <a href="%s">Konfigurieren</a>.
[settings]
profile=Profil
@ -1038,7 +1041,7 @@ hints = Hinweise
additional_repo_units_hint = Aktivierung zusätzlicher Repository-Einheiten vorschlagen
update_hints = Hinweise aktualisieren
update_hints_success = Hinweise wurden aktualisiert.
additional_repo_units_hint_description = Einen „Mehr Einheiten hinzufügen …“-Button für Repositorys, welche nicht alle verfügbaren Einheiten aktiviert haben, anzeigen.
additional_repo_units_hint_description = Einen „Mehr aktivieren“-Hinweis für Repositories, welche nicht alle verfügbaren Einheiten aktiviert haben, anzeigen.
pronouns = Pronomen
pronouns_custom = Eigene
pronouns_unspecified = Nicht spezifiziert
@ -1208,12 +1211,12 @@ migrate.migrate_items_options=Zugangs-Token wird benötigt, um zusätzliche Elem
migrated_from=Migriert von <a href="%[1]s">%[2]s</a>
migrated_from_fake=Migriert von %[1]s
migrate.migrate=Migrieren von %s
migrate.migrating=Migriere von <b>%s</b> ...
migrate.migrating=Migriere von <b>%s</b>
migrate.migrating_failed=Migrieren von <b>%s</b> fehlgeschlagen.
migrate.migrating_failed.error=Migration fehlgeschlagen: %s
migrate.migrating_failed_no_addr=Migration fehlgeschlagen.
migrate.github.description=Daten von github.com oder GitHub-Enterprise-Server migrieren.
migrate.git.description=Ein Repository von einem beliebigen Git Service klonen.
migrate.git.description=Ein Repository von einem beliebigen Git-Service klonen.
migrate.gitlab.description=Daten von gitlab.com oder anderen GitLab-Instanzen migrieren.
migrate.gitea.description=Daten von gitea.com oder anderen Gitea-Instanzen migrieren.
migrate.gogs.description=Daten von notabug.org oder anderen Gogs-Instanzen migrieren.
@ -1275,7 +1278,7 @@ org_labels_desc_manage=verwalten
milestones=Meilensteine
commits=Commits
commit=Commit
release=Erscheinungsdatum
release=Release
releases=Releases
tag=Tag
released_this=hat released
@ -1299,7 +1302,7 @@ ambiguous_character=`%[1]c [U+%04[1]X] kann mit %[2]c [U+%04[2]X] verwechselt we
escape_control_characters=Escapen
unescape_control_characters=Unescapen
file_copy_permalink=Permalink kopieren
view_git_blame=Git Blame ansehen
view_git_blame=„git blame“ ansehen
video_not_supported_in_browser=Dein Browser unterstützt das HTML5-„video“-Tag nicht.
audio_not_supported_in_browser=Dein Browser unterstützt das HTML5-„audio“-Tag nicht.
stored_lfs=Gespeichert mit Git LFS
@ -1316,7 +1319,7 @@ commit.load_referencing_branches_and_tags=Lade Branches und Tags, die diesen Com
blame=Blame
download_file=Datei herunterladen
normal_view=Normale Ansicht
line=zeile
line=Zeile
lines=Zeilen
from_comment=(Kommentar)
@ -1420,7 +1423,7 @@ commitstatus.failure=Fehler
commitstatus.pending=Ausstehend
commitstatus.success=Erfolg
ext_issues=Zugriff auf Externe Issues
ext_issues=Externe Issues
ext_issues.desc=Link zu externem Issuetracker.
projects=Projekte
@ -1521,7 +1524,7 @@ issues.remove_milestone_at=`hat dieses Issue %[2]s vom <b>%[1]s</b> Meilenstein
issues.remove_project_at=`hat dies vom Projekt <b>%s</b> %s entfernt`
issues.deleted_milestone=`(gelöscht)`
issues.deleted_project=`(gelöscht)`
issues.self_assign_at=`hat sich das Issue %s selbst zugewiesen`
issues.self_assign_at=`hat sich %s selbst zugewiesen`
issues.add_assignee_at=`wurde von <b>%s</b> %s zugewiesen`
issues.remove_assignee_at=`wurde von <b>%s</b> von der Zuweisung %s befreit`
issues.remove_self_assignment=`hat die Selbstzuweisung %s entfernt`
@ -1601,9 +1604,9 @@ issues.no_content=Keine Beschreibung angegeben.
issues.close=Issue schließen
issues.comment_pull_merged_at=hat Commit %[1]s in %[2]s %[3]s zusammengeführt
issues.comment_manually_pull_merged_at=hat Commit %[1]s in %[2]s %[3]s manuell zusammengeführt
issues.close_comment_issue=Kommentieren und schließen
issues.close_comment_issue=Mit Kommentar schließen
issues.reopen_issue=Wieder öffnen
issues.reopen_comment_issue=Kommentieren und wieder öffnen
issues.reopen_comment_issue=Mit Kommentar wieder öffnen
issues.create_comment=Kommentieren
issues.closed_at=`hat diesen Issue <a id="%[1]s" href="#%[1]s">%[2]s</a> geschlossen`
issues.reopened_at=`hat dieses Issue <a id="%[1]s" href="#%[1]s">%[2]s</a> wieder geöffnet`
@ -1647,7 +1650,7 @@ issues.label_archive_tooltip=Archivierte Labels werden bei der Suche nach Labels
issues.label_exclusive_desc=Nenn das Label <code>Bereich/Element</code>, um es gegenseitig ausschließend mit anderen <code>Bereich/</code>-Labels zu machen.
issues.label_exclusive_warning=Alle im Konflikt stehenden Labels werden beim Bearbeiten der Labels eines Issues oder eines Pull-Requests entfernt.
issues.label_count=%d Labels
issues.label_open_issues=%d offene Issues
issues.label_open_issues=%d offene Issues/Pull-Requests
issues.label_edit=Bearbeiten
issues.label_delete=Löschen
issues.label_modify=Label bearbeiten
@ -1770,8 +1773,8 @@ issues.review.left_comment=hat einen Kommentar hinterlassen
issues.review.content.empty=Du musst einen Kommentar hinterlassen, der die gewünschte(n) Änderung(en) beschreibt.
issues.review.reject=hat %s Änderungen angefragt
issues.review.wait=wurde für ein Review %s angefragt
issues.review.add_review_request=hat ein Review von %s %s angefragt
issues.review.remove_review_request=hat die Aufforderung zum Review an %s %s entfernt
issues.review.add_review_request=hat ein Review von %[1]s %[2]s angefragt
issues.review.remove_review_request=hat die Aufforderung zum Review an %[1]s %[2]s entfernt
issues.review.remove_review_request_self=hat das Review verweigert %s
issues.review.pending=Ausstehend
issues.review.pending.tooltip=Dieser Kommentar ist derzeit nicht für andere Benutzer sichtbar. Um deine ausstehenden Kommentare einzureichen, wähle „%s“ -> „%s/%s/%s“ oben auf der Seite.
@ -1851,7 +1854,7 @@ pulls.still_in_progress=Noch in Bearbeitung?
pulls.add_prefix=Präfix „<strong>%s</strong>“ hinzufügen
pulls.remove_prefix=Präfix „<strong>%s</strong>“ entfernen
pulls.data_broken=Dieser Pull-Requests ist kaputt, da Fork-Informationen gelöscht wurden.
pulls.files_conflicted=Dieser Pull-Request hat Änderungen, die im Widerspruch zum Ziel-Branch stehen.
pulls.files_conflicted=Dieser Pull-Request hat Änderungen, die Konflikte mit dem Ziel-Branch haben.
pulls.is_checking=Die Merge-Konfliktprüfung läuft noch. Bitte aktualisiere die Seite in wenigen Augenblicken.
pulls.is_ancestor=Dieser Branch ist bereits im Zielbranch enthalten. Es existiert nichts zusammenzuführen.
pulls.is_empty=Die Änderungen an diesem Branch sind bereits auf dem Zielbranch. Dies wird ein leerer Commit sein.
@ -1984,7 +1987,7 @@ signing.wont_sign.commitssigned=Der Merge-Commit wird nicht signiert werden, da
signing.wont_sign.approved=Der Merge-Commit wird nicht signiert werden, da der Pull-Request nicht genehmigt wurde.
signing.wont_sign.not_signed_in=Du bist nicht eingeloggt.
ext_wiki=Zugriff auf externes Wiki
ext_wiki=Externes Wiki
ext_wiki.desc=Verweis auf externes Wiki.
wiki=Wiki
@ -2308,32 +2311,32 @@ settings.event_push_desc=Git push in ein Repository.
settings.event_repository=Repository
settings.event_repository_desc=Repository erstellt oder gelöscht.
settings.event_header_issue=Issue-Ereignisse
settings.event_issues=Issues
settings.event_issues=Änderung
settings.event_issues_desc=Issue geöffnet, geschlossen, wieder geöffnet oder bearbeitet.
settings.event_issue_assign=Issue zugewiesen
settings.event_issue_assign=Zuweisung
settings.event_issue_assign_desc=Issue zugewiesen oder Zuweisung entfernt.
settings.event_issue_label=Issue mit Label versehen
settings.event_issue_label_desc=Issue-Labels aktualisiert oder geleert.
settings.event_issue_milestone=Meilenstein einem Issue zugewiesen
settings.event_issue_milestone_desc=Meilenstein zu Issue hinzugefügt oder entfernt.
settings.event_issue_comment=Issue-Kommentar
settings.event_issue_label=Labels
settings.event_issue_label_desc=Issue-Labels hinzugefügt oder entfernt.
settings.event_issue_milestone=Meilensteine
settings.event_issue_milestone_desc=Meilenstein hinzugefügt, entfernt oder verändert.
settings.event_issue_comment=Kommentare
settings.event_issue_comment_desc=Issue-Kommentar angelegt, geändert oder gelöscht.
settings.event_header_pull_request=Pull-Request-Ereignisse
settings.event_pull_request=Pull-Request
settings.event_pull_request=Änderung
settings.event_pull_request_desc=Pull-Request geöffnet, geschlossen, wieder geöffnet oder bearbeitet.
settings.event_pull_request_assign=Pull-Request zugewiesen
settings.event_pull_request_assign=Zuweisung
settings.event_pull_request_assign_desc=Pull-Request zugewiesen oder Zuweisung entfernt.
settings.event_pull_request_label=Pull-Request mit Label versehen
settings.event_pull_request_label_desc=Pull-Request-Labels aktualisiert oder geleert.
settings.event_pull_request_milestone=Pull-Request zum Meilenstein hinzugefügt
settings.event_pull_request_milestone_desc=Pull-Request zum Meilenstein hinzugefügt oder entfernt.
settings.event_pull_request_comment=Pull-Request-Kommentar
settings.event_pull_request_label=Labels
settings.event_pull_request_label_desc=Pull-Request-Labels hinzugefügt oder entfernt.
settings.event_pull_request_milestone=Meilensteine
settings.event_pull_request_milestone_desc=Meilenstein hinzugefügt, entfernt oder bearbeitet.
settings.event_pull_request_comment=Kommentare
settings.event_pull_request_comment_desc=Pull-Request-Kommentar angelegt, geändert oder gelöscht.
settings.event_pull_request_review=Pull-Request überprüft
settings.event_pull_request_review_desc=Pull-Request genehmigt, abgelehnt oder Kommentar hinterlassen.
settings.event_pull_request_sync=Pull-Request synchronisiert
settings.event_pull_request_sync_desc=Pull-Request synchronisiert.
settings.event_pull_request_review_request=Überprüfung des Pull-Requests angefragt
settings.event_pull_request_review=Reviews
settings.event_pull_request_review_desc=Pull-Request genehmigt, abgelehnt oder Review-Kommentare hinterlassen.
settings.event_pull_request_sync=Synchronisiert
settings.event_pull_request_sync_desc=Branch automatisch mit Zielbranch aktualisiert.
settings.event_pull_request_review_request=Review-Anfragen
settings.event_pull_request_review_request_desc=Überprüfung des Pull-Requests angefragt oder die Anfrage entfernt.
settings.event_pull_request_approvals=Genehmigungen zum Pull-Request
settings.event_pull_request_merge=Pull-Request-Merge
@ -2434,7 +2437,7 @@ settings.require_signed_commits_desc=Pushes auf diesen Branch ablehnen, wenn Com
settings.protect_branch_name_pattern=Muster für geschützte Branchnamen
settings.protect_patterns=Muster
settings.protect_protected_file_patterns=Geschützte Dateimuster (durch Semikolon „;“ getrennt)
settings.protect_protected_file_patterns_desc=Geschützte Dateien dürfen nicht direkt geändert werden, auch wenn der Benutzer Rechte hat, Dateien in diesem Branch hinzuzufügen, zu bearbeiten oder zu löschen. Mehrere Muster können mit Semikolon („;“) getrennt werden. Siehe <a href="%s">github.com/gobwas/glob</a> Dokumentation zur Mustersyntax. Beispiele: <code>.drone.yml</code>, <code>/docs/**/*.txt</code>.
settings.protect_protected_file_patterns_desc=Geschützte Dateien dürfen nicht direkt geändert werden, auch wenn der Benutzer Rechte hat, Dateien in diesem Branch hinzuzufügen, zu bearbeiten oder zu löschen. Mehrere Muster können mit Semikolon („;“) getrennt werden. Siehe <a href="%s">%s</a> Dokumentation zur Mustersyntax. Beispiele: <code>.drone.yml</code>, <code>/docs/**/*.txt</code>.
settings.protect_unprotected_file_patterns=Ungeschützte Dateimuster (durch Semikolon „;“ getrennt)
settings.protect_unprotected_file_patterns_desc=Ungeschützte Dateien, die direkt geändert werden dürfen, wenn der Benutzer Schreibzugriff hat, können die Push-Beschränkung umgehen. Mehrere Muster können mit Semikolon („;“) getrennt werden. Siehe <a href="%[1]s">%[2]s</a> Dokumentation zur Mustersyntax. Beispiele: <code>.drone.yml</code>, <code>/docs/**/*.txt</code>.
settings.add_protected_branch=Schutz aktivieren
@ -2503,7 +2506,7 @@ settings.lfs_invalid_locking_path=Ungültiger Pfad: %s
settings.lfs_invalid_lock_directory=Verzeichnis kann nicht gesperrt werden: %s
settings.lfs_lock_already_exists=Sperre existiert bereits: %s
settings.lfs_lock=Sperren
settings.lfs_lock_path=Zu sperrender Dateipfad...
settings.lfs_lock_path=Zu sperrender Dateipfad
settings.lfs_locks_no_locks=Keine Sperren
settings.lfs_lock_file_no_exist=Gesperrte Datei existiert nicht im Standard-Branch
settings.lfs_force_unlock=Freigabe erzwingen
@ -2587,7 +2590,7 @@ release.draft=Entwurf
release.prerelease=Pre-Release
release.stable=Stabil
release.compare=Vergleichen
release.edit=bearbeiten
release.edit=Bearbeiten
release.ahead.commits=<strong>%d</strong> Commits
release.ahead.target=zu %s seit dieser Version
tag.ahead.target=auf %s seit diesem Tag
@ -2684,7 +2687,7 @@ rss.must_be_on_branch = Du musst auf einem Branch sein, um einen RSS-Feed zu hab
new_repo_helper = Ein Repository enthält alle Projektdateien inklusive der Revisionshistorie. Bereits woanders gehostet? <a href="%s">Repository migrieren.</a>
issues.comment.blocked_by_user = Du kannst kein Kommentar für dieses Issue erstellen, weil du vom Repository-Besitzer oder dem Autoren des Issues blockiert wurdest.
clone_in_vscodium = In VSCodium klonen
settings.units.add_more = Mehr hinzufügen …
settings.units.add_more = Mehr aktivieren
settings.wiki_rename_branch_main_desc = Den Branch, der intern vom Wiki benutzt wird, zu „%s“ umbenennen. Dies ist permanent und kann nicht rückgängig gemacht werden.
desc.sha256 = SHA256
object_format_helper = Objektformat des Repositorys. Kann später nicht geändert werden. SHA1 ist am kompatibelsten.
@ -2727,7 +2730,7 @@ pulls.fast_forward_only_merge_pull_request = Nur Fast-forward
pulls.cmd_instruction_checkout_desc = Checke einen neuen Branch aus deinem Projekt-Repository aus und teste die Änderungen.
pulls.cmd_instruction_merge_title = Zusammenführen
pulls.cmd_instruction_merge_desc = Die Änderungen zusammenführen und auf Forgejo aktualisieren.
settings.units.units = Repository-Einheiten
settings.units.units = Einheiten
settings.units.overview = Übersicht
settings.wiki_rename_branch_main_notices_1 = Diese Aktion <strong>KANN NICHT</strong> rückgängig gemacht werden.
settings.wiki_rename_branch_main_notices_2 = Dies wird den internen Branch des Repository-Wikis von %s permanent umbenennen. Existierende Checkouts müssen aktualisiert werden.
@ -2826,6 +2829,15 @@ mirror_denied_combination = Authentifizierung mittels öffentlichem Schlüssel u
settings.mirror_settings.push_mirror.none_ssh = Nichts
settings.mirror_settings.push_mirror.copy_public_key = Öffentlichen Schlüssel kopieren
mirror_use_ssh.not_available = SSH-Authentifizierung ist nicht verfügbar.
issues.new.assign_to_me = Mir selbst zuweisen
issues.all_title = Alle
settings.discord_icon_url.exceeds_max_length = Die Icon-URL darf eine Länge von 2048 Zeichen nicht überschreiten
issues.review.add_review_requests = hat Reviews von %[1]s %[2]s angefragt
issues.review.remove_review_requests = hat Aufforderungen zum Review an %[1]s %[2]s entfernt
issues.review.add_remove_review_requests = hat Reviews von %[1]s angefragt und hat die Aufforderungen zum Review an %[2]s %[3]s entfernt
pulls.delete_after_merge.head_branch.is_default = Der Head-Branch, den Sie löschen wollen, ist der Standardbranch und kann nicht gelöscht werden.
pulls.delete_after_merge.head_branch.is_protected = Der Head-Branch, den Sie löschen wollen, ist ein geschützter Branch und kann nicht gelöscht werden.
pulls.delete_after_merge.head_branch.insufficient_branch = Sie haben keine Erlaubnis, den Head-Branch zu löschen.
[graphs]
@ -3265,12 +3277,12 @@ auths.tip.bitbucket=Registriere einen neuen OAuth-Consumer unter %s
auths.tip.nextcloud=Registriere einen neuen OAuth-Consumer auf deiner Instanz über das folgende Menü: „Settings -> Security -> OAuth 2.0 client“
auths.tip.dropbox=Erstelle eine neue App auf %s
auths.tip.facebook=Erstelle eine neue Anwendung auf %s und füge das Produkt „Facebook Login“ hinzu
auths.tip.github=Erstelle unter %s eine neue OAuth-Anwendung.
auths.tip.github=Registriere unter %s eine neue OAuth-Anwendung
auths.tip.gitlab=Erstelle unter https://gitlab.com/profile/applications eine neue Anwendung.
auths.tip.google_plus=Du erhältst die OAuth2-Client-Zugangsdaten in der Google-API-Konsole unter %s
auths.tip.openid_connect=Benutze die OpenID-Connect-Discovery-URL (<server>/.well-known/openid-configuration), um die Endpunkte zu spezifizieren
auths.tip.twitter=Gehe auf %s, erstelle eine Anwendung und stelle sicher, dass die Option „Allow this application to be used to Sign in with Twitter“ aktiviert ist
auths.tip.discord=Erstelle unter %s eine neue Anwendung.
auths.tip.discord=Registriere unter %s eine neue Anwendung
auths.tip.gitea=Registriere eine neue OAuth2-Anwendung. Eine Anleitung findest du unter %s
auths.tip.yandex=`Erstelle eine neue Anwendung auf %s. Wähle folgende Berechtigungen aus dem Abschnitt „Yandex.Passport API“: „Zugriff auf E-Mail-Adresse“, „Zugriff auf Benutzeravatar“ und „Zugriff auf Benutzername, Vor- und Nachname, Geschlecht“`
auths.tip.mastodon=Gib eine benutzerdefinierte URL für die Mastodon-Instanz ein, mit der du dich authentifizieren möchtest (oder benutze die standardmäßige)
@ -3792,7 +3804,7 @@ management=Secrets verwalten
[actions]
actions=Actions
unit.desc=Integrierte CI/CD-Pipelines mit Forgejo-Actions verwalten
unit.desc=Integrierte CI/CD-Pipelines mit Forgejo-Actions verwalten.
status.unknown=Unbekannt
status.waiting=Wartend
@ -3947,6 +3959,8 @@ pull_kind = Pulls durchsuchen …
union = Vereinigungsmenge
union_tooltip = Ergebnisse, die auf ein beliebiges von den Whitespace getrennten Schlüsselwörtern passen, einbinden
milestone_kind = Meilensteine suchen …
regexp = RegExp
regexp_tooltip = Suchbegriff als regulären Ausdruck interpretieren
[markup]
filepreview.line = Zeile %[1]d in %[2]s
@ -3964,4 +3978,24 @@ eib = EiB
[translation_meta]
test = ok
test = ok
[repo.permissions]
code.write = <b>Schreiben:</b> In das Repository pushen, Branches und Tags erstellen.
code.read = <b>Lesen:</b> Zugriff auf das Repository und Klonen.
issues.read = <b>Lesen:</b> Issues und Kommentare lesen und erstellen.
issues.write = <b>Schreiben:</b> Issues schließen und Metadaten wie Labels, Meilensteine, Zuweisungen, Fälligkeitsdaten und Abhängigkeiten verwalten.
pulls.read = <b>Lesen:</b> Pull-Requests lesen und erstellen.
releases.read = <b>Lesen:</b> Releases ansehen und herunterladen.
releases.write = <b>Schreiben:</b> Releases und ihre Assets veröffentlichen, bearbeiten und löschen.
wiki.read = <b>Lesen:</b> Das integrierte Wiki und seine Historie lesen.
wiki.write = <b>Schreiben:</b> Seiten im integrierten Wiki erstellen, aktualisieren und löschen.
projects.read = <b>Lesen:</b> Zugriff auf Projektboards des Repositories.
projects.write = <b>Schreiben:</b> Projekte und Spalten erstellen und bearbeiten.
packages.read = <b>Lesen:</b> Pakete dieses Repositories betrachten und herunterladen.
packages.write = <b>Schreiben:</b> Pakete dieses Repositories veröffentlichen und löschen.
actions.read = <b>Lesen:</b> Integrierte CI/CD-Pipelines und ihre Logs betrachten.
actions.write = <b>Schreiben:</b> Ausstehende CI/CD-Pipelines manuell auslösen, neustarten, abbrechen oder genehmigen.
ext_issues = Zugriff auf den Link zu einem externen Issue-Tracker. Die Berechtigungen werden extern verwaltet.
ext_wiki = Zugriff auf den Link zu einem externen Wiki. Die Berechtigungen werden extern verwaltet.
pulls.write = <b>Schreiben:</b> Pull-Requests schließen und Metadaten wie Labels, Meilensteine, Zuweisungen, Fälligkeitsdaten und Abhängigkeiten verwalten.

View file

@ -51,7 +51,7 @@ webauthn_error_empty=Πρέπει να ορίσετε ένα όνομα για
webauthn_error_timeout=Το χρονικό όριο έφτασε πριν το κλειδί να διαβαστεί. Παρακαλώ ανανεώστε τη σελίδα και προσπαθήστε ξανά.
webauthn_reload=Ανανέωση
repository=Αποθετήριο
repository=Repository
organization=Οργανισμός
mirror=Αντίγραφο
new_repo=Νέο αποθετήριο
@ -129,7 +129,7 @@ archived=Αρχειοθετήθηκε
concept_system_global=Γενικό
concept_user_individual=Ατομικό
concept_code_repository=Αποθετήριο
concept_code_repository=Repository
concept_user_organization=Οργανισμός
show_timestamps=Εμφάνιση χρονοσημάνσεων
@ -160,11 +160,11 @@ invalid_data = Τα δεδομένα δεν είναι έγκυρα: %v
test = Τεστ
copy_generic = Αντιγραφή στο πρόχειρο
error413 = Έχετε εξαντλήσει τους διαθέσιμους πόρους σας.
new_repo.link = Νέο αποθετήριο
new_repo.link = Νέο repository
new_migrate.link = Νέα μεταφορά
new_org.link = Νέος οργανισμός
new_migrate.title = Νέα μεταφορά
new_repo.title = Νέο αποθετήριο
new_repo.title = Νέο repository
new_org.title = Νέος οργανισμός
[aria]
@ -504,8 +504,8 @@ reset_password.text=Εφόσον το αίτημα δημιουργήθηκε α
register_success=Η εγγραφή ολοκληρώθηκε επιτυχώς
issue_assigned.pull=Ο/Η @%[1]s σας έχει αναθέσει στο pull request %[2]s στο αποθετήριο %[3]s.
issue_assigned.issue=Ο/Η @%[1]s σας ανέθεσε το ζήτημα %[2]s στο αποθετήριο %[3]s.
issue_assigned.pull=Ο/Η @%[1]s σας έχει αναθέσει στο pull request %[2]s στο repository %[3]s.
issue_assigned.issue=Ο/Η @%[1]s σας ανέθεσε το ζήτημα %[2]s στο repository %[3]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.
@ -530,13 +530,13 @@ release.downloads=Λήψεις:
release.download.zip=Πηγαίος Κώδικας (ZIP)
release.download.targz=Πηγαίος Κώδικας (TAR.GZ)
repo.transfer.subject_to=Ο/Η %s θα ήθελε να μεταφέρει το αποθετήριο «%s» σε %s
repo.transfer.subject_to_you=Ο/Η %s θα ήθελε να σας μεταφέρει το αποθετήριο «%s»
repo.transfer.subject_to=Ο/Η %s θα ήθελε να μεταφέρει το repository «%s» στο %s
repo.transfer.subject_to_you=Ο/Η %s θα ήθελε να σας μεταφέρει το repository «%s»
repo.transfer.to_you=εσάς
repo.transfer.body=Για να αποδεχτείτε ή να απορρίψετε το αίτημα αυτό, επισκεφθείτε το %s ή απλά αγνοήστε το.
repo.collaborator.added.subject=Ο/Η %s σας πρόσθεσε στο %s ως συνεργάτη
repo.collaborator.added.text=Είστε πλέον συνεργάτης στο αποθετήριο:
repo.collaborator.added.text=Είστε πλέον συνεργάτης στο repository:
team_invite.subject=Ο/Η %[1]s σας προσκάλεσε να συμμετέχετε στον οργανισμό %[2]s
team_invite.text_1=Ο/Η %[1]s σας προσκάλεσε να συμμετέχετε στην ομάδα %[2]s του οργανισμού %[3]s.
@ -615,10 +615,10 @@ username_change_not_local_user=Δεν επιτρέπεται στους μη τ
username_has_not_been_changed=Το όνομα χρήστη δεν άλλαξε
repo_name_been_taken=Το όνομα του αποθετηρίου χρησιμοποιείται ήδη.
repository_force_private=Η επιλογή Μόνο Ιδιωτικά είναι ενεργοποιημένη: τα ιδιωτικά αποθετήρια δεν μπορούν να δημοσιευθούν.
repository_files_already_exist=Αρχεία υπάρχουν ήδη για αυτό το αποθετήριο. Επικοινωνήστε με το διαχειριστή του συστήματος.
repository_files_already_exist.adopt=Αρχεία υπάρχουν ήδη για αυτό το αποθετήριο και μπορούν να Υιοθετηθούν μόνο.
repository_files_already_exist.delete=Τα αρχεία υπάρχουν ήδη για αυτόν το αποθετήριο. Πρέπει να τα διαγράψετε.
repository_files_already_exist.adopt_or_delete=Τα αρχεία υπάρχουν ήδη για αυτόν το αποθετήριο. Είτε υιοθετήστε τα είτε διαγράψτε τα.
repository_files_already_exist=Αρχεία υπάρχουν ήδη για αυτό το repository. Επικοινωνήστε με το διαχειριστή του συστήματος.
repository_files_already_exist.adopt=Αρχεία υπάρχουν ήδη για αυτό το repository και μπορούν μόνο να υιοθετηθούν.
repository_files_already_exist.delete=Τα αρχεία υπάρχουν ήδη για αυτόν το repository. Πρέπει να τα διαγράψετε.
repository_files_already_exist.adopt_or_delete=Υπάρχουν ήδη τα αρχεία για αυτό το repository. Πρέπει να τα υιοθετήσετε ή να τα διαγράψετε.
visit_rate_limit=Συναντήθηκε το όριο ρυθμού κατά την απομακρυσμένη πρόσβαση.
2fa_auth_required=Απαιτήθηκε ταυτοποίηση δύο παραγόντων κατά την απομακρυσμένη πρόσβαση.
org_name_been_taken=Το όνομα του οργανισμού χρησιμοποιείται ήδη.
@ -925,7 +925,7 @@ access_token_deletion_cancel_action=Άκυρο
access_token_deletion_confirm_action=Διαγραφή
access_token_deletion_desc=Η διαγραφή ενός διακριτικού θα ανακαλέσει οριστικά την πρόσβαση στο λογαριασμό σας για εφαρμογές που το χρησιμοποιούν. Συνέχεια;
delete_token_success=Το διακριτικό έχει διαγραφεί. Οι εφαρμογές που το χρησιμοποιούν δεν έχουν πλέον πρόσβαση στο λογαριασμό σας.
repo_and_org_access=Πρόσβαση στο Αποθετήριο και Οργανισμό
repo_and_org_access=Πρόσβαση στο repository και οργανισμό
permissions_public_only=Δημόσια μόνο
permissions_access_all=Όλα (δημόσια, ιδιωτικά, και περιορισμένα)
select_permissions=Επιλογή δικαιωμάτων
@ -1005,7 +1005,7 @@ remove_account_link_success=Ο συνδεδεμένος λογαριασμός
hooks.desc=Προσθήκη webhooks που θα ενεργοποιούνται για <strong>όλα τα αποθετήρια</strong> που σας ανήκουν.
orgs_none=Δεν είστε μέλος σε κάποιο οργανισμό.
repos_none=Δεν σας ανήκει κανένα κάποιο αποθετήριο.
repos_none=Δεν υπάρχει κάποιο repository που σας ανήκει.
delete_account=Διαγραφή του λογαριασμού σας
delete_prompt=Αυτή η ενέργεια θα διαγράψει μόνιμα το λογαριασμό σας. <strong>ΔΕΝ ΘΑ ΜΠΟΡΕΙ</strong> να επανέλθει.
@ -1047,7 +1047,7 @@ language.localization_project = Βοηθήστε μας να μεταφράσο
language.description = Από εδώ και στο εξής, αυτή η γλώσσα θα χρησιμοποιείται από προεπιλογή για τον λογαριασμό σας.
[repo]
new_repo_helper=Ένα αποθετήριο περιέχει όλα τα αρχεία έργου, συμπεριλαμβανομένου του ιστορικού εκδόσεων. Ήδη φιλοξενείται αλλού; <a href="%s">Μετεγκατάσταση αποθετηρίου.</a>
new_repo_helper=Ένα repository περιέχει όλα τα αρχεία έργου, συμπεριλαμβανομένου του ιστορικού εκδόσεων. Έχετε ήδη ένα που φιλοξενείται κάπου αλλού; <a href="%s">Μεταφορά αποθετηρίου.</a>
owner=Ιδιοκτήτης
owner_helper=Ορισμένοι οργανισμοί ενδέχεται να μην εμφανίζονται στο αναπτυσσόμενο μενού λόγω του μέγιστου αριθμού αποθετηρίων.
repo_name=Όνομα αποθετηρίου
@ -1055,7 +1055,7 @@ repo_name_helper=Τα καλά ονόματα αποθετηρίων χρησι
repo_size=Μέγεθος Αποθετηρίου
template=Πρότυπο
template_select=Επιλέξτε ένα πρότυπο
template_helper=Μετατροπή σε πρότυπο αποθετήριο
template_helper=Μετατροπή σε πρότυπο repository
template_description=Τα πρότυπα αποθετήρια επιτρέπουν στους χρήστες να δημιουργήσουν νέα αποθετήρια με την ίδια δομή, αρχεία και προαιρετικές ρυθμίσεις.
visibility=Ορατότητα
visibility_description=Μόνο ο ιδιοκτήτης ή τα μέλη του οργανισμού εάν έχουν δικαιώματα, θα είναι σε θέση να το δουν.
@ -1070,7 +1070,7 @@ fork_to_different_account=Fork σε διαφορετικό λογαριασμό
fork_visibility_helper=Η ορατότητα ενός fork αποθετηρίου δεν μπορεί να αλλάξει.
fork_branch=Κλάδος που θα κλωνοποιηθεί στο fork
all_branches=Όλοι οι κλάδοι
fork_no_valid_owners=Αυτό το αποθετήριο δεν μπορεί να γίνει fork επειδή δεν υπάρχουν έγκυροι ιδιοκτήτες.
fork_no_valid_owners=Αυτό το repository δεν μπορεί να γίνει fork, επειδή δεν υπάρχουν έγκυροι ιδιοκτήτες.
use_template=Χρήση αυτού του πρότυπου
clone_in_vsc=Κλωνοποίηση στο VS Code
download_zip=Λήψη ZIP
@ -1120,7 +1120,7 @@ mirror_password_blank_placeholder=(Μη ορισμένο)
mirror_password_help=Αλλάξτε το όνομα χρήστη για να διαγράψετε έναν αποθηκευμένο κωδικό πρόσβασης.
watchers=Παρατηρητές
stargazers=Θαυμαστές
stars_remove_warning=Αυτό θα αφαιρέσει όλα τα αστέρια από αυτό το αποθετήριο.
stars_remove_warning=Αυτό θα αφαιρέσει όλα τα αστέρια από αυτό το repository.
forks=Forks
reactions_more=και %d περισσότερα
unit_disabled=Ο διαχειριστής του ιστότοπου έχει απενεργοποιήσει αυτήν την ενότητα αποθετηρίου.
@ -1129,7 +1129,7 @@ adopt_search=Εισάγετε όνομα χρήστη για αναζήτηση
adopt_preexisting_label=Υιοθέτηση αρχείων
adopt_preexisting=Υιοθετήστε τα προϋπάρχοντα αρχεία
adopt_preexisting_content=Δημιουργία αποθετηρίου από %s
adopt_preexisting_success=Υιοθετήθηκαν αρχεία και δημιουργήθηκε το αποθετήριο από %s
adopt_preexisting_success=Υιοθετήθηκαν αρχεία και δημιουργήθηκε το repository από %s
delete_preexisting_label=Διαγραφή
delete_preexisting=Διαγραφή αρχείων που προϋπήρχαν
delete_preexisting_content=Διαγραφή αρχείων στο %s
@ -1159,17 +1159,17 @@ desc.archived=Αρχειοθετημένο
template.items=Αντικείμενα προτύπου
template.git_content=Περιεχόμενο Git (Προεπιλεγμένος κλάδος)
template.git_hooks=Git hooks
template.git_hooks_tooltip=Δεν θα μπορέσετε να αφαιρέσετε ή να τροποποιήσετε τα Git hook αφού τα έχετε προσθέσει. Επιλέξτε την ρύθμιση αυτή μόνο αν εμπιστεύεστε το πρότυπο αποθετήριο.
template.git_hooks_tooltip=Δεν θα μπορέσετε να αφαιρέσετε ή να τροποποιήσετε τα Git hook αφού τα έχετε προσθέσει. Επιλέξτε την ρύθμιση αυτή μόνο αν εμπιστεύεστε το πρότυπο repository.
template.webhooks=Webhooks
template.topics=Θέματα
template.avatar=Εικόνα
template.issue_labels=Ταμπέλες ζητημάτων
template.one_item=Πρέπει να επιλέξετε τουλάχιστον ένα αντικείμενο στο πρότυπο
template.invalid=Πρέπει να επιλέξετε ένα πρότυπο αποθετήριο
template.invalid=Πρέπει να επιλέξετε ένα πρότυπο repository
archive.title=Αυτό το αποθετήρειο αρχειοθετήθηκε. Μπορείτε να προβάλετε αρχεία και να τα κλωνοποιήσετε, αλλά δεν μπορείτε να ωθήσετε ή να ανοίξετε ζητήματα ή pull requests.
archive.title_date=Αυτό το αποθετήριο έχει αρχειοθετηθεί στο %s. Μπορείτε να προβάλετε αρχεία και να κλωνοποιήσετε, αλλά δεν μπορείτε να ωθήσετε ή να ανοίξετε ζητήματα ή pull requests.
archive.issue.nocomment=Αυτό το αποθετήριο αρχειοθετήθηκε. Δεν μπορείτε να σχολιάσετε σε ζητήματα.
archive.title_date=Αυτό το repository αρχειοθετήθηκε στις %s. Μπορείτε να δείτε τα αρχεία του και να το κλωνοποιήσετε, αλλά δεν μπορείτε να κάνετε push, να ανοίξετε ζητήματα ή pull requests.
archive.issue.nocomment=Αυτό το repository έχει αρχειοθετηθεί. Δεν μπορείτε να σχολιάσετε σε ζητήματα.
archive.pull.nocomment=Αυτό το repo αρχειοθετήθηκε. Δεν μπορείτε να σχολιάσετε στα pull requests.
form.reach_limit_of_creation_1=Έχετε ήδη συμπληρώσει το όριο του %d αποθετηρίου.
@ -1180,7 +1180,7 @@ form.name_pattern_not_allowed=Το μοτίβο «%s» δεν επιτρέπετ
need_auth=Εξουσιοδότηση
migrate_options=Ρυθμίσεις μεταφοράς
migrate_service=Υπηρεσία Μεταφοράς
migrate_options_mirror_helper=Αυτό το αποθετήριο θα είναι είδωλο
migrate_options_mirror_helper=Αυτό το repository θα είναι είδωλο
migrate_options_lfs=Μεταφορά αρχείων LFS
migrate_options_lfs_endpoint.label=Άκρο LFS
migrate_options_lfs_endpoint.description=Η μεταφορά θα προσπαθήσει να χρησιμοποιήσει το Git remote για να <a target="_blank" rel="noopener noreferrer" href="%s">καθορίσει τον διακομιστή LFS</a>. Μπορείτε επίσης να καθορίσετε ένα δικό σας endpoint αν τα δεδομένα LFS του αποθετηρίου αποθηκεύονται κάπου αλλού.
@ -1233,10 +1233,10 @@ migrate.cancel_migrating_confirm=Θέλετε να ακυρώσετε αυτή
mirror_from=είδωλο του
forked_from=forked από
generated_from=παραγμένο από
fork_from_self=Δεν μπορείτε να κάνετε fork σε ένα αποθετήριο που κατέχετε.
fork_guest_user=Συνδεθείτε για να κάνετε fork αυτό το αποθετήριο.
watch_guest_user=Συνδεθείτε για να παρακολουθήσετε αυτό το αποθετήριο.
star_guest_user=Συνδεθείτε για να δώσετε ένα αστέρι σε αυτό το αποθετήριο.
fork_from_self=Δεν μπορείτε να κάνετε fork ένα repository που σας ανήκει.
fork_guest_user=Συνδεθείτε για να κάνετε fork αυτό το repository.
watch_guest_user=Συνδεθείτε για να παρακολουθήσετε αυτό το repository.
star_guest_user=Συνδεθείτε για να δώσετε ένα αστέρι σε αυτό το repository.
unwatch=Παύση ακολούθησης
watch=Παρακολούθηση
unstar=Αφαίρεση αστεριού
@ -1248,11 +1248,11 @@ more_operations=Περισσότερες λειτουργίες
no_desc=Χωρίς περιγραφή
quick_guide=Γρήγορος οδηγός
clone_this_repo=Κλωνοποίηση αυτού του αποθετηρίου
cite_this_repo=Αναφορά σε αυτό το αποθετήριο
cite_this_repo=Αναφορά σε αυτό το repository
create_new_repo_command=Δημιουργία νέου αποθετηρίου στη γραμμή εντολών
push_exist_repo=Προώθηση ενός υπάρχοντος αποθετηρίου από τη γραμμή εντολών
empty_message=Αυτό το αποθετήριο δεν έχει περιεχόμενο.
broken_message=Τα δεδομένα Git που διέπουν αυτό το αποθετήριο δεν μπορούν να διαβαστούν. Επικοινωνήστε με το διαχειριστή ή διαγράψτε αυτό το αποθετήριο.
empty_message=Αυτό το repository δεν έχει περιεχόμενο.
broken_message=Τα δεδομένα Git που διέπουν αυτό το αποθετήριο δεν μπορούν να διαβαστούν. Επικοινωνήστε με το διαχειριστή ή διαγράψτε αυτό το repository.
code=Κώδικας
code.desc=Πρόσβαση στον πηγαίο κώδικα, αρχεία, υποβολές και κλάδους.
@ -1330,7 +1330,7 @@ editor.cannot_edit_non_text_files=Τα δυαδικά αρχεία δεν μπο
editor.edit_this_file=Επεξεργασία αρχείου
editor.this_file_locked=Το αρχείο είναι κλειδωμένο
editor.must_be_on_a_branch=Πρέπει να βρίσκεστε σε έναν κλάδο για να κάνετε ή να προτείνετε αλλαγές σε αυτό το αρχείο.
editor.fork_before_edit=Πρέπει να κάνετε fork αυτό το αποθετήριο για να κάνετε ή να προτείνετε αλλαγές σε αυτό το αρχείο.
editor.fork_before_edit=Πρέπει να κάνετε fork αυτό το repository για να κάνετε ή να προτείνετε αλλαγές σε αυτό το αρχείο.
editor.delete_this_file=Διαγραφή αρχείου
editor.must_have_write_access=Πρέπει να έχετε πρόσβαση εγγραφής για να κάνετε ή να προτείνετε αλλαγές σε αυτό το αρχείο.
editor.file_delete_success=Το αρχείο «%s» έχει διαγραφεί.
@ -1359,15 +1359,15 @@ editor.new_branch_name_desc=Όνομα νέου κλάδου…
editor.cancel=Ακύρωση
editor.filename_cannot_be_empty=Το όνομα αρχείου δεν μπορεί να είναι κενό.
editor.filename_is_invalid=Το όνομα αρχείου δεν είναι έγκυρο: "%s".
editor.branch_does_not_exist=Ο κλάδος "%s" δεν υπάρχει σε αυτό το αποθετήριο.
editor.branch_already_exists=Ο κλάδος «%s» υπάρχει ήδη σε αυτό το αποθετήριο.
editor.directory_is_a_file=Το όνομα φακέλου «%s» χρησιμοποιείται ήδη ως όνομα αρχείου σε αυτό το αποθετήριο.
editor.branch_does_not_exist=Ο κλάδος "%s" δεν υπάρχει σε αυτό το repository.
editor.branch_already_exists=Ο κλάδος «%s» υπάρχει ήδη σε αυτό το repository.
editor.directory_is_a_file=Το όνομα φακέλου «%s» χρησιμοποιείται ήδη ως όνομα αρχείου σε αυτό το repository.
editor.file_is_a_symlink=`Το «%s» είναι συμβολικός σύνδεσμος. Οι συμβολικοί σύνδεσμοι δεν μπορούν να επεξεργαστούν στην ενσωματωμένη εφαρμογή`
editor.filename_is_a_directory=Το όνομα αρχείου «%s» χρησιμοποιείται ήδη ως όνομα φακέλου σε αυτό το αποθετήριο.
editor.file_editing_no_longer_exists=Το αρχείο «%s», το οποίο επεξεργάζεστε, δεν υπάρχει πλέον σε αυτό το αποθετήριο.
editor.file_deleting_no_longer_exists=Το αρχείο «%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_already_exists=Υπάρχει ήδη ένα αρχείο με το όνομα «%s» σε αυτό το αποθετήριο.
editor.file_already_exists=Υπάρχει ήδη ένα αρχείο με το όνομα «%s» σε αυτό το repository.
editor.commit_empty_file_header=Υποβολή ενός κενού αρχείου
editor.commit_empty_file_text=Το αρχείο που πρόκειται να υποβληθεί είναι κενό. Συνέχεια;
editor.no_changes_to_show=Δεν υπάρχουν αλλαγές για εμφάνιση.
@ -1620,13 +1620,13 @@ issues.author_helper=Αυτός ο χρήστης είναι ο συγγραφέ
issues.role.owner=Ιδιοκτήτης
issues.role.owner_helper=Αυτός ο χρήστης είναι ο ιδιοκτήτης αυτού του αποθετηρίου.
issues.role.member=Μέλος
issues.role.member_helper=Αυτός ο χρήστης είναι μέλος του οργανισμού, του οποίου ανήκει το αποθετήριο.
issues.role.member_helper=Αυτός ο χρήστης είναι μέλος του οργανισμού, του οποίου ανήκει το repository.
issues.role.collaborator=Συνεργάτης
issues.role.collaborator_helper=Ο χρήστης έλαβε πρόσκληση συνεργασίας στο αποθετήριο.
issues.role.collaborator_helper=Ο χρήστης έλαβε πρόσκληση συνεργασίας στο repository.
issues.role.first_time_contributor=Συντελεστής για πρώτη φορά
issues.role.first_time_contributor_helper=Αυτή είναι η πρώτη συνεισφορά αυτού του χρήστη στο αποθετήριο.
issues.role.first_time_contributor_helper=Αυτή είναι η πρώτη συνεισφορά αυτού του χρήστη στο repository.
issues.role.contributor=Συντελεστής
issues.role.contributor_helper=Αυτός ο χρήστης έχει προηγούμενές υποβολές (commits) στο αποθετήριο.
issues.role.contributor_helper=Αυτός ο χρήστης έχει προηγούμενές υποβολές (commits) στο repository.
issues.re_request_review=Επαναίτηση ανασκόπησης
issues.is_stale=Έχουν υπάρξει αλλαγές σε αυτό το PR από αυτή την αναθεώρηση
issues.remove_request_review=Αφαίρεση αιτήματος αναθεώρησης
@ -1678,7 +1678,7 @@ issues.unlock_comment=: ξεκλείδωσε αυτή τη συνομιλία %s
issues.lock_confirm=Κλείδωμα
issues.unlock_confirm=Ξεκλείδωμα
issues.lock.notice_1=- Άλλοι χρήστες δεν μπορούν να αφήσουν νέα σχόλια σε αυτό το ζήτημα.
issues.lock.notice_2=- Εσείς και άλλοι συνεργάτες που έχουν πρόσβαση στο αποθετήριο θα μπορείτε ακόμα να αφήσετε σχόλια που θα είναι ορατά σε άλλους.
issues.lock.notice_2=- Εσείς, μαζί με τους συνεργάτες σας που έχουν πρόσβαση στο repository, θα μπορείτε ακόμα να αφήσετε σχόλια που θα μπορούν να βλέπουν και άλλοι.
issues.lock.notice_3=- Θα μπορείτε να ξεκλειδώσετε αυτό το ζήτημα πιο μετά.
issues.unlock.notice_1=- Όλοι θα βρίσκονται πάλι σε θέση να αφήσουν σχόλιο σε αυτό το ζήτημα.
issues.unlock.notice_2=- Θα μπορείτε πάντα να ξανακλειδώσετε αυτό το ζήτημα πιο μετά.
@ -1759,7 +1759,7 @@ issues.dependency.add_error_dep_issue_not_exist=Εξαρτώμενο ζήτημ
issues.dependency.add_error_dep_not_exist=Δεν υπάρχει η Εξάρτηση.
issues.dependency.add_error_dep_exists=Η Εξάρτηση υπάρχει ήδη.
issues.dependency.add_error_cannot_create_circular=Δεν μπορείτε να δημιουργήσετε μια εξάρτηση με δύο ζητήματα που μπλοκάρουν το ένα το άλλο.
issues.dependency.add_error_dep_not_same_repo=Και τα δύο ζητήματα πρέπει να βρίσκονται στο ίδιο αποθετήριο.
issues.dependency.add_error_dep_not_same_repo=Και τα δύο ζητήματα πρέπει να βρίσκονται στο ίδιο repository.
issues.review.self.approval=Δεν μπορείτε να εγκρίνετε το δικό σας pull request.
issues.review.self.rejection=Δεν μπορείτε να ζητήσετε αλλαγές στο δικό σας pull request.
issues.review.approve=ενέκρινε τις αλλαγές %s
@ -1922,7 +1922,7 @@ pulls.closed_at=`έκλεισε αυτό το pull request <a id="%[1]s" href="#
pulls.reopened_at=`άνοιξε ξανά αυτό το pull request <a id="%[1]s" href="#%[1]s">%[2]s</a>`
pulls.cmd_instruction_hint=Προβολή οδηγιών γραμμής εντολών
pulls.cmd_instruction_checkout_title=Έλεγχος
pulls.cmd_instruction_checkout_desc=Από το αποθετήριο του έργου σας, ελέγξτε έναν νέο κλάδο και δοκιμάστε τις αλλαγές.
pulls.cmd_instruction_checkout_desc=Από το repository του έργου σας, ελέγξτε έναν νέο κλάδο και δοκιμάστε τις αλλαγές.
pulls.cmd_instruction_merge_title=Συγχώνευση
pulls.cmd_instruction_merge_desc=Συγχώνευση των αλλαγών και ενημέρωση στο Gitea.
pulls.clear_merge_message=Εκκαθάριση μηνύματος συγχώνευσης
@ -2101,8 +2101,8 @@ search.code_no_results=Δεν βρέθηκε πηγαίος κώδικας πο
search.code_search_unavailable=Η αναζήτηση κώδικα δεν είναι διαθέσιμη αυτή τη στιγμή. Παρακαλώ επικοινωνήστε με το διαχειριστή.
settings=Ρυθμίσεις
settings.desc=Στις Ρυθμίσεις μπορείτε να διαχειριστείτε τις ρυθμίσεις για το αποθετήριο
settings.options=Αποθετήριο
settings.desc=Στις Ρυθμίσεις μπορείτε να διαχειριστείτε τις ρυθμίσεις για το repository
settings.options=Repository
settings.collaboration=Συνεργάτες
settings.collaboration.admin=Διαχειριστής
settings.collaboration.write=Εγγραφή
@ -2113,18 +2113,18 @@ settings.hooks=Webhooks
settings.githooks=Git hooks
settings.basic_settings=Βασικές ρυθμίσεις
settings.mirror_settings=Ρυθμίσεις ειδώλου
settings.mirror_settings.docs=Ρυθμίστε τον αυτόματο συγχρονισμό των υποβολών, ετικετών και κλάδων του αποθετηρίου σας σε ένα άλλο αποθετήριο.
settings.mirror_settings.docs.disabled_pull_mirror.instructions=Ρυθμίστε τον αυτόματο συγχρονισμό των υποβολών, ετικετών και κλάδων του έργου σας με ένα άλλο αποθετήριο. Τα είδωλα τύπου λήψης έχουν απενεργοποιηθεί από τον διαχειριστή σας.
settings.mirror_settings.docs.disabled_push_mirror.instructions=Ρυθμίστε την αυτόματη λήψη υποβολών, ετικετών και κλάδων από ένα άλλο αποθετήριο.
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=Αυτή τη στιγμή, αυτό μπορεί να γίνει μόνο στο μενού "Νέα Μεταφορά". Για περισσότερες πληροφορίες, συμβουλευτείτε το:
settings.mirror_settings.docs.disabled_push_mirror.info=Τα είδωλα ώθησης έχουν απενεργοποιηθεί από το διαχειριστή σας.
settings.mirror_settings.docs.no_new_mirrors=Το αποθετήριο σας αντιγράφει τις αλλαγές προς ή από ένα άλλο αποθετήριο. Λάβετε υπόψη ότι δεν μπορείτε να δημιουργήσετε νέα είδωλα αυτή τη στιγμή.
settings.mirror_settings.docs.no_new_mirrors=Το repository σας αντιγράφει τις αλλαγές προς ή από ένα άλλο repository. Λάβετε υπόψη ότι δεν μπορείτε να δημιουργήσετε νέα είδωλα αυτή τη στιγμή.
settings.mirror_settings.docs.can_still_use=Αν και δεν μπορείτε να τροποποιήσετε τα υπάρχοντα είδωλα ή να δημιουργήσετε νέα, μπορείτε να χρησιμοποιείται ακόμα το υπάρχων είδωλο.
settings.mirror_settings.docs.pull_mirror_instructions=Για να ορίσετε έναν είδωλο έλξης, παρακαλούμε συμβουλευθείτε:
settings.mirror_settings.docs.more_information_if_disabled=Μπορείτε να μάθετε περισσότερα για τα είδωλα ώθησης και έλξης εδώ:
settings.mirror_settings.docs.doc_link_title=Πώς μπορώ να αντιγράψω αποθετήρια;
settings.mirror_settings.docs.doc_link_pull_section=το κεφάλαιο "Pulling from a remote repository" της τεκμηρίωσης.
settings.mirror_settings.docs.pulling_remote_title=Έλξη από ένα απομακρυσμένο αποθετήριο
settings.mirror_settings.docs.pulling_remote_title=Pull από ένα απομακρυσμένο repository
settings.mirror_settings.mirrored_repository=Είδωλο αποθετηρίου
settings.mirror_settings.direction=Κατεύθυνση
settings.mirror_settings.direction.pull=Pull
@ -2188,33 +2188,33 @@ settings.reindex_button=Προσθήκη στην ουρά Reindex
settings.reindex_requested=Αιτήθηκε reindex
settings.admin_enable_close_issues_via_commit_in_any_branch=Κλείσιμο ενός ζητήματος μέσω μιας υποβολής που έγινε σε έναν μη προεπιλεγμένο κλάδο
settings.danger_zone=Ζώνη κινδύνου
settings.new_owner_has_same_repo=Ο νέος ιδιοκτήτης έχει ήδη ένα αποθετήριο με το ίδιο όνομα. Παρακαλώ επιλέξτε ένα άλλο όνομα.
settings.convert=Μετατροπή σε κανονικό αποθετήριο
settings.convert_desc=Μπορείτε να μετατρέψετε αυτόν το είδωλο σε κανονικό αποθετήριο. Αυτό δεν μπορεί να αναιρεθεί.
settings.convert_notices_1=Αυτή η λειτουργία θα μετατρέψει το είδωλο σε ένα κανονικό αποθετήριο και δεν μπορεί να αναιρεθεί.
settings.new_owner_has_same_repo=Ο νέος ιδιοκτήτης έχει ήδη ένα repository με το ίδιο όνομα. Παρακαλώ επιλέξτε ένα άλλο όνομα.
settings.convert=Μετατροπή σε κανονικό repository
settings.convert_desc=Μπορείτε να μετατρέψετε αυτόν το είδωλο σε κανονικό repository. Αυτό δεν μπορεί να αναιρεθεί.
settings.convert_notices_1=Αυτή η λειτουργία θα μετατρέψει το είδωλο σε ένα κανονικό repository και δεν μπορεί να αναιρεθεί.
settings.convert_confirm=Μετατροπή αποθετηρίου
settings.convert_succeed=Το είδωλο έχει μετατραπεί σε κανονικό αποθετήριο.
settings.convert_fork=Μετατροπή σε κανονικό αποθετήριο
settings.convert_fork_desc=Μπορείτε να μετατρέψετε αυτό το fork σε κανονικό αποθετήριο. Αυτό δεν μπορεί να αναιρεθεί.
settings.convert_fork_notices_1=Αυτή η λειτουργία θα μετατρέψει το fork σε ένα κανονικό αποθετήριο και δεν μπορεί να αναιρεθεί.
settings.convert_succeed=Το είδωλο έχει μετατραπεί σε κανονικό repository.
settings.convert_fork=Μετατροπή σε κανονικό repository
settings.convert_fork_desc=Μπορείτε να μετατρέψετε αυτό το fork σε κανονικό repository. Αυτό δεν μπορεί να αναιρεθεί.
settings.convert_fork_notices_1=Αυτή η λειτουργία θα μετατρέψει το fork σε ένα κανονικό repository και δεν μπορεί να αναιρεθεί.
settings.convert_fork_confirm=Μετατροπή αποθετηρίου
settings.convert_fork_succeed=Το fork έχει μετατραπεί σε κανονικό αποθετήριο.
settings.convert_fork_succeed=Το fork έχει μετατραπεί σε κανονικό repository.
settings.transfer.title=Μεταβίβαση ιδιοκτησίας
settings.transfer.rejected=Η μεταβίβαση του αποθετηρίου απορρίφθηκε.
settings.transfer.success=Η μεταβίβαση του αποθετηρίου ήταν επιτυχής.
settings.transfer_abort=Ακύρωση μεταβίβασης
settings.transfer_abort_invalid=Δεν μπορείτε να ακυρώσετε μια ανύπαρκτη μεταβίβαση αποθετηρίου.
settings.transfer_abort_success=Η μεταφορά αποθετηρίου στο %s ακυρώθηκε με επιτυχία.
settings.transfer_desc=Μεταβιβάστε αυτό το αποθετήριο σε έναν χρήστη ή σε έναν οργανισμό για τον οποίο έχετε δικαιώματα διαχειριστή.
settings.transfer_desc=Μεταβιβάστε αυτό το repository σε έναν χρήστη ή σε έναν οργανισμό για τον οποίο έχετε δικαιώματα διαχειριστή.
settings.transfer_form_title=Εισάγετε το όνομα του αποθετηρίου ως επιβεβαίωση:
settings.transfer_in_progress=Αυτή τη στιγμή υπάρχει μια εν εξελίξει μεταβίβαση. Παρακαλούμε ακυρώστε την αν θέλετε να μεταβιβάσετε αυτό το αποθετήριο σε άλλο χρήστη.
settings.transfer_notices_1=- Θα χάσετε την πρόσβαση στο αποθετήριο αν το μεταβιβάσετε σε έναν μεμονωμένο χρήστη.
settings.transfer_notices_2=- Θα διατηρήσετε την πρόσβαση στο αποθετήριο αν το μεταβιβάσετε σε έναν οργανισμό που είστε (συν)ιδιοκτήτης.
settings.transfer_notices_3=- Εάν το αποθετήριο είναι ιδιωτικό και μεταβιβάζεται σε μεμονωμένο χρήστη, αυτή η ενέργεια εξασφαλίζει ότι ο χρήστης έχει τουλάχιστον άδεια ανάγνωσης (και αλλάζει τα δικαιώματα εάν είναι απαραίτητο).
settings.transfer_in_progress=Αυτή τη στιγμή υπάρχει μια εν εξελίξει μεταβίβαση. Παρακαλούμε ακυρώστε την αν θέλετε να μεταβιβάσετε αυτό το repository σε άλλο χρήστη.
settings.transfer_notices_1=- Θα χάσετε την πρόσβαση στο repository αν το μεταβιβάσετε σε έναν μεμονωμένο χρήστη.
settings.transfer_notices_2=- Θα διατηρήσετε την πρόσβαση στο repository αν το μεταβιβάσετε σε έναν οργανισμό που είστε (συν)ιδιοκτήτης.
settings.transfer_notices_3=- Εάν το repository είναι ιδιωτικό και μεταβιβάζεται σε μεμονωμένο χρήστη, αυτή η ενέργεια εξασφαλίζει ότι ο χρήστης έχει τουλάχιστον άδεια ανάγνωσης (και αλλάζει τα δικαιώματα εάν είναι απαραίτητο).
settings.transfer_owner=Νέος ιδιοκτήτης
settings.transfer_perform=Εκτέλεση μεταφοράς
settings.transfer_started=`Αυτό το αποθετήριο έχει επισημανθεί για μεταφορά και αναμένει επιβεβαίωση από το "%s"`
settings.transfer_succeed=Το αποθετήριο έχει μεταφερθεί.
settings.transfer_started=`Αυτό το repository έχει επισημανθεί για μεταφορά και αναμένει επιβεβαίωση από το "%s"`
settings.transfer_succeed=Το repository έχει μεταφερθεί.
settings.signing_settings=Ρυθμίσεις επαλήθευσης υπογραφών
settings.trust_model=Μοντέλο εμπιστοσύνης υπογραφών
settings.trust_model.default=Προεπιλεγμένο μοντέλο εμπιστοσύνης
@ -2236,33 +2236,33 @@ settings.wiki_deletion_success=Τα δεδομένα wiki του αποθετη
settings.delete=Διαγραφή αυτόυ του αποθετηρίου
settings.delete_desc=Η διαγραφή ενός αποθετηρίου είναι μόνιμη και δεν μπορεί να αναιρεθεί.
settings.delete_notices_1=- Αυτή η ενέργεια <strong>ΔΕΝ ΜΠΟΡΕΙ</strong> να αναιρεθεί.
settings.delete_notices_2=- Αυτή η ενέργεια θα διαγράψει μόνιμα το αποθετήριο <strong>%s</strong> μαζί με τον κώδικα, τα ζητημάτα, τα σχόλια, τα δεδομένα των wiki και τις ρυθμίσεις συνεργατών που βρίσκονται μέσα σε αυτό.
settings.delete_notices_2=- Αυτή η ενέργεια θα διαγράψει μόνιμα το repository <strong>%s</strong> μαζί με τον κώδικα, τα ζητημάτα, τα σχόλια, τα δεδομένα των wiki και τις ρυθμίσεις συνεργατών που βρίσκονται μέσα σε αυτό.
settings.delete_notices_fork_1=- Τα Forks αυτού του αποθετηρίου θα γίνουν ανεξάρτητα μετά τη διαγραφή.
settings.deletion_success=Το αποθετήριο έχει διαγραφεί.
settings.deletion_success=Το repository έχει διαγραφεί.
settings.update_settings_success=Οι ρυθμίσεις του αποθετηρίου έχουν ενημερωθεί.
settings.update_settings_no_unit=Το αποθετήριο θα πρέπει να επιτρέπει τουλάχιστον κάποιο είδος αλληλεπίδρασης.
settings.update_settings_no_unit=Το repository θα πρέπει να επιτρέπει τουλάχιστον κάποιο είδος αλληλεπίδρασης.
settings.confirm_delete=Διαγραφή αποθετηρίου
settings.add_collaborator=Προσθήκη συνεργάτη
settings.add_collaborator_success=Ο συνεργάτης προστέθηκε.
settings.add_collaborator_inactive_user=Δεν είναι δυνατή η προσθήκη ενός ανενεργού χρήστη ως συνεργάτη.
settings.add_collaborator_owner=Δεν είναι δυνατή η προσθήκη ενός ιδιοκτήτη σαν συνεργάτη.
settings.add_collaborator_duplicate=Ο συνεργάτης έχει ήδη προστεθεί σε αυτό το αποθετήριο.
settings.add_collaborator_duplicate=Ο συνεργάτης έχει ήδη προστεθεί σε αυτό το repository.
settings.delete_collaborator=Κατάργηση
settings.collaborator_deletion=Κατάργηση συνεργάτη
settings.collaborator_deletion_desc=Η κατάργηση ενός συνεργάτη θα αφαιρέσει και την πρόσβασή του στο αποθετήριο. Είστε βέβαιοι;
settings.collaborator_deletion_desc=Η κατάργηση ενός συνεργάτη θα αφαιρέσει και την πρόσβασή του στο repository. Είστε βέβαιοι;
settings.remove_collaborator_success=Ο συνεργάτης έχει καταργηθεί.
settings.search_user_placeholder=Αναζήτηση χρήστη…
settings.org_not_allowed_to_be_collaborator=Δεν μπορείτε να προσθέσετε έναν οργανισμό ως συνεργάτη.
settings.change_team_access_not_allowed=Η αλλαγή της πρόσβασης ομάδας για το αποθετήριο έχει περιοριστεί στον ιδιοκτήτη του οργανισμού
settings.team_not_in_organization=Η ομάδα δεν είναι στον ίδιο οργανισμό με το αποθετήριο
settings.change_team_access_not_allowed=Η αλλαγή της πρόσβασης ομάδας για το repository έχει περιοριστεί στον ιδιοκτήτη του οργανισμού
settings.team_not_in_organization=Η ομάδα δεν είναι στον ίδιο οργανισμό με το repository
settings.teams=Ομάδες
settings.add_team=Προσθήκη ομάδας
settings.add_team_duplicate=Η ομάδα έχει ήδη το αποθετήριο
settings.add_team_success=Η ομάδα έχει πλέον πρόσβαση στο αποθετήριο.
settings.add_team_duplicate=Η ομάδα έχει ήδη το repository
settings.add_team_success=Η ομάδα έχει πλέον πρόσβαση στο repository.
settings.search_team=Αναζήτηση Ομάδας…
settings.change_team_permission_tip=Τα δικαιώματα της ομάδας έχουν οριστεί στη σελίδα ρυθμίσεων της ομάδας και δεν μπορούν να αλλάξουν ανά αποθετήριο
settings.change_team_permission_tip=Τα δικαιώματα της ομάδας έχουν οριστεί στη σελίδα ρυθμίσεων της ομάδας και δεν μπορούν να αλλάξουν ανά repository
settings.delete_team_tip=Αυτή η ομάδα έχει πρόσβαση σε όλα τα αποθετήρια και δεν μπορεί να αφαιρεθεί
settings.remove_team_success=Έχει αφαιρεθεί η πρόσβαση της ομάδας στο αποθετήριο.
settings.remove_team_success=Έχει αφαιρεθεί η πρόσβαση της ομάδας στο repository.
settings.add_webhook=Προσθήκη webhook
settings.add_webhook.invalid_channel_name=Το όνομα του καναλιού Webhook δεν μπορεί να είναι κενό και δεν μπορεί να περιέχει μόνο έναν χαρακτήρα #.
settings.hooks_desc=Τα Webhooks κάνουν αυτόματα αιτήσεις HTTP POST σε ένα διακομιστή όταν ενεργοποιούνται ορισμένα γεγονότα στο Forgejo. Διαβάστε περισσότερα στον <a target="_blank" rel="noopener noreferrer" href="%s">οδηγό webhooks</a>.
@ -2305,15 +2305,15 @@ settings.event_create_desc=Ο κλάδος ή η ετικέτα δημιουργ
settings.event_delete=Διαγραφή
settings.event_delete_desc=Ο κλάδος ή η ετικέτα διαγράφηκε.
settings.event_fork=Fork
settings.event_fork_desc=Το αποθετήριο έγινε fork.
settings.event_fork_desc=Το repository έγινε fork.
settings.event_wiki=Wiki
settings.event_wiki_desc=Η σελίδα Wiki δημιουργήθηκε, μετονομάστηκε, επεξεργάστηκε ή διαγράφηκε.
settings.event_release=Κυκλοφορία
settings.event_release_desc=Η έκδοση δημοσιεύτηκε, ενημερώθηκε ή διαγράφηκε από ένα αποθετήριο.
settings.event_push=Push
settings.event_push_desc=Git push σε ένα αποθετήριο.
settings.event_repository=Αποθετήριο
settings.event_repository_desc=Το αποθετήριο δημιουργήθηκε ή διαγράφηκε.
settings.event_push_desc=Git push σε ένα repository.
settings.event_repository=Repository
settings.event_repository_desc=Το repository δημιουργήθηκε ή διαγράφηκε.
settings.event_header_issue=Συμβάντα ζητημάτων
settings.event_issues=Ζητήματα
settings.event_issues_desc=Το ζήτημα άνοιξε, έκλεισε, ανοίχθηκε εκ νέου ή επεξεργάστηκε.
@ -2345,7 +2345,7 @@ settings.event_pull_request_review_request_desc=Ζητήθηκε η αξιολό
settings.event_pull_request_approvals=Εγκρίσεις pull request
settings.event_pull_request_merge=Συγχώνευση pull request
settings.event_package=Πακέτο
settings.event_package_desc=Το πακέτο δημιουργήθηκε ή διαγράφηκε σε ένα αποθετήριο.
settings.event_package_desc=Το πακέτο δημιουργήθηκε ή διαγράφηκε σε ένα repository.
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=Κεφαλίδα authorization
@ -2361,7 +2361,7 @@ settings.hook_type=Είδος hook
settings.slack_token=Διακριτικό
settings.slack_domain=Domain
settings.slack_channel=Κανάλι
settings.add_web_hook_desc=Ενσωμάτωσε το <a target="_blank" rel="noreferrer" href="%s">%s</a> στο αποθετήριο σας.
settings.add_web_hook_desc=Ενσωμάτωσε το <a target="_blank" rel="noreferrer" href="%s">%s</a> στο repository σας.
settings.web_hook_name_gitea=Gitea
settings.web_hook_name_forgejo = Forgejo
settings.web_hook_name_gogs=Gogs
@ -2381,9 +2381,9 @@ settings.packagist_api_token=Διακριτικό API
settings.packagist_package_url=URL πακέτων Packagist
settings.deploy_keys=Κλειδιά διάθεσης
settings.add_deploy_key=Προσθήκη κλειδιού διάθεσης
settings.deploy_key_desc=Τα κλειδιά διάθεσης έχουν πρόσβαση μόνο-ανάγνωσης στο αποθετήριο.
settings.deploy_key_desc=Τα κλειδιά διάθεσης έχουν πρόσβαση μόνο-ανάγνωσης στο repository.
settings.is_writable=Ενεργοποίηση πρόσβασης εγγραφής
settings.is_writable_info=Επιτρέψτε σε αυτό το κλειδί διάθεσης να <strong>ωθήσει</strong> στο αποθετήριο.
settings.is_writable_info=Επιτρέψτε σε αυτό το κλειδί διάθεσης να <strong>ωθήσει</strong> στο repository.
settings.no_deploy_keys=Δεν υπάρχουν ακόμα κλειδιά διάθεσης.
settings.title=Τίτλος
settings.deploy_key_content=Περιεχόμενο
@ -2391,7 +2391,7 @@ settings.key_been_used=Ένα κλειδί διάθεσης με το ίδιο
settings.key_name_used=Ένα κλειδί διάθεσης με το ίδιο όνομα υπάρχει ήδη.
settings.add_key_success=Το κλειδί διάθεσης «%s» προστέθηκε.
settings.deploy_key_deletion=Αφαίρεση κλειδιού διάθεσης
settings.deploy_key_deletion_desc=Η κατάργηση ενός κλειδί διάθεσης θα ανακαλέσει την πρόσβασή του σε αυτό το αποθετήριο. Συνέχεια;
settings.deploy_key_deletion_desc=Η κατάργηση ενός κλειδί διάθεσης θα ανακαλέσει την πρόσβασή του σε αυτό το repository. Συνέχεια;
settings.deploy_key_deletion_success=Το κλειδί διάθεσης έχει αφαιρεθεί.
settings.branches=Κλάδοι
settings.protected_branch=Προστασία κλάδου
@ -2424,7 +2424,7 @@ settings.protect_check_status_contexts=Ενεργοποίηση ελέγχου
settings.protect_status_check_patterns=Μοτίβα ελέγχου κατάστασης:
settings.protect_status_check_patterns_desc=Ορίστε μοτίβα για να καθορίσετε ποιοι έλεγχοι κατάστασης πρέπει να περάσουν πριν οι κλάδοι να μπορούν να συγχωνευτούν σε έναν κλάδο που ταιριάζει με αυτόν τον κανόνα. Κάθε γραμμή καθορίζει ένα μοτίβο. Τα μοτίβα δεν μπορούν να είναι κενά.
settings.protect_check_status_contexts_desc=Απαιτείται έλεγχος κατάστασης για να περάσει το pull request πριν από τη συγχώνευση. Επιλέξτε ποιοι έλεγχοι κατάστασης πρέπει να περάσουν πριν κλάδοι μπορούν να συγχωνευτούν σε έναν κλάδο που ταιριάζει με αυτόν τον κανόνα. Όταν είναι ενεργοποιημένο, οι υποβολές πρέπει πρώτα να γίνονται push σε άλλο κλάδο, στη συνέχεια, να συγχωνεύονται ή γίνονται push απευθείας σε ένα κλάδο που ταιριάζει με αυτόν τον κανόνα, αφού έχουν ολοκληρωθεί οι έλεγχοι κατάστασης. Αν δεν επιλεχθεί κανένα πλαίσιο, η τελευταία υποβολή πρέπει να είναι επιτυχής ανεξάρτητα από το πλαίσιο.
settings.protect_check_status_contexts_list=Έλεγχοι κατάστασης που βρέθηκαν την τελευταία εβδομάδα για αυτό το αποθετήριο
settings.protect_check_status_contexts_list=Έλεγχοι κατάστασης που βρέθηκαν την τελευταία εβδομάδα για αυτό το repository
settings.protect_status_check_matched=Ταιριάζει
settings.protect_invalid_status_check_pattern=Μη έγκυρο μοτίβο ελέγχου κατάστασης: "%s".
settings.protect_no_valid_status_check_patterns=Μη έγκυρα μοτίβα ελέγχου κατάστασης.
@ -2442,7 +2442,7 @@ settings.protect_branch_name_pattern=Μοτίβο προστατευμένου
settings.protect_branch_name_pattern_desc=Μοτίβα ονόματος προστατευμένων κλάδων. Συμβολευτείτε <a href="%s">την τεκμηρίωση</a> για την σύνταξη ενός μοτίβου. Παραδείγματα: main, release/**
settings.protect_patterns=Μοτίβα
settings.protect_protected_file_patterns=Μοτίβα προστατευμένων αρχείων (διαχωρισμός με semicolon «;» και ΟΧΙ το ελληνικό ερωτηματικό):
settings.protect_protected_file_patterns_desc=Τα προστατευόμενα αρχεία δεν επιτρέπεται να αλλάξουν άμεσα, ακόμη και αν ο χρήστης έχει δικαιώματα να προσθέσει, να επεξεργαστεί ή να διαγράψει αρχεία σε αυτόν τον κλάδο. Επιπλέων μοτίβα μπορούν να διαχωριστούν με semicolon («;») (ΟΧΙ ερωτηματικό). Για να συντάξετε μοτίβα, συμβουλευτείται την τεκμηρίωση <a href='%s'>github.com/gobwas/glob</a>. Παράδειγμα: <code>.drone.yml</code>, <code>/docs/**/*.txt</code>.
settings.protect_protected_file_patterns_desc=Τα προστατευόμενα αρχεία δεν επιτρέπεται να αλλάξουν άμεσα, ακόμη και αν ο χρήστης έχει δικαιώματα να προσθέσει, να επεξεργαστεί ή να διαγράψει αρχεία σε αυτόν τον κλάδο. Επιπλέων μοτίβα μπορούν να διαχωριστούν με semicolon («;») (ΟΧΙ ερωτηματικό). Για να συντάξετε μοτίβα, συμβουλευτείται την τεκμηρίωση <a href='%s'>%s</a>. Παράδειγμα: <code>.drone.yml</code>, <code>/docs/**/*.txt</code>.
settings.protect_unprotected_file_patterns=Μοτίβα μη προστατευμένων αρχείων (διαχωρισμένα με semicolon «;» και ΟΧΙ το ελληνικό ερωτηματικό):
settings.protect_unprotected_file_patterns_desc=Μη προστατευμένα αρχεία που επιτρέπεται να αλλάξουν απευθείας εάν ο χρήστης έχει πρόσβαση εγγραφής, παρακάμπτοντας τον περιορισμό ώθησης. Επιπλέων μοτίβα μπορούν να διαχωριστούν με ερωτηματικό (';'). Δείτε την τεκμηρίωση <a href='%[1]s'>%[2]s</a> για τη σύνταξη του μοτίβου. Πχ: <code>.drone.yml</code>, <code>/docs/**/*.txt</code>.
settings.add_protected_branch=Ενεργοποίηση προστασίας
@ -2486,20 +2486,20 @@ settings.matrix.message_type=Είδος μηνύματος
settings.archive.button=Αρχειοθέτηση αποθετηρίου
settings.archive.header=Αρχειοθέτηση αποθετηρίου
settings.archive.text=Η αρχειοθέτηση του αποθετηρίου θα το αλλάξει σε μόνο για ανάγνωση. Δε θα φαίνεται στον αρχικό πίνακα. Κανείς (ακόμα και εσείς!) δε θα μπορεί να κάνει νέες υποβολές, ή να ανοίξει ζητήματα ή pull request.
settings.archive.success=Το αποθετήριο αρχειοθετήθηκε με επιτυχία.
settings.archive.success=Το repository αρχειοθετήθηκε με επιτυχία.
settings.archive.error=Παρουσιάστηκε σφάλμα κατά την προσπάθεια αρχειοθέτησης του αποθετηρίου. Δείτε το αρχείο καταγραφής για περισσότερες λεπτομέρειες.
settings.archive.error_ismirror=Δε μπορείτε να αρχειοθετήσετε ένα είδωλο αποθετηρίου.
settings.archive.branchsettings_unavailable=Οι ρυθμίσεις του κλάδου δεν είναι διαθέσιμες αν το αποθετήριο είναι αρχειοθετημένο.
settings.archive.tagsettings_unavailable=Οι ρυθμίσεις της ετικέτας δεν είναι διαθέσιμες αν το αποθετήριο είναι αρχειοθετημένο.
settings.archive.branchsettings_unavailable=Οι ρυθμίσεις του κλάδου δεν είναι διαθέσιμες αν το repository είναι αρχειοθετημένο.
settings.archive.tagsettings_unavailable=Οι ρυθμίσεις της ετικέτας δεν είναι διαθέσιμες αν το repository είναι αρχειοθετημένο.
settings.unarchive.button=Αναίρεση αρχειοθέτησης αποθετηρίου
settings.unarchive.header=Απο-Αρχειοθέτηση του αποθετηρίου
settings.unarchive.text=Η απο-αρχειοθέτηση του αποθετηρίου θα αποκαταστήσει την ικανότητά του να λαμβάνει υποβολές και ωθήσεις, καθώς και νέα ζητήματα και pull-requests.
settings.unarchive.success=Το αποθετήριο απο-αρχειοθετήθηκε με επιτυχία.
settings.unarchive.success=Το repository απο-αρχειοθετήθηκε με επιτυχία.
settings.unarchive.error=Παρουσιάστηκε σφάλμα κατά την προσπάθεια απο-αρχειοθέτησης του αποθετηρίου. Δείτε τις καταγραφές για περισσότερες λεπτομέρειες.
settings.update_avatar_success=Η εικόνα του αποθετηρίου έχει ενημερωθεί.
settings.lfs=LFS
settings.lfs_filelist=Αρχεία LFS σε αυτό το αποθετήριο
settings.lfs_no_lfs_files=Δεν υπάρχουν αρχεία 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_noattribute=Αυτή η διαδρομή δεν έχει λειτουργία κλειδώματος στον προεπιλεγμένο κλάδο
@ -2518,7 +2518,7 @@ settings.lfs_force_unlock=Εξαγκαναστικό ξεκλείδωμα
settings.lfs_pointers.found=Βρέθηκαν %d δείκτης(ες) blob - %d συσχετίστηκαν, %d δεν συσχετίστηκαν (%d λείπουν από το χώρο αποθήκευσης)
settings.lfs_pointers.sha=Blob hash
settings.lfs_pointers.oid=OID
settings.lfs_pointers.inRepo=Στο αποθετήριο
settings.lfs_pointers.inRepo=Στο repository
settings.lfs_pointers.exists=Υπάρχει στο χώρο αποθήκευσης
settings.lfs_pointers.accessible=Προσβάσιμο στον χρήστη
settings.lfs_pointers.associateAccessible=Συσχετισμός προσιτών %d OID
@ -2621,7 +2621,7 @@ release.delete_tag=Διαγραφή ετικέτας
release.deletion=Διαγραφή κυκλοφορίας
release.deletion_desc=Διαγράφοντας μια κυκλοφορία, αυτή αφαιρείται μόνο από το Gitea. Δε θα επηρεάσει την ετικέτα Git, τα περιεχόμενα του αποθετηρίου σας ή το ιστορικό της. Συνέχεια;
release.deletion_success=Η κυκλοφορία έχει διαγραφεί.
release.deletion_tag_desc=Θα διαγράψει αυτή την ετικέτα από το αποθετήριο. Τα περιεχόμενα του αποθετηρίου και το ιστορικό παραμένουν αμετάβλητα. Συνέχεια;
release.deletion_tag_desc=Θα διαγράψει αυτή την ετικέτα από το repository. Τα περιεχόμενα του repository και το ιστορικό δεν θα πειραχτούν. Να γίνει συνέχεια;
release.deletion_tag_success=Η ετικέτα έχει διαγραφεί.
release.tag_name_already_exist=Υπάρχει ήδη μια έκδοση με αυτό το όνομα ετικέτας.
release.tag_name_invalid=Το όνομα της ετικέτας δεν είναι έγκυρο.
@ -2646,7 +2646,7 @@ branch.delete_branch_has_new_commits=Ο κλάδος «%s» δεν μπορεί
branch.create_branch=Δημιουργία κλάδου %s
branch.create_from=`από το «%s»`
branch.create_success=Ο κλάδος «%s» δημιουργήθηκε.
branch.branch_already_exists=Ο κλάδος «%s» υπάρχει ήδη σε αυτό το αποθετήριο.
branch.branch_already_exists=Ο κλάδος «%s» υπάρχει ήδη σε αυτό το repository.
branch.branch_name_conflict=Το όνομα του κλάδου «%s» συγκρούεται με το ήδη υπάρχον κλάδο «%s».
branch.tag_collision=Ο κλάδος «%s» δεν μπορεί να δημιουργηθεί επειδή μια ετικέτα με το ίδιο όνομα υπάρχει ήδη στο αποθετήριο.
branch.deleted_by=Διαγράφηκε από %s
@ -2691,7 +2691,7 @@ error.csv.invalid_field_count=Δεν είναι δυνατή η απόδοση
commits.renamed_from = Μετονομάστηκε από %σ
settings.wiki_rename_branch_main_desc = Ο κλάδος, ο οποίος χρησιμοποιείται εσωτερικά από το wiki, θα μετονομαστεί (μόνιμα και μη αναστράψιμα) σε «%s».
issues.comment.blocked_by_user = Δεν μπορείτε να αφήσετε σχόλιο σε αυτό το ζήτημα, επειδή ο κάτοχος του αποθετηρίου ή το άτομο που δημιούργησε το ζήτημα σας έχει αποκλείσει.
pulls.blocked_by_user = Δεν μπορείτε να δημιουργήσετε pull request σε αυτό το αποθετήριο, επειδή ο κάτοχος του αποθετηρίου σας έχει αποκλείσει.
pulls.blocked_by_user = Δεν μπορείτε να δημιουργήσετε pull request σε αυτό το repository, επειδή ο κάτοχος του repository σας έχει αποκλείσει.
pulls.made_using_agit = AGit
wiki.cancel = Ακύρωση
settings.units.add_more = Προσθήκη μονάδων...
@ -2710,13 +2710,13 @@ rss.must_be_on_branch = Για να αποκτήσετε ένα RSS feed, πρέ
clone_in_vscodium = Κλωνοποίηση στο VSCodium
editor.invalid_commit_mail = Αυτή η διεύθυνση email δεν είναι έγκυρη για την δημιουργία μίας υποβολής.
pulls.nothing_to_compare_have_tag = Ο επιλεγμένος κλάδος/tag είναι όμοιος.
issues.blocked_by_user = Δεν μπορείτε να δημιουργήσετε ζητήματα σε αυτό το αποθετήριο, επειδή ο κάτοχος του αποθετηρίου σας έχει αποκλείσει.
issues.blocked_by_user = Δεν μπορείτε να δημιουργήσετε ζητήματα σε αυτό το repository, επειδή ο κάτοχος του repository σας έχει αποκλείσει.
pulls.agit_explanation = Δημιουργημένο μέσω του AGit. Το AGit επιτρέπει σε συνεισφέροντες να προτείνουν αλλαγές χρησιμοποιώντας την εντολή «git push», χωρίς την δημιουργία fork ή έναν νέο κλάδο.
activity.navbar.recent_commits = Πρόσφατες υποβολές
settings.wiki_globally_editable = Να επιτρέπεται η επεξεργασία του wiki σε όλους
admin.manage_flags = Διαχείριση σημάνσεων
admin.enabled_flags = Το αποθετήριο έχει τις εξής σημάνσεις:
settings.mirror_settings.pushed_repository = Προοριζόμενο αποθετήριο
admin.enabled_flags = Το repository έχει τις εξής σημάνσεις:
settings.mirror_settings.pushed_repository = Προοριζόμενο repository
admin.flags_replaced = Οι σημάνσεις του αποθετηρίου αντικαταστάθηκαν
activity.navbar.code_frequency = Συχνότητα κώδικα
settings.wiki_branch_rename_success = Το όνομα κλάδου wiki του αποθετηρίου κανονικοποιήθηκε επιτυχώς.
@ -2767,7 +2767,7 @@ editor.commit_id_not_matching = Το αρχείο άλλαξε όσο το επ
settings.sourcehut_builds.visibility = Ορατότητα εργασιών
object_format = Μορφή αντικειμένων («object format»)
settings.ignore_stale_approvals_desc = Οι εγκρίσεις, οι οποίες αναφέρονται σε παλαιότερες υποβολές, δεν θα προσμετρούνται στο σύνολο των απαιτούμενων εγκρίσεων του pull request. Εφόσον αυτές οι εγκρίσεις έχουν ήδη ανακληθεί, τότε αυτή η ρύθμιση δεν θα παίξει κάποιον ρόλο.
settings.archive.mirrors_unavailable = Οι λειτουργίες ειδώλου δεν είναι διαθέσιμες εφόσον το αποθετήριο έχει αρχειοθετηθεί.
settings.archive.mirrors_unavailable = Οι λειτουργίες ειδώλου δεν είναι διαθέσιμες εφόσον το repository έχει αρχειοθετηθεί.
settings.web_hook_name_sourcehut_builds = SourceHut Builds
settings.enforce_on_admins = Εφαρμογή κανόνα σε διαχειριστές του αποθετηρίου
object_format_helper = Η μορφή αντικειμένων («object format») του αποθετηρίου. Δεν θα μπορείτε να το αλλάξετε μεταγενέστερα. Η πιο συμβατή μορφή είναι η SHA1.
@ -2805,7 +2805,7 @@ release.type_attachment = Συνημμένο
activity.published_prerelease_label = Προδημοσίευση
activity.published_tag_label = Ετικέτα
settings.pull_mirror_sync_quota_exceeded = Έχετε υπερβεί τους διαθέσιμους πόρους σας, για αυτό δεν θα γίνει λήψη των πιο πρόσφατων αλλαγών.
settings.transfer_quota_exceeded = Ο νέος ιδιοκτήτης (%s) έχει υπερβεί τους διαθέσιμους πόρους του. Το αποθετήριο δεν μπορεί να μεταφερθεί.
settings.transfer_quota_exceeded = Ο νέος ιδιοκτήτης (%s) έχει υπερβεί τους διαθέσιμους πόρους του. Το repository δεν μπορεί να μεταφερθεί.
release.asset_name = Όνομα αρχείου
release.asset_external_url = Εξωτερικό URL
release.invalid_external_url = Μη έγκυρο εξωτερικό URL: «%s»
@ -2815,6 +2815,8 @@ no_eol.tooltip = Αυτό το αρχείο δεν περιέχει έναν χ
release.add_external_asset = Προσθήκη εξωτερικού αρχείου
milestones.filter_sort.name = Όνομα
release.type_external_asset = Εξωτερικό αρχείο
mirror_public_key = Δημόσιο κλειδί SSH
mirror_use_ssh.helper = το Forgejo θα κατοπτρίσει το αποθετήριο μέσω Git με τη χρήση SSH και θα δημιουργήσει ένα ζεύγος κλειδιών. Πρέπει να εξασφαλίσετε πως το δημιουργημένο κλειδί είναι εξουσιοδοτημένο να ωθεί στο αποθετήριο προορισμού. Εφόσον το έχετε επιλέξει, δε μπορείτε να χρησιμοποιήσετε εξουσιοδότηση συνθηματικού.
[graphs]
component_loading_failed = Δεν ήταν δυνατή η φόρτωση του %s
@ -2901,7 +2903,7 @@ teams.join=Συμμετοχή
teams.leave=Αποχώρηση
teams.leave.detail=Σίγουρα θέλετε να αποχωρήσετε από την ομάδα %s;
teams.can_create_org_repo=Δημιουργία αποθετηρίων
teams.can_create_org_repo_helper=Τα μέλη μπορούν να δημιουργήσουν νέα αποθετήρια στον οργανισμό. Ο δημιουργός θα αποκτήσει πρόσβαση διαχειριστή στο νέο αποθετήριο.
teams.can_create_org_repo_helper=Τα μέλη μπορούν να δημιουργήσουν νέα αποθετήρια στον οργανισμό. Ο δημιουργός θα αποκτήσει πρόσβαση διαχειριστή στο νέο repository.
teams.none_access=Καμία πρόσβαση
teams.none_access_helper=Τα μέλη δεν μπορούν να δουν ή να κάνουν οποιαδήποτε άλλη ενέργεια σε αυτή τη μονάδα.
teams.general_access=Γενική πρόσβαση
@ -2922,7 +2924,7 @@ teams.add_team_member=Προσθήκη μέλους ομάδας
teams.invite_team_member=Πρόσκληση στην ομάδα %s
teams.invite_team_member.list=Εκκρεμείς προσκλήσεις
teams.delete_team_title=Διαγραφή ομάδας
teams.delete_team_desc=Η διαγραφή μιας ομάδας ανακαλεί τη πρόσβαση στο αποθετήριο από τα μέλη της. Συνέχεια;
teams.delete_team_desc=Η διαγραφή μιας ομάδας ανακαλεί τη πρόσβαση στο repository από τα μέλη της. Συνέχεια;
teams.delete_team_success=Η ομάδα έχει διαγραφεί.
teams.read_permission_desc=Αυτή η ομάδα χορηγεί πρόσβαση <strong>Ανάγνωσης</strong>: τα μέλη μπορούν να δουν και να κλωνοποιήσουν τα αποθετήρια της ομάδας.
teams.write_permission_desc=Αυτή η ομάδα χορηγεί πρόσβαση <strong>Εγγραφής</strong>: τα μέλη μπορούν να διαβάσουν και να κάνουν push στα αποθετήρια της ομάδας.
@ -2934,9 +2936,9 @@ teams.remove_all_repos_title=Αφαίρεση όλων των αποθετηρί
teams.remove_all_repos_desc=Αυτό θα αφαιρέσει όλα τα αποθετήρια από την ομάδα.
teams.add_all_repos_title=Προσθήκη όλων των αποθετηρίων
teams.add_all_repos_desc=Αυτό θα προσθέσει όλα τα αποθετήρια του οργανισμού στην ομάδα.
teams.add_nonexistent_repo=Το αποθετήριο που προσπαθείτε να προσθέσετε δεν υπάρχει, παρακαλώ δημιουργήστε το πρώτα.
teams.add_nonexistent_repo=Το repository που προσπαθείτε να προσθέσετε δεν υπάρχει, παρακαλώ δημιουργήστε το πρώτα.
teams.add_duplicate_users=Ο χρήστης είναι ήδη μέλος της ομάδας.
teams.repos.none=Αυτή η ομάδα δεν έχει πρόσβαση σε κανένα αποθετήριο.
teams.repos.none=Αυτή η ομάδα δεν έχει πρόσβαση σε κανένα repository.
teams.members.none=Δεν υπάρχουν μέλη σε αυτήν την ομάδα.
teams.specific_repositories=Συγκεκριμένα αποθετήρια
teams.specific_repositories_helper=Τα μέλη θα έχουν πρόσβαση μόνο σε αποθετήρια που προστίθενται ρητά στην ομάδα. Επιλέγοντας το <strong>δεν θα</strong> θα αφαιρεθούν αυτόματα τα αποθετήρια που έχουν ήδη προστεθεί με το <i>Όλα τα αποθετήρια</i>.
@ -3154,7 +3156,7 @@ packages.creator=Δημιουργός
packages.name=Όνομα
packages.version=Έκδοση
packages.type=Τύπος
packages.repository=Αποθετήριο
packages.repository=Repository
packages.size=Μέγεθος
packages.published=Δημοσιευμένα
@ -3473,7 +3475,7 @@ notices.inverse_selection=Αντιστροφή επιλογής
notices.delete_selected=Διαγραφή επιλεγμένων
notices.delete_all=Διαγραφή όλων των ειδοποιήσεων
notices.type=Τύπος
notices.type_1=Αποθετήριο
notices.type_1=Repository
notices.type_2=Εργασία
notices.desc=Περιγραφή
notices.op=Λειτ.
@ -3511,7 +3513,7 @@ users.organization_creation.description = Να επιτρέπεται η δημ
[action]
create_repo=δημιούργησε το αποθετήριο <a href="%s">%s</a>
rename_repo=μετονόμασε το αποθετήριο από <code>%[1]s</code> σε <a href="%[2]s">%[3]s</a>
rename_repo=μετονόμασε το repository από <code>%[1]s</code> σε <a href="%[2]s">%[3]s</a>
commit_repo=έκανε push στο <a href="%[2]s">%[3]s</a> του <a href="%[1]s">%[4]s</a>
create_issue=`άνοιξε το ζήτημα <a href="%[1]s">%[3]s#%[2]s</a>`
close_issue=`έκλεισε το ζήτημα <a href="%[1]s">%[3]s#%[2]s</a>`
@ -3523,7 +3525,7 @@ comment_issue=`άφησε σχόλιο στο ζήτημα <a href="%[1]s">%[3]s
comment_pull=`σχολίασε στο pull request <a href="%[1]s">%[3]s#%[2]s</a>`
merge_pull_request=`συγχώνευσε το pull request <a href="%[1]s">%[3]s#%[2]s</a>`
auto_merge_pull_request=`αυτόματη συγχώνευση του pull request <a href="%[1]s">%[3]s#%[2]s</a>`
transfer_repo=μετέφερε το αποθετήριο <code>%s</code> σε <a href="%s">%s</a>
transfer_repo=μετέφερε το repository <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>
delete_branch=διέγραψε το κλάδο %[2]s από <a href="%[1]s">%[3]s</a>
@ -3603,7 +3605,7 @@ title=Πακέτα
desc=Διαχείριση πακέτων μητρώου.
empty=Δεν υπάρχουν πακέτα ακόμα.
empty.documentation=Για περισσότερες πληροφορίες σχετικά με το μητρώο πακέτων, συμβουλευτείτε <a target="_blank" rel="noopener noreferrer" href="%s">τον οδηγό</a>.
empty.repo=Μήπως ανεβάσατε ένα πακέτο, αλλά δεν εμφανίζεται εδώ; Πηγαίνετε στις <a href="%[1]s">ρυθμίσεις πακέτων</a> και συνδέστε το σε αυτό το αποθετήριο.
empty.repo=Μήπως ανεβάσατε ένα πακέτο, αλλά δεν εμφανίζεται εδώ; Πηγαίνετε στις <a href="%[1]s">ρυθμίσεις πακέτων</a> και συνδέστε το σε αυτό το repository.
registry.documentation=Για περισσότερες πληροφορίες σχετικά με το μητρώο %s, συμβουλευτείτε τον <a target="_blank" rel="noopener noreferrer" href="%s">οδηγό</a>.
filter.type=Τύπος
filter.type.all=Όλα
@ -3644,10 +3646,10 @@ composer.registry=Ρυθμίστε αυτό το μητρώο στο αρχεί
composer.install=Για να εγκαταστήσετε το πακέτο χρησιμοποιώντας το Composer, εκτελέστε την ακόλουθη εντολή:
composer.dependencies=Εξαρτήσεις
composer.dependencies.development=Εξαρτήσεις Ανάπτυξης
conan.details.repository=Αποθετήριο
conan.details.repository=Repository
conan.registry=Ρυθμίστε αυτό το μητρώο από τη γραμμή εντολών:
conan.install=Για να εγκαταστήσετε το πακέτο χρησιμοποιώντας το Conan, εκτελέστε την ακόλουθη εντολή:
conda.registry=Ρυθμίστε αυτό το μητρώο ως αποθετήριο Conda στο αρχείο <code>.condarc</code>:
conda.registry=Ρυθμίστε αυτό το μητρώο ως repository Conda στο αρχείο <code>.condarc</code>:
conda.install=Για να εγκαταστήσετε το πακέτο χρησιμοποιώντας το Conda, εκτελέστε την ακόλουθη εντολή:
container.details.type=Τύπος Εικόνας
container.details.platform=Πλατφόρμα
@ -3705,8 +3707,8 @@ swift.registry=Ρυθμίστε αυτό το μητρώο από τη γραμ
swift.install=Προσθέστε το πακέτο στο αρχείο <code>Package.swift</code>:
swift.install2=και εκτελέστε την ακόλουθη εντολή:
vagrant.install=Για προσθήκη ενός κυτίου Vagrant, εκτελέστε την ακόλουθη εντολή:
settings.link=Σύνδεση αυτού του πακέτου με ένα αποθετήριο
settings.link.description=Εάν συνδέσετε ένα πακέτο με ένα αποθετήριο, το πακέτο περιλαμβάνεται στη λίστα πακέτων του αποθετηρίου.
settings.link=Σύνδεση αυτού του πακέτου με ένα repository
settings.link.description=Εάν συνδέσετε ένα πακέτο με ένα repository, το πακέτο περιλαμβάνεται στη λίστα πακέτων του repository.
settings.link.select=Επιλογή Αποθετηρίου
settings.link.button=Ενημέρωση Συνδέσμου Αποθετηρίου
settings.link.success=Ο σύνδεσμος αποθετηρίου ενημερώθηκε επιτυχώς.
@ -3718,7 +3720,7 @@ settings.delete.success=Το πακέτο έχει διαγραφεί.
settings.delete.error=Αποτυχία διαγραφής του πακέτου.
owner.settings.cargo.title=Ευρετήριο μητρώου Cargo
owner.settings.cargo.initialize=Αρχικοποίηση ευρετηρίου
owner.settings.cargo.initialize.description=Απαιτείται ένα ειδικό αποθετήριο ευρετηρίου Git για τη χρήση του μητρώου Cargo. Χρησιμοποιώντας αυτή την επιλογή θα δημιουργηθεί ξανά το αποθετήριο και θα ρυθμιστεί αυτόματα.
owner.settings.cargo.initialize.description=Απαιτείται ένα ειδικό repository ευρετηρίου Git για τη χρήση του μητρώου Cargo. Χρησιμοποιώντας αυτή την επιλογή θα δημιουργηθεί ξανά το repository και θα ρυθμιστεί αυτόματα.
owner.settings.cargo.initialize.error=Αποτυχία αρχικοποίησης ευρετηρίου Cargo: %v
owner.settings.cargo.initialize.success=Ο ευρετήριο Cargo δημιουργήθηκε με επιτυχία.
owner.settings.cargo.rebuild=Ανανέωση ευρετηρίου
@ -3811,7 +3813,7 @@ runners.task_list=Πρόσφατες εργασίες στον εκτελεστ
runners.task_list.no_tasks=Δεν υπάρχει καμία εργασία ακόμα.
runners.task_list.run=Εκτέλεση
runners.task_list.status=Κατάσταση
runners.task_list.repository=Αποθετήριο
runners.task_list.repository=Repository
runners.task_list.commit=Υποβολή
runners.task_list.done_at=Ολοκλήρωσε Στις
runners.edit_runner=Επεξεργασία Εκτελεστή

View file

@ -231,7 +231,6 @@ string.desc = Z - A
[error]
occurred = An error occurred
report_message = If you believe that this is a Forgejo bug, please search for issues on <a href="%s" target="_blank">Codeberg</a> or open a new issue if necessary.
invalid_csrf = Bad Request: invalid CSRF token
not_found = The target couldn't be found.
network_error = Network error
server_internal = Internal server error
@ -437,6 +436,8 @@ reset_password_wrong_user = You are signed in as %s, but the account recovery li
password_too_short = Password length cannot be less than %d characters.
non_local_account = Non-local users cannot update their password through the Forgejo web interface.
verify = Verify
;As https://codeberg.org/forgejo/forgejo/issues/2809 progresses, please update this error message if possible
unauthorized_credentials = Credentials are incorrect or have expired. Retry your command or see %s for more information
scratch_code = Scratch code
use_scratch_code = Use a scratch code
twofa_scratch_used = You have used your scratch code. You have been redirected to the two-factor settings page so you may remove your device enrollment or generate a new scratch code.
@ -761,7 +762,7 @@ language.localization_project = Help us translate Forgejo into your language! <a
ui = Theme
hints = Hints
additional_repo_units_hint = Suggest to enable additional repository units
additional_repo_units_hint_description = Display an "Add more units..." button for repositories that do not have all available units enabled.
additional_repo_units_hint_description = Display an "Enable more" hint for repositories that do not have all available units enabled.
update_hints = Update hints
update_hints_success = Hints have been updated.
hidden_comment_types = Hidden comment types
@ -1506,6 +1507,7 @@ issues.new.closed_milestone = Closed milestones
issues.new.assignees = Assignees
issues.new.clear_assignees = Clear assignees
issues.new.no_assignees = No assignees
issues.new.assign_to_me = Assign to me
issues.new.no_reviewers = No reviewers
issues.edit.already_changed = Unable to save changes to the issue. It appears the content has already been changed by another user. Please refresh the page and try editing again to avoid overwriting their changes
issues.choose.get_started = Get started
@ -1970,6 +1972,10 @@ pulls.auto_merge_canceled_schedule = The auto merge was canceled for this pull r
pulls.auto_merge_newly_scheduled_comment = `scheduled this pull request to auto merge when all checks succeed %[1]s`
pulls.auto_merge_canceled_schedule_comment = `canceled auto merging this pull request when all checks succeed %[1]s`
pulls.delete_after_merge.head_branch.is_default = The head branch you want to delete is the default branch and cannot be deleted.
pulls.delete_after_merge.head_branch.is_protected = The head branch you want to delete is a protected branch and cannot be deleted.
pulls.delete_after_merge.head_branch.insufficient_branch = You don't have permission to delete the head branch.
pulls.delete.title = Delete this pull request?
pulls.delete.text = Do you really want to delete this pull request? (This will permanently remove all content. Consider closing it instead, if you intend to keep it archived)
@ -2175,9 +2181,9 @@ settings.mirror_settings.push_mirror.add = Add push mirror
settings.mirror_settings.push_mirror.edit_sync_time = Edit mirror sync interval
settings.mirror_settings.push_mirror.none_ssh = None
settings.units.units = Repository units
settings.units.units = Units
settings.units.overview = Overview
settings.units.add_more = Add more...
settings.units.add_more = Enable more
settings.sync_mirror = Synchronize now
settings.mirror_settings.push_mirror.copy_public_key = Copy public key
@ -2283,7 +2289,7 @@ settings.trust_model.collaboratorcommitter.desc = Valid signatures by collaborat
settings.wiki_rename_branch_main = Normalize the Wiki branch name
settings.wiki_rename_branch_main_desc = Rename the branch used internally by the Wiki to "%s". This change is permanent and cannot be undone.
settings.wiki_rename_branch_main_notices_1 = This operation <strong>CANNOT</strong> be undone.
settings.wiki_rename_branch_main_notices_2 = This will permanently rename the the internal branch of %s's repository wiki. Existing checkouts will need to be updated.
settings.wiki_rename_branch_main_notices_2 = This will permanently rename the internal branch of %s's repository wiki. Existing checkouts will need to be updated.
settings.wiki_branch_rename_success = The repository wiki's branch name has been successfully normalized.
settings.wiki_branch_rename_failure = Failed to normalize the repository wiki's branch name.
settings.confirm_wiki_branch_rename = Rename the wiki branch
@ -2355,6 +2361,7 @@ settings.slack_icon_url = Icon URL
settings.slack_color = Color
settings.discord_username = Username
settings.discord_icon_url = Icon URL
settings.discord_icon_url.exceeds_max_length = Icon URL must be less than or equal to 2048 characters
settings.event_desc = Trigger on:
settings.event_push_only = Push events
settings.event_send_everything = All events
@ -2375,32 +2382,32 @@ settings.event_push_desc = Git push to a repository.
settings.event_repository = Repository
settings.event_repository_desc = Repository created or deleted.
settings.event_header_issue = Issue events
settings.event_issues = Issues
settings.event_issues = Modification
settings.event_issues_desc = Issue opened, closed, reopened, or edited.
settings.event_issue_assign = Issue assigned
settings.event_issue_assign = Assignment
settings.event_issue_assign_desc = Issue assigned or unassigned.
settings.event_issue_label = Issue labeled
settings.event_issue_label_desc = Issue labels updated or cleared.
settings.event_issue_milestone = Issue milestoned
settings.event_issue_milestone_desc = Issue milestoned or demilestoned.
settings.event_issue_comment = Issue comment
settings.event_issue_label = Labels
settings.event_issue_label_desc = Issue labels added or removed.
settings.event_issue_milestone = Milestones
settings.event_issue_milestone_desc = Milestone added, removed or modified.
settings.event_issue_comment = Comments
settings.event_issue_comment_desc = Issue comment created, edited, or deleted.
settings.event_header_pull_request = Pull request events
settings.event_pull_request = Pull request
settings.event_pull_request = Modification
settings.event_pull_request_desc = Pull request opened, closed, reopened, or edited.
settings.event_pull_request_assign = Pull request assigned
settings.event_pull_request_assign = Assignment
settings.event_pull_request_assign_desc = Pull request assigned or unassigned.
settings.event_pull_request_label = Pull request labeled
settings.event_pull_request_label_desc = Pull request labels updated or cleared.
settings.event_pull_request_milestone = Pull request milestoned
settings.event_pull_request_milestone_desc = Pull request milestoned or demilestoned.
settings.event_pull_request_comment = Pull request comment
settings.event_pull_request_label = Labels
settings.event_pull_request_label_desc = Pull request labels added or removed.
settings.event_pull_request_milestone = Milestones
settings.event_pull_request_milestone_desc = Milestone added, removed or modified.
settings.event_pull_request_comment = Comments
settings.event_pull_request_comment_desc = Pull request comment created, edited, or deleted.
settings.event_pull_request_review = Pull request reviewed
settings.event_pull_request_review_desc = Pull request approved, rejected, or review comment.
settings.event_pull_request_sync = Pull request synchronized
settings.event_pull_request_sync_desc = Pull request synchronized.
settings.event_pull_request_review_request = Pull request review requested
settings.event_pull_request_review = Reviews
settings.event_pull_request_review_desc = Pull request approved, rejected, or review comments added.
settings.event_pull_request_sync = Synchronized
settings.event_pull_request_sync_desc = Branch updated automatically with target branch.
settings.event_pull_request_review_request = Review requests
settings.event_pull_request_review_request_desc = Pull request review requested or review request removed.
settings.event_pull_request_approvals = Pull request approvals
settings.event_pull_request_merge = Pull request merge

View file

@ -29,7 +29,7 @@ your_profile = Profilo
sign_out = Adiaŭi
settings = Agordoj
logo = Emblemo
toc = Listo de enhavo
toc = Enhavotabelo
admin_panel = Retejadministrado
webauthn_unsupported_browser = Via retfoliumilo ne jam subtenas la salutmanieron WebAuthn.
new_org = Novan organizaĵon
@ -53,7 +53,7 @@ template = Ŝablono
webauthn_press_button = Bonvolu premi la butonon sur via sekurŝlosilo…
signed_in_as = Salutinta kiel
sign_up = Registriĝi
enable_javascript = Ĉi tiu retejo bezonas JavaScripton.
enable_javascript = Ĉi tiu retejo bezonas JavaSkripton.
home = Hejmo
email = Retpoŝtadreso
your_settings = Agordoj
@ -65,7 +65,7 @@ collaborative = Kunlaboraj
pull_requests = Tirpetoj
cancel = Nuligi
preview = Antaŭvido
disabled = Malŝaltita
disabled = Malaktivigita
go_back = Reiri
copy_content = Kopii enhavon
archived = Arĥivita
@ -108,12 +108,12 @@ unknown = Nekonata
issues = Eraroj
error404 = Aŭ tiu ĉi paĝo <strong>ne ekzistas</strong> aŭ <strong>vi ne rajtas</strong> vidi ĝin.
retry = Reprovi
activities = Agoj
activities = Aktivecoj
confirm_delete_selected = Konfirmi forigon de ĉiu elektito?
forks = Disbranĉiĝaj
forks = Disbranĉigoj
new_mirror = Novan spegulon
re_type = Retajpu pasvorton
new_fork = Novan disbranĉiĝon de deponejo
new_fork = Novan disbranĉiĝo de deponejo
new_project_column = Novan kolumnon
new_migrate = Novan enporton
mirror = Spegulo
@ -122,12 +122,12 @@ remove = Forigi
filter = Filtri
filter.is_archived = Arĥivita
filter.not_archived = Nearĥivita
filter.is_fork = Disbranĉigita
filter.not_fork = Nedisbranĉigita
filter.is_mirror = Spegulita
filter.not_mirror = Nespegulita
filter.is_template = Ŝablono
filter.not_template = Neŝablono
filter.is_fork = Disbranĉigoj
filter.not_fork = Ne disbranĉigoj
filter.is_mirror = Speguloj
filter.not_mirror = Ne speguloj
filter.is_template = Ŝablonoj
filter.not_template = Ne ŝablonoj
filter.public = Publika
filter.private = Privata
dashboard = Labortablo
@ -142,6 +142,14 @@ copy_generic = Kopii al tondujo
confirm_delete_artifact = Ĉu vi certas, ke vi volas forigi la artefakton "%s"?
artifacts = Artefaktoj
new_repo.title = Novan deponejon
filter.clear = Forigi filtrilojn
new_migrate.title = Novan migrigon
new_org.title = Novan organizaĵon
new_repo.link = Novan deponejon
new_migrate.link = Novan migrigon
new_org.link = Novan organizaĵon
error413 = Vi plenkonsumis vian kvoton.
twofa_scratch = Sukuranta kodo por duobla aŭtentikigo
[editor]
buttons.list.ordered.tooltip = Aldoni nombran liston
@ -158,10 +166,12 @@ buttons.mention.tooltip = Mencii uzanton aŭ grupon
buttons.italic.tooltip = Aldoni oblikvan tekston
buttons.link.tooltip = Aldoni ligilon
buttons.disable_monospace_font = Malsalti egallarĝan signoformaron
buttons.indent.tooltip = Krommarĝeni erojn je unu nivelo
buttons.unindent.tooltip = Malkrommarĝeni erojn je unu nivelo
[aria]
navbar = Esplora breto
footer.software = Pri programaro
footer.software = Pri ĉi tiu programaro
footer.links = Ligiloj
footer = Piedo
@ -176,13 +186,16 @@ network_error = Reteraro
invalid_csrf = Malvalida peto: malvalida CSRF-kodo
occurred = Eraris iel
missing_csrf = Malvalida peto: neniu CSRF-kodo
server_internal = Eraris interno de servilo
server_internal = Ena servila eraro
[heatmap]
less = Malpli
number_of_contributions_in_the_last_12_months = %s kontribuoj dum la pasintaj 12 monatoj
contributions_zero = Neniu kontribuo
more = Pli
contributions_format = {contributions} la {day}-an de {month} {year}
contributions_one = kontribuaĵo
contributions_few = kontribuaĵoj
[startpage]
app_desc = Senpena kaj memgastigebla Git-servo
@ -199,37 +212,37 @@ license_desc = Ek, prenu <a target="_blank" rel="noopener noreferrer" href="%[1]
title = Komenca agordado
install = Instalado
db_name = Datumbazonomo
run_user = Rulu kiel uzanto
run_user = Ruli kiel tiu uzanto
log_root_path = Protokola dosiervojo
err_admin_name_is_invalid = Uzantonomo de administranto malvalidas
log_root_path_helper = Protokoloj skribiĝos en ĉi tiun dosierujon.
allow_only_external_registration.description = Permesi registriĝojn sole per fremdaj servoj
allow_only_external_registration.description = Uzantoj rajtas krei novajn kontojn nur uzante agorditajn fremdajn servojn.
user = Uzantonomo
smtp_addr = SMTP adreso
smtp_port = SMTP adrespordo
disable_registration = Malŝalti registriĝon
disable_registration = Malaktivigi registriĝon
reinstall_confirm_check_3 = Vi asertas ke vi plencertas ke tiu ĉi Forgejo ruliĝas per la ĝusta app.ini, kaj ke vi certas ke devas reinstali. Vi asertas ke vi bone komprenas la supre menciitajn danĝerojn.
federated_avatar_lookup.description = Ŝaltas serĉadon de profilbildoj el federaj fontoj per Libravatar.
federated_avatar_lookup.description = Serĉi profilbildojn per Libravatar.
mailer_password = SMTP pasvorto
repo_path = Deponeja dosiervojo
err_empty_admin_email = La retpoŝtadreso de administranto ne malplenu.
app_url_helper = Baza URL por HTTP(S) elŝutaj ligiloj kaj retleteroj.
mailer_user = SMTP uzantonomo
openid_signup = Ŝalti registriĝon per OpenID
mailer_user = SMTP uzantnomo
openid_signup = Aktivigi registriĝon per OpenID
reinstall_confirm_check_2 = Deponejoj kaj agordoj eble devos re-interakordiĝi. Ŝaltinte tiun ĉi skatolon, vi asertas ke vi permane interakordigos kaj la hokojn por la deponejoj kaj authorized_keys. Vi asertas, ke deponejaj kaj spegulaj agordoj pravas.
path = Vojo
no_admin_and_disable_registration = Neeblas malŝalti memregistradon sen kreiĝo de administranta konto.
disable_gravatar.description = Malŝaltas Gravatar kaj fremdajn fontojn de profilbildoj. Implicita profilbildo uziĝos, krom se la uzanto alŝutus loke profilbildon.
offline_mode.description = Malŝaltas uzon de fremdaj serviloj por datumosendoj, ĉio datumo sendiĝos deloke.
no_admin_and_disable_registration = Neeblas malaktivigi memregistradon sen krei administrantan konton.
disable_gravatar.description = Malaktivigas Gravatar-on kaj aliajn fremdajn fontojn de profilbildoj. Defaŭltaj profilbildoj uziĝos, krom se la uzanto alŝutus loke profilbildon.
offline_mode.description = Malaktivigi uzon de fremdaj serviloj por datumosendaĵoj kaj okupiĝas pri ciuj datumoj loke.
reinstall_confirm_message = Reinstalado al jamekzistanta Forgejo-datumbazo povas okazigi plurajn problemojn. Vi kredeble anstataŭe rulu Forgejon kun via jama «app.ini». Sed se vi certas, ke vi komprenas kion vi faras, asertu jene:
run_user_helper = Forgejo ruliĝos sub tiu ĉi uzanto de via operaciumo. Sciu, ke tiu ĉi uzanto bezonos aliron al la dosiervojon de deponejoj.
domain = Retnomo
err_admin_name_pattern_not_allowed = Uzantonomo de administranto malvalidas, ĉar la nomo akordas rezervan ŝablonon
disable_registration.description = Malŝaltas registriĝojn. Sole administrantoj rajtos krei novajn kontojn.
disable_registration.description = Malaktivigas registriĝojn. Sole administrantoj rajtos krei novajn kontojn.
db_schema = Skemo
reinstall_error = Vi provas instali al jamekzistanta Forgejo-datumbazo
err_empty_admin_password = La pasvorto de administranto ne malplenu.
disable_gravatar = Malŝalti profilbildojn per Gravatar
disable_gravatar = Malaktivigi Gravatar-on
repo_path_helper = Foraj Git-deponejoj konserviĝos al tiu ĉi dosierujo.
sqlite_helper = Dosiervojo por la datumbazo SQLite3.<br>Enigu absolutan vojon se vi rulas Forgejon kiel servo.
enable_captcha = Ŝalti dumregistriĝan teston de homeco
@ -237,7 +250,7 @@ require_db_desc = Forgejo bezonas kiel datumbazo MySQL, PostgreSQL, SQLite3, aŭ
smtp_from = Sendu retleterojn kiel
general_title = Ĝeneralaj agordoj
password = Pasvorto
lfs_path_helper = Dosieroj spurataj de Git LFS konserviĝos en tiu ĉi dosierujo. Lasu malplena por malŝalti.
lfs_path_helper = Dosieroj spurataj de Git LFS konserviĝos en tiu ĉi dosierujo. Lasu malplena por malaktivigi.
openid_signin = Ŝalti salutadon per OpenID
host = Gastiganto
docker_helper = Se vi rulas Forgejon per Docker, bonvolu legi la <a target="_blank" rel="noopener noreferrer" href="%s">gvidpaĝojn</a> antaŭ ajna agordoŝanĝo.
@ -245,67 +258,71 @@ federated_avatar_lookup = Ŝalti federajn profilbildojn
optional_title = Malnepraj agordoj
domain_helper = Retnomo aŭ adreso de la servilo.
mail_notify = Ŝalti retpoŝtajn sciigojn
app_url = Forgejo Baza URL
app_url = Baza URL
ssl_mode = SSL
db_title = Datumbazaj agordoj
err_empty_db_path = La datumbazovojo de SQLite3 ne malplenu.
openid_signin.description = Ŝaltas salutadon per OpenID.
openid_signin.description = Permesas al la uzantoj ensaluti per OpenID.
smtp_from_helper = Retpoŝtadreson kiun uzos Forgejo. Enmetu ordinaran adreson aŭ laŭ la formo «"Name" <email@example.com>».
enable_captcha.description = Postulas teston de homeco dum registriĝoj.
ssh_port_helper = Adresporda numero kiun atentas via SSH-servilo. Lasu malplena por malŝalti.
enable_captcha.description = Postuli teston de homeco al la uzantoj kreantaj kontojn.
ssh_port_helper = Adresporda numero kiu estos uzata de la SSH-servilo. Lasu malplena por malaktivigi la SSH-servilon.
lfs_path = Git LFS dosiervojo
app_name_helper = Vi povas enmeti la nomon de via kompanio ĉi tien.
http_port_helper = Adresporda numero kiun atentos la HTTP-servilo de Forgejo.
http_port = Forgejo HTTP adrespordo
app_name_helper = Vi povas enmeti la nomon de via kompanio ĉi tien. Ĝi montriĝos en ĉiuj retpaĝoj.
http_port_helper = Adresporda numero kiu estos uzta de la HTTP-servilo de Forgejo.
http_port = HTTP adrespordo
db_schema_helper = Lasu malplena por implicita («public»).
ssh_port = SSH adrespordo
err_admin_name_is_reserved = Uzantonomo de administranto malvalidas, tiu uzantonomo estas rezerva
openid_signup.description = Ŝaltas uzantregistriĝon per OpenID.
openid_signup.description = Permesi al la uzantoj krei kontojn per OpenID se reĝitriĝo aktivas.
db_type = Datumbazospeco
email_title = Retpoŝtaj agordoj
offline_mode = Ŝalti lokan reĝimon
reinstall_confirm_check_1 = La datumoj ĉifritaj per la ŝlosilo SECRET_KEY en app.ini eble perdiĝos; eblas ke uzantoj ne povos saluti per dumaniera-saluto aŭ unufojaj pasvortoj, kaj ke spegulado ne funkcios ĝuste. Ŝaltinte tiun ĉi skatolon, vi asertas ke la nuna app.ini dosiero enhavas la ĝustan SECRET_KEY.
app_name = Retejonomo
server_service_title = Servilaj kaj fremdservaj agordoj
require_sign_in_view = Postuli saluton por vidi paĝojn
require_sign_in_view = Postuli saluton por vidi instancan enhavon
register_confirm = Postuli retpoŝtan kontrolon por registri
admin_password = Pasvorto
admin_title = Administrantaj kontagordoj
admin_email = Retpoŝtadreso
install_btn_confirm = Instali Forgejon
require_sign_in_view.description = Kaŝi paĝon de ajna nesalutinto. Vizitantoj sole vidos salutajn kaj registriĝajn paĝojn.
require_sign_in_view.description = Kaŝi paĝon de ajna nesalutinto. Vizitantoj nur vidos salutajn kaj registriĝajn paĝojn.
invalid_db_setting = La datumbazaj agordoj malvalidas: %v
invalid_db_table = La datumbaza tabelo «%s» malvalidas: %v
sqlite3_not_available = Ĉi tiu versio de Forgejo ne subtenas SQLite3. Bonvolu elŝuti la oficialan ruldosieron de %s (ne la version «gobuild»).
invalid_app_data_path = La programdatuma dosiervojo malvalidas: %s
test_git_failed = Ne povis testi programon «git»: %v
test_git_failed = Ne povis testi "git" komandon: %v
confirm_password = Konfirmi pasvorton
invalid_repo_path = La deponeja dosiervojo malvalidas: %v
admin_name = Administranto uzantonomo
admin_setting.description = Krei administranton estas malnepra. La unue registrota uzanto memage iĝos administranto.
run_user_not_match = La «rulu kiel» uzantonomo ne samas al la nuna uzantonomo: %s -> %s
admin_name = Administranta uzantnomo
admin_setting.description = Krei administrantan konton malnepras. La unua registrota uzanto aŭtomate iĝos administranto.
run_user_not_match = La "ruli kiel tiu uzanto" uzantnomo ne samas al la nuna uzantnomo: %s -> %s
secret_key_failed = Malsukcesis kreante sekretan ŝlosilon: %v
save_config_failed = Malsukcesis konservante agordojn: %v
invalid_admin_setting = Agordoj de administranta konto malvalidas: %v
enable_update_checker_helper_forgejo = Foje serĉas novajn versiojn de Forgejo per kontrolado de DNS TXT registraĵo ĉe release.forgejo.org.
enable_update_checker_helper_forgejo = Periode serĉos novajn versiojn de Forgejo kontrolante DNS TXT registraĵon ĉe release.forgejo.org.
invalid_log_root_path = La protokola dosiervojo malvalidas: %v
default_enable_timetracking = Ŝalti tempospuradon implicite
default_enable_timetracking.description = Ŝaltus tempospuradon por novaj deponejoj implicite.
default_keep_email_private.description = Kaŝus retpoŝtadresojn de novaj kontoj implicite.
default_allow_create_organization = Permesi kreadon de organizaĵoj implicite
default_enable_timetracking = Aktivigi tempospuradon defaŭlte
default_enable_timetracking.description = Aktivigas tempospuradon por novaj deponejoj defaŭlte.
default_keep_email_private.description = Kaŝi defaŭlte retpoŝtadresojn por novaj uzantoj por ke iliaj informoj ne senprokraste likiĝas post reĝistriĝo.
default_allow_create_organization = Permesi kreadon de organizaĵoj defaŭlte
allow_dots_in_usernames = Permesi ĉeeston de punktoj en uzantonomoj. Ne efikas je jamaj kontoj.
no_reply_address = Retnomo de retpoŝtaj kaŝadresoj
default_keep_email_private = Kaŝi retpoŝtadresojn implicite
default_allow_create_organization.description = Permesus novajn uzantojn krei organizaĵojn implicite.
no_reply_address = Retnomo por kaŝitaj retpoŝtadresoj
default_keep_email_private = Kaŝi retpoŝtadresojn defaŭlte
default_allow_create_organization.description = Permesi al novaj uzantoj krei organizaĵojn defaŭlte. Kiam ĉi tiu opcio malaktiviĝas, administranto devos permesi al novaj uzantoj krei organizaĵojn.
env_config_keys_prompt = La jenaj mediaj variantoj ankaŭ fandiĝos kun via agordodosiero:
no_reply_address_helper = Retnomo kiu uziĝus por uzantoj kun kaŝita retpoŝtadreso. Ekzemple, la uzanto «adamo» protokoliĝus je Git kiel «adamo@nerespondu.ekzemplo.org» se la adreskaŝa retnomo estus «nerespondu.ekzemplo.org».
enable_update_checker = Ŝalti novversian kontrolanton
enable_update_checker = Aktivigi novversian kontrolanton
password_algorithm = Pasvorthaketiga algoritmo
env_config_keys = Mediagordoj
invalid_password_algorithm = Malvalida pasvorthakeita algoritmo
password_algorithm_helper = Agordas la pasvorthaketigan algoritmon. Algoritmoj havas malsamajn postulojn kaj efikecojn. La algoritmo argon2 sufiĉe sekuras, sed postulas multan memoron kaj eble ne taŭgas por nepotencaj serviloj.
internal_token_failed = Malsukcesis krei internan ĵetonon: %v
smtp_from_invalid = La «Sendu retleterojn kiel» adreso malvalidas
allow_only_external_registration = Permesi registriĝon nur per fremdaj servoj
app_slogan = Instanca frapfrazo
app_slogan_helper = Enigu vian instancan frapfrazon ĉi tien. Lasu malplena por malaktivigi.
config_location_hint = Ĉi tiuj agordoj konserviĝos en:
[admin]
config.app_data_path = Programdatuja doseiervojo
@ -315,8 +332,8 @@ config.allow_dots_in_usernames = Permesi ĉeeston de punktoj en uzantonomoj. Ne
filter = Aliaj filtriloj
show_archived = Arĥivita
search_repos = Serĉi deponejon…
my_orgs = Miaj organizaĵoj
uname_holder = Uzantonomo aŭ Retpoŝtadreso
my_orgs = Organizaĵoj
uname_holder = Uzantnomo aŭ retpoŝtadreso
my_repos = Deponejoj
show_both_archived_unarchived = Montras arĥivitajn kaj nearĥivitajn
feed_of = Fluo de «%s»
@ -333,7 +350,7 @@ show_only_unarchived = Montras sole nearĥivitajn
my_mirrors = Miaj speguloj
show_only_archived = Montras sole arĥivitajn
view_home = Vidi %s
switch_dashboard_context = Ŝanĝi labortablon
switch_dashboard_context = Baskuli la kuntekston de la kontrolpanelo
[explore]
search.match.tooltip = Inkluzivu sole rezultojn kiuj akordas precize la serĉomendon
@ -355,22 +372,26 @@ code_search_results = Serĉrezultoj je «%s»
relevant_repositories = Sole montras aktualajn deponejojn, <a href="%s">montri senfiltrajn rezultojn</a>.
code_last_indexed_at = Plejfreŝe esplorita je %s
code_no_results = Neniu fontkodo akorda laŭ via serĉomendo trovita.
forks_few = %d disbranĉigoj
stars_one = %d stelo
forks_one = %d disbranĉigo
stars_few = %d steloj
[auth]
disable_register_mail = Retpoŝta konfirmado dum registriĝo estas malŝaltita.
disable_register_mail = Retpoŝta konfirmado dum registriĝo estas malaktivigita.
sign_up_successful = Konto sukcese kreita. Bonvenon!
forgot_password = Ĉu forgesis pasvorton?
sign_up_now = Ĉu bezonas konton? Registriĝu nun.
forgot_password_title = Forgesis pasvorton
social_register_helper_msg = Ĉu vi jam havas konton? Alligu ĝin nun!
create_new_account = Registri konton
disable_register_prompt = Registrado estas malŝaltita. Bonvolu sciigi vian retejestron.
disable_register_prompt = Registrado estas malaktivigita. Bonvolu sciigi vian retejestron.
register_helper_msg = Ĉu vi jam havas konton? Salutu nun!
manual_activation_only = Kunparolu vian retejestron por finpretigi vian konton.
authorization_failed_desc = La aprobo malsukcesis ĉar ni rimarkis malvalidan peton. Bonvolu sciigi la prizorganton de la programo kiun vi provis aprobi.
oauth_signin_tab = LIgi al jama konto
oauth_signin_tab = Ligi al jama konto
invalid_password = Via pasvorto ne samas tiun uzitan dum kreiĝo de via konto.
send_reset_mail = Sendi retleteron por rehavigo de konto
send_reset_mail = Sendi retleteron de rehavigo
oauth_signin_title = Salutu por aprobi kontligiĝon
reset_password_helper = Rehavigi konton
tab_openid = OpenID
@ -382,7 +403,7 @@ login_userpass = Saluti
password_too_short = Pasvortoj devas longi minimume %d signojn.
resend_mail = Klaki ĉi tien por resendi vian konfirmleteron
change_unconfirmed_email_error = Ne povis ŝanĝi la retpoŝtadreson: %v
authorize_application_description = Se vi permesus aliron, ĝi povos aliri kaj redakti ĉiujn viajn kontinformojn, inkluzivante privatajn deponejojn kaj organizaĵojn.
authorize_application_description = Se vi permesus aliron, ĝi povos aliri kaj redakti ĉiujn viajn kontinformojn, inkluzive privatajn deponejojn kaj organizaĵojn.
allow_password_change = Postuli novan pasvorton de la uzanto (rekomendita)
oauth.signin.error.access_denied = La aprobpeto malakceptiĝis.
authorize_title = Aprobi aliron de via konto al «%s»?
@ -394,15 +415,15 @@ disable_forgot_password_mail = Rehavigo de konto estas malsaltita ĉar neniu ret
last_admin = Vi ne povas forigi la lastan administranton. Nepras havi almenaŭ unu administranton.
reset_password_wrong_user = Vi salutis kiel %s, sed la kontrehaviga ligilo estas celata al %s
openid_connect_title = Konekti jaman konton
confirmation_mail_sent_prompt = Sendis novan konfirmleteron al <b>%s</b>. Bonvolu kontroli vian retleterkeston antaŭ la venonta %s. Se la retpoŝtadreso malĝustas, vi povus saluti kaj peti sendon de plia konfirmletero al alian adreson.
confirmation_mail_sent_prompt = Sendis konfirmleteron al <b>%s</b>. Por fini la reĝistriĝon, bonvolu kontroli vian retleterkeston kaj sekvi la provizotan ligilon antaŭ la venonta %s. Se la retletero malĝustas, vi povas saluti kaj peti ke alian konfirmleteron estas sendota al malsama retpoŝtadreso.
password_pwned = La pasvorton kiun vi elektis listiĝas ĉe <a target="_blank" rel="noopener noreferrer" href="%s">listo de ŝtelitaj pasvortoj</a> kiu publikiĝis pro datumŝtelo. Bonvolu reprovi kun alia pasvorto, kaj konsideru anstataŭigon de ĉi tiu pasvorto ĉe aliaj kontoj.
authorize_application_created_by = Ĉi tiun programon kreis %s.
prohibit_login = Salutado malpermesita
prohibit_login = La konto estas suspendita
openid_register_title = Krei novan konton
email_domain_blacklisted = Vi ne povas registriĝi per via retpoŝtadreso.
verify = Konfirmi
oauth_signup_submit = Finfari konton
prohibit_login_desc = Salutado per via konto estas malpermesita, bonvolu kunparoli vian retejestron.
prohibit_login_desc = Via konto estas suspendita kaj ne povas interagi kun la instanco. Bonvolu kontakti vian retejestron por regajni aliron.
openid_connect_desc = La elektita OpenID URI estas nekonata. Ligu ĝin al nova konto ĉi tie.
oauth.signin.error = Eraris traktante aprobpeton. Se plu eraros, bonvolu kunparoli la retejestron.
invalid_code = Via konfirmkodo malvalidas aŭ eksdatiĝis.
@ -412,7 +433,7 @@ email_not_associate = Tiu retpoŝtadreso estas ligita al neniu konto.
openid_signin_desc = Enmetu vian OpenID URI. Ekzemple: sofia.openid.example.org aŭ https://openid.example.org/sofia.
disable_forgot_password_mail_admin = Rehavigo de konto sole uzeblas se retpoŝto estas agordita. Bonvolu agordi retpoŝton por ŝalti kontrehavigon.
change_unconfirmed_email = Se vi donis la malĝustan retpoŝtadreson dum registriĝo, vi povas ŝanĝi ĝin sube, kaj konfirmletero sendiĝus al tiu anstataŭe.
reset_password_mail_sent_prompt = Sendis novan konfirmleteron al <b>%s</b>. Bonvolu kontroli vian retleterkeston antaŭ la venonta %s, por daŭrigi rehavigon de konto.
reset_password_mail_sent_prompt = Sendis konfirmleteron al <b>%s</b>. Por fini la rehavigon de konto, bonvolu kontroli vian retleterkeston kaj sekvi la provizotan ligilon antaŭ la venonta %s.
openid_register_desc = La elektita OpenID URI estas nekonata. Ligi ĝin al nova konto ĉi tie.
reset_password = Rehavigo de konto
sspi_auth_failed = SSPI aŭtentikigo malsukcesis
@ -424,6 +445,16 @@ change_unconfirmed_email_summary = Ŝanĝi al retpoŝtadreson al kiu la aktiviga
invalid_code_forgot_password = Via konfirmkodo malvalidas aŭ jam eksdatiĝis. Klaku <a href="%s">ĉi tien</a> por komenci novan saluton.
authorize_redirect_notice = Vi alidirektiĝos al %s se vi aprobus ĉi tiun programon.
active_your_account = Aktivigi vian konton
unauthorized_credentials = Viaj salutiloj malĝustas aŭ eksdatiĝis. Reprovu vian komandon aŭ vidu %s por pli da informoj
scratch_code = Sukuranta kodo
use_scratch_code = Uzi sukurantan kodon
twofa_scratch_used = Vi uzis vian sukurantan kodon. Vi redirektiĝis al la agorda retpaĝo por forigi la duoblan aŭtentikigon el via aparato aŭ generi novan sukurantan kodon.
twofa_passcode_incorrect = Via paskodo malĝustas. Se vi mislokis vian aparaton, uzu vian sukurantan kodo por saluti.
twofa_scratch_token_incorrect = Via sukuranta kodo malĝustas.
hint_login = Ĉu vi jam havas konton? <a href="%s">Salutu nun!</a>
hint_register = Ĉu vi bezonas konton? <a href="%s">Reĝistriĝi nun.</a>
sign_up_button = Reĝistriĝi nun.
sign_in_openid = Daŭrigi kun OpenID
[mail]
activate_account.text_1 = Saluton <b>%[1]s</b>, dankon pro via registriĝo ĉe %[2]s!
@ -437,7 +468,7 @@ link_not_working_do_paste = ĉu ne funkcias? Provu kopii kaj alglui al via retfo
repo.transfer.body = Akceptu per vizito al %s, malakceptu per malatento.
team_invite.text_3 = Noto: Ĉi tiu invito estas alcelita al %[1]s. Se vi ne atendis tiun ĉi invito, vi povus simple malatenti tiun ĉi retletero.
repo.collaborator.added.subject = %s aldonis vin al %3
team_invite.subject = %[1]s invitis vin aliĝi la organizaĵon %[2]
team_invite.subject = %[1]s invitis vin aliĝi la organizaĵon %[2]s
reset_password.text = Bonvolu klaki la sekvontan ligilon por rehavigi vian konton ĝis <b>%</b>:
issue.action.reopen = <b>@%[1]s</b> remalfermis #%[2]d.
issue.action.approve = <b>@%[1]s</b> aprobis tiun ĉi tirpeton.
@ -459,7 +490,7 @@ admin.new_user.subject = Nova uzanto %s ĵus registriĝis
register_notify.text_3 = Se iu alia kreis ĉi tiun konton anstataŭ vi, bonvolu <a href="%s">ŝanĝi vian pasvorton</a> tuj.
release.new.subject = %s en %s eldoniĝis
view_it_on = Vidu ĝin ĉe %s
register_notify.text_2 = Vi nun povas saluti per la uzantonomo: %s.
register_notify.text_2 = Vi povas saluti per la uzantonomo: %s
team_invite.text_1 = %[1]s invitis vin aliĝi grupon %[2]s en organizaĵo %[3]s.
reset_password.title = %s, vi petis rehavigon de via konto
repo.collaborator.added.text = Vi aldoniĝis kiel kunlaboranto de deponejo:
@ -475,6 +506,13 @@ issue.action.push_n = <b>@%[1]s</b> puŝis %[3]d enmetojn al %[2]s
activate_account = Bonvolu aktivigi vian konton
activate_account.title = %s, bonvolu aktivigi vian konton
activate_account.text_2 = Bonvolu klaki la jenan ligilon por aktivigi vian konton antaŭ <b>%s</b>:
primary_mail_change.text_1 = La ĉefa retpoŝtadreso de via konto ĵus ŝanĝiĝis en %[1]s. Tio volas diri ke ĉi tiu retpoŝtadreso ne ricevos plu sciigojn pri via konto.
totp_disabled.subject = TOTP ĵus malaktiviĝis
password_change.subject = Via pasvorto ŝanĝiĝis
password_change.text_1 = La pasvorto de via konto ĵus ŝanĝiĝis.
primary_mail_change.subject = Via ĉefa retpoŝtadreso ŝanĝiĝis
totp_disabled.text_1 = La tempobazita unufoja pasvorto (TOTP) en via konto ĵus malaktiviĝis.
admin.new_user.text = Bonvolu <a href="%s">klaki ĉi tie</a> por konduki ĉi tiun uzanton el la administranta agordilo.
[form]
TeamName = Gruponomo
@ -559,7 +597,7 @@ yes = Jes
[settings]
applications = Programoj
password = Pasvorto
twofa_disabled = Duobla aŭtentikigo malŝaltita.
twofa_disabled = Duobla aŭtentikigo malaktivigita.
appearance = Aspekto
repos = Deponejoj
delete = Forigi konton
@ -574,11 +612,11 @@ account_link = Ligitaj kontoj
organization = Organizaĵoj
public_profile = Publika profilo
openid_desc = OpenID povigas vin utiligi foran servilon por aŭtentikigo.
twofa_disable_note = Vi povas malŝalti duoblan aŭtentikigon, laŭbezone.
twofa_disable_note = Vi povas malaktivigi duoblan aŭtentikigon, laŭbezone.
security = Sekureco
account = Konto
ssh_gpg_keys = SSH / GPG-ŝlosiloj
twofa_disable = Malŝalti duoblan aŭtentikigon
twofa_disable = Malaktivigi duoblan aŭtentikigon
twofa_enroll = Ŝalti duoblan aŭtentikigon
orgs = Mastrumi organizaĵojn
blocked_users = Blokitaj uzantoj
@ -647,7 +685,7 @@ update_user_avatar_success = Profilbildo de uzanto ĝisdatigita.
manage_oauth2_applications = Mastrumi OAuth2-programojn
activations_pending = Atendas konfirmiĝon
primary = Ĉefa
ssh_disabled = SSH malŝaltita
ssh_disabled = SSH malaktivigita
update_avatar_success = Via profilbildo konserviĝis.
keep_email_private = Kaŝi retpoŝtadreson
manage_openid = Mastrumi OpenID-adresojn
@ -813,4 +851,30 @@ npm.details.tag = Etikedo
[search]
search = Serĉi...
search = Serĉi...
regexp = RegEsp
milestone_kind = Serĉi celojn...
code_search_by_git_grep = Nunaj rezultoj de kodoserĉo estas provizitaj de "git grep". Eble estas plibonaj rezultoj se la retejestro aktivigas la indeksilon de kodo.
code_search_unavailable = Kodoserĉo ne haveblas nune. Bonvolu kontakti la retejestron.
package_kind = Serĉi pakojn...
type_tooltip = Serĉotipo
user_kind = Serĉi uzantojn...
fuzzy_tooltip = Inkluzivas rezultojn proksime kongruantajn kun la serĉoterminoj
repo_kind = Serĉi deponejojn...
org_kind = Serĉi organizaĵojn...
code_kind = Serĉi kodon...
project_kind = Serĉi projektojn...
team_kind = Serĉi teamojn...
keyword_search_unavailable = Serĉo per ŝlosilvortoj ne haveblas nune. Bonvolu kontakti la retejestron.
union = Ŝlosilvortoj
union_tooltip = Inkluzivas rezultojn kongruantajn kun la ajnaj blankaspacitaj ŝlosilvortoj
commit_kind = Serĉi enmetojn...
no_results = Ne trovis kongruantajn rezultojn.
exact = Ĝusta
exact_tooltip = Inkluzivas nur rezultojn kongruantajn kun la ĝustaj serĉoterminoj
issue_kind = Serĉi erarojn...
regexp_tooltip = Interpretas la serĉoterminoj kiel regulesprimo
fuzzy = Svaga
branch_kind = Serĉi disbranĉigojn...
runner_kind = Serĉi rulantojn...
pull_kind = Serĉi tirpetojn...

View file

@ -474,6 +474,7 @@ hint_register = ¿Necesitas una cuenta? <a href="%s">Regístrate ahora.</a>
back_to_sign_in = Volver a Iniciar sesión
sign_in_openid = Proceder con OpenID
remember_me.compromised = El identificador de inicio de sesión ya no es válido, lo que puede indicar una cuenta comprometida. Por favor, verifica si tu cuenta presenta actividades sospechosas.
unauthorized_credentials = Las credenciales son incorrectas o han expirado. Reintenta el comando o visita %s para más información
[mail]
view_it_on=Ver en %s
@ -713,6 +714,7 @@ following.title.one = Siguiendo
following.title.few = Siguiendo
followers.title.one = Seguidor
followers.title.few = Seguidores
public_activity.visibility_hint.self_private_profile = Tu actividad solamente es visible para ti y los administradores de la instancia porque tu perfil es privado. <a href="%s">Configure</a>.
[settings]
profile=Perfil
@ -1598,9 +1600,9 @@ issues.no_content=No se ha proporcionado una descripción.
issues.close=Cerrar incidencia
issues.comment_pull_merged_at=commit fusionado %[1]s en %[2]s %[3]s
issues.comment_manually_pull_merged_at=commit manualmente fusionado %[1]s en %[2]s %[3]s
issues.close_comment_issue=Comentar y cerrar
issues.close_comment_issue=Cerrar con comentario
issues.reopen_issue=Reabrir
issues.reopen_comment_issue=Comentar y reabrir
issues.reopen_comment_issue=Reabrir con comentario
issues.create_comment=Comentar
issues.closed_at=`cerró esta incidencia <a id="%[1]s" href="#%[1]s">%[2]s</a>`
issues.reopened_at=`reabrió esta incidencia <a id="%[1]s" href="#%[1]s">%[2]s</a>`
@ -1981,7 +1983,7 @@ signing.wont_sign.commitssigned=La fusión no se firmará ya que todos los commi
signing.wont_sign.approved=La fusión no se firmará ya que el PR no está aprobado.
signing.wont_sign.not_signed_in=No ha iniciado sesión.
ext_wiki=Acceso a wiki externo
ext_wiki=Wiki externa
ext_wiki.desc=Enlace a una wiki externa.
wiki=Wiki
@ -2141,7 +2143,7 @@ settings.use_external_wiki=Usar wiki externa
settings.external_wiki_url=URL del wiki externo
settings.external_wiki_url_error=La URL de la Wiki externa no es una URL válida.
settings.external_wiki_url_desc=Los visitantes serán redirigidos a la URL de la Wiki externa al hacer click en la pestaña de la Wiki.
settings.issues_desc=Activar gestor de incidencias para este repositorio
settings.issues_desc=Habilitar gestor de incidencias
settings.use_internal_issue_tracker=Usar gestor de incidencias integrado
settings.use_external_issue_tracker=Usar gestor de incidencias externo
settings.external_tracker_url=URL del gestor de incidencias externo
@ -2431,7 +2433,7 @@ settings.require_signed_commits_desc=Rechazar push en esta rama si los commits n
settings.protect_branch_name_pattern=Patrón de nombre de ramas protegidas
settings.protect_patterns=Patrones
settings.protect_protected_file_patterns=Patrones de archivos protegidos (separados con punto y coma ';')
settings.protect_protected_file_patterns_desc=No está permitido cambiar archivos directamente incluso si el usuario tiene permiso para agregar, editar o borrar archivos en esta rama. Múltiples patrones pueden separarse usando punto y coma (';'). Refvisa la documentación de <a href='%s'>github.com/gobwas/glob</a> para la sintaxis de patrones. Ejemplos: <code>.drone.yml</code>, <code>/docs/**/*.txt</code>.
settings.protect_protected_file_patterns_desc=No está permitido cambiar archivos directamente incluso si el usuario tiene permiso para agregar, editar o borrar archivos en esta rama. Múltiples patrones pueden separarse usando punto y coma (';'). Refvisa la documentación de <a href='%s'>%s</a> para la sintaxis de patrones. Ejemplos: <code>.drone.yml</code>, <code>/docs/**/*.txt</code>.
settings.protect_unprotected_file_patterns=Patrones de archivos sin protección (separados con punto y coma ";")
settings.protect_unprotected_file_patterns_desc=Los archivos sin protección se pueden cambiar directamente si el usuario tiene acceso de escritura, evitando la restricción push. Múltiples patrones pueden separarse usando punto y coma (';'). Vea la documentación de <a href='%[1]s'>%[2]s</a> para la sintaxis de patrones. Ejemplos: <code>.drone.yml</code>, <code>/docs/**/*.txt</code>.
settings.add_protected_branch=Activar protección
@ -2737,7 +2739,7 @@ pulls.title_desc_one = quiere fusionar %[1]d commit de <code>%[2]s</code> en <co
pulls.ready_for_review = Listo para revisar?
activity.navbar.contributors = Contribuidores
pulls.cmd_instruction_hint = Ver instrucciones para la línea de comandos
settings.units.units = Unidades del repositorio
settings.units.units = Unidades
settings.units.overview = Vista general
pulls.status_checks_hide_all = Ocultar todas las verificaciones
settings.federation_not_enabled = La federación no está habilitada en tu instancia.
@ -2770,6 +2772,9 @@ milestones.filter_sort.name = Nombre
settings.federation_settings = Ajustes de federación
settings.mirror_settings.push_mirror.none_ssh = Ninguna
settings.mirror_settings.push_mirror.copy_public_key = Copiar clave pública
issues.new.assign_to_me = Asignar a mi
issues.all_title = Todos
settings.wiki_globally_editable = Permitir a cualquiera editar la wiki
[graphs]
@ -3770,6 +3775,7 @@ variables.id_not_exist = Variable con id %d no existe.
type-1.display_name=Proyecto individual
type-2.display_name=Proyecto repositorio
type-3.display_name=Proyecto de organización
deleted.display_name = Proyecto borrado
[git.filemode]
changed_filemode=%[1]s → %[2]s
@ -3807,4 +3813,8 @@ exact = Exacto
exact_tooltip = Incluir sólo los resultados que corresponden al término de búsqueda exacto
issue_kind = Buscar incidencias…
fuzzy = Difusa
runner_kind = Buscar ejecutores…
runner_kind = Buscar ejecutores…
[markup]
filepreview.lines = Líneas %[1]d a %[2]d en %[3]s
filepreview.line = Línea %[1]d en %[2]s

View file

@ -15,9 +15,9 @@ page=صفحه
template=قالب
language=زبان
notifications=اعلان‌ها
active_stopwatch=فعال کردن ثبت زمان
active_stopwatch=فعال کردن ردیاب زمان
create_new=ایجاد…
user_profile_and_more=پروفایل و تنظیمات…
user_profile_and_more=نمایه و تنظیمات…
signed_in_as=ورود به عنوان
toc=فهرست محتویات
licenses=گواهینامه ها
@ -26,11 +26,11 @@ return_to_forgejo=بازگشت به Forgejo
username=نام کاربری
email=نشانی رایانامه
password=رمز عبور
access_token=ژتون دسترسی
access_token=توکن دسترسی
re_type=تأیید گذرواژه
captcha=کپچا
twofa=احراز هویت دو مرحله‌ای
twofa_scratch=کد احراز هویت
twofa_scratch=کد احراز هویت دو محله ای
passcode=رمز عبور
@ -40,7 +40,7 @@ mirror=قرینه
new_repo=مخزن جدید
new_migrate=انتقال جدید
new_mirror=آینه جدید
new_fork=انشعاب مخزن جدید
new_fork=انشعاب جدید از مخزن
new_org=سازمان جدید
new_project=پروژه جدید
manage_org=مدیریت سازمان‌ها
@ -118,7 +118,21 @@ unpin = حذف سنجاق
locked = قفل شده
copy_hash = رونوشت هش
unknown = نامشخص
copy_type_unsupported = این نوع از فایل نمی‌تواند رونوشت شود.
copy_type_unsupported = این نوع از فایل نمی‌تواند رونوشت شود
webauthn_insert_key = کلید امنیتی خود را وارد کنید
webauthn_sign_in = دکمۀ روی کلید امنیتی را فشار دهید. اگر کلید امنیتی شما دکمه‌ای ندارد، آن را دوباره وارد کنید.
webauthn_use_twofa = از یک کد دومرحله‌ای از تلفنتان استفاده کنید
webauthn_error = کلید امنیتی شما نتوانست خوانده شود.
more_items = موارد بیشتر
webauthn_error_duplicated = کلید امنیتی برای این درخواست مجاز نیست. لطفاً مطمئن شوید که این کلید در حال حاضر ثبت نشده است.
webauthn_error_timeout = مهلت زمانی قبل از اینکه کلید شما خوانده شود تمام شد. لطفاً این صفحه را تازه‌سازی کرده و مجدد تلاش کنید.
new_org.link = سازمان جدید
new_org.title = سازمان جدید
new_migrate.link = مهاجرت جدید
webauthn_error_empty = شما باید یک نام برای این کلید انتخاب کنید.
new_repo.title = مخزن جدید
new_migrate.title = مهاجرت جدید
new_repo.link = مخزن جدید
[aria]
@ -204,7 +218,7 @@ offline_mode.description=غیر فعال کردن شبکه های شخص ثال
disable_gravatar=غیر فعال کردن Gravatar
disable_gravatar.description=غیر فعال کردن کلیک و منابع آواتار شخص ثالث. مگر در مواردی که کاربر محلی بارگزاری آواتار پیش فرض استفاده خواهد شد.
federated_avatar_lookup=فعال سازی آواتار مشترک
federated_avatar_lookup.description=مراجعه مشترک آواتار با استفاده از Libravatar را قادر می سازد.
federated_avatar_lookup.description=پیدا کردن آواتار با استفاده از Libravatar.
disable_registration=غیرفعال‌کردن خود ثبت نامی
disable_registration.description=غیرفعال کردن ثبت نام کاربر. تنها مدیر ها قادر خواهند بود حساب کاربری جدید اضافه کنند.
allow_only_external_registration.description=اجازه ثبت نام فقط از طریق خدمات خارجی
@ -594,7 +608,7 @@ ssh_helper=<strong>آیا نمی دانید چگونه؟</strong>راهنمای
gpg_helper=<strong>به کمک نیاز دارید؟</strong> نگاهی به در GitHub را راهنمای <a href="%s">مورد GPG</a> است.
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_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=یک کلید اصلی اضافه کنید
ssh_key_been_used=این کلید SSH پیش از این به سرور افزوده شده است.
@ -667,7 +681,7 @@ manage_oauth2_applications=مدیریت برنامه‎های OAuth2
edit_oauth2_application=ویرایش برنامه OAuth2
oauth2_applications_desc=برنامه‎های OAuth2 احراز هویت برنامه های شخص ثالث را با بستری امن میسر می‎کند.
remove_oauth2_application=حذف برنامه OAuth2
remove_oauth2_application_desc=حذف برنامه OAuth2 دسترسی تمام برنامه های متصل با آن را از بین می‎برد. آیا ادامه می‎دهید؟
remove_oauth2_application_desc=حذف برنامه OAuth2 دسترسی تمام برنامه های متصل با آن را از بین می‎برد. آیا ادامه می‎دهید؟
remove_oauth2_application_success=برنامه حذف شده است.
create_oauth2_application=ساختن یک برنامه OAuth2 جدید
create_oauth2_application_button=ایجاد برنامه
@ -1440,7 +1454,7 @@ wiki.page=صفحه
wiki.filter_page=صافی صفحه
wiki.new_page=صفحه
wiki.default_commit_message=نوشتن متنی پیرامون به‌روزرسانی این صفحه (اختیاری).
wiki.save_page=نوشتن متنی پیرامون به‌روزرسانی این صفحه (اختیاری).
wiki.save_page=ذخیره صفحه
wiki.last_commit_info=%s این صفحه %s را ویرایش کرده است
wiki.edit_page_button=ویرایش
wiki.new_page_button=صفحه جدید
@ -2633,13 +2647,31 @@ runners.task_list.commit=کامیت
runners.status.active=فعال
runs.commit=کامیت
variables.edit = تغییر متغیر
variables.deletion.success = متغیر حذف شد.
variables.deletion = حذف متغیر
variables.creation.success = متغیر "%s" ایجاد شد.
variables = متغیرها
variables.management = مدیریت متغیرها
variables.update.failed = عدم موفقیت در تغییر متغیر
variables.update.success = تغییر متغیر با موفقیت انجام شد.
variables.creation = افزودن متغیر
variables.none = هیچ متغیری هنوز وجود ندارد.
[projects]
type-1.display_name = پروژه ی مستقل
type-2.display_name = مخزن پروژه
type-3.display_name = سازمان پروژه
deleted.display_name = پاک کردن پروژه
[git.filemode]
; Ordered by git filemode value, ascending. E.g. directory has "040000", normal file has "100644", …
symbolic_link=پیوند نمادین
executable_file = فایل اجرایی
normal_file = فایل معمولی
changed_filemode = %[1] ها ← %[2] ها
directory = پوشه

File diff suppressed because it is too large Load diff

View file

@ -1883,7 +1883,7 @@ issues.dependency.no_permission_n = Wala kang pahintulot na basahin ang mga %d d
issues.dependency.removed_dependency = `nagtanggal ng dependency %s`
settings.mirror_settings.push_mirror.add = Magdagdag ng salaming pangtulak
settings.mirror_settings.last_update = Huling nabago
settings.units.add_more = Magdagdag ng higit pa...
settings.units.add_more = Paganahin ang higit pa
activity.closed_issues_count_n = Mga saradong isyu
activity.new_issues_count_1 = Bagong isyu
settings.branches.add_new_rule = Magdagdag ng bagong patakaran
@ -2008,6 +2008,8 @@ settings.mirror_settings.docs.disabled_push_mirror.info = Na-disable ng iyong ta
settings.mirror_settings.docs.disabled_push_mirror.instructions = I-set up ang iyong proyekto na awtomatikong hilahin ang mga commit, tag at branch mula sa isa pang repositoryo.
settings.mirror_settings.docs.disabled_pull_mirror.instructions = I-set up ang iyong proyekto na awtomatikong magtulak ng mga commit, tag at branch sa isa pang repositoryo. Na-disable ng iyong tagapangasiwa ng site ang mga pull mirror.
activity.overview = Pangkalahatang Ideya
mirror_public_key = Pampublikong susi ng SSH
milestones.cancel =
[search]
commit_kind = Maghanap ng mga commit...

View file

@ -207,7 +207,7 @@ string.desc=Z - A
[error]
occurred=Une erreur sest produite
report_message=Si vous pensez qu'il s'agit d'un bug Forgejo, veuillez consulter notre board <a href="%s" target="_blank">Codeberg</a> ou ouvrir un nouveau ticket si nécessaire.
report_message=Si vous pensez qu'il s'agit d'un bug Forgejo, veuillez consulter les tickets de <a href="%s" target="_blank">Codeberg</a> ou ouvrir un nouveau ticket si nécessaire.
missing_csrf=Requête incorrecte: aucun jeton CSRF présent
invalid_csrf=Requête incorrecte : jeton CSRF invalide
not_found=La cible n'a pu être trouvée.
@ -223,7 +223,7 @@ platform_desc=Forgejo est confirmé fonctionner sur des systèmes d'exploitation
lightweight=Léger
lightweight_desc=Forgejo utilise peu de ressources. Il peut même tourner sur un Raspberry Pi très bon marché. Économisez l'énergie de vos serveurs !
license=Open Source
license_desc=Toutes les sources sont sur <a target="_blank" rel="noopener noreferrer" href="%[1]s">Forgejo</a>! Rejoignez-nous et <a target="_blank" rel="noopener noreferrer" href="https://codeberg.org/forgejo/forgejo">contribuez</a> à rendre ce projet encore meilleur!
license_desc=Toutes les sources sont sur <a target="_blank" rel="noopener noreferrer" href="%[1]s">Forgejo</a>! Rejoignez-nous et <a target="_blank" rel="noopener noreferrer" href="https://codeberg.org/forgejo/forgejo">contribuez</a> à rendre ce projet encore meilleur. Ne craignez pas de devenir un·e contributeur·trice !
[install]
install=Installation
@ -478,11 +478,12 @@ sign_up_button = Creation d'un compte.
hint_login = Vous avez déjà un compte? <a href="%s">Connectez vous maintenant!</a>
back_to_sign_in = Retour à la connexion
sign_in_openid = Continuer avec OpenID
unauthorized_credentials = Vos identifiants sont invalides ou ont expiré. Réessayez votre commande, ou allez à %s pour plus d'informations
[mail]
view_it_on=Voir sur %s
reply=ou répondez directement à ce courriel
link_not_working_do_paste=Le lien ne fonctionne pas ? Essayez de le copier-coller dans barre de navigation de votre navigateur.
link_not_working_do_paste=Le lien ne fonctionne pas ? Essayez de le copier-coller dans la barre de navigation de votre navigateur.
hi_user_x=Bonjour <b>%s</b>,
activate_account=Veuillez activer votre compte
@ -545,19 +546,24 @@ team_invite.text_1=%[1]s vous a invité à rejoindre léquipe %[2]s dans l
team_invite.text_2=Veuillez cliquer sur le lien suivant pour rejoindre l'équipe :
team_invite.text_3=Remarque : Cette invitation était destinée à %[1]s. Si vous nattendiez pas cette invitation, vous pouvez ignorer ce courriel.
admin.new_user.user_info = Information à propos de l'utilisateur
admin.new_user.text = Veuillez <a href="%s">clicker ici</a> afin de gérer l'utilisateur depuis la page d'administration.
admin.new_user.text = Veuillez <a href="%s">cliquer ici</a> afin de gérer l'utilisateur depuis la page d'administration.
admin.new_user.subject = L'utilisateur %s vient de créer un compte
reset_password.text_1 = Le mot de passe de votre compte vient d'être modifié.
password_change.subject = Votre mot de passe a été modifié
password_change.text_1 = Le mot de passe de votre compte vient d'être modifié.
primary_mail_change.subject = Votre courriel principal a été modifié
primary_mail_change.text_1 = Le courriel principal de votre compte vient d'être modifié en %[1]s.
primary_mail_change.text_1 = Le courriel principal de votre compte vient d'être modifié en %[1]s. Cela signifie que cette adresse e-mail ne recevra plus de notifications par e-mail pour votre compte.
totp_disabled.no_2fa = Il n'y a plus de méthodes 2FA configurées ce qui signifie qu'il n'est plus nécessaire d'utiliser 2FA pour se connecter à votre compte.
totp_disabled.text_1 = Mot de passe à usage unique basé sur le temps (TOTP) vient d'être désactivé pour votre compte.
removed_security_key.subject = Une clé de sécurité a été supprimée
totp_disabled.subject = TOTP a été désactivé
removed_security_key.no_2fa = Il n'y a plus de méthodes 2FA configurées ce qui signifie qu'il n'est plus nécessaire d'utiliser 2FA pour se connecter à votre compte.
account_security_caution.text_1 = Si vous êtes à lorigine de cette action, vous pouvez ignorer ce courriel.
totp_enrolled.text_1.no_webauthn = Vous venez d'activer TOTP pour votre compte. Cela signifie que pour toutes les prochaines connexions à votre compte, vous devrez utiliser TOTP comme méthode 2FA.
totp_enrolled.subject = Vous avez activé TOTP comme méthode 2FA
totp_enrolled.text_1.has_webauthn = Vous venez d'activer TOTP pour votre compte. Cela signifie que pour toutes les prochaines connexions à votre compte, vous pouvez utiliser TOTP comme méthode 2FA ou l'une de vos clés de sécurité.
removed_security_key.text_1 = La clé de sécurité « %[1]s » vient d'être supprimée de votre compte.
account_security_caution.text_2 = S'il ne s'agissait pas de vous, votre compte est compromis. Veuillez contacter les administrateurs du site.
[modal]
yes=Oui
@ -714,6 +720,7 @@ following.title.few = Following
followers.title.one = Follower
followers.title.few = Followers
following.title.one = Following
public_activity.visibility_hint.self_private_profile = Votre profil est privé mais votre activité est aussi visible par les administrateurs·trices. <a href="%s">Configure</a>.
[settings]
profile=Profil
@ -823,7 +830,7 @@ add_new_email=Ajouter une nouvelle adresse e-mail
add_new_openid=Ajouter une nouvelle URI OpenID
add_email=Ajouter une adresse courriel
add_openid=Ajouter une URI OpenID
add_email_confirmation_sent=Un e-mail de confirmation a été envoyé à "%s". Veuillez vérifier votre boîte de réception dans les %s suivants pour confirmer votre adresse e-mail.
add_email_confirmation_sent=Un courriel de confirmation a été envoyé à « %s ». Pour confirmer votre adresse de courriel, veuillez vérifier votre boîte de réception et suivre le lien indiqué dans les prochains %s.
add_email_success=La nouvelle adresse e-mail a été ajoutée.
email_preference_set_success=L'e-mail de préférence a été défini avec succès.
add_openid_success=La nouvelle adresse OpenID a été ajoutée.
@ -1033,7 +1040,7 @@ user_unblock_success = Cet utilisateur a été débloqué avec succès.
user_block_success = Cet utilisateur a été bloqué avec succès.
change_password = Modifier le mot de passe
hints = Suggestions
additional_repo_units_hint_description = Afficher un bouton "Ajouter plus d'unités..." pour les dépôts qui n'ont pas toutes les unités disponibles activées.
additional_repo_units_hint_description = Afficher un bouton "Ajouter en plus..." pour les dépôts qui n'ont pas toutes les unités disponibles activées.
additional_repo_units_hint = Suggérer l'ajout de nouvelles unités pour le dépôt
update_hints = Mettre à jour les suggestions
update_hints_success = Les suggestions ont été mises à jour.
@ -1042,6 +1049,8 @@ pronouns = Pronoms
pronouns_unspecified = Non spécifiés
language.title = Langue par défaut
keep_activity_private.description = Vous seul pourrez voir votre <a href="%s">activité publique</a>, ainsi que les administrateurs de l'instance.
language.localization_project = Aidez-nous à traduire Forgejo dans votre langue ! <a href="%s">En savoir plus</a>.
language.description = Cette langue sera enregistrée dans votre compte et utilisée comme langue par défaut après votre connexion.
[repo]
new_repo_helper=Un dépôt contient tous les fichiers dun projet, ainsi que lhistorique de leurs modifications. Vous avez déjà ça ailleurs ? <a href="%s">Migrez-le ici.</a>
@ -1421,7 +1430,7 @@ commitstatus.failure=Échec
commitstatus.pending=En attente
commitstatus.success=Succès
ext_issues=Accès aux tickets externes
ext_issues=Tickets externes
ext_issues.desc=Lien vers un gestionnaire de tickets externe.
projects=Projets
@ -1602,9 +1611,9 @@ issues.no_content=Sans contenu.
issues.close=Fermer le ticket
issues.comment_pull_merged_at=a fusionné la révision %[1]s dans %[2]s %[3]s
issues.comment_manually_pull_merged_at=a fusionné manuellement la révision %[1]s dans %[2]s %[3]s
issues.close_comment_issue=Commenter et fermer
issues.close_comment_issue=Fermer avec le commentaire
issues.reopen_issue=Rouvrir
issues.reopen_comment_issue=Commenter et réouvrir
issues.reopen_comment_issue=Réouvrir avec le commentaire
issues.create_comment=Commenter
issues.closed_at=`a fermé ce ticket <a id="%[1]s" href="#%[1]s">%[2]s</a>.`
issues.reopened_at=`a réouvert ce ticket <a id="%[1]s" href="#%[1]s">%[2]s</a>.`
@ -1993,7 +2002,7 @@ signing.wont_sign.commitssigned=La fusion ne sera pas signée car ses révisions
signing.wont_sign.approved=La fusion ne sera pas signée car la demande d'ajout n'a pas été approuvée.
signing.wont_sign.not_signed_in=Vous n'êtes pas connecté.
ext_wiki=Accès au wiki externe
ext_wiki=Wiki externe
ext_wiki.desc=Lier un wiki externe.
wiki=Wiki
@ -2067,7 +2076,7 @@ activity.unresolved_conv_label=Ouvrir
activity.title.releases_1=%d publication
activity.title.releases_n=%d publications
activity.title.releases_published_by=%s publiée par %s
activity.published_release_label=Publiée
activity.published_release_label=Publication
activity.no_git_activity=Il n'y a pas eu de nouvelle révision dans cette période.
activity.git_stats_exclude_merges=En excluant les fusions,
activity.git_stats_author_1=%d auteur
@ -2321,32 +2330,32 @@ settings.event_push_desc=Soumission Git.
settings.event_repository=Dépôt
settings.event_repository_desc=Dépôt créé ou supprimé.
settings.event_header_issue=Événements de ticket
settings.event_issues=Ticket
settings.event_issues=Modification
settings.event_issues_desc=Ticket ouvert, rouvert, fermé ou modifié.
settings.event_issue_assign=Ticket assigné
settings.event_issue_assign=Assigné
settings.event_issue_assign_desc=Ticket assigné ou dé-assigné.
settings.event_issue_label=Ticket étiqueté
settings.event_issue_label=Étiqueté
settings.event_issue_label_desc=Labels attribués ou retirés.
settings.event_issue_milestone=Ticket jalonné
settings.event_issue_milestone=Jalonné
settings.event_issue_milestone_desc=Ticket jalonné ou dé-jalonné.
settings.event_issue_comment=Ticket commenté
settings.event_issue_comment=Commenté
settings.event_issue_comment_desc=Commentaire créé, modifié ou supprimé.
settings.event_header_pull_request=Événements de demande d'ajout
settings.event_pull_request=Demande d'ajout
settings.event_pull_request_desc=Demande dajout ouverte, rouverte, fermée ou modifiée.
settings.event_pull_request_assign=Demande d'ajout assignée
settings.event_pull_request_assign=Assignée
settings.event_pull_request_assign_desc=Demande d'ajout assignée ou non assignée.
settings.event_pull_request_label=Demande d'ajout étiquetée
settings.event_pull_request_label=Étiquetée
settings.event_pull_request_label_desc=Label attribué ou retiré.
settings.event_pull_request_milestone=Demande d'ajout jalonnée
settings.event_pull_request_milestone_desc=Demande d'ajout jalonnée ou dé-jalonnée.
settings.event_pull_request_comment=Commentaire sur une demande d'ajout
settings.event_pull_request_milestone=Jalonnée
settings.event_pull_request_milestone_desc=Jalonnée ou dé-jalonnée.
settings.event_pull_request_comment=Commentaires
settings.event_pull_request_comment_desc=Commentaire créé, modifié ou supprimé.
settings.event_pull_request_review=Demande d'ajout évaluée
settings.event_pull_request_review_desc=Demande dajout approuvée, rejetée ou commentée.
settings.event_pull_request_sync=Demande d'ajout synchronisée
settings.event_pull_request_sync_desc=Demande d'ajout synchronisée.
settings.event_pull_request_review_request=Requête dévaluation d'une demande d'ajout
settings.event_pull_request_review=Évaluations
settings.event_pull_request_review_desc=Demande dajout approuvée, rejetée ou commentaires d'évaluation ajoutés.
settings.event_pull_request_sync=Synchronisée
settings.event_pull_request_sync_desc=Branche mise à jour automatiquement avec la branche cible.
settings.event_pull_request_review_request=Requête dévaluation
settings.event_pull_request_review_request_desc=Création ou suppresion de demandes dévaluation.
settings.event_pull_request_approvals=Approbations de demande d'ajout
settings.event_pull_request_merge=Fusion de demande d'ajout
@ -2418,28 +2427,28 @@ settings.protect_enable_merge_desc=Toute personne ayant un accès en écriture s
settings.protect_whitelist_committers=Liste blanche des soumissions (push)
settings.protect_whitelist_committers_desc=Seuls les utilisateurs ou les équipes autorisés pourront soumettre sur cette branche (sans forcer).
settings.protect_whitelist_deploy_keys=Mettez les clés de déploiement sur liste blanche avec accès en écriture pour soumettre.
settings.protect_whitelist_users=Utilisateurs sur liste blanche :
settings.protect_whitelist_users=Utilisateurs sur liste blanche pour pousser
settings.protect_whitelist_search_users=Rechercher des utilisateurs…
settings.protect_whitelist_teams=Équipes sur liste blanche :
settings.protect_whitelist_teams=Équipes sur liste blanche pour pousser
settings.protect_whitelist_search_teams=Rechercher des équipes…
settings.protect_merge_whitelist_committers=Activer la liste blanche pour la fusion
settings.protect_merge_whitelist_committers_desc=N'autoriser que les utilisateurs et les équipes en liste blanche d'appliquer les demandes de fusion sur cette branche.
settings.protect_merge_whitelist_users=Utilisateurs en liste blanche de fusion :
settings.protect_merge_whitelist_teams=Équipes en liste blanche de fusion :
settings.protect_merge_whitelist_users=Utilisateurs en liste blanche pour fusionner
settings.protect_merge_whitelist_teams=Équipes en liste blanche pour fusionner
settings.protect_check_status_contexts=Activer le contrôle de status
settings.protect_status_check_patterns=Motifs de vérification des statuts :
settings.protect_status_check_patterns=Motifs de vérification des statuts
settings.protect_status_check_patterns_desc=Entrez des motifs pour spécifier quelles vérifications doivent réussir avant que des branches puissent être fusionnées. Un motif par ligne. Un motif ne peut être vide.
settings.protect_check_status_contexts_desc=Exiger le status « succès » avant de fusionner. Quand activée, une branche protégée ne peux accepter que des soumissions ou des fusions ayant le status « succès ». Lorsqu'il n'y a pas de contexte, la dernière révision fait foi.
settings.protect_check_status_contexts_list=Contrôles qualité trouvés au cours de la semaine dernière pour ce dépôt
settings.protect_status_check_matched=Correspondant
settings.protect_invalid_status_check_pattern=Motif de vérification des statuts incorrect : « %s ».
settings.protect_no_valid_status_check_patterns=Aucun motif de vérification des statuts valide.
settings.protect_required_approvals=Minimum d'approbations requis :
settings.protect_required_approvals=Approbations requises
settings.protect_required_approvals_desc=Permet de fusionner les demandes dajout lorsque suffisamment dévaluation sont positives.
settings.protect_approvals_whitelist_enabled=Restreindre les approbations aux utilisateurs ou aux équipes en liste blanche
settings.protect_approvals_whitelist_enabled_desc=Seuls les évaluations des utilisateurs ou des équipes suivantes compteront dans les approbations requises. Si laissé vide, les évaluations de toute personne ayant un accès en écriture seront comptabilisées à la place.
settings.protect_approvals_whitelist_users=Évaluateurs autorisés :
settings.protect_approvals_whitelist_teams=Équipes dévaluateurs autorisés :
settings.protect_approvals_whitelist_users=Évaluateurs autorisés
settings.protect_approvals_whitelist_teams=Équipes dévaluateurs autorisés
settings.dismiss_stale_approvals=Révoquer automatiquement les approbations périmées
settings.dismiss_stale_approvals_desc=Lorsque des nouvelles révisions changent le contenu de la demande dajout, les approbations existantes sont révoquées.
settings.ignore_stale_approvals=Ignorer les approbations obsolètes
@ -2449,9 +2458,9 @@ settings.require_signed_commits_desc=Rejeter les soumissions sur cette branche l
settings.protect_branch_name_pattern=Motif de nom de branche protégé
settings.protect_branch_name_pattern_desc=Motifs de nom de branche protégé. Consultez la <a href="%s">documentation</a> pour la syntaxe du motif. Exemples : main, release/**
settings.protect_patterns=Motifs
settings.protect_protected_file_patterns=Liste des fichiers et motifs protégés (séparés par un point virgule ";") :
settings.protect_protected_file_patterns_desc=Les fichiers protégés ne peuvent être modifiés, même si l'utilisateur a le droit d'ajouter, éditer ou supprimer des fichiers dans cette branche. Plusieurs motifs peuvent être séparés par un point-virgule (";"). Veuillez voir <a href="%s">github.com/gobwas/glob</a> la documentation pour la syntaxe des motifs. Exemples : <code>.drone.yml</code>, <code>/docs/**/*.txt</code>.
settings.protect_unprotected_file_patterns=Liste des fichiers et motifs exclus (séparés par un point virgule ";") :
settings.protect_protected_file_patterns=Motifs de fichiers protégés (séparés par un point virgule ";")
settings.protect_protected_file_patterns_desc=Les fichiers protégés ne peuvent être modifiés, même si l'utilisateur a le droit d'ajouter, éditer ou supprimer des fichiers dans cette branche. Plusieurs motifs peuvent être séparés par un point-virgule (";"). Veuillez voir <a href="%[1]s">%[2]s</a> la documentation pour la syntaxe des motifs. Exemples : <code>.drone.yml</code>, <code>/docs/**/*.txt</code>.
settings.protect_unprotected_file_patterns=Motifs de fichiers non protégés (séparés par un point virgule ";")
settings.protect_unprotected_file_patterns_desc=Les fichiers non-protégés qui peuvent être modifiés si l'utilisateur a le droit d'écriture, prenant le pas sur les restrictions de push. Plusieurs motifs peuvent être séparés par un point-virgule (";"). Veuillez voir <a href="%[1]s">%[2]s</a> la documentation pour la syntaxe des motifs. Exemples : <code>.drone.yml</code>, <code>/docs/**/*.txt</code>.
settings.add_protected_branch=Activer la protection
settings.delete_protected_branch=Désactiver la protection
@ -2682,9 +2691,9 @@ branch.renamed=La branche %s à été renommée en %s.
tag.create_tag=Créer l'étiquette %s
tag.create_tag_operation=Créer une étiquette
tag.confirm_create_tag=Créer une étiquette
tag.create_tag_from=`Créer une nouvelle étiquette à partir de "%s"`
tag.create_tag_from=Créer une nouvelle étiquette à partir de « %s »
tag.create_success=L'étiquette "%s" a été créée.
tag.create_success=L'étiquette « %s » a été créée.
topic.manage_topics=Gérer les sujets
topic.done=Terminé
@ -2737,11 +2746,11 @@ settings.add_collaborator_blocked_our = Il n'est pas possible d'ajouter ce colla
settings.wiki_rename_branch_main_notices_1 = Cette operation <strong>NE PEUT PAS</strong> être annulée.
settings.wiki_branch_rename_failure = Le nom de la branche associée au wiki du dépôt n'a pu être normalisé.
pulls.reopen_failed.head_branch = La pull request ne peut pas être re-ouverte car la branch d'origine n'existe plus.
settings.units.units = Fonctionnalités des dépôt
settings.units.units = Fonctionnalités
pulls.fast_forward_only_merge_pull_request = Fast-forward uniquement
pulls.reopen_failed.base_branch = La pull request ne peut pas être re-ouverte car la branche de destination n'existe plus.
settings.units.overview = Vue générale
settings.units.add_more = Ajouter en plus...
settings.units.add_more = Ajouter en plus
activity.navbar.pulse = Pouls
activity.navbar.contributors = Contributeurs
contributors.contribution_type.commits = Commits
@ -2811,6 +2820,32 @@ settings.federation_following_repos = Les URL des dépôts suivis séparés par
settings.federation_not_enabled = La fédération n'est pas activée pour votre instance.
comments.edit.already_changed = Impossible de sauvegarder les changements du commentaire car son contenu a déjà été modifié par un autre utilisateur. Veuillez recharger la page et essayer de l'éditer à nouveau pour éviter d'écraser ses changements
settings.federation_apapiurl = URL de fédération de ce dépôt. A copier-coller dans les paramètres de fédérations d'un autre dépôt comme URL d'un dépôt à suivre.
mirror_denied_combination = Il n'est pas possible de combiner une authentification par clé publique et par mot de passe.
mirror_public_key = Clé SSH publique
mirror_use_ssh.text = Utiliser l'authentification SSH
mirror_use_ssh.helper = Forgejo va créer un miroir du dépôt via Git sur SSH et créer une paire de clés pour vous lorsque vous sélectionnez cette option. Vous devez vous assurer que la clé publique générée est autorisée à pousser dans le dépôt de destination. Il n'est pas possible d'utiliser l'autorisation basée sur un mot de passe si vous choisissez cette option.
no_eol.text = Pas d'EOL
mirror_use_ssh.not_available = L'authentification par SSH n'est pas disponible.
no_eol.tooltip = Ce fichier ne contient pas de caractère final de fin de ligne.
release.type_attachment = Pièce jointe
settings.transfer_quota_exceeded = Le nouvel utilisateur (%s) a dépassé son quota. Le dépôt n'a pas été transféré.
settings.pull_mirror_sync_quota_exceeded = Quota dépassé, les modifications ne sont pas tirées.
activity.commit = Activité de commit
settings.mirror_settings.push_mirror.copy_public_key = Copier la clé publique
release.asset_external_url = URL externe
release.invalid_external_url = URL externe non valable : « %s »
milestones.filter_sort.name = Nom
settings.mirror_settings.push_mirror.none_ssh = Aucun
settings.protect_new_rule = Créer une nouvelle règle de protection de branche
pulls.cmd_instruction_merge_warning = <b>Avertissement :</b> Le paramètre "détection automatique de la fusion manuelle" n'est pas activé pour ce dépôt, vous devrez marquer cette demande d'ajout comme manuellement fusionnée après.
release.type_external_asset = Actif Externe
activity.published_prerelease_label = Pré-version
activity.published_tag_label = Étiquette
release.asset_name = Nom de l'actif
release.add_external_asset = Ajouter un actif externe
issues.new.assign_to_me = Assigner à moi-même
issues.all_title = Tous
settings.discord_icon_url.exceeds_max_length = L'URL de licône ne doit pas dépasser 2048 caractères
[graphs]
component_loading=Chargement de %s…
@ -2897,8 +2932,8 @@ teams.leave.detail=Êtes vous certain·e de vouloir quitter l'équipe «%s»?
teams.can_create_org_repo=Créer des dépôts
teams.can_create_org_repo_helper=Les membres peuvent créer de nouveaux dépôts dans l'organisation. Le créateur obtiendra l'accès administrateur au nouveau dépôt.
teams.none_access=Aucun accès
teams.none_access_helper=Les membres ne peuvent voir ou faire quoi que ce soit sur cette partie. Sans effet pour les dépôts publics.
teams.general_access=Accès général
teams.none_access_helper=L'option "Aucun accès" n'a pas d'effet sur les dépôts privés.
teams.general_access=Accès personnalisé
teams.general_access_helper=Les permissions des membres seront déterminées par la table des permissions ci-dessous.
teams.read_access=Lecture
teams.read_access_helper=Les membres peuvent voir et cloner les dépôts de l'équipe.
@ -3043,10 +3078,10 @@ dashboard.delete_old_actions.started=Suppression de toutes les anciennes activit
dashboard.update_checker=Vérificateur de mise à jour
dashboard.delete_old_system_notices=Supprimer toutes les anciennes observations de la base de données
dashboard.gc_lfs=Épousseter les métaobjets LFS
dashboard.stop_zombie_tasks=Arrêter les tâches zombies
dashboard.stop_endless_tasks=Arrêter les tâches sans fin
dashboard.cancel_abandoned_jobs=Annuler les jobs abandonnés
dashboard.start_schedule_tasks=Démarrer les tâches planifiées
dashboard.stop_zombie_tasks=Arrêter les actions zombies
dashboard.stop_endless_tasks=Arrêter les actions sans fin
dashboard.cancel_abandoned_jobs=Annuler les actions abandonnées
dashboard.start_schedule_tasks=Démarrer les actions planifiées
dashboard.sync_branch.started=Début de la synchronisation des branches
dashboard.sync_tag.started=Synchronisation des étiquettes
dashboard.rebuild_issue_indexer=Reconstruire lindexeur des tickets
@ -3130,7 +3165,7 @@ orgs.new_orga=Nouvelle organisation
repos.repo_manage_panel=Gestion des dépôts
repos.unadopted=Dépôts non adoptés
repos.unadopted.no_more=Aucun dépôt candidat à l'adoption n'a été trouvé
repos.unadopted.no_more=Aucun dépôt candidat à l'adoption n'a été trouvé.
repos.owner=Propriétaire
repos.name=Nom
repos.private=Privé
@ -3256,7 +3291,7 @@ auths.tips=Conseils
auths.tips.oauth2.general=Authentification OAuth2
auths.tips.oauth2.general.tip=Lors de l'enregistrement d'une nouvelle authentification OAuth2, l'URL de rappel/redirection doit être :
auths.tip.oauth2_provider=Fournisseur OAuth2
auths.tip.bitbucket=`Créez un nouveau jeton OAuth sur %s
auths.tip.bitbucket=Créez un nouveau jeton OAuth sur %s
auths.tip.nextcloud=`Enregistrez un nouveau consommateur OAuth sur votre instance en utilisant le menu "Paramètres -> Sécurité -> Client OAuth 2.0"`
auths.tip.dropbox=Créez une nouvelle application sur %s
auths.tip.facebook=`Enregistrez une nouvelle application sur %s et ajoutez le produit "Facebook Login"`
@ -3500,6 +3535,16 @@ config.cache_test_slow = Test du cache réussi, mais le temps de réponse est le
config.cache_test_failed = Échec du contrôle du cache : %v.
config.cache_test = Tester le cache
config.cache_test_succeeded = Test du cache réussi, réponse obtenue en %s.
emails.delete_desc = Êtes-vous sûr de vouloir supprimer cette adresse courriel ?
users.organization_creation.description = Autoriser la création de nouvelles organisations.
emails.deletion_success = L'adresse courriel a été supprimée.
emails.delete = Supprimer le courriel
emails.delete_primary_email_error = Vous ne pouvez pas supprimer l'adresse courriel principale.
users.activated.description = Achèvement de la vérification de courriel. Le propriétaire d'un compte non activé ne pourra pas se connecter tant que la vérification de courriel n'est pas terminée.
users.block.description = Bloquer cet utilisateur d'interagir avec ce service via son compte et interdire la connexion.
users.admin.description = Accorder à cet utilisateur un accès complet à toutes les fonctionnalités administratives disponibles via l'interface web et l'API.
users.restricted.description = Autoriser uniquement l'interaction avec les dépôts et les organisations où cet utilisateur est ajouté en tant que collaborateur. Cela empêche l'accès aux dépôts publics sur cette instance.
users.local_import.description = Autoriser l'importation de dépôts à partir du système de fichiers local du serveur. Cela peut poser un problème de sécurité.
[action]
create_repo=a créé le dépôt <a href="%s">%s</a>
@ -3746,6 +3791,22 @@ rpm.repository.architectures = Architectures
rpm.repository.multiple_groups = Ce paquet est disponible dans plusieurs groupes.
owner.settings.cargo.rebuild.no_index = Incapable de reconstruire, index non initialisé.
npm.dependencies.bundle = Bundles de dépendances
arch.pacman.helper.gpg = Ajouter un certificat de confiance pour pacman :
arch.pacman.repo.multi = %s a la même version dans différentes distributions.
arch.pacman.repo.multi.item = Configuration pour %s
arch.pacman.conf = Ajouter un serveur associées à la distribution et l'architecture dans <code>/etc/pacman.conf</code> :
arch.pacman.sync = Synchroniser le paquet avec pacman :
arch.version.properties = Propriétés de version
arch.version.description = Description
arch.version.provides = Fournit
arch.version.groups = Groupe
arch.version.depends = Dépend
arch.version.optdepends = Dépendances optionnelles
arch.version.checkdepends = Vérifier les dépendances
arch.version.conflicts = Conflits
arch.version.replaces = Remplace
arch.version.backup = Sauvegarde
arch.version.makedepends = Faire des dépendances
[secrets]
secrets=Secrets
@ -3765,7 +3826,7 @@ management=Gestion des secrets
[actions]
actions=Actions
unit.desc=Gérer l'intégration continue avec Forgejo Actions
unit.desc=Gérer l'intégration continue avec Forgejo Actions.
status.unknown=Inconnu
status.waiting=En attente
@ -3866,11 +3927,13 @@ workflow.dispatch.success = L'exécution du workflow a bien été demandée.
workflow.dispatch.input_required = Le champ "%s" est obligatoire.
workflow.dispatch.invalid_input_type = Type invalide pour le champ "%s".
workflow.dispatch.warn_input_limit = Affichage des %d premiers champs seulement.
runs.expire_log_message = Les journaux ont été purgés car ils étaient trop anciens.
[projects]
type-1.display_name=Projet personnel
type-2.display_name=Projet du dépôt
type-3.display_name=Projet de l'organisation
deleted.display_name = Projet Supprimé
[git.filemode]
changed_filemode=%[1]s → %[2]s
@ -3922,6 +3985,8 @@ union = Union
union_tooltip = Inclus les résultats contenant au moins un des mots clé séparés par des espaces
pull_kind = Rechercher dans les demande d'ajout...
milestone_kind = Recherche dans les jalons...
regexp_tooltip = Interpréter le terme de recherche comme une expression régulière
regexp = RegExp
[munits.data]
@ -3936,4 +4001,27 @@ eib = Eio
[markup]
filepreview.line = Ligne %[1]d dans %[2]s
filepreview.lines = Lignes %[1]d jusqu'à %[2]d dans %[3]s
filepreview.truncated = L'aperçu a été tronqué
filepreview.truncated = L'aperçu a été tronqué
[repo.permissions]
pulls.write = <b>Écrire :</b> Fermer des demandes de tirage et gérer les métadonnées telles que les étiquettes, les jalons, les assignés, les dates d'échéance et les dépendances.
actions.read = <b>Lire :</b> Voir les pipelines CI/CD intégrés et leurs journaux.
releases.read = <b>Lire:</b> Voir et télécharger les versions.
releases.write = <b>Écrire :</b> Publier, modifier et supprimer des versions et leurs ressources.
projects.write = <b>Écrire :</b> Créer des projets, des colonnes et les modifier.
code.read = <b>Lire :</b> Accéder au code du dépôt et le cloner.
ext_issues = Accéder au lien vers un système externe de suivi des problèmes. Les autorisations sont gérées de manière externe.
code.write = <b>Écrire :</b> Pousser vers le dépôt, créer des branches et des étiquettes.
issues.read = <b>Lire :</b> Lire et créer des tickets et des commentaires.
wiki.read = <b>Lire :</b> Lire le wiki intégré et son historique.
wiki.write = <b>Écrire :</b> Créer, mettre à jour et supprimer des pages dans le wiki intégré.
projects.read = <b>Lire :</b> Accéder aux tableaux de projet du dépôt.
packages.read = <b>Lire :</b> Voir et télécharger les paquets assignés au dépôt.
packages.write = <b>Écrire :</b> Publier et supprimer des paquets assignés au dépôt.
actions.write = <b>Écrire :</b> Déclencher manuellement, redémarrer, annuler ou approuver les pipelines CI/CD en attente.
ext_wiki = Accéder au lien vers un wiki externe. Les autorisations sont gérées de manière externe.
issues.write = <b>Écrire :</b> Fermer des tickets et gérer les métadonnées telles que les étiquettes, les jalons, les assignés, les dates d'échéance et les dépendances.
pulls.read = <b>Lire :</b> Lire et créer des demandes de tirage.
[translation_meta]
test = Ceci est une chaîne de test. Elle n'est pas affichée dans l'interface de Forgejo mais est utilisée à des fins de test. N'hésitez pas à entrer 'ok' pour gagner du temps (ou un fait amusant de votre choix) pour atteindre ce doux 100 % de complétion :)

View file

@ -2,5 +2,26 @@
[common]
dashboard = डैशबोर्ड
home = घर
dashboard = नियंत्रण कक्ष
home = मुख्य पृष्ठ
help = सहायता
logo = चिह्न
explore = अन्वेषण करें
sign_in = प्रवेश करें
sign_in_with_provider = %s के साथ प्रवेश करें
sign_in_or = या
sign_out = बाहर निकलें
sign_up = पंजीकरण
register = पंजीकरण
version = संस्करण
powered_by = द्वारा संचालित %s
page = पृष्ठ
template = सांचा
language = भाषा
active_stopwatch = सक्रिय समय ट्रैकर
create_new = बनाएँ…
signed_in_as = साइन इन किया गया है
link_account = खाता लिंक करें
notifications = सूचनाएँ
tracked_time_summary = समस्याओं की सूची के फ़िल्टर के आधार पर ट्रैक किए गए समय का सारांश
user_profile_and_more = प्रोफ़ाइल और सेटिंग्स…

View file

@ -20,15 +20,15 @@ user_profile_and_more=Profil és beállítások…
signed_in_as=Bejelentkezve mint
toc=Tartalomjegyzék
licenses=Licencek
return_to_forgejo=Vissza a Forgejo-hoz
return_to_forgejo=Vissza a Forgejóhoz
username=Felhasználónév
email=E-mail cím
email=E-mail-cím
password=Jelszó
re_type=Jelszó megerősítése
captcha=CAPTCHA
twofa=Kétlépcsős hitelesítés
twofa_scratch=Kétlépcsős bejelentkezés egyszer használatos kódja
twofa_scratch=Kétlépcsős hitelesítés egyszer használatos kódja
passcode=Jelkód
@ -98,13 +98,13 @@ filter.is_archived = Archivált
logo = Logó
sign_in_with_provider = Bejelentkezés %s fiókkal
webauthn_insert_key = Helyezze be biztonsági kulcsát
webauthn_press_button = Kérem nyomja meg a biztonsági kulcsán található gombot…
webauthn_press_button = Nyomja meg a biztonsági kulcsán található gombot…
access_token = Hozzáférési token
webauthn_error = A biztonsági kulcsának beolvasása sikertelen volt.
webauthn_unsupported_browser = A böngészője jelenleg nem támogatja a WebAuthn protokollt.
webauthn_error_unknown = Egy ismeretlen hiba jelentkezett. Kérem próbálja újra.
webauthn_error_unable_to_process = A szerver nem tudta feldolgozni kérését.
webauthn_error_empty = Ennek a kulcsnak nevet kell adnia.
webauthn_error_unknown = Ismeretlen hiba történt. Próbálja újra.
webauthn_error_unable_to_process = A kiszolgáló nem tudta feldolgozni a kérését.
webauthn_error_empty = Nevet kell adnia ennek a kulcsnak.
new_project_column = Új oszlop
never = Soha
unknown = Ismeretlen
@ -126,16 +126,53 @@ more_items = További elemek
view = Megtekintés
ok = OK
copy_generic = Másolás vágólapra
copy_url = URL másolása
webauthn_error_insecure = A WebAuthn csak biztonságos kapcsolatokat támogat. HTTP-n keresztüli tesztelés esetén használja a "localhost" vagy "127.0.0.1"-es elérési pontokat
copy_url = Webcím másolása
webauthn_error_insecure = A WebAuthn csak biztonságos kapcsolatokat támogat. HTTP-n keresztüli tesztelés esetén használja a „localhost” vagy a „127.0.0.1” forrást.
filter.clear = Szűrők törlése
enable_javascript = Az oldal működéséhez engedélyezni kell a JavaScriptet.
webauthn_sign_in = Nyomja meg a biztonsági kulcsán található gombot. Ha nincs rajta gomb, próbálja meg újra behelyezni.
webauthn_use_twofa = Kétlépcsős hitelesítési kód használata telefonról
webauthn_error_timeout = Időtúllépés a kulcs beolvasása során. Töltse be újra ezt az oldalt, és próbálkozzon újra.
copy_branch = Elágazás nevének másolása
test = Tesztelés
copy_type_unsupported = Ezt a fájltípust nem lehet másolni
copy_error = Sikertelen másolás
invalid_data = Érvénytelen adatok: %v
unpin = Rögzítés feloldása
concept_user_individual = Egyéni
toggle_menu = Menü megjelenítése/elrejtése
concept_system_global = Globális
error413 = Felhasználta a kvótáját.
remove_label_str = „%s” eltávolítása
rerun_all = Minden feladat újrafuttatása
rerun = Újrafuttatás
show_full_screen = Teljes képernyő
rss_feed = RSS csatorna
copy = Másolás
retry = Újra
new_repo.title = Új tároló
new_repo.link = Új tároló
new_migrate.title = Új migráció
new_migrate.link = Új migráció
new_org.title = Új szervezet
new_org.link = Új szervezet
filter.is_fork = Másolatok
webauthn_error_duplicated = A biztonsági kulcs nem engedélyezett ehhez a kéréshez. Győződjön meg róla, hogy a kulcs nincs-e már regisztrálva.
filter.is_mirror = Tükrök
[aria]
footer.links = Hivatkozások
footer = Lábléc
navbar = Navigációs eszközsor
footer.software = A programról
[heatmap]
less = Kevesebb
more = Több
number_of_contributions_in_the_last_12_months = %s hozzájárulás az elmúlt 12 hónapban
contributions_zero = Nincsenek hozzájárulások
contributions_one = hozzájárulás
contributions_few = hozzájárulás
[editor]
buttons.heading.tooltip = Fejléc hozzáadása
@ -145,6 +182,12 @@ buttons.italic.tooltip = Dőlt szöveg hozzáadása
buttons.quote.tooltip = Szöveg idézése
buttons.link.tooltip = Hivatkozás hozzáadása
buttons.indent.tooltip = Elemek behúzása egy szinttel
buttons.mention.tooltip = Felhasználó vagy csapat említése
buttons.list.ordered.tooltip = Számozott lista hozzáadása
buttons.list.task.tooltip = Feladatlista hozzáadása
buttons.list.unordered.tooltip = Felsorolás hozzáadása
buttons.switch_to_legacy.tooltip = A régi szerkesztő használata
buttons.unindent.tooltip = Elemek behúzásának csökkentése egy szinttel
[filter]
string.asc = A - Z
@ -154,6 +197,7 @@ string.desc = Z - A
occurred = Hiba történt
server_internal = Belső szerverhiba
network_error = Hálózati hiba
not_found = A cél nem található.
[startpage]
app_desc=Fájdalommentes, saját gépre telepíthető Git szolgáltatás
@ -449,7 +493,7 @@ avatar=Profilkép
ssh_gpg_keys=SSH / GPG kulcsok
social=Közösségi fiókok
applications=Alkalmazások
orgs=Szervezetek kezelése
orgs=Szervezetek
repos=Tárolók
delete=Fiók törlése
twofa=Kétlépcsős hitelesítés
@ -621,6 +665,7 @@ email_notifications.submit=E-mail beállítások megadása
visibility.public=Nyilvános
visibility.private=Privát
appearance = Megjelenés
[repo]
owner=Tulajdonos
@ -1726,6 +1771,9 @@ runs.commit=Commit
; Ordered by git filemode value, ascending. E.g. directory has "040000", normal file has "100644", …
symbolic_link=Szimbolikus hivatkozás
submodule = Almodul
executable_file = Futtatható fájl
normal_file = Általános fájl
directory = Könyvtár
@ -1740,4 +1788,15 @@ user_kind = Felhasználók keresése...
repo_kind = Tárak keresése...
org_kind = Szervezetek keresése...
team_kind = Csapatok keresése...
exact = Pontos
exact = Pontos
code_search_by_git_grep = A kódkeresés jelenleg a "git grep" parancsot használja. Lehet, hogy jobb találatok is lennének, ha a webhely adminisztrátora bekapcsolja a forráskód indexelését.
milestone_kind = Mérföldkövek keresése...
fuzzy_tooltip = A keresési kifejezéshez hasonló találatok mutatása
fuzzy = Hasonlók
union = Kulcsszavakra
union_tooltip = A szóközzel elválasztott kulcsszavak bármelyikét tartalmazó találatok mutatása
branch_kind = Ágak keresése...
no_results = Nincsenek megfelelő találatok.
issue_kind = Hibajegyek keresése...
exact_tooltip = Csak a keresési kifejezést pontosan tartalmazó találatok mutatása
keyword_search_unavailable = A kulcsszó alapú keresés jelenleg nem elérhető. Kérlek értesítsd az oldal rendszergazdáját.

View file

@ -3,7 +3,7 @@ home=Forsíða
dashboard=Stjórnborð
explore=Vafra
help=Hjálp
sign_in=Skrá Inn
sign_in=Skrá inn
sign_in_or=eða
sign_out=Skrá Út
sign_up=Nýskráning
@ -15,9 +15,9 @@ page=Síða
template=Sniðmát
language=Tungumál
notifications=Tilkynningar
active_stopwatch=Virk Tímamæling
active_stopwatch=Virk tímamæling
create_new=Skapa…
user_profile_and_more=Notandasíða og Stillingar…
user_profile_and_more=Notandasíða og stillingar…
signed_in_as=Skráð(ur) inn sem
toc=Efnisyfirlit
licenses=Hugbúnaðarleyfi
@ -111,6 +111,8 @@ concept_code_repository=Hugbúnaðarsafn
name=Heiti
value=Gildi
sign_in_with_provider = Skrá inn með %s
enable_javascript = Þessi síða krefst JavaScript.
[aria]

View file

@ -340,7 +340,7 @@ allow_dots_in_usernames = Consenti l'uso del punto nel nome utente. Non impatta
config_location_hint = Queste opzioni di configurazione saranno salvate in:
allow_only_external_registration = Permetti la registrazione solo tramite servizi esterni
app_slogan = Slogan dell'istanza
app_slogan_helper = Inserire qui lo slogan dell'istanza. Lasciare vuoto per disabilitare.
app_slogan_helper = Inserisci qui lo slogan della tua istanza. Lasciala vuota per disabilitarlo.
[home]
uname_holder=Nome utente o indirizzo e-mail
@ -406,10 +406,10 @@ remember_me=Ricorda questo dispositivo
forgot_password_title=Password dimenticata
forgot_password=Password dimenticata?
sign_up_now=Hai bisogno di un account? Registrati adesso.
confirmation_mail_sent_prompt=Una nuova email di conferma è stata inviata a <b>%s</b>. Per favore controlla la tua posta in arrivo nelle prossime %s per completare il processo di registrazione.
confirmation_mail_sent_prompt=Una nuova e-mail di conferma è stata inviata a <b>%s</b>. Per completare la registrazione, controlla la tua posta in arrivo e clicca sul link in allegato entro i prossimi %s secondi. Se la tua e-mail è errata o incorretta, puoi accedere all'account e richiedere un'altra e-mail di conferma ad un'altro indirizzo.
must_change_password=Aggiorna la tua password
allow_password_change=Richiede all'utente di cambiare la password (scelta consigliata)
reset_password_mail_sent_prompt=Una email di conferma è stata inviata a <b>%s</b>. Per favore controlla la tua posta in arrivo nelle prossime %s per completare il processo di reset della password.
reset_password_mail_sent_prompt=Un'e-mail di conferma è stata inviata a <b>%s</b>. Per completare il processo di recupero dell'account, controlla la tua posta in arrivo e clicca sul link entro i prossimi %s secondi.
active_your_account=Attiva il tuo account
account_activated=L'account è stato attivato
prohibit_login=L'accesso è proibito
@ -471,6 +471,11 @@ openid_signin_desc = Inserisci il tuo URI OpenID. Per esempio: alice.openid.exam
password_pwned = La password che hai scelto è in un <a target="_blank" rel="noopener noreferrer" href="%s">elenco di password rubate</a> precedentemente esposte a violazioni di dati pubblici. Riprova con una password diversa e valuta di modificare questa password anche altrove.
tab_signup = Registrati
tab_signin = Accedi
back_to_sign_in = Torna alla schermata d'accesso
sign_in_openid = Procedi con OpenID
hint_login = Hai già un'utenza? <a href="%s">Accedi!</a>
hint_register = Non hai un'utenza? <a href="%s">Registrati ora.</a>
sign_up_button = Registrati ora.
[mail]
view_it_on=Visualizza su %s
@ -539,6 +544,21 @@ activate_email.title = %s, verifica il tuo indirizzo email
admin.new_user.text = <a href="%s">Clicca qui</a> per gestire questo utente dal pannello di amministrazione.
team_invite.text_1 = %[1]s ti ha invitato a far parte del team %[2]s nell'organizzazione %[3]s.
team_invite.text_3 = Nota: Questo invito è destinato a %[1]s. Se non ti aspettavi questo invito, puoi ignorare questa email.
primary_mail_change.subject = La tua mail principale è stata cambiata
removed_security_key.no_2fa = Non ci sono più altri metodi di autenticazione a due fattori configurati, ergo non c'è più bisogno di accedere alla tua utenza tramite tale autenticazione.
primary_mail_change.text_1 = La mail principale della tua utenza è appena stata cambiata in %[1]s. Ciò significa che questo indirizzo di posta elettronica non riceverà più notifiche mail da quest'utenza.
totp_disabled.subject = La TOTP è stata disabilitata
totp_disabled.no_2fa = Non ci sono più altri metodi d'autenticazione a due fattori configurati, ergo non c'è più bisogno di accedere alla tua utenza con tale autenticazione.
removed_security_key.subject = È stata rimossa una chiave di sicurezza
removed_security_key.text_1 = La chiave di sicurezza "%[1]s" è appena stata rimossa dalla tua utenza.
totp_disabled.text_1 = La password a tempo usa e getta (TOTP) della tua utenza è appena stata disabilitata.
totp_enrolled.subject = Hai attivato la TOTP come metodo d'autenticazione a due fattori
totp_enrolled.text_1.no_webauthn = Hai appena attivato la TOTP per la tua utenza. Ciò significa che dovrai usarla come metodo d'autenticazione a due fattori per tutti i tuoi accessi futuri.
totp_enrolled.text_1.has_webauthn = Hai appena attivato la TOTP per la tua utenza. Ciò significa che dovrai usare come metodo d'autenticazione a due fattori per i tuoi accessi futuri tale TOTP o una delle tue chiavi di sicurezza.
password_change.subject = La tua password è stata modificata
password_change.text_1 = La password della tua utenza è appena stata modificata.
account_security_caution.text_1 = Se sei statə tu, puoi ignorare questa mail.
account_security_caution.text_2 = Se non sei statə tu, la tua utenza è compromessa. Contatta l'amministrazione del sito.
[modal]
@ -1022,6 +1042,8 @@ pronouns = Pronomi
pronouns_custom = Personalizzato
pronouns_unspecified = Non specificato
language.title = Lingua predefinita
language.description = Questa lingua verrà salvata nella tua utenza e verrà usata come predefinita ogni volta che farai l'accesso.
language.localization_project = Aiutaci a tradurre Forgejo nella tua lingua! <a href="%s">Più informazioni</a>.
[repo]
owner=Proprietario
@ -2164,23 +2186,23 @@ settings.protect_enable_push_desc=Chiunque con accesso in scrittura sarà autori
settings.protect_whitelist_committers=Limita immissione alla whitelist
settings.protect_whitelist_committers_desc=Solo gli utenti o i team nella whitelist potranno pushare su questo ramo (ma non forzare il push).
settings.protect_whitelist_deploy_keys=Chiavi di deploy in whitelist con permessi di scrittura per il push.
settings.protect_whitelist_users=Utenti nella whitelist per pushare:
settings.protect_whitelist_users=Utenti nella whitelist per pushare
settings.protect_whitelist_search_users=Cerca utenti…
settings.protect_whitelist_teams=Team nella whitelist per pushare:
settings.protect_whitelist_teams=Team nella whitelist per pushare
settings.protect_whitelist_search_teams=Ricerca team…
settings.protect_merge_whitelist_committers=Attiva la whitelist per le fusioni
settings.protect_merge_whitelist_committers_desc=Consentire soltanto agli utenti o ai team in whitelist il permesso di unire le pull request di questo branch.
settings.protect_merge_whitelist_users=Utenti nella whitelist per il merging:
settings.protect_merge_whitelist_teams=Team nella whitelist per il merging:
settings.protect_merge_whitelist_users=Utenti nella whitelist per il merging
settings.protect_merge_whitelist_teams=Team nella whitelist per il merging
settings.protect_check_status_contexts=Abilita controllo dello stato
settings.protect_check_status_contexts_desc=Richiedi il superamento di controlli di stato prima dell'unione di due rami. Scegliere quali controlli di stato devono passare prima che i rami possano essere uniti in un ramo che corrisponde a questa regola. Se abilitato, i commit devono prima essere inviati a un altro ramo, quindi uniti o pushati direttamente a un ramo che corrisponde a questa regola dopo aver superato i controlli di stato. Se non viene selezionato alcuna regola, l'ultimo commit avrá successo indipendentemente dal contesto.
settings.protect_check_status_contexts_list=Controlli di stato trovati nell'ultima settimana per questo repository
settings.protect_required_approvals=Approvazioni richieste:
settings.protect_required_approvals=Approvazioni richieste
settings.protect_required_approvals_desc=Permetti solo di unire la richiesta pull con abbastanza recensioni positive.
settings.protect_approvals_whitelist_enabled=Limita le approvazioni agli utenti o ai team nella whitelist
settings.protect_approvals_whitelist_enabled_desc=Solo le recensioni di utenti o team nella whitelist saranno contate alle approvazioni richieste. Senza approvazione nella whitelist, le recensioni di chiunque abbia i permessi di scrittura nella repository verrá contato nelle approvazioni richieste.
settings.protect_approvals_whitelist_users=Utenti autorizzati:
settings.protect_approvals_whitelist_teams=Team nella whitelist per le revisioni:
settings.protect_approvals_whitelist_users=Utenti autorizzati
settings.protect_approvals_whitelist_teams=Team nella whitelist per le revisioni
settings.dismiss_stale_approvals=Ignora impostazione vecchie
settings.dismiss_stale_approvals_desc=Quando i nuovi commit che cambiano il contenuto della pull request vengono pushati nel branch, le vecchie approvazioni verranno eliminate.
settings.require_signed_commits=Richiedi commit firmati
@ -2629,7 +2651,7 @@ wiki.page_title = Titolo della pagina
wiki.page_content = Contenuto della pagina
settings.mirror_settings.pushed_repository = Repositorio immesso
settings.mirror_settings.push_mirror.edit_sync_time = Modifica intervallo di sincronizzazione degli specchi
settings.units.units = Unità del repositorio
settings.units.units = Unità della repository
settings.units.add_more = Aggiungi ancora...
settings.wiki_globally_editable = Consenti a tutti di modificare la wiki
settings.pull_mirror_sync_in_progress = Prelevando cambiamenti dal progetto remoto %s.
@ -2706,11 +2728,11 @@ settings.protected_branch.save_rule = Salva regola
settings.protected_branch.delete_rule = Elimina regola
settings.protect_invalid_status_check_pattern = Sequenza per il controllo dello stato non valida: "%s".
settings.protect_status_check_matched = Coincide
settings.protect_status_check_patterns = Sequenze per il controllo dello stato:
settings.protect_status_check_patterns = Sequenze per il controllo dello stato
settings.protect_enable_merge = Abilita fusione
settings.protect_enable_merge_desc = Chiunque con permesso di scrittura potrà fondere richieste di modifica in questo ramo.
settings.protect_unprotected_file_patterns = Sequenze dei file non protetti (separate da punto e virgola ";"):
settings.protect_protected_file_patterns = Sequenze dei file protetti (separate da punto e virgola ";"):
settings.protect_unprotected_file_patterns = Sequenze dei file non protetti (separate da punto e virgola ";")
settings.protect_protected_file_patterns = Sequenze dei file protetti (separate da punto e virgola ";")
settings.protect_branch_name_pattern_desc = Sequenze di nome di rami protetti. Vedi <a href="%s">la documentazione</a> per la sintassi delle sequenze. Esempi: main, release/**
settings.protect_branch_name_pattern = Sequenza nome di ramo
settings.ignore_stale_approvals_desc = Non contare le approvazione fatte su vecchi commit (revisioni stantie) nel calcolo delle approvazioni della RM. Irrilevante se le revisioni stantie sono già state respinte.
@ -2720,7 +2742,7 @@ settings.protect_status_check_patterns_desc = Inserisci sequenze per specificare
settings.authorization_header_desc = Verrà inclusa come intestazione dell'autorizzazione per le richieste quando presente. Esempi: %s.
pulls.title_desc_one = vuole fondere %[1]d commit da <code>%[2]s</code> in <code id="branch_target">%[3]s</code>
settings.protect_unprotected_file_patterns_desc = File non protetti dei quali è consentita la modifica direttamente se l'utente ha permesso di scrittura, saltandole restrizioni di immissione. Più sequenze possono essere separate usando il punto e virgola (";"). Vedi la documentazione su <a href="%[1]s">%[2]s</a> per la sintassi delle sequenze glob. Esempi <code>.drone.yml</code>, <code>/docs/**/*.txt</code>.
settings.protect_protected_file_patterns_desc = I file non protetti non possono essere modificati direttamente neanche se l'utente ha il permesso di aggiungere, modificare o eliminare file in questo ramo. Più sequenze possono essere separate usando il punto e virgola (";"). Vedi la documentazione su <a href="%s">github.com/gobwas/glob</a> per la sintassi della sequenze. Esempi: <code>.drone.yml</code>, <code>/docs/**/*.txt</code>.
settings.protect_protected_file_patterns_desc = I file non protetti non possono essere modificati direttamente neanche se l'utente ha il permesso di aggiungere, modificare o eliminare file in questo ramo. Più sequenze possono essere separate usando il punto e virgola (";"). Vedi la documentazione su <a href="%s">%s</a> per la sintassi della sequenze. Esempi: <code>.drone.yml</code>, <code>/docs/**/*.txt</code>.
settings.protect_no_valid_status_check_patterns = Nessuna sequenza valida per il controllo dello stato.
settings.event_pull_request_review_request_desc = Richiesta la revisione della richiesta di modifica o richiesta di revisione rimossa.
stars = Stelle
@ -3863,6 +3885,7 @@ exact_tooltip = Includi solo i risultati che corrispondono esattamente al termin
issue_kind = Cerca segnalazioni...
pull_kind = Cerca richieste...
exact = Esatto
milestone_kind = Ricerca tappe...
[munits.data]
gib = GiB

View file

@ -158,6 +158,14 @@ filter.not_template = テンプレートではない
invalid_data = 無効なデータ: %v
more_items = さらに表示
copy_generic = クリップボードへコピー
new_repo.title = 新しいリポジトリ
new_migrate.title = 新しいマイグレーション
new_org.title = 新しい組織
new_repo.link = 新しいリポジトリ
new_migrate.link = 新しいマイグレーション
new_org.link = 新しい組織
test = テスト
error413 = 割り当て量を使い切りしました。
[aria]
navbar=ナビゲーションバー
@ -189,6 +197,8 @@ buttons.ref.tooltip=イシューまたはプルリクエストを参照
buttons.switch_to_legacy.tooltip=レガシーエディタを使用する
buttons.enable_monospace_font=等幅フォントを有効にする
buttons.disable_monospace_font=等幅フォントを無効にする
buttons.unindent.tooltip = アイテムを1つずつネストの解除をする
buttons.indent.tooltip = アイテムを1つずつネストする
[filter]
string.asc=A - Z
@ -245,7 +255,7 @@ err_admin_name_is_invalid=管理者のユーザー名が不正です
general_title=基本設定
app_name=インスタンス名
app_name_helper=企業名をここに入れることができます。
app_name_helper=ここにインスタンス名を入力します。これはすべてのページに表示されます。
repo_path=リポジトリのルートパス
repo_path_helper=リモートGitリポジトリはこのディレクトリに保存されます。
lfs_path=Git LFSルートパス
@ -279,7 +289,7 @@ offline_mode.description=外部のCDNサービスを使わず、すべてのリ
disable_gravatar=Gravatarを無効にする
disable_gravatar.description=Gravatarと外部のアバターソースを無効にします。 アバターをローカルにアップロードしていないユーザーには、デフォルトのアバターが使用されます。
federated_avatar_lookup=フェデレーテッド・アバターを有効にする
federated_avatar_lookup.description=Libravatarを使用したフェデレーテッド・アバター検索を有効にします。
federated_avatar_lookup.description=Libravatar を使用してアバターを検索します。
disable_registration=セルフ登録を無効にする
disable_registration.description=管理者だけが新しいユーザー アカウントを作成できます。誰もが利用できるパブリックインスタンスをホストし、大量のスパムアカウントに対処する準備ができていない限り、登録を無効にしておくことを強くお勧めします。
allow_only_external_registration.description=設定された外部サービスを使用してのみ新しいアカウントを作成できます。
@ -398,14 +408,14 @@ forgot_password_title=パスワードを忘れた
forgot_password=パスワードをお忘れですか?
sign_up_now=アカウントが必要ですか? 今すぐ登録しましょう。
sign_up_successful=アカウントは無事に作成されました。ようこそ!
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=サインイン禁止
prohibit_login_desc=あなたのアカウントはサインインを禁止されています。 サイト管理者にお問い合わせください。
prohibit_login=アカウントが停止されました
prohibit_login_desc=あなたのアカウントはインスタンスとのやり取りが停止されています。アクセスを回復するには、インスタンス管理者に問い合わせてください。
resent_limit_prompt=少し前に、あなたからアクティベーションメールが要求されています。 3分待ったのち、もう一度試してください。
has_unconfirmed_mail=こんにちは %s さん、あなたのメール アドレス (<b>%s</b>) は確認がとれていません。 確認メールを受け取っていない場合や、改めて送信したい場合は、下のボタンをクリックしてください。
resend_mail=アクティベーションメールを再送信するにはここをクリック
@ -448,7 +458,7 @@ email_domain_blacklisted=あなたのメールアドレスでは登録するこ
authorize_application=アプリケーションを許可
authorize_redirect_notice=このアプリケーションを許可すると %s にリダイレクトします。
authorize_application_created_by=このアプリケーションは %s が作成しました。
authorize_application_description=アクセスを許可すると、このアプリケーションは、プライベート リポジトリや組織を含むあなたのすべてのアカウント情報に対して、アクセスと書き込みができるようになります。
authorize_application_description=アクセスを許可すると、プライベートリポジトリや組織を含むすべてのアカウント情報にアクセスして書き込むことができるようになります。
authorize_title=`"%s"にあなたのアカウントへのアクセスを許可しますか?`
authorization_failed=認可失敗
authorization_failed_desc=無効なリクエストを検出したため認可が失敗しました。 認可しようとしたアプリの開発者に連絡してください。
@ -461,6 +471,12 @@ change_unconfirmed_email_summary = アクティベーションメールの送信
last_admin=最後の管理者は削除できません。少なくとも一人の管理者が必要です。
tab_signin = サインイン
tab_signup = サインアップ
sign_in_openid = OpenIDで続行
back_to_sign_in = サインインに戻る
unauthorized_credentials = 資格情報が正しくないか、期限が切れています。コマンドを再試行するか、詳細については %s を参照してください
sign_up_button = 今すぐ登録して下さい。
hint_login = すでにアカウントをお持ちですか? <a href="%s">今すぐサインイン!</a>
hint_register = アカウントが必要ですか? <a href="%s">今すぐ登録してください。</a>
[mail]
view_it_on=%s で見る
@ -530,6 +546,21 @@ team_invite.text_3=注: この招待は %[1]s 宛です。 招待に心当たり
admin.new_user.user_info = ユーザー情報
admin.new_user.subject = 新しいユーザー、 %sがサインアップしました
admin.new_user.text = 管理パネルからこのユーザーを管理するには、<a href="%s">ここ</a>をクリックしてください。
totp_enrolled.text_1.has_webauthn = アカウントで TOTP が有効になりました。今後のアカウントへのログインで、2要素認証として TOTP を使用したり、任意のセキュリティ キーを使用することができます。
totp_enrolled.subject = 2要素認証としてTOTPを有効にしました
totp_enrolled.text_1.no_webauthn = アカウントで TOTP が有効になりました。今後アカウントにログインするときに、2要素認証として TOTP を使用する必要があります。
password_change.text_1 = アカウントのパスワードが変更されました。
password_change.subject = パスワードが変更されました
primary_mail_change.subject = プライマリメールが変更されました
primary_mail_change.text_1 = あなたのアカウントのプライマリメールが %[1]s に変更されました。これにより、この電子メール アドレスはあなたのアカウントに関する電子メール通知を受信しなくなります。
totp_disabled.subject = TOTPが無効になりました
totp_disabled.text_1 = あなたのアカウントの時間ベースのワンタイムパスワード (TOTP) が無効になりました。
totp_disabled.no_2fa = 他の 2要素認証は設定されていないため、2要素認証を使用してアカウントにログインする必要はなくなりました。
removed_security_key.subject = セキュリティキーが削除されました
removed_security_key.text_1 = セキュリティキー "%[1]s" がアカウントから削除されました。
account_security_caution.text_1 = もしこれがあなたの操作であれば、このメールは無視しても問題ありません。
account_security_caution.text_2 = もしこれがあなたの操作でない場合、アカウントが不正利用されている可能性があります。このサイトの管理者に連絡してください。
removed_security_key.no_2fa = 他の 2要素認証は設定されていないため、2要素認証を使用してアカウントにログインする必要はなくなりました。
[modal]
yes=はい
@ -668,16 +699,24 @@ settings=ユーザー設定
form.name_reserved=ユーザー名 "%s" は予約されています。
form.name_pattern_not_allowed=`"%s" の形式はユーザー名に使用できません。`
form.name_chars_not_allowed=ユーザー名 "%s" には無効な文字が含まれています。
block_user.detail_2 = このユーザーは、リポジトリ、作成されたイシュー、コメントを操作できません。
block_user.detail_1 = このユーザーからのフォローが解除されています。
block_user.detail_2 = このユーザーは、あなたが所有するリポジトリや、あなたが作成した問題やコメントを操作することはできません。
block_user.detail_1 = お互いのフォローが停止され、フォローできなくなります。
follow_blocked_user = あなたはこのユーザーをフォローできません。なぜなら、あなたはこのユーザーをブロックしたか、このユーザーはあなたをブロックしているからです。
block_user.detail_3 = このユーザーはあなたをコラボレーターとして追加することはできませんし、あなたも彼らをコラボレーターに追加できません。
block_user.detail_3 = お互いをリポジトリの共同作業者として追加することはできません。
block_user = ユーザーをブロック
unblock = ブロックを解除
block = ブロック
block_user.detail = このユーザーをブロックした場合、下記の事などが起こります。例えば
block_user.detail = ユーザーをブロックすると、次のような影響があります
followers_one = %d 人のフォロワー
following_one = %d 人をフォロー中
public_activity.visibility_hint.self_public = あなたのアクティビティは、プライベート スペースでのやり取りを除き、すべてのユーザーに表示されます。<a href="%s">設定</a>。
public_activity.visibility_hint.admin_public = このアクティビティは誰でも見ることができますが、管理者はプライベート スペースでのやり取りも見ることができます。
public_activity.visibility_hint.self_private = あなたのアクティビティはあなたとインスタンス管理者にのみ表示されます。<a href="%s">設定</a>。
public_activity.visibility_hint.admin_private = このアクティビティは管理者であるあなたには表示されますが、ユーザーは非公開にしたいと考えています。
following.title.one = フォロー中
following.title.few = フォロー中
followers.title.one = フォロワー
followers.title.few = フォロワー
[settings]
profile=プロフィール
@ -787,12 +826,12 @@ add_new_email=新しいメールアドレスを追加
add_new_openid=新しいOpenID URIを追加
add_email=メールアドレスを追加
add_openid=OpenID URIを追加する
add_email_confirmation_sent=`"%s" に確認メールを送信しました。 %s以内に受信トレイを確認し、メールアドレス確認を行ってください。`
add_email_confirmation_sent=確認メールが"%s"に送信されました。メールアドレスを確認するには、受信トレイを確認し、%s以内に提供されたリンクをクリックしてください。
add_email_success=新しいメールアドレスを追加しました。
email_preference_set_success=メール設定を保存しました。
add_openid_success=新しいOpenIDアドレスを追加しました。
keep_email_private=メールアドレスを隠す
keep_email_private_popup=これによりプロフィールでメールアドレスが隠され、Webインターフェースでのプルリクエスト作成やファイル編集でもメールアドレスが隠されます。 プッシュ済みのコミットは変更されません
keep_email_private_popup=これにより、プロフィールからメールアドレスが非表示になります。ファイルのアップロードや編集など、ウェブインターフェース経由で行われるコミットのデフォルトとして使用されなくなり、マージコミットにも使用されません。代わりに、コミットをあなたのアカウントに関連付けるために特別なアドレス%sを使用できます。このオプションを変更しても、既存のコミットには影響しないことに注意してください
openid_desc=OpenIDを使うと外部プロバイダーに認証を委任することができます。
manage_ssh_keys=SSHキーの管理
@ -1000,11 +1039,14 @@ pronouns = 代名詞
pronouns_custom = カスタム
pronouns_unspecified = 未指定
update_hints = ヒントを更新
additional_repo_units_hint_description = 利用可能なすべての機能が有効になっていないリポジトリに対して、「機能を追加...」ボタンを表示します。
additional_repo_units_hint_description = 利用可能なすべての機能が有効になっていないリポジトリに対して、「さらに有効にする」ヒントを表示します。
update_hints_success = ヒントが更新されました。
hints = ヒント
additional_repo_units_hint = リポジトリでより多くの機能を有効にすることを推奨する
language.title = 既定の言語
keep_activity_private.description = <a href="%s">公開アクティビティ</a>は、あなたとインスタンス管理者にのみ表示されます。
language.description = この言語はアカウントに保存され、ログイン後にデフォルトとして使用されます。
language.localization_project = Forgejo をあなたの言語に翻訳するのを手伝ってください。<a href="%s">詳細はこちら</a>。
[repo]
new_repo_helper=リポジトリには、プロジェクトのすべてのファイルとリビジョン履歴が入ります。 すでにほかの場所でホストしていますか? <a href="%s">リポジトリを移行</a> もどうぞ。
@ -1021,7 +1063,7 @@ visibility=公開/非公開
visibility_description=オーナー、または権限を持つ組織のメンバーだけが、リポジトリを見ることができます。
visibility_helper=リポジトリをプライベートにする
visibility_helper_forced=サイト管理者の設定により、新しいリポジトリは強制的にプライベートになります。
visibility_fork_helper=(この変更はすべてのフォークに適用されます)
visibility_fork_helper=(この変更はすべてのフォークの可視性に影響します。)
clone_helper=クローンに関してお困りであれば<a target="_blank" rel="noopener noreferrer" href="%s">ヘルプ</a>を参照しましょう。
fork_repo=リポジトリをフォーク
fork_from=フォーク元
@ -1043,15 +1085,15 @@ repo_desc_helper=簡単な説明を入力してください (オプション)
repo_lang=言語
repo_gitignore_helper=.gitignoreテンプレートを選択してください。
repo_gitignore_helper_desc=一般的な言語のテンプレートリストから、追跡しないファイルの設定を選択します。 各言語のビルドツールが生成する典型的なファイルが、デフォルトで.gitignoreに含まれます。
issue_labels=イシューラベル
issue_labels_helper=イシューのラベルセットを選択
issue_labels=ラベル
issue_labels_helper=ラベルセットを選択
license=ライセンス
license_helper=ライセンス ファイルを選択してください
license_helper=ライセンス ファイルを選択してください
license_helper_desc=ライセンスにより、他人があなたのコードに対して何ができて何ができないのかを規定します。 どれがプロジェクトにふさわしいか迷っていますか? <a target="_blank" rel="noopener noreferrer" href="%s">ライセンス選択サイト</a> も確認してみてください。
object_format=オブジェクトのフォーマット
object_format_helper=リポジトリのオブジェクトフォーマット。後で変更することはできません。SHA1 最も互換性があります。
object_format_helper=リポジトリのオブジェクトフォーマット。後で変更することはできません。SHA1 最も互換性があります。
readme=README
readme_helper=READMEファイル テンプレートを選択してください
readme_helper=READMEファイル テンプレートを選択してください
readme_helper_desc=プロジェクトについての説明をひととおり書く場所です。
auto_init=リポジトリの初期設定 (.gitignore、ライセンスファイル、READMEファイルの追加)
trust_model_helper=署名検証のトラストモデルを選択します。 選択肢は次のとおりです:
@ -1383,7 +1425,7 @@ commitstatus.failure=失敗
commitstatus.pending=保留
commitstatus.success=成功
ext_issues=外部イシューへのアクセス
ext_issues=外部イシュー
ext_issues.desc=外部のイシュートラッカーへのリンク。
projects=プロジェクト
@ -1418,7 +1460,7 @@ projects.column.set_default_desc=この列を未分類のイシューやプル
projects.column.unset_default=デフォルトを解除
projects.column.unset_default_desc=この列からデフォルト列の設定を解除します
projects.column.delete=列を削除
projects.column.deletion_desc=プロジェクト列を削除すると、関連するすべてのイシューが '未分類' に移動します。 続行しますか?
projects.column.deletion_desc=プロジェクト列を削除すると、関連するすべてのイシューがデフォルトの列に移動します。 続行しますか?
projects.column.color=カラー
projects.open=オープン
projects.close=クローズ
@ -1466,10 +1508,10 @@ issues.new_label=新しいラベル
issues.new_label_placeholder=ラベル名
issues.new_label_desc_placeholder=説明
issues.create_label=ラベルを作成
issues.label_templates.title=定義済みラベルセットの読み込み
issues.label_templates.info=ラベルがまだありません。"新しいラベル"でラベルを作成するか、次の定義済みのラベルセットを使用してください:
issues.label_templates.helper=ラベルセットを選択
issues.label_templates.use=ラベルセットを使用
issues.label_templates.title=ラベルプリセットを読み込む
issues.label_templates.info=ラベルがまだありません。"新しいラベル"でラベルを作成するか、ラベルプリセットを使用してください:
issues.label_templates.helper=ラベルプリセットを選択する
issues.label_templates.use=ラベルプリセットを使用
issues.label_templates.fail_to_load_file=ラベルテンプレート "%s" を読み込めませんでした: %v
issues.add_label=がラベル %s を追加 %s
issues.add_labels=がラベル %s を追加 %s
@ -1589,7 +1631,7 @@ issues.role.collaborator_helper=このユーザーはリポジトリ上で共同
issues.role.first_time_contributor=初めての貢献者
issues.role.first_time_contributor_helper=これは、このユーザーによるリポジトリへの最初の貢献です。
issues.role.contributor=貢献者
issues.role.contributor_helper=このユーザーは以前にリポジトリにコミットしています。
issues.role.contributor_helper=このユーザーは以前にこのリポジトリにコミットしています。
issues.re_request_review=レビューを再依頼
issues.is_stale=このレビューのあと、このPRに変更がありました
issues.remove_request_review=レビュー依頼を取り消し
@ -1604,7 +1646,7 @@ issues.label_title=名前
issues.label_description=説明
issues.label_color=カラー
issues.label_exclusive=排他
issues.label_archive=アーカイブ ラベル
issues.label_archive=ラベルをアーカイブ
issues.label_archived_filter=アーカイブされたラベルを表示
issues.label_archive_tooltip=アーカイブされたラベルは、ラベルによる検索時のサジェストからデフォルトで除外されます。
issues.label_exclusive_desc=ラベル名を <code>スコープ/アイテム</code> の形にすることで、他の <code>スコープ/</code> ラベルと排他的になります。
@ -1636,8 +1678,8 @@ issues.lock.unknown_reason=未定義の理由ではイシューをロックで
issues.lock_duplicate=イシューは二重にロックできません。
issues.unlock_error=ロックされていないイシューをアンロックできません。
issues.lock_with_reason=が<strong>%s</strong>のためロックし会話を共同作業者に限定 %s
issues.lock_no_reason=がロックして会話を共同作業者に限定 %s
issues.unlock_comment=がこの会話をアンロック %s
issues.lock_no_reason=ロックされており、会話が共同作業者に制限されています %s
issues.unlock_comment=この会話のロックを解除 %s
issues.lock_confirm=ロック
issues.unlock_confirm=アンロック
issues.lock.notice_1=- 他のユーザーはこのイシューに新しいコメントを追加できません。
@ -1662,9 +1704,9 @@ issues.stop_tracking=タイマー 終了
issues.stop_tracking_history=`が作業を終了 %s`
issues.cancel_tracking=中止
issues.cancel_tracking_history=`がタイムトラッキングを中止 %s`
issues.add_time=で時間を入力
issues.add_time=で時間を入力
issues.del_time=このタイムログを削除
issues.add_time_short=時間入力
issues.add_time_short=時間入力
issues.add_time_cancel=キャンセル
issues.add_time_history=`が作業時間を追加 %s`
issues.del_time_history=`が作業時間を削除 %s`
@ -1691,7 +1733,7 @@ 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_overdue=期日は過ぎています
issues.due_date_invalid=期日が正しくないか範囲を超えています。 'yyyy-mm-dd' の形式で入力してください。
issues.due_date_invalid=期日が正しくないか範囲を超えています。 "yyyy-mm-dd" の形式で入力してください。
issues.dependency.title=依存関係
issues.dependency.issue_no_dependencies=依存関係が設定されていません。
issues.dependency.pr_no_dependencies=依存関係が設定されていません。
@ -1709,7 +1751,7 @@ issues.dependency.issue_closing_blockedby=このイシューのクローズは
issues.dependency.issue_close_blocks=このイシューは、これらのイシューのクローズをブロックしています
issues.dependency.pr_close_blocks=このプルリクエストは、これらのイシューのクローズをブロックしています
issues.dependency.issue_close_blocked=このイシューをクローズするには、ブロックしているイシューをすべてクローズする必要があります。
issues.dependency.issue_batch_close_blocked=選択したイシューの一括クローズはできません。 イシュー #%d に、まだオープン中の依存関係があります。
issues.dependency.issue_batch_close_blocked=イシュー #%d にまだ依存関係があるため、選択したイシューを一括で閉じることはできません
issues.dependency.pr_close_blocked=このプルリクエストを操作するには、ブロックしているイシューをすべてクローズする必要があります。
issues.dependency.blocks_short=ブロック対象
issues.dependency.blocked_by_short=依存先
@ -1824,7 +1866,7 @@ pulls.required_status_check_administrator=管理者であるため、このプ
pulls.blocked_by_approvals=このプルリクエストはまだ承認数が足りません。 %[1]d/%[2]dの承認を得ています。
pulls.blocked_by_rejection=このプルリクエストは公式レビューアにより変更要請されています。
pulls.blocked_by_official_review_requests=このプルリクエストには公式レビュー依頼があります。
pulls.blocked_by_outdated_branch=このプルリクエストは遅れのためブロックされています。
pulls.blocked_by_outdated_branch=このプルリクエストは古いためブロックされています。
pulls.blocked_by_changed_protected_files_1=このプルリクエストは保護しているファイルを変更するためブロックされています:
pulls.blocked_by_changed_protected_files_n=このプルリクエストは保護しているファイルを変更するためブロックされています:
pulls.can_auto_merge_desc=このプルリクエストは自動的にマージできます。
@ -1854,17 +1896,17 @@ pulls.merge_commit_id=マージコミットID
pulls.require_signed_wont_sign=ブランチでは署名されたコミットが必須ですが、このマージでは署名がされません
pulls.invalid_merge_option=このプルリクエストでは、指定したマージ方法は使えません。
pulls.merge_conflict=マージ失敗: マージ中にコンフリクトがありました。 ヒント: 別のストラテジーを試してみてください
pulls.merge_conflict=マージ失敗: マージ中にコンフリクトがありました。 ヒント: 別の方法を試してみてください
pulls.merge_conflict_summary=エラーメッセージ
pulls.rebase_conflict=マージ失敗: コミット %[1]s のリベース中にコンフリクトがありました。 ヒント: 別のストラテジーを試してみてください
pulls.rebase_conflict=マージ失敗: コミット %[1]s のリベース中にコンフリクトがありました。 ヒント: 別の方法を試してみてください
pulls.rebase_conflict_summary=エラーメッセージ
pulls.unrelated_histories=マージ失敗: マージHEADとベースには共通する履歴がありません。 ヒント: 別のストラテジーを試してみてください
pulls.merge_out_of_date=マージ失敗: マージの生成中にベースが更新されました。 ヒント: もう一度試してみてください
pulls.head_out_of_date=マージ失敗: マージの生成中に head が更新されました。 ヒント: もう一度試してみてください
pulls.unrelated_histories=マージ失敗: マージHEADとベースには共通する履歴がありません。 ヒント: 別の方法を試してみてください
pulls.merge_out_of_date=マージ失敗: マージの生成中にベースが更新されました。 ヒント: もう一度試してみてください
pulls.head_out_of_date=マージ失敗: マージの生成中に head が更新されました。 ヒント: もう一度試してみてください
pulls.has_merged=失敗: プルリクエストはマージされていました。再度マージしたり、ターゲットブランチを変更することはできません。
pulls.push_rejected=マージ失敗: プッシュは拒否されました。 このリポジトリのGitフックを見直してください。
pulls.push_rejected_summary=拒否メッセージ全体:
pulls.push_rejected_no_message=マージ失敗: プッシュは拒否され、リモートからのメッセージはありません。<br>このリポジトリのGitフックを見直してください
pulls.push_rejected_no_message=マージ失敗: プッシュは拒否され、リモートからのメッセージはありません。このリポジトリのGitフックを確認して下さい
pulls.open_unmerged_pull_exists=`同じ条件のプルリクエスト (#%d) が未処理のため、再オープンはできません。`
pulls.status_checking=いくつかのステータスチェックが待機中です
pulls.status_checks_success=ステータスチェックはすべて成功しました
@ -1883,7 +1925,7 @@ pulls.outdated_with_base_branch=このブランチはベースブランチに対
pulls.close=プルリクエストをクローズ
pulls.closed_at=`がプルリクエストをクローズ <a id="%[1]s" href="#%[1]s">%[2]s</a>`
pulls.reopened_at=`がプルリクエストを再オープン <a id="%[1]s" href="#%[1]s">%[2]s</a>`
pulls.cmd_instruction_hint=`コマンドラインの手順 を表示します。`
pulls.cmd_instruction_hint=コマンドラインの手順を表示
pulls.cmd_instruction_checkout_title=チェックアウト
pulls.cmd_instruction_checkout_desc=プロジェクトリポジトリから新しいブランチをチェックアウトし、変更内容をテストします。
pulls.cmd_instruction_merge_title=マージ
@ -1942,7 +1984,7 @@ milestones.filter_sort.least_issues=イシューの少ない順
signing.will_sign=このコミットは鍵 "%s" で署名されます。
signing.wont_sign.error=コミットの署名可否を確認中にエラーが発生しました。
signing.wont_sign.nokey=このコミットに署名するための鍵がありません。
signing.wont_sign.nokey=このインスタンスには、このコミットに署名するための鍵がありません。
signing.wont_sign.never=コミットが署名されることはありません。
signing.wont_sign.always=コミットは常に署名されます。
signing.wont_sign.pubkey=アカウントに公開鍵が登録されていないため、コミットは署名されません。
@ -1954,7 +1996,7 @@ signing.wont_sign.commitssigned=関連するコミットすべてが署名され
signing.wont_sign.approved=PRが未承認のため、マージは署名されません。
signing.wont_sign.not_signed_in=サインインしていません。
ext_wiki=外部Wikiへのアクセス
ext_wiki=外部Wiki
ext_wiki.desc=外部Wikiへのリンク。
wiki=Wiki
@ -1972,8 +2014,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ページのリビジョン
wiki.file_revision=ページの改訂履歴
wiki.wiki_page_revisions=Wikiページの改訂履歴
wiki.back_to_wiki=Wikiページに戻る
wiki.delete_page_button=ページを削除
wiki.delete_page_notice_1=Wikiページ "%s" の削除は元に戻せません。 続行しますか?
@ -2027,7 +2069,7 @@ activity.unresolved_conv_label=オープン
activity.title.releases_1=%d件のリリース
activity.title.releases_n=%d件のリリース
activity.title.releases_published_by=%sが%sによって発行されました
activity.published_release_label=発行
activity.published_release_label=リリース
activity.no_git_activity=この期間にはコミットのアクティビティがありません。
activity.git_stats_exclude_merges=マージを除くと、
activity.git_stats_author_1=%d人の作成者
@ -2103,12 +2145,12 @@ settings.sync_mirror=今すぐ同期
settings.pull_mirror_sync_in_progress=現在、リモート %s から変更をプルしています。
settings.push_mirror_sync_in_progress=現在、リモート %s へ変更をプッシュしています。
settings.site=Webサイト
settings.update_settings=設定を更新
settings.update_settings=設定を保存
settings.update_mirror_settings=ミラーリング設定を更新
settings.branches.switch_default_branch=デフォルトブランチを切り替え
settings.branches.update_default_branch=デフォルトブランチを更新
settings.branches.add_new_rule=新しいルールを追加
settings.advanced_settings=拡張設定
settings.advanced_settings=詳細設定
settings.wiki_desc=Wikiを有効にする
settings.use_internal_wiki=ビルトインのWikiを使用する
settings.use_external_wiki=外部のWikiを使用する
@ -2139,14 +2181,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.projects_desc=リポジトリプロジェクトを有効にする
settings.actions_desc=Actionsを有効にする
settings.admin_settings=管理者設定
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_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=再インデックスを要求しました
@ -2259,7 +2301,7 @@ settings.slack_icon_url=アイコンのURL
settings.slack_color=
settings.discord_username=ユーザー名
settings.discord_icon_url=アイコンのURL
settings.event_desc=トリガー:
settings.event_desc=通知トリガー:
settings.event_push_only=プッシュのイベント
settings.event_send_everything=すべてのイベント
settings.event_choose=イベントを指定…
@ -2279,32 +2321,32 @@ settings.event_push_desc=Gitがリポジトリにプッシュを行ったとき
settings.event_repository=リポジトリ
settings.event_repository_desc=リポジトリが作成・削除されたとき。
settings.event_header_issue=イシューのイベント
settings.event_issues=イシュー
settings.event_issues=変更
settings.event_issues_desc=イシューがオープン・クローズ・再オープン・編集されたとき。
settings.event_issue_assign=イシューのアサイン
settings.event_issue_assign=アサイン
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_comment=イシューへのコメント
settings.event_issue_label=ラベル
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_header_pull_request=プルリクエストのイベント
settings.event_pull_request=プルリクエスト
settings.event_pull_request=変更
settings.event_pull_request_desc=プルリクエストがオープン・クローズ・再オープン・編集されたとき。
settings.event_pull_request_assign=プルリクエストのアサイン
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_comment=プルリクエストへのコメント
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_comment=コメント
settings.event_pull_request_comment_desc=プルリクエストへのコメントが作成・編集・削除されたとき。
settings.event_pull_request_review=プルリクエストのレビュー
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_review_request=プルリクエストのレビュー依頼
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_approvals=プルリクエストの承認
settings.event_pull_request_merge=プルリクエストのマージ
@ -2392,12 +2434,12 @@ settings.protect_check_status_contexts_list=この1週間に、このリポジ
settings.protect_status_check_matched=マッチ
settings.protect_invalid_status_check_pattern=`不正なステータスチェックパターン: "%s"`
settings.protect_no_valid_status_check_patterns=有効なステータスチェックパターンがありません。
settings.protect_required_approvals=必要な承認数:
settings.protect_required_approvals=必要な承認数
settings.protect_required_approvals_desc=肯定的なレビューの数を満たしたプルリクエストしかマージできないようにします。
settings.protect_approvals_whitelist_enabled=ホワイトリストに登録したユーザーやチームに承認を制限
settings.protect_approvals_whitelist_enabled_desc=ホワイトリストに登録したユーザーやチームによるレビューのみを、必要な承認とみなします。 承認のホワイトリストが無い場合は、書き込み権限がある人によるレビューを必要な承認とみなします。
settings.protect_approvals_whitelist_users=ホワイトリストに含めるレビューア:
settings.protect_approvals_whitelist_teams=ホワイトリストに含めるレビューチーム:
settings.protect_approvals_whitelist_users=ホワイトリストに含めるレビューア
settings.protect_approvals_whitelist_teams=ホワイトリストに含めるレビューチーム
settings.dismiss_stale_approvals=古くなった承認を取り消す
settings.dismiss_stale_approvals_desc=プルリクエストの内容を変える新たなコミットがブランチにプッシュされた場合、以前の承認を取り消します。
settings.require_signed_commits=コミット署名必須
@ -2406,7 +2448,7 @@ settings.protect_branch_name_pattern=保護ブランチ名のパターン
settings.protect_branch_name_pattern_desc=保護ブランチ名のパターン。書き方については <a href="%s">ドキュメント</a> を参照してください。例: main, release/**
settings.protect_patterns=パターン
settings.protect_protected_file_patterns=保護されるファイルのパターン (セミコロン';'で区切る):
settings.protect_protected_file_patterns_desc=保護されたファイルは、このブランチにファイルを追加・編集・削除する権限を持つユーザーであっても、直接変更することができなくなります。 セミコロン(';')で区切って複数のパターンを指定できます。 パターンの文法については <a href='%s'>github.com/gobwas/glob</a> を参照してください。 例: <code>.drone.yml</code>, <code>/docs/**/*.txt</code>
settings.protect_protected_file_patterns_desc=保護されたファイルは、このブランチにファイルを追加・編集・削除する権限を持つユーザーであっても、直接変更することができなくなります。 セミコロン(';')で区切って複数のパターンを指定できます。 パターンの文法については <a href='%s'>%s</a> を参照してください。 例: <code>.drone.yml</code>, <code>/docs/**/*.txt</code>
settings.protect_unprotected_file_patterns=保護しないファイルのパターン (セミコロン';'で区切る):
settings.protect_unprotected_file_patterns_desc=保護しないファイルは、ユーザーに書き込み権限があればプッシュ制限をバイパスして直接変更できます。 セミコロン(';')で区切って複数のパターンを指定できます。 パターンの文法については <a href='%[1]s'>%[2]s</a> を参照してください。 例: <code>.drone.yml</code>, <code>/docs/**/*.txt</code>
settings.add_protected_branch=保護を有効にする
@ -2574,10 +2616,10 @@ release.tag_helper_existing=存在するタグです。
release.title=リリース タイトル
release.title_empty=タイトルは空にできません。
release.message=このリリースの説明
release.prerelease_desc=プレリリース
release.prerelease_desc=プレリリースとしてマーク
release.prerelease_helper=このリリースが本番使用に適さないことを示します。
release.cancel=キャンセル
release.publish=リリースを発行
release.publish=リリースを公開
release.save_draft=下書きを保存
release.edit_release=リリースを更新
release.delete_release=リリースを削除
@ -2594,7 +2636,7 @@ release.tag_already_exist=このタグ名は既に存在します。
release.downloads=ダウンロード
release.download_count=ダウンロード数: %s
release.add_tag_msg=リリースのタイトルと内容をタグのメッセージにする
release.add_tag=タグのみ作成
release.add_tag=タグ作成
release.releases_for=%s のリリース
release.tags_for=%s のタグ
@ -2689,15 +2731,15 @@ commits.renamed_from = %sから名前を変更
pulls.made_using_agit = Agit
pulls.agit_explanation = Agitによるワークフローを作成します。Agitでは、貢献者は変更をforkしたりブランチを作るのではなく、"git push"して提案します。
contributors.contribution_type.deletions = 削除
settings.units.add_more = さらに...
settings.wiki_globally_editable = にでもWikiの編集を許す
settings.units.add_more = さらに有効にする
settings.wiki_globally_editable = でもWikiを編集できる様にする
settings.confirmation_string = 確認
settings.wiki_rename_branch_main_notices_1 = この操作は 取り消し<strong>できません</strong> 。
stars = スター
n_tag_few = %s のタグ
settings.graphql_url = GraphQL URL
n_branch_one = %s のブランチ
settings.units.units = リポジトリ機能
settings.units.units = 機能設定
settings.wiki_rename_branch_main_notices_2 = これにより、%s のリポジトリ wiki の内部ブランチの名前が永久に変更されます。既存のチェックアウトを更新する必要があります。
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.enforce_on_admins = リポジトリ管理者にこのルールを適用する
@ -2747,6 +2789,43 @@ form.string_too_long = 指定された文字列は %d 文字より長いです
project = プロジェクト
subscribe.issue.guest.tooltip = このイシューを購読するにはサインインしてください。
subscribe.pull.guest.tooltip = このプルリクエストを購読するにはサインインしてください。
issues.author.tooltip.pr = このユーザーはこのプルリクエストの作成者です。
issues.author.tooltip.issue = このユーザーはこの問題の作成者です。
mirror_public_key = 公開SSHキー
mirror_use_ssh.text = SSH認証を使用する
mirror_use_ssh.helper = このオプションを選択すると、Forgejo は SSH 経由の Git でリポジトリをミラーリングし、キーペアを作成します。生成された公開キーが宛先リポジトリにプッシュできるように承認されていることを確認する必要があります。このオプションを選択した場合、パスワードベースの認証は使用できません。
comments.edit.already_changed = コメントの変更を保存できません。コンテンツは既に別のユーザーによって変更されているようです。変更が上書きされないように、ページを更新して再度編集してください
no_eol.tooltip = このファイルには末尾の行末文字が含まれていません。
issues.edit.already_changed = イシューの変更を保存できません。コンテンツは既に別のユーザーによって変更されているようです。変更が上書きされないように、ページを更新して再度編集してください
no_eol.text = EOLなし
pulls.edit.already_changed = プルリクエストの変更を保存できません。コンテンツは既に別のユーザーによって変更されているようです。変更が上書きされないように、ページを更新して再度編集してください
pulls.cmd_instruction_merge_warning = <b>警告:</b> このリポジトリでは「手動マージの自動検出」設定が有効になっていません。後でこのプル リクエストを手動でマージ済みとしてマークする必要があります。
n_release_one = %s リリース
n_release_few = %s リリース
milestones.filter_sort.name = 名前
mirror_use_ssh.not_available = SSH認証は利用できません。
mirror_denied_combination = 公開鍵とパスワードベースの認証を組み合わせて使用することはできません。
activity.navbar.pulse = 活動状況
activity.published_prerelease_label = プレリリース
activity.published_tag_label = タグ
settings.transfer_quota_exceeded = 新しい所有者 (%s) は割り当て量を超えています。リポジトリは転送されていません。
settings.pull_mirror_sync_quota_exceeded = 割り当て量を超過したため、変更はプルされません。
activity.commit = コミットアクティビティ
settings.federation_settings = フェデレーション設定
settings.federation_not_enabled = インスタンスでフェデレーションが有効になっていません。
settings.federation_apapiurl = このリポジトリのフェデレーション URL。これをコピーして、フォロー リポジトリの URL として別のリポジトリのフェデレーション設定に貼り付けます。
settings.federation_following_repos = フォローしているリポジトリの URL。空白なしで";"で区切られます。
settings.mirror_settings.push_mirror.copy_public_key = 公開鍵をコピー
release.invalid_external_url = 無効な外部URL: "%s"
release.type_attachment = 添付ファイル
release.asset_external_url = 外部URL
release.type_external_asset = 外部アセット
release.asset_name = アセット名
release.add_external_asset = 外部アセットを追加
issues.all_title = 全て
settings.protect_new_rule = 新しいブランチ保護ルールを作成する
settings.discord_icon_url.exceeds_max_length = アイコンのURLは 2048 文字以下にする必要があります
issues.new.assign_to_me = 自分に割り当て
[graphs]
component_loading = %s の読み込み中...
@ -2831,18 +2910,18 @@ 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.general_access=一般的なアクセス
teams.none_access_helper=「アクセスなし」オプションはプライベートリポジトリにのみ影響します
teams.general_access=カスタム権限
teams.general_access_helper=メンバーの権限は下記の権限テーブルで決定されます。
teams.read_access=読み取り
teams.read_access_helper=メンバーはチームリポジトリの閲覧とクローンが可能です。
teams.write_access=書き込み
teams.write_access_helper=メンバーはチームリポジトリの読み取りとプッシュが可能です。
teams.admin_access=管理者アクセス
teams.admin_access=管理者
teams.admin_access_helper=メンバーは、チームリポジトリへのプル、プッシュ、共同作業者の追加が可能です。
teams.no_desc=このチームには説明がありません。
teams.settings=設定
@ -2858,7 +2937,7 @@ teams.delete_team_desc=チームを削除すると、メンバーはこのリポ
teams.delete_team_success=チームを削除しました。
teams.read_permission_desc=このチームは<strong>読み取り</strong>アクセス権を持ちます: メンバーはチームリポジトリの閲覧とクローンが可能です。
teams.write_permission_desc=このチームは<strong>書き込み</strong>アクセス権を持ちます: メンバーはチームリポジトリの読み取りとプッシュが可能です。
teams.admin_permission_desc=このチームは<strong>管理者</strong>アクセス権を持ちます: メンバーはチームリポジトリの読み取り、プッシュ、共同作業者の追加が可能です。
teams.admin_permission_desc=このチームは<strong>管理者</strong>アクセス権が付与されます: メンバーはチームリポジトリの読み取り、プッシュ、共同作業者の追加が可能です。
teams.create_repo_permission_desc=さらに、このチームには<strong>リポジトリの作成</strong>権限が与えられています: メンバーは組織のリポジトリを新たに作成できます。
teams.repositories=チームのリポジトリ
teams.search_repo_placeholder=リポジトリを検索…
@ -2888,7 +2967,7 @@ dashboard=ダッシュボード
identity_access=アイデンティティとアクセス
users=ユーザーアカウント
organizations=組織
assets=コード アセット
assets=コードアセット
repositories=リポジトリ
hooks=Webhook
integrations=連携
@ -2937,14 +3016,14 @@ dashboard.archive_cleanup=古いリポジトリアーカイブの削除
dashboard.deleted_branches_cleanup=削除ブランチのクリーンアップ
dashboard.update_migration_poster_id=移行する投稿者IDの更新
dashboard.git_gc_repos=すべてのリポジトリでガベージコレクションを実行
dashboard.resync_all_sshkeys='.ssh/authorized_keys' ファイルをForgejo上のSSHキーで更新
dashboard.resync_all_sshprincipals='.ssh/authorized_principals' ファイルをForgejo上のSSHプリンシパルで更新
dashboard.resync_all_hooks=すべてのリポジトリの pre-receive, update, post-receive フックを更新する
dashboard.resync_all_sshkeys=Forgejo SSH キーを使用して".ssh/authorized_keys"ファイルを更新します。
dashboard.resync_all_sshprincipals=Forgejo SSH プリンシパルを使用して".ssh/authorized_principals"ファイルを更新します。
dashboard.resync_all_hooks=すべてのリポジトリの pre-receive, update, post-receive フックを更新する
dashboard.reinit_missing_repos=レコードが存在するが見当たらないすべてのGitリポジトリを再初期化する
dashboard.sync_external_users=外部ユーザーデータの同期
dashboard.cleanup_hook_task_table=hook_taskテーブルのクリーンアップ
dashboard.cleanup_packages=期限切れパッケージのクリーンアップ
dashboard.cleanup_actions=Actions期限切れのログとアーティファクトのクリーンアップ
dashboard.cleanup_actions=Actionsから期限切れのログとアーティファクトのクリーンアップする
dashboard.server_uptime=サーバーの稼働時間
dashboard.current_goroutine=現在のGoroutine数
dashboard.current_memory_usage=現在のメモリ使用量
@ -3001,7 +3080,7 @@ users.repos=リポジトリ
users.created=作成日
users.last_login=前回のサインイン
users.never_login=未サインイン
users.send_register_notify=ユーザーに登録通知を送る
users.send_register_notify=ユーザーに登録メールを送る
users.new_success=ユーザーアカウント "%s" を作成しました。
users.edit=編集
users.auth_source=認証ソース
@ -3012,21 +3091,21 @@ users.update_profile_success=ユーザーアカウントを更新しました。
users.edit_account=ユーザーアカウントの編集
users.max_repo_creation=リポジトリ数の上限
users.max_repo_creation_desc=( -1を設定するとデフォルトの制限が適用されます)
users.is_activated=ユーザーアカウントはアクティベート済み
users.prohibit_login=サインイン無効
users.is_activated=有効化されたアカウント
users.prohibit_login=アカウントが停止されました
users.is_admin=管理者
users.is_restricted=制限あり
users.allow_git_hook=Gitフックを作成可
users.is_restricted=制限付きアカウント
users.allow_git_hook=Gitフックを作成可
users.allow_git_hook_tooltip=Gitフックは、Forgejoを実行しているOSユーザーの権限で実行され、同じレベルのホストアクセス権を持つようになります。 その結果、この特別なGitフック権限を持つユーザーは、Forgejo上のすべてのリポジトリとForgejoで使用されているデータベースにアクセスし、変更を加えることができます。 したがって、Forgejoの管理者権限を取得することもできます。
users.allow_import_local=ローカルリポジトリをインポート可
users.allow_create_organization=組織を作成可
users.allow_import_local=ローカルリポジトリをインポート可
users.allow_create_organization=組織を作成可
users.update_profile=ユーザーアカウントを更新
users.delete_account=ユーザーアカウントを削除
users.cannot_delete_self=自分自身を削除することはできません
users.still_own_repo=このユーザーはまだ1つ以上のリポジトリを所有しています。 先にそれらのリポジトリを削除するか移転してください。
users.still_has_org=このユーザーは組織のメンバーになっています。 先に組織からこのユーザーを削除してください。
users.purge=ユーザーを
users.purge_help=強制的にユーザーとそのユーザーが所有していたリポジトリ、組織、パッケージを削除します。コメントもすべて削除します。
users.purge=ユーザーを
users.purge_help=強制的にユーザーとそのユーザーが所有していたリポジトリ、組織、パッケージを削除します。コメントとイシューもすべて削除します。
users.still_own_packages=このユーザーはまだ1つ以上のパッケージを所有しています。先にそれらのパッケージを削除してください。
users.deletion_success=ユーザーアカウントを削除しました。
users.reset_2fa=2要素認証をリセット
@ -3423,6 +3502,20 @@ self_check.database_collation_case_insensitive = データベースは %s とい
config_settings = 設定
config_summary = 概要
self_check.database_inconsistent_collation_columns = データベースは %s という collation を用いていますが、これらのカラムは別のcollationを用いています。これは想定外の問題を引き起こす可能性があります。
users.organization_creation.description = 新しい組織の作成を許可します。
users.restricted.description = このユーザーが共同作業者として追加されているリポジトリおよび組織とのやり取りのみを許可します。これにより、このインスタンス上のパブリックリポジトリへのアクセスが防止されます。
users.activated.description = メール認証の完了。アクティブ化されていないアカウントの所有者は、メール認証が完了するまでログインできません。
users.admin.description = このユーザーに、Web UI および API を通じて利用できるすべての管理機能へのフルアクセス権を付与します。
users.local_import.description = サーバーのローカルファイル システムからリポジトリをインポートできるようにします。これはセキュリティ上の問題になる可能性があります。
users.block.description = このユーザーが自分のアカウントを通じてこのサービスとやり取りすることをブロックし、サインインを禁止します。
emails.delete = メールアドレスを削除
emails.delete_desc = このメールアドレスを削除してもよろしいですか?
config.cache_test_succeeded = キャッシュ テストが成功しました。%s で応答が返されました。
config.cache_test_slow = キャッシュ テストは成功しましたが、応答が遅いです: %s。
emails.deletion_success = メールアドレスは削除されました。
emails.delete_primary_email_error = プライマリメールを削除することはできません。
config.app_slogan = インスタンスのスローガン
config.cache_test = テストキャッシュ
[action]
@ -3778,6 +3871,14 @@ runs.no_workflows.documentation = Forgejo Action の詳細については、<a t
variables.id_not_exist = idが%dの変数は存在しません。
runs.workflow = ワークフロー
runs.no_job_without_needs = ワークフローには、依存関係のないジョブが少なくとも 1 つ含まれている必要があります。
workflow.dispatch.run = ワークフローを実行
workflow.dispatch.success = ワークフローの実行が正常にリクエストされました。
workflow.dispatch.trigger_found = このワークフローには <c>workflow_dispatch</c> イベントトリガーがあります。
workflow.dispatch.use_from = ワークフローを使用する
workflow.dispatch.input_required = 入力 "%s" に値が必要です。
workflow.dispatch.invalid_input_type = 入力タイプ「%s」が無効です。
workflow.dispatch.warn_input_limit = 最初の %d 個の入力のみを表示します。
runs.no_job = ワークフローには少なくとも1つのジョブが含まれている必要があります
[projects]
type-1.display_name=個人プロジェクト
@ -3816,6 +3917,14 @@ no_results = 一致する結果が見つかりませんでした。
fuzzy_tooltip = 入力された語句に近いものも結果に含める
match = 一致
match_tooltip = 検索語句に厳密に一致するもののみ結果に含める
milestone_kind = マイルストーンを検索...
union_tooltip = 空白で区切られたキーワードのいずれかに一致する結果を含める
exact_tooltip = 検索語句と完全に一致する結果のみを含める
issue_kind = イシューを検索...
pull_kind = プルを検索...
exact = 完全一致
regexp_tooltip = 検索語句を正規表現として解釈する
regexp = 正規表現
[munits.data]
@ -3830,4 +3939,27 @@ b = B
[markup]
filepreview.lines = %[3]s の %[1]d 行目から %[2]d 行目
filepreview.line = %[2]s の %[1]d 行目
filepreview.truncated = プレビューは途中から省略されています
filepreview.truncated = プレビューは途中から省略されています
[repo.permissions]
actions.write = <b>書き込み:</b> 保留中の CI/CD パイプラインを手動でトリガー、再起動、キャンセル、または承認します。
ext_issues = 外部のイシュー追跡へのリンクにアクセスします。権限は外部で管理されます。
ext_wiki = 外部 Wiki へのリンクにアクセスします。権限は外部で管理されます。
projects.write = <b>書き込み:</b> プロジェクトと列を作成し、編集します。
packages.read = <b>読み取り:</b> リポジトリに割り当てられたパッケージを表示およびダウンロードします。
packages.write = <b>書き込み:</b> リポジトリに割り当てられたパッケージを公開および削除します。
code.read = <b>読み取り:</b> リポジトリのコードにアクセスしてクローンを作成します。
code.write = <b>書き込み:</b> リポジトリにプッシュし、ブランチとタグを作成します。
issues.read = <b>読み取り:</b> イシューとコメントを読んで作成します。
issues.write = <b>書き込み:</b> イシューを解決し、ラベル、マイルストーン、担当者、期限、依存関係などのメタデータを管理します。
pulls.read = <b>読み取り:</b> プルリクエストの読み取りと作成。
releases.read = <b>読み取り:</b> リリースを表示およびダウンロードします。
releases.write = <b>書き込み:</b> リリースとそのアセットを公開、編集、削除します。
pulls.write = <b>書き込み:</b> プルリクエストをクローズし、ラベル、マイルストーン、担当者、期限、依存関係などのメタデータを管理します。
wiki.read = <b>読み取り:</b> 統合された wiki とその履歴を読み取れます。
wiki.write = <b>書き込み:</b> 統合された Wiki 内のページを作成、更新、削除します。
projects.read = <b>読み取り:</b> リポジトリ プロジェクト ボードにアクセスします。
actions.read = <b>読み取り:</b> 統合された CI/CD パイプラインとそのログを表示します。
[translation_meta]
test = これはテスト文字列です。Forgejo UI には表示されませんが、テスト目的で使用されます。早く済ませるために"ok"と入力するか楽しかった出来事を入力して下さい。そうすれば、完了することができます :)

View file

@ -159,6 +159,20 @@ fuzzy_tooltip = Įtraukti rezultatus, kurie taip pat labai atitinka paieškos te
repo_kind = Ieškoti saugyklų...
code_search_unavailable = Kodų paieška šiuo metu nepasiekiama. Kreipkis į svetainės administratorių.
org_kind = Ieškoti organizacijų...
union = Bendrinis
code_search_by_git_grep = Dabartiniai kodo paieškos rezultatai pateikiami atliekant „git grep“. Rezultatai gali būti geresni, jei svetainės administratorius įjungs kodo indeksuotoją.
package_kind = Ieškoti paketų...
project_kind = Ieškoti projektų...
commit_kind = Ieškoti įsipareigojimų...
runner_kind = Ieškoti vykdyklių...
no_results = Nerasta atitinkamų rezultatų.
issue_kind = Ieškoti problemų...
branch_kind = Ieškoti šakų...
milestone_kind = Ieškoti gairių...
pull_kind = Ieškoti sujungimų...
keyword_search_unavailable = Ieškoti pagal raktažodį šiuo metu nepasiekiamas. Susisiekite su svetainės administratoriumi.
regexp = Reguliarusis reiškinys
regexp_tooltip = Interpretuoti paieškos terminą kaip reguliariąją reiškinį
[actions]
workflow.disable = Išjungti darbo eigą
@ -171,6 +185,9 @@ runs.empty_commit_message = (tuščias įsipareigojimo pranešimas)
submodule = Pomodulis
changed_filemode = %[1]s → %[2]s
symbolic_link = Virtualusis aplankas
directory = Katalogas
executable_file = Vykdomasis failas
normal_file = Įprastas failas
[projects]
deleted.display_name = Ištrintas projektas
@ -182,4 +199,82 @@ type-3.display_name = Organizacijos projektas
filepreview.truncated = Peržiūra buvo sutrumpinta
[mail]
reset_password.text = Jei tai buvote jūs, spustelėkite toliau esančią nuorodą, kad atkurtumėte savo paskyrą per <b>%s</b>:
reset_password.text = Jei tai buvote jūs, spustelėkite toliau esančią nuorodą, kad atkurtumėte savo paskyrą per <b>%s</b>:
[heatmap]
contributions_one = įnašas
contributions_few = įnašai
less = Mažiau
more = Daugiau
number_of_contributions_in_the_last_12_months = %s įnašų per pastaruosius 12 mėnesių
contributions_zero = Įnašų nėra
contributions_format = {contributions} {year} {month} {day}
[aria]
navbar = Naršymo juosta
footer = Puslapinė poraštė
footer.software = Apie šią programinę įrangą
footer.links = Nuorodos
[editor]
buttons.quote.tooltip = Cituoti tekstą
buttons.code.tooltip = Pridėti kodą
buttons.link.tooltip = Pridėti nuorodą
buttons.heading.tooltip = Pridėti antraštę
buttons.bold.tooltip = Pridėti pusjuodį tekstą
buttons.italic.tooltip = Pridėti kursyvinį tekstą
buttons.list.unordered.tooltip = Pridėti punktų sąrašą
buttons.list.ordered.tooltip = Pridėti numeruotą sąrašą
buttons.list.task.tooltip = Pridėti užduočių sąrašą
buttons.mention.tooltip = Minėti naudotoją arba komandą
buttons.ref.tooltip = Nurodyti į problemą arba sujungimo prašymą
buttons.switch_to_legacy.tooltip = Vietoj to naudoti senąjį rengyklę
buttons.enable_monospace_font = Įjungti vienspalvį šriftą
buttons.disable_monospace_font = Išjungti vienspalvį šriftą
buttons.indent.tooltip = Įdėti elementus vienu lygiu
buttons.unindent.tooltip = Išdėti elementus vienu lygiu
[error]
network_error = Tinklo klaida
server_internal = Vidinio serverio klaida
occurred = Įvyko klaida.
report_message = Jei manote, kad tai „Forgejo“ riktas, ieškokite problemų platformoje <a href="%s" target="_blank">„Codeberg“</a> arba, jei reikia, atidarykite naują problemą.
[startpage]
app_desc = Nesudėtinga, savarankiškai teikiama „Git“ paslauga
install = Lengva įdiegti
license = Atvirojo kodo
[install]
path = Kelias
err_admin_name_is_reserved = Administratoriaus naudotojo vardas netinkamas. Naudotojo vardas yra rezervuotas.
enable_update_checker = Įjungti naujinimų tikrintuvą
env_config_keys = Aplinkos konfigūracija
db_title = Duomenų bazės nustatymai
db_type = Duomenų bazės tipas
user = Naudotojo vardas
password = Slaptažodis
db_name = Duomenų bazės pavadinimas
db_schema = Schema
ssl_mode = SSL
host = Pagrindinis komputeris
general_title = Bendrieji nustatymai
email_title = El. pašto nustatymai
federated_avatar_lookup.description = Ieškokite pseudoportretų naudojant „Libravatar“.
db_schema_helper = Palikite tuščią, jei tai numatytoji duomenų bazė („public“).
err_empty_admin_password = Administratoriaus slaptažodis negali būti tuščias.
err_empty_admin_email = Administratoriaus el. paštas negali būti tuščias.
install = Diegimas
[explore]
go_to = Eiti į
code = Kodas
[auth]
remember_me = Prisiminti šį įrenginį
forgot_password_title = Pamirštas slaptažodis
forgot_password = Pamiršote slaptažodį?
[filter]
string.asc = A Ž
string.desc = Ž A

View file

@ -2323,7 +2323,7 @@ settings.protect_branch_name_pattern=Aizsargātā zara šablons
settings.protect_branch_name_pattern_desc=Aizsargāto atzaru nosaukumu šabloni. Šablonu pierakstu skatīt <a href="%s">dokumentācijā</a>. Piemēri: main, release/**
settings.protect_patterns=Šabloni
settings.protect_protected_file_patterns=Aizsargāto failu šablons (vairākus var norādīt atdalot ar semikolu ';'):
settings.protect_protected_file_patterns_desc=Aizsargātie faili, ko nevar mainīt, pat ja lietotājam ir tiesības veidot jaunus, labot vai dzēst failus šajā atzarā. Vairākus šablons ir iespējams norādīt atdalot tos ar semikolu (';'). Sīkāka informācija par šabloniem pieejama <a href='%s'>github.com/gobwas/glob</a> dokumentācijā. Piemēram, <code>.drone.yml</code>, <code>/docs/**/*.txt</code>.
settings.protect_protected_file_patterns_desc=Aizsargātie faili, ko nevar mainīt, pat ja lietotājam ir tiesības veidot jaunus, labot vai dzēst failus šajā atzarā. Vairākus šablons ir iespējams norādīt atdalot tos ar semikolu (';'). Sīkāka informācija par šabloniem pieejama <a href='%s'>%s</a> dokumentācijā. Piemēram, <code>.drone.yml</code>, <code>/docs/**/*.txt</code>.
settings.protect_unprotected_file_patterns=Neaizsargāto failu šablons (vairākus var norādīt atdalot ar semikolu ';'):
settings.protect_unprotected_file_patterns_desc=Neaizsargātie faili, ko iespējams mainīt apejot iesūtīšanas ierobežojumus, ja lietotājam ir tiesības iesūtīt izmaiņas šajā atzarā. Vairākus šablons ir iespējams norādīt atdalot tos ar semikolu (';'). Sīkāka informācija par šabloniem pieejama <a href='%[1]s'>%[2]s</a> dokumentācijā. Piemēram, <code>.drone.yml</code>, <code>/docs/**/*.txt</code>.
settings.add_protected_branch=Iespējot aizsargāšanu

View file

@ -23,4 +23,116 @@ language = Språk
notifications = Varslinger
create_new = Opprett…
user_profile_and_more = Profil og innstillinger…
signed_in_as = Logget inn som
signed_in_as = Logget inn som
confirm_delete_selected = Bekreft sletting av alle valgte elementer?
dashboard = Dashbord
download_logs = Last ned logger
copy_hash = Kopier hash
more_items = Flere elementer
passcode = Adgangskode
webauthn_insert_key = Skriv inn din sikkerhetsnøkkel
webauthn_use_twofa = Bruk tofaktorkode fra din mobil
organization = Organisasjon
mirror = Speil
new_mirror = Ny speiling
repository = Repositorium
new_project = Nytt prosjekt
new_project_column = Ny kolonne
webauthn_error = Klarte ikke lese sikkerhetsnøkkelen.
webauthn_unsupported_browser = Nettleseren din støtter ikke WebAuthn.
webauthn_error_unknown = En ukjent feil oppstod. Vennligst prøv igjen.
webauthn_error_insecure = WebAuhn støtter kun sikre forbindelser. For testing over HTTP kan du bruke verten "localhost" eller "127.0.0.1"
admin_panel = Nettsideadministrasjon
settings = Innstillinger
your_profile = Profil
your_starred = Stjernemerket
your_settings = Innstillinger
new_repo.title = Nytt repositorium
new_migrate.title = Ny migrasjon
new_org.title = Ny organisasjon
new_repo.link = Nytt repositorium
new_migrate.link = Ny migrasjon
new_org.link = Ny organisasjon
all = Alle
sources = Kilder
mirrors = Speilinger
activities = Aktiviteter
rss_feed = RSS feed
retry = Prøv igjen
rerun = Kjør på nytt
rerun_all = Kjør alle jobber på nytt
save = Lagre
cancel = Avbryt
forks = Forks
milestones = Milepæler
ok = OK
test = Test
loading = Laster inn…
error = Feil
go_back = Gå tilbake
never = Aldri
invalid_data = Ugyldig data: %v
unknown = Ukjent
pin = Pin
artifacts = Artefakter
archived = Arkivert
concept_system_global = Global
add = Legg til
add_all = Legg til alle
remove = Fjern
remove_all = Fjern alle
remove_label_str = Fjern element "%s"
edit = Rediger
view = Vis
enabled = Aktivert
disabled = Deaktivert
locked = Låst
copy = Kopier
copy_generic = Kopier til utklippstavlen
copy_url = Kopier URL
copy_content = Kopier innhold
copy_success = Kopiert!
copy_error = Kopiering mislyktes
copy_type_unsupported = Denne filtypen kan ikke kopieres
write = Skriv
preview = Forhåndsvis
concept_user_individual = Individuell
concept_code_repository = Repositorium
concept_user_organization = Organisasjon
show_timestamps = Vis tidsstempler
show_log_seconds = Vis sekunder
show_full_screen = Vis fullskjerm
name = Navn
value = Verdi
filter = Filter
filter.clear = Tøm filtre
filter.is_archived = Arkivert
filter.not_archived = Ikke arkivert
filter.is_mirror = Speilinger
filter.not_mirror = Ikke speilinger
filter.is_template = Maler
filter.not_template = Ikke maler
filter.public = Offentlig
filter.private = Privat
explore = Utforsk
active_stopwatch = Aktiv tidsregistrering
home = Hjem
help = Hjelp
logo = Logo
sign_in = Logg inn
sign_in_with_provider = Logg inn med %s
sign_in_or = eller
sign_out = Logg ut
sign_up = Opprett konto
confirm_delete_artifact = Er du sikker på at du vil slette artefakten "%s" ?
webauthn_sign_in = Trykk på knappen på sikkerhetsnøkkelen din. Dersom nøkkelen din ikke har en knapp, sett den inn på nytt.
[search]
search = Søk...
type_tooltip = Søketype
fuzzy = Fuzzy
union = Union
[auth]
verify = Bekreft
sign_up_button = Opprett konto nå.

File diff suppressed because it is too large Load diff

View file

@ -476,6 +476,7 @@ hint_register = Heb je een account nodig? <a href="%s"> Registreer nu.</a>
sign_up_button = Registreer nu.
back_to_sign_in = Terug naar aanmelden
sign_in_openid = Ga verder met OpenID
unauthorized_credentials = Je inloggegevens zijn foutief of vervallen. Probeer opnieuw of zie %s voor meer informatie
[mail]
view_it_on=Bekijk het op %s
@ -658,7 +659,7 @@ unable_verify_ssh_key = Kan de SSH-sleutel niet verifiëren, controleer deze voo
still_own_repo = Uw account is eigenaar van één of meer repositories, verwijder of draag deze eerst over.
admin_cannot_delete_self = U kan uzelf niet verwijderen als u een beheerder bent. Verwijder eerst uw beheerdersrechten.
username_error_no_dots = ` kan alleen alfanumerieke karakters ("0-9","a-z","A-Z"), streepje ("-") en liggend streepje ("_") bevatten. Niet-alfanumerieke karakters aan het begin of eind zijn verboden en aaneenvolgende niet alfanumerieke karakters zijn ook verboden.`
invalid_group_team_map_error = ` mapping is ongeldig: %s"
invalid_group_team_map_error = ` mapping is ongeldig: %s`
org_still_own_repo = Deze organisatie is eigenaar van één of meer repositories, verwijder of draag deze eerst over.
org_still_own_packages = Deze organisatie is eigenaar van één of meer pakketten, verwijder deze eerst.
unset_password = De inloggebruiker heeft het wachtwoord niet ingesteld.
@ -715,6 +716,7 @@ public_activity.visibility_hint.self_public = Uw activiteiten zijn zichtbaar voo
public_activity.visibility_hint.admin_public = Deze activiteit is zichtbaar voor iedereen, maar als beheerder kun je ook interacties in privéruimtes zien.
public_activity.visibility_hint.self_private = Uw activiteiten zijn alleen zichtbaar voor jou en de beheerders van de instantie. <a href="%s">Configureer</a>.
public_activity.visibility_hint.admin_private = Deze activiteit is zichtbaar voor u omdat u een beheerder bent, maar de gebruiker wil dat het privé blijft.
public_activity.visibility_hint.self_private_profile = Uw activiteit is alleen zichtbaar voor u en de beheerders van de instantie omdat uw profiel privé is. <a href="%s">Aanpassen</a>.
[settings]
@ -1038,7 +1040,7 @@ additional_repo_units_hint = Stel voor om extra repositorie units in te schakele
update_hints = Tips bijwerken
update_hints_success = Tips zijn bijgewerkt.
hints = Tips
additional_repo_units_hint_description = Toon een "Voeg meer eenheden toe..." knop voor repositories die niet alle beschikbare eenheden hebben ingeschakeld.
additional_repo_units_hint_description = Toon een “Meer activeren” hint voor repositories die niet alle beschikbare eenheden hebben ingeschakeld.
pronouns = Persoonlijke voornaamwoord
pronouns_custom = Aangepast
pronouns_unspecified = Ongedefinieerd
@ -1356,7 +1358,7 @@ commit.cherry-pick-content=Selecteer een branch om te cherry-pick op:
commitstatus.error=Fout
commitstatus.pending=In behandeling
ext_issues=Toegang tot externe issues
ext_issues=Externe issues
ext_issues.desc=Koppelen aan een externe kwestie-tracker.
projects=Projecten
@ -1503,9 +1505,9 @@ issues.context.quote_reply=Citeer antwoord
issues.context.reference_issue=Verwijs in een nieuwe issue
issues.context.edit=Bewerken
issues.context.delete=Verwijder
issues.close_comment_issue=Reageer en sluit
issues.close_comment_issue=Sluit met commentaar
issues.reopen_issue=Heropen
issues.reopen_comment_issue=Reageer en heropen
issues.reopen_comment_issue=Heropen met commentaar
issues.create_comment=Reageer
issues.closed_at=`heeft dit probleem gesloten <a id="%[1]s" href="#%[1]s">%[2]s</a>`
issues.reopened_at=`heropende dit probleem <a id="%[1]s" href="#%[1]s">%[2]s</a>`
@ -1811,7 +1813,7 @@ milestones.filter_sort.most_issues=Meeste problemen
milestones.filter_sort.least_issues=Minste problemen
ext_wiki=Toegang tot externe wiki
ext_wiki=Externe wiki
ext_wiki.desc=Koppelen aan een externe wiki.
wiki=Wiki
@ -2048,29 +2050,29 @@ settings.event_repository_desc=Repository gemaakt of verwijderd.
settings.event_header_issue=Issue gebeurtenissen
settings.event_issues=Issues
settings.event_issues_desc=Issue geopend, gesloten, heropend of bewerkt.
settings.event_issue_assign=issue toegekend
settings.event_issue_assign=Toewijzing
settings.event_issue_assign_desc=Issue toegewezen of niet-toegewezen.
settings.event_issue_label=Issue gelabeld
settings.event_issue_label_desc=Issue-labels bijgewerkt of verwijderd.
settings.event_issue_milestone=Issue gemilestoned
settings.event_issue_milestone_desc=Issue gemilestoned of gedemilestoned.
settings.event_issue_comment=Issue reactie
settings.event_issue_label=Labels
settings.event_issue_label_desc=Issue labels toegevoegd of verwijderd.
settings.event_issue_milestone=Mijlpalen
settings.event_issue_milestone_desc=Mijlpaal toegevoegd, verwijderd of gewijzigd.
settings.event_issue_comment=Opmerkingen
settings.event_issue_comment_desc=Issue reactie aangemaakt, bewerkt of verwijderd.
settings.event_header_pull_request=Pull request gebeurtenissen
settings.event_pull_request=Pull request
settings.event_pull_request=Wijziging
settings.event_pull_request_desc=Pull request geopend, gesloten, heropend of bewerkt.
settings.event_pull_request_assign=Pull request toegewezen
settings.event_pull_request_assign=Toewijzing
settings.event_pull_request_assign_desc=Pull request toegewezen of niet-toegewezen.
settings.event_pull_request_label=Pull request gelabeld
settings.event_pull_request_label_desc=Pull request labels bijgewerkt of gewist.
settings.event_pull_request_milestone=Pull Request gemilestoned
settings.event_pull_request_milestone_desc=Pull Reguest gemilestoned of gedemilestoned.
settings.event_pull_request_comment=Pull request reactie
settings.event_pull_request_label=Labels
settings.event_pull_request_label_desc=Pull request labels toegevoegd of verwijderd.
settings.event_pull_request_milestone=Mijlpalen
settings.event_pull_request_milestone_desc=Mijlpaal toegevoegd, verwijderd of gewijzigd.
settings.event_pull_request_comment=Opmerkingen
settings.event_pull_request_comment_desc=Pull request commentaar gemaakt, bewerkt of verwijderd.
settings.event_pull_request_review=Pull request gereviewed
settings.event_pull_request_review_desc=Pull request goedgekeurd, afgewezen of review commentaar.
settings.event_pull_request_sync=Pull request gesynchroniseerd
settings.event_pull_request_sync_desc=Pull request gesynchroniseerd.
settings.event_pull_request_review=Beoordelingen
settings.event_pull_request_review_desc=Pull request goedgekeurd, afgewezen of opmerkingen over beoordeling toegevoegd.
settings.event_pull_request_sync=Gesynchroniseerd
settings.event_pull_request_sync_desc=Branch automatisch bijgewerkt met doel branch.
settings.branch_filter=Branch filter
settings.active=Actief
settings.active_helper=Informatie over geactiveerde gebeurtenissen wordt naar deze webhook URL gestuurd.
@ -2280,7 +2282,7 @@ release.draft=Concept
release.prerelease=Voorlopige release
release.stable=Stabiel
release.compare=Vergelijk
release.edit=bewerken
release.edit=Bewerken
release.ahead.commits=<strong>%d</strong> commits
release.ahead.target=aan %s sinds deze release
release.source_code=Broncode
@ -2679,7 +2681,7 @@ settings.pulls.default_allow_edits_from_maintainers = Standaard bewerkingen van
settings.trust_model.collaboratorcommitter.desc = Geldige handtekeningen van samenwerkers van dit archief zullen "vertrouwd" gemarkeerd worden als ze overeenkomen met de committer. Anders zullen geldige handtekeningen gemarkeerd worden als "niet vertrouwd" als de handtekening overeenkomt met de committer en "niet gematcht" anders. Dit zal Forgejo dwingen om gemarkeerd te worden als de committer op ondertekende commits met de werkelijke committer gemarkeerd als Co-Authored-By: en Co-Committed-By: aanhanger in de commit. De standaard Forgejo sleutel moet overeenkomen met een gebruiker in de database.
settings.branch_filter_desc = Branch whitelist for push, branch creation and branch deletion events, specified as glob pattern. Indien leeg of <code>*</code>, worden gebeurtenissen voor alle takken gerapporteerd. Zie <a href="%[1]s">%[2]s</a> documentatie voor syntax. Voorbeelden: <code>master</code>, <code>{master,release*}</code>.
contributors.contribution_type.filter_label = Soort bijdrage:
settings.event_pull_request_review_request = Pull request beoordeling aangevraagd
settings.event_pull_request_review_request = Beoordelingsverzoeken
pulls.recently_pushed_new_branches = Je hebt op branch gepusht <a href="%[3]s"><strong>%[1]s</strong></a> %[2]s
settings.protect_enable_merge_desc = Iedereen met schrijftoegang mogen pull requests samenvoegen in deze branch.
settings.add_web_hook_desc = Integreer <a target="_blank" rel="noreferrer" href="%s">%s</a> in uw repository.
@ -2692,7 +2694,7 @@ settings.wiki_rename_branch_main_notices_2 = Dit zal de interne branch van %s's
settings.trust_model.collaborator.desc = Geldige handtekeningen van samenwerkers van deze repository worden als "vertrouwd" gemarkeerd - (of ze nu overeenkomen met de committer of niet). Anders worden geldige handtekeningen gemarkeerd als "niet-vertrouwd" als de handtekening overeenkomt met de committer en "niet-gematcht" als dat niet het geval is.
settings.trust_model.committer.desc = Geldige handtekeningen zullen alleen "vertrouwd" gemarkeerd worden als ze overeenkomen met de committer, anders zullen ze gemarkeerd worden als "ongeëvenaard". Dit dwingt Forgejo om de committer te zijn op ondertekende commits met de werkelijke committer gemarkeerd als Co-authored-by: en Co-committed-by: aanhanger in de commit. De standaard Forgejo sleutel moet overeenkomen met een gebruiker in de database.
settings.pulls.enable_autodetect_manual_merge = Handmatig samenvoegen met autodetectie inschakelen (Opmerking: In sommige speciale gevallen kunnen hierdoor verkeerde beoordelingen optreden)
settings.protect_protected_file_patterns_desc = Beschermde bestanden mogen niet direct gewijzigd worden, zelfs als de gebruiker rechten heeft om bestanden in deze branch toe te voegen, te bewerken of te verwijderen. Meerdere patronen kunnen gescheiden worden met een puntkomma (";"). Zie <a href="%s">github.com/gobwas/glob</a> documentatie voor patroon syntax. Voorbeelden: <code>.drone.yml</code>, <code>/docs/**/*.txt</code>.
settings.protect_protected_file_patterns_desc = Beschermde bestanden mogen niet direct gewijzigd worden, zelfs als de gebruiker rechten heeft om bestanden in deze branch toe te voegen, te bewerken of te verwijderen. Meerdere patronen kunnen gescheiden worden met een puntkomma (";"). Zie <a href="%s">%s</a> documentatie voor patroon syntax. Voorbeelden: <code>.drone.yml</code>, <code>/docs/**/*.txt</code>.
wiki.delete_page_notice_1 = Het verwijderen van de wikipagina "%s" kan niet ongedaan worden gemaakt. Doorgaan?
wiki.reserved_page = De wikipaginanaam "%s" is gereserveerd.
activity.navbar.pulse = Puls
@ -2707,13 +2709,13 @@ settings.mirror_settings.docs.pull_mirror_instructions = Raadpleeg voor het inst
settings.mirror_settings.docs.more_information_if_disabled = Hier vindt u meer informatie over duw- en pull mirrors:
settings.mirror_settings.docs.pulling_remote_title = Pullen uit een externe repository
settings.mirror_settings.pushed_repository = Gepusht repository
settings.units.units = Repository-eenheden
settings.units.units = Eenheden
settings.mirror_settings.push_mirror.remote_url = Git externe repository URL
settings.units.overview = Overzicht
settings.mirror_settings.push_mirror.edit_sync_time = Synchronisatie-interval van mirror bewerken
settings.push_mirror_sync_in_progress = Wijzigingen worden momenteel naar de externe %s gepusht.
settings.pull_mirror_sync_in_progress = Haalt momenteel wijzigingen op van de externe %s.
settings.units.add_more = Meer toevoegen...
settings.units.add_more = Meer activeren
settings.update_mirror_settings = Mirrorinstellingen bijwerken
settings.branches.switch_default_branch = Wissel standaard branch
settings.branches.add_new_rule = Voeg nieuwe regel toe
@ -2821,6 +2823,9 @@ mirror_public_key = Publieke SSH-sleutel
mirror_use_ssh.helper = Forgejo zal deze repository mirroren via Git over SSH en een sleutelpaar voor je aanmaken als je deze optie selecteert. Je moet ervoor zorgen dat de gegenereerde publieke sleutel geautoriseerd is om naar het doel-repository te pushen. Je kunt geen wachtwoord-gebaseerde autorisatie gebruiken als je dit selecteert.
settings.mirror_settings.push_mirror.none_ssh = Geen
mirror_use_ssh.not_available = SSH-authenticatie is niet beschikbaar.
issues.new.assign_to_me = Aan mij toewijzen
issues.all_title = Alles
settings.discord_icon_url.exceeds_max_length = Icoon-URL moet 2048 tekens of minder zijn
@ -3183,7 +3188,7 @@ auths.tip.github=Registreer een nieuwe OAuth toepassing op %s
auths.tip.gitlab=Registreer een nieuwe applicatie op https://gitlab.com/profile/applicaties
auths.tip.google_plus=Verkrijg OAuth2 client referenties van de Google API console op %s
auths.tip.openid_connect=Gebruik de OpenID Connect Discovery URL (<server>/.well-known/openid-configuration) om de eindpunten op te geven
auths.tip.yandex=`Maak een nieuwe applicatie aan op %s. Selecteer de volgende machtigingen van de "Yandex". assport API sectie: "Toegang tot e-mailadres", "Toegang tot avatar" en "Toegang tot gebruikersnaam, voornaam en achternaam, geslacht"`
auths.tip.yandex=Maak een nieuwe toepassing op %s. Selecteer de volgende rechten in het gedeelte “Yandex.Passport API”: “Toegang tot e-mailadres”, Toegang tot gebruikersavatar en Toegang tot gebruikersnaam, voor- en achternaam, geslacht
auths.edit=Authenticatiebron bewerken
auths.activated=Deze authenticatiebron is geactiveerd
auths.update_success=De authenticatie-bron is bijgewerkt.
@ -3404,10 +3409,10 @@ auths.oauth2_required_claim_value_helper = Stel deze waarde in om het aanmelden
users.remote = Externe
users.list_status_filter.not_2fa_enabled = 2FA uitgeschakeld
users.reserved = Gereserveerd
defaulthooks.desc = Webhooks doen automatisch HTTP POST verzoeken naar een server wanneer bepaalde Forgejo gebeurtenissen zich voordoen. Webhooks die hier gedefinieerd zijn, zijn standaard en worden gekopieerd naar alle nieuwe repositories.. Lees meer in de <a target="_blank" rel="noopener" href="%s">webhooks gids</a>.
defaulthooks.desc = Webhooks doen automatisch HTTP POST verzoeken naar een server wanneer bepaalde Forgejo gebeurtenissen zich voordoen. Webhooks defined here are defaults and will be copied into all new repositories. Read more in the <a target="_blank" rel="noopener" href="%s">webhooks guide</a>.
auths.verify_group_membership = Controleer het groepslidmaatschap in LDAP (laat het filter leeg om over te slaan)
dashboard.rebuild_issue_indexer = Herbouw issue indexer
systemhooks.desc = Webhooks doen automatisch HTTP POST verzoeken naar een server wanneer bepaalde Forgejo gebeurtenissen zich voordoen. Webhooks die hier gedefinieerd zijn, werken op alle repositories op het systeem, dus houd rekening met mogelijke gevolgen voor de prestaties. Lees meer in de <a target="_blank" rel="noopener" href="%s">webhooks gids</a>.
systemhooks.desc = Webhooks doen automatisch HTTP POST verzoeken naar een server wanneer bepaalde Forgejo gebeurtenissen zich voordoen. Webhooks die hier gedefinieerd zijn, werken op alle repositories op het systeem, dus houd rekening met mogelijke gevolgen voor de prestaties. Lees meer in de <a target="_blank" rel="noopener" href="%s">webhooks guide</a>.
hooks = Webhooks
integrations = Integraties
dashboard.new_version_hint = Forgejo %s is nu beschikbaar, u gebruikt versie %s. Zie <a target="_blank" rel="noreferrer" href="%s">de blog</a> voor meer details.
@ -3455,7 +3460,7 @@ auths.oauth2_icon_url = Pictogram URL
auths.pam_email_domain = PAM e-maildomein (optioneel)
auths.tip.gitea = Registreer een nieuwe OAuth2-toepassing. De handleiding is te vinden op %s
auths.tip.discord = Registreer een nieuwe toepassing op %s
auths.tip.bitbucket = Registreer een nieuwe OAuth consumer op %s
auths.tip.bitbucket = Registreer een nieuwe OAuth consumer op %s en voeg de rechten “Account” - “Read” toe
auths.tips.oauth2.general.tip = Bij het registreren van een nieuwe OAuth2-authenticatie moet de callback/redirect URL zijn:
config.ssh_domain = SSH-server domein
auths.login_source_of_type_exist = Er bestaat al een authenticatiebron van dit type.
@ -3862,7 +3867,7 @@ runs.actors_no_select = Alle acteurs
runs.status_no_select = Alle statussen
runs.no_results = Geen resultaten gevonden.
runs.no_workflows = Er zijn nog geen workflows.
unit.desc = Beheer geïntegreerde CI/CD-pijplijnen met Forgejo Actions
unit.desc = Beheer geïntegreerde CI/CD-pijplijnen met Forgejo Actions.
runs.no_workflows.documentation = Voor meer informatie over Forgejo acties, zie <a target="_blank" rel="noopener noreferrer" href="%s">de documentatie</a>.
workflow.disable_success = Workflow "%s" is succesvol uitgeschakeld.
variables.none = Er zijn nog geen variabelen.
@ -3942,6 +3947,8 @@ pull_kind = Zoek pulls...
union = Trefwoorden
union_tooltip = Neem resultaten op die overeenkomen met een van de trefwoorden gescheiden door spaties
milestone_kind = Zoek mijlpalen...
regexp_tooltip = Interpreteer de zoekterm als een reguliere expressie
regexp = RegExp
[munits.data]
b = B
@ -3959,4 +3966,24 @@ filepreview.truncated = Voorbeeld is ingekort
[translation_meta]
test = Oké
test = Oké
[repo.permissions]
code.write = <b>Schrijven:</b> Push naar de repositorie, maak branches en tags.
code.read = <b>Lezen:</b> Toegang en clone de code van de repository.
issues.read = <b>Lezen:</b> Lees en maak issues en commentaren.
pulls.read = <b>Lezen:</b> Lezen en pull requests maken.
releases.read = <b>Lezen:</b> Bekijk en download releases.
ext_issues = Toegang tot de link naar een externe issue tracker. De rechten worden extern beheerd.
ext_wiki = Toegang tot de link naar een externe wiki. De rechten worden extern beheerd.
actions.write = <b>Write:</b> Handmatig starten, herstarten, annuleren of goedkeuren van hangende CI/CD-pijplijnen.
pulls.write = <b>Schrijven:</b> Sluit pull requests af en beheer metadata zoals labels, mijlpalen, verantwoordelijken, vervaldatums en afhankelijkheden.
releases.write = <b>Schrijven:</b> Publiceren, bewerken en verwijderen van releases en hun assets.
wiki.read = <b>Lezen:</b> Lees de geïntegreerde wiki en zijn geschiedenis.
wiki.write = <b>Schrijven:</b> Pagina's maken, bijwerken en verwijderen in de geïntegreerde wiki.
projects.read = <b>Lezen:</b> Toegang tot projectboards van repository's.
projects.write = <b>Schrijven:</b> Projecten en kolommen maken en bewerken.
packages.read = <b>Lezen:</b> Bekijk en download pakketten die aan de repository is toegewezen.
packages.write = <b>Schrijven:</b> Publiceer en verwijder pakketten die aan de repository is toegewezen.
actions.read = <b>Lezen:</b> Bekijk geïntegreerde CI/CD-pijplijnen en hun logboeken.
issues.write = <b>Schrijven:</b> Sluit issues af en beheer metadata zoals labels, mijlpalen, verantwoordelijken, vervaldatums en afhankelijkheden.

View file

@ -552,6 +552,7 @@ removed_security_key.subject = Klucz bezpieczeństwa został usunięty
removed_security_key.text_1 = Klucz bezpieczeństwa "%[1]s" został właśnie usunięty z twojego konta.
totp_enrolled.text_1.has_webauthn = Właśnie włączyłeś TOTP dla swojego konta. Oznacza to, że dla wszystkich przyszłych logowań do konta możesz użyć TOTP jako metody 2FA lub użyć dowolnego klucza bezpieczeństwa.
team_invite.text_2 = Kliknij poniższy link, aby dołączyć do zespołu:
issue.action.merge = połączone
[modal]
@ -685,7 +686,7 @@ avatar=Awatar
ssh_gpg_keys=Klucze SSH / GPG
social=Konta społecznościowe
applications=Aplikacje
orgs=Zarządzaj organizacjami
orgs=Organizacje
repos=Repozytoria
delete=Usuń konto
twofa=Autoryzacja dwuetapowa
@ -698,7 +699,7 @@ password_username_disabled=Użytkownicy nielokalni nie mogą zmieniać swoich na
full_name=Imię i nazwisko
website=Strona
location=Lokalizacja
update_theme=Zaktualizuj motyw
update_theme=Zmień motyw
update_profile=Zaktualizuj profil
update_language_success=Język został zaktualizowany.
update_profile_success=Twój profil został zaktualizowany.
@ -729,15 +730,15 @@ password_change_disabled=Konta niebędące lokalnymi nie mogą zmienić swojego
emails=Adresy e-mail
manage_emails=Zarządzaj adresami e-mail
manage_themes=Wybierz motyw domyślny
manage_openid=Zarządzanie adresami OpenID
manage_themes=Domyślny motyw
manage_openid=Adresy OpenID
theme_desc=Będzie to domyślny motyw na całej stronie.
primary=Podstawowy
activated=Aktywowany
requires_activation=Wymaga aktywacji
primary_email=Ustaw jako podstawowy
activate_email=Wyślij aktywację
activations_pending=Aktywacje oczekujące
activate_email=Wyślij email aktywacyjny
activations_pending=Oczekujące aktywacje
delete_email=Usuń
email_deletion=Usuń adres email
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ć?
@ -747,7 +748,7 @@ theme_update_error=Wybrany motyw nie istnieje.
openid_deletion=Usuń adres OpenID
openid_deletion_desc=Usunięcie tego adresu OpenID z Twojego konta uniemożliwi Ci logowanie się za jego pomocą. Kontynuować?
openid_deletion_success=Adres OpenID został usunięty.
add_new_email=Dodaj nowy e-mail
add_new_email=Dodaj e-mail
add_new_openid=Dodaj nowy URI OpenID
add_email=Dodaj adres e-mail
add_openid=Dodaj OpenID URI
@ -760,13 +761,13 @@ openid_desc=OpenID pozwala na delegowanie uwierzytelniania do zewnętrznego oper
manage_ssh_keys=Zarządzaj kluczami SSH
manage_gpg_keys=Zarządzaj kluczami GPG
add_key=Dodaj klucz
ssh_desc=Te publiczne klucze SSH są powiązane z Twoim kontem. Odpowiadające im klucze prywatne umożliwiają pełny dostęp do Twoich repozytoriów.
gpg_desc=Te publiczne klucze GPG są powiązane z Twoim kontem. Dbaj o bezpieczeństwo kluczy prywatnych, gdyż pozwalają one na weryfikację commitów.
ssh_desc=Te publiczne klucze SSH są powiązane z Twoim kontem. Odpowiadające im klucze prywatne umożliwiają pełny dostęp do Twoich repozytoriów. Klucze SSH, które zostały zweryfikowane mogą zostać użyte do weryfikacji commitów podpisanych kluczem SSH.
gpg_desc=Te publiczne klucze GPG są powiązane z Twoim kontem i będą używane do weryfikacji twoich commitów. Dbaj o bezpieczeństwo kluczy prywatnych, gdyż pozwalają one na podpisywanie commitów.
ssh_helper=<strong>Potrzebujesz pomocy?</strong> Sprawdź na GitHubie przewodnik <a href="%s">generowania kluczy SSH</a> lub rozwiązywanie <a href="%s">typowych problemów z SSH</a>.
gpg_helper=<strong>Potrzebujesz pomocy?</strong> Przeczytaj na GitHubie poradnik <a href="%s">na temat GPG</a>.
add_new_key=Dodaj klucz SSH
add_new_gpg_key=Dodaj klucz GPG
key_content_gpg_placeholder=Zaczyna się od '-----BEGIN PGP PUBLICZNEJ BLOKI KLUCZOWEJ PGP---'
key_content_gpg_placeholder=Zaczyna się od "-----BEGIN PGP PUBLIC KEY BLOCK-----"
ssh_key_been_used=Ten klucz SSH został już dodany do tego serwera.
ssh_key_name_used=Klucz SSH z tą nazwą został już dodany do Twojego konta.
ssh_principal_been_used=Ten klucz SSH został już dodany do tego serwera.
@ -783,7 +784,7 @@ gpg_token=Token
gpg_token_help=Możesz wygenerować podpis za pomocą:
gpg_token_code=echo "%s" | gpg -a --default-key %s --detach-sig
gpg_token_signature=Wzmocniony podpis GPG
key_signature_gpg_placeholder=Zaczyna się od '-----BEGIN PGP SIGNATURE-----'
key_signature_gpg_placeholder=Zaczyna się od "-----BEGIN PGP SIGNATURE-----"
ssh_key_verified=Zweryfikowany klucz
ssh_key_verified_long=Klucz został zweryfikowany tokenem i może być użyty do weryfikacji zmian pasujących do wszystkich aktywowanych adresów e-mail tego użytkownika.
ssh_key_verify=Weryfikuj
@ -791,7 +792,7 @@ ssh_token_required=Musisz podać podpis poniższego tokenu
ssh_token=Token
ssh_token_help=Możesz wygenerować podpis używając:
ssh_token_signature=Wzmocniony podpis SSH
key_signature_ssh_placeholder=Zaczyna się od '-----BEGIN SSH SIGNATURE-----'
key_signature_ssh_placeholder=Zaczyna się od "-----BEGIN SSH SIGNATURE-----"
subkeys=Podklucze
key_id=ID klucza
key_name=Nazwa klucza
@ -821,10 +822,10 @@ ssh_externally_managed=Ten klucz SSH jest zarządzany zewnętrznie dla tego uży
manage_social=Zarządzaj powiązanymi kontami społecznościowymi
unbind=Rozłącz
manage_access_token=Zarządzaj tokenami dostępu
manage_access_token=Tokeny dostępu
generate_new_token=Wygeneruj nowy token
tokens_desc=Te tokeny dostępu udzielają dostępu do Twojego konta za pomocą API Forgejo.
token_name=Nazwa tokena
token_name=Nazwa tokenu
generate_token=Wygeneruj token
generate_token_success=Twój nowy token został wygenerowany. Skopiuj go teraz, gdyż nie zostanie ujawniony ponownie.
generate_token_name_duplicate=<strong>%s</strong> istnieje już jako nazwa aplikacji. Użyj nowej.
@ -854,15 +855,15 @@ oauth2_application_create_description=Aplikacje OAuth2 umożliwiają Twojej apli
authorized_oauth2_applications=Autoryzowane aplikacje OAuth2
revoke_key=Odwołaj
revoke_oauth2_grant=Odwołaj dostęp
revoke_oauth2_grant=Zabierz dostęp
revoke_oauth2_grant_description=Odwołanie dostępu dla tej aplikacji uniemożliwi jej korzystanie z Twoich danych. Czy jesteś pewny(-a)?
twofa_desc=Weryfikacja dwuskładnikowa zwiększa bezpieczeństwo Twojego konta.
twofa_is_enrolled=Twoje konto ma obecnie <strong>włączoną</strong> autoryzację dwuetapową.
twofa_not_enrolled=Twoje konto obecnie nie ma włączonej autoryzacji dwuetapowej.
twofa_disable=Wyłącz weryfikację dwuetapową
twofa_scratch_token_regenerate=Wygeneruj ponownie kod jednorazowy
twofa_enroll=Włącz weryfikację dwuskładnikową
twofa_scratch_token_regenerate=Ponownie wygeneruj jednorazowy kod odzyskiwania
twofa_enroll=Włącz weryfikację dwuetapową
twofa_disable_note=W każdej chwili możesz wyłączyć weryfikację dwuskładnikową.
twofa_disable_desc=Wyłączenie weryfikacji dwuetapowej sprawi, że Twoje konto będzie mniej bezpieczne. Kontynuować?
regenerate_scratch_token_desc=Jeśli zgubiłeś(-aś) lub zużyłeś(-aś) swój kod jednorazowy, możesz go wygenerować ponownie tutaj.
@ -878,7 +879,7 @@ webauthn_register_key=Dodaj klucz bezpieczeństwa
webauthn_delete_key=Usuń klucz bezpieczeństwa
webauthn_delete_key_desc=Jeżeli usuniesz klucz bezpieczeństwa, utracisz możliwość zalogowania się z jego użyciem. Kontynuować?
manage_account_links=Zarządzaj powiązanymi kontami
manage_account_links=Powiązane konta
manage_account_links_desc=Te konta zewnętrzne są powiązane z Twoim kontem Forgejo.
account_links_not_available=Obecnie nie ma żadnych zewnętrznych kont powiązanych z tym kontem Forgejo.
link_account=Powiąż konto
@ -893,7 +894,7 @@ delete_account=Usuń swoje konto
delete_prompt=Ta operacja permanentnie usunie Twoje konto użytkownika i jest <strong>NIEODWRACALNA</strong>.
delete_with_all_comments=Twoje konto jest młodsze niż %s. Aby uniknąć fałszywych komentarzy, wszystkie komentarze zgłoszenia/PR zostaną z nim usunięte.
confirm_delete_account=Potwierdź usunięcie
delete_account_title=Usuń swoje konto
delete_account_title=Usuń konto użytkownika
delete_account_desc=Czy na pewno chcesz permanentnie usunąć to konto użytkownika?
email_notifications.enable=Włącz powiadomienia e-mail
@ -932,7 +933,7 @@ template_description=Szablony repozytoriów pozwalają użytkownikom generować
visibility=Widoczność
visibility_description=Tylko właściciel lub członkowie organizacji, jeśli mają odpowiednie uprawnienia, będą mogli to zobaczyć.
visibility_helper_forced=Administrator strony wymaga, aby nowe repozytoria były prywatne.
visibility_fork_helper=(Zmiana tej wartości wpłynie na wszystkie forki.)
visibility_fork_helper=(Zmiana tej wartości wpłynie na widoczność wszystkich forków.)
clone_helper=Potrzebujesz pomocy z klonowaniem? Odwiedź <a target="_blank" rel="noopener noreferrer" href="%s">pomoc</a>.
fork_repo=Forkuj repozytorium
fork_from=Forkuj z
@ -942,13 +943,13 @@ clone_in_vsc=Klonuj w VS Code
download_zip=Pobierz ZIP
download_tar=Pobierz TAR.GZ
download_bundle=Pobierz BUNDLE
generate_repo=Generuj repozytorium
generate_from=Generuj z
generate_repo=Wygeneruj repozytorium
generate_from=Wygeneruj z
repo_desc=Opis
repo_desc_helper=Wprowadź krótki opis (opcjonalnie)
repo_lang=Język
repo_gitignore_helper=Wybierz szablony pliku .gitignore.
issue_labels=Etykiety zgłoszenia
issue_labels=Etykiety
issue_labels_helper=Wybierz zestaw etykiet zgłoszeń
license=Licencja
license_helper=Wybierz plik licencji
@ -959,14 +960,14 @@ readme_helper_desc=To jest miejsce, w którym możesz napisać pełny opis swoje
auto_init=Inicjalizuj repozytorium (dodaje .gitignore, licencję i README)
trust_model_helper_default=Domyślnie: Użyj domyślnego modelu zaufania dla tej instalacji
create_repo=Utwórz repozytorium
default_branch=Domyślna gałąź
default_branch=Domyślny branch
default_branch_helper=Domyślny branch jest podstawowym branch'em dla pull requestów i commit'ów kodu.
mirror_prune=Wyczyść
mirror_prune_desc=Usuń przestarzałe odwołania do zdalnych śledzeń
mirror_interval_invalid=Interwał lustrzanej kopii jest niepoprawny.
mirror_address=Sklonuj z adresu URL
mirror_lfs=Duże przechowywanie plików (LFS)
mirror_lfs_endpoint=Punkt końcowy LFS
mirror_lfs_endpoint=Endpoint LFS
mirror_lfs_endpoint_desc=Synchronizacja spróbuje użyć adresu URL klonowania, aby <a target="_blank" rel="noopener noreferrer" href="%s">określić serwer LFS</a>. Możesz również określić niestandardowy punkt końcowy, jeśli dane repozytorium LFS są przechowywane gdzieś indziej.
mirror_last_synced=Ostatnio zsynchronizowano
mirror_password_placeholder=(Nie zmieniono)
@ -1912,8 +1913,8 @@ settings.protect_whitelist_teams=Zespoły dopuszczone do pushowania
settings.protect_whitelist_search_teams=Szukaj zespołów…
settings.protect_merge_whitelist_committers=Włącz dopuszczenie scalania
settings.protect_merge_whitelist_committers_desc=Zezwól jedynie dopuszczonym użytkownikom lub zespołom na scalanie Pull Requestów w tej gałęzi.
settings.protect_merge_whitelist_users=Użytkownicy dopuszczeni do scalania:
settings.protect_merge_whitelist_teams=Zespoły dopuszczone do scalania:
settings.protect_merge_whitelist_users=Użytkownicy dopuszczeni do scalania
settings.protect_merge_whitelist_teams=Zespoły dopuszczone do scalania
settings.protect_check_status_contexts=Włącz kontrolę stanu
settings.protect_check_status_contexts_desc=Wymagaj powodzenia kontroli stanów przed scalaniem. Wybierz które kontrole stanów muszą zostać ukończone pomyślnie, zanim gałęzie będą mogły zostać scalone z gałęzią, która pokrywa się z tą zasadą. Kiedy włączone, commity muszą być najpierw wypchnięte do innej gałęzi, a następnie scalone lub wypchnięte bezpośrednio do gałęzi, która pokrywa się z tą zasadą po pomyślnej kontroli stanów. Jeżeli nie zostaną wybrane konteksty, ostatni commit musi zakończyć się powodzeniem niezależnie od kontekstu.
settings.protect_check_status_contexts_list=Kontrole stanów w poprzednim tygodniu dla tego repozytorium
@ -2866,4 +2867,5 @@ exact = Dokładnie
exact_tooltip = Uwzględniaj tylko wyniki pasujące do wyszukiwanego hasła
issue_kind = Wyszukaj problemy...
pull_kind = Wyszukaj pull requesty...
union = Unia
union = Unia
regexp = RegExp

File diff suppressed because it is too large Load diff

View file

@ -476,6 +476,7 @@ hint_register = Precisa de uma conta? <a href="%s">Faça uma inscrição agora.<
sign_up_button = Faça uma inscrição agora.
back_to_sign_in = Voltar ao iniciar a sessão
sign_in_openid = Prosseguir com OpenID
unauthorized_credentials = As credenciais estão erradas ou expiraram. Tente o comando de novo ou veja %s para mais informação
[mail]
view_it_on=Ver em %s
@ -715,6 +716,7 @@ public_activity.visibility_hint.self_public = O seu trabalho está visível para
public_activity.visibility_hint.admin_public = Este trabalho está visível para todos, mas como administrador/a pode também ver o que consta em espaços privados.
public_activity.visibility_hint.self_private = O seu trabalho apenas está visível para si e para os administradores da instância. <a href="%s">Configurar</a>.
public_activity.visibility_hint.admin_private = Este trabalho está visível para si porque é um/a administrador/a, mas o/a utilizador/a quer permanecer privado/a.
public_activity.visibility_hint.self_private_profile = O seu trabalho está visível somente para si e para os administradores da instância porque o seu perfil é privado. <a href="%s">Configure</a>.
[settings]
profile=Perfil
@ -1037,7 +1039,7 @@ hints = Sugestões
blocked_users = Utilizadores bloqueados
blocked_since = Bloqueado desde %s
user_block_success = O utilizador foi bloqueado com sucesso.
additional_repo_units_hint_description = Mostrar um botão "Adicionar mais unidades..." para repositórios que não têm todas as unidades disponíveis habilitadas.
additional_repo_units_hint_description = Mostrar uma sugestão "Habilitar mais" para repositórios que não têm todas as unidades disponíveis habilitadas.
update_hints_success = As sugestões foram modificadas.
blocked_users_none = Não há utilizadores bloqueados.
user_unblock_success = O utilizador foi desbloqueado com sucesso.
@ -1426,7 +1428,7 @@ commitstatus.failure=Falha
commitstatus.pending=Pendente
commitstatus.success=Sucesso
ext_issues=Acesso a questões externas
ext_issues=Questões externas
ext_issues.desc=Ligação para um rastreador de questões externo.
projects=Planeamentos
@ -1607,9 +1609,9 @@ issues.no_content=Nenhuma descrição fornecida.
issues.close=Encerrar questão
issues.comment_pull_merged_at=cometimento %[1]s integrado em %[2]s %[3]s
issues.comment_manually_pull_merged_at=cometimento %[1]s integrado manualmente em %[2]s %[3]s
issues.close_comment_issue=Comentar e fechar
issues.close_comment_issue=Fechar com comentário
issues.reopen_issue=Reabrir
issues.reopen_comment_issue=Comentar e reabrir
issues.reopen_comment_issue=Reabrir com comentário
issues.create_comment=Comentar
issues.closed_at=`encerrou esta questão <a id="%[1]s" href="#%[1]s">%[2]s</a>`
issues.reopened_at=`reabriu esta questão <a id="%[1]s" href="#%[1]s">%[2]s</a>`
@ -1999,7 +2001,7 @@ signing.wont_sign.commitssigned=A integração não irá ser assinada, uma vez q
signing.wont_sign.approved=A integração não irá ser assinada, uma vez que o pedido de integração não foi assinado.
signing.wont_sign.not_signed_in=Não tem a sessão iniciada.
ext_wiki=Acesso a wiki externo
ext_wiki=Wiki externo
ext_wiki.desc=Ligação para um wiki externo.
wiki=Wiki
@ -2329,32 +2331,32 @@ settings.event_push_desc=Envio do Git para um repositório.
settings.event_repository=Repositório
settings.event_repository_desc=Repositório criado ou eliminado.
settings.event_header_issue=Eventos da questão
settings.event_issues=Questões
settings.event_issues=Modificação
settings.event_issues_desc=Questão aberta, fechada, reaberta ou editada.
settings.event_issue_assign=Questão atribuída
settings.event_issue_assign=Atribuição
settings.event_issue_assign_desc=Encarregado atribuído ou retirado à questão.
settings.event_issue_label=Questão com rótulo
settings.event_issue_label_desc=Rótulos modificados ou retirados às questões.
settings.event_issue_milestone=Questão com etapa atribuída
settings.event_issue_milestone_desc=Etapa atribuída ou retirada à questão.
settings.event_issue_comment=Comentário da questão
settings.event_issue_label=Rótulos
settings.event_issue_label_desc=Rótulos adicionados ou retirados às questões.
settings.event_issue_milestone=Etapas
settings.event_issue_milestone_desc=Etapa atribuída, removida ou modificada.
settings.event_issue_comment=Comentários
settings.event_issue_comment_desc=Comentário da questão criado, editado ou eliminado.
settings.event_header_pull_request=Eventos de pedidos de integração
settings.event_pull_request=Pedido de integração
settings.event_pull_request=Modificação
settings.event_pull_request_desc=Pedido de integração aberto, fechado, reaberto ou editado.
settings.event_pull_request_assign=Encarregado atribuído ao pedido de integração
settings.event_pull_request_assign=Atribuição
settings.event_pull_request_assign_desc=Encarregado atribuído ou retirado ao pedido de integração.
settings.event_pull_request_label=Rótulo atribuído ao pedido de integração
settings.event_pull_request_label_desc=Rótulos modificados ou retirados aos pedidos de integração.
settings.event_pull_request_milestone=Etapa atribuída ao pedido de integração
settings.event_pull_request_milestone_desc=Etapa atribuída ou retirada ao pedido de integração.
settings.event_pull_request_comment=Comentário do pedido de integração
settings.event_pull_request_label=Rótulos
settings.event_pull_request_label_desc=Rótulos adicionados ou retirados aos pedidos de integração.
settings.event_pull_request_milestone=Etapas
settings.event_pull_request_milestone_desc=Etapas adicionadas, removidas ou modificadas.
settings.event_pull_request_comment=Comentários
settings.event_pull_request_comment_desc=Comentário do pedido de integração criado, editado ou eliminado.
settings.event_pull_request_review=Pedido de integração revisto
settings.event_pull_request_review=Revisões
settings.event_pull_request_review_desc=Pedido de integração aprovado, rejeitado ou comentado na revisão.
settings.event_pull_request_sync=Pedido de integração sincronizado
settings.event_pull_request_sync_desc=Pedido de integração sincronizado.
settings.event_pull_request_review_request=Solicitada a revisão do pedido de integração
settings.event_pull_request_sync=Sincronizado
settings.event_pull_request_sync_desc=Ramo sincronizado automaticamente com o ramo de destino.
settings.event_pull_request_review_request=Pedidos de revisão
settings.event_pull_request_review_request_desc=A revisão do pedido de integração foi solicitada ou a solicitação de revisão foi removida.
settings.event_pull_request_approvals=Aprovações do pedido de integração
settings.event_pull_request_merge=Integração constante no pedido
@ -2458,7 +2460,7 @@ settings.protect_branch_name_pattern=Padrão do nome do ramo protegido
settings.protect_branch_name_pattern_desc=Padrões de nomes de ramos protegidos. Consulte <a href="%s">a documentação</a> para ver a sintaxe dos padrões. Exemplos: main, release/**
settings.protect_patterns=Padrões
settings.protect_protected_file_patterns=Padrões de ficheiros protegidos (separados com ponto e vírgula ";")
settings.protect_protected_file_patterns_desc=Ficheiros protegidos não podem ser modificados imediatamente, mesmo que o utilizador tenha direitos para adicionar, editar ou eliminar ficheiros neste ramo. Múltiplos padrões podem ser separados com ponto e vírgula (";"). Veja a documentação em <a href="%s">github.com/gobwas/glob</a> para ver a sintaxe. Exemplos: <code>.drone.yml</code>, <code>/docs/**/*.txt</code>.
settings.protect_protected_file_patterns_desc=Ficheiros protegidos não podem ser modificados imediatamente, mesmo que o utilizador tenha direitos para adicionar, editar ou eliminar ficheiros neste ramo. Múltiplos padrões podem ser separados com ponto e vírgula (";"). Veja a documentação em <a href="%s">%s</a> para ver a sintaxe. Exemplos: <code>.drone.yml</code>, <code>/docs/**/*.txt</code>.
settings.protect_unprotected_file_patterns=Padrões de ficheiros desprotegidos (separados com ponto e vírgula ";")
settings.protect_unprotected_file_patterns_desc=Ficheiros desprotegidos que podem ser modificados imediatamente se o utilizador tiver direitos de escrita, contornando a restrição no envio. Padrões múltiplos podem ser separados com ponto e vírgula (";"). Veja a documentação em <a href="%[1]s">%[2]s</a> para ver a sintaxe. Exemplos: <code>.drone.yml</code>, <code>/docs/**/*.txt</code>.
settings.add_protected_branch=Habilitar salvaguarda
@ -2612,7 +2614,7 @@ release.draft=Rascunho
release.prerelease=Pré-lançamento
release.stable=Estável
release.compare=Comparar
release.edit=editar
release.edit=Editar
release.ahead.commits=<strong>%d</strong> cometimentos
release.ahead.target=para %s desde este lançamento
tag.ahead.target=para o ramo %s desde esta etiqueta
@ -2734,7 +2736,7 @@ commits.search_branch = Este ramo
pulls.title_desc_one = quer integrar %[1]d cometimento do ramo <code>%[2]s</code> no ramo <code id="branch_target">%[3]s</code>
pulls.reopen_failed.base_branch = O pedido de integração não pode ser reaberto porque o ramo base já não existe.
activity.navbar.code_frequency = Frequência de programação
settings.units.add_more = Adicionar mais...
settings.units.add_more = Habilitar mais
settings.wiki_rename_branch_main_desc = Renomear o ramo usado internamente pelo Wiki para "%s". Esta operação é permanente e não poderá ser revertida.
settings.add_collaborator_blocked_our = Não foi possível adicionar o/a colaborador/a porque o/a proprietário/a do repositório bloqueou-os.
settings.add_webhook.invalid_path = A localização não pode conter "." ou ".." ou ficar em branco. Não pode começar ou terminar com uma barra.
@ -2757,7 +2759,7 @@ release.download_count_one = %s descarga
release.download_count_few = %s descargas
release.system_generated = Este anexo é gerado automaticamente.
pulls.ready_for_review = Pronto/a para rever?
settings.units.units = Unidades do repositório
settings.units.units = Unidades
error.broken_git_hook = Os automatismos git deste repositório parecem estar danificados. Consulte a <a target="_blank" rel="noreferrer" href="%s">documentação</a> sobre como os consertar e depois envie alguns cometimentos para refrescar o estado.
settings.rename_branch_failed_protected = Não é possível renomear o ramo %s porque é um ramo protegido.
settings.units.overview = Visão geral
@ -2822,6 +2824,9 @@ settings.mirror_settings.push_mirror.none_ssh = Nenhuma
settings.protect_new_rule = Criar uma nova regra de salvaguarda do ramo
mirror_use_ssh.helper = O Forgejo irá replicar o repositório via Git sobre SSH e criar um par de chaves para si quando escolher esta opção. Tem que se certificar que a chave pública gerada está autorizada a enviar para o repositório de destino. Não pode usar a autorização baseada numa senha quando escolher isto.
mirror_use_ssh.not_available = A autenticação por SSH não está disponível.
issues.new.assign_to_me = Atribuir a mim
issues.all_title = Todas
settings.discord_icon_url.exceeds_max_length = O URL do ícone tem que ter 2048 caracteres ou menos
[graphs]
component_loading=A carregar %s...
@ -3793,7 +3798,7 @@ management=Gerir segredos
[actions]
actions=Operações
unit.desc=Gerir sequências CI/CD integradas com Forgejo Actions
unit.desc=Gerir sequências CI/CD integradas com Forgejo Actions.
status.unknown=Desconhecido
status.waiting=Aguardando
@ -3938,6 +3943,8 @@ pull_kind = Procurar pedidos de integração...
union = Palavras-chave
union_tooltip = Incluir resultados correspondentes a qualquer das palavras-chave separadas por espaços em branco
milestone_kind = Procurar etapas...
regexp_tooltip = Interpreta o termo de pesquisa como uma expressão regular
regexp = ExpReg
[munits.data]
kib = KiB
@ -3954,4 +3961,24 @@ 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.
releases.read = <b>Ler:</b> Ver e descarregar lançamentos.
projects.read = <b>Ler:</b> Aceder aos quadros de planeamento do repositório.
projects.write = <b>Escrever:</b> Criar planeamentos e colunas e editá-las.
packages.read = <b>Ler:</b> Ver e descarregar pacotes atribuídos ao repositório.
packages.write = <b>Escrever:</b> Publicar e eliminar pacotes atribuídos ao repositório.
actions.read = <b>Ler:</b> Ver canais CI/CD integrados e os seus registos.
actions.write = <b>Escrever:</b> Despoletar, reiniciar, cancelar ou aprovar manualmente canais CI/CD pendentes.
ext_issues = Aceder à ligação para um rastreador de questões externo. As permissões são geridas externamente.
ext_wiki = Aceder à ligação para um wiki externo. As permissões são geridas externamente.
issues.write = <b>Escrever:</b> Fechar questões e gerir metadados, tais como rótulos, etapas, encarregados, datas de vencimento e dependências.
pulls.read = <b>Ler:</b> Ler e criar pedidos de integração.
releases.write = <b>Escrever:</b> Publicar, editar e eliminar lançamentos e seus recursos.
wiki.read = <b>Ler:</b> Ler o wiki integrado e o seu histórico.
wiki.write = <b>Escrever:</b> Criar, modificar e eliminar páginas no wiki integrado.
code.write = <b>Escrever:</b> Enviar para o repositório, criar ramos e etiquetas.
issues.read = <b>Ler:</b> Ler e criar questões e comentários.
pulls.write = <b>Escrever:</b> Fechar pedidos de integração e gerir metadados, tais como rótulos, etapas, encarregados, datas de vencimento e dependências.

View file

@ -387,8 +387,8 @@ user_no_results=Подходящие пользователи не найден
org_no_results=Подходящие организации не найдены.
code_no_results=Соответствующий поисковому запросу исходный код не найден.
code_search_results=Результаты поиска «%s»
code_last_indexed_at=Последний проиндексированный %s
relevant_repositories_tooltip=Репозитории, являющиеся ответвлениями или не имеющие ни темы, ни значка, ни описания, скрыты.
code_last_indexed_at=Последняя индексация %s
relevant_repositories_tooltip=Скрыты ответвления и репозитории, не имеющие ни темы, ни значка, ни описания.
relevant_repositories=Показаны только релевантные репозитории, <a href="%s">показать результаты без фильтрации</a>.
forks_one = %d ответвление
forks_few = %d ответвлений
@ -411,7 +411,7 @@ sign_up_successful=Учётная запись успешно создана. Д
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=Учётная запись приостановлена
@ -476,6 +476,8 @@ sign_up_button = Зарегистрироваться.
back_to_sign_in = Назад ко входу
sign_in_openid = Продолжить с OpenID
hint_login = Уже есть учётная запись? <a href="%s">Войдите!</a>
unauthorized_credentials = Учётные данные неверны или истекли. Попробуйте повторить команду или ознакомьтесь с подробностями по ссылке: %s
use_onetime_code = Использовать одноразовый код
[mail]
view_it_on=Посмотреть на %s
@ -514,10 +516,10 @@ issue.action.push_n=<b>@%[1]s</b> отправил(а) %[3]d изменений
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> одобрил(а) этот запрос на слияние.
issue.action.approve=<b>@%[1]s</b> слияние одобрено.
issue.action.reject=<b>@%[1]s</b> запросил(а) изменения в этом запросе на слияние.
issue.action.review=<b>@%[1]s</b> прокомментировал(а) этот запрос на слияние.
issue.action.review_dismissed=<b>@%[1]s</b> отклонил(а) последний отзыв с %[2]s для этого запроса на слияние.
issue.action.review_dismissed=<b>@%[1]s</b> отклонена последняя рецензия с %[2]s для этого запроса на слияние.
issue.action.ready_for_review=<b>@%[1]s</b> отметил(а) этот запрос на слияние как готовый к рассмотрению.
issue.action.new=<b>@%[1]s</b> создал(а) #%[2]d.
issue.in_tree_path=В %s:
@ -715,6 +717,7 @@ public_activity.visibility_hint.self_public = Ваша активность ви
public_activity.visibility_hint.self_private = Ваша активность видна только вам и администраторам сервера. <a href="%s">Изменить</a>.
public_activity.visibility_hint.admin_private = Эта активность доступна вам, потому что вы администратор. Этот пользователь желает, чтобы она осталась частной.
public_activity.visibility_hint.admin_public = Эта активность доступна всем, но вы, как администратор, также видите действия в приватных местах.
public_activity.visibility_hint.self_private_profile = Ваша активность видна только вам и администраторам сервера, потому что ваш профиль скрыт. <a href="%s">Изменить</a>.
[settings]
profile=Профиль
@ -1019,7 +1022,7 @@ visibility.public=Публичный
visibility.public_tooltip=Виден всем, кто может открыть этот сайт
visibility.limited=Ограниченный
visibility.limited_tooltip=Виден только зарегистрированным пользователям сайта
visibility.private=Частный
visibility.private=Скрытый
visibility.private_tooltip=Виден только участникам организаций, в которых вы состоите
blocked_users_none = Заблокированных пользователей нет.
user_block_success = Пользователь заблокирован.
@ -1037,7 +1040,7 @@ hints = Подсказки
additional_repo_units_hint = Предлагать включить больше разделов в репозиториях
update_hints = Обновить подсказки
update_hints_success = Подсказки обновлены.
additional_repo_units_hint_description = Показывать кнопку "Добавить больше разделов" в репозиториях, в которых включены не все разделы.
additional_repo_units_hint_description = Показывать подсказку "Включить больше разделов" в репозиториях, в которых включены не все разделы.
pronouns_custom = Другие
pronouns = Местоимения
pronouns_unspecified = Не указаны
@ -1337,8 +1340,8 @@ editor.fail_to_apply_patch=Невозможно применить патч «%s
editor.new_patch=Новая правка
editor.commit_message_desc=Добавьте необязательное расширенное описание…
editor.signoff_desc=Добавить трейлер Signed-off-by с автором коммита в конце сообщения коммита.
editor.commit_directly_to_this_branch=Сделайте коммит напрямую в ветвь <strong class="branch-name">%s</strong>.
editor.create_new_branch=Создайте <strong>новую ветвь</strong> для этого коммита, и сделайте запрос на слияние.
editor.commit_directly_to_this_branch=Сохранить коммит напрямую в ветвь <strong class="branch-name">%s</strong>.
editor.create_new_branch=Сохранить коммит в <strong>новую ветвь</strong> и начать запрос на слияние.
editor.create_new_branch_np=Создать <strong>новую ветвь</strong> для этого коммита.
editor.propose_file_change=Предложить изменение файла
editor.new_branch_name=Укажите название новой ветви для этого коммита
@ -1406,7 +1409,7 @@ commitstatus.failure=Неудача
commitstatus.pending=Ожидание
commitstatus.success=Успешно
ext_issues=Доступ ко внешним задачам
ext_issues=Внешние задачи
ext_issues.desc=Ссылка на внешнюю систему отслеживания задач.
projects=Проекты
@ -1587,9 +1590,9 @@ issues.no_content=Описание отсутствует.
issues.close=Закрыть задачу
issues.comment_pull_merged_at=коммит %[1]s был добавлен в %[2]s %[3]s
issues.comment_manually_pull_merged_at=коммит %[1]s был вручную добавлен в %[2]s %[3]s
issues.close_comment_issue=Прокомментировать и закрыть
issues.close_comment_issue=Закрыть комментарием
issues.reopen_issue=Открыть снова
issues.reopen_comment_issue=Прокомментировать и открыть снова
issues.reopen_comment_issue=Открыть снова комментарием
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>`
@ -1614,9 +1617,9 @@ issues.role.first_time_contributor_helper=Это первое участие п
issues.role.contributor=Соавтор
issues.re_request_review=Повторить запрос на отзыв
issues.is_stale=Со времени этого обзора в этот PR были внесены некоторые изменения
issues.remove_request_review=Удалить запрос на отзыв
issues.remove_request_review_block=Невозможно удалить запрос на отзыв
issues.dismiss_review=Отклонить отзыв
issues.remove_request_review=Отменить запрос рецензии
issues.remove_request_review_block=Не удалось отменить запрос рецензии
issues.dismiss_review=Отклонить рецензию
issues.dismiss_review_warning=Вы уверены, что хотите отклонить эту рецензию?
issues.sign_in_require_desc=<a href="%s">Войдите</a>, чтобы присоединиться к обсуждению.
issues.edit=Изменить
@ -1747,17 +1750,17 @@ issues.dependency.add_error_cannot_create_circular=Вы не можете соз
issues.dependency.add_error_dep_not_same_repo=Обе задачи должны находиться в одном репозитории.
issues.review.self.approval=Вы не можете одобрить собственный запрос на слияние.
issues.review.self.rejection=Невозможно запрашивать изменения своего запроса на слияние.
issues.review.approve=одобрил(а) эти изменения %s
issues.review.comment=рассмотрел(а) изменения %s
issues.review.dismissed=отклонил(а) отзыв %s %s
issues.review.approve=изменения одобрены %s
issues.review.comment=оставлена рецензия %s
issues.review.dismissed=отклонена рецензия %s %s
issues.review.dismissed_label=Отклонено
issues.review.left_comment=оставил комментарий
issues.review.content.empty=Запрашивая изменения, вы обязаны оставить комментарий с пояснением своих пожеланий относительно запроса на слияние.
issues.review.reject=запросил(а) изменения %s
issues.review.reject=запрошены изменения %s
issues.review.wait=был запрошен для отзыва %s
issues.review.add_review_request=запросил(а) отзыв от %s %s
issues.review.remove_review_request=удалил(а )заявку на отзыв для %s %s
issues.review.remove_review_request_self=отказался добавлять отзыв %s
issues.review.add_review_request=запрошена рецензия от %[1]s %[2]s
issues.review.remove_review_request=отменён запрос рецензии от %[1]s %[2]s
issues.review.remove_review_request_self=отказ от рецензирования %s
issues.review.pending=Ожидание
issues.review.pending.tooltip=Этот комментарий в настоящее время не виден другим пользователям. Чтобы отправить отложенные комментарии, выберите «%s» → «%s/%s/%s» в верхней части страницы.
issues.review.review=Рецензия
@ -1822,7 +1825,7 @@ pulls.tab_conversation=Обсуждение
pulls.tab_commits=Коммиты
pulls.tab_files=Изменённые файлы
pulls.reopen_to_merge=Пожалуйста, переоткройте этот запрос на слияние для выполнения слияния.
pulls.cant_reopen_deleted_branch=Этот запрос на слияние не может быть открыт заново, потому что ветвь была удалена.
pulls.cant_reopen_deleted_branch=Этот запрос на слияние не может быть открыт повторно, потому что ветвь была удалена.
pulls.merged=Слито
pulls.merged_success=Запрос на слияние удовлетворён и закрыт
pulls.closed=Запрос на слияние закрыт
@ -1896,7 +1899,7 @@ pulls.update_branch_rebase=Обновить ветвь перебазирова
pulls.update_branch_success=Ветвь успешно обновлена
pulls.update_not_allowed=Недостаточно прав для обновления ветви
pulls.outdated_with_base_branch=Эта ветвь отстает от базовой ветви
pulls.close=Закрыть запрос на слияние
pulls.close=Закрыть запрос слияния
pulls.closed_at=`закрыл этот запрос на слияние <a id="%[1]s" href="#%[1]s">%[2]s</a>`
pulls.reopened_at=`переоткрыл этот запрос на слияние <a id="%[1]s" href="#%[1]s">%[2]s</a>`
pulls.cmd_instruction_hint=Показать инструкции для командной строки
@ -1918,7 +1921,7 @@ pulls.auto_merge_newly_scheduled_comment=`запланировал этот за
pulls.auto_merge_canceled_schedule_comment=`отменил автоматическое слияние этого запроса после прохождения всех проверок %[1]s`
pulls.delete.title=Удалить этот запрос на слияние?
pulls.delete.text=Вы точно хотите удалить этот запрос на слияние? (Это навсегда удалит всё его содержимое. Возможно, лучше закрыть его в архивных целях)
pulls.delete.text=Вы точно хотите удалить этот запрос на слияние? (Это навсегда удалит всё его содержимое. Возможно, будет лучше закрыть его в архивных целях)
pull.deleted_branch=(удалена):%s
@ -1964,7 +1967,7 @@ signing.wont_sign.commitssigned=Слияние не будет подписан
signing.wont_sign.approved=Слияние не будет подписано, так как запрос на слияние не одобрен.
signing.wont_sign.not_signed_in=Вы не вошли в систему.
ext_wiki=Доступ ко внешней вики
ext_wiki=Внешняя вики
ext_wiki.desc=Ссылка на внешнюю вики.
wiki=Вики
@ -2127,7 +2130,7 @@ settings.use_external_issue_tracker=Использовать внешнюю си
settings.external_tracker_url=Ссылка на внешнюю систему задач
settings.external_tracker_url_error=URL внешнего баг-трекера не является корректным URL.
settings.external_tracker_url_desc=Посетители будут перенаправлены по указанному адресу трекера задач при открытии вкладки.
settings.tracker_url_format=Формат ссылки внешней системы задач
settings.tracker_url_format=Формат ссылок внешней системы задач
settings.tracker_url_format_error=Формат URL внешнего баг-трекера некорректен.
settings.tracker_issue_style=Формат нумерации во внешней системе задач
settings.tracker_issue_style.numeric=Цифровой
@ -2149,7 +2152,7 @@ settings.packages_desc=Включить реестр пакетов
settings.projects_desc=Включить проекты
settings.actions_desc=Включить интеграцию конвейеров CI/CD с Forgejo 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=Последний индексированный коммит
@ -2239,7 +2242,7 @@ settings.hooks_desc=Веб-хуки позволяют внешним служб
settings.webhook_deletion=Удаление веб-хука
settings.webhook_deletion_desc=Удаление этого веб-хука приведет к удалению всей связанной с ним информации, включая историю. Хотите продолжить?
settings.webhook_deletion_success=Веб-хук был удалён.
settings.webhook.test_delivery=Проверить доставку
settings.webhook.test_delivery=Проверить отправку
settings.webhook.test_delivery_desc=Отправить тестовое событие для тестирования настройки веб-хука.
settings.webhook.request=Запрос
settings.webhook.response=Ответ
@ -2253,7 +2256,7 @@ settings.githook_edit_desc=Если хук не активен, будет по
settings.githook_name=Название хукa
settings.githook_content=Содержимое хука
settings.update_githook=Обновить хук
settings.add_webhook_desc=Forgejo будет оправлять <code>POST</code>-запросы на указанный URL адрес с указанным заголовком «Content-Type». Подробности в <a target="_blank" rel="noopener noreferrer" href="%s">инструкции по использованию веб-хуков</a>.
settings.add_webhook_desc=Forgejo будет оправлять <code>POST</code>-запросы на указанный URL обработчика с указанным заголовком «Content-Type». Подробности доступны в <a target="_blank" rel="noopener noreferrer" href="%s">инструкции по использованию веб-хуков</a>.
settings.payload_url=URL обработчика
settings.http_method=HTTP-метод
settings.content_type=Тип содержимого POST
@ -2264,10 +2267,10 @@ settings.slack_color=Цвет
settings.discord_username=Имя пользователя
settings.discord_icon_url=URL иконки
settings.event_desc=Срабатывать на:
settings.event_push_only=События отправки
settings.event_push_only=События отправки (push)
settings.event_send_everything=Все события
settings.event_choose=Другие события…
settings.event_header_repository=События репозитория
settings.event_choose=Выбранные события…
settings.event_header_repository=События репозиториев
settings.event_create=Создание
settings.event_create_desc=Создание ветвей и тегов.
settings.event_delete=Удаление
@ -2283,33 +2286,33 @@ settings.event_push_desc=Отправка изменений в репозито
settings.event_repository=Репозиторий
settings.event_repository_desc=Создание и удаление репозиториев.
settings.event_header_issue=События задач
settings.event_issues=Задачи
settings.event_issues=Изменение
settings.event_issues_desc=Создание, закрытие, переоткрытие и изменение задач.
settings.event_issue_assign=Назначение задач
settings.event_issue_assign=Назначение
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_comment=Комментарии задач
settings.event_issue_label=Метки
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_header_pull_request=События запросов слияний
settings.event_pull_request=Запросы слияния
settings.event_pull_request=Изменение
settings.event_pull_request_desc=Создание, закрытие, переоткрытие и изменение запросов слияния.
settings.event_pull_request_assign=Назначение запросов
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_comment=Комментарии запросов на слияние
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_comment=Комментарии
settings.event_pull_request_comment_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_review_request=Запрошена рецензия для запроса на слияние
settings.event_pull_request_review_request_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_review_request=Запросы рецензий
settings.event_pull_request_review_request_desc=Создание и отмена запросов рецензий в запросах слияний.
settings.event_pull_request_approvals=Одобрения запросов слияний
settings.event_pull_request_merge=Слияние запроса на слияние
settings.event_package=Пакеты
@ -2318,15 +2321,15 @@ settings.branch_filter=Фильтр ветвей
settings.branch_filter_desc=Белый список ветвей для событий Push, создания ветвей и удаления ветвей, указанных в виде глоб-шаблона. Если пустой или <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.active=Активный
settings.active=Активен
settings.active_helper=Информация о происходящих событиях будет отправляться на URL этого веб-хука.
settings.add_hook_success=Веб-хук добавлен.
settings.update_webhook=Обновить веб-хук
settings.update_hook_success=Веб-хук обновлён.
settings.delete_webhook=Удалить веб-хук
settings.recent_deliveries=Недавние рассылки
settings.hook_type=Тип хука
settings.slack_token=Slack токен
settings.recent_deliveries=Недавние отправки
settings.hook_type=Тип веб-хука
settings.slack_token=Токен
settings.slack_domain=Домен
settings.slack_channel=Канал
settings.add_web_hook_desc=Интегрируйте <a target="_blank" rel="noreferrer" href="%s">%s</a> с этим репозиторием .
@ -2410,7 +2413,7 @@ settings.protect_branch_name_pattern=Шаблон названий защищё
settings.protect_branch_name_pattern_desc=Шаблоны названий защищённых ветвей. О синтаксисе шаблонов читайте в <a href="%s">документации</a>. Примеры: main, release/**
settings.protect_patterns=Шаблоны
settings.protect_protected_file_patterns=Шаблоны защищённых файлов, разделённые точкой с запятой «;»
settings.protect_protected_file_patterns_desc=Защищенные файлы нельзя изменить напрямую, даже если пользователь имеет право добавлять, редактировать или удалять файлы в этой ветви. Можно указать несколько шаблонов, разделяя их точкой с запятой («;»). О синтаксисе шаблонов читайте в документации <a href="%s">github.com/gobwas/glob</a> . Примеры: <code>.drone.yml</code>, <code>/docs/**/*.txt</code>.
settings.protect_protected_file_patterns_desc=Защищенные файлы нельзя изменить напрямую, даже если пользователь имеет право добавлять, редактировать или удалять файлы в этой ветви. Можно указать несколько шаблонов, разделяя их точкой с запятой («;»). О синтаксисе шаблонов читайте в документации <a href="%s">%s</a> . Примеры: <code>.drone.yml</code>, <code>/docs/**/*.txt</code>.
settings.protect_unprotected_file_patterns=Шаблоны незащищённых файлов, разделённые точкой с запятой «;»
settings.protect_unprotected_file_patterns_desc=Незащищенные файлы, которые допускается изменять напрямую, если пользователь имеет право на запись, несмотря на ограничение отправки изменений. Можно указать несколько шаблонов, разделяя их точкой с запятой («;»). О синтаксисе шаблонов читайте в документации <a href="%[1]s">%[2]s</a> . Примеры: <code>.drone.yml</code>, <code>/docs/**/*.txt</code>.
settings.add_protected_branch=Включить защиту
@ -2558,7 +2561,7 @@ release.draft=Черновик
release.prerelease=Предварительный выпуск
release.stable=Стабильный
release.compare=Сравнить
release.edit=редактировать
release.edit=Редактировать
release.ahead.commits=<strong>%d</strong> коммиты
release.ahead.target=%s с этого выпуска
tag.ahead.target=в %s после этого тега
@ -2717,11 +2720,11 @@ settings.wiki_globally_editable = Разрешить редактировани
settings.webhook.test_delivery_desc_disabled = Активируйте этот веб-хук для проверки тестовым событием.
commits.browse_further = Смотреть далее
vendored = Сторонний
settings.units.add_more = Доб. больше...
settings.units.add_more = Вкл. больше
pulls.fast_forward_only_merge_pull_request = Только fast-forward
settings.units.overview = Обзор
settings.units.units = Разделы репозитория
pulls.reopen_failed.head_branch = Этот запрос на слияние не может быть открыт заново, потому что головная ветвь больше не существует.
settings.units.units = Разделы
pulls.reopen_failed.head_branch = Этот запрос на слияние не может быть открыт повторно, так как исходная ветвь больше не существует.
pulls.reopen_failed.base_branch = Этот запрос на слияние не может быть открыт заново, потому что базовая ветвь больше не существует.
settings.ignore_stale_approvals = Игнорировать устаревшие одобрения
contributors.contribution_type.commits = Коммиты
@ -2825,6 +2828,15 @@ mirror_use_ssh.helper = Forgejo будет синхронизировать из
mirror_denied_combination = Невозможно одновременно использовать аутентификацию по SSH и по паролю.
settings.mirror_settings.push_mirror.none_ssh = Нет
settings.mirror_settings.push_mirror.copy_public_key = Копировать публичный ключ
issues.new.assign_to_me = Назначить себе
issues.all_title = Все
settings.discord_icon_url.exceeds_max_length = URL иконки не может быть длиннее 2048 символов
issues.review.add_review_requests = запрошены рецензии от %[1]s %[2]s
issues.review.remove_review_requests = отменены запросы рецензий от %[1]s %[2]s
issues.review.add_remove_review_requests = запрошены рецензии от %[1]s и отменены запросы рецензий от %[2]s %[3]s
pulls.delete_after_merge.head_branch.is_default = Головная ветвь, которую вы попытались удалить, является ветвью по умолчанию и не может быть удалена.
pulls.delete_after_merge.head_branch.is_protected = Головная ветвь, которую вы попытались удалить, защищена от этого и не может быть удалена.
pulls.delete_after_merge.head_branch.insufficient_branch = Отсутствует разрешение для удаления головной ветви.
[graphs]
@ -2845,9 +2857,9 @@ org_desc=Описание
team_name=Название команды
team_desc=Описание
team_name_helper=Названия команд должны быть короткими и запоминающимися.
team_desc_helper=Опишите назначение или роль команды.
team_access_desc=Доступ к репозиторию
team_permission_desc=Разрешение
team_desc_helper=Назначение или роль этой команды.
team_access_desc=Доступ к репозиториям
team_permission_desc=Разрешения
team_unit_desc=Разрешить доступ к разделам репозитория
team_unit_disabled=(Отключено)
@ -3142,7 +3154,7 @@ repos.lfs_size=Размер LFS
packages.package_manage_panel=Управление пакетами
packages.total_size=Общий размер: %s
packages.unreferenced_size=Размер по ссылке: %s
packages.unreferenced_size=Неуказанный размер: %s
packages.cleanup=Очистить устаревшие данные
packages.cleanup.success=Очистка устаревших данных успешно завершена
packages.owner=Владелец
@ -3332,7 +3344,7 @@ 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=CAPTCHA
config.active_code_lives=Срок действия кода активации учётной записи
@ -3446,7 +3458,7 @@ monitor.queue.activeworkers=Активные обработчики
monitor.queue.maxnumberworkers=Макс. количество обработчиков
monitor.queue.numberinqueue=Позиция в очереди
monitor.queue.settings.title=Настройки пула
monitor.queue.settings.desc=Пулы увеличиваются динамически в ответ на блокировку очередей своих обработчиков.
monitor.queue.settings.desc=Пулы динамически растут в зависимости от блокировки очередей их рабочих.
monitor.queue.settings.maxnumberworkers=Макс. количество обработчиков
monitor.queue.settings.maxnumberworkers.placeholder=В настоящий момент %[1]d
monitor.queue.settings.maxnumberworkers.error=Максимальное количество обработчиков должно быть числом
@ -3526,17 +3538,17 @@ comment_issue=`оставлен комментарий под задачей <a
comment_pull=`отставлен комментарий под запросом на слияние <a href="%[1]s">%[3]s#%[2]s</a>`
merge_pull_request=`принят запрос на слияние <a href="%[1]s">%[3]s#%[2]s</a>`
auto_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>
delete_branch=удалена ветвь %[2]s из <a href="%[1]s">%[3]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>
delete_branch=удалена ветвь %[2]s в <a href="%[1]s">%[3]s</a>
compare_branch=Сравнить
compare_commits=Сравнить %d коммитов
compare_commits_general=Сравнить коммиты
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> из зеркала
approve_pull_request=`одобрен <a href="%[1]s">%[3]s#%[2]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>`
review_dismissed=`отклонён отзыв от <b>%[4]s</b> для <a href="%[1]s">%[3]s#%[2]s</a>`
@ -3758,7 +3770,7 @@ owner.settings.cleanuprules.success.delete=Правило очистки уда
owner.settings.chef.title=Реестр Chef
owner.settings.chef.keypair=Создать пару ключей
owner.settings.cleanuprules.none = Правил очистки пока нет.
owner.settings.cargo.rebuild.description = Пересборка может быть полезной в случае, если индекс не синхронизирован с сохранёнными пакетами Cargo.
owner.settings.cargo.rebuild.description = Пересборка может быть полезна в случае, если индекс не синхронизирован с хранящимися пакетами Cargo.
rpm.repository = О репозитории
rpm.repository.architectures = Архитектуры
rpm.repository.multiple_groups = Этот пакет доступен в нескольких группах.
@ -3800,7 +3812,7 @@ management=Управление секретами
[actions]
actions=Действия
unit.desc=Управление встроенными конвейерами CI/CD с Действиями Forgejo
unit.desc=Управление встроенными конвейерами CI/CD с Действиями Forgejo.
status.unknown=Неизвестно
status.waiting=Ожидает
@ -3955,6 +3967,8 @@ pull_kind = Поиск слияний...
union_tooltip = Включает результаты с совпавшими ключевыми словами, разделёнными пробелами
union = Обычный
milestone_kind = Поиск этапов...
regexp = Регулярное выражение
regexp_tooltip = Интерпретировать поисковый запрос как регулярное выражение
[markup]
@ -3963,4 +3977,24 @@ filepreview.lines = Строки с %[1]d по %[2]d в %[3]s
filepreview.truncated = Предпросмотр был обрезан
[translation_meta]
test = хи-хи!
test = смайлик :)
[repo.permissions]
code.write = <b>Запись:</b> отправка изменений в репозиторий, создание веток и тегов.
code.read = <b>Чтение:</b> просмотр и клонирование исходного кода репозитория.
issues.read = <b>Чтение:</b> просмотр и создание задач и комментариев.
pulls.read = <b>Чтение:</b> просмотр и открытие запросов слияний.
releases.read = <b>Чтение:</b> просмотр выпусков и скачивание файлов.
releases.write = <b>Запись:</b> публикация, изменение и удаление выпусков и их файлов.
wiki.read = <b>Чтение:</b> просмотр страниц и истории редактирования встроенной вики.
projects.write = <b>Запись:</b> создание и изменение проектов и колонок.
packages.write = <b>Запись:</b> публикация и удаление пакетов в репозитории.
projects.read = <b>Чтение:</b> просмотр проектов в репозитории.
ext_wiki = Доступ ко ссылке на внешнюю вики. Настройка разрешений выполняется вне сайта.
actions.read = <b>Чтение:</b> просмотр интегрированных конвейеров CI/CD и их логов.
pulls.write = <b>Запись:</b> закрытие запросов слияний и изменение их метаданных: меток, этапа, назначений, срока выполнения и зависимостей и пр.
issues.write = <b>Запись:</b> закрытие задач и изменение их метаданных: меток, этапа, назначений, срока выполнения и зависимостей и пр.
actions.write = <b>Запись:</b> ручной запуск, перезапуск, отмена и одобрение работы конвейеров CI/CD.
wiki.write = <b>Запись:</b> создание, изменение и удаление страниц во встроенной вики.
packages.read = <b>Чтение:</b> просмотр и скачивание пакетов в репозитории.
ext_issues = Доступ к ссылке на внешний трекер задач. Настройка разрешений выполняется вне сайта.

View file

@ -555,7 +555,7 @@ repo.collaborator.added.subject = %s vas je dodal v %s
team_invite.subject = %[1]s vas je povabil, da se pridružite organizaciji %[2]s
issue.action.new = <b>@%[1]s</b> ustvaril #%[2]d.
team_invite.text_1 = %[1]s vas je povabil, da se pridružite ekipi %[2]s v organizaciji %[3]s.
team_invite.text_3 = Opomba: To vabilo je bilo namenjeno %[1]. Če tega vabila niste pričakovali, ga lahko ignorirate.
team_invite.text_3 = Opomba: To vabilo je bilo namenjeno %[1]s. Če tega vabila niste pričakovali, ga lahko ignorirate.
reply = ali neposredno odgovorite na to e-poštno sporočilo
activate_email = Preverite svoj e-poštni naslov
activate_email.title = %s, preverite svoj e-poštni naslov

Some files were not shown because too many files have changed in this diff Show more